@recursyve/nice-ui-kit.v2 18.0.0-beta.144 → 20.0.0-beta.146
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/_index.scss +2 -2
- package/fesm2022/recursyve-nice-ui-kit.v2.mjs +899 -738
- package/fesm2022/recursyve-nice-ui-kit.v2.mjs.map +1 -1
- package/index.d.ts +3664 -3
- package/package.json +8 -10
- package/src/lib/components/base-form/base-form.theme.scss +2 -1
- package/src/lib/components/chip-list/chip-list.theme.scss +2 -2
- package/src/lib/components/date-range-picker/date-range-picker.theme.scss +6 -5
- package/src/lib/components/horizontal-stepper/horizontal-stepper.theme.scss +3 -2
- package/src/lib/components/navigation/vertical/vertical.theme.scss +8 -8
- package/src/lib/components/toggle-button-group/toggle-button-group.theme.scss +8 -7
- package/src/lib/nice.theme.scss +78 -86
- package/src/lib/nice.utils.scss +3 -1
- package/styles/main.scss +4 -4
- package/styles/nice.scss +3 -1
- package/styles/overrides/angular-material.scss +3 -3
- package/esm2022/lib/animations/defaults.mjs +0 -32
- package/esm2022/lib/animations/expand-collapse.mjs +0 -21
- package/esm2022/lib/animations/fade.mjs +0 -210
- package/esm2022/lib/animations/index.mjs +0 -2
- package/esm2022/lib/animations/public-api.mjs +0 -17
- package/esm2022/lib/animations/shake.mjs +0 -63
- package/esm2022/lib/animations/slide.mjs +0 -156
- package/esm2022/lib/animations/zoom.mjs +0 -46
- package/esm2022/lib/api/exceptions/api.exception.mjs +0 -3
- package/esm2022/lib/api/exceptions/exception.factory.mjs +0 -9
- package/esm2022/lib/api/index.mjs +0 -2
- package/esm2022/lib/api/interceptors/transform-response.interceptor.mjs +0 -28
- package/esm2022/lib/api/nice.api.mjs +0 -68
- package/esm2022/lib/api/public-api.mjs +0 -5
- package/esm2022/lib/components/alert/alert.component.mjs +0 -200
- package/esm2022/lib/components/alert/alert.module.mjs +0 -32
- package/esm2022/lib/components/alert/alert.service.mjs +0 -58
- package/esm2022/lib/components/alert/alert.types.mjs +0 -2
- package/esm2022/lib/components/alert/index.mjs +0 -2
- package/esm2022/lib/components/alert/public-api.mjs +0 -5
- package/esm2022/lib/components/assets-carousel/assets-carousel.component.mjs +0 -283
- package/esm2022/lib/components/assets-carousel/assets-carousel.constant.mjs +0 -3
- package/esm2022/lib/components/assets-carousel/assets-carousel.module.mjs +0 -88
- package/esm2022/lib/components/assets-carousel/directives/assets-carousel-active-content.directive.mjs +0 -14
- package/esm2022/lib/components/assets-carousel/index.mjs +0 -2
- package/esm2022/lib/components/assets-carousel/public-api.mjs +0 -4
- package/esm2022/lib/components/async-typeahead/async-typeahead.component.mjs +0 -459
- package/esm2022/lib/components/async-typeahead/async-typeahead.constant.mjs +0 -3
- package/esm2022/lib/components/async-typeahead/async-typeahead.module.mjs +0 -64
- package/esm2022/lib/components/async-typeahead/index.mjs +0 -2
- package/esm2022/lib/components/async-typeahead/providers/async-typeahead.provider.mjs +0 -6
- package/esm2022/lib/components/async-typeahead/providers/async-typeahead.service.mjs +0 -219
- package/esm2022/lib/components/async-typeahead/public-api.mjs +0 -5
- package/esm2022/lib/components/base-form/base-form.component.mjs +0 -91
- package/esm2022/lib/components/base-form/base-form.module.mjs +0 -16
- package/esm2022/lib/components/base-form/form-submit.directive.mjs +0 -20
- package/esm2022/lib/components/base-form/index.mjs +0 -2
- package/esm2022/lib/components/base-form/nice-base.form.mjs +0 -14
- package/esm2022/lib/components/base-form/public-api.mjs +0 -5
- package/esm2022/lib/components/card/card.component.mjs +0 -60
- package/esm2022/lib/components/card/card.module.mjs +0 -24
- package/esm2022/lib/components/card/card.types.mjs +0 -2
- package/esm2022/lib/components/card/index.mjs +0 -2
- package/esm2022/lib/components/card/public-api.mjs +0 -3
- package/esm2022/lib/components/carousel/carousel.component.mjs +0 -51
- package/esm2022/lib/components/carousel/carousel.constant.mjs +0 -3
- package/esm2022/lib/components/carousel/carousel.module.mjs +0 -54
- package/esm2022/lib/components/carousel/index.mjs +0 -2
- package/esm2022/lib/components/carousel/interfaces/carousel-options.interface.mjs +0 -2
- package/esm2022/lib/components/carousel/picture-modal/index.mjs +0 -2
- package/esm2022/lib/components/carousel/picture-modal/picture-modal.component.mjs +0 -11
- package/esm2022/lib/components/carousel/picture-modal/picture-modal.service.mjs +0 -34
- package/esm2022/lib/components/carousel/picture-modal/public-api.mjs +0 -3
- package/esm2022/lib/components/carousel/pipe/carousel-layout.pipe.mjs +0 -17
- package/esm2022/lib/components/carousel/public-api.mjs +0 -4
- package/esm2022/lib/components/collapsable/collapsable.component.mjs +0 -36
- package/esm2022/lib/components/collapsable/collapsable.module.mjs +0 -25
- package/esm2022/lib/components/collapsable/index.mjs +0 -2
- package/esm2022/lib/components/collapsable/public-api.mjs +0 -3
- package/esm2022/lib/components/date-range-picker/components/header/header.component.mjs +0 -57
- package/esm2022/lib/components/date-range-picker/components/range-preset/range-preset.component.mjs +0 -107
- package/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs +0 -95
- package/esm2022/lib/components/date-range-picker/date-range-picker.module.mjs +0 -56
- package/esm2022/lib/components/date-range-picker/index.mjs +0 -2
- package/esm2022/lib/components/date-range-picker/providers/date-range-picker.service.mjs +0 -17
- package/esm2022/lib/components/date-range-picker/public-api.mjs +0 -3
- package/esm2022/lib/components/drawer/drawer.component.mjs +0 -372
- package/esm2022/lib/components/drawer/drawer.module.mjs +0 -28
- package/esm2022/lib/components/drawer/drawer.service.mjs +0 -40
- package/esm2022/lib/components/drawer/drawer.types.mjs +0 -2
- package/esm2022/lib/components/drawer/index.mjs +0 -2
- package/esm2022/lib/components/drawer/public-api.mjs +0 -5
- package/esm2022/lib/components/export-bottom-sheet/export-bottom-sheet.component.mjs +0 -33
- package/esm2022/lib/components/export-bottom-sheet/export-bottom-sheet.module.mjs +0 -45
- package/esm2022/lib/components/export-bottom-sheet/index.mjs +0 -2
- package/esm2022/lib/components/export-bottom-sheet/models/export-strategy.model.mjs +0 -2
- package/esm2022/lib/components/export-bottom-sheet/providers/export-bottom-sheet.service.mjs +0 -28
- package/esm2022/lib/components/export-bottom-sheet/public-api.mjs +0 -5
- package/esm2022/lib/components/form-error/control-status.directive.mjs +0 -125
- package/esm2022/lib/components/form-error/form-error.component.mjs +0 -53
- package/esm2022/lib/components/form-error/form-error.module.mjs +0 -20
- package/esm2022/lib/components/form-error/index.mjs +0 -2
- package/esm2022/lib/components/form-error/public-api.mjs +0 -4
- package/esm2022/lib/components/horizontal-stepper/horizontal-stepper.component.mjs +0 -34
- package/esm2022/lib/components/horizontal-stepper/horizontal-stepper.module.mjs +0 -29
- package/esm2022/lib/components/horizontal-stepper/index.mjs +0 -2
- package/esm2022/lib/components/horizontal-stepper/public-api.mjs +0 -4
- package/esm2022/lib/components/horizontal-stepper/step.component.mjs +0 -22
- package/esm2022/lib/components/image-cropper/image-cropper.component.mjs +0 -1269
- package/esm2022/lib/components/image-cropper/image-cropper.module.mjs +0 -23
- package/esm2022/lib/components/image-cropper/index.mjs +0 -2
- package/esm2022/lib/components/image-cropper/public-api.mjs +0 -3
- package/esm2022/lib/components/image-cropper/resize-canvas.mjs +0 -76
- package/esm2022/lib/components/index.mjs +0 -2
- package/esm2022/lib/components/layout/index.mjs +0 -2
- package/esm2022/lib/components/layout/layout.component.mjs +0 -98
- package/esm2022/lib/components/layout/layout.module.mjs +0 -18
- package/esm2022/lib/components/layout/public-api.mjs +0 -3
- package/esm2022/lib/components/loading-spinner/index.mjs +0 -2
- package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +0 -22
- package/esm2022/lib/components/loading-spinner/loading-spinner.module.mjs +0 -48
- package/esm2022/lib/components/loading-spinner/loading.constant.mjs +0 -3
- package/esm2022/lib/components/loading-spinner/loading.directive.mjs +0 -56
- package/esm2022/lib/components/loading-spinner/public-api.mjs +0 -4
- package/esm2022/lib/components/loading-toast/index.mjs +0 -2
- package/esm2022/lib/components/loading-toast/loading-toast.component.mjs +0 -38
- package/esm2022/lib/components/loading-toast/loading-toast.constant.mjs +0 -3
- package/esm2022/lib/components/loading-toast/loading-toast.directive.mjs +0 -64
- package/esm2022/lib/components/loading-toast/loading-toast.module.mjs +0 -62
- package/esm2022/lib/components/loading-toast/loading-toast.service.mjs +0 -47
- package/esm2022/lib/components/loading-toast/public-api.mjs +0 -6
- package/esm2022/lib/components/loading-toast/rxjs/show-loading-toast.operator.mjs +0 -12
- package/esm2022/lib/components/lottie/index.mjs +0 -2
- package/esm2022/lib/components/lottie/lottie.component.mjs +0 -52
- package/esm2022/lib/components/lottie/lottie.module.mjs +0 -18
- package/esm2022/lib/components/lottie/public-api.mjs +0 -3
- package/esm2022/lib/components/navigation/components/hint-component-base.mjs +0 -120
- package/esm2022/lib/components/navigation/directives/show-hint.directive.mjs +0 -187
- package/esm2022/lib/components/navigation/horizontal/components/basic/basic.component.mjs +0 -62
- package/esm2022/lib/components/navigation/horizontal/components/branch/branch.component.mjs +0 -80
- package/esm2022/lib/components/navigation/horizontal/components/divider/divider.component.mjs +0 -51
- package/esm2022/lib/components/navigation/horizontal/components/spacer/spacer.component.mjs +0 -51
- package/esm2022/lib/components/navigation/horizontal/horizontal.component.mjs +0 -50
- package/esm2022/lib/components/navigation/index.mjs +0 -2
- package/esm2022/lib/components/navigation/navigation.component.mjs +0 -83
- package/esm2022/lib/components/navigation/navigation.module.mjs +0 -108
- package/esm2022/lib/components/navigation/navigation.service.mjs +0 -188
- package/esm2022/lib/components/navigation/navigation.types.mjs +0 -2
- package/esm2022/lib/components/navigation/pipes/should-hide.pipe.mjs +0 -31
- package/esm2022/lib/components/navigation/pipes/should-show-hint.pipe.mjs +0 -32
- package/esm2022/lib/components/navigation/pipes/translate-with-context.pipe.mjs +0 -25
- package/esm2022/lib/components/navigation/providers/hide-item.resolver.mjs +0 -3
- package/esm2022/lib/components/navigation/providers/hint.resolver.mjs +0 -3
- package/esm2022/lib/components/navigation/providers/hint.service.mjs +0 -20
- package/esm2022/lib/components/navigation/providers/translation-context.service.mjs +0 -16
- package/esm2022/lib/components/navigation/public-api.mjs +0 -20
- package/esm2022/lib/components/navigation/vertical/components/aside/aside.component.mjs +0 -145
- package/esm2022/lib/components/navigation/vertical/components/basic/basic.component.mjs +0 -76
- package/esm2022/lib/components/navigation/vertical/components/collapsable/collapsable.component.mjs +0 -264
- package/esm2022/lib/components/navigation/vertical/components/divider/divider.component.mjs +0 -51
- package/esm2022/lib/components/navigation/vertical/components/group/group.component.mjs +0 -75
- package/esm2022/lib/components/navigation/vertical/components/spacer/spacer.component.mjs +0 -51
- package/esm2022/lib/components/navigation/vertical/vertical.component.mjs +0 -599
- package/esm2022/lib/components/public-api.mjs +0 -25
- package/esm2022/lib/components/search-bar/index.mjs +0 -2
- package/esm2022/lib/components/search-bar/public-api.mjs +0 -3
- package/esm2022/lib/components/search-bar/search-bar.component.mjs +0 -76
- package/esm2022/lib/components/search-bar/search-bar.module.mjs +0 -40
- package/esm2022/lib/components/sweet-alert/index.mjs +0 -2
- package/esm2022/lib/components/sweet-alert/public-api.mjs +0 -5
- package/esm2022/lib/components/sweet-alert/sweet-alert.component.mjs +0 -59
- package/esm2022/lib/components/sweet-alert/sweet-alert.constant.mjs +0 -3
- package/esm2022/lib/components/sweet-alert/sweet-alert.directive.mjs +0 -37
- package/esm2022/lib/components/sweet-alert/sweet-alert.module.mjs +0 -37
- package/esm2022/lib/components/sweet-alert/sweet-alert.service.mjs +0 -95
- package/esm2022/lib/components/toast/index.mjs +0 -2
- package/esm2022/lib/components/toast/public-api.mjs +0 -6
- package/esm2022/lib/components/toast/rxjs/show-success-or-error-toast.operator.mjs +0 -22
- package/esm2022/lib/components/toast/rxjs/show-toast.operator.mjs +0 -26
- package/esm2022/lib/components/toast/toast.component.mjs +0 -25
- package/esm2022/lib/components/toast/toast.constant.mjs +0 -3
- package/esm2022/lib/components/toast/toast.module.mjs +0 -57
- package/esm2022/lib/components/toast/toast.service.mjs +0 -65
- package/esm2022/lib/components/toggle-button-group/index.mjs +0 -2
- package/esm2022/lib/components/toggle-button-group/public-api.mjs +0 -4
- package/esm2022/lib/components/toggle-button-group/toggle-button-group.component.mjs +0 -134
- package/esm2022/lib/components/toggle-button-group/toggle-button-group.module.mjs +0 -26
- package/esm2022/lib/components/toggle-button-group/toggle-button.component.mjs +0 -19
- package/esm2022/lib/components/translation-form/components/textarea/translation-form-textarea.component.mjs +0 -38
- package/esm2022/lib/components/translation-form/components/textfield/translation-form-textfield.component.mjs +0 -26
- package/esm2022/lib/components/translation-form/components/translation-form.component.mjs +0 -172
- package/esm2022/lib/components/translation-form/components/translation-form.module.mjs +0 -71
- package/esm2022/lib/components/translation-form/decorators/translation-form-group.decorator.mjs +0 -4
- package/esm2022/lib/components/translation-form/directives/translation-context.directive.mjs +0 -48
- package/esm2022/lib/components/translation-form/index.mjs +0 -2
- package/esm2022/lib/components/translation-form/providers/nice-translation-form.service.mjs +0 -59
- package/esm2022/lib/components/translation-form/public-api.mjs +0 -11
- package/esm2022/lib/components/translation-form/toggle/translation-toggle.component.mjs +0 -26
- package/esm2022/lib/components/translation-form/translation.form.mjs +0 -6
- package/esm2022/lib/components/translation-form/validators/require-for-languages.validator.mjs +0 -43
- package/esm2022/lib/components/typeahead/directives/options-scroll.directive.mjs +0 -68
- package/esm2022/lib/components/typeahead/directives/options-scroll.module.mjs +0 -16
- package/esm2022/lib/components/typeahead/index.mjs +0 -2
- package/esm2022/lib/components/typeahead/public-api.mjs +0 -4
- package/esm2022/lib/components/typeahead/typeahead.component.mjs +0 -490
- package/esm2022/lib/components/typeahead/typeahead.module.mjs +0 -59
- package/esm2022/lib/directives/autofocus/autofocus.directive.mjs +0 -17
- package/esm2022/lib/directives/autofocus/autofocus.module.mjs +0 -16
- package/esm2022/lib/directives/autofocus/index.mjs +0 -2
- package/esm2022/lib/directives/autofocus/public-api.mjs +0 -3
- package/esm2022/lib/directives/autogrow/autogrow.directive.mjs +0 -105
- package/esm2022/lib/directives/autogrow/autogrow.module.mjs +0 -20
- package/esm2022/lib/directives/autogrow/index.mjs +0 -2
- package/esm2022/lib/directives/autogrow/public-api.mjs +0 -3
- package/esm2022/lib/directives/chip-async-typeahead/chip-async-typeahead.directive.mjs +0 -39
- package/esm2022/lib/directives/chip-async-typeahead/index.mjs +0 -2
- package/esm2022/lib/directives/chip-async-typeahead/public-api.mjs +0 -2
- package/esm2022/lib/directives/chip-list/chip-list-items/chip-list-item-label.directive.mjs +0 -14
- package/esm2022/lib/directives/chip-list/chip-list-items/chip-list-items.component.mjs +0 -46
- package/esm2022/lib/directives/chip-list/chip-list.constant.mjs +0 -3
- package/esm2022/lib/directives/chip-list/chip-list.directive.mjs +0 -144
- package/esm2022/lib/directives/chip-list/chip-list.module.mjs +0 -40
- package/esm2022/lib/directives/chip-list/index.mjs +0 -2
- package/esm2022/lib/directives/chip-list/public-api.mjs +0 -5
- package/esm2022/lib/directives/draggable-list/draggable-list.directive.mjs +0 -94
- package/esm2022/lib/directives/draggable-list/draggable-list.module.mjs +0 -18
- package/esm2022/lib/directives/draggable-list/index.mjs +0 -2
- package/esm2022/lib/directives/draggable-list/public-api.mjs +0 -3
- package/esm2022/lib/directives/dropzone/dropzone.directive.mjs +0 -50
- package/esm2022/lib/directives/dropzone/dropzone.module.mjs +0 -18
- package/esm2022/lib/directives/dropzone/index.mjs +0 -2
- package/esm2022/lib/directives/dropzone/public-api.mjs +0 -3
- package/esm2022/lib/directives/image-error-placeholder/image-error-placeholder.directive.mjs +0 -26
- package/esm2022/lib/directives/image-error-placeholder/image-error-placeholder.module.mjs +0 -16
- package/esm2022/lib/directives/image-error-placeholder/index.mjs +0 -2
- package/esm2022/lib/directives/image-error-placeholder/public-api.mjs +0 -3
- package/esm2022/lib/directives/index.mjs +0 -2
- package/esm2022/lib/directives/material/index.mjs +0 -2
- package/esm2022/lib/directives/material/material.module.mjs +0 -25
- package/esm2022/lib/directives/material/nice-material-style.directive.mjs +0 -18
- package/esm2022/lib/directives/material/nice-rounded-style.directive.mjs +0 -18
- package/esm2022/lib/directives/material/public-api.mjs +0 -4
- package/esm2022/lib/directives/modals/index.mjs +0 -2
- package/esm2022/lib/directives/modals/modal-on-click.directive.mjs +0 -22
- package/esm2022/lib/directives/modals/modal-opener.directive.mjs +0 -31
- package/esm2022/lib/directives/modals/public-api.mjs +0 -3
- package/esm2022/lib/directives/public-api.mjs +0 -16
- package/esm2022/lib/directives/rerender/index.mjs +0 -2
- package/esm2022/lib/directives/rerender/public-api.mjs +0 -2
- package/esm2022/lib/directives/rerender/rerender.directive.mjs +0 -22
- package/esm2022/lib/directives/resolve/index.mjs +0 -2
- package/esm2022/lib/directives/resolve/public-api.mjs +0 -2
- package/esm2022/lib/directives/resolve/resolve.directive.mjs +0 -32
- package/esm2022/lib/directives/scroll-reset/index.mjs +0 -2
- package/esm2022/lib/directives/scroll-reset/public-api.mjs +0 -3
- package/esm2022/lib/directives/scroll-reset/scroll-reset.directive.mjs +0 -47
- package/esm2022/lib/directives/scroll-reset/scroll-reset.module.mjs +0 -20
- package/esm2022/lib/directives/scrollbar/index.mjs +0 -2
- package/esm2022/lib/directives/scrollbar/public-api.mjs +0 -3
- package/esm2022/lib/directives/scrollbar/scrollbar.directive.mjs +0 -309
- package/esm2022/lib/directives/scrollbar/scrollbar.module.mjs +0 -20
- package/esm2022/lib/directives/scrollbar/scrollbar.types.mjs +0 -15
- package/esm2022/lib/directives/stop-propagation/click-stop-propagation.directive.mjs +0 -18
- package/esm2022/lib/directives/stop-propagation/index.mjs +0 -2
- package/esm2022/lib/directives/stop-propagation/public-api.mjs +0 -3
- package/esm2022/lib/directives/stop-propagation/stop-propagation.module.mjs +0 -16
- package/esm2022/lib/directives/window/index.mjs +0 -2
- package/esm2022/lib/directives/window/prevent-close-window.directive.mjs +0 -18
- package/esm2022/lib/directives/window/public-api.mjs +0 -3
- package/esm2022/lib/directives/window/window-directive.module.mjs +0 -16
- package/esm2022/lib/nice.module.mjs +0 -124
- package/esm2022/lib/pipes/boolean.pipe.mjs +0 -22
- package/esm2022/lib/pipes/capitalize-first-letter.pipe.mjs +0 -18
- package/esm2022/lib/pipes/ceil.pipe.mjs +0 -14
- package/esm2022/lib/pipes/entries.pipe.mjs +0 -23
- package/esm2022/lib/pipes/find-by-key.pipe.mjs +0 -14
- package/esm2022/lib/pipes/first-letter.pipe.mjs +0 -14
- package/esm2022/lib/pipes/floor.pipe.mjs +0 -14
- package/esm2022/lib/pipes/index.mjs +0 -2
- package/esm2022/lib/pipes/join-if-defined.pipe.mjs +0 -20
- package/esm2022/lib/pipes/link.pipe.mjs +0 -25
- package/esm2022/lib/pipes/localized-boolean.pipe.mjs +0 -19
- package/esm2022/lib/pipes/localized-currency.pipe.mjs +0 -18
- package/esm2022/lib/pipes/localized-date-only.pipe.mjs +0 -21
- package/esm2022/lib/pipes/localized-date.pipe.mjs +0 -40
- package/esm2022/lib/pipes/minutes-to-time.pipe.mjs +0 -17
- package/esm2022/lib/pipes/number-to-ordinal-indicator.pipe.mjs +0 -23
- package/esm2022/lib/pipes/pad.pipe.mjs +0 -20
- package/esm2022/lib/pipes/phone.pipe.mjs +0 -23
- package/esm2022/lib/pipes/pipes.module.mjs +0 -177
- package/esm2022/lib/pipes/postal-code.pipe.mjs +0 -22
- package/esm2022/lib/pipes/public-api.mjs +0 -25
- package/esm2022/lib/pipes/range.pipe.mjs +0 -18
- package/esm2022/lib/pipes/round.pipe.mjs +0 -14
- package/esm2022/lib/pipes/sanitize-bypass.pipe.mjs +0 -24
- package/esm2022/lib/pipes/seconds-to-time.pipe.mjs +0 -18
- package/esm2022/lib/pipes/track-by-prop.pipe.mjs +0 -14
- package/esm2022/lib/providers/config/config.constants.mjs +0 -3
- package/esm2022/lib/providers/config/config.model.mjs +0 -2
- package/esm2022/lib/providers/config/config.module.mjs +0 -34
- package/esm2022/lib/providers/config/config.service.mjs +0 -51
- package/esm2022/lib/providers/config/index.mjs +0 -2
- package/esm2022/lib/providers/config/public-api.mjs +0 -3
- package/esm2022/lib/providers/index.mjs +0 -2
- package/esm2022/lib/providers/media-watcher/index.mjs +0 -2
- package/esm2022/lib/providers/media-watcher/media-watcher.module.mjs +0 -26
- package/esm2022/lib/providers/media-watcher/media-watcher.service.mjs +0 -106
- package/esm2022/lib/providers/media-watcher/public-api.mjs +0 -3
- package/esm2022/lib/providers/overlay/dynamic-overlay-container.service.mjs +0 -14
- package/esm2022/lib/providers/overlay/dynamic-overlay.service.mjs +0 -31
- package/esm2022/lib/providers/public-api.mjs +0 -5
- package/esm2022/lib/providers/splash-screen/index.mjs +0 -2
- package/esm2022/lib/providers/splash-screen/public-api.mjs +0 -3
- package/esm2022/lib/providers/splash-screen/splash-screen.module.mjs +0 -26
- package/esm2022/lib/providers/splash-screen/splash-screen.service.mjs +0 -45
- package/esm2022/lib/providers/utils/index.mjs +0 -2
- package/esm2022/lib/providers/utils/public-api.mjs +0 -3
- package/esm2022/lib/providers/utils/utils.module.mjs +0 -19
- package/esm2022/lib/providers/utils/utils.service.mjs +0 -27
- package/esm2022/lib/types/constructor.mjs +0 -5
- package/esm2022/lib/utils/array.utils.mjs +0 -106
- package/esm2022/lib/utils/case.utils.mjs +0 -58
- package/esm2022/lib/utils/colors.utils.mjs +0 -29
- package/esm2022/lib/utils/date.utils.mjs +0 -47
- package/esm2022/lib/utils/file.utils.mjs +0 -90
- package/esm2022/lib/utils/font-awesome.utils.mjs +0 -40
- package/esm2022/lib/utils/form-data.utils.mjs +0 -41
- package/esm2022/lib/utils/http-status.utils.mjs +0 -47
- package/esm2022/lib/utils/index.mjs +0 -2
- package/esm2022/lib/utils/keyboard.utils.mjs +0 -9
- package/esm2022/lib/utils/lexorank.utils.mjs +0 -28
- package/esm2022/lib/utils/modal.utils.mjs +0 -6
- package/esm2022/lib/utils/number.utils.mjs +0 -6
- package/esm2022/lib/utils/object.utils.mjs +0 -111
- package/esm2022/lib/utils/promise.utils.mjs +0 -7
- package/esm2022/lib/utils/public-api.mjs +0 -19
- package/esm2022/lib/utils/query-params.utils.mjs +0 -14
- package/esm2022/lib/utils/regex.utils.mjs +0 -11
- package/esm2022/lib/utils/type.utils.mjs +0 -15
- package/esm2022/lib/utils/url.utils.mjs +0 -20
- package/esm2022/public-api.mjs +0 -12
- package/esm2022/recursyve-nice-ui-kit.v2.mjs +0 -5
- package/lib/animations/defaults.d.ts +0 -13
- package/lib/animations/expand-collapse.d.ts +0 -2
- package/lib/animations/fade.d.ts +0 -11
- package/lib/animations/index.d.ts +0 -1
- package/lib/animations/public-api.d.ts +0 -1
- package/lib/animations/shake.d.ts +0 -2
- package/lib/animations/slide.d.ts +0 -9
- package/lib/animations/zoom.d.ts +0 -3
- package/lib/api/exceptions/api.exception.d.ts +0 -3
- package/lib/api/exceptions/exception.factory.d.ts +0 -6
- package/lib/api/index.d.ts +0 -1
- package/lib/api/interceptors/transform-response.interceptor.d.ts +0 -9
- package/lib/api/nice.api.d.ts +0 -33
- package/lib/api/public-api.d.ts +0 -4
- package/lib/components/alert/alert.component.d.ts +0 -64
- package/lib/components/alert/alert.module.d.ts +0 -10
- package/lib/components/alert/alert.service.d.ts +0 -24
- package/lib/components/alert/alert.types.d.ts +0 -3
- package/lib/components/alert/index.d.ts +0 -1
- package/lib/components/alert/public-api.d.ts +0 -4
- package/lib/components/assets-carousel/assets-carousel.component.d.ts +0 -88
- package/lib/components/assets-carousel/assets-carousel.constant.d.ts +0 -2
- package/lib/components/assets-carousel/assets-carousel.module.d.ts +0 -19
- package/lib/components/assets-carousel/directives/assets-carousel-active-content.directive.d.ts +0 -8
- package/lib/components/assets-carousel/index.d.ts +0 -1
- package/lib/components/assets-carousel/public-api.d.ts +0 -3
- package/lib/components/async-typeahead/async-typeahead.component.d.ts +0 -119
- package/lib/components/async-typeahead/async-typeahead.constant.d.ts +0 -2
- package/lib/components/async-typeahead/async-typeahead.module.d.ts +0 -19
- package/lib/components/async-typeahead/index.d.ts +0 -1
- package/lib/components/async-typeahead/providers/async-typeahead.provider.d.ts +0 -11
- package/lib/components/async-typeahead/providers/async-typeahead.service.d.ts +0 -51
- package/lib/components/async-typeahead/public-api.d.ts +0 -4
- package/lib/components/base-form/base-form.component.d.ts +0 -30
- package/lib/components/base-form/base-form.module.d.ts +0 -7
- package/lib/components/base-form/form-submit.directive.d.ts +0 -8
- package/lib/components/base-form/index.d.ts +0 -1
- package/lib/components/base-form/nice-base.form.d.ts +0 -4
- package/lib/components/base-form/public-api.d.ts +0 -4
- package/lib/components/card/card.component.d.ts +0 -21
- package/lib/components/card/card.module.d.ts +0 -8
- package/lib/components/card/card.types.d.ts +0 -1
- package/lib/components/card/index.d.ts +0 -1
- package/lib/components/card/public-api.d.ts +0 -2
- package/lib/components/carousel/carousel.component.d.ts +0 -23
- package/lib/components/carousel/carousel.constant.d.ts +0 -2
- package/lib/components/carousel/carousel.module.d.ts +0 -17
- package/lib/components/carousel/index.d.ts +0 -1
- package/lib/components/carousel/interfaces/carousel-options.interface.d.ts +0 -9
- package/lib/components/carousel/picture-modal/index.d.ts +0 -1
- package/lib/components/carousel/picture-modal/picture-modal.component.d.ts +0 -6
- package/lib/components/carousel/picture-modal/picture-modal.service.d.ts +0 -12
- package/lib/components/carousel/picture-modal/public-api.d.ts +0 -2
- package/lib/components/carousel/pipe/carousel-layout.pipe.d.ts +0 -7
- package/lib/components/carousel/public-api.d.ts +0 -3
- package/lib/components/collapsable/collapsable.component.d.ts +0 -15
- package/lib/components/collapsable/collapsable.module.d.ts +0 -9
- package/lib/components/collapsable/index.d.ts +0 -1
- package/lib/components/collapsable/public-api.d.ts +0 -2
- package/lib/components/date-range-picker/components/header/header.component.d.ts +0 -20
- package/lib/components/date-range-picker/components/range-preset/range-preset.component.d.ts +0 -23
- package/lib/components/date-range-picker/date-range-picker.component.d.ts +0 -28
- package/lib/components/date-range-picker/date-range-picker.module.d.ts +0 -18
- package/lib/components/date-range-picker/index.d.ts +0 -1
- package/lib/components/date-range-picker/providers/date-range-picker.service.d.ts +0 -8
- package/lib/components/date-range-picker/public-api.d.ts +0 -2
- package/lib/components/drawer/drawer.component.d.ts +0 -115
- package/lib/components/drawer/drawer.module.d.ts +0 -9
- package/lib/components/drawer/drawer.service.d.ts +0 -23
- package/lib/components/drawer/drawer.types.d.ts +0 -2
- package/lib/components/drawer/index.d.ts +0 -1
- package/lib/components/drawer/public-api.d.ts +0 -4
- package/lib/components/export-bottom-sheet/export-bottom-sheet.component.d.ts +0 -17
- package/lib/components/export-bottom-sheet/export-bottom-sheet.module.d.ts +0 -18
- package/lib/components/export-bottom-sheet/index.d.ts +0 -1
- package/lib/components/export-bottom-sheet/models/export-strategy.model.d.ts +0 -5
- package/lib/components/export-bottom-sheet/providers/export-bottom-sheet.service.d.ts +0 -12
- package/lib/components/export-bottom-sheet/public-api.d.ts +0 -4
- package/lib/components/form-error/control-status.directive.d.ts +0 -20
- package/lib/components/form-error/form-error.component.d.ts +0 -8
- package/lib/components/form-error/form-error.module.d.ts +0 -10
- package/lib/components/form-error/index.d.ts +0 -1
- package/lib/components/form-error/public-api.d.ts +0 -3
- package/lib/components/horizontal-stepper/horizontal-stepper.component.d.ts +0 -8
- package/lib/components/horizontal-stepper/horizontal-stepper.module.d.ts +0 -11
- package/lib/components/horizontal-stepper/index.d.ts +0 -1
- package/lib/components/horizontal-stepper/public-api.d.ts +0 -3
- package/lib/components/horizontal-stepper/step.component.d.ts +0 -6
- package/lib/components/image-cropper/image-cropper.component.d.ts +0 -374
- package/lib/components/image-cropper/image-cropper.module.d.ts +0 -10
- package/lib/components/image-cropper/index.d.ts +0 -1
- package/lib/components/image-cropper/public-api.d.ts +0 -2
- package/lib/components/image-cropper/resize-canvas.d.ts +0 -1
- package/lib/components/index.d.ts +0 -1
- package/lib/components/layout/index.d.ts +0 -1
- package/lib/components/layout/layout.component.d.ts +0 -39
- package/lib/components/layout/layout.module.d.ts +0 -7
- package/lib/components/layout/public-api.d.ts +0 -2
- package/lib/components/loading-spinner/index.d.ts +0 -1
- package/lib/components/loading-spinner/loading-spinner.component.d.ts +0 -9
- package/lib/components/loading-spinner/loading-spinner.module.d.ts +0 -13
- package/lib/components/loading-spinner/loading.constant.d.ts +0 -2
- package/lib/components/loading-spinner/loading.directive.d.ts +0 -17
- package/lib/components/loading-spinner/public-api.d.ts +0 -3
- package/lib/components/loading-toast/index.d.ts +0 -1
- package/lib/components/loading-toast/loading-toast.component.d.ts +0 -19
- package/lib/components/loading-toast/loading-toast.constant.d.ts +0 -2
- package/lib/components/loading-toast/loading-toast.directive.d.ts +0 -18
- package/lib/components/loading-toast/loading-toast.module.d.ts +0 -16
- package/lib/components/loading-toast/loading-toast.service.d.ts +0 -20
- package/lib/components/loading-toast/public-api.d.ts +0 -5
- package/lib/components/loading-toast/rxjs/show-loading-toast.operator.d.ts +0 -6
- package/lib/components/lottie/index.d.ts +0 -1
- package/lib/components/lottie/lottie.component.d.ts +0 -19
- package/lib/components/lottie/lottie.module.d.ts +0 -8
- package/lib/components/lottie/public-api.d.ts +0 -2
- package/lib/components/navigation/components/hint-component-base.d.ts +0 -65
- package/lib/components/navigation/directives/show-hint.directive.d.ts +0 -39
- package/lib/components/navigation/horizontal/components/basic/basic.component.d.ts +0 -29
- package/lib/components/navigation/horizontal/components/branch/branch.component.d.ts +0 -38
- package/lib/components/navigation/horizontal/components/divider/divider.component.d.ts +0 -26
- package/lib/components/navigation/horizontal/components/spacer/spacer.component.d.ts +0 -26
- package/lib/components/navigation/horizontal/horizontal.component.d.ts +0 -22
- package/lib/components/navigation/index.d.ts +0 -1
- package/lib/components/navigation/navigation.component.d.ts +0 -32
- package/lib/components/navigation/navigation.module.d.ts +0 -32
- package/lib/components/navigation/navigation.service.d.ts +0 -69
- package/lib/components/navigation/navigation.types.d.ts +0 -42
- package/lib/components/navigation/pipes/should-hide.pipe.d.ts +0 -11
- package/lib/components/navigation/pipes/should-show-hint.pipe.d.ts +0 -12
- package/lib/components/navigation/pipes/translate-with-context.pipe.d.ts +0 -12
- package/lib/components/navigation/providers/hide-item.resolver.d.ts +0 -5
- package/lib/components/navigation/providers/hint.resolver.d.ts +0 -4
- package/lib/components/navigation/providers/hint.service.d.ts +0 -9
- package/lib/components/navigation/providers/translation-context.service.d.ts +0 -8
- package/lib/components/navigation/public-api.d.ts +0 -19
- package/lib/components/navigation/vertical/components/aside/aside.component.d.ts +0 -55
- package/lib/components/navigation/vertical/components/basic/basic.component.d.ts +0 -35
- package/lib/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +0 -68
- package/lib/components/navigation/vertical/components/divider/divider.component.d.ts +0 -26
- package/lib/components/navigation/vertical/components/group/group.component.d.ts +0 -36
- package/lib/components/navigation/vertical/components/spacer/spacer.component.d.ts +0 -26
- package/lib/components/navigation/vertical/vertical.component.d.ts +0 -168
- package/lib/components/public-api.d.ts +0 -24
- package/lib/components/search-bar/index.d.ts +0 -1
- package/lib/components/search-bar/public-api.d.ts +0 -2
- package/lib/components/search-bar/search-bar.component.d.ts +0 -20
- package/lib/components/search-bar/search-bar.module.d.ts +0 -12
- package/lib/components/sweet-alert/index.d.ts +0 -1
- package/lib/components/sweet-alert/public-api.d.ts +0 -4
- package/lib/components/sweet-alert/sweet-alert.component.d.ts +0 -27
- package/lib/components/sweet-alert/sweet-alert.constant.d.ts +0 -2
- package/lib/components/sweet-alert/sweet-alert.directive.d.ts +0 -13
- package/lib/components/sweet-alert/sweet-alert.module.d.ts +0 -16
- package/lib/components/sweet-alert/sweet-alert.service.d.ts +0 -32
- package/lib/components/toast/index.d.ts +0 -1
- package/lib/components/toast/public-api.d.ts +0 -5
- package/lib/components/toast/rxjs/show-success-or-error-toast.operator.d.ts +0 -37
- package/lib/components/toast/rxjs/show-toast.operator.d.ts +0 -20
- package/lib/components/toast/toast.component.d.ts +0 -17
- package/lib/components/toast/toast.constant.d.ts +0 -2
- package/lib/components/toast/toast.module.d.ts +0 -15
- package/lib/components/toast/toast.service.d.ts +0 -25
- package/lib/components/toggle-button-group/index.d.ts +0 -1
- package/lib/components/toggle-button-group/public-api.d.ts +0 -3
- package/lib/components/toggle-button-group/toggle-button-group.component.d.ts +0 -26
- package/lib/components/toggle-button-group/toggle-button-group.module.d.ts +0 -10
- package/lib/components/toggle-button-group/toggle-button.component.d.ts +0 -8
- package/lib/components/translation-form/components/textarea/translation-form-textarea.component.d.ts +0 -9
- package/lib/components/translation-form/components/textfield/translation-form-textfield.component.d.ts +0 -6
- package/lib/components/translation-form/components/translation-form.component.d.ts +0 -56
- package/lib/components/translation-form/components/translation-form.module.d.ts +0 -16
- package/lib/components/translation-form/decorators/translation-form-group.decorator.d.ts +0 -1
- package/lib/components/translation-form/directives/translation-context.directive.d.ts +0 -17
- package/lib/components/translation-form/index.d.ts +0 -1
- package/lib/components/translation-form/providers/nice-translation-form.service.d.ts +0 -16
- package/lib/components/translation-form/public-api.d.ts +0 -10
- package/lib/components/translation-form/toggle/translation-toggle.component.d.ts +0 -14
- package/lib/components/translation-form/translation.form.d.ts +0 -5
- package/lib/components/translation-form/validators/require-for-languages.validator.d.ts +0 -14
- package/lib/components/typeahead/directives/options-scroll.directive.d.ts +0 -19
- package/lib/components/typeahead/directives/options-scroll.module.d.ts +0 -7
- package/lib/components/typeahead/index.d.ts +0 -1
- package/lib/components/typeahead/public-api.d.ts +0 -3
- package/lib/components/typeahead/typeahead.component.d.ts +0 -101
- package/lib/components/typeahead/typeahead.module.d.ts +0 -17
- package/lib/directives/autofocus/autofocus.directive.d.ts +0 -9
- package/lib/directives/autofocus/autofocus.module.d.ts +0 -7
- package/lib/directives/autofocus/index.d.ts +0 -1
- package/lib/directives/autofocus/public-api.d.ts +0 -2
- package/lib/directives/autogrow/autogrow.directive.d.ts +0 -37
- package/lib/directives/autogrow/autogrow.module.d.ts +0 -7
- package/lib/directives/autogrow/index.d.ts +0 -1
- package/lib/directives/autogrow/public-api.d.ts +0 -2
- package/lib/directives/chip-async-typeahead/chip-async-typeahead.directive.d.ts +0 -14
- package/lib/directives/chip-async-typeahead/index.d.ts +0 -1
- package/lib/directives/chip-async-typeahead/public-api.d.ts +0 -1
- package/lib/directives/chip-list/chip-list-items/chip-list-item-label.directive.d.ts +0 -8
- package/lib/directives/chip-list/chip-list-items/chip-list-items.component.d.ts +0 -26
- package/lib/directives/chip-list/chip-list.constant.d.ts +0 -2
- package/lib/directives/chip-list/chip-list.directive.d.ts +0 -32
- package/lib/directives/chip-list/chip-list.module.d.ts +0 -14
- package/lib/directives/chip-list/index.d.ts +0 -1
- package/lib/directives/chip-list/public-api.d.ts +0 -4
- package/lib/directives/draggable-list/draggable-list.directive.d.ts +0 -24
- package/lib/directives/draggable-list/draggable-list.module.d.ts +0 -8
- package/lib/directives/draggable-list/index.d.ts +0 -1
- package/lib/directives/draggable-list/public-api.d.ts +0 -2
- package/lib/directives/dropzone/dropzone.directive.d.ts +0 -11
- package/lib/directives/dropzone/dropzone.module.d.ts +0 -7
- package/lib/directives/dropzone/index.d.ts +0 -1
- package/lib/directives/dropzone/public-api.d.ts +0 -2
- package/lib/directives/image-error-placeholder/image-error-placeholder.directive.d.ts +0 -11
- package/lib/directives/image-error-placeholder/image-error-placeholder.module.d.ts +0 -7
- package/lib/directives/image-error-placeholder/index.d.ts +0 -1
- package/lib/directives/image-error-placeholder/public-api.d.ts +0 -2
- package/lib/directives/index.d.ts +0 -1
- package/lib/directives/material/index.d.ts +0 -1
- package/lib/directives/material/material.module.d.ts +0 -8
- package/lib/directives/material/nice-material-style.directive.d.ts +0 -9
- package/lib/directives/material/nice-rounded-style.directive.d.ts +0 -9
- package/lib/directives/material/public-api.d.ts +0 -3
- package/lib/directives/modals/index.d.ts +0 -1
- package/lib/directives/modals/modal-on-click.directive.d.ts +0 -10
- package/lib/directives/modals/modal-opener.directive.d.ts +0 -14
- package/lib/directives/modals/public-api.d.ts +0 -2
- package/lib/directives/public-api.d.ts +0 -15
- package/lib/directives/rerender/index.d.ts +0 -1
- package/lib/directives/rerender/public-api.d.ts +0 -1
- package/lib/directives/rerender/rerender.directive.d.ts +0 -10
- package/lib/directives/resolve/index.d.ts +0 -1
- package/lib/directives/resolve/public-api.d.ts +0 -1
- package/lib/directives/resolve/resolve.directive.d.ts +0 -18
- package/lib/directives/scroll-reset/index.d.ts +0 -1
- package/lib/directives/scroll-reset/public-api.d.ts +0 -2
- package/lib/directives/scroll-reset/scroll-reset.directive.d.ts +0 -22
- package/lib/directives/scroll-reset/scroll-reset.module.d.ts +0 -7
- package/lib/directives/scrollbar/index.d.ts +0 -1
- package/lib/directives/scrollbar/public-api.d.ts +0 -2
- package/lib/directives/scrollbar/scrollbar.directive.d.ts +0 -112
- package/lib/directives/scrollbar/scrollbar.module.d.ts +0 -7
- package/lib/directives/scrollbar/scrollbar.types.d.ts +0 -12
- package/lib/directives/stop-propagation/click-stop-propagation.directive.d.ts +0 -6
- package/lib/directives/stop-propagation/index.d.ts +0 -1
- package/lib/directives/stop-propagation/public-api.d.ts +0 -2
- package/lib/directives/stop-propagation/stop-propagation.module.d.ts +0 -7
- package/lib/directives/window/index.d.ts +0 -1
- package/lib/directives/window/prevent-close-window.directive.d.ts +0 -6
- package/lib/directives/window/public-api.d.ts +0 -2
- package/lib/directives/window/window-directive.module.d.ts +0 -7
- package/lib/nice.module.d.ts +0 -13
- package/lib/pipes/boolean.pipe.d.ts +0 -10
- package/lib/pipes/capitalize-first-letter.pipe.d.ts +0 -7
- package/lib/pipes/ceil.pipe.d.ts +0 -7
- package/lib/pipes/entries.pipe.d.ts +0 -10
- package/lib/pipes/find-by-key.pipe.d.ts +0 -7
- package/lib/pipes/first-letter.pipe.d.ts +0 -7
- package/lib/pipes/floor.pipe.d.ts +0 -7
- package/lib/pipes/index.d.ts +0 -1
- package/lib/pipes/join-if-defined.pipe.d.ts +0 -7
- package/lib/pipes/link.pipe.d.ts +0 -15
- package/lib/pipes/localized-boolean.pipe.d.ts +0 -10
- package/lib/pipes/localized-currency.pipe.d.ts +0 -10
- package/lib/pipes/localized-date-only.pipe.d.ts +0 -10
- package/lib/pipes/localized-date.pipe.d.ts +0 -11
- package/lib/pipes/minutes-to-time.pipe.d.ts +0 -7
- package/lib/pipes/number-to-ordinal-indicator.pipe.d.ts +0 -7
- package/lib/pipes/pad.pipe.d.ts +0 -7
- package/lib/pipes/phone.pipe.d.ts +0 -10
- package/lib/pipes/pipes.module.d.ts +0 -29
- package/lib/pipes/postal-code.pipe.d.ts +0 -10
- package/lib/pipes/public-api.d.ts +0 -24
- package/lib/pipes/range.pipe.d.ts +0 -7
- package/lib/pipes/round.pipe.d.ts +0 -7
- package/lib/pipes/sanitize-bypass.pipe.d.ts +0 -10
- package/lib/pipes/seconds-to-time.pipe.d.ts +0 -7
- package/lib/pipes/track-by-prop.pipe.d.ts +0 -7
- package/lib/providers/config/config.constants.d.ts +0 -2
- package/lib/providers/config/config.model.d.ts +0 -14
- package/lib/providers/config/config.module.d.ts +0 -18
- package/lib/providers/config/config.service.d.ts +0 -21
- package/lib/providers/config/index.d.ts +0 -1
- package/lib/providers/config/public-api.d.ts +0 -2
- package/lib/providers/index.d.ts +0 -1
- package/lib/providers/media-watcher/index.d.ts +0 -1
- package/lib/providers/media-watcher/media-watcher.module.d.ts +0 -12
- package/lib/providers/media-watcher/media-watcher.service.d.ts +0 -27
- package/lib/providers/media-watcher/public-api.d.ts +0 -2
- package/lib/providers/overlay/dynamic-overlay-container.service.d.ts +0 -7
- package/lib/providers/overlay/dynamic-overlay.service.d.ts +0 -14
- package/lib/providers/public-api.d.ts +0 -4
- package/lib/providers/splash-screen/index.d.ts +0 -1
- package/lib/providers/splash-screen/public-api.d.ts +0 -2
- package/lib/providers/splash-screen/splash-screen.module.d.ts +0 -12
- package/lib/providers/splash-screen/splash-screen.service.d.ts +0 -20
- package/lib/providers/utils/index.d.ts +0 -1
- package/lib/providers/utils/public-api.d.ts +0 -2
- package/lib/providers/utils/utils.module.d.ts +0 -9
- package/lib/providers/utils/utils.service.d.ts +0 -9
- package/lib/types/constructor.d.ts +0 -5
- package/lib/utils/array.utils.d.ts +0 -24
- package/lib/utils/case.utils.d.ts +0 -9
- package/lib/utils/colors.utils.d.ts +0 -9
- package/lib/utils/date.utils.d.ts +0 -11
- package/lib/utils/file.utils.d.ts +0 -13
- package/lib/utils/font-awesome.utils.d.ts +0 -3
- package/lib/utils/form-data.utils.d.ts +0 -4
- package/lib/utils/http-status.utils.d.ts +0 -45
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/keyboard.utils.d.ts +0 -7
- package/lib/utils/lexorank.utils.d.ts +0 -6
- package/lib/utils/modal.utils.d.ts +0 -7
- package/lib/utils/number.utils.d.ts +0 -7
- package/lib/utils/object.utils.d.ts +0 -10
- package/lib/utils/promise.utils.d.ts +0 -7
- package/lib/utils/public-api.d.ts +0 -18
- package/lib/utils/query-params.utils.d.ts +0 -3
- package/lib/utils/regex.utils.d.ts +0 -7
- package/lib/utils/type.utils.d.ts +0 -6
- package/lib/utils/url.utils.d.ts +0 -6
- package/public-api.d.ts +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recursyve-nice-ui-kit.v2.mjs","sources":["../../../projects/nice-ui-kit-v2/src/lib/animations/defaults.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/expand-collapse.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/fade.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/shake.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/slide.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/zoom.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/public-api.ts","../../../projects/nice-ui-kit-v2/src/lib/api/exceptions/api.exception.ts","../../../projects/nice-ui-kit-v2/src/lib/api/exceptions/exception.factory.ts","../../../projects/nice-ui-kit-v2/src/lib/api/interceptors/transform-response.interceptor.ts","../../../projects/nice-ui-kit-v2/src/lib/api/nice.api.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/utils/utils.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/utils/utils.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/alert/alert.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/alert/alert.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/alert/alert.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/alert/alert.module.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/type.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/array.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/case.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/colors.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/date.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/file.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/font-awesome.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/form-data.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/http-status.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/keyboard.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/lexorank.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/modal.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/number.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/object.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/promise.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/query-params.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/regex.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/url.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/assets-carousel.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/directives/assets-carousel-active-content.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/dropzone/dropzone.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/assets-carousel.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/assets-carousel.template.html","../../../projects/nice-ui-kit-v2/src/lib/directives/dropzone/dropzone.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/assets-carousel.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/providers/async-typeahead.provider.ts","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/directives/options-scroll.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/typeahead.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/typeahead.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/directives/options-scroll.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/typeahead.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/async-typeahead.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/providers/async-typeahead.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/async-typeahead.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/async-typeahead.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/async-typeahead.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/base-form/base-form.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/base-form/form-submit.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/base-form/base-form.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/base-form/nice-base.form.ts","../../../projects/nice-ui-kit-v2/src/lib/components/card/card.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/card/card.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/card/card.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/picture-modal/picture-modal.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/picture-modal/picture-modal.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/picture-modal/picture-modal.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/carousel.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/pipe/carousel-layout.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/carousel.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/carousel.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/carousel.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/collapsable/collapsable.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/collapsable/collapsable.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/collapsable/collapsable.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/providers/date-range-picker.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/components/range-preset/range-preset.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/components/range-preset/range-preset.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/components/header/header.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/components/header/header.template.html","../../../projects/nice-ui-kit-v2/src/lib/pipes/localized-date.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/date-range-picker.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/date-range-picker.template.html","../../../projects/nice-ui-kit-v2/src/lib/pipes/boolean.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/capitalize-first-letter.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/ceil.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/entries.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/find-by-key.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/first-letter.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/floor.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/join-if-defined.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/link.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/localized-boolean.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/localized-currency.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/localized-date-only.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/minutes-to-time.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/number-to-ordinal-indicator.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/pad.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/phone.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/postal-code.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/round.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/range.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/seconds-to-time.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/sanitize-bypass.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/track-by-prop.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/pipes.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/date-range-picker.module.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/config/config.constants.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/config/config.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/config/config.module.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/media-watcher/media-watcher.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/media-watcher/media-watcher.module.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/splash-screen/splash-screen.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/splash-screen/splash-screen.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/drawer/drawer.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/drawer/drawer.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/drawer/drawer.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/drawer/drawer.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/export-bottom-sheet/providers/export-bottom-sheet.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/export-bottom-sheet/export-bottom-sheet.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/export-bottom-sheet/export-bottom-sheet.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/export-bottom-sheet/export-bottom-sheet.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/form-error/form-error.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/form-error/control-status.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/form-error/form-error.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/horizontal-stepper/horizontal-stepper.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/horizontal-stepper/horizontal-stepper.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/horizontal-stepper/step.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/horizontal-stepper/horizontal-stepper.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/resize-canvas.ts","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/image-cropper.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/image-cropper.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/image-cropper-area.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/image-cropper.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/layout/layout.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/layout/layout.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading-spinner.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading-spinner.template.html","../../../projects/nice-ui-kit-v2/src/lib/providers/overlay/dynamic-overlay-container.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/overlay/dynamic-overlay.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading-spinner.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/rxjs/show-loading-toast.operator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/lottie/lottie.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/lottie/lottie.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/lottie/lottie.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/components/hint-component-base.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/navigation.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/providers/translation-context.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/navigation.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/pipes/translate-with-context.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/basic/basic.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/basic/basic.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/divider/divider.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/divider/divider.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/pipes/should-hide.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/branch/branch.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/branch/branch.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/spacer/spacer.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/spacer/spacer.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/horizontal.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/horizontal.component.html","../../../projects/nice-ui-kit-v2/src/lib/directives/scrollbar/scrollbar.types.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/scrollbar/scrollbar.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/scrollbar/scrollbar.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/providers/hint.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/directives/show-hint.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/pipes/should-show-hint.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/basic/basic.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/basic/basic.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/divider/divider.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/divider/divider.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/spacer/spacer.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/spacer/spacer.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/collapsable/collapsable.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/collapsable/collapsable.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/group/group.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/group/group.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/aside/aside.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/aside/aside.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/vertical.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/vertical.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/navigation.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/providers/hide-item.resolver.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/providers/hint.resolver.ts","../../../projects/nice-ui-kit-v2/src/lib/components/search-bar/search-bar.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/search-bar/search-bar.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/search-bar/search-bar.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/rxjs/show-toast.operator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/rxjs/show-success-or-error-toast.operator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toggle-button-group/toggle-button.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toggle-button-group/toggle-button-group.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toggle-button-group/toggle-button-group.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/toggle-button-group/toggle-button-group.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/providers/nice-translation-form.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/directives/translation-context.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/toggle/translation-toggle.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/toggle/translation-toggle.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/translation-form.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/textarea/translation-form-textarea.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/textarea/translation-form-textarea.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/textfield/translation-form-textfield.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/textfield/translation-form-textfield.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/validators/require-for-languages.validator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/translation-form.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/decorators/translation-form-group.decorator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/translation.form.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/autofocus/autofocus.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/autofocus/autofocus.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/autogrow/autogrow.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/autogrow/autogrow.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-async-typeahead/chip-async-typeahead.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list-items/chip-list-item-label.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list-items/chip-list-items.component.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list-items/chip-list-items.template.html","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/draggable-list/draggable-list.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/draggable-list/draggable-list.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/image-error-placeholder/image-error-placeholder.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/image-error-placeholder/image-error-placeholder.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/material/nice-material-style.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/material/nice-rounded-style.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/material/material.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/modals/modal-opener.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/modals/modal-on-click.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/scroll-reset/scroll-reset.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/scroll-reset/scroll-reset.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/stop-propagation/click-stop-propagation.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/stop-propagation/stop-propagation.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/window/prevent-close-window.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/window/window-directive.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/rerender/rerender.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/resolve/resolve.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/nice.module.ts","../../../projects/nice-ui-kit-v2/src/public-api.ts","../../../projects/nice-ui-kit-v2/src/recursyve-nice-ui-kit.v2.ts"],"sourcesContent":["import { animate, animation, style, transition, trigger, useAnimation } from \"@angular/animations\";\n\nexport class NiceAnimationCurves {\n static STANDARD_CURVE = \"cubic-bezier(0.4, 0.0, 0.2, 1)\";\n static DECELERATION_CURVE = \"cubic-bezier(0.0, 0.0, 0.2, 1)\";\n static ACCELERATION_CURVE = \"cubic-bezier(0.4, 0.0, 1, 1)\";\n static SHARP_CURVE = \"cubic-bezier(0.4, 0.0, 0.6, 1)\";\n}\n\nexport class NiceAnimationDurations {\n static COMPLEX = \"375ms\";\n static ENTERING = \"225ms\";\n static EXITING = \"195ms\";\n}\n\nconst customAnimation = animation([\n style({\n opacity: \"{{opacity}}\",\n transform: \"scale({{scale}}) translate3d({{x}}, {{y}}, {{z}})\"\n }),\n animate(\"{{duration}} {{delay}} cubic-bezier(0.0, 0.0, 0.2, 1)\", style(\"*\"))\n], {\n params: {\n duration: \"200ms\",\n delay: \"0ms\",\n opacity: \"0\",\n scale: \"1\",\n x: \"0\",\n y: \"0\",\n z: \"0\"\n }\n});\n\nconst defaultAnimation = trigger(\"animate\", [transition(\"void => *\", [useAnimation(customAnimation)])]);\n\nexport { defaultAnimation };\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { NiceAnimationCurves, NiceAnimationDurations } from \"./defaults\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Expand / collapse\n// -----------------------------------------------------------------------------------------------------\nconst expandCollapse = trigger(\"expandCollapse\",\n [\n state(\"void, collapsed\",\n style({\n height: \"0\"\n })\n ),\n\n state(\"*, expanded\",\n style(\"*\")\n ),\n\n // Prevent the transition if the state is false\n transition(\"void <=> false, collapsed <=> false, expanded <=> false\", []),\n\n // Transition\n transition(\"void <=> *, collapsed <=> expanded\",\n animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\nexport { expandCollapse };\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { NiceAnimationCurves, NiceAnimationDurations } from \"./defaults\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in\n// -----------------------------------------------------------------------------------------------------\nconst fadeIn = trigger(\"fadeIn\",\n [\n state(\"void\",\n style({\n opacity: 0\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in top\n// -----------------------------------------------------------------------------------------------------\nconst fadeInTop = trigger(\"fadeInTop\",\n [\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(0, -100%, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in bottom\n// -----------------------------------------------------------------------------------------------------\nconst fadeInBottom = trigger(\"fadeInBottom\",\n [\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(0, 100%, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in left\n// -----------------------------------------------------------------------------------------------------\nconst fadeInLeft = trigger(\"fadeInLeft\",\n [\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(-100%, 0, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in right\n// -----------------------------------------------------------------------------------------------------\nconst fadeInRight = trigger(\"fadeInRight\",\n [\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(100%, 0, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out\n// -----------------------------------------------------------------------------------------------------\nconst fadeOut = trigger(\"fadeOut\",\n [\n state(\"*\",\n style({\n opacity: 1\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out top\n// -----------------------------------------------------------------------------------------------------\nconst fadeOutTop = trigger(\"fadeOutTop\",\n [\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(0, -100%, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out bottom\n// -----------------------------------------------------------------------------------------------------\nconst fadeOutBottom = trigger(\"fadeOutBottom\",\n [\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(0, 100%, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out left\n// -----------------------------------------------------------------------------------------------------\nconst fadeOutLeft = trigger(\"fadeOutLeft\",\n [\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(-100%, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out right\n// -----------------------------------------------------------------------------------------------------\nconst fadeOutRight = trigger(\"fadeOutRight\",\n [\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(100%, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\nexport { fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight, fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight };\n","import { animate, keyframes, style, transition, trigger } from \"@angular/animations\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Shake\n// -----------------------------------------------------------------------------------------------------\nconst shake = trigger(\"shake\",\n [\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *, * => true\",\n [\n animate(\"{{timings}}\",\n keyframes([\n style({\n transform: \"translate3d(0, 0, 0)\",\n offset: 0\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.1\n }),\n style({\n transform: \"translate3d(10px, 0, 0)\",\n offset: 0.2\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.3\n }),\n style({\n transform: \"translate3d(10px, 0, 0)\",\n offset: 0.4\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.5\n }),\n style({\n transform: \"translate3d(10px, 0, 0)\",\n offset: 0.6\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.7\n }),\n style({\n transform: \"translate3d(10px, 0, 0)\",\n offset: 0.8\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.9\n }),\n style({\n transform: \"translate3d(0, 0, 0)\",\n offset: 1\n })\n ])\n )\n ],\n {\n params: {\n timings: \"0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955)\"\n }\n }\n )\n ]\n);\n\nexport { shake };\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { NiceAnimationCurves, NiceAnimationDurations } from \"./defaults\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide in top\n// -----------------------------------------------------------------------------------------------------\nconst slideInTop = trigger(\"slideInTop\",\n [\n state(\"void\",\n style({\n transform: \"translate3d(0, -100%, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide in bottom\n// -----------------------------------------------------------------------------------------------------\nconst slideInBottom = trigger(\"slideInBottom\",\n [\n state(\"void\",\n style({\n transform: \"translate3d(0, 100%, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide in left\n// -----------------------------------------------------------------------------------------------------\nconst slideInLeft = trigger(\"slideInLeft\",\n [\n state(\"void\",\n style({\n transform: \"translate3d(-100%, 0, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide in right\n// -----------------------------------------------------------------------------------------------------\nconst slideInRight = trigger(\"slideInRight\",\n [\n state(\"void\",\n style({\n transform: \"translate3d(100%, 0, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide out top\n// -----------------------------------------------------------------------------------------------------\nconst slideOutTop = trigger(\"slideOutTop\",\n [\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n transform: \"translate3d(0, -100%, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide out bottom\n// -----------------------------------------------------------------------------------------------------\nconst slideOutBottom = trigger(\"slideOutBottom\",\n [\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n transform: \"translate3d(0, 100%, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide out left\n// -----------------------------------------------------------------------------------------------------\nconst slideOutLeft = trigger(\"slideOutLeft\",\n [\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n transform: \"translate3d(-100%, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide out right\n// -----------------------------------------------------------------------------------------------------\nconst slideOutRight = trigger(\"slideOutRight\",\n [\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n transform: \"translate3d(100%, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\nexport { slideInTop, slideInBottom, slideInLeft, slideInRight, slideOutTop, slideOutBottom, slideOutLeft, slideOutRight };\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { NiceAnimationCurves, NiceAnimationDurations } from \"./defaults\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Zoom in\n// -----------------------------------------------------------------------------------------------------\nconst zoomIn = trigger(\"zoomIn\",\n [\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"scale(0.5)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"scale(1)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Zoom out\n// -----------------------------------------------------------------------------------------------------\nconst zoomOut = trigger(\"zoomOut\",\n [\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"scale(1)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"scale(0.5)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\nexport { zoomIn, zoomOut };\n\n","import { defaultAnimation } from \"./defaults\";\nimport { expandCollapse } from \"./expand-collapse\";\nimport {\n fadeIn,\n fadeInBottom,\n fadeInLeft,\n fadeInRight,\n fadeInTop,\n fadeOut,\n fadeOutBottom,\n fadeOutLeft,\n fadeOutRight,\n fadeOutTop\n} from \"./fade\";\nimport { shake } from \"./shake\";\nimport { slideInBottom, slideInLeft, slideInRight, slideInTop, slideOutBottom, slideOutLeft, slideOutRight, slideOutTop } from \"./slide\";\nimport { zoomIn, zoomOut } from \"./zoom\";\n\nexport const niceAnimations = [\n defaultAnimation,\n expandCollapse,\n fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight,\n fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight,\n shake,\n slideInTop, slideInBottom, slideInLeft, slideInRight,\n slideOutTop, slideOutBottom, slideOutLeft, slideOutRight,\n zoomIn, zoomOut\n];\n","export abstract class NiceApiException<Code> {\n public abstract code: Code;\n}\n","import { HttpErrorResponse } from \"@angular/common/http\";\nimport { NiceApiException } from \"./api.exception\";\n\nexport abstract class NiceHttpExceptionFactory<Code = any> {\n public transform(error: HttpErrorResponse): NiceApiException<Code> | HttpErrorResponse {\n if (error.error?.message === undefined) {\n return error;\n }\n return this.transformCodeError(error.error.message, error.error);\n }\n\n protected abstract transformCodeError(code: Code, data: any): NiceApiException<Code>;\n}\n","import { HttpContextToken, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from \"@angular/common/http\";\nimport { Injectable, Type } from \"@angular/core\";\nimport { plainToInstance } from \"class-transformer\";\nimport { map } from \"rxjs/operators\";\n\nexport const TRANSFORM_TYPE = new HttpContextToken<Type<any>>(() => null);\n\n@Injectable()\nexport class NiceTransformResponseInterceptor implements HttpInterceptor {\n public intercept(req: HttpRequest<any>, next: HttpHandler) {\n return next.handle(req).pipe(\n map(event => {\n if (event instanceof HttpResponse) {\n const type = req.context.get(TRANSFORM_TYPE);\n if (!type) {\n return event;\n }\n\n return event.clone({\n body: plainToInstance(type, event.body)\n });\n }\n\n return event;\n })\n );\n }\n}\n","import { HttpClient, HttpContext, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Type } from \"@angular/core\";\nimport { catchError, Observable } from \"rxjs\";\nimport { AbstractConstructor, Constructor } from \"../types/constructor\";\nimport { NiceHttpExceptionFactory } from \"./exceptions/exception.factory\";\nimport { TRANSFORM_TYPE } from \"./interceptors/transform-response.interceptor\";\n\nexport interface HttpOptions {\n type?: Type<any>;\n context?: HttpContext;\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n responseType?: \"text\" | \"json\" | \"arraybuffer\" | \"blob\";\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n}\n\nexport interface NiceApiDefinition {\n url(route?: string): string;\n delete<T>(route?: string, options?: HttpOptions): Observable<T>;\n get<T>(route?: string, options?: HttpOptions): Observable<T>;\n patch<T>(route?: string, body?: any, options?: HttpOptions): Observable<T>;\n post<T>(route?: string, body?: any, options?: HttpOptions): Observable<T>;\n put<T>(route?: string, body?: any, options?: HttpOptions): Observable<T>;\n}\n\nexport interface HasNiceApiDefinition {\n exceptionFactory: NiceHttpExceptionFactory;\n httpClient: HttpClient;\n apiUrl: string;\n path: string;\n}\n\ntype NiceApiDefinitionCtor = Constructor<NiceApiDefinition> & AbstractConstructor<NiceApiDefinition>;\n\nexport function mixinNiceApi<C extends AbstractConstructor<HasNiceApiDefinition>>(\n base: C,\n): NiceApiDefinitionCtor & C;\nexport function mixinNiceApi<C extends Constructor<HasNiceApiDefinition>>(\n base: C,\n): NiceApiDefinitionCtor & C {\n return class extends base {\n public url(route = \"\"): string {\n if (!this.path || this.path === \"\") {\n if (route === \"\") {\n return this.apiUrl;\n }\n\n if (route === \"/\") {\n return `${this.apiUrl}/`;\n }\n\n return `${this.apiUrl}/${route}`;\n }\n\n if (route === \"\") {\n return `${this.apiUrl}/${this.path}`;\n }\n\n if (route === \"/\") {\n return `${this.apiUrl}/${this.path}/`;\n }\n\n return `${this.apiUrl}/${this.path}/${route}`;\n }\n\n public delete<T>(route = \"\", options?: HttpOptions): Observable<T> {\n return this.httpClient.delete<T>(this.url(route), this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public get<T>(route = \"\", options?: HttpOptions): Observable<T> {\n return this.httpClient.get<T>(this.url(route), this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public head<T>(route = \"\", options?: HttpOptions): Observable<T> {\n return this.httpClient.head<T>(this.url(route), this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public patch<T>(route = \"\", body?: any, options?: HttpOptions): Observable<T> {\n return this.httpClient.patch<T>(this.url(route), body, this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public post<T>(route = \"\", body?: any, options?: HttpOptions): Observable<T> {\n return this.httpClient.post<T>(this.url(route), body, this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public put<T>(route = \"\", body?: any, options?: HttpOptions): Observable<T> {\n return this.httpClient.put<T>(this.url(route), body, this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n private transformError(error: HttpErrorResponse): Observable<any> {\n if (!this.exceptionFactory) {\n throw error;\n }\n throw this.exceptionFactory.transform(error);\n }\n\n private transformOptions(options?: HttpOptions): HttpOptions {\n if (!options) {\n return options;\n }\n\n const { type, context: c, ...values } = options;\n const context = c ?? new HttpContext();\n if (type) {\n context.set(TRANSFORM_TYPE, type);\n }\n return {\n ...values,\n responseType: values.responseType ?? \"json\",\n context\n };\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceUtilsService {\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Generates a random id\n */\n public randomId(length: number = 10): string {\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let name = \"\";\n\n for (let i = 0; i < 10; i++) {\n name += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n\n return name;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceUtilsService } from \"./utils.service\";\n\n@NgModule({\n providers: [NiceUtilsService]\n})\nexport class NiceUtilsModule {\n constructor(private _niceUtilsService: NiceUtilsService) {}\n}\n","import { Injectable } from \"@angular/core\";\nimport { Observable, ReplaySubject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceAlertService {\n private readonly _onDismiss: ReplaySubject<string> = new ReplaySubject<string>(1);\n private readonly _onShow: ReplaySubject<string> = new ReplaySubject<string>(1);\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Getter for onDismiss\n */\n public get onDismiss(): Observable<any> {\n return this._onDismiss.asObservable();\n }\n\n /**\n * Getter for onShow\n */\n public get onShow(): Observable<any> {\n return this._onShow.asObservable();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Dismiss the alert\n */\n public dismiss(name: string): void {\n // Return if the name is not provided\n if (!name) {\n return;\n }\n\n // Execute the observable\n this._onDismiss.next(name);\n }\n\n /**\n * Show the dismissed alert\n */\n public show(name: string): void {\n // Return if the name is not provided\n if (!name) {\n return;\n }\n\n // Execute the observable\n this._onShow.next(name);\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { niceAnimations } from \"../../animations\";\nimport { NiceUtilsService } from \"../../providers/utils\";\nimport { NiceAlertService } from \"./alert.service\";\nimport { NiceAlertType, NiceAlertAppearance, NiceAlertColor } from \"./alert.types\";\n\n@Component({\n selector: \"nice-alert\",\n templateUrl: \"./alert.template.html\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: niceAnimations,\n exportAs: \"niceAlert\"\n})\nexport class NiceAlertComponent implements OnChanges, OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_dismissible: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_dismissed: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_disableAnimation: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_showIcon: BooleanInput;\n\n @Input()\n public appearance: NiceAlertAppearance = \"soft\";\n\n @Input()\n public dismissed = false;\n\n @Input()\n public dismissible = false;\n\n @Input()\n public disableAnimation = false;\n\n @Input()\n public name: string = this._niceUtilsService.randomId();\n\n @Input()\n public showIcon = true;\n\n @Input()\n public type: NiceAlertType = \"primary\";\n\n @Input()\n public color?: NiceAlertColor;\n\n @Output()\n public readonly dismissedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _unsubscribeAll: Subject<void> = new Subject<void>();\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceAlertService: NiceAlertService,\n private _niceUtilsService: NiceUtilsService\n ) {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n let types: { [className: string]: boolean } = {\n \"nice-alert-type-primary\": this.type === \"primary\",\n \"nice-alert-type-accent\": this.type === \"accent\",\n \"nice-alert-type-warn\": this.type === \"warn\",\n \"nice-alert-type-basic\": this.type === \"basic\",\n \"nice-alert-type-info\": this.type === \"info\",\n \"nice-alert-type-success\": this.type === \"success\",\n \"nice-alert-type-warning\": this.type === \"warning\",\n \"nice-alert-type-error\": this.type === \"error\"\n };\n\n if (this.color) {\n types = {\n \"nice-alert-type-primary\": this.color === \"primary\",\n \"nice-alert-type-accent\": this.color === \"accent\",\n \"nice-alert-type-warn\": this.color === \"warn\"\n };\n }\n\n return {\n \"nice-alert-appearance-border\": this.appearance === \"border\",\n \"nice-alert-appearance-fill\": this.appearance === \"fill\",\n \"nice-alert-appearance-outline\": this.appearance === \"outline\",\n \"nice-alert-appearance-soft\": this.appearance === \"soft\",\n \"nice-alert-dismissed\": this.dismissed,\n \"nice-alert-dismissible\": this.dismissible,\n \"nice-alert-show-icon\": this.showIcon,\n ...types\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n *\n * @param changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Dismissed\n if (\"dismissed\" in changes) {\n // Coerce the value to a boolean\n this.dismissed = coerceBooleanProperty(changes.dismissed.currentValue);\n\n // Dismiss/show the alert\n this._toggleDismiss(this.dismissed);\n }\n\n // Dismissible\n if (\"dismissible\" in changes) {\n // Coerce the value to a boolean\n this.dismissible = coerceBooleanProperty(changes.dismissible.currentValue);\n }\n\n // Disable animation\n if (\"disableAnimation\" in changes) {\n // Coerce the value to a boolean\n this.disableAnimation = coerceBooleanProperty(changes.disableAnimation.currentValue);\n }\n\n // Show icon\n if (\"showIcon\" in changes) {\n // Coerce the value to a boolean\n this.showIcon = coerceBooleanProperty(changes.showIcon.currentValue);\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Subscribe to the dismiss calls\n this._niceAlertService.onDismiss\n .pipe(\n filter((name) => this.name === name),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe(() => {\n\n // Dismiss the alert\n this.dismiss();\n });\n\n // Subscribe to the show calls\n this._niceAlertService.onShow\n .pipe(\n filter((name) => this.name === name),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe(() => {\n\n // Show the alert\n this.show();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next();\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Dismiss the alert\n */\n public dismiss(): void {\n // Return if the alert is already dismissed\n if (this.dismissed) {\n return;\n }\n\n // Dismiss the alert\n this._toggleDismiss(true);\n }\n\n /**\n * Show the dismissed alert\n */\n public show(): void {\n // Return if the alert is already showing\n if (!this.dismissed) {\n return;\n }\n\n // Show the alert\n this._toggleDismiss(false);\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Dismiss/show the alert\n *\n * @param dismissed\n * @private\n */\n private _toggleDismiss(dismissed: boolean): void {\n // Return if the alert is not dismissible\n if (!this.dismissible) {\n return;\n }\n\n // Set the dismissed\n this.dismissed = dismissed;\n\n // Execute the observable\n this.dismissedChanged.next(this.dismissed);\n\n // Notify the change detector\n this._changeDetectorRef.markForCheck();\n }\n}\n","<div\n class=\"nice-alert-container\"\n *ngIf=\"!dismissible || dismissible && !dismissed\"\n [@fadeIn]=\"!dismissed && !disableAnimation\"\n [@fadeOut]=\"!dismissed && !disableAnimation\">\n\n <!-- Border -->\n <div\n class=\"nice-alert-border\"\n *ngIf=\"appearance === 'border'\"></div>\n\n <!-- Icon -->\n <div\n class=\"nice-alert-icon\"\n *ngIf=\"showIcon\">\n\n <!-- Custom icon -->\n <div class=\"nice-alert-custom-icon\">\n <ng-content select=\"[niceAlertIcon]\"></ng-content>\n </div>\n\n <!-- Default icons -->\n <div class=\"nice-alert-default-icon\">\n\n <mat-icon\n *ngIf=\"type === 'primary'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'accent'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warn'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'basic'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'info'\"\n [svgIcon]=\"'heroicons_solid:information-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'success'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warning'\"\n [svgIcon]=\"'heroicons_solid:exclamation-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'error'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n </div>\n\n </div>\n\n <!-- Content -->\n <div class=\"nice-alert-content\">\n\n <div class=\"nice-alert-title\">\n <ng-content select=\"[niceAlertTitle]\"></ng-content>\n </div>\n\n <div class=\"nice-alert-message\">\n <ng-content></ng-content>\n </div>\n\n </div>\n\n <!-- Dismiss button -->\n <button\n class=\"nice-alert-dismiss-button\"\n mat-icon-button\n (click)=\"dismiss()\">\n <mat-icon [svgIcon]=\"'heroicons_solid:x'\"></mat-icon>\n </button>\n\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { NiceAlertComponent } from \"./alert.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule\n ],\n declarations: [\n NiceAlertComponent\n ],\n exports: [\n NiceAlertComponent\n ]\n})\nexport class NiceAlertModule {\n}\n","export const isNullOrUndefined = (value: unknown): boolean => {\n return TypeUtils.isNullOrUndefined(value);\n};\n\nexport const isNotNullOrUndefined = (value: unknown): boolean => {\n return TypeUtils.isNotNullOrUndefined(value);\n};\n\nexport class TypeUtils {\n public static isNullOrUndefined(value: unknown): boolean {\n return value === null || value === undefined;\n }\n\n public static isNotNullOrUndefined(value: unknown): boolean {\n return !TypeUtils.isNullOrUndefined(value);\n }\n}\n","import { isNullOrUndefined } from \"./type.utils\";\n\nexport class ArrayUtils {\n public static joinIfDefined(array: any[], join = \" \"): string {\n return array?.filter(val => val)?.join(join);\n }\n\n public static uniqueObjects<Item>(array: Item[], keySelector: (item: Item) => unknown): Item[] {\n return Array.from(new Map(array.map(x => [keySelector(x), x])).values());\n }\n\n public static unique<T>(\n array: T[],\n comparator: (value1: T, value2: T) => boolean = (value1: T, value2: T) => value1 === value2\n ): T[] {\n if (isNullOrUndefined(array)) {\n return array;\n }\n\n const newArray: T[] = [];\n for (const value of array) {\n if (newArray.findIndex((valueInArray) => comparator(valueInArray, value)) < 0) {\n newArray.push(value);\n }\n }\n\n return newArray;\n }\n\n public static equals(arr1: any[], arr2: any[], options: { shallow: boolean, ordered: boolean } = { shallow: true, ordered: false }): boolean {\n if (options.shallow && !options.ordered) {\n return this.unorderedShallowEquals(arr1, arr2);\n }\n\n // TODO: Implement other types of equals.\n throw new Error(\"Not implemented.\");\n }\n\n private static unorderedShallowEquals(arr1: any[], arr2: any[]): boolean {\n return (arr1 ?? []).every((arr1Element) => (arr2 ?? []).includes(arr1Element))\n && (arr2 ?? []).every((arr2Element) => (arr1 ?? []).includes(arr2Element));\n }\n\n public static sortByKey(array: any[], key: string) {\n return array.sort(ArrayUtils.sortByKeyFn(key));\n }\n\n public static sortByKeyFn(key: string) {\n return (a, b) => {\n if (a[key] < b[key]) {\n return -1;\n }\n if (a[key] > b[key]) {\n return 1;\n }\n return 0;\n };\n }\n\n public static groupBy<Item, Key, Value>(\n array: Item[],\n keySelector: (item: Item) => Key,\n valueSelector: (item: Item) => Value[] | Value\n ): Map<Key, Value[]> {\n const groups: Map<Key, Value[]> = new Map<Key, Value[]>();\n for (const item of array) {\n const key: Key = keySelector(item);\n if (key == null) {\n continue;\n }\n let value: Value[] | Value = valueSelector(item);\n if (value == null) {\n continue;\n }\n\n if (!(value instanceof Array)) {\n value = [value];\n }\n\n if (!groups.has(key)) {\n groups.set(key, value);\n } else {\n groups.get(key).push(...value);\n }\n }\n return groups;\n }\n}\n\ndeclare global {\n interface Array<T> {\n distinct<T>(): Array<T>;\n\n groupBy<T>(value: T): T[];\n\n includesWithCallback(callbackfn: (value: T, index: number, array: T[]) => boolean): boolean;\n\n pushOrRemove<T>(value: T): void;\n\n replace<T>(item: T, ...newItems: T[]): Array<T>;\n\n skipNullValues(): T[];\n\n difference<T>(...not: T[]): T[];\n }\n}\n\nArray.prototype.distinct = function <T>(): T[] {\n return this.filter((value, index) => {\n return this.indexOf(value) === index;\n });\n};\n\nArray.prototype.groupBy = function <T>(property: T): T[] {\n return this.reduce((acc, obj) => {\n const key = obj[property];\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(obj);\n return acc;\n }, {});\n};\n\nArray.prototype.includesWithCallback = function <T>(callbackfn: (value: T, index: number, array: T[]) => boolean) {\n return this.findIndex(callbackfn) < 0;\n};\n\nArray.prototype.pushOrRemove = function <T>(value: T): void {\n const index = this.indexOf(value);\n if (index !== -1) {\n this.splice(index, 1);\n } else {\n this.push(value);\n }\n};\n\nArray.prototype.replace = function <T>(item: T, ...newItems: T[]): T[] {\n return [...this.slice(0, this.indexOf(item)), ...newItems, ...this.slice(this.indexOf(item) + 1, this.length)];\n};\n\nArray.prototype.skipNullValues = function <T>(): T[] {\n return this.filter(x => !!x);\n};\n\nArray.prototype.difference = function <T>(...not: T[]) {\n return this.filter(i => !not.includes(i));\n};\n","export class CaseUtils {\n // myValue -> my-value\n public static toCamelFromKebab(data: string): string {\n return data.replace(/(-\\w)/g, (m) => m[1].toUpperCase());\n }\n\n // MyValue -> my_value\n public static toSnakeCaseFromPascalCase(str: string): string {\n return str.replace(/[A-Z]/g, (letter, index) => {\n if (index === 0) {\n return letter.toLowerCase();\n }\n const pastLetter = str[index - 1] as string;\n const nextLetter = str[index + 1] as string;\n if (pastLetter.toLowerCase() === pastLetter) {\n return `_${letter.toLowerCase()}`;\n }\n if (nextLetter && nextLetter.toLowerCase() === nextLetter) {\n return `_${letter.toLowerCase()}`;\n }\n return letter.toLowerCase();\n });\n }\n\n // myValue -> my_value\n public static toSnakeCaseFromCamelCase(str: string): string {\n return this.toSnakeCaseFromPascalCase(this.capitalizeFirstLetter(str));\n }\n\n // my_value -> myValue\n public static toCamelCaseFromSnakeCase(stringToConvert: string): string {\n return stringToConvert.replace(/(^[a-z]|_[a-z])/g, (letter) => {\n if (letter.length === 1) {\n return letter;\n }\n\n return letter[1].toUpperCase();\n });\n }\n\n // MyValue -> my-value\n public static toKebabCasePascalCase(str: string): string {\n return str\n .replace(/[A-Z]/g, (letter, index) => {\n return index === 0 ? letter.toLowerCase() : \"-\" + letter.toLowerCase();\n })\n .replace(/_/g, \"-\");\n }\n\n // my_value -> MyValue\n public static toPascalCaseFromSnakeCase(str: string): string {\n return str.replace(/(^[a-z]|_[a-z])/g, (letter) => {\n if (letter.length === 1) {\n return letter.toUpperCase();\n }\n\n return letter[1].toUpperCase();\n });\n }\n\n public static capitalizeFirstLetter(str: string): string {\n const firstLetter = str.substr(0, 1);\n return firstLetter.toUpperCase() + str.substr(1);\n }\n}\n","export class ColorsUtils {\n /**\n * https://codepen.io/cferdinandi/pen/Yomroj\n *\n * (c) 2019 Chris Ferdinandi, MIT License, https://gomakethings.com\n * Derived from work by Brian Suda, https://24ways.org/2010/calculating-color-contrast/\n */\n public static contrastFromHex(hex: string): string {\n if (hex.slice(0, 1) === \"#\") {\n hex = hex.slice(1);\n }\n\n // If a three-character hex, make six-character\n if (hex.length === 3) {\n hex = hex\n .split(\"\")\n .map((i) => i + i)\n .join(\"\");\n }\n\n // Convert to RGB value\n const r = parseInt(hex.substr(0, 2), 16);\n const g = parseInt(hex.substr(2, 2), 16);\n const b = parseInt(hex.substr(4, 2), 16);\n\n // Get YIQ ratio\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\n // Check contrast\n return yiq >= 128 ? \"000000\" : \"ffffff\";\n }\n}\n","import { isNullOrUndefined } from \"./type.utils\";\n\nexport class DateUtils {\n public static currentYear(): number {\n return new Date().getUTCFullYear();\n }\n\n public static extractTimeAsString(date: Date): string {\n if (!date) {\n return null;\n }\n\n const hours = date.getHours();\n const minutes = date.getMinutes();\n\n return `${(hours ?? \"\").toString().padStart(2, \"0\")}:${(minutes ?? \"\").toString().padStart(2, \"0\")}`;\n }\n\n public static setTimeFromString(date: Date, time: string): Date {\n if (isNullOrUndefined(time) || time.length === 0 || !time.includes(\":\")) {\n return date;\n }\n\n const parts = time.split(\":\");\n if (parts.length !== 2 || isNaN(+parts[0]) || isNaN(+parts[1])) {\n return date;\n }\n\n const [hours, minutes] = parts.map((part) => +part);\n const updatedDate = new Date(date);\n updatedDate.setHours(hours, minutes);\n return updatedDate;\n }\n}\n\ndeclare global {\n export interface Date {\n getSeason(): string;\n getYear(): number;\n }\n}\n\nDate.prototype.getSeason = function(): \"winter\" | \"spring\" | \"summer\" | \"fall\" {\n const month = this.getUTCMonth();\n const date = this.getUTCDate();\n\n if ((month === 11 && date >= 21) || (month >= 0 && month <= 1) || (month === 2 && date <= 19)) {\n return \"winter\";\n } else if ((month === 2 && date >= 20) || (month >= 3 && month <= 4) || (month === 5 && date <= 20)) {\n return \"spring\";\n } else if ((month === 5 && date >= 21) || (month >= 6 && month <= 7) || (month === 8 && date <= 22)) {\n return \"summer\";\n } else {\n return \"fall\";\n }\n};\n\nDate.prototype.getYear = function (): number {\n return +this.getFullYear().toString().substr(-2);\n};\n","export class FileUtils {\n public static async getFileFromUrl(url?: string, name = \"\"): Promise<File | undefined> {\n if (!url) {\n return undefined;\n }\n const res = await fetch(url);\n return new File([await res.blob()], name);\n }\n\n public static async selectFile(accept: string, multiple = false): Promise<File | File[]> {\n return new Promise(resolve => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.multiple = multiple;\n input.accept = accept;\n\n input.onchange = () => {\n if (input.files) {\n const files = Array.from(input.files);\n return resolve(multiple ? files : files[0]);\n }\n\n resolve(null);\n };\n\n input.click();\n });\n }\n\n public static downloadFile(fileName: string, content: Blob, downloadLink?: HTMLAnchorElement): void {\n if (!downloadLink) {\n downloadLink = document.createElement(\"a\");\n document.body.appendChild(downloadLink);\n downloadLink.style.display = \"none\";\n }\n\n const dataUrl = window.URL.createObjectURL(content);\n downloadLink.href = dataUrl;\n downloadLink.download = fileName;\n downloadLink.click();\n window.URL.revokeObjectURL(dataUrl);\n document.body.removeChild(downloadLink);\n }\n\n public static openFile(file: Blob, options: { openInNewTab: boolean } = { openInNewTab: true }): void {\n const anchor = document.createElement(\"a\");\n document.body.appendChild(anchor);\n anchor.style.display = \"none\";\n\n const dataUrl = window.URL.createObjectURL(file);\n anchor.href = dataUrl;\n if (options.openInNewTab) {\n anchor.target = \"_blank\";\n }\n anchor.click();\n window.URL.revokeObjectURL(dataUrl);\n document.body.removeChild(anchor);\n }\n\n public static downloadUrl(url: string): void {\n const downloadLink = document.createElement(\"a\");\n document.body.appendChild(downloadLink);\n downloadLink.style.display = \"none\";\n downloadLink.href = url;\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }\n\n public static openPrintableWindow(content: string): void {\n const win = window.open(\"\");\n if (!win) {\n return;\n }\n\n win.document.open();\n win.document.write(content);\n win.document.close();\n }\n\n public static filenameToExtension(filename: string): string {\n const re = /(?:\\.([^.]+))?$/;\n return re.exec(filename)[1];\n }\n\n public static getDataUrl(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = error => reject(error);\n });\n }\n\n public static async getFileFromDataUrl(data: string, name: string): Promise<File> {\n const base64Response = await fetch(data);\n const blob = await base64Response.blob();\n const [, type] = blob.type.split(\"/\");\n return new File([blob], `${name}.${type}`, {\n lastModified: Date.now(),\n type: blob.type\n });\n }\n}\n","export class FontAwesomeUtils {\n public static fileExtensionToIcon(extension: string): string {\n switch (extension) {\n case \"pdf\":\n return \"fa-file-pdf\";\n case \"doc\":\n case \"docx\":\n return \"fa-file-word\";\n case \"xlsx\":\n case \"xls\":\n return \"fa-file-excel\";\n case \"csv\":\n return \"fa-file-csv\";\n case \"ppt\":\n case \"pptx\":\n return \"fa-file-powerpoint\";\n case \"mp4\":\n case \"mov\":\n case \"wmv\":\n case \"webm\":\n return \"fa-file-video\";\n case \"mp3\":\n case \"wav\":\n return \"fa-file-audio\";\n case \"jpeg\":\n case \"jpg\":\n case \"png\":\n case \"gif\":\n case \"svg\":\n return \"fa-file-image\";\n case \"zip\":\n return \"fa-file-archive\";\n case \"txt\":\n return \"fa-file-alt\";\n default:\n return \"fa-file\";\n }\n }\n}\n","import { isNullOrUndefined } from \"./type.utils\";\n\nexport class FormDataUtils {\n public static appendFormDataWithDto(form: FormData, value: object): void {\n if (typeof value !== \"object\") {\n return;\n }\n\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n FormDataUtils.appendFormDataWithValue(form, value[key], key);\n }\n }\n }\n\n // FormData does not handle object and arrays, instead we add them as:\n // Object: forms.append(name[key], value) (e.g. forms.append(\"company-admin[name]\", \"digitalmomentum\"))\n // Array: forms.append(name[index], value) (e.g. forms.append(\"expressions[0]\", \"incroyable\"))\n // Recursive method that appends values, objects and arrays to the forms as name.\n public static appendFormDataWithValue(form: FormData, value, name) {\n if (isNullOrUndefined(value)) {\n return;\n }\n\n if (value instanceof Array) {\n for (let i = 0; i < value.length; ++i) {\n FormDataUtils.appendFormDataWithValue(form, value[i], name + `[${i}]`);\n }\n } else if (value instanceof Date) {\n form.append(name, value.toISOString());\n } else if (value instanceof Object) {\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n FormDataUtils.appendFormDataWithValue(form, value[key], name + `[${key}]`);\n }\n }\n } else {\n form.append(name, value);\n }\n }\n}\n","export enum HttpStatusCodes {\n CONTINUE = 100,\n SWITCHING_PROTOCOLS = 101,\n PROCESSING = 102,\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NON_AUTHORITATIVE_INFORMATION = 203,\n NO_CONTENT = 204,\n RESET_CONTENT = 205,\n PARTIAL_CONTENT = 206,\n AMBIGUOUS = 300,\n MOVED_PERMANENTLY = 301,\n FOUND = 302,\n SEE_OTHER = 303,\n NOT_MODIFIED = 304,\n TEMPORARY_REDIRECT = 307,\n PERMANENT_REDIRECT = 308,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n PAYMENT_REQUIRED = 402,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n METHOD_NOT_ALLOWED = 405,\n NOT_ACCEPTABLE = 406,\n PROXY_AUTHENTICATION_REQUIRED = 407,\n REQUEST_TIMEOUT = 408,\n CONFLICT = 409,\n GONE = 410,\n LENGTH_REQUIRED = 411,\n PRECONDITION_FAILED = 412,\n PAYLOAD_TOO_LARGE = 413,\n URI_TOO_LONG = 414,\n UNSUPPORTED_MEDIA_TYPE = 415,\n REQUESTED_RANGE_NOT_SATISFIABLE = 416,\n EXPECTATION_FAILED = 417,\n UNPROCESSABLE_ENTITY = 422,\n TOO_MANY_REQUESTS = 429,\n INTERNAL_SERVER_ERROR = 500,\n NOT_IMPLEMENTED = 501,\n BAD_GATEWAY = 502,\n SERVICE_UNAVAILABLE = 503,\n GATEWAY_TIMEOUT = 504,\n HTTP_VERSION_NOT_SUPPORTED = 505\n}\n","export enum KeyboardCodes {\n ArrowUp = \"ArrowUp\",\n ArrowDown = \"ArrowDown\",\n Enter = \"Enter\",\n Shift = \"Shift\",\n Comma = \"Comma\"\n}\n","import { LexoRank } from \"lexorank\";\n\nexport class LexoRankUtils {\n public static compareStringFn(previousRank?: string, nextRank?: string): number {\n if (!previousRank || !nextRank) {\n return 0;\n }\n\n return LexoRank.parse(previousRank).compareTo(LexoRank.parse(nextRank));\n }\n\n public static compareFn(previousRank: LexoRank, nextRank: LexoRank): number {\n return previousRank.compareTo(nextRank);\n }\n\n public static getNewRank(afterRank?: string, beforeRank?: string): string {\n if (afterRank && beforeRank) {\n if (LexoRank.parse(beforeRank).equals(LexoRank.parse(afterRank))) {\n return LexoRank.parse(afterRank).genPrev().toString();\n }\n\n return LexoRank.parse(afterRank).between(LexoRank.parse(beforeRank)).toString();\n }\n\n if (afterRank) {\n return LexoRank.parse(afterRank).genPrev().toString();\n }\n\n if (beforeRank) {\n return LexoRank.parse(beforeRank).genNext().toString();\n }\n\n return LexoRank.middle().toString();\n }\n}\n","export interface ModalData {\n mode: ModalMode;\n}\n\nexport enum ModalMode {\n Create,\n Edit\n}\n","export class NumberUtils {\n}\n\ndeclare global {\n interface Number {\n inRange(a: number, b: number): boolean;\n }\n}\n\nNumber.prototype.inRange = function (a: number, b: number): boolean {\n return this >= a && this <= b;\n};\n","import { isNullOrUndefined } from \"./type.utils\";\n\nexport class ObjectUtils {\n public static transformStringProperties(obj: any): object {\n for (const property in obj) {\n if (obj.hasOwnProperty(property)) {\n if (typeof obj[property] === \"object\") {\n obj = ObjectUtils.transformStringProperties(obj);\n } else {\n obj = ObjectUtils.stringPropertiesToNumber(obj, property);\n }\n }\n }\n\n return obj;\n }\n\n public static stringPropertiesToNumber(obj: any, property: string): object {\n if (!isNaN(obj[property])) {\n obj[property] = +obj[property];\n }\n\n return obj;\n }\n\n public static assignDefined(target: any, source: any): object {\n Object.keys(source).map(key => {\n if (source[key] !== undefined) {\n target[key] = source[key];\n }\n });\n\n return target;\n }\n\n public static areObjectsEqual(obj1: any, obj2: any): boolean {\n const keys1 = Object.keys(obj1).sort();\n const keys2 = Object.keys(obj2).sort();\n if (keys1.length !== keys2.length) {\n return false;\n }\n if (!keys1.every((k, i) => k === keys2[i])) {\n return false;\n }\n return keys1.every(kk => {\n const v1 = obj1[kk];\n const v2 = obj2[kk];\n if (Array.isArray(v1)) {\n return ObjectUtils.areObjectsEqual(v1, v2);\n } else if (typeof v1 === \"object\" && v1 !== null) {\n return ObjectUtils.areObjectsEqual(v1, v2);\n } else {\n return v1 === v2;\n }\n });\n }\n\n public static deepCopy(obj: any): any {\n // Handle the primitive types, null and undefined\n if (obj == null || typeof obj != \"object\") {\n return obj;\n }\n\n // Handle Date\n if (obj instanceof Date) {\n const copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n\n // Handle Array\n if (obj instanceof Array) {\n const copy = [];\n for (const item of obj) {\n copy.push(ObjectUtils.deepCopy(item));\n }\n return copy;\n }\n\n // Handle Object\n if (obj instanceof Object) {\n const copy = {};\n for (const attr in obj) {\n if (obj.hasOwnProperty(attr)) {\n copy[attr] = ObjectUtils.deepCopy(obj[attr]);\n }\n }\n return copy;\n }\n\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\n }\n\n // To do an immutable assignment, we need to first deep copy the model and then run the deep assign.\n public static immutableDeepAssign<Source, Target>(key: string, deepObj: Source, obj: Target): Target {\n const output = ObjectUtils.deepCopy(obj);\n ObjectUtils.deepAssign(key, deepObj, output);\n return output;\n }\n\n // Does a shallow assignment on a deep value. The value is located by the key.\n public static deepAssign<Source, Target>(key: string, deepObj: Source, obj: Target) {\n ObjectUtils.internalDeepAssign(key?.split(\".\"), deepObj, obj);\n }\n\n private static internalDeepAssign<Source, Target>(segments: string[], deepObj: Source, obj: Target) {\n // No more depth to be navigated through, we can do the shallow assignment.\n if (segments?.length === 0) {\n Object.assign(obj, deepObj);\n return;\n }\n\n if (isNullOrUndefined(obj)) {\n obj = {} as Target;\n }\n\n const segment = segments.shift();\n // If we cannot complete the key's path, we create it.\n if (!obj.hasOwnProperty(segment)) {\n obj[segment] = {};\n }\n\n ObjectUtils.internalDeepAssign(segments, deepObj, obj[segment]);\n }\n}\n","export class PromiseUtils {}\n\ndeclare global {\n export interface PromiseConstructor {\n delay(ms: number): Promise<void>;\n }\n}\n\n// tslint:disable-next-line:only-arrow-functions\nPromise.delay = function(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n};\n","import { HttpParams } from \"@angular/common/http\";\n\nexport class QueryParamsUtils {\n public static fromObject(obj: any): string {\n Object.entries(obj).forEach(([key, value]) => {\n if (value === undefined) {\n delete obj[key];\n }\n });\n return new HttpParams({\n fromObject: obj\n }).toString();\n }\n}\n","const lowerUpperDigit8 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8,}$/;\n\nexport class RegexUtils {\n public static email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n public static password = {\n // Used as default.\n // 8 chars, lower + upper + digit.\n lowerUpperDigit8\n };\n\n public static canadianPostalCode = /^((?!.*[DFIOQU])[A-VXYa-vxy][0-9][A-Za-z] ?[0-9][A-Za-z][0-9])?$/;\n}\n","export class UrlUtils {\n public static emailUrl(email: string): string {\n return `mailto:${email}`;\n }\n\n public static directionUrl(address: string, postalCode: string): string {\n return `https://www.google.com/maps/dir/?api=1&destination=${address}+${postalCode}`;\n }\n\n public static phoneCallUrl(phone: string, ext?: string): string {\n if (ext?.length) {\n return `tel:${phone};${ext}`;\n }\n\n return `tel:${phone}`;\n }\n\n // Takes location ref and returns fragment\n // http://localhost:4200/dashboard/profile returns [\"dashboard\", \"profile\"]\n public static getCurrentUrlFragments(): string[] {\n return window.location.href.replace(\"://\", \"\").split(\"/\").slice(1);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_ASSETS_CAROUSEL_OPTIONS = new InjectionToken(\"nice_assets_options\");\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceAssetsCarouselActiveContent]\" })\nexport class NiceAssetsCarouselActiveContentDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { Directive, EventEmitter, HostBinding, HostListener, Output } from \"@angular/core\";\n\n@Directive({ selector: \"[niceDropzone]\"})\nexport class NiceDropzoneDirective {\n @HostBinding(\"class.file-over\")\n public fileOver: boolean;\n\n @Output()\n public filesDropped = new EventEmitter<FileList>();\n\n // Dragover listener\n @HostListener(\"dragover\", [\"$event\"])\n public onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = true;\n }\n\n // Dragleave listener\n @HostListener(\"dragleave\", [\"$event\"])\n public onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n }\n\n // Drop listener\n @HostListener(\"drop\", [\"$event\"])\n public ondrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n const files = event.dataTransfer.files;\n if (files.length > 0) {\n this.filesDropped.emit(files);\n }\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input, OnChanges, OnInit,\n Optional,\n Output,\n QueryList, SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { CanColor, ThemePalette } from \"@angular/material/core\";\nimport { niceAnimations } from \"../../animations\";\nimport { FileUtils } from \"../../utils\";\nimport { NICE_ASSETS_CAROUSEL_OPTIONS } from \"./assets-carousel.constant\";\nimport { NiceAssetsCarouselActiveContentDirective } from \"./directives/assets-carousel-active-content.directive\";\n\nexport interface NiceAssets {\n type: \"image\" | \"video\";\n id?: number | string;\n url?: string;\n base64?: string;\n file?: File;\n}\n\nexport type NiceAssetsCarouselActionIcon = { matIcon: string; svgIcon?: string; } | { matIcon?: string; svgIcon: string; };\n\nexport interface NiceAssetsCarouselActions {\n icon: NiceAssetsCarouselActionIcon;\n name: string;\n action: (active: number) => void;\n}\n\nexport interface NiceAssetsCarouselOptions {\n actionButtons?: {\n moreOptions?: NiceAssetsCarouselActionIcon;\n addPhoto?: NiceAssetsCarouselActionIcon;\n remove?: NiceAssetsCarouselActionIcon;\n };\n addPhoto?: NiceAssetsCarouselActionIcon;\n leftArrow?: NiceAssetsCarouselActionIcon;\n rightArrow?: NiceAssetsCarouselActionIcon;\n upload?: NiceAssetsCarouselActionIcon;\n}\n\n@Component({\n selector: \"nice-assets-carousel\",\n templateUrl: \"assets-carousel.template.html\",\n styleUrls: [\"assets-carousel.theme.scss\"],\n encapsulation: ViewEncapsulation.None,\n animations: niceAnimations,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NiceAssetsCarouselComponent),\n multi: true\n }\n ]\n})\nexport class NiceAssetsCarouselComponent implements OnInit, OnChanges, ControlValueAccessor, CanColor {\n public _activeTranslationPosition = 0;\n public _active = 0;\n public _assets: NiceAssets[] = [];\n public _activeAsset: NiceAssets;\n public _lastAsset = true;\n public _shouldTransform = false;\n public _activeVideoElement: ElementRef<HTMLVideoElement>;\n public _assetsElement: QueryList<ElementRef<HTMLDivElement>>;\n public defaultColor: ThemePalette = \"primary\";\n\n @ViewChild(\"fileInput\")\n public inputElement: ElementRef<HTMLInputElement>;\n\n @Input()\n public color: ThemePalette = this.defaultColor;\n\n @Input()\n public edit = false;\n\n @Input()\n public loading = false;\n\n @Input()\n public accept: string[] = [];\n\n @Input()\n public customActions: NiceAssetsCarouselActions[] = [];\n\n @Input()\n public imagesProcessor: (files: File[]) => Promise<File[]>;\n\n @Input()\n public multipleUpload = false;\n\n @Input()\n public visiblePreviewAsset = 4;\n\n @Input()\n public showAddAssetContainer = true;\n\n @ContentChild(NiceAssetsCarouselActiveContentDirective, { read: TemplateRef })\n public activeContent: TemplateRef<any>;\n\n @Output()\n public activeChange = new EventEmitter<number>();\n\n @Output()\n public removedAsset = new EventEmitter<NiceAssets>();\n\n public listStyle: { transform: string } = { transform: \"translateX(0px)\" };\n\n public showOverlay: boolean;\n\n private _imagesMimeTypes = [\"image/png\", \"image/jpeg\", \"image/webp\", \"image/avif\"];\n private propagate: (assets: NiceAssets[]) => void;\n\n @ViewChild(\"activeVideo\")\n public set activeVideoElement(activeVideoElement: ElementRef<HTMLVideoElement>) {\n this._activeVideoElement = activeVideoElement;\n\n if (!this._activeVideoElement || !this._assetsElement) {\n return;\n }\n\n this.startSyncVideo();\n }\n\n @ViewChildren(\"assets\")\n public set assetsElement(assetsElement: QueryList<ElementRef<HTMLDivElement>>) {\n this._assetsElement = assetsElement;\n\n if (!this._activeVideoElement || !this._assetsElement) {\n return;\n }\n\n this.startSyncVideo();\n }\n\n @Input()\n public set assets(assets: NiceAssets[]) {\n this.writeValue(assets ?? []);\n }\n\n private set activeTranslationPosition(position: number) {\n this._activeTranslationPosition = position;\n this.listStyle.transform = `translateX(calc((var(--nice-assets-carousel-asset-width) + var(--nice-assets-carousel-asset-gap)) * ${position}))`;\n }\n\n private set activeAsset(position: number) {\n if (position < 0) {\n position = 0;\n }\n\n this._active = position;\n this._activeAsset = this._assets[this._active];\n this._lastAsset = this._active === this._assets.length - 1 || !this._assets.length;\n this._shouldTransform\n = ((this.edit && this.showAddAssetContainer) && this._active >= (this.visiblePreviewAsset - 1))\n || this._active >= this.visiblePreviewAsset;\n this.activeChange.emit(this._active);\n }\n\n constructor(@Optional() @Inject(NICE_ASSETS_CAROUSEL_OPTIONS) public readonly options: NiceAssetsCarouselOptions) {\n if (!this.options) {\n this.options = {\n actionButtons: {\n addPhoto: {\n matIcon: \"photo_camera\"\n },\n moreOptions: {\n matIcon: \"more_vert\"\n },\n remove: {\n matIcon: \"delete\"\n }\n },\n addPhoto: {\n matIcon: \"photo_camera\"\n },\n leftArrow: {\n matIcon: \"chevron_left\"\n },\n rightArrow: {\n matIcon: \"chevron_right\"\n },\n upload: {\n matIcon: \"file_upload\"\n }\n };\n }\n }\n\n public ngOnInit(): void {\n if (!this.accept?.length) {\n this.accept = [...this._imagesMimeTypes];\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"accept\" in changes && this.accept) {\n const index = this.accept.indexOf(\"image/*\");\n if (index >= 0) {\n this.accept.splice(index, 1);\n this.accept.push(...this._imagesMimeTypes);\n }\n }\n }\n\n public writeValue(assets: NiceAssets[]): void {\n this._assets = assets ?? [];\n\n if (this._assets.length === 0) {\n this._activeAsset = null;\n this._lastAsset = true;\n } else if (this._assets.length > 0) {\n this._activeAsset = this._assets[this._active];\n }\n }\n\n public registerOnChange(fn: (assets: NiceAssets[]) => void): void {\n this.propagate = fn;\n }\n\n public registerOnTouched(fn: (assets: NiceAssets[]) => void): void {}\n\n public clickLeft(): void {\n if (this._active) {\n this.activeAsset = this._active - 1;\n }\n\n if (this._activeTranslationPosition < 0) {\n this.activeTranslationPosition = this._activeTranslationPosition + 1;\n }\n }\n\n public clickRight(): void {\n if (this._lastAsset) {\n return;\n }\n\n this.activeAsset = this._active + 1;\n if (this._shouldTransform) {\n this.activeTranslationPosition = this._activeTranslationPosition - 1;\n }\n }\n\n public clickAsset(index: number): void {\n let visibleAssets = (this.edit && this.showAddAssetContainer) ? (this.visiblePreviewAsset - 2) : (this.visiblePreviewAsset - 1);\n if (index < visibleAssets) {\n visibleAssets = index;\n }\n\n if (index >= 0) {\n this.activeTranslationPosition = (index - visibleAssets) * -1;\n }\n\n this.activeAsset = index;\n }\n\n public async onFilesChange(event: Event): Promise<void> {\n const files = (event.target as HTMLInputElement)?.files;\n\n await this.onFilesDrop(files);\n\n this.inputElement.nativeElement.value = \"\";\n }\n\n public async onFilesDrop(fileList: FileList): Promise<void> {\n let files = this.filterOutUnsupportedFiles(fileList);\n\n if (this.imagesProcessor) {\n files = await this.getProcessedFiles(files);\n }\n\n if (!files?.length) {\n return;\n }\n\n for (const file of files) {\n this._assets.push({\n file,\n type: file.type.split(\"/\").shift() as \"image\" | \"video\",\n base64: await FileUtils.getDataUrl(file)\n });\n }\n\n this.clickAsset(this._assets.length - 1);\n this.propagate?.(this._assets);\n }\n\n public clickRemove(): void {\n this.removedAsset.emit(this._assets[this._active]);\n this._assets.splice(this._active, 1);\n\n if (this._lastAsset) {\n this.clickAsset(this._assets.length - 1);\n } else {\n this.clickAsset(this._active);\n }\n\n this.propagate?.(this._assets);\n }\n\n public clickCustom(action: NiceAssetsCarouselActions): void {\n action.action(this._active);\n }\n\n public async startSyncVideo(): Promise<void> {\n (this._assetsElement.get(this._active).nativeElement.firstElementChild as HTMLVideoElement).pause();\n (this._assetsElement.get(this._active).nativeElement.firstElementChild as HTMLVideoElement).currentTime = 0;\n\n this._activeVideoElement.nativeElement.currentTime = 0;\n\n await this._activeVideoElement.nativeElement.play();\n await (this._assetsElement.get(this._active).nativeElement.firstElementChild as HTMLVideoElement).play();\n }\n\n private filterOutUnsupportedFiles(fileList: FileList): File[] {\n const files: File[] = [];\n\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList.item(i);\n if (this.accept.some((accept) => {\n if (accept.endsWith(\"*\")) {\n return file.type.startsWith(accept.replace(\"*\", \"\"));\n }\n\n return accept === file.type;\n })) {\n files.push(file);\n }\n }\n\n return files;\n }\n\n private async getProcessedFiles(files: File[]): Promise<File[] | null> {\n try {\n if (!files.length) {\n return null;\n }\n\n return await this.imagesProcessor(files);\n } catch (e) {\n return null;\n }\n }\n}\n","<div class=\"carousel-container\" niceDropzone (filesDropped)=\"onFilesDrop($event)\">\n <div\n class=\"active-image\"\n matRipple\n [class.empty-state]=\"!_activeAsset\"\n (click)=\"edit && fileInput.click();\n $event.stopPropagation()\"\n >\n <div *ngIf=\"loading\" style=\"min-height: inherit\" class=\"flex flex-row justify-center items-center h-full\">\n <mat-spinner [diameter]=\"32\"></mat-spinner>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container\n *ngIf=\"_activeAsset && activeContent\"\n [ngTemplateOutlet]=\"activeContent\"\n [ngTemplateOutletContext]=\"{ $implicit: _activeAsset}\"\n ></ng-container>\n <img\n *ngIf=\"_activeAsset?.type === 'image'\"\n (mouseover)=\"showOverlay=true\"\n [src]=\"_activeAsset.url ?? _activeAsset.base64\"\n draggable=\"false\"\n class=\"relative\"\n alt=\"active-image\"\n >\n <video #activeVideo *ngIf=\"_activeAsset?.type === 'video'\" draggable=\"false\" loop [src]=\"_activeAsset.url ?? _activeAsset.base64\"></video>\n\n <div class=\"empty-state-content\" *ngIf=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n <div class=\"text\">\n {{ \"nice_ui_kit.assets_carousel.upload_here\" | translate }}\n </div>\n </div>\n\n <div *ngIf=\"_activeAsset && showOverlay && edit\" class=\"active-image-overlay\">\n <div\n (mouseout)=\"showOverlay=false\"\n class=\"flex flex-col justify-center items-center w-full h-full\"\n >\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"edit\" class=\"active-buttons\">\n <button mat-icon-button (click)=\"fileInput.click(); $event.stopPropagation()\">\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.matIcon\">{{ options.actionButtons.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.svgIcon\" [svgIcon]=\"options.actionButtons.addPhoto.svgIcon\"></mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"assetActions\" (click)=\"$event.stopPropagation()\" [disabled]=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.matIcon\">{{ options.actionButtons.moreOptions.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.svgIcon\" [svgIcon]=\"options.actionButtons.moreOptions.svgIcon\"></mat-icon>\n </button>\n <mat-menu class=\"nice-asset-options-menu\" [xPosition]=\"'before'\" #assetActions=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let action of customActions\"\n (click)=\"clickCustom(action)\"\n >\n <mat-icon *ngIf=\"action.icon.matIcon\">{{ action.icon.matIcon }}</mat-icon>\n <mat-icon [svgIcon]=\"action.icon.svgIcon\" *ngIf=\"action.icon.svgIcon\"></mat-icon>\n <span>{{ action.name | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"clickRemove()\">\n <mat-icon *ngIf=\"options.actionButtons.remove.matIcon\">{{ options.actionButtons.remove.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.remove.svgIcon\" [svgIcon]=\"options.actionButtons.remove.svgIcon\"></mat-icon>\n <span>{{ \"nice_ui_kit.assets_carousel.delete\" | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </ng-container>\n </div>\n\n <div class=\"carousel\">\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button left-arrow\" mat-icon-button [disabled]=\"!_active\" (click)=\"clickLeft()\">\n <mat-icon *ngIf=\"options.leftArrow.matIcon\">{{ options.leftArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.leftArrow.svgIcon\" [svgIcon]=\"options.leftArrow.svgIcon\"></mat-icon>\n </button>\n <div class=\"asset-list-container\">\n <div *ngIf=\"showAddAssetContainer && edit\" class=\"add-asset-container\">\n <div class=\"add-asset\" matRipple (click)=\"fileInput.click()\">\n <mat-icon *ngIf=\"options.addPhoto.matIcon\">{{ options.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.addPhoto.svgIcon\" [svgIcon]=\"options.addPhoto.svgIcon\"></mat-icon>\n </div>\n </div>\n <div class=\"asset-list\" [ngStyle]=\"listStyle\">\n <div\n #assets\n class=\"asset\"\n *ngFor=\"let asset of _assets; let i = index\"\n (click)=\"clickAsset(i)\"\n [ngClass]=\"color\"\n [class.active]=\"_active === i\"\n >\n <ng-container>\n <img\n *ngIf=\"asset.type === 'image'\"\n draggable=\"false\"\n [src]=\"asset.url ?? asset.base64\"\n alt=\"add-image\"\n />\n <video\n *ngIf=\"asset.type === 'video'\"\n draggable=\"false\"\n loop\n [src]=\"asset.url ?? asset.base64\"\n ></video>\n </ng-container>\n </div>\n </div>\n </div>\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button right-arrow\" mat-icon-button [disabled]=\"_lastAsset\" (click)=\"clickRight()\">\n <mat-icon *ngIf=\"options.rightArrow.matIcon\">{{ options.rightArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.rightArrow.svgIcon\" [svgIcon]=\"options.rightArrow.svgIcon\"></mat-icon>\n </button>\n </div>\n</div>\n\n<input #fileInput type=\"file\" hidden [accept]=\"accept\" (change)=\"onFilesChange($event)\" [multiple]=\"multipleUpload\">\n","import { NgModule } from \"@angular/core\";\nimport { NiceDropzoneDirective } from \"./dropzone.directive\";\n\n@NgModule({\n imports: [],\n declarations: [NiceDropzoneDirective],\n providers: [],\n exports: [NiceDropzoneDirective]\n})\nexport class NiceDropzoneModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceDropzoneModule } from \"../../directives/dropzone\";\n\nimport { NiceAssetsCarouselComponent, NiceAssetsCarouselOptions } from \"./assets-carousel.component\";\nimport { NICE_ASSETS_CAROUSEL_OPTIONS } from \"./assets-carousel.constant\";\nimport { NiceAssetsCarouselActiveContentDirective } from \"./directives/assets-carousel-active-content.directive\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatMenuModule,\n MatRippleModule,\n NiceDropzoneModule,\n TranslateModule,\n MatProgressSpinnerModule\n ],\n declarations: [NiceAssetsCarouselComponent, NiceAssetsCarouselActiveContentDirective],\n providers: [],\n exports: [NiceAssetsCarouselComponent, NiceAssetsCarouselActiveContentDirective]\n})\nexport class NiceAssetsCarouselModule {\n public static forRoot(options?: NiceAssetsCarouselOptions): ModuleWithProviders<NiceAssetsCarouselModule> {\n if (!options) {\n options = {\n actionButtons: {}\n };\n }\n if (!options.actionButtons.moreOptions) {\n options.actionButtons.moreOptions = { matIcon: \"more_vert\" };\n }\n if (!options.actionButtons.addPhoto) {\n options.actionButtons.addPhoto = { matIcon: \"photo_camera\" };\n }\n if (!options.actionButtons.remove) {\n options.actionButtons.remove = { matIcon: \"delete\" };\n }\n if (!options.addPhoto) {\n options.addPhoto = { matIcon: \"photo_camera\" };\n }\n if (!options.leftArrow) {\n options.leftArrow = { matIcon: \"chevron_left\" };\n }\n if (!options.rightArrow) {\n options.rightArrow = { matIcon: \"chevron_right\" };\n }\n if (!options.upload) {\n options.upload = { matIcon: \"file_upload\" };\n }\n\n return {\n ngModule: NiceAssetsCarouselModule,\n providers: [\n {\n provide: NICE_ASSETS_CAROUSEL_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","import { Observable } from \"rxjs\";\n\nexport interface NiceAsyncTypeaheadSearchResult<T> {\n items: T[];\n nextPage: number | null;\n}\n\nexport abstract class NiceAsyncTypeaheadProvider<T, ID = number, Options = any> {\n public abstract resource: string;\n public abstract search(\n searchQuery: string,\n page: number,\n options?: Options\n ): Observable<NiceAsyncTypeaheadSearchResult<T>> | Promise<NiceAsyncTypeaheadSearchResult<T>>;\n public abstract getById(id: ID, options?: Options): Promise<T>;\n\n public format(item: T): string {\n return \"\";\n }\n}\n","import { Directive, EventEmitter, Input, OnDestroy, Output } from \"@angular/core\";\nimport { MatAutocomplete } from \"@angular/material/autocomplete\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, tap } from \"rxjs/operators\";\n\nexport interface IAutoCompleteScrollEvent {\n autoComplete: MatAutocomplete;\n scrollEvent: Event;\n}\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: \"mat-autocomplete[optionsScroll]\"\n})\nexport class OptionsScrollDirective implements OnDestroy {\n private _onDestroy$ = new Subject();\n\n @Input()\n public thresholdPercent = 0.99;\n\n @Output()\n public optionsScroll = new EventEmitter<IAutoCompleteScrollEvent>();\n\n constructor(public autoComplete: MatAutocomplete) {\n this.autoComplete.opened\n .pipe(\n tap(() => {\n // Note: When autocomplete raises opened, panel is not yet created (by Overlay)\n // Note: The panel will be available on next tick\n // Note: The panel wil NOT open if there are no options to display\n setTimeout(() => {\n // Note: remove listner just for safety, in case the close event is skipped.\n this.removeScrollEventListener();\n if (this.autoComplete && this.autoComplete.panel) {\n this.autoComplete.panel.nativeElement.addEventListener(\"scroll\", this.onScroll.bind(this));\n }\n });\n }),\n takeUntil(this._onDestroy$)\n )\n .subscribe();\n\n this.autoComplete.closed\n .pipe(\n tap(() => this.removeScrollEventListener()),\n takeUntil(this._onDestroy$)\n )\n .subscribe();\n }\n\n public ngOnDestroy() {\n this._onDestroy$.next(null);\n this._onDestroy$.complete();\n\n this.removeScrollEventListener();\n }\n\n public onScroll(event: Event) {\n if (this.thresholdPercent === undefined) {\n this.optionsScroll.next({ autoComplete: this.autoComplete, scrollEvent: event });\n } else {\n const target = event.target as HTMLElement;\n const threshold = (this.thresholdPercent * 100 * target.scrollHeight) / 100;\n const current = target.scrollTop + target.clientHeight;\n\n if (current > threshold) {\n this.optionsScroll.next({ autoComplete: this.autoComplete, scrollEvent: event });\n }\n }\n }\n\n private removeScrollEventListener() {\n if (this.autoComplete && this.autoComplete.panel) {\n this.autoComplete.panel.nativeElement.removeEventListener(\"scroll\", this.onScroll);\n }\n }\n}\n","import { FocusMonitor } from \"@angular/cdk/a11y\";\nimport { coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input, NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, NgControl, Validators } from \"@angular/forms\";\nimport { MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent } from \"@angular/material/autocomplete\";\nimport { MatOption } from \"@angular/material/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { Subject, Subscription } from \"rxjs\";\nimport * as uuid from \"uuid\";\nimport { isNullOrUndefined } from \"../../utils\";\n\nexport class NiceTypeaheadNewValue {\n constructor(public $new: string) {}\n}\n\n@Component({\n selector: \"nice-typeahead\",\n templateUrl: \"typeahead.template.html\",\n styleUrls: [\"typeahead.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: NiceTypeaheadComponent\n }\n ]\n})\nexport class NiceTypeaheadComponent implements OnInit, OnDestroy, ControlValueAccessor, MatFormFieldControl<string> {\n @Input()\n public set items(items: any[] | null | undefined) {\n this._items = items ?? [];\n this.values = items ?? [];\n this.setLoading(false);\n this.setLoadingPage(false);\n this.updateSearchInput();\n this.checkIfValueStillExist();\n }\n\n @Input()\n public set labelFormatFn(labelFormatFn: (item: any) => string) {\n this._labelFormatFn = labelFormatFn;\n this.updateSearchInput();\n }\n\n @Input()\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n public get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n if (this._disabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n this.stateChanges.next();\n }\n\n @Input()\n public set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n this.stateChanges.next();\n }\n\n public get placeholder(): string {\n return this._placeholder;\n }\n\n @Input()\n public set emptyPlaceholder(emptyPlaceholder: string) {\n this._emptyPlaceholder = emptyPlaceholder;\n this.stateChanges.next();\n }\n\n public get emptyPlaceholder(): string {\n return this._emptyPlaceholder;\n }\n\n public set value(value: any) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n this.propagate(this._value);\n }\n\n public get value(): any {\n return this._value;\n }\n\n public get empty(): boolean {\n return (\n (!this.searchControl.value || !this.searchControl.value.length) &&\n (!this._value || (typeof this._value === \"string\" && !this._value.length))\n );\n }\n\n public get errorState(): boolean {\n return this.ngControl ? this.ngControl.touched && this.ngControl.invalid : false;\n }\n\n @HostBinding(\"class.floating\")\n public get shouldLabelFloat(): boolean {\n return this.open || !this.empty;\n }\n\n constructor(\n @Optional() @Self() public ngControl: NgControl,\n private fm: FocusMonitor,\n private zone: NgZone,\n public elRef: ElementRef<HTMLElement>\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\n if (this.ignoreNextFocus) {\n this.ignoreNextFocus = false;\n return;\n }\n\n this.focused = !!origin;\n this.stateChanges.next();\n if (this.focused && (!this._items || !this._items.length) && !this.loading) {\n this.searchControl.patchValue(\"\");\n }\n\n if (!this.focused && !this._value) {\n if (this.activeOption && this.activeOption.viewValue?.toLowerCase() === this.searchControl.value?.toLowerCase()) {\n this.onOptionSelected({\n option: this.activeOption,\n source: null\n });\n } else {\n if (!this.open) {\n this.onRemove();\n }\n }\n }\n });\n }\n\n private _items: any[];\n private _labelFormatFn: (item: unknown) => string;\n private _page = 0;\n\n @Input()\n public allowNotFoundItems = false;\n\n @Input()\n public panelClass: string | string[] = [];\n\n @Input()\n public bindValue: string;\n @Input()\n public bindLabel: string;\n\n /** @deprecated: Use NiceRemoteTypeahead instead */\n @Input()\n public typeahead: Subject<string>;\n /** @deprecated: Use NiceRemoteTypeahead instead */\n @Input()\n public page$: Subject<number>;\n\n @Input()\n public loading: boolean;\n @Input()\n public loadingPage: boolean;\n\n @Input()\n public searchFn: (search: string, option: any) => boolean;\n\n // tslint:disable-next-line:no-output-native\n @Output()\n public change = new EventEmitter();\n\n @ViewChild(\"searchInput\")\n public input: ElementRef<HTMLInputElement>;\n\n @ViewChildren(MatOption)\n public options: MatOption[];\n\n public search$ = new Subject<string>();\n public searchControl = new FormControl(null);\n public values: unknown[] = [];\n public valueChangesSub$: Subscription;\n public searchSub$: Subscription;\n public open = false;\n public panelWidth = 0;\n public activeOption: MatOption;\n\n private updatingItem = false;\n private waitForItems = false;\n private ignoreNextFocus = false;\n private observer: ResizeObserver;\n\n /** MatFormField */\n private _required: boolean;\n private _disabled = false;\n private _placeholder: string;\n private _value: any;\n private _emptyPlaceholder: string;\n\n public stateChanges = new Subject<void>();\n public controlType = \"typeahead\";\n public focused = false;\n\n @HostBinding()\n public id: string = uuid.v4();\n @HostBinding(\"attr.aria-describedby\")\n public describedBy = \"\";\n\n @Input()\n public optionTemplate: TemplateRef<HTMLElement>;\n\n public propagate: (value: string) => void = () => {};\n\n public ngOnInit(): void {\n if (this.ngControl) {\n this.ngControl.statusChanges.subscribe((status) => {\n this.disabled = status === \"DISABLED\";\n });\n }\n\n this.searchSub$ = this.search$.subscribe(text => {\n if (!text || typeof text !== \"string\") {\n this.values = this._filter(\"\");\n return;\n }\n this.values = this._filter(text);\n });\n if (this.searchControl) {\n this.valueChangesSub$ = this.searchControl.valueChanges.subscribe(text => {\n if (this.updatingItem) {\n return;\n }\n\n if (this._value) {\n if (text === this.formatLabel(this.getValueItem())) {\n return;\n }\n\n this.value = null;\n }\n\n if (this.waitForItems) {\n this.waitForItems = false;\n return;\n }\n\n if (typeof text !== \"string\") {\n return;\n }\n\n if (this.typeahead) {\n this.setLoading(true);\n this._page = 0;\n this.typeahead.next(text);\n } else {\n this.search$.next(text);\n }\n });\n }\n\n this.observer = new ResizeObserver(entries => {\n this.zone.run(() => {\n this.panelWidth = entries[0].contentRect.width;\n });\n });\n\n this.observer.observe(this.elRef.nativeElement);\n }\n\n public ngOnDestroy(): void {\n this.search$?.complete();\n this.searchSub$?.unsubscribe();\n this.valueChangesSub$?.unsubscribe();\n this.stateChanges?.complete();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n this.observer?.unobserve(this.elRef.nativeElement);\n }\n\n public onContainerClick(event: MouseEvent): void {\n if (!this.disabled && (event.target as Element).tagName.toLowerCase() != \"input\") {\n this.input.nativeElement.focus();\n }\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(\" \");\n }\n\n public registerOnChange(propagate: (value: string) => void): void {\n this.propagate = propagate;\n }\n\n public registerOnTouched(fn: any): void {\n // NO-OP\n }\n\n public writeValue(value: string): void {\n try {\n this.updatingItem = true;\n // If both are equal (considering null === undefined), consider that the value has not changed.\n if (this._value === value || (isNullOrUndefined(this._value) && isNullOrUndefined(value))) {\n return;\n }\n\n if (!value && this._value !== value) {\n this.onRemove(null);\n return;\n }\n this.value = value;\n if (!this._items) {\n this.waitForItems = true;\n return;\n }\n\n this.updateSearchInput();\n } finally {\n this.updatingItem = false;\n }\n }\n\n public onOptionActivated(event: MatAutocompleteActivatedEvent): void {\n this.activeOption = event.option;\n }\n\n public onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n if (event.option.id === \"new-value-option\") {\n this.value = new NiceTypeaheadNewValue(this.searchControl.value);\n } else {\n this.updateLabel(event.option.value);\n this.value = this.bindValue ? this.getObjectItem(this.bindValue, event.option.value) : event.option.value;\n }\n this.change.emit(event.option.value);\n }\n\n public updateState(open: boolean): void {\n this.open = open;\n if (!this.open && this.ngControl) {\n this.ngControl.control.markAsTouched();\n }\n\n if (!this.open) {\n this.activeOption = null;\n if (!this._value) {\n this.onRemove();\n }\n }\n }\n\n public onRemove(event?: Event): void {\n if (event) {\n event.stopPropagation();\n }\n if (this.disabled) {\n return;\n }\n this.ignoreNextFocus = true;\n this.focused = false;\n this.value = null;\n this.searchControl.patchValue(null);\n if (this.ngControl?.control) {\n this.ngControl.control.markAsTouched();\n }\n this.stateChanges.next();\n this.change.emit();\n\n if (this.typeahead) {\n this.setLoading(true);\n this._page = 0;\n this.typeahead.next(\"\");\n } else {\n this.search$.next(\"\");\n }\n }\n\n public formatLabel(item: any): string {\n if (this._labelFormatFn) {\n return this._labelFormatFn(item);\n }\n\n if (this.bindLabel) {\n return this.getObjectItem(this.bindLabel, item);\n }\n\n if (typeof item !== \"string\") {\n return \"\";\n }\n\n return item;\n }\n\n private _filter(text: string): unknown[] {\n if (this._items) {\n const searchFn = this.searchFn || this.defaultSearch.bind(this);\n return this._items.filter(x => searchFn(text, x));\n }\n return [];\n }\n\n private defaultSearch(search: string, option: unknown): boolean {\n if (typeof option === \"string\") {\n return this.filterString(search, option);\n }\n\n if (typeof option !== \"object\") {\n return false;\n }\n\n if (this.bindLabel) {\n const item = this.getObjectItem(this.bindLabel, option);\n if (typeof item === \"string\") {\n return this.filterString(search, item);\n }\n } else if (this.formatLabel) {\n const item = this.formatLabel(option);\n if (typeof item === \"string\") {\n return this.filterString(search, item);\n }\n }\n\n return false;\n }\n\n private updateSearchInput(): void {\n if ((!this.waitForItems && !this._items) || !this._items) {\n return;\n }\n\n if (this._value instanceof NiceTypeaheadNewValue) {\n this.updateLabel(this._value.$new);\n return;\n }\n\n if (typeof this._value === \"object\") {\n this.updateLabel(this._value);\n return;\n }\n\n const search = this._items.find(\n v => (this.bindValue && typeof v === \"object\" ? this.getObjectItem(this.bindValue, v) : v) === this._value\n );\n if (search) {\n this.updateLabel(search);\n }\n }\n\n private filterString(text: string, value: string): boolean {\n return value.toLowerCase().includes(text.toLowerCase());\n }\n\n private updateLabel(item: unknown | string): void {\n if (!item) {\n return;\n }\n\n const label = this.formatLabel(item);\n\n if (label && label !== this.searchControl.value) {\n this.searchControl.patchValue(label, { emitEvent: false });\n }\n }\n\n public onEndScroll(): void {\n if (this.page$ && !this.loadingPage) {\n this.setLoadingPage(true);\n this._page++;\n this.page$.next(this._page);\n }\n }\n\n private getObjectItem(key: string, obj: object): any {\n const keys = key.split(\".\");\n let item = obj;\n for (const k of keys) {\n if (!item) {\n return item;\n }\n\n if (!item.hasOwnProperty(k)) {\n return item;\n }\n item = item[k];\n }\n\n return item;\n }\n\n private getValueItem(): any {\n if (!this.bindValue) {\n return this._value;\n }\n\n const keys = this.bindValue.split(\".\");\n return this._items.find(x => {\n let item = x;\n for (const k of keys) {\n if (!item) {\n return item;\n }\n\n if (!item.hasOwnProperty(k)) {\n return item;\n }\n item = item[k];\n }\n\n return item === this._value;\n });\n }\n\n private setLoading(loading: boolean): void {\n if (this.loading === undefined) {\n this.loading = loading;\n }\n }\n\n private setLoadingPage(loading: boolean): void {\n if (this.loadingPage === undefined) {\n this.loadingPage = loading;\n }\n }\n\n private checkIfValueStillExist(): void {\n if (this._value instanceof NiceTypeaheadNewValue) {\n return;\n }\n\n const item = this._items.find(\n v => (this.bindValue && typeof v === \"object\" ? this.getObjectItem(this.bindValue, v) : v) === this._value\n );\n if (item) {\n return;\n }\n\n if (this._value !== null && this._value !== undefined) {\n this.onRemove(null);\n }\n }\n}\n","<div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"required\"\n />\n <mat-icon *ngIf=\"value && !loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"loading\"></mat-spinner>\n</div>\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n autoActiveFirstOption\n>\n <mat-progress-bar *ngIf=\"open && loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n <mat-option *ngFor=\"let option of values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n</mat-autocomplete>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"required\"\n />\n</ng-template>\n","import { NgModule } from \"@angular/core\";\nimport { OptionsScrollDirective } from \"./options-scroll.directive\";\n\n@NgModule({\n declarations: [OptionsScrollDirective],\n exports: [OptionsScrollDirective]\n})\nexport class OptionScrollModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { OptionScrollModule } from \"./directives/options-scroll.module\";\n\nimport { NiceTypeaheadComponent } from \"./typeahead.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n OptionScrollModule,\n MatAutocompleteModule,\n FormsModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatProgressBarModule,\n MatIconModule,\n MatButtonModule,\n TranslateModule\n ],\n declarations: [NiceTypeaheadComponent],\n exports: [NiceTypeaheadComponent]\n})\nexport class NiceTypeaheadModule {}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_ASYNC_TYPEAHEAD_PROVIDER = new InjectionToken(\"nice_async_typeahead_provider\");\n","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport {\n BehaviorSubject,\n catchError,\n defer,\n distinctUntilChanged,\n EMPTY,\n firstValueFrom,\n from,\n isObservable,\n mergeMap,\n Observable,\n Subject,\n Subscription,\n switchMap\n} from \"rxjs\";\nimport { fromPromise } from \"rxjs/internal/observable/innerFrom\";\nimport { finalize, map } from \"rxjs/operators\";\nimport { NICE_ASYNC_TYPEAHEAD_PROVIDER } from \"../async-typeahead.constant\";\nimport { NiceAsyncTypeaheadProvider } from \"./async-typeahead.provider\";\n\nexport class AsyncTypeaheadState {\n items: any[];\n active: any;\n loading: boolean;\n loadingPage: boolean;\n initialized: boolean;\n page: number;\n isLastPage: boolean;\n searchQuery?: string;\n excludedIds: any[];\n searchOptions?: object;\n}\n\nexport type AsyncTypeaheadRequests = {\n resource: string;\n page: number;\n searchQuery?: string;\n searchOptions?: any;\n};\n\n@Injectable()\nexport class NiceAsyncTypeaheadService {\n private state$: BehaviorSubject<AsyncTypeaheadState> = new BehaviorSubject({\n items: [],\n active: null,\n loading: false,\n loadingPage: false,\n initialized: false,\n searchQuery: null,\n page: 0,\n isLastPage: false,\n excludedIds: []\n });\n\n public loading$ = this.state$.pipe(map(x => x.loading), distinctUntilChanged());\n public loadingPage$ = this.state$.pipe(map(x => x.loadingPage), distinctUntilChanged());\n public active$ = this.state$.pipe(map(x => x.active), distinctUntilChanged());\n public items$ = this.state$.pipe(map(x => x.items), distinctUntilChanged());\n public filteredItems$ = this.state$.pipe(map(x => x.items.filter(item => !x.excludedIds.includes(item.id))), distinctUntilChanged());\n\n private requests$ = new Subject<AsyncTypeaheadRequests>();\n private requestsSubscription$: Subscription;\n\n constructor(@Optional() @Inject(NICE_ASYNC_TYPEAHEAD_PROVIDER) private readonly apis: NiceAsyncTypeaheadProvider<any>[]) {\n if (!this.apis) {\n this.apis = [];\n }\n }\n\n public listenForRequest(): void {\n this.requestsSubscription$ = this.requests$.pipe(\n switchMap((request) => this.sendRequest(request))\n ).subscribe();\n }\n\n public closeRequestSubscription(): void {\n this.requestsSubscription$?.unsubscribe();\n }\n\n public async initialize(resource: string): Promise<void> {\n const { initialized } = this.state$.getValue();\n if (initialized) {\n return;\n }\n\n return this.search(resource, \"\");\n }\n\n public sendRequest(request: AsyncTypeaheadRequests): Observable<void> {\n return defer(() => {\n const { active, initialized } = this.state$.getValue();\n\n if (active && !initialized) {\n this.state$.next({\n ...this.state$.value,\n initialized: true\n });\n return EMPTY;\n }\n\n const api = this.apis.find(x => x.resource === request.resource);\n if (!api) {\n return EMPTY;\n }\n\n if (request.page === 0) {\n this.state$.next({\n ...this.state$.value,\n loading: true,\n initialized: true,\n page: request.page,\n isLastPage: false,\n searchQuery: request.searchQuery\n });\n } else {\n this.state$.next({\n ...this.state$.value,\n loadingPage: true\n });\n }\n\n const result = api.search(request.searchQuery, request.page, request.searchOptions);\n if (isObservable(result)) {\n return result;\n }\n\n return fromPromise(result);\n }).pipe(\n map((result) => {\n this.state$.next({\n ...this.state$.value,\n items: request.page === 0 ? result.items : [...(this.state$.value.items ?? []), ...result.items],\n page: result.nextPage ? result.nextPage : this.state$.value.page,\n isLastPage: !result.nextPage\n });\n }),\n catchError(() => EMPTY),\n finalize(() => {\n this.state$.next({\n ...this.state$.value,\n loading: false,\n loadingPage: false\n });\n })\n );\n }\n\n public search(resource: string, searchQuery: string): void {\n this.requests$.next({\n resource,\n searchQuery,\n searchOptions: this.getSearchOptions(),\n page: 0\n });\n }\n\n public loadMore(resource: string): void {\n const { loadingPage, isLastPage } = this.state$.getValue();\n if (loadingPage || isLastPage) {\n return;\n }\n\n const { searchQuery, page } = this.state$.getValue();\n this.requests$.next({\n resource,\n page,\n searchQuery,\n searchOptions: this.getSearchOptions(),\n });\n }\n\n public getActive(): any {\n return this.state$.value.active;\n }\n\n public getInitialized(): boolean {\n return this.state$.value.initialized;\n }\n\n public getSearchOptions(): object | undefined {\n return this.state$.value.searchOptions;\n }\n\n public setSearchOptions(searchOptions: object | undefined): void {\n this.state$.next({\n ...this.state$.value,\n searchOptions\n });\n }\n\n public setActive(entity: any | undefined): void {\n this.state$.next({\n ...this.state$.value,\n active: entity ?? null\n });\n }\n\n public async setActiveId(resource: string, id: any): Promise<void> {\n if (!id) {\n return;\n }\n\n const api = this.apis.find(x => x.resource === resource);\n if (!api) {\n return;\n }\n\n try {\n this.state$.next({\n ...this.state$.value,\n loading: true\n });\n\n const localItem = this.state$.value.items.find((item) => item.id === id);\n if (localItem) {\n this.state$.next({\n ...this.state$.value,\n items: [localItem],\n active: localItem,\n page: 0,\n isLastPage: false\n });\n return;\n }\n\n const entity = await api.getById(id, this.getSearchOptions());\n if (!entity) {\n return;\n }\n\n this.state$.next({\n ...this.state$.value,\n items: [entity],\n active: entity,\n page: 0,\n isLastPage: false\n });\n } catch {\n } finally {\n this.state$.next({\n ...this.state$.value,\n loading: false\n });\n }\n }\n\n public reloadActive(resource: string): Promise<void> {\n return this.setActiveId(resource, this.state$.value.active?.id);\n }\n\n public reloadFilteredItems(): void {\n // TODO: Use a better way to trigger the items$ observable\n this.state$.next({\n ...this.state$.value\n });\n }\n\n public setFilterFn(filterFn: (value: any) => boolean | Promise<boolean> | Observable<boolean>): void {\n this.filteredItems$ = this.items$.pipe(mergeMap(items => {\n return from(Promise.all(items.map(async item => {\n const result = filterFn(item);\n\n const unwrappedResult = isObservable(result) ? await firstValueFrom(result) : await result;\n\n return [item, unwrappedResult];\n })));\n }\n ),\n map(items => items.filter(([item, keep]) => keep).map(([item, keep]) => item))\n );\n }\n\n public format(resource: string, item: string): string {\n const api = this.apis.find(x => x.resource === resource);\n if (!api) {\n return \"\";\n }\n\n return api.format(item);\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional, Output,\n Self,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl, NgForm, Validators } from \"@angular/forms\";\nimport { MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent } from \"@angular/material/autocomplete\";\nimport { ErrorStateMatcher, MatOption, mixinErrorState } from \"@angular/material/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { debounceTime, distinctUntilChanged, firstValueFrom, Observable, Subject, Subscription } from \"rxjs\";\nimport { take } from \"rxjs/operators\";\nimport * as uuid from \"uuid\";\nimport { isNullOrUndefined } from \"../../utils\";\nimport { NiceTypeaheadNewValue } from \"../typeahead\";\nimport { NiceAsyncTypeaheadService } from \"./providers/async-typeahead.service\";\n\n// Boilerplate for applying mixins to ).\n/** @docs-private */\nconst _BaseAsyncTypeaheadComponent = mixinErrorState(\n class {\n /**\n * Emits whenever the component state changes and should cause the parent\n * form field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n readonly stateChanges = new Subject<void>();\n\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n public ngControl: NgControl\n ) {}\n }\n);\n\n@Component({\n selector: \"nice-async-typeahead\",\n templateUrl: \"async-typeahead.template.html\",\n styleUrls: [\"async-typeahead.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: NiceAsyncTypeaheadComponent\n },\n NiceAsyncTypeaheadService\n ]\n})\n// tslint:disable-next-line:max-line-length\nexport class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor, MatFormFieldControl<any>, DoCheck {\n public stateChanges = new Subject<void>();\n public controlType = \"remote-typeahead\";\n public focused = false;\n\n public searchControl = new FormControl(null);\n public valueChangesSub$: Subscription;\n public open = false;\n public panelWidth = 0;\n public activeOption: MatOption;\n\n public active$ = this.service.active$;\n\n @ViewChild(\"searchInput\")\n public input: ElementRef<HTMLInputElement>;\n\n @ViewChildren(MatOption)\n public options: MatOption[];\n\n @Output()\n public entityRemoved = new EventEmitter<void>();\n\n @Input()\n public resource: string;\n\n @Input()\n public searchOptions: any;\n\n @Input()\n public autoReload = true;\n\n @Input()\n public preloadResource = false;\n\n @Input()\n public allowNotFoundItems = false;\n\n @Input()\n public panelClass: string | string[] = [];\n\n @Input()\n public bindValue = \"id\";\n\n @Input()\n public bindLabel: string;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public emptyPlaceholder: string;\n\n @Input()\n public optionTemplate: TemplateRef<HTMLElement>;\n\n @Input()\n public filterFn: (value: any) => boolean | Promise<boolean> | Observable<boolean>;\n\n @Output()\n public selected = new EventEmitter<any>();\n\n public isOpened$ = new Subject<boolean>();\n\n @Input()\n public set labelFormatFn(labelFormatFn: (item: any) => string) {\n this._labelFormatFn = labelFormatFn;\n }\n private _labelFormatFn: (item: any) => string;\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n public set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n\n this.changeDetectorRef.detectChanges();\n }\n\n public get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n protected _disabled = false;\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n public set value(value: any) {\n if (value !== this._value) {\n this._value = value;\n this.propagate(value);\n this.stateChanges.next();\n }\n }\n public get value(): string {\n return this._value;\n }\n private _value: any;\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n public set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n public get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n protected _required: boolean | undefined;\n\n @HostBinding(\"class.floating\")\n public get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @HostBinding()\n public id: string = uuid.v4();\n\n @HostBinding(\"attr.aria-describedby\")\n public describedBy = \"\";\n\n\n private componentInitialized = false;\n private initialWriteValue?: any;\n\n public get empty(): boolean {\n return (\n (!this.searchControl.value || !this.searchControl.value.length) &&\n (!this._value || (typeof this._value === \"string\" && !this._value.length))\n );\n }\n\n public get initialized(): boolean {\n return this.service.getInitialized();\n }\n\n public propagate: (value: string) => void = () => {};\n\n constructor(\n @Optional() @Self() ngControl: NgControl,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n defaultErrorStateMatcher: ErrorStateMatcher,\n private ngZone: NgZone,\n private changeDetectorRef: ChangeDetectorRef,\n public service: NiceAsyncTypeaheadService,\n ) {\n super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public async ngOnInit(): Promise<void> {\n this.service.listenForRequest();\n\n if (this.ngControl) {\n if (this.ngControl.disabled) {\n this.searchControl.disable({ emitEvent: false });\n }\n\n this.ngControl.statusChanges.subscribe((status) => {\n this.disabled = status === \"DISABLED\";\n if (this._disabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n });\n }\n\n if (this.filterFn) {\n this.service.setFilterFn(this.filterFn);\n }\n\n if (this.searchControl) {\n this.valueChangesSub$ = this.searchControl.valueChanges.pipe(debounceTime(500), distinctUntilChanged()).subscribe(text => {\n if (typeof text !== \"string\") {\n return;\n }\n\n this.service.search(this.resource, text);\n });\n }\n\n if (this.preloadResource) {\n this.service.search(this.resource, \"\");\n }\n\n this.componentInitialized = true;\n if (this.initialWriteValue !== undefined) {\n await this.writeValue(this.initialWriteValue);\n }\n }\n\n public ngOnDestroy(): void {\n this.service.closeRequestSubscription();\n this.valueChangesSub$.unsubscribe();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (\"searchOptions\" in changes) {\n const change = changes.searchOptions;\n this.service.setSearchOptions(change.currentValue);\n\n if (!change.isFirstChange() && change.currentValue !== change.previousValue && this.autoReload) {\n this.service.search(this.resource, \"\");\n this.service.items$.pipe(take(1)).subscribe(() => this.checkIfValueStillExist());\n }\n }\n\n if (\"filterFn\" in changes) {\n const change = changes.filterFn;\n if (!change.isFirstChange() && change.currentValue !== change.previousValue) {\n this.service.setFilterFn(change.currentValue);\n }\n }\n\n this.stateChanges.next();\n }\n\n public ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n\n public async writeValue(value: any): Promise<void> {\n if (!this.componentInitialized) {\n this.initialWriteValue = value;\n return;\n }\n\n if (this._value === value || (isNullOrUndefined(this._value) && isNullOrUndefined(value))) {\n return;\n }\n\n if (!value && this._value !== value) {\n this.onRemove(null);\n return;\n }\n\n if (value instanceof NiceTypeaheadNewValue) {\n this.updateSearchInput();\n return;\n } else {\n await this.service.setActiveId(this.resource, value).then(() => this.updateSearchInput());\n }\n\n this.value = value;\n }\n\n public registerOnChange(propagate: (value: string) => void): void {\n this.propagate = propagate;\n }\n\n public registerOnTouched(fn: any): void {\n // NO-OP\n }\n\npublic onContainerClick(event: MouseEvent): void {\n\t if (this.disabled) {\n\t \treturn;\n\t }\n\n this.stateChanges.next();\n if ((event.target as Element).tagName.toLowerCase() != \"input\") {\n this.input.nativeElement.focus();\n }\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(\" \");\n }\n\n public getActive<T = any>(): T {\n return this.service.getActive();\n }\n\n public onOptionActivated(event: MatAutocompleteActivatedEvent): void {\n this.activeOption = event.option;\n }\n\n public onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n if (event.option.id === \"new-value-option\") {\n this.value = new NiceTypeaheadNewValue(this.searchControl.value);\n } else {\n this.updateLabel(event.option.value);\n this.service.setActive(event.option.value);\n this.value = this.bindValue ? this.getObjectItem(this.bindValue, event.option.value) : event.option.value;\n }\n\n this.selected.emit(this.value);\n }\n\n public updateState(open: boolean): void {\n this.open = open;\n this.isOpened$.next(open);\n\n if (!this.open) {\n this.ngZone.run(() => {\n this.focusChanged(false);\n this.changeDetectorRef.markForCheck();\n });\n }\n\n if (this.open && !this.initialized) {\n this.service.initialize(this.resource);\n }\n\n if (!this.open && this.ngControl) {\n this.ngControl.control.markAsTouched();\n }\n\n if (!this.open) {\n this.activeOption = null;\n if (!this._value && this.searchControl.value) {\n this.onRemove();\n }\n }\n }\n\n public onRemove(event?: Event, reload = true): void {\n if (event) {\n // event.stopPropagation();\n }\n if (this.disabled) {\n return;\n }\n this.service.setActive(null);\n this.value = null;\n this.searchControl.patchValue(null);\n if (this.ngControl?.control) {\n this.ngControl.control.markAsTouched();\n }\n this.stateChanges.next();\n\n this.entityRemoved.emit();\n\n if (reload) {\n this.service.search(this.resource, \"\");\n }\n }\n\n public formatLabel(item: any): string {\n if (this._labelFormatFn) {\n return this._labelFormatFn(item);\n }\n\n if (this.bindLabel) {\n return this.getObjectItem(this.bindLabel, item);\n }\n\n if (typeof item !== \"string\") {\n return this.service.format(this.resource, item);\n }\n\n return item;\n }\n\n public onEndScroll(): void {\n this.service.loadMore(this.resource);\n }\n\n public focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n\n if (isFocused && this.filterFn) {\n this.service.reloadFilteredItems();\n }\n }\n }\n\n public reload(): void {\n this.service?.search(this.resource, this.searchControl.value ?? \"\");\n }\n\n public async reloadActive(): Promise<void> {\n await this.service?.reloadActive(this.resource);\n const active = this.service?.getActive();\n this.updateLabel(active);\n }\n\n public setSearchOptions(options: any): void {\n this.searchOptions = options;\n this.service.setSearchOptions(options);\n }\n\n private updateLabel(item: unknown | string): void {\n if (!item) {\n return;\n }\n\n const label = this.formatLabel(item);\n\n if (label && label !== this.searchControl.value) {\n this.searchControl.patchValue(label, { emitEvent: false });\n }\n }\n\n private getObjectItem(key: string, obj: object): any {\n const keys = key.split(\".\");\n let item = obj;\n for (const k of keys) {\n if (!item) {\n return item;\n }\n\n if (!item.hasOwnProperty(k)) {\n return item;\n }\n item = item[k];\n }\n\n return item;\n }\n\n private updateSearchInput(): void {\n if (this._value instanceof NiceTypeaheadNewValue) {\n this.updateLabel(this._value.$new);\n return;\n }\n\n const active = this.service.getActive();\n if (active) {\n this.updateLabel(active);\n return;\n }\n }\n\n private async checkIfValueStillExist(): Promise<void> {\n if (this._value instanceof NiceTypeaheadNewValue) {\n return;\n }\n\n const items = await firstValueFrom(this.service.filteredItems$);\n const item = items.find(\n v => (this.bindValue && typeof v === \"object\" ? this.getObjectItem(this.bindValue, v) : v) === this._value\n );\n if (item) {\n return;\n }\n\n if (this._value !== null && this._value !== undefined) {\n this.onRemove(null);\n }\n }\n}\n","<ng-container *ngIf=\"{ loading: service.loading$ | async, loadingPage: service.loadingPage$ | async, values: service.filteredItems$ | async } as ctx\">\n <div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"$any(disabled)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"$any(required)\"\n (focus)=\"focusChanged(true)\"\n />\n <mat-icon *ngIf=\"value && !ctx.loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"ctx.loading\"></mat-spinner>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n >\n <mat-progress-bar class=\"-mt-2\" *ngIf=\"open && ctx.loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n\n <mat-option *ngFor=\"let option of ctx.values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\"\n >\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && ctx.loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n </mat-autocomplete>\n</ng-container>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"$any(required)\"\n />\n</ng-template>\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule, Type } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { OptionScrollModule } from \"../typeahead/directives/options-scroll.module\";\n\nimport { NiceAsyncTypeaheadComponent } from \"./async-typeahead.component\";\nimport { NICE_ASYNC_TYPEAHEAD_PROVIDER } from \"./async-typeahead.constant\";\nimport { NiceAsyncTypeaheadProvider } from \"./providers/async-typeahead.provider\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n OptionScrollModule,\n MatInputModule,\n MatAutocompleteModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatProgressBarModule,\n TranslateModule\n ],\n declarations: [NiceAsyncTypeaheadComponent],\n providers: [],\n exports: [NiceAsyncTypeaheadComponent]\n})\nexport class NiceAsyncTypeaheadModule {\n public static register(providers: Type<NiceAsyncTypeaheadProvider<any, any>>[]): ModuleWithProviders<NiceAsyncTypeaheadModule> {\n return {\n ngModule: NiceAsyncTypeaheadModule,\n providers: providers.map(x => ({\n provide: NICE_ASYNC_TYPEAHEAD_PROVIDER,\n useClass: x,\n multi: true\n }))\n };\n }\n}\n","import { CdkStepper } from \"@angular/cdk/stepper\";\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\nimport { ControlValueAccessor, FormGroup } from \"@angular/forms\";\nimport { GeneratedFormGroup } from \"@recursyve/ngx-form-generator\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n template: ``\n})\nexport abstract class NiceBaseFormComponent<Form extends { [key: string]: any }> implements OnInit, OnDestroy, ControlValueAccessor {\n @ViewChild(CdkStepper)\n private stepper: CdkStepper;\n\n @Input()\n public loading = false;\n\n // tslint:disable-next-line:no-output-native\n @Output()\n public submit = new EventEmitter<Form>();\n\n protected unsubscribeAll$ = new Subject<void>();\n\n private propagate: (form: Form) => void = () => {};\n\n constructor(public formGroup: GeneratedFormGroup<Form>) {}\n\n public ngOnInit(): void {\n this.formGroup.valueChanges.pipe(takeUntil(this.unsubscribeAll$)).subscribe(() => {\n this.onValueChange(this.formGroup.getRawValue());\n });\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$?.next();\n this.unsubscribeAll$?.complete();\n }\n\n public registerOnChange(fn: (form: Form) => void): void {\n this.propagate = fn;\n }\n\n public registerOnTouched(fn: (form: Form) => void): void {\n // NO-OP\n }\n\n public writeValue(form: Form): void {\n if (form) {\n this.formGroup.patchValue(form);\n }\n }\n\n public clickSubmit(): void {\n if (!this.validate()) {\n return;\n }\n this.submit.emit(this.formGroup.getRawValue());\n }\n\n public clickNext(index: number): void {\n this.validateStep(index);\n if (this.stepper) {\n this.stepper.next();\n }\n }\n\n public clickPrevious(): void {\n if (this.stepper) {\n this.stepper.previous();\n }\n }\n\n protected onValueChange(value: Form): void {\n this.propagate(value);\n }\n\n public validate(): boolean {\n if (this.formGroup.valid) {\n return true;\n }\n this.formGroup.markAllAsTouched();\n return false;\n }\n\n protected validateStep(index: number): boolean {\n const group = this.getCurrentStepGroup(index);\n if (group?.valid) {\n return true;\n }\n group?.markAllAsTouched();\n return false;\n }\n\n protected getCurrentStepGroup(index: number): FormGroup | null {\n return null;\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\nimport { NiceBaseFormComponent } from \"./base-form.component\";\n\n@Directive({ selector: \"[niceFormSubmit]\" })\nexport class NiceFormSubmitDirective {\n @Input()\n public form: NiceBaseFormComponent<any>;\n\n @HostListener(\"click\")\n public onClick(): void {\n this.form.clickSubmit();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceFormSubmitDirective } from \"./form-submit.directive\";\n\n@NgModule({\n declarations: [NiceFormSubmitDirective],\n exports: [NiceFormSubmitDirective]\n})\nexport class NiceBaseFormModule {}\n","export class NiceBaseForm<T, Dto> {\n\n constructor(value?: Partial<T>) {\n if (!value) {\n return;\n }\n Object.assign(this, value);\n }\n\n public toDto(): Dto {\n return {\n ...this\n } as any;\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { Component, HostBinding, Input, OnChanges, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\nimport { niceAnimations } from \"../../animations\";\nimport { NiceCardFace } from \"./card.types\";\n\n@Component({\n selector: \"nice-card\",\n templateUrl: \"./card.component.html\",\n encapsulation: ViewEncapsulation.None,\n animations: niceAnimations,\n exportAs: \"niceCard\"\n})\nexport class NiceCardComponent implements OnChanges {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_expanded: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_flippable: BooleanInput;\n\n @Input()\n public expanded = false;\n\n @Input()\n public face: NiceCardFace = \"front\";\n\n @Input()\n public flippable = false;\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"nice-card-expanded\": this.expanded,\n \"nice-card-face-back\": this.flippable && this.face === \"back\",\n \"nice-card-face-front\": this.flippable && this.face === \"front\",\n \"nice-card-flippable\": this.flippable\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Expanded\n if (\"expanded\" in changes) {\n // Coerce the value to a boolean\n this.expanded = coerceBooleanProperty(changes.expanded.currentValue);\n }\n\n // Flippable\n if (\"flippable\" in changes) {\n // Coerce the value to a boolean\n this.flippable = coerceBooleanProperty(changes.flippable.currentValue);\n }\n }\n}\n","<!-- Flippable card -->\n<ng-container *ngIf=\"flippable\">\n <!-- Front -->\n <div class=\"nice-card-front\">\n <ng-content select=\"[niceCardFront]\"></ng-content>\n </div>\n\n <!-- Back -->\n <div class=\"nice-card-back\">\n <ng-content select=\"[niceCardBack]\"></ng-content>\n </div>\n</ng-container>\n\n<!-- Normal card -->\n<ng-container *ngIf=\"!flippable\">\n <!-- Content -->\n <ng-content></ng-content>\n\n <!-- Expansion -->\n <div\n class=\"nice-card-expansion\"\n *ngIf=\"expanded\"\n [@expandCollapse]>\n <ng-content select=\"[niceCardExpansion]\"></ng-content>\n </div>\n</ng-container>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NiceCardComponent } from \"./card.component\";\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n NiceCardComponent\n ],\n exports: [\n NiceCardComponent\n ]\n})\nexport class NiceCardModule {\n}\n","import { Component, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: \"nice-picture-modal\",\n styleUrls: [\"picture-modal.style.scss\"],\n templateUrl: \"picture-modal.template.html\"\n})\nexport class PictureModalComponent {\n public picture: string;\n}\n","<div class=\"overlay-content\">\n <img [src]=\"picture\" />\n</div>\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\nimport { PictureModalComponent } from \"./picture-modal.component\";\n\nexport interface PictureModalConfig {\n picture?: string;\n}\n\n@Injectable()\nexport class PictureModalService {\n constructor(private overlay: Overlay) {}\n\n public open(config: PictureModalConfig) {\n const positionStrategy = this.overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically();\n\n const overlayRef = this.overlay.create({\n backdropClass: \"cdk-overlay-dark-backdrop\",\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n\n const pictureModalPortal = new ComponentPortal(PictureModalComponent);\n const pictureModalRef = overlayRef.attach(pictureModalPortal);\n\n pictureModalRef.instance.picture = config.picture;\n\n overlayRef.backdropClick().subscribe(() => overlayRef.dispose());\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const CAROUSEL_ICONS = new InjectionToken(\"carousel_icons\");\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"carouselLayout\" })\nexport class CarouselLayoutPipe implements PipeTransform {\n public transform(value: \"row\" | \"column\", direction: \"ltr\" | \"rtl\" | \"utd\" | \"dtu\"): string {\n if (value === \"row\") {\n return direction === \"rtl\" ? \"flex-row-reverse\" : \"flex-row\";\n }\n return direction === \"utd\" ? \"flex-col\" : \"flex-col-reverse\";\n }\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output, ViewEncapsulation } from \"@angular/core\";\nimport { PictureModalService } from \"./picture-modal/picture-modal.service\";\nimport { CAROUSEL_ICONS } from \"./carousel.constant\";\nimport { NiceCarouselIconOptions } from \"./interfaces/carousel-options.interface\";\n\nexport interface Picture {\n id: number;\n url: string;\n}\n\n@Component({\n selector: \"nice-carousel\",\n templateUrl: \"carousel.template.html\",\n styleUrls: [\"./carousel.style.scss\"],\n encapsulation: ViewEncapsulation.None\n})\nexport class CarouselComponent {\n public currentImages: Picture[];\n\n @Input()\n public set images(urls: Picture[]) {\n this.currentImages = urls;\n }\n\n @Input()\n public direction: \"ltr\" | \"rtl\" | \"utd\" | \"dtu\" = \"ltr\";\n\n @Input()\n public layout: \"row\" | \"column\" = \"row\";\n\n @Input()\n public editable = false;\n\n @Output()\n public delete = new EventEmitter<Picture>();\n\n constructor(\n private pictureModalService: PictureModalService,\n @Optional() @Inject(CAROUSEL_ICONS) \n public icons?: NiceCarouselIconOptions\n ) {}\n\n public clickView(picture: Picture) {\n this.pictureModalService.open({\n picture: picture.url\n });\n }\n\n public clickDelete(picture: Picture) {\n this.delete.emit(picture);\n }\n}\n","<div class=\"slides-container\">\n <div class=\"slides flex\" [ngClass]=\"layout | carouselLayout: direction\">\n <div class=\"slide\" *ngFor=\"let image of currentImages\">\n <img [src]=\"image?.url\" (click)=\"clickView(image)\"/>\n <ng-container *ngIf=\"editable\">\n <ng-container *ngIf=\"icons?.remove; else defaultIcon\">\n <mat-icon [svgIcon]=\"icons.remove.svgIcon\" (click)=\"clickDelete(image)\" class=\"remove-button\"></mat-icon>\n </ng-container>\n <ng-template #defaultIcon>\n <i class=\"fad fa-times-circle remove-button\" (click)=\"clickDelete(image)\"></i>\n </ng-template>\n </ng-container>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { CarouselComponent } from \"./carousel.component\";\nimport { PictureModalComponent } from \"./picture-modal\";\nimport { PictureModalService } from \"./picture-modal\";\nimport { CarouselLayoutPipe } from \"./pipe/carousel-layout.pipe\";\nimport { NiceCarouselOptions } from \"./interfaces/carousel-options.interface\";\nimport { CAROUSEL_ICONS } from \"./carousel.constant\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatCardModule,\n MatButtonModule,\n TranslateModule,\n MatIconModule\n ],\n exports: [CarouselComponent],\n declarations: [CarouselComponent, PictureModalComponent, CarouselLayoutPipe],\n providers: [PictureModalService]\n})\nexport class NiceCarouselModule {\n public static forRoot(options?: NiceCarouselOptions): ModuleWithProviders<NiceCarouselModule> {\n return {\n ngModule: NiceCarouselModule,\n providers: [\n {\n provide: CAROUSEL_ICONS,\n useValue: { \n ...(options?.icons ?? {}) \n }\n }\n ].filter((provider) => !!provider)\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit, Output,\n SimpleChanges,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: \"nice-collapsable\",\n templateUrl: \"collapsable.template.html\",\n styleUrls: [\"collapsable.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceCollapsableComponent implements OnInit, OnChanges, OnDestroy {\n @Input()\n public open: boolean;\n\n @Output()\n public openChange = new EventEmitter<boolean>();\n\n public unsubscribeAll$ = new Subject<void>();\n public control = new FormControl(false);\n\n public ngOnInit(): void {\n this.control.valueChanges.pipe(takeUntil(this.unsubscribeAll$)).subscribe(open => this.openChange.emit(open));\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"open\" in changes) {\n this.control.patchValue(this.open);\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n}\n","<div class=\"nice-collapse\">\n <input type=\"checkbox\" class=\"peer cursor-pointer\" [formControl]=\"control\"/>\n <div class=\"collapse-title\">\n <ng-content select=\"[niceCollapsableTitle]\"></ng-content>\n </div>\n <div class=\"collapse-content\">\n <div class=\"content\">\n <ng-content select=\"[niceCollapsableContent]\"></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { NiceCollapsableComponent } from \"./collapsable.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule\n ],\n declarations: [NiceCollapsableComponent],\n providers: [],\n exports: [NiceCollapsableComponent]\n})\nexport class NiceCollapsableModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable()\nexport class NiceDateRangePickerServiceService {\n public allowClear$ = new BehaviorSubject(true);\n\n public setAllowClear(allowClear: boolean): void {\n this.allowClear$.next(allowClear);\n }\n}\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\nimport { DateAdapter } from \"@angular/material/core\";\nimport { MatDateRangePicker } from \"@angular/material/datepicker\";\nimport { NiceDateRangePickerServiceService } from \"../../providers/date-range-picker.service\";\n\nconst customPresets = [\n \"today\",\n \"last_7_days\",\n \"this_week\",\n \"this_month\",\n \"this_year\",\n \"last_week\",\n \"last_month\",\n \"last_year\",\n];\n\ntype CustomPreset = typeof customPresets[number];\n\n@Component({\n selector: \"nice-range-preset\",\n templateUrl: \"range-preset.template.html\",\n styleUrls: [\"range-preset.style.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RangePresetComponent<D> {\n public readonly customPresets = customPresets;\n public readonly allowClear$ = this.service.allowClear$;\n\n constructor(\n private dateAdapter: DateAdapter<D>,\n private picker: MatDateRangePicker<D>,\n private service: NiceDateRangePickerServiceService\n ) {}\n\n public clearRange(): void {\n this.picker.select(null);\n this.picker.select(null);\n this.picker.close();\n }\n\n public selectRange(rangeName: CustomPreset): void {\n const [start, end] = this.calculateDateRange(rangeName);\n this.picker.select(start);\n this.picker.select(end);\n this.picker.close();\n }\n\n private calculateDateRange(rangeName: CustomPreset): [start: D, end: D] {\n const today = this.today;\n const year = this.dateAdapter.getYear(today);\n\n switch (rangeName) {\n case \"today\":\n return [today, today];\n case \"last_7_days\": {\n const start = this.dateAdapter.addCalendarDays(today, -6);\n return [start, today];\n }\n case \"this_week\": {\n return this.calculateWeek(today);\n }\n case \"this_month\": {\n return this.calculateMonth(today);\n }\n case \"this_year\": {\n const start = this.dateAdapter.createDate(year, 0, 1);\n const end = this.dateAdapter.createDate(year, 11, 31);\n return [start, end];\n }\n case \"last_week\": {\n const thisDayLastWeek = this.dateAdapter.addCalendarDays(today, -7);\n return this.calculateWeek(thisDayLastWeek);\n }\n case \"last_month\": {\n const thisDayLastMonth = this.dateAdapter.addCalendarMonths(today, -1);\n return this.calculateMonth(thisDayLastMonth);\n }\n case \"last_year\": {\n const start = this.dateAdapter.createDate(year - 1, 0, 1);\n const end = this.dateAdapter.createDate(year - 1, 11, 31);\n return [start, end];\n }\n default:\n return null;\n }\n }\n\n private calculateMonth(forDay: D): [start: D, end: D] {\n const year = this.dateAdapter.getYear(forDay);\n const month = this.dateAdapter.getMonth(forDay);\n const start = this.dateAdapter.createDate(year, month, 1);\n const end = this.dateAdapter.addCalendarDays(\n start,\n this.dateAdapter.getNumDaysInMonth(forDay) - 1\n );\n return [start, end];\n }\n\n private calculateWeek(forDay: D): [start: D, end: D] {\n const deltaStart = this.dateAdapter.getFirstDayOfWeek() - this.dateAdapter.getDayOfWeek(forDay);\n const start = this.dateAdapter.addCalendarDays(forDay, deltaStart);\n const end = this.dateAdapter.addCalendarDays(start, 6);\n return [start, end];\n }\n\n private get today(): D {\n const today = this.dateAdapter.getValidDateOrNull(new Date());\n if (today === null) {\n throw new Error(\"date creation failed\");\n }\n return today;\n }\n}\n","<mat-card class=\"mat-elevation-z3\">\n <button\n *ngIf=\"allowClear$ | async\"\n mat-button\n (click)=\"clearRange()\"\n >\n {{ \"nice_ui_kit.date_range_picker.clear\" | translate }}\n </button>\n\n <button\n *ngFor=\"let item of customPresets\"\n mat-button\n (click)=\"selectRange(item)\"\n >\n {{ \"nice_ui_kit.date_range_picker.presets.\" + item | translate }}\n </button>\n</mat-card>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy } from \"@angular/core\";\nimport { DateAdapter, MAT_DATE_FORMATS, MatDateFormats } from \"@angular/material/core\";\nimport { MatCalendar } from \"@angular/material/datepicker\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n templateUrl: \"header.template.html\",\n styleUrls: [\"header.style.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HeaderComponent<D> implements OnDestroy {\n private readonly destroy$ = new Subject<void>();\n\n public toggled = false;\n\n constructor(\n private calendar: MatCalendar<D>,\n private dateAdapter: DateAdapter<D>,\n @Inject(MAT_DATE_FORMATS) private dateFormats: MatDateFormats,\n cdr: ChangeDetectorRef\n ) {\n calendar.stateChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => cdr.markForCheck());\n }\n\n public get periodLabel(): string {\n return this.dateAdapter\n .format(this.calendar.activeDate, this.dateFormats.display.monthYearLabel)\n .toLocaleUpperCase();\n }\n\n public previousClicked(mode: \"month\" | \"year\"): void {\n this.changeDate(mode, -1);\n }\n\n public nextClicked(mode: \"month\" | \"year\"): void {\n this.changeDate(mode, 1);\n }\n\n private changeDate(mode: \"month\" | \"year\", amount: -1 | 1): void {\n this.calendar.activeDate =\n mode === \"month\"\n ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, amount)\n : this.dateAdapter.addCalendarYears(this.calendar.activeDate, amount);\n }\n\n public clickOptions() {\n this.toggled = !this.toggled;\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n }\n}\n","<div class=\"hidden md:block\" fxHide.lt-md>\n <nice-range-preset></nice-range-preset>\n</div>\n<div class=\"block md:hidden\">\n <ng-container *ngIf=\"toggled\">\n <nice-range-preset></nice-range-preset>\n </ng-container>\n</div>\n\n<div class=\"header\">\n <button\n fxHide.gt-md\n mat-icon-button\n (click)=\"clickOptions()\"\n >\n <mat-icon>sort</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"double-arrow\"\n (click)=\"previousClicked('year')\"\n >\n <mat-icon>keyboard_arrow_left</mat-icon>\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <button mat-icon-button (click)=\"previousClicked('month')\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <span class=\"header-label\">{{ periodLabel }}</span>\n\n <button mat-icon-button (click)=\"nextClicked('month')\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"double-arrow\"\n (click)=\"nextClicked('year')\"\n >\n <mat-icon>keyboard_arrow_right</mat-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n","import { DatePipe } from \"@angular/common\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Pipe({ name: \"localizedDate\" })\nexport class LocalizedDatePipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n public transform(value: any, pattern: string = \"mediumDate\", fallbackWithNull = false, timeZone?: string): string {\n if (pattern === \"mediumDateWithoutYear\") {\n pattern = this.getMediumDateWithoutYearPattern();\n }\n\n const datePipe: DatePipe = new DatePipe(this.translateService.currentLang, timeZone);\n\n if (value instanceof Date) {\n if (isNaN(value.getTime())) {\n return fallbackWithNull ? null : this.translateService.instant(\"general.not_available\");\n }\n }\n\n if (value && value !== \"0000-00-00\") {\n return datePipe.transform(value, pattern);\n } else {\n return fallbackWithNull ? null : this.translateService.instant(\"general.not_available\");\n }\n }\n\n private getMediumDateWithoutYearPattern(): string {\n if (this.translateService.defaultLang === \"fr\") {\n return \"d MMMM\";\n }\n return \"MMMM d\";\n }\n}\n","import { Component, forwardRef, Input, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { isSameDay } from \"date-fns/isSameDay\";\nimport { subDays } from \"date-fns/subDays\";\nimport { pairwise, startWith } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\nimport { HeaderComponent } from \"./components/header/header.component\";\n\nexport interface NiceDateRangePickerValue {\n from: Date;\n to: Date;\n}\n\n@Component({\n selector: \"nice-date-range-picker\",\n templateUrl: \"date-range-picker.template.html\",\n styleUrls: [\"date-range-picker.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NiceDateRangePickerComponent),\n multi: true\n }\n ]\n})\nexport class NiceDateRangePickerComponent implements OnInit, ControlValueAccessor {\n public readonly HeaderComponent = HeaderComponent;\n\n @Input()\n public min = subDays(new Date(), 3);\n\n @Input()\n public max = new Date();\n\n @Input()\n public nowIsMax = true;\n\n @Input()\n public allowClear = true;\n\n public formGroup = new FormGroup({\n from: new FormControl(),\n to: new FormControl()\n });\n public now = new Date();\n public value: NiceDateRangePickerValue;\n\n private propagate: (value: NiceDateRangePickerValue) => void;\n\n public ngOnInit(): void {\n this.value = {\n from: this.min,\n to: this.max\n };\n this.formGroup.patchValue(this.value);\n\n this.formGroup.valueChanges.pipe(\n startWith(this.value),\n pairwise(),\n filter(([before, after]) => {\n /**\n * We filter out the value changes to only emit when the selection is completed/\n */\n\n if (!after.from && !after.to) {\n return true;\n }\n\n // This is the middle of the selection\n if (after.from && !after.to) {\n return false;\n }\n\n // This means that the selection is done\n if (!before.to && after.to) {\n return true;\n }\n\n // This is an edge case when we select a new range with an active range selected.\n // The after.to will be at null after the after.from is emitted\n if (!isSameDay(before.from, after.from) && isSameDay(before.to, after.to)) {\n return false;\n }\n\n // Skip if noting has changed\n return !(isSameDay(before.from, after.from) && !isSameDay(before.to, after.to));\n }),\n ).subscribe((_) => {\n this.value = this.formGroup.getRawValue();\n this.propagate?.(this.value);\n });\n }\n\n public writeValue(value: NiceDateRangePickerValue): void {\n this.value = value;\n this.formGroup.patchValue(this.value);\n }\n\n public registerOnChange(fn: (value: NiceDateRangePickerValue) => void): void {\n this.propagate = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n}\n","<div class=\"nice-date-picker-container\">\n <div class=\"nice-date-picker-header\">\n <div class=\"from-to\">\n <ng-container *ngIf=\"value?.from\">\n {{ value.from | localizedDate: \"longDate\" }}\n </ng-container>\n <ng-container *ngIf=\"value?.to\">\n <div class=\"separator\">-</div>\n {{ value.to | localizedDate: \"longDate\" }}\n </ng-container>\n </div>\n </div>\n\n <mat-date-range-input [formGroup]=\"formGroup\" [max]=\"nowIsMax ? now : null\" [rangePicker]=\"picker\">\n <input formControlName=\"from\" class=\"hidden-input\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"to\" class=\"hidden-input\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\n <mat-date-range-picker\n [calendarHeaderComponent]=\"HeaderComponent\"\n panelClass=\"nice-date-range-picker\"\n #picker\n ></mat-date-range-picker>\n</div>\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Pipe({ name: \"boolean\" })\nexport class BooleanPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n public transform(value: any): string {\n if (typeof value !== \"boolean\") {\n return \"\";\n }\n\n return this.translateService.instant(value ? \"general.yes\" : \"general.no\");\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { isNullOrUndefined } from \"../utils/type.utils\";\n\n@Pipe({ name: \"capitalizeFirstLetter\" })\nexport class CapitalizeFirstLetterPipe implements PipeTransform {\n public transform(value: string): string {\n if (isNullOrUndefined(value)) {\n return value;\n }\n\n return value.charAt(0).toUpperCase() + value.slice(1);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"ceil\" })\nexport class CeilPipe implements PipeTransform {\n public transform(input: number) {\n return Math.ceil(input);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"entries\" })\nexport class EntriesPipe implements PipeTransform {\n public transform<Value>(value: Value): { key: keyof Value, value: any }[] {\n const keys: { key: keyof Value, value: any }[] = [];\n\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n keys.push({\n key,\n value: value[key]\n });\n }\n }\n\n return keys;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"findByKey\" })\nexport class FindByKeyPipe implements PipeTransform {\n public transform<ArrayType, ValueType>(array: ArrayType[], value: ValueType, key = \"id\"): ArrayType {\n return (array ?? []).find((v) => v?.[key] === value);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"firstLetter\" })\nexport class FirstLetterPipe implements PipeTransform {\n public transform(value: string): string {\n return value?.[0];\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"floor\" })\nexport class FloorPipe implements PipeTransform {\n public transform(input: number) {\n return Math.floor(input);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"join\" })\nexport class JoinPipe implements PipeTransform {\n public transform(array: any[], separator = \" \", prop?: string): string {\n if (!array?.length) {\n return \"general.not_available\";\n }\n\n if (!prop) {\n return array.filter(x => x).join(separator);\n }\n return array.filter(x => x).map(x => x[prop]).join(separator);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { UrlUtils } from \"../utils/url.utils\";\n\n@Pipe({ name: \"link\" })\nexport class LinkPipe implements PipeTransform {\n public transform(value: string, type: \"mailto\"): string;\n public transform(value: { phoneNumber: string, extension?: string }, type: \"tel\"): string;\n public transform(value: { address: string, postalCode: string }, type: \"direction\"): string;\n public transform(value: any, type: \"mailto\" | \"tel\" | \"direction\"): string {\n if (!value) {\n return;\n }\n\n switch (type) {\n case \"mailto\":\n return UrlUtils.emailUrl(value);\n case \"tel\":\n return UrlUtils.phoneCallUrl(value.phoneNumber, value.extension);\n case \"direction\":\n return UrlUtils.directionUrl(value.address, value.postalCode);\n }\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Pipe({ name: \"localizedBoolean\" })\nexport class LocalizedBooleanPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n public transform(value: boolean): any {\n return this.translateService.instant(`general.bool_${value}`);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { CurrencyPipe } from \"@angular/common\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Pipe({ name: \"localizedCurrency\" })\nexport class LocalizedCurrencyPipe extends CurrencyPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {\n super(translateService.currentLang);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\n\n@Pipe({ name: \"localizedDateOnly\" })\nexport class LocalizedDateOnlyPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n public transform(value: any, pattern: string = \"mediumDate\", fallbackWithNull = false): string {\n const pipe = new LocalizedDatePipe(this.translateService);\n return pipe.transform(value, pattern, fallbackWithNull, \"UTC\");\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n// Formats minutes in hh:mm format.\n@Pipe({ name: \"minutesToTime\" })\nexport class MinutesToTimePipe implements PipeTransform {\n public transform(totalMinutes: number, separator: string = \":\"): string {\n const hours = `${Math.floor(totalMinutes / 60)}`.padStart(2, \"0\");\n const minutes = `${Math.floor(totalMinutes % 60)}`.padStart(2, \"0\");\n return `${hours}${separator}${minutes}`;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"numberToOrdinalIndicator\" })\nexport class NumberToOrdinalIndicatorPipe implements PipeTransform {\n public transform(value: number): string {\n switch (value) {\n case 1:\n return \"general.first\";\n case 2:\n return \"general.second\";\n case 3:\n return \"general.third\";\n default:\n return \"general.xth\";\n }\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"pad\" })\nexport class PadPipe implements PipeTransform {\n public transform(value: number | string, length: number, direction: \"start\" | \"end\" = \"start\", maxLength = 2, fillString = \"0\"): string {\n const strValue = typeof value === \"number\" ? `${value}` : value;\n switch (direction) {\n case \"start\":\n return strValue.padStart(maxLength, fillString);\n case \"end\":\n return strValue.padEnd(maxLength, fillString);\n }\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { NgxMaskService } from \"ngx-mask\";\n\n@Pipe({ name: \"phone\" })\nexport class PhonePipe implements PipeTransform {\n constructor(private maskService: NgxMaskService) {}\n\n public transform(rawPhoneNumber: string, extension?: string): string {\n const formattedPhoneNumber = this.maskService.applyMask(rawPhoneNumber, \"(000) 000-0000\");\n if (!extension) {\n return formattedPhoneNumber;\n }\n\n return `${formattedPhoneNumber} #${extension}`;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { NgxMaskService } from \"ngx-mask\";\n\n@Pipe({ name: \"postalCode\" })\nexport class PostalCodePipe implements PipeTransform {\n constructor(private maskService: NgxMaskService) {}\n\n public transform(postalCode: string): string {\n if (postalCode) {\n return this.maskService.applyMask(postalCode, \"S0S 0S0\");\n }\n return \"\";\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"round\" })\nexport class RoundPipe implements PipeTransform {\n public transform(input: number) {\n return Math.round(input);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: \"range\" })\nexport class RangePipe implements PipeTransform {\n public transform(value: number): number[] {\n const range: number[] = [];\n for (let i = 0; i < value; i++) {\n range.push(i);\n }\n return range;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n// Formats seconds in hh:mm:ss format.\n@Pipe({ name: \"secondsToTime\" })\nexport class SecondsToTimePipe implements PipeTransform {\n public transform(value: number, separator = \":\"): string {\n const hours = `${Math.floor(value / 60 / 60)}`.padStart(2, \"0\");\n const minutes = `${Math.floor(value / 60 % 60)}`.padStart(2, \"0\");\n const seconds = `${Math.floor(value % 60)}`.padStart(2, \"0\");\n return `${hours}${separator}${minutes}${separator}${seconds}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({ name: \"sanitizeBypass\" })\nexport class SanitizeBypassPipe implements PipeTransform {\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n public transform(value: any, bypass: \"html\" | \"style\"): any {\n switch (bypass) {\n case \"html\":\n return this.sanitizer.bypassSecurityTrustHtml(value || '');\n case \"style\":\n return this.sanitizer.bypassSecurityTrustStyle(value || '');\n }\n }\n}\n","import { Pipe, PipeTransform, TrackByFunction } from \"@angular/core\";\n\n@Pipe({ name: \"trackByProp\" })\nexport class TrackByPropPipe<T> implements PipeTransform {\n public transform(prop: keyof T & string): TrackByFunction<T> {\n return (_, item) => item[prop];\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { EntriesPipe } from \"./entries.pipe\";\nimport { BooleanPipe } from \"./boolean.pipe\";\nimport { LocalizedDateOnlyPipe } from \"./localized-date-only.pipe\";\nimport { PostalCodePipe } from \"./postal-code.pipe\";\nimport { PhonePipe } from \"./phone.pipe\";\nimport { CeilPipe } from \"./ceil.pipe\";\nimport { FloorPipe } from \"./floor.pipe\";\nimport { RoundPipe } from \"./round.pipe\";\nimport { FindByKeyPipe } from \"./find-by-key.pipe\";\nimport { PadPipe } from \"./pad.pipe\";\nimport { LinkPipe } from \"./link.pipe\";\nimport { MinutesToTimePipe } from \"./minutes-to-time.pipe\";\nimport { NumberToOrdinalIndicatorPipe } from \"./number-to-ordinal-indicator.pipe\";\nimport { RangePipe } from \"./range.pipe\";\nimport { SecondsToTimePipe } from \"./seconds-to-time.pipe\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\nimport { LocalizedCurrencyPipe } from \"./localized-currency.pipe\";\nimport { CapitalizeFirstLetterPipe } from \"./capitalize-first-letter.pipe\";\nimport { JoinPipe } from \"./join-if-defined.pipe\";\nimport { SanitizeBypassPipe } from \"./sanitize-bypass.pipe\";\nimport { FirstLetterPipe } from \"./first-letter.pipe\";\nimport { LocalizedBooleanPipe } from \"./localized-boolean.pipe\";\nimport { TrackByPropPipe } from \"./track-by-prop.pipe\";\n\n@NgModule({\n declarations: [\n BooleanPipe,\n CapitalizeFirstLetterPipe,\n CeilPipe,\n FindByKeyPipe,\n FirstLetterPipe,\n FloorPipe,\n JoinPipe,\n EntriesPipe,\n LinkPipe,\n LocalizedBooleanPipe,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedDateOnlyPipe,\n MinutesToTimePipe,\n NumberToOrdinalIndicatorPipe,\n PadPipe,\n PhonePipe,\n PostalCodePipe,\n RangePipe,\n RoundPipe,\n SanitizeBypassPipe,\n SecondsToTimePipe,\n TrackByPropPipe\n ],\n providers: [\n BooleanPipe,\n CapitalizeFirstLetterPipe,\n CeilPipe,\n FindByKeyPipe,\n FirstLetterPipe,\n FloorPipe,\n JoinPipe,\n EntriesPipe,\n LinkPipe,\n LocalizedBooleanPipe,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedDateOnlyPipe,\n MinutesToTimePipe,\n NumberToOrdinalIndicatorPipe,\n PadPipe,\n PhonePipe,\n PostalCodePipe,\n RangePipe,\n RoundPipe,\n SanitizeBypassPipe,\n SecondsToTimePipe\n ],\n exports: [\n BooleanPipe,\n CapitalizeFirstLetterPipe,\n CeilPipe,\n FindByKeyPipe,\n FirstLetterPipe,\n FloorPipe,\n JoinPipe,\n EntriesPipe,\n LinkPipe,\n LocalizedBooleanPipe,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedDateOnlyPipe,\n MinutesToTimePipe,\n NumberToOrdinalIndicatorPipe,\n PadPipe,\n PhonePipe,\n PostalCodePipe,\n RangePipe,\n RoundPipe,\n SanitizeBypassPipe,\n SecondsToTimePipe,\n TrackByPropPipe\n ]\n})\nexport class NicePipesModule {\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NicePipesModule } from \"../../pipes\";\nimport { HeaderComponent } from \"./components/header/header.component\";\nimport { RangePresetComponent } from \"./components/range-preset/range-preset.component\";\nimport { NiceDateRangePickerComponent } from \"./date-range-picker.component\";\nimport { NiceDateRangePickerServiceService } from \"./providers/date-range-picker.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatCardModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n ReactiveFormsModule,\n NicePipesModule\n ],\n declarations: [NiceDateRangePickerComponent, RangePresetComponent, HeaderComponent],\n providers: [NiceDateRangePickerServiceService],\n exports: [NiceDateRangePickerComponent]\n})\nexport class NiceDateRangePickerModule {}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_APP_CONFIG = new InjectionToken<any>(\"NICE_APP_CONFIG\");\n","import { Inject, Injectable } from \"@angular/core\";\nimport { merge } from \"lodash-es\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { NICE_APP_CONFIG } from \"./config.constants\";\nimport { NiceConfig } from \"./config.model\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceConfigService {\n private _config: BehaviorSubject<any>;\n\n /**\n * Constructor\n */\n constructor(@Inject(NICE_APP_CONFIG) config: NiceConfig) {\n // Private\n this._config = new BehaviorSubject(config);\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Setter & getter for config\n */\n public set config(value: NiceConfig) {\n // Merge the new config over to the current config\n const config = merge({}, this._config.getValue(), value);\n\n // Execute the observable\n this._config.next(config);\n }\n\n public get config$(): Observable<NiceConfig> {\n return this._config.asObservable();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Resets the config to the default\n */\n public reset(): void {\n // Set the config\n this._config.next(this.config);\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { NICE_APP_CONFIG } from \"./config.constants\";\nimport { NiceConfig } from \"./config.model\";\nimport { NiceConfigService } from \"./config.service\";\n\n@NgModule()\nexport class NiceConfigModule {\n /**\n * Constructor\n */\n constructor(private _niceConfigService: NiceConfigService) {\n }\n\n /**\n * forRoot method for setting user configuration\n */\n public static forRoot(config: NiceConfig): ModuleWithProviders<NiceConfigModule> {\n return {\n ngModule: NiceConfigModule,\n providers: [\n {\n provide: NICE_APP_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","import { BreakpointObserver, Breakpoints, BreakpointState } from \"@angular/cdk/layout\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable, ReplaySubject, startWith, tap } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\n@Injectable()\nexport class NiceMediaWatcherService {\n private _onMediaChange = new ReplaySubject<{ matchingAliases: string[], matchingQueries: any }>(1);\n private _currentBreakpoints: { [key: string]: boolean };\n private _breakpoint$: Observable<BreakpointState>;\n\n public xsBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.XSmall).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n public smBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.Small).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n public mdBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.Medium).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n public lgBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.Large).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n public xlBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.XLarge).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n\n /**\n * Constructor\n */\n constructor(private _breakpointObserver: BreakpointObserver) {\n this._breakpoint$ = this.onMediaQueryChange$([\n Breakpoints.XSmall,\n Breakpoints.Small,\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ]).pipe(\n tap((res) => this._currentBreakpoints = res.breakpoints)\n );\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On media query change\n */\n public onMediaQueryChange$(query: string | string[]): Observable<BreakpointState> {\n return this._breakpointObserver.observe(query);\n }\n\n public asObservable(): Observable<BreakpointState> {\n return this._breakpoint$;\n }\n\n public isActive(query: string | string[]): boolean {\n if (typeof query === \"string\") {\n query = [query];\n }\n\n for (const q of query) {\n if (this.isBreakpointActive(q)) {\n return true;\n }\n }\n\n return false;\n }\n\n private isBreakpointActive(breakpoint: string): boolean {\n if (breakpoint.startsWith(\"gt-\")) {\n switch (breakpoint.replace(\"gt-\", \"\")) {\n case \"xs\":\n return this._currentBreakpoints[Breakpoints.Small]\n || this._currentBreakpoints[Breakpoints.Medium]\n || this._currentBreakpoints[Breakpoints.Large]\n || this._currentBreakpoints[Breakpoints.XLarge];\n case \"sm\":\n return this._currentBreakpoints[Breakpoints.Medium]\n || this._currentBreakpoints[Breakpoints.Large]\n || this._currentBreakpoints[Breakpoints.XLarge];\n case \"md\":\n return this._currentBreakpoints[Breakpoints.Large]\n || this._currentBreakpoints[Breakpoints.XLarge];\n case \"lg\":\n return this._currentBreakpoints[Breakpoints.XLarge];\n }\n }\n\n if (breakpoint.startsWith(\"lt-\")) {\n switch (breakpoint.replace(\"lt-\", \"\")) {\n case \"sm\":\n return this._currentBreakpoints[Breakpoints.XSmall];\n case \"md\":\n return this._currentBreakpoints[Breakpoints.XSmall]\n || this._currentBreakpoints[Breakpoints.Small];\n case \"lg\":\n return this._currentBreakpoints[Breakpoints.XSmall]\n || this._currentBreakpoints[Breakpoints.Small]\n || this._currentBreakpoints[Breakpoints.Medium];\n case \"xl\":\n return this._currentBreakpoints[Breakpoints.XSmall]\n || this._currentBreakpoints[Breakpoints.Small]\n || this._currentBreakpoints[Breakpoints.Medium]\n || this._currentBreakpoints[Breakpoints.Large];\n }\n }\n\n switch (breakpoint) {\n case \"xs\":\n return this._currentBreakpoints[Breakpoints.XSmall];\n case \"sm\":\n return this._currentBreakpoints[Breakpoints.Small];\n case \"md\":\n return this._currentBreakpoints[Breakpoints.Medium];\n case \"lg\":\n return this._currentBreakpoints[Breakpoints.Large];\n case \"xl\":\n return this._currentBreakpoints[Breakpoints.XLarge];\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceMediaWatcherService } from \"./media-watcher.service\";\n\n@NgModule({\n providers: [\n NiceMediaWatcherService\n ]\n})\nexport class NiceMediaWatcherModule {\n /**\n * Constructor\n */\n constructor(private _niceMediaWatcherService: NiceMediaWatcherService) {}\n}\n","import { DOCUMENT } from \"@angular/common\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { filter, take } from \"rxjs/operators\";\n\n@Injectable()\nexport class NiceSplashScreenService {\n /**\n * Constructor\n */\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _router: Router\n ) {\n // Hide it on the first NavigationEnd event\n this._router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n take(1)\n )\n .subscribe(() => {\n this.hide();\n });\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Show the splash screen\n */\n public show(): void {\n this._document.body.classList.remove(\"nice-splash-screen-hidden\");\n }\n\n /**\n * Hide the splash screen\n */\n public hide(): void {\n this._document.body.classList.add(\"nice-splash-screen-hidden\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceSplashScreenService } from \"./splash-screen.service\";\n\n@NgModule({\n providers: [\n NiceSplashScreenService\n ]\n})\nexport class NiceSplashScreenModule {\n /**\n * Constructor\n */\n constructor(private _niceSplashScreenService: NiceSplashScreenService) {}\n}\n","import { Injectable } from \"@angular/core\";\nimport { NiceDrawerComponent } from \"./drawer.component\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceDrawerService {\n private _componentRegistry: Map<string, NiceDrawerComponent> = new Map<string, NiceDrawerComponent>();\n\n /**\n * Constructor\n */\n constructor() {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Register drawer component\n */\n registerComponent(name: string, component: NiceDrawerComponent): void\n {\n this._componentRegistry.set(name, component);\n }\n\n /**\n * Deregister drawer component\n */\n deregisterComponent(name: string): void\n {\n this._componentRegistry.delete(name);\n }\n\n /**\n * Get drawer component from the registry\n */\n getComponent(name: string): NiceDrawerComponent | undefined\n {\n return this._componentRegistry.get(name);\n }\n}\n","import { animate, AnimationBuilder, AnimationPlayer, style } from \"@angular/animations\";\nimport { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { NiceUtilsService } from \"../../providers\";\nimport { NiceDrawerService } from \"./drawer.service\";\nimport { NiceDrawerMode, NiceDrawerPosition } from \"./drawer.types\";\n\n@Component({\n selector: \"nice-drawer\",\n templateUrl: \"./drawer.component.html\",\n styleUrls: [\"./drawer.theme.scss\"],\n encapsulation: ViewEncapsulation.None,\n exportAs: \"niceDrawer\"\n})\nexport class NiceDrawerComponent implements OnChanges, OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n static ngAcceptInputType_fixed: BooleanInput;\n // tslint:disable-next-line:variable-name\n static ngAcceptInputType_opened: BooleanInput;\n // tslint:disable-next-line:variable-name\n static ngAcceptInputType_transparentOverlay: BooleanInput;\n\n @Input()\n public fixed = false;\n\n @Input()\n public mode: NiceDrawerMode = \"side\";\n\n @Input()\n public width: string | number = 320;\n\n @Input()\n public name: string = this._niceUtilsService.randomId();\n\n @Input()\n public opened = false;\n\n @Input()\n public position: NiceDrawerPosition = \"left\";\n\n @Input()\n public transparentOverlay = false;\n\n @Output()\n private readonly fixedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n private readonly modeChanged: EventEmitter<NiceDrawerMode> = new EventEmitter<NiceDrawerMode>();\n\n @Output()\n private readonly openedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n private readonly positionChanged: EventEmitter<NiceDrawerPosition> = new EventEmitter<NiceDrawerPosition>();\n\n private _animationsEnabled = false;\n private _hovered = false;\n private _overlay: HTMLElement;\n private _player: AnimationPlayer;\n\n /**\n * Constructor\n */\n constructor(\n private _animationBuilder: AnimationBuilder,\n private _elementRef: ElementRef,\n private _renderer2: Renderer2,\n private _niceDrawerService: NiceDrawerService,\n private _niceUtilsService: NiceUtilsService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"nice-drawer-animations-enabled\": this._animationsEnabled,\n \"nice-drawer-fixed\": this.fixed,\n \"nice-drawer-hover\": this._hovered,\n [`nice-drawer-mode-${this.mode}`]: true,\n \"nice-drawer-opened\": this.opened,\n [`nice-drawer-position-${this.position}`]: true\n };\n }\n\n /**\n * Host binding for component inline styles\n */\n @HostBinding(\"style\")\n public get styleList(): any {\n const width = typeof this.width === \"number\" ? `${this.width}px` : this.width;\n const dynamicStyle = {\n \"width\": width,\n \"min-width\": width,\n \"max-width\": width\n };\n\n if (this.mode === \"side\") {\n dynamicStyle[`margin-${this.position}`] = this.opened ? 0 : `-${width}`;\n }\n\n return dynamicStyle;\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Decorated methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On mouseenter\n *\n * @private\n */\n @HostListener(\"mouseenter\")\n private _onMouseenter(): void {\n // Enable the animations\n this._enableAnimations();\n\n // Set the hovered\n this._hovered = true;\n }\n\n /**\n * On mouseleave\n *\n * @private\n */\n @HostListener(\"mouseleave\")\n private _onMouseleave(): void {\n // Enable the animations\n this._enableAnimations();\n\n // Set the hovered\n this._hovered = false;\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n *\n * @param changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Fixed\n if (\"fixed\" in changes) {\n // Coerce the value to a boolean\n this.fixed = coerceBooleanProperty(changes.fixed.currentValue);\n\n // Execute the observable\n this.fixedChanged.next(this.fixed);\n }\n\n // Mode\n if (\"mode\" in changes) {\n // Get the previous and current values\n const previousMode = changes.mode.previousValue;\n const currentMode = changes.mode.currentValue;\n\n // Disable the animations\n this._disableAnimations();\n\n // If the mode changes: 'over -> side'\n if (previousMode === \"over\" && currentMode === \"side\") {\n // Hide the overlay\n this._hideOverlay();\n }\n\n // If the mode changes: 'side -> over'\n if (previousMode === \"side\" && currentMode === \"over\") {\n // If the drawer is opened\n if (this.opened) {\n // Show the overlay\n this._showOverlay();\n }\n }\n\n // Execute the observable\n this.modeChanged.next(currentMode);\n\n // Enable the animations after a delay\n // The delay must be bigger than the current transition-duration\n // to make sure nothing will be animated while the mode is changing\n setTimeout(() => {\n this._enableAnimations();\n }, 500);\n }\n\n // Opened\n if (\"opened\" in changes) {\n // Coerce the value to a boolean\n const open = coerceBooleanProperty(changes.opened.currentValue);\n\n // Open/close the drawer\n this._toggleOpened(open);\n }\n\n // Position\n if (\"position\" in changes) {\n // Execute the observable\n this.positionChanged.next(this.position);\n }\n\n // Transparent overlay\n if (\"transparentOverlay\" in changes) {\n // Coerce the value to a boolean\n this.transparentOverlay = coerceBooleanProperty(changes.transparentOverlay.currentValue);\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Register the drawer\n this._niceDrawerService.registerComponent(this.name, this);\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Finish the animation\n if (this._player) {\n this._player.finish();\n }\n\n // Deregister the drawer from the registry\n this._niceDrawerService.deregisterComponent(this.name);\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Open the drawer\n */\n public open(): void {\n // Return if the drawer has already opened\n if (this.opened) {\n return;\n }\n\n // Open the drawer\n this._toggleOpened(true);\n }\n\n /**\n * Close the drawer\n */\n public close(): void {\n // Return if the drawer has already closed\n if (!this.opened) {\n return;\n }\n\n // Close the drawer\n this._toggleOpened(false);\n }\n\n /**\n * Toggle the drawer\n */\n public toggle(): void {\n if (this.opened) {\n this.close();\n } else {\n this.open();\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Enable the animations\n *\n * @private\n */\n private _enableAnimations(): void {\n // Return if the animations are already enabled\n if (this._animationsEnabled) {\n return;\n }\n\n // Enable the animations\n this._animationsEnabled = true;\n }\n\n /**\n * Disable the animations\n *\n * @private\n */\n private _disableAnimations(): void {\n // Return if the animations are already disabled\n if (!this._animationsEnabled) {\n return;\n }\n\n // Disable the animations\n this._animationsEnabled = false;\n }\n\n /**\n * Show the backdrop\n *\n * @private\n */\n private _showOverlay(): void {\n // Create the backdrop element\n this._overlay = this._renderer2.createElement(\"div\");\n\n // Return if overlay couldn't be create for some reason\n if (!this._overlay) {\n return;\n }\n\n // Add a class to the backdrop element\n this._overlay.classList.add(\"nice-drawer-overlay\");\n\n // Add a class depending on the fixed option\n if (this.fixed) {\n this._overlay.classList.add(\"nice-drawer-overlay-fixed\");\n }\n\n // Add a class depending on the transparentOverlay option\n if (this.transparentOverlay) {\n this._overlay.classList.add(\"nice-drawer-overlay-transparent\");\n }\n\n // Append the backdrop to the parent of the drawer\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._overlay);\n\n // Create the enter animation and attach it to the player\n this._player = this._animationBuilder.build([\n style({opacity: 0}),\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 1}))\n ]).create(this._overlay);\n\n // Once the animation is done...\n this._player.onDone(() => {\n\n // Destroy the player\n this._player.destroy();\n this._player = null;\n });\n\n // Play the animation\n this._player.play();\n\n // Add an event listener to the overlay\n this._overlay.addEventListener(\"click\", () => {\n this.close();\n });\n }\n\n /**\n * Hide the backdrop\n *\n * @private\n */\n private _hideOverlay(): void {\n if (!this._overlay) {\n return;\n }\n\n // Create the leave animation and attach it to the player\n this._player = this._animationBuilder.build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 0}))\n ]).create(this._overlay);\n\n // Play the animation\n this._player.play();\n\n // Once the animation is done...\n this._player.onDone(() => {\n\n // Destroy the player\n this._player.destroy();\n this._player = null;\n\n // If the backdrop still exists...\n if (this._overlay) {\n // Remove the backdrop\n this._overlay.parentNode.removeChild(this._overlay);\n this._overlay = null;\n }\n });\n }\n\n /**\n * Open/close the drawer\n *\n * @param open\n * @private\n */\n private _toggleOpened(open: boolean): void {\n // Set the opened\n this.opened = open;\n\n // Enable the animations\n this._enableAnimations();\n\n // If the mode is 'over'\n if (this.mode === \"over\") {\n // If the drawer opens, show the overlay\n if (open) {\n this._showOverlay();\n }\n // Otherwise, close the overlay\n else {\n this._hideOverlay();\n }\n }\n\n // Execute the observable\n this.openedChanged.next(open);\n }\n}\n","<div class=\"nice-drawer-toggle\">\n <ng-content select=\"[niceDrawerToggle]\"></ng-content>\n</div>\n\n<div class=\"nice-drawer-content\" [style.visibility]=\"opened ? 'visible' : 'hidden'\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { NiceDrawerComponent } from \"./drawer.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule\n ],\n declarations: [\n NiceDrawerComponent\n ],\n exports: [\n NiceDrawerComponent\n ]\n})\nexport class NiceDrawerModule {\n}\n","import { Injectable } from \"@angular/core\";\nimport { ExportStrategy } from \"../models/export-strategy.model\";\n\n@Injectable()\nexport abstract class ExportBottomSheetService {\n public abstract getStrategyIcon(strategy: ExportStrategy): string;\n}\n\n@Injectable()\nexport class DefaultExportBottomSheetService extends ExportBottomSheetService {\n public getStrategyIcon(strategy: ExportStrategy): string {\n switch (strategy.type) {\n case \"xlsx\":\n return \"fas fa-file-excel\";\n case \"pdf\":\n return \"fas fa-file-pdf\";\n case \"csv\":\n return \"fas fa-file-csv\";\n }\n return \"\";\n }\n}\n","import { Component, Inject } from \"@angular/core\";\nimport { MatBottomSheetRef, MAT_BOTTOM_SHEET_DATA } from \"@angular/material/bottom-sheet\";\nimport { ExportStrategy } from \"./models/export-strategy.model\";\nimport { ExportBottomSheetService } from \"./providers/export-bottom-sheet.service\";\n\nexport interface ExportBottomSheetConfig {\n exportStrategies: ExportStrategy[];\n}\n\n@Component({\n selector: \"nice-export-bottom-sheet\",\n templateUrl: \"export-bottom-sheet.template.html\"\n})\nexport class ExportBottomSheetComponent {\n constructor(\n @Inject(MAT_BOTTOM_SHEET_DATA) public exportBottomSheetConfig: ExportBottomSheetConfig,\n private bottomSheetRef: MatBottomSheetRef<ExportBottomSheetComponent>,\n private service: ExportBottomSheetService\n ) {}\n\n public getStrategyIcon(strategy: ExportStrategy): string {\n return this.service.getStrategyIcon(strategy);\n }\n\n public clickExport(strategy: ExportStrategy) {\n this.bottomSheetRef.dismiss();\n strategy.onClickExport();\n }\n}\n","<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line [innerHtml]=\"'components.export_bottom_sheet.types.' + strategy.type | translate\"></span>\n </a>\n</mat-nav-list>\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule, Type } from \"@angular/core\";\nimport { MatBottomSheetModule } from \"@angular/material/bottom-sheet\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ExportBottomSheetComponent } from \"./export-bottom-sheet.component\";\nimport { DefaultExportBottomSheetService, ExportBottomSheetService } from \"./providers/export-bottom-sheet.service\";\n\nexport interface ExportBottomSheetOptions {\n service: Type<ExportBottomSheetService>;\n}\n\n@NgModule({\n imports: [CommonModule, MatBottomSheetModule, MatListModule, MatIconModule, TranslateModule],\n declarations: [ExportBottomSheetComponent],\n providers: [\n {\n provide: ExportBottomSheetService,\n useClass: DefaultExportBottomSheetService\n }\n ],\n exports: [ExportBottomSheetComponent]\n})\nexport class NiceExportBottomSheetModule {\n public static forFeature(options: ExportBottomSheetOptions): ModuleWithProviders<NiceExportBottomSheetModule> {\n return {\n ngModule: NiceExportBottomSheetModule,\n providers: [\n {\n provide: ExportBottomSheetService,\n useClass: options.service\n }\n ]\n };\n }\n}\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { Component, Input, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n // tslint:disable-next-line:components-selector component-selector\n selector: \"[form-error]\",\n template: `\n <div [@animation]=\"increment\" *ngIf=\"message\">\n <mat-error>{{ message }}</mat-error>\n </div>\n `,\n styleUrls: [\"./form-error.style.scss\"],\n animations: [\n trigger(\"animation\", [\n transition(\":increment\", [style({ opacity: 0 }), animate(\"200ms ease-in\", style({ opacity: 1 }))]),\n transition(\":enter\", [\n style({ opacity: 0, transform: \"translateY(-1rem)\" }),\n animate(\"200ms ease-in\", style({ opacity: 1, transform: \"translateY(0)\" }))\n ]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ opacity: 0, transform: \"translateY(-1rem)\" }))])\n ])\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class NiceFormErrorComponent {\n public message: string;\n public increment = 0;\n\n @Input()\n public set error(value: string) {\n if (value) {\n if (this.message !== value) {\n this.increment++;\n }\n }\n this.message = value;\n }\n}\n","import { AfterViewInit, ComponentRef, Directive, ElementRef, OnDestroy, ViewContainerRef } from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { MatFormField } from \"@angular/material/form-field\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { th } from \"date-fns/locale\";\nimport { NiceFormErrorComponent } from \"./form-error.component\";\nimport { Subject, combineLatest } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Directive({ selector: \"[niceControlStatus]\" })\nexport class NiceControlStatusDirective implements AfterViewInit, OnDestroy {\n private ref: ComponentRef<NiceFormErrorComponent>;\n private control: NgControl;\n\n private unsubscribeAll$ = new Subject<void>();\n\n public onChange = () => {\n if (this.control.pending) {\n return;\n }\n\n if (this.control.invalid && this.control.touched) {\n for (const error in this.control.errors) {\n if (this.control.errors.hasOwnProperty(error)) {\n if (this.control.errors[error]) {\n let lastErrorKey = error;\n let param: any;\n if (error === \"pattern\") {\n lastErrorKey = this.control.errors[error].requiredPattern;\n }\n if (error === \"mask\") {\n lastErrorKey = this.control.errors[error].requiredMask;\n }\n if (error === \"minlength\" || error === \"maxlength\") {\n param = {\n value: this.control.errors[error].requiredLength\n };\n }\n if (error === \"min\") {\n param = {\n min: this.control.errors[error].min,\n actual: this.control.errors[error].actual\n };\n }\n if (error === \"max\") {\n param = {\n max: this.control.errors[error].max,\n actual: this.control.errors[error].actual\n };\n }\n if (error === \"arrayMinLength\") {\n param = {\n min: this.control.errors[error].min,\n actual: this.control.errors[error].actual\n };\n }\n if (error === \"arrayMaxLength\") {\n param = {\n max: this.control.errors[error].max,\n actual: this.control.errors[error].actual\n };\n }\n\n if (typeof this.control.errors[error] === \"object\" && !param) {\n param = this.control.errors[error];\n }\n\n this.setError(this.translateService.instant(`errors.${lastErrorKey}`, param));\n break;\n }\n }\n }\n } else {\n this.setError(\"\");\n }\n }\n\n constructor(\n private el: ElementRef<HTMLElement>,\n private vcr: ViewContainerRef,\n private formField: MatFormField,\n private translateService: TranslateService\n ) {}\n\n public ngAfterViewInit(): void {\n this.control = this.formField._control.ngControl as NgControl;\n combineLatest([this.formField._control.stateChanges, this.control.statusChanges])\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(() => this.onChange());\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n public setError(text: string): void {\n if (!this.ref) {\n this.ref = this.vcr.createComponent(NiceFormErrorComponent);\n if (this.el.nativeElement.getElementsByClassName(\"mat-form-field-wrapper\").item(0)) {\n this.el.nativeElement\n .getElementsByClassName(\"mat-form-field-wrapper\")\n .item(0)\n .getElementsByClassName(\"mat-form-field-subscript-wrapper\")\n .item(0)\n .appendChild(this.ref.location.nativeElement);\n }\n\n if (this.el.nativeElement.getElementsByClassName(\"mat-mdc-form-field-subscript-wrapper\").item(0)) {\n const hint = this.el.nativeElement.getElementsByClassName(\"mat-mdc-form-field-hint\").item(0);\n (this.ref.location.nativeElement as HTMLDivElement).style.position = \"absolute\";\n (this.ref.location.nativeElement as HTMLDivElement).style.top = hint ? \"16px\" : \"0\";\n\n const wrapper = this.el.nativeElement\n .getElementsByClassName(\"mat-mdc-form-field-subscript-wrapper\")\n .item(0);\n if (hint) {\n wrapper.classList.add(\"override-height\");\n }\n\n wrapper.prepend(this.ref.location.nativeElement);\n }\n }\n if (text) {\n this.el.nativeElement.classList.add(\"form-error-show\");\n } else {\n this.el.nativeElement.classList.remove(\"form-error-show\");\n }\n this.ref.instance.error = text;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceFormErrorComponent } from \"./form-error.component\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { CommonModule } from \"@angular/common\";\nimport { NiceControlStatusDirective } from \"./control-status.directive\";\n\n@NgModule({\n imports: [CommonModule, MatFormFieldModule],\n declarations: [NiceFormErrorComponent, NiceControlStatusDirective],\n exports: [NiceFormErrorComponent, NiceControlStatusDirective]\n})\nexport class NiceFormErrorModule {}\n","import {\n Component, EventEmitter, Output,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { CdkStep, CdkStepper } from \"@angular/cdk/stepper\";\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\n\n@Component({\n selector: \"nice-horizontal-stepper\",\n templateUrl: \"horizontal-stepper.template.html\",\n styleUrls: [\"./horizontal-stepper.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkStepper, useExisting: NiceHorizontalStepperComponent }],\n animations: [trigger(\"stepTransition\", [\n state(\"previous\", style({ transform: \"translate3d(-100%, 0, 0)\", visibility: \"hidden\" })),\n state(\"current\", style({ transform: \"none\", visibility: \"visible\" })),\n state(\"next\", style({ transform: \"translate3d(100%, 0, 0)\", visibility: \"hidden\" })),\n transition(\"* => *\", animate(\"500ms cubic-bezier(0.35, 0, 0.25, 1)\"))\n ])]\n})\nexport class NiceHorizontalStepperComponent extends CdkStepper {\n @Output()\n private onStepperClick = new EventEmitter<number>();\n\n public onClick(step: CdkStep, index: number): void {\n step.select();\n this.onStepperClick.emit(index);\n }\n}\n","<section class=\"stepper-container\">\n <div class=\"flex justify-center content-center items-center\">\n <button\n class=\"step\"\n *ngFor=\"let step of steps; let i = index\"\n [ngClass]=\"{ 'active': selectedIndex === i }\"\n (click)=\"onClick(step, i)\"\n >\n </button>\n </div>\n <div class=\"mat-horizontal-content-container h-full\">\n <div *ngFor=\"let step of steps; let i = index\"\n class=\"mat-horizontal-stepper-content h-full\" role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from \"@angular/core\";\nimport { CdkStep } from \"@angular/cdk/stepper\";\n\n@Component({\n selector: \"nice-step\",\n template: `<ng-template><ng-content></ng-content></ng-template>`,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: CdkStep, useExisting: NiceStepComponent }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NiceStepComponent extends CdkStep {}\n","import { NgModule } from \"@angular/core\";\nimport { NiceHorizontalStepperComponent } from \"./horizontal-stepper.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { CdkStepperModule } from \"@angular/cdk/stepper\";\nimport { NiceStepComponent } from \"./step.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n CdkStepperModule\n ],\n declarations: [NiceStepComponent, NiceHorizontalStepperComponent],\n exports: [NiceStepComponent, NiceHorizontalStepperComponent]\n})\nexport class NiceHorizontalStepperModule {}\n","/*\n * Hermite resize - fast image resize/resample using Hermite filter.\n * https://github.com/viliusle/Hermite-resize\n */\nexport function resizeCanvas(canvas: HTMLCanvasElement, width: number, height: number) {\n const width_source = canvas.width;\n const height_source = canvas.height;\n width = Math.round(width);\n height = Math.round(height);\n\n const ratio_w = width_source / width;\n const ratio_h = height_source / height;\n const ratio_w_half = Math.ceil(ratio_w / 2);\n const ratio_h_half = Math.ceil(ratio_h / 2);\n\n const ctx = canvas.getContext('2d');\n const img = ctx!.getImageData(0, 0, width_source, height_source);\n const img2 = ctx!.createImageData(width, height);\n const data = img.data;\n const data2 = img2.data;\n\n for (let j = 0; j < height; j++) {\n for (let i = 0; i < width; i++) {\n const x2 = (i + j * width) * 4;\n let weight = 0;\n let weights = 0;\n let weights_alpha = 0;\n let gx_r = 0;\n let gx_g = 0;\n let gx_b = 0;\n let gx_a = 0;\n const center_y = j * ratio_h;\n\n const xx_start = Math.floor(i * ratio_w);\n let xx_stop = Math.ceil((i + 1) * ratio_w);\n const yy_start = Math.floor(j * ratio_h);\n let yy_stop = Math.ceil((j + 1) * ratio_h);\n xx_stop = Math.min(xx_stop, width_source);\n yy_stop = Math.min(yy_stop, height_source);\n\n for (let yy = yy_start; yy < yy_stop; yy++) {\n const dy = Math.abs(center_y - yy) / ratio_h_half;\n const center_x = i * ratio_w;\n const w0 = dy * dy; // pre-calc part of w\n for (let xx = xx_start; xx < xx_stop; xx++) {\n const dx = Math.abs(center_x - xx) / ratio_w_half;\n const w = Math.sqrt(w0 + dx * dx);\n if (w >= 1) {\n // pixel too far\n continue;\n }\n // hermite filter\n weight = 2 * w * w * w - 3 * w * w + 1;\n const pos_x = 4 * (xx + yy * width_source);\n // alpha\n gx_a += weight * data[pos_x + 3];\n weights_alpha += weight;\n // colors\n if (data[pos_x + 3] < 255) {\n weight = weight * data[pos_x + 3] / 250;\n }\n gx_r += weight * data[pos_x];\n gx_g += weight * data[pos_x + 1];\n gx_b += weight * data[pos_x + 2];\n weights += weight;\n }\n }\n data2[x2] = gx_r / weights;\n data2[x2 + 1] = gx_g / weights;\n data2[x2 + 2] = gx_b / weights;\n data2[x2 + 3] = gx_a / weights_alpha;\n }\n }\n\n // clear and resize canvas\n canvas.width = width;\n canvas.height = height;\n\n // draw\n ctx!.putImageData(img2, 0, 0);\n return ctx;\n}\n","/**\n * Adapted from https://github.com/A-l-y-l-e/Alyle-UI/tree/10.5.3/src/lib/image-cropper\n */\n\nimport { normalizePassiveListenerOptions } from \"@angular/cdk/platform\";\nimport { ViewportRuler } from \"@angular/cdk/scrolling\";\nimport { DOCUMENT } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter, HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\nimport { take, takeUntil } from \"rxjs/operators\";\nimport { resizeCanvas } from \"./resize-canvas\";\n\nconst activeEventOptions = normalizePassiveListenerOptions({ passive: false });\n\n/** Image Cropper Config */\nexport class ImgCropperConfig {\n /** Cropper area width */\n width = 250;\n /** Cropper area height */\n height = 200;\n minWidth = 40;\n minHeight = 40;\n /** If this is not defined, the new image will be automatically defined. */\n type?: string;\n /** Background color( default: null), if is null in png is transparent but not in jpg. */\n fill?: string | null;\n /**\n * Set anti-aliased (default: true)\n * @deprecated this is not necessary as the cropper will automatically resize the image\n * to the best quality\n */\n antiAliased = true;\n autoCrop?: boolean;\n output?: ImgOutput | ImgResolution = ImgResolution.Default;\n /**\n * Zoom out until the entire image fits into the cropping area.\n * default: false\n */\n extraZoomOut?: boolean;\n /**\n * Emit event `error` if the file size in bytes for the limit.\n * Note: It only works when the image is received from the `<input>` event.\n */\n maxFileSize?: number | null;\n /**\n * Whether the cropper area will be round.\n * This implies that the cropper area will maintain its aspect ratio.\n * default: false\n */\n round?: boolean;\n /**\n * Whether the cropper area is resizable.\n * default: false\n */\n resizableArea?: boolean;\n /**\n * Keep the width and height of the growing area the same according\n * to `ImgCropperConfig.width` and `ImgCropperConfig.height`\n * default: false\n */\n keepAspectRatio?: boolean;\n /**\n * Whether the cropper area is responsive.\n * By default, the width and height of the cropper area is fixed,\n * so can use when the cropper area is larger than its container,\n * otherwise this will bring problems when cropping.\n */\n responsiveArea?: boolean;\n}\n\n/**\n * The output image\n * With this option you can resize the output image.\n * If `width` or `height` are 0, this will be set automatically.\n * Both cannot be 0.\n */\nexport interface ImgOutput {\n /**\n * The cropped image will be resized to this `width`.\n */\n width: number;\n /**\n * Cropped image will be resized to this `height`.\n */\n height: number;\n}\n\n/** Image output */\nexport enum ImgResolution {\n /**\n * The output image will be equal to the initial size of the cropper area.\n */\n Default,\n /** Just crop the image without resizing */\n OriginalImage\n}\n\n/** Image output */\nexport enum ImgCropperError {\n /** The loaded image exceeds the size limit set. */\n Size,\n /** The file loaded is not image. */\n Type,\n /** When the image has not been loaded. */\n Other\n}\n\nexport interface ImgCropperEvent {\n /** Cropped image data URL */\n dataURL?: string;\n name: string | null;\n /** Filetype */\n type?: string;\n /** Cropped area width */\n areaWidth: number;\n /** Cropped area height */\n areaHeight: number;\n /** Cropped image width */\n width: number;\n /** Cropped image height */\n height: number;\n /** Original Image data URL */\n originalDataURL?: string;\n scale: number;\n /** Current rotation in degrees */\n rotation: number;\n /** Size of the image in bytes */\n size: number;\n /** Scaled offset from the left edge of the image */\n left: number;\n /** Scaled offset from the top edge of the image */\n top: number;\n /**\n * Scaled offset from the left edge of the image to center of area\n * Can be used to set image position\n */\n xOrigin: number;\n /**\n * Scaled offset from the top edge of the image to center of area\n * Can be used to set image position\n */\n yOrigin: number;\n /** @deprecated Use `xOrigin & yOrigin` instead. */\n position?: {\n x: number\n y: number\n };\n}\n\nexport interface ImgCropperErrorEvent {\n name?: string;\n /** Size of the image in bytes */\n size: number;\n /** Filetype */\n type: string;\n /** Type of error */\n error: ImgCropperError;\n errorMsg?: string;\n}\n\ninterface ImgRect {\n x: number;\n y: number;\n xc: number;\n yc: number;\n /** transform with */\n wt: number;\n ht: number;\n}\n\nexport interface ImgCropperLoaderConfig {\n name?: string | null;\n /** Filetype */\n type?: string;\n /** Cropped area width */\n areaWidth?: number;\n /** Cropped area height */\n areaHeight?: number;\n /** Cropped image width */\n width?: number;\n /** Cropped image height */\n height?: number;\n /** Original Image data URL */\n originalDataURL: string;\n scale?: number;\n /** Current rotation in degrees */\n rotation?: number;\n /** Size of the image in bytes */\n size?: number;\n /** Offset from the left edge of the image to center of area */\n xOrigin?: number;\n /** Offset from the top edge of the image to center of area */\n yOrigin?: number;\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: \"nice-img-cropper, nice-image-cropper\",\n templateUrl: \"image-cropper.template.html\",\n styleUrls: [\"image-cropper.style.scss\"],\n encapsulation: ViewEncapsulation.None\n})\nexport class NiceImageCropperComponent implements OnInit, OnDestroy {\n static readonly и = \"NiceImageCropper\";\n\n private _currentLoadConfig?: ImgCropperLoaderConfig;\n\n /** Original image */\n private _img: HTMLImageElement;\n private offset?: {\n x: number\n y: number\n left: number\n top: number\n };\n private _scale?: number;\n private _scal3Fix?: number;\n private _minScale?: number;\n private _maxScale?: number;\n /** Initial config */\n private _configPrimary: ImgCropperConfig;\n private _config: ImgCropperConfig;\n private _imgRect: ImgRect = {} as any;\n private _rotation = 0;\n // private _sizeInBytes: number | null;\n private _isSliding: boolean;\n /** Keeps track of the last pointer event that was captured by the crop area. */\n private _lastPointerEvent: MouseEvent | TouchEvent | null;\n private _startPointerEvent: {\n x: number\n y: number\n } | null;\n public _primaryAreaWidth: number;\n public _primaryAreaHeight: number;\n\n public _absoluteScale: number;\n\n /**\n * When is loaded image\n * @internal\n */\n public _isLoadedImg: boolean;\n\n /** When is loaded image & ready for crop */\n public isLoaded: boolean;\n /** When the cropper is ready to be interacted */\n public isReady: boolean;\n public isCropped: boolean;\n\n @ViewChild(\"_imgContainer\", { static: true })\n private _imgContainer: ElementRef;\n\n @ViewChild(\"_area\", { read: ElementRef })\n private _areaRef: ElementRef;\n @ViewChild(\"_imgCanvas\", { static: true })\n private _imgCanvas: ElementRef<HTMLCanvasElement>;\n\n @Input()\n public set config(val: ImgCropperConfig) {\n this._config = mergeDeep({}, new ImgCropperConfig(), val);\n this._configPrimary = mergeDeep({}, this._config);\n this._primaryAreaWidth = this.config.width;\n this._primaryAreaHeight = this.config.height;\n if (\n this._config.round\n && this.config.width !== this.config.height\n ) {\n throw new Error(`${NiceImageCropperComponent.и}: Both width and height must be equal when using \\`ImgCropperConfig.round = true\\``);\n }\n const maxFileSize = this._config.maxFileSize;\n if (maxFileSize) {\n this.maxFileSize = maxFileSize;\n }\n }\n public get config(): ImgCropperConfig {\n return this._config;\n }\n /** Set scale */\n @Input()\n public set scale(val: number | undefined) {\n this.setScale(val);\n }\n public get scale(): number | undefined {\n return this._scale;\n }\n\n /**\n * Emit event `error` if the file size for the limit.\n * Note: It only works when the image is received from the `<input>` event.\n */\n @Input()\n public maxFileSize: number;\n\n /** Get min scale */\n public get minScale(): number | undefined {\n return this._minScale;\n }\n\n @Output()\n private readonly scaleChange = new EventEmitter<number>();\n\n /** Emits minimum supported image scale */\n // tslint:disable-next-line:no-output-rename\n @Output(\"minScale\")\n private readonly minScaleChange = new EventEmitter<number>();\n\n /** Emits maximum supported image scale */\n // tslint:disable-next-line:no-output-rename\n @Output(\"maxScale\")\n private readonly maxScaleChange = new EventEmitter<number>();\n\n /** Emits when the image is loaded */\n @Output()\n private readonly imageLoaded = new EventEmitter<ImgCropperEvent>();\n\n /** Emits when the cropper is ready to be interacted */\n @Output()\n private readonly ready = new EventEmitter<ImgCropperEvent>();\n\n /** On crop new image */\n @Output()\n private readonly cropped = new EventEmitter<ImgCropperEvent>();\n\n /** Emits when the cropper is cleaned */\n @Output()\n private readonly cleaned = new EventEmitter<void>();\n\n /** Emit an error when the loaded image is not valid */\n // tslint:disable-next-line: no-output-native\n @Output()\n private readonly error = new EventEmitter<ImgCropperErrorEvent>();\n\n private _currentInputElement?: HTMLInputElement;\n\n /** Emits whenever the component is destroyed. */\n private readonly _destroy = new Subject<void>();\n\n /** Used to subscribe to global move and end events */\n protected _document: Document;\n\n constructor(\n private _renderer: Renderer2,\n readonly _elementRef: ElementRef<HTMLElement>,\n private cd: ChangeDetectorRef,\n private _ngZone: NgZone,\n @Inject(DOCUMENT) _document: any,\n viewPortRuler: ViewportRuler\n ) {\n this._document = _document;\n viewPortRuler.change()\n .pipe(takeUntil(this._destroy))\n .subscribe(() =>\n this._ngZone.run(() => this.updateCropperPosition())\n );\n }\n\n public ngOnInit(): void {\n this._ngZone.runOutsideAngular(() => {\n const element = this._imgContainer.nativeElement;\n element.addEventListener(\"mousedown\", this._pointerDown, activeEventOptions);\n element.addEventListener(\"touchstart\", this._pointerDown, activeEventOptions);\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy.next();\n this._destroy.complete();\n const element = this._imgContainer.nativeElement;\n this._lastPointerEvent = null;\n this._removeGlobalEvents();\n element.removeEventListener(\"mousedown\", this._pointerDown, activeEventOptions);\n element.removeEventListener(\"touchstart\", this._pointerDown, activeEventOptions);\n }\n\n /** Load image with canvas */\n private _imgLoaded(imgElement: HTMLImageElement): void {\n if (imgElement) {\n this._img = imgElement;\n const canvas = this._imgCanvas.nativeElement;\n canvas.width = imgElement.width;\n canvas.height = imgElement.height;\n const ctx = canvas.getContext(\"2d\");\n ctx.clearRect(0, 0, imgElement.width, imgElement.height);\n ctx.drawImage(imgElement, 0, 0);\n\n /** set min scale */\n this._updateMinScale(canvas);\n this._updateMaxScale();\n }\n }\n\n private _setStylesForContImg(values: { x?: number, y?: number }) {\n const newStyles = { } as any;\n if (values.x != null && values.y != null) {\n const rootRect = this._rootRect();\n const x = rootRect.width / 2 - (values.x);\n const y = rootRect.height / 2 - (values.y);\n\n this._imgRect.x = (values.x);\n this._imgRect.y = (values.y);\n this._imgRect.xc = (x);\n this._imgRect.yc = (y);\n\n }\n newStyles.transform = `translate3d(${(this._imgRect.x)}px,${(this._imgRect.y)}px, 0)`;\n newStyles.transform += `scale(${this._scal3Fix})`;\n newStyles.transformOrigin = `${this._imgRect.xc}px ${this._imgRect.yc}px 0`;\n newStyles[\"-webkit-transform\"] = newStyles.transform;\n newStyles[\"-webkit-transform-origin\"] = newStyles.transformOrigin;\n for (const key in newStyles) {\n if (newStyles.hasOwnProperty(key)) {\n this._renderer.setStyle(this._imgContainer.nativeElement, key, newStyles[key]);\n }\n }\n }\n /**\n * Update area and image position only if needed,\n * this is used when window resize\n */\n public updateCropperPosition(): void {\n if (this.isLoaded) {\n this.updatePosition();\n this._updateAreaIfNeeded();\n }\n }\n\n /** Load Image from input event */\n public selectInputEvent(img: Event) {\n this._currentInputElement = img.target as HTMLInputElement;\n const _img = img.target as HTMLInputElement;\n if (_img.files && _img.files.length !== 1) {\n return;\n }\n const fileSize = _img.files[0].size;\n const fileName = _img.value.replace(/.*(\\/|\\\\)/, \"\");\n\n if (this.maxFileSize && fileSize > this.maxFileSize) {\n const cropEvent: ImgCropperErrorEvent = {\n name: fileName,\n type: _img.files[0].type,\n size: fileSize,\n error: ImgCropperError.Size\n };\n this.clean();\n this.error.emit(cropEvent as ImgCropperErrorEvent);\n return;\n }\n\n new Observable<ProgressEvent>(observer => {\n\n const reader = new FileReader();\n\n reader.onerror = err => observer.error(err);\n reader.onabort = err => observer.error(err);\n reader.onload = (ev) => setTimeout(() => {\n observer.next(ev);\n observer.complete();\n });\n\n reader.readAsDataURL(_img.files[0]);\n })\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(\n (loadEvent) => {\n const originalDataURL = (loadEvent.target as FileReader).result as string;\n\n this.loadImage({\n name: fileName,\n size: _img.files[0].size, // size in bytes\n type: this.config.type || _img.files[0].type,\n originalDataURL\n });\n\n this.cd.markForCheck();\n },\n () => {\n const cropEvent: ImgCropperErrorEvent = {\n name: fileName,\n size: fileSize,\n error: ImgCropperError.Other,\n errorMsg: \"The File could not be loaded.\",\n type: _img.files[0].type\n };\n this.clean();\n this.error.emit(cropEvent as ImgCropperErrorEvent);\n }\n );\n\n }\n\n /** Set the size of the image, the values can be 0 between 1, where 1 is the original size */\n public setScale(size?: number, noAutoCrop?: boolean) {\n // fix min scale\n const newSize = size >= this.minScale && size <= 1 ? size : this.minScale;\n\n // check\n const changed = size != null && size !== this.scale && newSize !== this.scale;\n this._scale = size;\n if (!changed) {\n return;\n }\n this._scal3Fix = newSize;\n this._updateAbsoluteScale();\n if (this.isLoaded) {\n if (changed) {\n const originPosition = {...this._imgRect};\n this.offset = {\n x: originPosition.x,\n y: originPosition.y,\n left: originPosition.xc,\n top: originPosition.yc\n };\n this._setStylesForContImg({});\n this._simulatePointerMove();\n } else {\n return;\n }\n } else if (this.minScale) {\n this._setStylesForContImg({\n ...this._getCenterPoints()\n });\n } else {\n return;\n }\n\n this.scaleChange.emit(size);\n if (!noAutoCrop) {\n this._cropIfAutoCrop();\n }\n\n }\n\n private _getCenterPoints() {\n const root = this._elementRef.nativeElement as HTMLElement;\n const img = this._imgCanvas.nativeElement;\n const x = (root.offsetWidth - (img.width)) / 2;\n const y = (root.offsetHeight - (img.height)) / 2;\n return {\n x,\n y\n };\n }\n\n /**\n * Fit to screen\n */\n public fitToScreen() {\n const container = this._elementRef.nativeElement as HTMLElement;\n const min = {\n width: container.offsetWidth,\n height: container.offsetHeight\n };\n const { width, height } = this._img;\n const minScale = {\n width: min.width / width,\n height: min.height / height\n };\n const result = Math.max(minScale.width, minScale.height);\n this.setScale(result);\n }\n\n public fit() {\n this.setScale(this.minScale);\n }\n\n private _pointerDown = (event: TouchEvent | MouseEvent) => {\n // Don't do anything if the\n // user is using anything other than the main mouse button.\n if (this._isSliding || (!isTouchEvent(event) && event.button !== 0)) {\n return;\n }\n\n this._ngZone.run(() => {\n this._isSliding = true;\n this.offset = {\n x: this._imgRect.x,\n y: this._imgRect.y,\n left: this._imgRect.xc,\n top: this._imgRect.yc\n };\n this._lastPointerEvent = event;\n this._startPointerEvent = getGesturePointFromEvent(event);\n event.preventDefault();\n this._bindGlobalEvents(event);\n });\n\n }\n\n /**\n * Simulate pointerMove with clientX = 0 and clientY = 0,\n * this is used by `setScale` and `rotate`\n */\n private _simulatePointerMove() {\n this._isSliding = true;\n this._startPointerEvent = {\n x: 0,\n y: 0\n };\n this._pointerMove({\n clientX: 0,\n clientY: 0,\n type: \"n\",\n preventDefault: () => {}\n } as MouseEvent);\n this._isSliding = false;\n this._startPointerEvent = null;\n }\n\n public _markForCheck() {\n this.cd.markForCheck();\n }\n\n /**\n * Called when the user has moved their pointer after\n * starting to drag.\n */\n private _pointerMove = (event: TouchEvent | MouseEvent) => {\n if (this._isSliding) {\n event.preventDefault();\n this._lastPointerEvent = event;\n let x: number | undefined;\n let y: number | undefined;\n const canvas = this._imgCanvas.nativeElement;\n const scaleFix = this._scal3Fix;\n const config = this.config;\n const startP = this.offset;\n const point = getGesturePointFromEvent(event);\n const deltaX = point.x - this._startPointerEvent.x;\n const deltaY = point.y - this._startPointerEvent.y;\n if (!scaleFix || !startP) {\n return;\n }\n\n const isMinScaleY = canvas.height * scaleFix < config.height && config.extraZoomOut;\n const isMinScaleX = canvas.width * scaleFix < config.width && config.extraZoomOut;\n\n const limitLeft = (config.width / 2 / scaleFix) >= startP.left - (deltaX / scaleFix);\n const limitRight = (config.width / 2 / scaleFix) +\n (canvas.width) - (startP.left - (deltaX / scaleFix)) <= config.width / scaleFix;\n const limitTop = ((config.height / 2 / scaleFix) >= (startP.top - (deltaY / scaleFix)));\n const limitBottom = (\n ((config.height / 2 / scaleFix) + (canvas.height) - (startP.top - (deltaY / scaleFix))) <= (config.height / scaleFix)\n );\n\n // Limit for left\n if ((limitLeft && !isMinScaleX) || (!limitLeft && isMinScaleX)) {\n x = startP.x + (startP.left) - (config.width / 2 / scaleFix);\n }\n\n // Limit for right\n if ((limitRight && !isMinScaleX) || (!limitRight && isMinScaleX)) {\n x = startP.x + (startP.left) + (config.width / 2 / scaleFix) - canvas.width;\n }\n\n // Limit for top\n if ((limitTop && !isMinScaleY) || (!limitTop && isMinScaleY)) {\n y = startP.y + (startP.top) - (config.height / 2 / scaleFix);\n }\n\n // Limit for bottom\n if ((limitBottom && !isMinScaleY) || (!limitBottom && isMinScaleY)) {\n y = startP.y + (startP.top) + (config.height / 2 / scaleFix) - canvas.height;\n }\n\n // When press shiftKey, deprecated\n // if (event.srcEvent && event.srcEvent.shiftKey) {\n // if (Math.abs(event.deltaX) === Math.max(Math.abs(event.deltaX), Math.abs(event.deltaY))) {\n // y = this.offset.top;\n // } else {\n // x = this.offset.left;\n // }\n // }\n\n if (x === void 0) { x = (deltaX / scaleFix) + (startP.x); }\n if (y === void 0) { y = (deltaY / scaleFix) + (startP.y); }\n this._setStylesForContImg({\n x, y\n });\n }\n }\n\n public updatePosition(): void;\n public updatePosition(xOrigin: number, yOrigin: number): void;\n public updatePosition(xOrigin?: number, yOrigin?: number): void {\n const hostRect = this._rootRect();\n const areaRect = this._areaCropperRect();\n const areaWidth = areaRect.width > hostRect.width\n ? hostRect.width\n : areaRect.width;\n const areaHeight = areaRect.height > hostRect.height\n ? hostRect.height\n : areaRect.height;\n let x: number;\n let y: number;\n if (xOrigin == null && yOrigin == null) {\n xOrigin = this._imgRect.xc;\n yOrigin = this._imgRect.yc;\n }\n x = (areaRect.left - hostRect.left);\n y = (areaRect.top - hostRect.top);\n x -= (xOrigin - (areaWidth / 2));\n y -= (yOrigin - (areaHeight / 2));\n\n this._setStylesForContImg({\n x, y\n });\n }\n\n public _slideEnd() {\n this._cropIfAutoCrop();\n }\n\n private _cropIfAutoCrop() {\n if (this.config.autoCrop) {\n this.crop();\n }\n }\n\n /** + */\n public zoomIn() {\n const scale = this._scal3Fix + .05;\n if (scale > this.minScale && scale <= this._maxScale) {\n this.setScale(scale);\n } else {\n this.setScale(this._maxScale);\n }\n }\n\n /** Clean the img cropper */\n public clean() {\n // fix choosing the same image does not load\n if (this._currentInputElement) {\n this._currentInputElement.value = \"\";\n this._currentInputElement = null;\n }\n if (this.isLoaded) {\n this._imgRect = { } as any;\n this.offset = undefined;\n this.scale = undefined as any;\n this._scal3Fix = undefined;\n this._rotation = 0;\n this._minScale = undefined;\n this._isLoadedImg = false;\n this.isLoaded = false;\n this.isCropped = false;\n this._currentLoadConfig = undefined;\n this.config = this._configPrimary;\n const canvas = this._imgCanvas.nativeElement;\n canvas.width = 0;\n canvas.height = 0;\n this.cleaned.emit(null);\n this.cd.markForCheck();\n }\n }\n\n /** - */\n public zoomOut() {\n const scale = this._scal3Fix - .05;\n if (scale > this.minScale && scale <= this._maxScale) {\n this.setScale(scale);\n } else {\n this.fit();\n }\n }\n public center() {\n const newStyles = {\n ...this._getCenterPoints()\n };\n this._setStylesForContImg(newStyles);\n this._cropIfAutoCrop();\n }\n /**\n * load an image from a given configuration,\n * or from the result of a cropped image\n */\n public loadImage(config: ImgCropperLoaderConfig | string, fn?: () => void) {\n this.clean();\n const _config = this._currentLoadConfig = typeof config === \"string\"\n ? { originalDataURL: config }\n : { ...config };\n let src = _config.originalDataURL;\n this._primaryAreaWidth = this._configPrimary.width;\n this._primaryAreaHeight = this._configPrimary.height;\n if (_config.areaWidth && _config.areaHeight) {\n this.config.width = _config.areaWidth;\n this.config.height = _config.areaHeight;\n }\n src = normalizeSVG(src);\n\n const img = createHtmlImg(src);\n\n const cropEvent = { ..._config } as ImgCropperEvent;\n\n new Observable<void>(observer => {\n\n img.onerror = err => observer.error(err);\n img.onabort = err => observer.error(err);\n img.onload = () => observer.next(null);\n })\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(\n () => {\n this._imgLoaded(img);\n this._isLoadedImg = true;\n this.imageLoaded.emit(cropEvent);\n this.cd.markForCheck();\n this._ngZone.runOutsideAngular(() => {\n this._ngZone\n .onStable\n .asObservable()\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(\n () => setTimeout(() => this._ngZone.run(() => this._positionImg(cropEvent, fn)))\n );\n });\n },\n () => {\n const error: ImgCropperErrorEvent = {\n name: _config.name,\n error: ImgCropperError.Type,\n type: _config.type,\n size: _config.size\n };\n this.error.emit(error);\n }\n );\n }\n\n private _updateAreaIfNeeded() {\n if (!this._config.responsiveArea) {\n return;\n }\n\n const rootRect = this._rootRect();\n const areaRect = this._areaCropperRect();\n const minWidth = this.config.minWidth || 1;\n const minHeight = this.config.minHeight || 1;\n if (!(\n areaRect.width > rootRect.width\n || areaRect.height > rootRect.height\n || areaRect.width < this._primaryAreaWidth\n || areaRect.height < this._primaryAreaHeight\n )) {\n return;\n }\n const areaWidthConf = Math.max(this.config.width, minWidth);\n const areaWidthMax = Math.max(rootRect.width, minWidth);\n const minHost = Math.min(\n Math.max(rootRect.width, minWidth), Math.max(rootRect.height, minHeight)\n );\n const currentScale = this._scal3Fix;\n let newScale = 0;\n const roundConf = this.config.round;\n\n if (roundConf) {\n this.config.width = this.config.height = minHost;\n } else {\n if (areaWidthConf === areaRect.width) {\n if (areaWidthMax > this._primaryAreaWidth) {\n this.config.width = this._primaryAreaWidth;\n this.config.height = (this._primaryAreaWidth * areaRect.height) / areaRect.width;\n newScale = (currentScale * this._primaryAreaWidth) / areaRect.width;\n } else {\n this.config.width = areaWidthMax;\n this.config.height = (areaWidthMax * areaRect.height) / areaRect.width;\n newScale = (currentScale * areaWidthMax) / areaRect.width;\n }\n this._updateMinScale();\n this._updateMaxScale();\n this.setScale(newScale, true);\n this._markForCheck();\n }\n }\n }\n\n private _updateAbsoluteScale() {\n const scale = this._scal3Fix / (this.config.width / this._primaryAreaWidth);\n this._absoluteScale = scale;\n }\n\n /**\n * Load Image from URL\n * @deprecated Use `loadImage` instead of `setImageUrl`\n * @param src URL\n * @param fn function that will be called before emit the event loaded\n */\n public setImageUrl(src: string, fn?: () => void) {\n this.loadImage(src, fn);\n }\n\n private _positionImg(cropEvent: ImgCropperEvent, fn?: () => void) {\n const loadConfig = this._currentLoadConfig;\n this._updateMinScale(this._imgCanvas.nativeElement);\n this._updateMaxScale();\n this.isLoaded = false;\n if (fn) {\n fn();\n } else {\n if (loadConfig.scale) {\n this.setScale(loadConfig.scale, true);\n } else {\n this.setScale(this.minScale, true);\n }\n this.rotate(loadConfig.rotation || 0);\n this._updateAreaIfNeeded();\n this._markForCheck();\n this._ngZone.runOutsideAngular(() => {\n this._ngZone\n .onStable\n .asObservable()\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(() => {\n if (loadConfig.xOrigin != null && loadConfig.yOrigin != null) {\n this.updatePosition(loadConfig.xOrigin, loadConfig.yOrigin);\n }\n this._updateAreaIfNeeded();\n this.isLoaded = true;\n this._cropIfAutoCrop();\n this._ngZone.run(() => {\n this._markForCheck();\n this.ready.emit(cropEvent);\n });\n });\n });\n }\n }\n\n public rotate(degrees: number) {\n let validDegrees = _normalizeDegrees(degrees);\n // If negative convert to positive\n if (validDegrees < 0) {\n validDegrees += 360;\n }\n const newRotation = _normalizeDegrees((this._rotation || 0) + validDegrees);\n if (newRotation === this._rotation) {\n return;\n }\n const degreesRad = validDegrees * Math.PI / 180;\n const canvas = this._imgCanvas.nativeElement;\n const canvasClon = createCanvasImg(canvas);\n const ctx = canvas.getContext(\"2d\");\n this._rotation = newRotation;\n\n // clear\n ctx.clearRect(0, 0, canvasClon.width, canvasClon.height);\n\n // rotate canvas image\n const transform = `rotate(${validDegrees}deg) scale(${1 / this._scal3Fix})`;\n const transformOrigin = `${this._imgRect.xc}px ${this._imgRect.yc}px 0`;\n canvas.style.transform = transform;\n // tslint:disable-next-line: deprecation\n canvas.style.webkitTransform = transform;\n canvas.style.transformOrigin = transformOrigin;\n // tslint:disable-next-line: deprecation\n canvas.style.webkitTransformOrigin = transformOrigin;\n\n const { left, top } = canvas.getBoundingClientRect() as DOMRect;\n\n // save rect\n const canvasRect = canvas.getBoundingClientRect();\n\n // remove rotate styles\n canvas.removeAttribute(\"style\");\n\n // set w & h\n const w = canvasRect.width;\n const h = canvasRect.height;\n ctx.canvas.width = w;\n ctx.canvas.height = h;\n\n // clear\n ctx.clearRect(0, 0, w, h);\n\n // translate and rotate\n ctx.translate(w / 2, h / 2);\n ctx.rotate(degreesRad);\n ctx.drawImage(canvasClon, -canvasClon.width / 2, -canvasClon.height / 2);\n\n // Update min scale\n this._updateMinScale(canvas);\n this._updateMaxScale();\n\n // set the minimum scale, only if necessary\n if (this.scale < this.minScale) {\n this.setScale(0, true);\n } // ↑ no AutoCrop\n\n const rootRect = this._rootRect();\n\n this._setStylesForContImg({\n x: (left - rootRect.left),\n y: (top - rootRect.top)\n });\n\n // keep image inside the frame\n const originPosition = {...this._imgRect};\n this.offset = {\n x: originPosition.x,\n y: originPosition.y,\n left: originPosition.xc,\n top: originPosition.yc\n };\n this._setStylesForContImg({});\n this._simulatePointerMove();\n\n this._cropIfAutoCrop();\n }\n\n public _updateMinScale(canvas?: HTMLCanvasElement) {\n if (!canvas) {\n canvas = this._imgCanvas.nativeElement;\n }\n const config = this.config;\n const minScale = (config.extraZoomOut ? Math.min : Math.max)(\n config.width / canvas.width,\n config.height / canvas.height);\n this._minScale = minScale;\n this.minScaleChange.emit(minScale);\n }\n\n private _updateMaxScale() {\n const maxScale = (this.config.width / this._primaryAreaWidth);\n this._maxScale = maxScale;\n this.maxScaleChange.emit(maxScale);\n }\n\n /**\n * Resize & crop image\n */\n public crop(config?: ImgCropperConfig): ImgCropperEvent {\n const newConfig = config\n ? mergeDeep({ }, this.config || new ImgCropperConfig(), config) : this.config;\n const cropEvent = this._imgCrop(newConfig);\n this.cd.markForCheck();\n return cropEvent;\n }\n\n /**\n * @docs-private\n */\n private _imgCrop(myConfig: ImgCropperConfig) {\n const canvasElement: HTMLCanvasElement = document.createElement(\"canvas\");\n const areaRect = this._areaCropperRect();\n const canvasRect = this._canvasRect();\n const scaleFix = this._scal3Fix;\n const left = (areaRect.left - canvasRect.left) / scaleFix;\n const top = (areaRect.top - canvasRect.top) / scaleFix;\n const { output } = myConfig;\n const currentImageLoadConfig = this._currentLoadConfig;\n const area = {\n width: myConfig.width,\n height: myConfig.height\n };\n canvasElement.width = area.width / scaleFix;\n canvasElement.height = area.height / scaleFix;\n const ctx = canvasElement.getContext(\"2d\");\n if (myConfig.fill) {\n ctx.fillStyle = myConfig.fill;\n ctx.fillRect(0, 0, canvasElement.width, canvasElement.height);\n }\n ctx.drawImage(this._imgCanvas.nativeElement,\n -(left), -(top),\n );\n const result = canvasElement;\n if (myConfig.output === ImgResolution.Default) {\n resizeCanvas(\n result,\n this._configPrimary.width,\n this._configPrimary.height);\n } else if (typeof output === \"object\") {\n if (output.width && output.height) {\n resizeCanvas(result, output.width, output.height);\n } else if (output.width) {\n const newHeight = area.height * output.width / area.width;\n resizeCanvas(result, output.width, newHeight);\n } else if (output.height) {\n const newWidth = area.width * output.height / area.height;\n resizeCanvas(result, newWidth, output.height);\n }\n }\n const type = currentImageLoadConfig.originalDataURL.startsWith(\"http\")\n ? currentImageLoadConfig.type || myConfig.type\n : myConfig.type || currentImageLoadConfig.type;\n const dataURL = result.toDataURL(type);\n const cropEvent: ImgCropperEvent = {\n dataURL,\n type,\n name: currentImageLoadConfig.name,\n areaWidth: this._primaryAreaWidth,\n areaHeight: this._primaryAreaHeight,\n width: result.width,\n height: result.height,\n originalDataURL: currentImageLoadConfig.originalDataURL,\n scale: this._absoluteScale,\n rotation: this._rotation,\n left: (areaRect.left - canvasRect.left) / this._scal3Fix,\n top: (areaRect.top - canvasRect.top) / this._scal3Fix,\n size: currentImageLoadConfig.size,\n xOrigin: this._imgRect.xc,\n yOrigin: this._imgRect.yc,\n position: {\n x: this._imgRect.xc,\n y: this._imgRect.yc\n }\n };\n\n this.isCropped = true;\n this.cropped.emit(cropEvent);\n return cropEvent;\n }\n\n public _rootRect(): DOMRect {\n return this._elementRef.nativeElement.getBoundingClientRect() as DOMRect;\n }\n\n public _areaCropperRect(): DOMRect {\n return this._areaRef.nativeElement.getBoundingClientRect() as DOMRect;\n }\n\n public _canvasRect(): DOMRect {\n return this._imgCanvas.nativeElement.getBoundingClientRect();\n }\n\n\n /** Called when the user has lifted their pointer. */\n private _pointerUp = (event: TouchEvent | MouseEvent) => {\n if (this._isSliding) {\n event.preventDefault();\n this._removeGlobalEvents();\n this._isSliding = false;\n this._startPointerEvent = null;\n this._cropIfAutoCrop();\n }\n }\n\n /** Called when the window has lost focus. */\n private _windowBlur = () => {\n // If the window is blurred while dragging we need to stop dragging because the\n // browser won't dispatch the `mouseup` and `touchend` events anymore.\n if (this._lastPointerEvent) {\n this._pointerUp(this._lastPointerEvent);\n }\n }\n\n private _bindGlobalEvents(triggerEvent: TouchEvent | MouseEvent) {\n const element = this._document;\n const isTouch = isTouchEvent(triggerEvent);\n const moveEventName = isTouch ? \"touchmove\" : \"mousemove\";\n const endEventName = isTouch ? \"touchend\" : \"mouseup\";\n element.addEventListener(moveEventName, this._pointerMove, activeEventOptions);\n element.addEventListener(endEventName, this._pointerUp, activeEventOptions);\n\n if (isTouch) {\n element.addEventListener(\"touchcancel\", this._pointerUp, activeEventOptions);\n }\n\n const window = this._getWindow();\n\n if (typeof window !== \"undefined\" && window) {\n window.addEventListener(\"blur\", this._windowBlur);\n }\n }\n\n /** Removes any global event listeners that we may have added. */\n private _removeGlobalEvents() {\n const element = this._document;\n element.removeEventListener(\"mousemove\", this._pointerMove, activeEventOptions);\n element.removeEventListener(\"mouseup\", this._pointerUp, activeEventOptions);\n element.removeEventListener(\"touchmove\", this._pointerMove, activeEventOptions);\n element.removeEventListener(\"touchend\", this._pointerUp, activeEventOptions);\n element.removeEventListener(\"touchcancel\", this._pointerUp, activeEventOptions);\n\n const window = this._getWindow();\n\n if (typeof window !== \"undefined\" && window) {\n window.removeEventListener(\"blur\", this._windowBlur);\n }\n }\n\n /** Use defaultView of injected document if available or fallback to global window reference */\n private _getWindow(): Window {\n return this._document.defaultView || window;\n }\n\n}\n\n/**\n * Normalize degrees for cropper rotation\n * @docs-private\n */\nexport function _normalizeDegrees(n: number) {\n const de = n % 360;\n if (de % 90) {\n throw new Error(`LyCropper: Invalid \\`${n}\\` degree, only accepted values: 0, 90, 180, 270 & 360.`);\n }\n return de;\n}\n\n/**\n * @docs-private\n */\nfunction createCanvasImg(img: HTMLCanvasElement | HTMLImageElement) {\n\n // create a new canvas\n const newCanvas = document.createElement(\"canvas\");\n const context = newCanvas.getContext(\"2d\");\n\n // set dimensions\n newCanvas.width = img.width;\n newCanvas.height = img.height;\n\n // apply the old canvas to the new one\n context.drawImage(img, 0, 0);\n\n // return the new canvas\n return newCanvas;\n}\n\n\nconst DATA_IMAGE_SVG_PREFIX = \"data:image/svg+xml;base64,\";\n\nfunction normalizeSVG(dataURL: string) {\n if (window.atob && isSvgImage(dataURL)) {\n const len = dataURL.length / 5;\n const text = window.atob(dataURL.replace(DATA_IMAGE_SVG_PREFIX, \"\"));\n const span = document.createElement(\"span\");\n span.innerHTML = text;\n const svg = span.querySelector(\"svg\");\n span.setAttribute(\"style\", \"display:none\");\n document.body.appendChild(span);\n const width = parseFloat(getComputedStyle(svg).width) || 1;\n const height = parseFloat(getComputedStyle(svg).height) || 1;\n const max = Math.max(width, height);\n\n svg.setAttribute(\"width\", `${len / (width / max)}px`);\n svg.setAttribute(\"height\", `${len / (height / max)}px`);\n const result = DATA_IMAGE_SVG_PREFIX + window.btoa(span.innerHTML);\n document.body.removeChild(span);\n return result;\n }\n return dataURL;\n}\n\nfunction isSvgImage(dataUrl: string) {\n return dataUrl.startsWith(DATA_IMAGE_SVG_PREFIX);\n}\n\nfunction createHtmlImg(src: string) {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.src = src;\n return img;\n}\n\n\nfunction getGesturePointFromEvent(event: TouchEvent | MouseEvent) {\n\n // `touches` will be empty for start/end events so we have to fall back to `changedTouches`.\n const point = isTouchEvent(event)\n ? (event.touches[0] || event.changedTouches[0])\n : event;\n\n return {\n x: point.clientX,\n y: point.clientY\n };\n}\n\n/** Returns whether an event is a touch event. */\nfunction isTouchEvent(event: MouseEvent | TouchEvent): event is TouchEvent {\n return event.type[0] === \"t\";\n}\n\nexport function round(n: number) {\n return Math.round(n);\n}\n\n/**\n * Simple object check.\n * @param item\n */\nfunction isObject(item) {\n return (item && typeof item === \"object\" && !Array.isArray(item));\n}\n\nexport function mergeDeep<T, U>(target: T, source: U): T & U;\nexport function mergeDeep<T, U, V>(target: T, source1: U, source2: V): T & U & V;\nexport function mergeDeep<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\nexport function mergeDeep(target: object, ...sources: any[]): any;\n\n/**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\nexport function mergeDeep(target: any, ...sources: any[]) {\n if (!sources.length) { return target; }\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) { Object.assign(target, { [key]: {} }); }\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return mergeDeep(target, ...sources);\n}\n\n\n/**\n * We have the cropper area in the same file to fix the build\n */\n\n@Component({\n selector: \"nice-cropper-area\",\n templateUrl: \"./image-cropper-area.template.html\",\n styleUrls: [\"./image-cropper-area.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceCropperAreaComponent implements OnDestroy {\n @ViewChild(\"resizer\")\n private readonly _resizer?: ElementRef;\n\n @Input()\n public keepAspectRatio: boolean;\n\n @Input()\n @HostBinding(\"class.round\")\n public round: boolean;\n\n /** Used to subscribe to global move and end events */\n protected _document: Document;\n private _isSliding: boolean;\n\n /** Keeps track of the last pointer event that was captured by the crop area. */\n private _lastPointerEvent: MouseEvent | TouchEvent | null;\n private _startPointerEvent: {\n x: number\n y: number\n } | null;\n private _currentWidth: number;\n private _currentHeight: number;\n private _startAreaRect: DOMRect;\n private _startImgRect: DOMRect;\n\n constructor(\n @Inject(DOCUMENT) _document: any,\n private readonly _elementRef: ElementRef,\n private readonly _cropper: NiceImageCropperComponent,\n private readonly _ngZone: NgZone,\n ) {\n this._document = _document;\n }\n\n private _resizableArea: boolean;\n\n @Input()\n public set resizableArea(val: boolean) {\n if (val !== this._resizableArea) {\n this._resizableArea = val;\n Promise.resolve(null).then(() => {\n if (val) {\n this._removeResizableArea();\n this._addResizableArea();\n } else {\n this._removeResizableArea();\n }\n });\n }\n }\n public get resizableArea() {\n return this._resizableArea;\n }\n\n public ngOnDestroy() {\n this._removeResizableArea();\n }\n\n private _addResizableArea() {\n this._ngZone.runOutsideAngular(() => {\n const element = this._resizer.nativeElement;\n element.addEventListener(\"mousedown\", this._pointerDown, activeEventOptions);\n element.addEventListener(\"touchstart\", this._pointerDown, activeEventOptions);\n });\n }\n\n private _removeResizableArea() {\n const element = this._resizer?.nativeElement;\n if (element) {\n this._lastPointerEvent = null;\n this._removeGlobalEvents();\n element.removeEventListener(\"mousedown\", this._pointerDown, activeEventOptions);\n element.removeEventListener(\"touchstart\", this._pointerDown, activeEventOptions);\n }\n }\n\n private _pointerDown = (event: MouseEvent | TouchEvent) => {\n // Don't do anything if the\n // user is using anything other than the main mouse button.\n if (this._isSliding || (!isTouchEvent(event) && event.button !== 0)) {\n return;\n }\n\n event.preventDefault();\n\n this._ngZone.run(() => {\n this._isSliding = true;\n this._lastPointerEvent = event;\n this._startPointerEvent = getGesturePointFromEvent(event);\n this._startAreaRect = this._cropper._areaCropperRect();\n this._startImgRect = this._cropper._canvasRect();\n event.preventDefault();\n this._bindGlobalEvents(event);\n });\n }\n\n private _pointerMove = (event: MouseEvent | TouchEvent) => {\n if (this._isSliding) {\n event.preventDefault();\n this._lastPointerEvent = event;\n const element: HTMLDivElement = this._elementRef.nativeElement;\n const {width, height, minWidth, minHeight} = this._cropper.config;\n const point = getGesturePointFromEvent(event);\n const deltaX = point.x - this._startPointerEvent.x;\n const deltaY = point.y - this._startPointerEvent.y;\n const startAreaRect = this._startAreaRect;\n const startImgRect = this._startImgRect;\n const isRound = this.round;\n const keepAspectRatio = this._cropper.config.keepAspectRatio || event.shiftKey;\n let newWidth = 0;\n let newHeight = 0;\n const rootRect = this._cropper._rootRect();\n\n if (isRound) {\n // The distance from the center of the cropper area to the pointer\n const originX = ((width / 2 / Math.sqrt(2)) + deltaX);\n const originY = ((height / 2 / Math.sqrt(2)) + deltaY);\n\n // Leg\n const side = Math.sqrt(originX ** 2 + originY ** 2);\n newWidth = newHeight = side * 2;\n\n } else if (keepAspectRatio) {\n newWidth = width + deltaX * 2;\n newHeight = height + deltaY * 2;\n if (width !== height) {\n if (width > height) {\n newHeight = height / (width / newWidth);\n } else if (height > width) {\n newWidth = width / (height / newHeight);\n }\n } else {\n newWidth = newHeight = Math.max(newWidth, newHeight);\n }\n } else {\n newWidth = width + deltaX * 2;\n newHeight = height + deltaY * 2;\n }\n\n // To min width\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n // To min height\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n\n // Do not overflow the cropper area\n const centerX = startAreaRect.x + startAreaRect.width / 2;\n const centerY = startAreaRect.y + startAreaRect.height / 2;\n const topOverflow = startImgRect.y > centerY - (newHeight / 2);\n const bottomOverflow = centerY + (newHeight / 2) > startImgRect.bottom;\n const minHeightOnOverflow = Math.min((centerY - startImgRect.y) * 2, (startImgRect.bottom - centerY) * 2);\n const leftOverflow = startImgRect.x > centerX - (newWidth / 2);\n const rightOverflow = centerX + (newWidth / 2) > startImgRect.right;\n const minWidthOnOverflow = Math.min((centerX - startImgRect.x) * 2, (startImgRect.right - centerX) * 2);\n const minOnOverflow = Math.min(minWidthOnOverflow, minHeightOnOverflow);\n if (round) {\n if (topOverflow || bottomOverflow || leftOverflow || rightOverflow) {\n newHeight = newWidth = minOnOverflow;\n }\n } else if (keepAspectRatio) {\n const newNewWidth: number[] = [];\n const newNewHeight: number[] = [];\n if ((topOverflow || bottomOverflow) && Math.min()) {\n newHeight = minHeightOnOverflow;\n newNewHeight.push(newHeight);\n newWidth = width / (height / minHeightOnOverflow);\n newNewWidth.push(newWidth);\n }\n if ((leftOverflow || rightOverflow)) {\n newWidth = minWidthOnOverflow;\n newNewWidth.push(newWidth);\n newHeight = height / (width / minWidthOnOverflow);\n newNewHeight.push(newHeight);\n }\n if (newNewWidth.length === 2) {\n newWidth = Math.min(...newNewWidth);\n }\n if (newNewHeight.length === 2) {\n newHeight = Math.min(...newNewHeight);\n }\n } else {\n if (topOverflow || bottomOverflow) {\n newHeight = minHeightOnOverflow;\n }\n if (leftOverflow || rightOverflow) {\n newWidth = minWidthOnOverflow;\n }\n }\n\n // Do not overflow the container\n if (round) {\n const min = Math.min(rootRect.width, rootRect.height);\n if (newWidth > min) {\n newWidth = newHeight = min;\n } else if (newHeight > min) {\n newWidth = newHeight = min;\n }\n } else if (keepAspectRatio) {\n if (newWidth > rootRect.width) {\n newWidth = rootRect.width;\n newHeight = height / (width / rootRect.width);\n } else if (newHeight > rootRect.height) {\n newWidth = width / (height / rootRect.height);\n newHeight = rootRect.height;\n }\n } else {\n if (newWidth > rootRect.width) {\n newWidth = rootRect.width;\n } else if (newHeight > rootRect.height) {\n newHeight = rootRect.height;\n }\n }\n\n\n // round values\n newWidth = Math.round(newWidth);\n newHeight = Math.round(newHeight);\n\n element.style.width = `${newWidth}px`;\n element.style.height = `${newHeight}px`;\n this._currentWidth = newWidth;\n this._currentHeight = newHeight;\n }\n }\n\n /** Called when the user has lifted their pointer. */\n private _pointerUp = (event: TouchEvent | MouseEvent) => {\n if (this._isSliding) {\n event.preventDefault();\n this._removeGlobalEvents();\n this._cropper._primaryAreaWidth = this._cropper.config.width = this._currentWidth;\n this._cropper._primaryAreaHeight = this._cropper.config.height = this._currentHeight;\n this._cropper.config = this._cropper.config;\n this._cropper._updateMinScale();\n this._isSliding = false;\n this._startPointerEvent = null;\n }\n }\n\n /** Called when the window has lost focus. */\n private _windowBlur = () => {\n // If the window is blurred while dragging we need to stop dragging because the\n // browser won't dispatch the `mouseup` and `touchend` events anymore.\n if (this._lastPointerEvent) {\n this._pointerUp(this._lastPointerEvent);\n }\n }\n\n private _bindGlobalEvents(triggerEvent: TouchEvent | MouseEvent) {\n const element = this._document;\n const isTouch = isTouchEvent(triggerEvent);\n const moveEventName = isTouch ? \"touchmove\" : \"mousemove\";\n const endEventName = isTouch ? \"touchend\" : \"mouseup\";\n element.addEventListener(moveEventName, this._pointerMove, activeEventOptions);\n element.addEventListener(endEventName, this._pointerUp, activeEventOptions);\n\n if (isTouch) {\n element.addEventListener(\"touchcancel\", this._pointerUp, activeEventOptions);\n }\n\n const window = this._getWindow();\n\n if (typeof window !== \"undefined\" && window) {\n window.addEventListener(\"blur\", this._windowBlur);\n }\n }\n\n /** Removes any global event listeners that we may have added. */\n private _removeGlobalEvents() {\n const element = this._document;\n element.removeEventListener(\"mousemove\", this._pointerMove, activeEventOptions);\n element.removeEventListener(\"mouseup\", this._pointerUp, activeEventOptions);\n element.removeEventListener(\"touchmove\", this._pointerMove, activeEventOptions);\n element.removeEventListener(\"touchend\", this._pointerUp, activeEventOptions);\n element.removeEventListener(\"touchcancel\", this._pointerUp, activeEventOptions);\n\n const window = this._getWindow();\n\n if (typeof window !== \"undefined\" && window) {\n window.removeEventListener(\"blur\", this._windowBlur);\n }\n }\n\n /** Use defaultView of injected document if available or fallback to global window reference */\n private _getWindow(): Window {\n return this._document.defaultView || window;\n }\n}\n","<!-- (selectstart): On Safari starting to slide temporarily triggers text selection mode which\nshow the wrong cursor. We prevent it by stopping the `selectstart` event. -->\n<div class=\"image-container\" #_imgContainer\n (selectstart)=\"$event.preventDefault()\"\n>\n <canvas #_imgCanvas></canvas>\n</div>\n<nice-cropper-area\n #_area\n *ngIf=\"_isLoadedImg\"\n [round]=\"!!config.round\"\n [resizableArea]=\"!!config.resizableArea\"\n [keepAspectRatio]=\"!!config.keepAspectRatio\"\n [ngStyle]=\"{\n width: config.width + 'px',\n height: config.height + 'px'\n }\"\n></nice-cropper-area>\n<button class=\"close-button\" mat-icon-button *ngIf=\"_isLoadedImg\" (click)=\"clean()\">\n <mat-icon>arrow_back</mat-icon>\n</button>\n","<div class=\"resizer\" #resizer *ngIf=\"resizableArea\"></div>\n","/**\n * Adapted from https://github.com/A-l-y-l-e/Alyle-UI/tree/10.5.3/src/lib/image-cropper\n */\n\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\n\nimport { NiceCropperAreaComponent, NiceImageCropperComponent } from \"./image-cropper.component\";\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatIconModule],\n declarations: [NiceImageCropperComponent, NiceCropperAreaComponent],\n exports: [NiceImageCropperComponent]\n})\nexport class NiceImageCropperModule {}\n","import { DOCUMENT } from \"@angular/common\";\nimport { Component, Inject, OnDestroy, OnInit, Renderer2 } from \"@angular/core\";\nimport { combineLatest, Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { NiceConfigService, NiceMediaWatcherService } from \"../../providers\";\nimport { NiceConfig, Scheme } from \"../../providers/config/config.model\";\n\n@Component({\n selector: \"nice-layout\",\n template: `<ng-content></ng-content>`\n})\nexport class NiceLayoutComponent implements OnInit, OnDestroy {\n private config: NiceConfig;\n private scheme: Scheme;\n private theme: string;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n /**\n * Constructor\n */\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _renderer2: Renderer2,\n private _niceConfigService: NiceConfigService,\n private _niceMediaWatcherService: NiceMediaWatcherService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Set the theme and scheme based on the configuration\n combineLatest([\n this._niceConfigService.config$,\n this._niceMediaWatcherService.onMediaQueryChange$([\"(prefers-color-scheme: dark)\", \"(prefers-color-scheme: light)\"])\n ]).pipe(\n takeUntil(this._unsubscribeAll),\n map(([config, mql]) => {\n const options = {\n scheme: config.scheme,\n theme: config.theme\n };\n\n if (config.scheme === \"auto\") {\n options.scheme = mql.breakpoints[\"(prefers-color-scheme: dark)\"] ? \"dark\" : \"light\";\n }\n\n return options;\n })\n ).subscribe((options) => {\n this.scheme = options.scheme;\n this.theme = options.theme;\n\n this._updateScheme();\n this._updateTheme();\n });\n\n // Subscribe to config changes\n this._niceConfigService.config$\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((config: NiceConfig) => {\n this.config = config;\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n /**\n * Update the selected scheme\n *\n * @private\n */\n private _updateScheme(): void {\n // Remove class names for all schemes\n this._document.body.classList.remove(\"light\", \"dark\");\n\n // Add class name for the currently selected scheme\n this._document.body.classList.add(this.scheme);\n }\n\n /**\n * Update the selected theme\n *\n * @private\n */\n private _updateTheme(): void {\n // Find the class name for the previously selected theme and remove it\n this._document.body.classList.forEach((className: string) => {\n if (className.startsWith(\"theme-\")) {\n this._document.body.classList.remove(className, className.split(\"-\")[1]);\n }\n });\n\n // Add class name for the currently selected theme\n this._document.body.classList.add(`theme-${this.theme}`);\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { NiceLayoutComponent } from \"./layout.component\";\n\n@NgModule({\n imports: [],\n declarations: [NiceLayoutComponent],\n providers: [],\n exports: [NiceLayoutComponent]\n})\nexport class NiceLayoutModule {}\n","import { Component, Input } from \"@angular/core\";\nimport { ProgressSpinnerMode } from \"@angular/material/progress-spinner\";\n\n@Component({\n selector: \"nice-loading-spinner\",\n templateUrl: \"loading-spinner.template.html\",\n styleUrls: [\"./loading-spinner.style.scss\"]\n})\nexport class NiceLoadingSpinnerComponent {\n @Input()\n public loading: boolean;\n\n @Input()\n mode: ProgressSpinnerMode = \"indeterminate\";\n\n @Input()\n diameter = 50;\n}\n","<mat-spinner [diameter]=\"diameter\" [mode]=\"mode\" [color]=\"'accent'\"></mat-spinner>\n","import { OverlayContainer } from \"@angular/cdk/overlay\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class DynamicOverlayContainer extends OverlayContainer {\n public setContainerElement(containerElement: HTMLElement): void {\n this._containerElement = containerElement;\n }\n}\n","import { Overlay, OverlayKeyboardDispatcher, OverlayPositionBuilder, ScrollStrategyOptions, OverlayOutsideClickDispatcher } from \"@angular/cdk/overlay\";\nimport { ComponentFactoryResolver, Inject, Injectable, Injector, NgZone, Renderer2, RendererFactory2 } from \"@angular/core\";\nimport { DynamicOverlayContainer } from \"./dynamic-overlay-container.service\";\nimport { Directionality } from \"@angular/cdk/bidi\";\nimport { DOCUMENT, Location } from \"@angular/common\";\n\n@Injectable({ providedIn: \"root\" })\nexport class DynamicOverlay extends Overlay {\n private readonly _dynamicOverlayContainer: DynamicOverlayContainer;\n private renderer: Renderer2;\n\n constructor(\n @Inject(DOCUMENT) _document: any,\n scrollStrategies: ScrollStrategyOptions,\n _overlayContainer: DynamicOverlayContainer,\n _componentFactoryResolver: ComponentFactoryResolver,\n _positionBuilder: OverlayPositionBuilder,\n _keyboardDispatcher: OverlayKeyboardDispatcher,\n _injector: Injector,\n _ngZone: NgZone,\n _directionality: Directionality,\n rendererFactory: RendererFactory2,\n _location: Location,\n _outsideClickDispatcher: OverlayOutsideClickDispatcher\n ) {\n super(\n scrollStrategies,\n _overlayContainer,\n _componentFactoryResolver,\n _positionBuilder,\n _keyboardDispatcher,\n _injector,\n _ngZone,\n _document,\n _directionality,\n _location,\n _outsideClickDispatcher\n );\n this.renderer = rendererFactory.createRenderer(null, null);\n\n this._dynamicOverlayContainer = _overlayContainer;\n }\n\n public setContainerElement(containerElement: HTMLElement): void {\n this.renderer.setStyle(containerElement, \"transform\", \"translateZ(0)\");\n this._dynamicOverlayContainer.setContainerElement(containerElement);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_LOADING_OPTIONS = new InjectionToken(\"nice_loading_options\");\n","import { Directive, ElementRef, Inject, Input, Optional, Type } from \"@angular/core\";\nimport { OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { DynamicOverlay } from \"../../providers/overlay/dynamic-overlay.service\";\nimport { NiceLoadingSpinnerComponent } from \"./loading-spinner.component\";\nimport { NICE_LOADING_OPTIONS } from \"./loading.constant\";\n\nexport interface NiceLoadingOptions {\n customLoading?: Type<any>;\n}\n\n@Directive({ selector: \"[niceLoadingOverlay]\" })\nexport class NiceLoadingDirective {\n private overlayRef: OverlayRef;\n private _loading = false;\n\n @Input(\"niceLoadingOverlay\")\n public set loading(loading: boolean | null) {\n setTimeout(() => {\n if (loading === this._loading) {\n return;\n }\n this._loading = loading;\n if (!this.overlayRef) {\n this.overlay.setContainerElement(this.elRef.nativeElement);\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically(),\n hasBackdrop: true,\n panelClass: \"nice-loading-overlay\"\n });\n }\n if (this._loading) {\n this.overlayRef.attach(new ComponentPortal(this.options?.customLoading ?? NiceLoadingSpinnerComponent));\n } else {\n this.overlayRef.detach();\n }\n }, 0);\n }\n\n constructor(\n @Optional() @Inject(NICE_LOADING_OPTIONS) private options: NiceLoadingOptions,\n private elRef: ElementRef,\n private overlay: DynamicOverlay\n ) {}\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { DynamicOverlayContainer } from \"../../providers/overlay/dynamic-overlay-container.service\";\nimport { DynamicOverlay } from \"../../providers/overlay/dynamic-overlay.service\";\nimport { NiceLoadingSpinnerComponent } from \"./loading-spinner.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { NiceLoadingDirective, NiceLoadingOptions } from \"./loading.directive\";\nimport { NICE_LOADING_OPTIONS } from \"./loading.constant\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressSpinnerModule\n ],\n declarations: [\n NiceLoadingSpinnerComponent,\n NiceLoadingDirective\n ],\n providers: [DynamicOverlayContainer, DynamicOverlay],\n exports: [\n NiceLoadingSpinnerComponent,\n NiceLoadingDirective\n ]\n})\nexport class NiceLoadingSpinnerModule {\n public static forRoot(options?: NiceLoadingOptions): ModuleWithProviders<NiceLoadingSpinnerModule> {\n return {\n ngModule: NiceLoadingSpinnerModule,\n providers: [\n {\n provide: NICE_LOADING_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation } from \"@angular/core\";\nimport { MAT_SNACK_BAR_DATA } from \"@angular/material/snack-bar\";\nimport { NiceAlertAppearance, NiceAlertColor, NiceAlertType } from \"../alert\";\nimport { NiceLoadingToastOptions } from \"./loading-toast.service\";\n\nexport interface NiceLoadingToastData {\n message: string;\n options?: NiceLoadingToastOptions;\n}\n\n@Component({\n selector: \"nice-loading-toast\",\n templateUrl: \"loading-toast.template.html\",\n styleUrls: [\"loading-toast.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceLoadingToastComponent {\n @Input()\n public message: string;\n\n @Input()\n public options: NiceLoadingToastOptions;\n\n public get appearance(): NiceAlertAppearance {\n return this.data?.options?.appearance ?? this.options?.appearance;\n }\n\n public get color(): NiceAlertColor {\n return this.data?.options?.color ?? this.options?.color;\n }\n\n public get showIcon(): boolean {\n return this.data?.options?.showIcon ?? this.options?.showIcon;\n }\n\n public get type(): NiceAlertType {\n return this.data?.options?.type ?? this.options?.type;\n }\n\n constructor(@Optional() @Inject(MAT_SNACK_BAR_DATA) public data?: NiceLoadingToastData) {}\n}\n","<nice-alert class=\"toast\" disableAnimation [appearance]=\"appearance\" [color]=\"color\" [dismissible]=\"false\" [type]=\"type\" [showIcon]=\"showIcon\">\n <div class=\"full flex justify-between gap-8\" niceAlertTitle>\n <span class=\"flex-auto\">{{ data?.message ?? message }}</span>\n\n <div>\n <mat-spinner [diameter]=\"21\"></mat-spinner>\n </div>\n </div>\n</nice-alert>\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_LOADING_TOAST_OPTIONS = new InjectionToken(\"nice_loading_toast_options\");\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Directive, Inject, Input, Optional } from \"@angular/core\";\nimport { NiceLoadingToastComponent } from \"./loading-toast.component\";\nimport { NICE_LOADING_TOAST_OPTIONS } from \"./loading-toast.constant\";\nimport { NiceLoadingToastOptions } from \"./loading-toast.service\";\n\n@Directive({ selector: \"[niceLoadingToast]\" })\nexport class NiceLoadingToastDirective {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_niceLoadingDisableUserInteraction: BooleanInput;\n\n private overlayRef: OverlayRef;\n private _loading = false;\n private _niceLoadingDisableUserInteraction = true;\n\n @Input()\n public niceLoadingMessage: string;\n\n @Input()\n public set niceLoadingDisableUserInteraction(disableUserInteraction: boolean) {\n this._niceLoadingDisableUserInteraction = coerceBooleanProperty(disableUserInteraction);\n }\n\n @Input(\"niceLoadingToast\")\n public set loading(loading: boolean | null) {\n if (loading === this._loading) {\n return;\n }\n this._loading = loading;\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .global()\n .bottom(\"22px\")\n .right(\"16px\"),\n hasBackdrop: this._niceLoadingDisableUserInteraction,\n backdropClass: \"bg-transparent\",\n panelClass: \"nice-loading-toast\"\n });\n }\n\n if (this._loading) {\n const toastInstance = this.overlayRef.attach(new ComponentPortal(NiceLoadingToastComponent));\n toastInstance.instance.message = this.niceLoadingMessage;\n toastInstance.instance.options = this.options;\n } else {\n this.overlayRef.detach();\n }\n }\n\n constructor(\n @Optional() @Inject(NICE_LOADING_TOAST_OPTIONS)\n private options: NiceLoadingToastOptions,\n private overlay: Overlay\n ) {}\n}\n","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { MatSnackBar, MatSnackBarRef } from \"@angular/material/snack-bar\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NiceAlertAppearance, NiceAlertColor, NiceAlertType } from \"../alert\";\nimport { NiceLoadingToastComponent } from \"./loading-toast.component\";\nimport { NICE_LOADING_TOAST_OPTIONS } from \"./loading-toast.constant\";\n\nexport interface NiceLoadingToastOptions {\n appearance?: NiceAlertAppearance;\n showIcon?: boolean;\n type?: NiceAlertType;\n color?: NiceAlertColor;\n}\n\n@Injectable({ providedIn: \"any\" })\nexport class NiceLoadingToastService {\n constructor(\n @Optional() @Inject(NICE_LOADING_TOAST_OPTIONS)\n private options: NiceLoadingToastOptions,\n private snackbar: MatSnackBar,\n private translateService: TranslateService\n ) {}\n\n public showLoadingToast(messageKey: string, params?: object): MatSnackBarRef<any> {\n const message = this.getTranslations(messageKey, params);\n return this.snackbar.openFromComponent(NiceLoadingToastComponent, {\n horizontalPosition: \"end\",\n verticalPosition: \"bottom\",\n panelClass: [\"nice-loading-toast\"],\n data: {\n message,\n options: this.options\n }\n });\n }\n\n private getTranslations(message: string, params: object): string {\n try {\n return this.translateService.instant(message, params);\n } catch (e) {\n return \"\";\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { DynamicOverlayContainer } from \"../../providers/overlay/dynamic-overlay-container.service\";\nimport { NiceAlertModule } from \"../alert\";\nimport { NiceLoadingToastComponent } from \"./loading-toast.component\";\nimport { NICE_LOADING_TOAST_OPTIONS } from \"./loading-toast.constant\";\nimport { NiceLoadingToastDirective } from \"./loading-toast.directive\";\nimport { NiceLoadingToastOptions, NiceLoadingToastService } from \"./loading-toast.service\";\n\nconst defaultOptions: NiceLoadingToastOptions = {\n color: \"primary\",\n type: \"info\",\n showIcon: true,\n appearance: \"outline\"\n};\n\n@NgModule({\n imports: [CommonModule, MatSnackBarModule, MatProgressSpinnerModule, NiceAlertModule],\n providers: [DynamicOverlayContainer, NiceLoadingToastService],\n declarations: [NiceLoadingToastComponent, NiceLoadingToastDirective],\n exports: [NiceLoadingToastDirective]\n})\nexport class NiceLoadingToastModule {\n public static forRoot(options?: NiceLoadingToastOptions): ModuleWithProviders<NiceLoadingToastModule> {\n return {\n ngModule: NiceLoadingToastModule,\n providers: [\n NiceLoadingToastService,\n {\n provide: NICE_LOADING_TOAST_OPTIONS,\n useValue: {\n ...defaultOptions,\n ...(options ?? {})\n }\n }\n ]\n };\n }\n\n public static forFeature(options: NiceLoadingToastOptions): ModuleWithProviders<NiceLoadingToastModule> {\n return {\n ngModule: NiceLoadingToastModule,\n providers: [\n NiceLoadingToastService,\n {\n provide: NICE_LOADING_TOAST_OPTIONS,\n useValue: {\n ...defaultOptions,\n ...options\n }\n }\n ]\n };\n }\n}\n","import { MonoTypeOperatorFunction, combineLatest, defer, timer } from \"rxjs\";\nimport { finalize, map } from \"rxjs/operators\";\nimport { NiceLoadingToastService } from \"../loading-toast.service\";\n\nexport interface ShowLoadingToastOperatorOptions {\n minDuration?: number;\n}\n\nexport function showLoadingToast<T>(\n loadingToastService: NiceLoadingToastService,\n key: string,\n options: ShowLoadingToastOperatorOptions = {}\n): MonoTypeOperatorFunction<T> {\n return source => defer(() => {\n const ref = loadingToastService.showLoadingToast(key);\n return combineLatest([\n source,\n timer(options.minDuration ?? 1000)\n ]).pipe(\n map(([value]) => value),\n finalize(() => ref.dismiss())\n );\n });\n}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Inject, Input, OnInit, Output, PLATFORM_ID, ViewChild } from \"@angular/core\";\nimport { isPlatformServer } from \"@angular/common\";\n\n@Component({\n selector: \"nice-lottie\",\n templateUrl: \"lottie.template.html\"\n})\nexport class NiceLottieComponent implements OnInit, AfterViewInit {\n private _options: import(\"lottie-web\").AnimationConfigWithPath | import(\"lottie-web\").AnimationConfigWithData;\n private _lottie: typeof import(\"lottie-web\").default;\n\n @Input()\n public options: any;\n @Input()\n public width: number;\n @Input()\n public height: number;\n\n @Output()\n public animCreated: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(\"animationContainer\")\n public animationContainer: ElementRef;\n\n public viewWidth: string;\n public viewHeight: string;\n\n constructor(@Inject(PLATFORM_ID) private platformId: string) {\n }\n\n public ngOnInit(): void {\n this.viewWidth = this.width + \"px\" || \"100%\";\n this.viewHeight = this.height + \"px\" || \"100%\";\n }\n\n public async ngAfterViewInit(): Promise<void> {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n this._lottie = (await import(\"lottie-web\")).default;\n this._options = {\n container: this.animationContainer.nativeElement,\n renderer: this.options.renderer || \"svg\",\n loop: this.options.loop !== false,\n autoplay: this.options.autoplay !== false,\n animationData: this.options.animationData,\n path: this.options.path || \"\",\n rendererSettings: this.options.rendererSettings || {}\n };\n\n const anim: any = this._lottie.loadAnimation(this._options);\n this.animCreated.emit(anim);\n }\n}\n","<div #animationContainer\n [ngStyle]=\"{'width': viewWidth, 'height': viewHeight, 'overflow':'hidden', 'margin': '0 auto'}\">\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { NiceLottieComponent } from \"./lottie.component\";\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [NiceLottieComponent],\n exports: [NiceLottieComponent]\n})\nexport class NiceLottieModule {}\n","import { ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, OnDestroy } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\n@Directive()\n// tslint:disable-next-line:class-name directive-class-suffix\nexport abstract class _HintComponentBase implements OnDestroy {\n\n /** The timeout ID of any current timer set to show the tooltip */\n private _showTimeoutId: number | undefined;\n\n /** The timeout ID of any current timer set to hide the tooltip */\n private _hideTimeoutId: number | undefined;\n\n /** Element that caused the tooltip to open. */\n _triggerElement: HTMLElement;\n\n /** Amount of milliseconds to delay the closing sequence. */\n _mouseLeaveHideDelay: number;\n\n /** Reference to the internal tooltip element. */\n abstract _hint: ElementRef<HTMLElement>;\n\n /** Whether interactions on the page should close the tooltip */\n private _closeOnInteraction = false;\n\n /** Whether the tooltip is currently visible. */\n private _isVisible = false;\n\n /** Subject for notifying that the tooltip has been hidden from the view */\n private readonly _onHide: Subject<void> = new Subject();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /**\n * Shows the tooltip with an animation originating from the provided origin\n * @param delay Amount of milliseconds to the delay showing the tooltip.\n */\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n clearTimeout(this._hideTimeoutId);\n\n this._showTimeoutId = setTimeout(() => {\n this._toggleVisibility(true);\n this._showTimeoutId = undefined;\n }, delay) as unknown as number;\n }\n\n /**\n * Begins the animation to hide the tooltip after the provided delay in ms.\n * @param delay Amount of milliseconds to delay showing the tooltip.\n */\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n clearTimeout(this._showTimeoutId);\n\n this._hideTimeoutId = setTimeout(() => {\n this._toggleVisibility(false);\n this._hideTimeoutId = undefined;\n }, delay) as unknown as number;\n }\n\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden(): Observable<void> {\n return this._onHide;\n }\n\n /** Whether the tooltip is being displayed. */\n isVisible(): boolean {\n return this._isVisible;\n }\n\n ngOnDestroy() {\n this._cancelPendingAnimations();\n this._onHide.complete();\n this._triggerElement = null;\n }\n\n /**\n * Interactions on the HTML body should close the tooltip immediately as defined in the\n * material design spec.\n * https://material.io/design/components/tooltips.html#behavior\n */\n _handleBodyInteraction(): void {\n if (this._closeOnInteraction) {\n this.hide(0);\n }\n }\n\n /**\n * Marks that the tooltip needs to be checked in the next change detection run.\n * Mainly used for rendering the initial text before positioning a tooltip, which\n * can be problematic in components with OnPush change detection.\n */\n _markForCheck(): void {\n this._changeDetectorRef.markForCheck();\n }\n\n @HostListener(\"mouseleave\", [\"$event\"])\n _handleMouseLeave({relatedTarget}: MouseEvent) {\n if (!relatedTarget || !this._triggerElement.contains(relatedTarget as Node)) {\n if (this.isVisible()) {\n this.hide(this._mouseLeaveHideDelay);\n } else {\n this._finalizeAnimation(false);\n }\n }\n }\n\n /**\n * Callback for when the timeout in this.show() gets completed.\n * This method is only needed by the mdc-tooltip, and so it is only implemented\n * in the mdc-tooltip, not here.\n */\n protected _onShow(): void {}\n\n /** Cancels any pending animation sequences. */\n _cancelPendingAnimations() {\n clearTimeout(this._showTimeoutId);\n clearTimeout(this._hideTimeoutId);\n this._showTimeoutId = this._hideTimeoutId = undefined;\n }\n\n /** Handles the cleanup after an animation has finished. */\n private _finalizeAnimation(toVisible: boolean) {\n if (toVisible) {\n this._closeOnInteraction = true;\n } else if (!this.isVisible()) {\n this._onHide.next();\n }\n }\n\n /** Toggles the visibility of the tooltip element. */\n private _toggleVisibility(isVisible: boolean) {\n // We set the classes directly here ourselves so that toggling the tooltip state\n // isn't bound by change detection. This allows us to hide it even if the\n // view ref has been detached from the CD tree.\n this._isVisible = isVisible;\n\n if (isVisible) {\n this._onShow();\n }\n }\n}\n","import { Injectable, OnDestroy } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from \"@angular/router\";\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationItem } from \"./navigation.types\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceNavigationService implements OnDestroy {\n private _onNavigationChanged = new BehaviorSubject<any>(null);\n private _onNavigationRegistered = new BehaviorSubject<any>(null);\n private _onNavigationUnregistered = new BehaviorSubject<any>(null);\n private _defaultNavigationKey: string;\n private _currentNavigationKey: string;\n private _componentRegistry: Map<string, any> = new Map<string, any>();\n private _navigationStore: Map<string, NiceNavigationItem[]> = new Map<string, any>();\n\n protected _unsubscribeAll: Subject<any>;\n\n /**\n * Constructor\n */\n constructor(private router: Router) {\n this._unsubscribeAll = new Subject();\n this.listenOnRouteChange();\n }\n\n public get onNavigationChanged(): Observable<any> {\n return this._onNavigationChanged.asObservable();\n }\n\n public get onNavigationRegistered(): Observable<any> {\n return this._onNavigationRegistered.asObservable();\n }\n\n public get onNavigationUnregistered(): Observable<any> {\n return this._onNavigationUnregistered.asObservable();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n public ngOnDestroy(): void {\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n /**\n * Register navigation component\n */\n public registerComponent(name: string, component: any): void {\n this._componentRegistry.set(name, component);\n }\n\n /**\n * Deregister navigation component\n */\n public deregisterComponent(name: string): void {\n this._componentRegistry.delete(name);\n }\n\n /**\n * Get navigation component from the registry\n */\n public getComponent(name: string): any {\n return this._componentRegistry.get(name);\n }\n\n /**\n * Store the given navigation with the given key\n */\n public storeNavigation(key: string, navigation: NiceNavigationItem[], isDefault = false): void {\n // Add to the store\n this._navigationStore.set(key, navigation);\n\n // Notify the subject\n this._onNavigationRegistered.next([key, navigation, key === this._currentNavigationKey]);\n\n if (isDefault) {\n this._defaultNavigationKey = key;\n }\n }\n\n /**\n * Get navigation from storage by key\n */\n public getNavigation(key: string): NiceNavigationItem[] {\n return this._navigationStore.get(key) ?? [];\n }\n\n /**\n * Delete the navigation from the storage\n */\n public deleteNavigation(key: string): void {\n // Check if the navigation exists\n if (!this._navigationStore.has(key)) {\n console.warn(`Navigation with the key '${key}' does not exist in the store.`);\n }\n\n // Delete from the storage\n this._navigationStore.delete(key);\n\n // Notify the subject\n this._onNavigationUnregistered.next(key);\n }\n\n /**\n * Utility function that returns a flattened\n * version of the given navigation array\n */\n public getFlatNavigation(navigation: NiceNavigationItem[], flatNavigation: NiceNavigationItem[] = []): NiceNavigationItem[] {\n for (const item of navigation) {\n if (item.type === \"basic\") {\n flatNavigation.push(item);\n continue;\n }\n\n if (item.type === \"aside\" || item.type === \"collapsable\" || item.type === \"group\") {\n if (item.children) {\n this.getFlatNavigation(item.children, flatNavigation);\n }\n }\n }\n\n return flatNavigation;\n }\n\n /**\n * Utility function that returns the item\n * with the given id from given navigation\n */\n public getItem(id: string, navigation: NiceNavigationItem[]): NiceNavigationItem | null {\n for (const item of navigation) {\n if (item.id === id) {\n return item;\n }\n\n if (item.children) {\n const childItem = this.getItem(id, item.children);\n\n if (childItem) {\n return childItem;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Utility function that returns the item's parent\n * with the given id from given navigation\n */\n public getItemParent(\n id: string,\n navigation: NiceNavigationItem[],\n parent: NiceNavigationItem[] | NiceNavigationItem\n ): NiceNavigationItem[] | NiceNavigationItem | null {\n for (const item of navigation) {\n if (item.id === id) {\n return parent;\n }\n\n if (item.children) {\n const childItem = this.getItemParent(id, item.children, item);\n\n if (childItem) {\n return childItem;\n }\n }\n }\n\n return null;\n }\n\n public getCurrentNavigation(): NiceNavigationItem[] {\n if (!this._currentNavigationKey) {\n console.warn(`The current navigation is not set.`);\n return;\n }\n\n return this.getNavigation(this._currentNavigationKey);\n }\n\n public setCurrentNavigation(key: string): void {\n // Check if the sidebar exists\n if (!this._navigationStore.has(key)) {\n console.warn(`Navigation with the key '${key}' does not exist in the store.`);\n }\n\n if (this._currentNavigationKey === key) {\n return;\n }\n\n // Set the current adminNavigation key\n this._currentNavigationKey = key;\n\n // Notify the subject\n this._onNavigationChanged.next(key);\n }\n\n private listenOnRouteChange(): void {\n this.router.events.pipe(\n takeUntil(this._unsubscribeAll),\n filter((e) => e instanceof NavigationEnd)\n ).subscribe(() => {\n const route = this.lastChild(this.router.routerState.snapshot.root);\n if (route.data.navigationKey) {\n this.setCurrentNavigation(route.data.navigationKey);\n } else if (this._defaultNavigationKey) {\n this.setCurrentNavigation(this._defaultNavigationKey);\n }\n });\n }\n\n private lastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.lastChild(route.firstChild);\n } else {\n return route;\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class NiceTranslationContextService {\n private _context: Record<string, any>;\n\n public get context(): Record<string, any> {\n return this._context;\n }\n public set context(context: Record<string, any>) {\n this._context = context;\n }\n}\n","import { ChangeDetectorRef, Component, Directive, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from \"@angular/core\";\nimport { distinctUntilChanged, ReplaySubject, startWith, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceUtilsService } from \"../../providers\";\nimport { NiceNavigationService } from \"./navigation.service\";\nimport { NiceNavigationItem } from \"./navigation.types\";\nimport { NiceTranslationContextService } from \"./providers/translation-context.service\";\n\n@Component({\n template: ``\n})\nexport class NiceNavigationComponent implements OnInit, OnDestroy, OnChanges {\n protected _navigation: NiceNavigationItem[];\n protected _unsubscribeAll: Subject<any>;\n\n public animateNextNavChange = false;\n public onRefreshed = new ReplaySubject<boolean>(1);\n public name: string;\n\n constructor(\n protected _changeDetectorRef: ChangeDetectorRef,\n protected _niceNavigationService: NiceNavigationService,\n protected _niceUtilsService: NiceUtilsService,\n protected _translationContext: NiceTranslationContextService\n ) {\n this._unsubscribeAll = new Subject();\n }\n\n public ngOnInit(): void {\n // Make sure the name input is not an empty string\n if (this.name === \"\") {\n this.name = this._niceUtilsService.randomId();\n }\n\n // Register the navigation component\n this._niceNavigationService.registerComponent(this.name, this);\n\n this._niceNavigationService.onNavigationChanged.pipe(\n distinctUntilChanged(),\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n this.animateNextNavChange = !!this._navigation?.length;\n this._navigation = this._niceNavigationService.getCurrentNavigation();\n this._changeDetectorRef.markForCheck();\n });\n\n this._niceNavigationService.onNavigationRegistered.pipe(\n filter((x) => !!x),\n distinctUntilChanged(),\n takeUntil(this._unsubscribeAll)\n ).subscribe(([_, __, isActive]) => {\n if (!isActive) {\n return;\n }\n\n this.animateNextNavChange = !!this._navigation?.length;\n this._navigation = this._niceNavigationService.getCurrentNavigation();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n // Deregister the navigation component from the registry\n this._niceNavigationService.deregisterComponent(this.name);\n\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n // Navigation\n if (\"navigation\" in changes) {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n\n if (\"translationContext\" in changes) {\n // Mark for check\n this._translationContext.context = changes.translationContext.currentValue;\n }\n }\n\n /**\n * Refresh the component to apply the changes\n */\n public refresh(): void {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n\n // Execute the observable\n this.onRefreshed.next(true);\n }\n\n /**\n * Track by function for ngFor loops\n */\n public trackByFn(index: number, item: any): any {\n return item.id || index;\n }\n}\n\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NiceTranslationContextService } from \"../providers/translation-context.service\";\n\n@Pipe({ name: \"niceTranslateWithContext\", pure: false })\nexport class NiceTranslateWithContextPipe implements PipeTransform {\n constructor(private translate: TranslateService, private context: NiceTranslationContextService) {}\n\n public transform(value: string): any {\n if (!value) {\n return value;\n }\n\n return this.translate.instant(value, this.context.context);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-horizontal-navigation-basic-item\",\n templateUrl: \"./basic.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceHorizontalNavigationBasicItemComponent implements OnInit, OnDestroy {\n private _niceHorizontalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceHorizontalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceHorizontalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Item wrapper -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | niceTranslateWithContext\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n <!-- Item with an internal link -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n (click)=\"item.function(item)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-horizontal-navigation-item-active-forced': item.active}\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-horizontal-navigation-item nice-horizontal-navigation-item-disabled\"\n *ngIf=\"item.disabled\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\">\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-horizontal-navigation-divider-item\",\n templateUrl: \"./divider.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceHorizontalNavigationDividerItemComponent implements OnInit, OnDestroy {\n private _niceHorizontalNavigationComponent;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceHorizontalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceHorizontalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Divider -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper divider\"\n [ngClass]=\"item.classes?.wrapper\"\n></div>\n","import { Injector, Pipe, PipeTransform } from \"@angular/core\";\nimport { Observable, of } from \"rxjs\";\nimport { NiceNavigationItem } from \"../navigation.types\";\nimport { NavigationHideItemResolver } from \"../providers/hide-item.resolver\";\n\n@Pipe({ name: \"niceShouldHide\" })\nexport class NiceShouldHidePipe implements PipeTransform {\n constructor(private injector: Injector) {}\n\n public transform(value: NiceNavigationItem): Observable<boolean> {\n if (!value.hidden) {\n return of(false);\n }\n\n if (typeof value === \"boolean\") {\n return of(true);\n }\n\n if (typeof value.hidden !== \"function\") {\n return of(false);\n }\n\n const resolver = this.injector.get(value.hidden, null) as NavigationHideItemResolver;\n if (!resolver) {\n return of((value.hidden as (item: NiceNavigationItem) => boolean)(value));\n }\n\n return resolver.shouldHide(value);\n }\n}\n","import { BooleanInput } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from \"@angular/core\";\nimport { MatMenu } from \"@angular/material/menu\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\n\n@Component({\n selector: \"nice-horizontal-navigation-branch-item\",\n templateUrl: \"./branch.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceHorizontalNavigationBranchItemComponent implements OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_child: BooleanInput;\n\n private _niceHorizontalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public child = false;\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @ViewChild(\"matMenu\", { static: true })\n public matMenu: MatMenu;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceHorizontalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceHorizontalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Trigger the change detection\n */\n public triggerChangeDetection(): void {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n}\n","<div\n *ngIf=\"!child\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-menu-active': trigger.menuOpen,\n 'nice-horizontal-navigation-menu-active-forced': item.active\n }\"\n [matMenuTriggerFor]=\"matMenu\"\n (onMenuOpen)=\"triggerChangeDetection()\"\n (onMenuClose)=\"triggerChangeDetection()\"\n #trigger=\"matMenuTrigger\"\n>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n</div>\n\n<mat-menu\n class=\"nice-horizontal-navigation-menu-panel\"\n [overlapTrigger]=\"false\"\n #matMenu=\"matMenu\"\n>\n <ng-container *ngFor=\"let item of item.children\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [disabled]=\"item.disabled\"\n mat-menu-item\n >\n <nice-horizontal-navigation-basic-item\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-basic-item>\n </div>\n\n <!-- Branch: aside, collapsable, group -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [disabled]=\"item.disabled\"\n [matMenuTriggerFor]=\"branch.matMenu\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <nice-horizontal-navigation-branch-item\n [child]=\"true\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n #branch\n ></nice-horizontal-navigation-branch-item>\n </div>\n\n <!-- Divider -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'divider'\"\n mat-menu-item\n >\n <nice-horizontal-navigation-divider-item\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-divider-item>\n </div>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<!-- Item template -->\n<ng-template\n let-item\n #itemTemplate\n>\n <div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n >\n <div\n class=\"nice-horizontal-navigation-item\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-item-disabled': item.disabled,\n 'nice-horizontal-navigation-item-active-forced': item.active\n }\">\n\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\">\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-horizontal-navigation-spacer-item\",\n templateUrl: \"./spacer.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceHorizontalNavigationSpacerItemComponent implements OnInit, OnDestroy {\n private _niceHorizontalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceHorizontalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceHorizontalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Spacer -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [ngClass]=\"item.classes?.wrapper\"\n></div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from \"@angular/core\";\nimport { niceAnimations } from \"../../../animations\";\nimport { NiceUtilsService } from \"../../../providers/utils\";\nimport { NiceNavigationComponent } from \"../navigation.component\";\nimport { NiceNavigationService } from \"../navigation.service\";\nimport { NiceNavigationItem } from \"../navigation.types\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { NiceTranslationContextService } from \"../providers/translation-context.service\";\n\n@Component({\n selector: \"nice-horizontal-navigation\",\n templateUrl: \"./horizontal.component.html\",\n animations: niceAnimations,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NiceTranslationContextService],\n exportAs: \"niceHorizontalNavigation\"\n})\nexport class NiceHorizontalNavigationComponent extends NiceNavigationComponent {\n @Input()\n public name: string = this._niceUtilsService.randomId();\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n @Input()\n public translationContext: Record<string, any>;\n\n @Input()\n public set navigation(navigation: NiceNavigationItem[]) {\n this._navigation = navigation;\n this._changeDetectorRef.markForCheck();\n }\n public get navigation(): NiceNavigationItem[] {\n return this._navigation;\n }\n\n /**\n * Constructor\n */\n constructor(\n _changeDetectorRef: ChangeDetectorRef,\n _niceNavigationService: NiceNavigationService,\n _niceUtilsService: NiceUtilsService,\n _translationContextService: NiceTranslationContextService\n ) {\n super(_changeDetectorRef, _niceNavigationService, _niceUtilsService, _translationContextService);\n }\n}\n","<div class=\"nice-horizontal-navigation-wrapper\">\n <ng-container *ngFor=\"let item of navigation\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-horizontal-navigation-basic-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-basic-item>\n\n <!-- Branch: aside, collapsable, group -->\n <nice-horizontal-navigation-branch-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-branch-item>\n\n <!-- Spacer -->\n <nice-horizontal-navigation-spacer-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n","export class ScrollbarGeometry {\n public x: number;\n public y: number;\n\n public w: number;\n public h: number;\n\n constructor(x: number, y: number, w: number, h: number) {\n this.x = x;\n this.y = y;\n this.w = w;\n this.h = h;\n }\n}\n\nexport class ScrollbarPosition {\n public x: number | \"start\" | \"end\";\n public y: number | \"start\" | \"end\";\n\n constructor(x: number | \"start\" | \"end\", y: number | \"start\" | \"end\") {\n this.x = x;\n this.y = y;\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { Platform } from \"@angular/cdk/platform\";\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ScrollbarGeometry, ScrollbarPosition } from \"./scrollbar.types\";\nimport { merge } from \"lodash-es\";\nimport PerfectScrollbar from \"perfect-scrollbar\";\nimport { fromEvent, Subject } from \"rxjs\";\nimport { debounceTime, takeUntil } from \"rxjs/operators\";\n\n/**\n * Wrapper directive for the Perfect Scrollbar: https://github.com/mdbootstrap/perfect-scrollbar\n */\n@Directive({\n selector: \"[niceScrollbar]\",\n exportAs: \"niceScrollbar\"\n})\nexport class NiceScrollbarDirective implements OnChanges, OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_niceScrollbar: BooleanInput;\n\n private _animation: number;\n private _options: PerfectScrollbar.Options;\n private _ps: PerfectScrollbar;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n @Input()\n public niceScrollbar = true;\n\n @Input()\n public niceScrollbarOptions: PerfectScrollbar.Options;\n\n /**\n * Constructor\n */\n constructor(\n private _elementRef: ElementRef,\n private _platform: Platform,\n private _router: Router\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Getter for _elementRef\n */\n public get elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /**\n * Getter for _ps\n */\n public get ps(): PerfectScrollbar | null {\n return this._ps;\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Enabled\n if (\"niceScrollbar\" in changes) {\n // Interpret empty string as 'true'\n this.niceScrollbar = coerceBooleanProperty(changes.niceScrollbar.currentValue);\n\n // If enabled, init the directive\n if (this.niceScrollbar) {\n this._init();\n }\n // Otherwise destroy it\n else {\n this._destroy();\n }\n }\n\n // Scrollbar options\n if (\"niceScrollbarOptions\" in changes) {\n // Merge the options\n this._options = merge({}, this._options, changes.niceScrollbarOptions.currentValue);\n\n // Return if not initialized\n if (!this._ps) {\n return;\n }\n\n // Destroy and re-init the PerfectScrollbar to update its options\n setTimeout(() => {\n this._destroy();\n });\n\n setTimeout(() => {\n this._init();\n });\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Subscribe to window resize event\n fromEvent(window, \"resize\")\n .pipe(\n takeUntil(this._unsubscribeAll),\n debounceTime(150)\n )\n .subscribe(() => {\n\n // Update the PerfectScrollbar\n this.update();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n this._destroy();\n\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Is enabled\n */\n public isEnabled(): boolean {\n return this.niceScrollbar;\n }\n\n /**\n * Update the scrollbar\n */\n public update(): void {\n // Return if not initialized\n if (!this._ps) {\n return;\n }\n\n // Update the PerfectScrollbar\n this._ps.update();\n }\n\n /**\n * Destroy the scrollbar\n */\n public destroy(): void {\n this.ngOnDestroy();\n }\n\n /**\n * Returns the geometry of the scrollable element\n */\n public geometry(prefix: string = \"scroll\"): ScrollbarGeometry {\n return new ScrollbarGeometry(\n this._elementRef.nativeElement[prefix + \"Left\"],\n this._elementRef.nativeElement[prefix + \"Top\"],\n this._elementRef.nativeElement[prefix + \"Width\"],\n this._elementRef.nativeElement[prefix + \"Height\"]);\n }\n\n /**\n * Returns the position of the scrollable element\n */\n public position(absolute: boolean = false): ScrollbarPosition {\n let scrollbarPosition;\n\n if (!absolute && this._ps) {\n scrollbarPosition = new ScrollbarPosition(\n this._ps.reach.x || 0,\n this._ps.reach.y || 0\n );\n } else {\n scrollbarPosition = new ScrollbarPosition(\n this._elementRef.nativeElement.scrollLeft,\n this._elementRef.nativeElement.scrollTop\n );\n }\n\n return scrollbarPosition;\n }\n\n /**\n * Scroll to\n */\n public scrollTo(x: number, y?: number, speed?: number): void {\n if (y == null && speed == null) {\n this.animateScrolling(\"scrollTop\", x, speed);\n } else {\n if (x != null) {\n this.animateScrolling(\"scrollLeft\", x, speed);\n }\n\n if (y != null) {\n this.animateScrolling(\"scrollTop\", y, speed);\n }\n }\n }\n\n /**\n * Scroll to X\n */\n public scrollToX(x: number, speed?: number): void {\n this.animateScrolling(\"scrollLeft\", x, speed);\n }\n\n /**\n * Scroll to Y\n */\n public scrollToY(y: number, speed?: number): void {\n this.animateScrolling(\"scrollTop\", y, speed);\n }\n\n /**\n * Scroll to top\n */\n public scrollToTop(offset: number = 0, speed?: number): void {\n this.animateScrolling(\"scrollTop\", offset, speed);\n }\n\n /**\n * Scroll to bottom\n */\n public scrollToBottom(offset: number = 0, speed?: number): void {\n const top = this._elementRef.nativeElement.scrollHeight - this._elementRef.nativeElement.clientHeight;\n this.animateScrolling(\"scrollTop\", top - offset, speed);\n }\n\n /**\n * Scroll to left\n */\n public scrollToLeft(offset: number = 0, speed?: number): void {\n this.animateScrolling(\"scrollLeft\", offset, speed);\n }\n\n /**\n * Scroll to right\n */\n public scrollToRight(offset: number = 0, speed?: number): void {\n const left = this._elementRef.nativeElement.scrollWidth - this._elementRef.nativeElement.clientWidth;\n this.animateScrolling(\"scrollLeft\", left - offset, speed);\n }\n\n /**\n * Scroll to element\n */\n public scrollToElement(qs: string, offset: number = 0, ignoreVisible: boolean = false, speed?: number): void {\n const element = this._elementRef.nativeElement.querySelector(qs);\n\n if (!element) {\n return;\n }\n\n const elementPos = element.getBoundingClientRect();\n const scrollerPos = this._elementRef.nativeElement.getBoundingClientRect();\n\n if (this._elementRef.nativeElement.classList.contains(\"ps--active-x\")) {\n if (ignoreVisible && elementPos.right <= (scrollerPos.right - Math.abs(offset))) {\n return;\n }\n\n const currentPos = this._elementRef.nativeElement.scrollLeft;\n const position = elementPos.left - scrollerPos.left + currentPos;\n\n this.animateScrolling(\"scrollLeft\", position + offset, speed);\n }\n\n if (this._elementRef.nativeElement.classList.contains(\"ps--active-y\")) {\n if (ignoreVisible && elementPos.bottom <= (scrollerPos.bottom - Math.abs(offset))) {\n return;\n }\n\n const currentPos = this._elementRef.nativeElement.scrollTop;\n const position = elementPos.top - scrollerPos.top + currentPos;\n\n this.animateScrolling(\"scrollTop\", position + offset, speed);\n }\n }\n\n /**\n * Animate scrolling\n */\n public animateScrolling(target: string, value: number, speed?: number): void {\n if (this._animation) {\n window.cancelAnimationFrame(this._animation);\n this._animation = null;\n }\n\n if (!speed || typeof window === \"undefined\") {\n this._elementRef.nativeElement[target] = value;\n } else if (value !== this._elementRef.nativeElement[target]) {\n let newValue = 0;\n let scrollCount = 0;\n\n let oldTimestamp = performance.now();\n let oldValue = this._elementRef.nativeElement[target];\n\n const cosParameter = (oldValue - value) / 2;\n\n const step = (newTimestamp: number) => {\n scrollCount += Math.PI / (speed / (newTimestamp - oldTimestamp));\n newValue = Math.round(value + cosParameter + cosParameter * Math.cos(scrollCount));\n\n // Only continue animation if scroll position has not changed\n if (this._elementRef.nativeElement[target] === oldValue) {\n if (scrollCount >= Math.PI) {\n this.animateScrolling(target, value, 0);\n } else {\n this._elementRef.nativeElement[target] = newValue;\n\n // On a zoomed out page the resulting offset may differ\n oldValue = this._elementRef.nativeElement[target];\n oldTimestamp = newTimestamp;\n\n this._animation = window.requestAnimationFrame(step);\n }\n }\n };\n\n window.requestAnimationFrame(step);\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Initialize\n */\n private _init(): void {\n // Return if already initialized\n if (this._ps) {\n return;\n }\n\n // Return if on mobile or not on browser\n if (this._platform.ANDROID || this._platform.IOS || !this._platform.isBrowser) {\n this.niceScrollbar = false;\n return;\n }\n\n // Initialize the PerfectScrollbar\n this._ps = new PerfectScrollbar(this._elementRef.nativeElement, {...this._options});\n }\n\n /**\n * Destroy\n */\n private _destroy(): void {\n // Return if not initialized\n if (!this._ps) {\n return;\n }\n\n // Destroy the PerfectScrollbar\n this._ps.destroy();\n\n // Clean up\n this._ps = null;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceScrollbarDirective } from \"./scrollbar.directive\";\n\n@NgModule({\n declarations: [\n NiceScrollbarDirective\n ],\n exports: [\n NiceScrollbarDirective\n ]\n})\nexport class NiceScrollbarModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable()\nexport class NiceNavigationHintService {\n public hasActiveHint$ = new BehaviorSubject(false);\n\n public get hasActiveHint(): boolean {\n return this.hasActiveHint$.value;\n }\n\n public setActiveHint(isActive: boolean): void {\n this.hasActiveHint$.next(isActive);\n }\n}\n","import { FocusMonitor } from \"@angular/cdk/a11y\";\nimport { FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { Platform } from \"@angular/cdk/platform\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { AfterViewInit, Directive, ElementRef, Input, NgZone, OnDestroy, ViewContainerRef } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { _HintComponentBase } from \"../components/hint-component-base\";\nimport { NiceNavigationItem } from \"../navigation.types\";\nimport { NiceNavigationHintService } from \"../providers/hint.service\";\n\n@Directive({ selector: \"[niceShowHint]\" })\nexport class NiceShowHintDirective<T extends _HintComponentBase> implements AfterViewInit, OnDestroy {\n @Input()\n public shouldShow = false;\n\n @Input()\n public item: NiceNavigationItem;\n\n private _pointerExitEventsInitialized = false;\n private _portal: ComponentPortal<any>;\n private _hintInstance: T;\n private _overlayRef: OverlayRef;\n\n private readonly _passiveListeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n private readonly unsubscribeAll$ = new Subject<void>();\n\n constructor(\n private _overlay: Overlay,\n private _elementRef: ElementRef<HTMLElement>,\n private _viewContainerRef: ViewContainerRef,\n private _ngZone: NgZone,\n private _platform: Platform,\n private _focusMonitor: FocusMonitor,\n private _hintService: NiceNavigationHintService\n ) {}\n\n public ngAfterViewInit(): void {\n this._setupPointerEnterEventsIfNeeded();\n\n this._focusMonitor\n .monitor(this._elementRef)\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n this._ngZone.run(() => this.hide());\n } else if (origin === \"keyboard\") {\n this._ngZone.run(() => this.show());\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n public show(): void {\n if (!this.shouldShow || !this.item.hint || this._isHintVisible()) {\n return;\n }\n\n const overlayRef = this._createOverlay();\n this._portal = this._portal || new ComponentPortal<any>(this.item.hint.component);\n this._detach();\n this._hintInstance = overlayRef.attach(this._portal).instance;\n\n this._hintInstance._triggerElement = this._elementRef.nativeElement;\n this._hintInstance\n .afterHidden()\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(() => this._detach());\n\n this._hintService.setActiveHint(true);\n }\n\n public hide(): void {\n const instance = this._hintInstance;\n\n if (instance) {\n if (instance.isVisible()) {\n instance.hide(0);\n } else {\n instance._cancelPendingAnimations();\n this._detach();\n }\n }\n }\n\n private _createOverlay(): OverlayRef {\n if (this._overlayRef) {\n const existingStrategy = this._overlayRef.getConfig()\n .positionStrategy as FlexibleConnectedPositionStrategy;\n\n // @ts-ignore\n if (!origin && existingStrategy._origin instanceof ElementRef) {\n return this._overlayRef;\n }\n\n this._detach();\n }\n\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withPositions([\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n offsetY: 8\n }\n ])\n .withFlexibleDimensions(false);\n\n strategy.positionChanges.pipe(takeUntil(this.unsubscribeAll$)).subscribe(change => {\n if (this._hintInstance) {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this._ngZone.run(() => this.hide());\n }\n }\n });\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy\n });\n\n this._overlayRef\n .detachments()\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(() => this._detach());\n\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(() => this._hintInstance?._handleBodyInteraction());\n\n return this._overlayRef;\n }\n\n private _detach() {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n\n this._hintInstance = null;\n this._hintService.setActiveHint(false);\n }\n\n private _isHintVisible(): boolean {\n return !!this._hintInstance;\n }\n\n private _setupPointerEnterEventsIfNeeded() {\n // Optimization: Defer hooking up events if there's no message or the tooltip is disabled.\n if (this._passiveListeners.length) {\n return;\n }\n\n // The mouse events shouldn't be bound on mobile devices, because they can prevent the\n // first tap from firing its click event or can cause the tooltip to open for clicks.\n if (this._platformSupportsMouseEvents()) {\n this._passiveListeners.push([\n \"mouseenter\",\n () => {\n this._setupPointerExitEventsIfNeeded();\n this.show();\n },\n ]);\n }\n\n this._addListeners(this._passiveListeners);\n }\n\n private _setupPointerExitEventsIfNeeded() {\n if (this._pointerExitEventsInitialized) {\n return;\n }\n this._pointerExitEventsInitialized = true;\n\n const exitListeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n if (this._platformSupportsMouseEvents()) {\n exitListeners.push(\n [\n \"mouseleave\",\n event => {\n const newTarget = (event as MouseEvent).relatedTarget as Node | null;\n if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {\n this.hide();\n }\n },\n ]\n );\n }\n\n this._addListeners(exitListeners);\n this._passiveListeners.push(...exitListeners);\n }\n\n private _platformSupportsMouseEvents() {\n return !this._platform.IOS && !this._platform.ANDROID;\n }\n\n private _addListeners(listeners: (readonly [string, EventListenerOrEventListenerObject])[]) {\n listeners.forEach(([event, listener]) => {\n this._elementRef.nativeElement.addEventListener(event, listener);\n });\n }\n}\n","import { Injector, Pipe, PipeTransform } from \"@angular/core\";\nimport { Observable, combineLatest, of } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { NiceNavigationItem } from \"../navigation.types\";\n\n@Pipe({ name: \"niceShouldShowHint\" })\nexport class NiceShouldShowHintPipe implements PipeTransform {\n constructor(private injector: Injector) {}\n\n public transform(value: NiceNavigationItem | NiceNavigationItem[]): Observable<boolean> {\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n return combineLatest(value.map(x => this.transformHint(x))).pipe(map(res => res.some(x => x)));\n }\n\n private transformHint(value: NiceNavigationItem): Observable<boolean> {\n if (!value.hint) {\n return of(false);\n }\n\n const resolver = this.injector.get(value.hint.resolver);\n if (!resolver) {\n return of(false);\n }\n\n return resolver.shouldShowHint();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { NiceUtilsService } from \"../../../../../providers/utils\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-basic-item\",\n templateUrl: \"./basic.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceVerticalNavigationBasicItemComponent implements OnInit, OnDestroy{\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n public itemActive$ = this._route.url.pipe(\n map(() => {\n const url = this._router.url.split(\"?\").shift();\n if (this.item.exactMatch === true) {\n return url === this.item.link;\n }\n return url.startsWith(this.item.link) && url.length >= this.item.link.length;\n })\n );\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService,\n private _niceUtilsService: NiceUtilsService,\n private _route: ActivatedRoute,\n private _router: Router\n ) {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n matTooltipClass=\"nice-vertical-navigation-item-tooltips\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | niceTranslateWithContext\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n\n <!-- Item with an internal link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-vertical-navigation-item nice-vertical-navigation-item-disabled\"\n *ngIf=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <ng-container *ngIf=\"{ showHint: item | niceShouldShowHint | async } as ctx\">\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\">\n <ng-container *ngIf=\"itemActive$ | async; else notActive\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.activeIcon || item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.activeIcon || item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.activeIcon || item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-container>\n\n <ng-template #notActive>\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-template>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\" niceShowHint [shouldShow]=\"ctx.showHint\" [item]=\"item\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n\n <div *ngIf=\"ctx.showHint\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </ng-container>\n</ng-template>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-divider-item\",\n templateUrl: \"./divider.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceVerticalNavigationDividerItemComponent implements OnInit, OnDestroy {\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Divider -->\n<div\n class=\"nice-vertical-navigation-item-wrapper divider\"\n [ngClass]=\"item.classes?.wrapper\"\n></div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-spacer-item\",\n templateUrl: \"./spacer.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceVerticalNavigationSpacerItemComponent implements OnInit, OnDestroy {\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Spacer -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [ngClass]=\"item.classes?.wrapper\"\n></div>\n","import { BooleanInput } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit\n} from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { niceAnimations } from \"../../../../../animations\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-collapsable-item\",\n templateUrl: \"./collapsable.component.html\",\n styles: [],\n animations: niceAnimations,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceVerticalNavigationCollapsableItemComponent implements OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_autoCollapse: BooleanInput;\n\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public autoCollapse: boolean;\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n public isCollapsed = true;\n public isExpanded = false;\n\n public hasChildActivated$ = new BehaviorSubject(false);\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _router: Router,\n private _niceNavigationService: NiceNavigationService\n ) {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"nice-vertical-navigation-item-collapsed\": this.isCollapsed,\n \"nice-vertical-navigation-item-expanded\": this.isExpanded\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // If the item has a children that has a matching url with the current url, expand...\n if (this._hasActiveChild(this.item, this._router.url)) {\n this.hasChildActivated$.next(true);\n this.expand();\n }\n // Otherwise...\n else {\n // If the autoCollapse is on, collapse...\n if (this.autoCollapse) {\n this.hasChildActivated$.next(false);\n this.collapse();\n }\n }\n\n // Listen for the onCollapsableItemCollapsed from the service\n this._niceVerticalNavigationComponent.onCollapsableItemCollapsed\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((collapsedItem) => {\n\n // Check if the collapsed item is null\n if (collapsedItem === null) {\n return;\n }\n\n // Collapse if this is a children of the collapsed item\n if (this._isChildrenOf(collapsedItem, this.item)) {\n this.collapse();\n }\n });\n\n // Listen for the onCollapsableItemExpanded from the service if the autoCollapse is on\n if (this.autoCollapse) {\n this._niceVerticalNavigationComponent.onCollapsableItemExpanded\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((expandedItem) => {\n\n // Check if the expanded item is null\n if (expandedItem === null) {\n return;\n }\n\n // Check if this is a parent of the expanded item\n if (this._isChildrenOf(this.item, expandedItem)) {\n return;\n }\n\n // Check if this has a children with a matching url with the current active url\n if (this._hasActiveChild(this.item, this._router.url)) {\n return;\n }\n\n // Check if this is the expanded item\n if (this.item === expandedItem) {\n return;\n }\n\n // If none of the above conditions are matched, collapse this item\n this.collapse();\n });\n }\n\n // Attach a listener to the NavigationEnd event\n this._router.events\n .pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe((event: NavigationEnd) => {\n\n // If the item has a children that has a matching url with the current url, expand...\n if (this._hasActiveChild(this.item, event.urlAfterRedirects)) {\n this.hasChildActivated$.next(true);\n this.expand();\n }\n // Otherwise...\n else {\n this.hasChildActivated$.next(false);\n\n // If the autoCollapse is on, collapse...\n if (this.autoCollapse) {\n this.collapse();\n }\n }\n });\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Check if the given item has the given url\n * in one of its children\n */\n private _hasActiveChild(item: NiceNavigationItem, currentUrl: string): boolean {\n const children = item.children;\n\n if (!children) {\n return false;\n }\n\n for (const child of children) {\n if (child.children) {\n if (this._hasActiveChild(child, currentUrl)) {\n return true;\n }\n }\n\n // Check if the child has a link and is active\n if (child.link && this._router.isActive(child.link, child.exactMatch || false)) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Check if this is a children\n * of the given item\n */\n private _isChildrenOf(parent: NiceNavigationItem, item: NiceNavigationItem): boolean {\n const children = parent.children;\n\n if (!children) {\n return false;\n }\n\n if (children.indexOf(item) > -1) {\n return true;\n }\n\n for (const child of children) {\n if (child.children) {\n if (this._isChildrenOf(child, item)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Collapse\n */\n public collapse(): void {\n // Return if the item is disabled\n if (this.item.disabled) {\n return;\n }\n\n // Return if the item is already collapsed\n if (this.isCollapsed) {\n return;\n }\n\n // Collapse it\n this.isCollapsed = true;\n this.isExpanded = !this.isCollapsed;\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n\n // Execute the observable\n this._niceVerticalNavigationComponent.onCollapsableItemCollapsed.next(this.item);\n }\n\n /**\n * Expand\n */\n public expand(): void {\n // Return if the item is disabled\n if (this.item.disabled) {\n return;\n }\n\n // Return if the item is already expanded\n if (!this.isCollapsed) {\n return;\n }\n\n // Expand it\n this.isCollapsed = false;\n this.isExpanded = !this.isCollapsed;\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n\n // Execute the observable\n this._niceVerticalNavigationComponent.onCollapsableItemExpanded.next(this.item);\n }\n\n /**\n * Toggle collapsable\n */\n public toggleCollapsable(): void {\n // Toggle collapse/expand\n if (this.isCollapsed) {\n this.expand();\n } else {\n this.collapse();\n }\n }\n\n /**\n * Track by function for ngFor loops\n */\n public trackByFn(index: number, item: any): any {\n return item.id || index;\n }\n}\n","<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n","import { BooleanInput } from \"@angular/cdk/coercion\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-group-item\",\n templateUrl: \"./group.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceVerticalNavigationGroupItemComponent implements OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_autoCollapse: BooleanInput;\n\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public autoCollapse: boolean;\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n \n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Track by function for ngFor loops\n */\n public trackByFn(index: number, item: any): any {\n return item.id || index;\n }\n}\n","<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div class=\"nice-vertical-navigation-item\">\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\" *ngIf=\"item.title || item.subtitle\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n</ng-container>\n","import { BooleanInput } from \"@angular/cdk/coercion\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-aside-item\",\n templateUrl: \"./aside.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceVerticalNavigationAsideItemComponent implements OnChanges, OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_autoCollapse: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_skipChildren: BooleanInput;\n\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public activeItemId: string;\n\n @Input()\n public autoCollapse: boolean;\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public skipChildren: boolean;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n public active = false;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _router: Router,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Active item id\n if (\"activeItemId\" in changes) {\n // Mark if active\n this._markIfActive(this._router.url);\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Mark if active\n this._markIfActive(this._router.url);\n\n // Attach a listener to the NavigationEnd event\n this._router.events\n .pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe((event: NavigationEnd) => {\n\n // Mark if active\n this._markIfActive(event.urlAfterRedirects);\n });\n\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Check if the given item has the given url\n * in one of its children\n */\n private _hasActiveChild(item: NiceNavigationItem, currentUrl: string): boolean {\n const children = item.children;\n\n if (!children) {\n return false;\n }\n\n for (const child of children) {\n if (child.children) {\n if (this._hasActiveChild(child, currentUrl)) {\n return true;\n }\n }\n\n // Skip items other than 'basic'\n if (child.type !== \"basic\") {\n continue;\n }\n\n // Check if the child has a link and is active\n if (child.link && this._router.isActive(child.link, child.exactMatch || false)) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Decide and mark if the item is active\n */\n private _markIfActive(currentUrl: string): void {\n // Check if the activeItemId is equals to this item id\n this.active = this.activeItemId === this.item.id;\n\n // If the aside has a children that is active,\n // always mark it as active\n if (this._hasActiveChild(this.item, currentUrl)) {\n this.active = true;\n }\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Track by function for ngFor loops\n */\n public trackByFn(index: number, item: any): any {\n return item.id || index;\n }\n}\n","<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n","import { animate, AnimationBuilder, AnimationPlayer, style } from \"@angular/animations\";\nimport { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { ScrollStrategy, ScrollStrategyOptions } from \"@angular/cdk/overlay\";\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { merge, ReplaySubject, Subscription } from \"rxjs\";\nimport { delay, filter, takeUntil } from \"rxjs/operators\";\nimport { niceAnimations } from \"../../../animations\";\nimport { NiceScrollbarDirective } from \"../../../directives/scrollbar\";\nimport { NiceUtilsService } from \"../../../providers/utils\";\nimport { NiceNavigationComponent } from \"../navigation.component\";\nimport { NiceNavigationService } from \"../navigation.service\";\nimport {\n NiceNavigationItem,\n NiceVerticalNavigationAppearance,\n NiceVerticalNavigationMode,\n NiceVerticalNavigationPosition\n} from \"../navigation.types\";\nimport { NiceNavigationHintService } from \"../providers/hint.service\";\nimport { NiceTranslationContextService } from \"../providers/translation-context.service\";\n\n@Component({\n selector: \"nice-vertical-navigation\",\n templateUrl: \"./vertical.component.html\",\n animations: niceAnimations,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NiceTranslationContextService],\n exportAs: \"niceVerticalNavigation\"\n})\nexport class NiceVerticalNavigationComponent extends NiceNavigationComponent implements OnChanges, OnInit, AfterViewInit {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_inner: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_opened: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_transparentOverlay: BooleanInput;\n\n private _forceHovered = false;\n private _animationsEnabled = false;\n private _asideOverlay: HTMLElement;\n private readonly _handleAsideOverlayClick: any;\n private readonly _handleOverlayClick: any;\n private _overlay: HTMLElement;\n private _player: AnimationPlayer;\n private _scrollStrategy: ScrollStrategy = this._scrollStrategyOptions.block();\n private _niceScrollbarDirectives!: QueryList<NiceScrollbarDirective>;\n private _niceScrollbarDirectivesSubscription: Subscription;\n\n @Input()\n public name: string = this._niceUtilsService.randomId();\n\n @Input()\n public appearance: NiceVerticalNavigationAppearance = \"default\";\n\n @Input()\n public autoCollapse = true;\n\n @Input()\n public inner = false;\n\n @Input()\n public mode: NiceVerticalNavigationMode = \"side\";\n\n @Input()\n public opened = true;\n\n @Input()\n public hovered = false;\n\n @Input()\n public hasHint = false;\n\n @Input()\n public position: NiceVerticalNavigationPosition = \"left\";\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public transparentOverlay = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n @Input()\n public translationContext: Record<string, any>;\n\n @Output()\n public readonly appearanceChanged = new EventEmitter<NiceVerticalNavigationAppearance>();\n\n @Output()\n public readonly modeChanged = new EventEmitter<NiceVerticalNavigationMode>();\n\n @Output()\n public readonly openedChanged = new EventEmitter<boolean>();\n\n @Output()\n public readonly hoveredChanged = new EventEmitter<boolean>();\n\n @Output()\n public readonly positionChanged = new EventEmitter<NiceVerticalNavigationPosition>();\n\n @ViewChild(\"navigationContent\")\n private _navigationContentEl: ElementRef;\n\n @Input()\n public set navigation(navigation: NiceNavigationItem[]) {\n this._navigation = navigation;\n this._changeDetectorRef.markForCheck();\n }\n public get navigation(): NiceNavigationItem[] {\n return this._navigation;\n }\n\n public set forceHovered(forceHovered: boolean) {\n this._forceHovered = forceHovered;\n this.hoveredChanged.next((this.hovered || this._forceHovered) || this.hasHint);\n this._changeDetectorRef.markForCheck();\n }\n\n public activeAsideItemId: string | null = null;\n public onCollapsableItemCollapsed = new ReplaySubject<NiceNavigationItem>(1);\n public onCollapsableItemExpanded = new ReplaySubject<NiceNavigationItem>(1);\n\n /**\n * Constructor\n */\n constructor(\n _changeDetectorRef: ChangeDetectorRef,\n _niceNavigationService: NiceNavigationService,\n _niceUtilsService: NiceUtilsService,\n _translationContextService: NiceTranslationContextService,\n private _animationBuilder: AnimationBuilder,\n private _elementRef: ElementRef,\n private _renderer2: Renderer2,\n private _router: Router,\n private _scrollStrategyOptions: ScrollStrategyOptions,\n private _hintService: NiceNavigationHintService\n ) {\n super(_changeDetectorRef, _niceNavigationService, _niceUtilsService, _translationContextService);\n\n this._handleAsideOverlayClick = () => {\n this.closeAside();\n };\n this._handleOverlayClick = () => {\n this.close();\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"nice-vertical-navigation-animations-enabled\": this._animationsEnabled,\n [`nice-vertical-navigation-appearance-${this.appearance}`]: true,\n \"nice-vertical-navigation-hover\": this.hovered || this._forceHovered,\n \"nice-vertical-navigation-inner\": this.inner,\n \"nice-vertical-navigation-mode-over\": this.mode === \"over\",\n \"nice-vertical-navigation-mode-side\": this.mode === \"side\",\n \"nice-vertical-navigation-opened\": this.opened,\n \"nice-vertical-navigation-position-left\": this.position === \"left\",\n \"nice-vertical-navigation-position-right\": this.position === \"right\",\n \"nice-vertical-navigation-has-hint\": this.hasHint\n };\n }\n\n /**\n * Host binding for component inline styles\n */\n @HostBinding(\"style\")\n public get styleList(): any {\n return {\n \"visibility\": this.opened ? \"visible\" : \"hidden\"\n };\n }\n\n /**\n * Setter for niceScrollbarDirectives\n */\n @ViewChildren(NiceScrollbarDirective)\n public set niceScrollbarDirectives(niceScrollbarDirectives: QueryList<NiceScrollbarDirective>) {\n // Store the directives\n this._niceScrollbarDirectives = niceScrollbarDirectives;\n\n // Return if there are no directives\n if (niceScrollbarDirectives.length === 0) {\n return;\n }\n\n // Unsubscribe the previous subscriptions\n if (this._niceScrollbarDirectivesSubscription) {\n this._niceScrollbarDirectivesSubscription.unsubscribe();\n }\n\n // Update the scrollbars on collapsable items' collapse/expand\n this._niceScrollbarDirectivesSubscription =\n merge(\n this.onCollapsableItemCollapsed,\n this.onCollapsableItemExpanded\n )\n .pipe(\n takeUntil(this._unsubscribeAll),\n delay(250)\n )\n .subscribe(() => {\n\n // Loop through the scrollbars and update them\n niceScrollbarDirectives.forEach((niceScrollbarDirective) => {\n niceScrollbarDirective.update();\n });\n });\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n *\n * @param changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n\n // Appearance\n if (\"appearance\" in changes) {\n // Execute the observable\n this.appearanceChanged.next(changes.appearance.currentValue);\n }\n\n // Inner\n if (\"inner\" in changes) {\n // Coerce the value to a boolean\n this.inner = coerceBooleanProperty(changes.inner.currentValue);\n }\n\n // Mode\n if (\"mode\" in changes) {\n // Get the previous and current values\n const currentMode = changes.mode.currentValue;\n const previousMode = changes.mode.previousValue;\n\n // Disable the animations\n this._disableAnimations();\n\n // If the mode changes: 'over -> side'\n if (previousMode === \"over\" && currentMode === \"side\") {\n // Hide the overlay\n this._hideOverlay();\n }\n\n // If the mode changes: 'side -> over'\n if (previousMode === \"side\" && currentMode === \"over\") {\n // Close the aside\n this.closeAside();\n\n // If the navigation is opened\n if (this.opened) {\n // Show the overlay\n this._showOverlay();\n }\n }\n\n // Execute the observable\n this.modeChanged.next(currentMode);\n\n // Enable the animations after a delay\n // The delay must be bigger than the current transition-duration\n // to make sure nothing will be animated while the mode changing\n setTimeout(() => {\n this._enableAnimations();\n }, 500);\n }\n\n // Opened\n if (\"opened\" in changes) {\n // Coerce the value to a boolean\n this.opened = coerceBooleanProperty(changes.opened.currentValue);\n\n // Open/close the navigation\n this._toggleOpened(this.opened);\n }\n\n // Position\n if (\"position\" in changes) {\n // Execute the observable\n this.positionChanged.next(changes.position.currentValue);\n }\n\n // Transparent overlay\n if (\"transparentOverlay\" in changes) {\n // Coerce the value to a boolean\n this.transparentOverlay = coerceBooleanProperty(changes.transparentOverlay.currentValue);\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n super.ngOnInit();\n\n // Make sure the name input is not an empty string\n if (this.name === \"\") {\n this.name = this._niceUtilsService.randomId();\n }\n\n // Subscribe to the 'NavigationEnd' event\n this._router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe(() => {\n // If the mode is 'over' and the navigation is opened...\n if (this.mode === \"over\" && this.opened) {\n // Close the navigation\n this.close();\n }\n\n // If the mode is 'side' and the aside is active...\n if (this.mode === \"side\" && this.activeAsideItemId) {\n // Close the aside\n this.closeAside();\n }\n });\n\n this._hintService.hasActiveHint$.pipe(takeUntil(this._unsubscribeAll)).subscribe(hasHint => {\n this.hasHint = hasHint;\n this.hoveredChanged.next((this.hovered || this._forceHovered) || this.hasHint);\n });\n }\n\n /**\n * After view init\n */\n public ngAfterViewInit(): void {\n setTimeout(() => {\n\n // Return if 'navigation content' element does not exist\n if (!this._navigationContentEl) {\n return;\n }\n\n // If 'navigation content' element doesn't have\n // perfect scrollbar activated on it...\n if (!this._navigationContentEl.nativeElement.classList.contains(\"ps\")) {\n // Find the active item\n const activeItem = this._navigationContentEl.nativeElement.querySelector(\".nice-vertical-navigation-item-active\");\n\n // If the active item exists, scroll it into view\n if (activeItem) {\n activeItem.scrollIntoView();\n }\n }\n // Otherwise\n else {\n // Go through all the scrollbar directives\n this._niceScrollbarDirectives.forEach((niceScrollbarDirective) => {\n\n // Skip if not enabled\n if (!niceScrollbarDirective.isEnabled()) {\n return;\n }\n\n // Scroll to the active element\n niceScrollbarDirective.scrollToElement(\".nice-vertical-navigation-item-active\", -120, true);\n });\n }\n });\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Open the navigation\n */\n public open(): void {\n // Return if the navigation is already open\n if (this.opened) {\n return;\n }\n\n // Set the opened\n this._toggleOpened(true);\n }\n\n /**\n * Close the navigation\n */\n public close(): void {\n // Return if the navigation is already closed\n if (!this.opened) {\n return;\n }\n\n // Close the aside\n this.closeAside();\n\n // Set the opened\n this._toggleOpened(false);\n }\n\n /**\n * Toggle the navigation\n */\n public toggle(): void {\n // Toggle\n if (this.opened) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Open the aside\n */\n public openAside(item: NiceNavigationItem): void {\n // Return if the item is disabled\n if (item.disabled || !item.id) {\n return;\n }\n\n // Open\n this.activeAsideItemId = item.id;\n\n // Show the aside overlay\n this._showAsideOverlay();\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Close the aside\n */\n public closeAside(): void {\n // Close\n this.activeAsideItemId = null;\n\n // Hide the aside overlay\n this._hideAsideOverlay();\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Toggle the aside\n */\n public toggleAside(item: NiceNavigationItem): void {\n // Toggle\n if (this.activeAsideItemId === item.id) {\n this.closeAside();\n } else {\n this.openAside(item);\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Enable the animations\n *\n * @private\n */\n private _enableAnimations(): void {\n // Return if the animations are already enabled\n if (this._animationsEnabled) {\n return;\n }\n\n // Enable the animations\n this._animationsEnabled = true;\n }\n\n /**\n * Disable the animations\n *\n * @private\n */\n private _disableAnimations(): void {\n // Return if the animations are already disabled\n if (!this._animationsEnabled) {\n return;\n }\n\n // Disable the animations\n this._animationsEnabled = false;\n }\n\n /**\n * Show the overlay\n *\n * @private\n */\n private _showOverlay(): void {\n // Return if there is already an overlay\n if (this._asideOverlay) {\n return;\n }\n\n // Create the overlay element\n this._overlay = this._renderer2.createElement(\"div\");\n\n // Add a class to the overlay element\n this._overlay.classList.add(\"nice-vertical-navigation-overlay\");\n\n // Add a class depending on the transparentOverlay option\n if (this.transparentOverlay) {\n this._overlay.classList.add(\"nice-vertical-navigation-overlay-transparent\");\n }\n\n // Append the overlay to the parent of the navigation\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._overlay);\n\n // Enable block scroll strategy\n this._scrollStrategy.enable();\n\n // Create the enter animation and attach it to the player\n this._player = this._animationBuilder.build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 1}))\n ]).create(this._overlay);\n\n // Play the animation\n this._player.play();\n\n // Add an event listener to the overlay\n this._overlay.addEventListener(\"click\", this._handleOverlayClick);\n }\n\n /**\n * Hide the overlay\n *\n * @private\n */\n private _hideOverlay(): void {\n if (!this._overlay) {\n return;\n }\n\n // Create the leave animation and attach it to the player\n this._player = this._animationBuilder.build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 0}))\n ]).create(this._overlay);\n\n // Play the animation\n this._player.play();\n\n // Once the animation is done...\n this._player.onDone(() => {\n\n // If the overlay still exists...\n if (this._overlay) {\n // Remove the event listener\n this._overlay.removeEventListener(\"click\", this._handleOverlayClick);\n\n // Remove the overlay\n this._overlay.parentNode.removeChild(this._overlay);\n this._overlay = null;\n }\n\n // Disable block scroll strategy\n this._scrollStrategy.disable();\n });\n }\n\n /**\n * Show the aside overlay\n *\n * @private\n */\n private _showAsideOverlay(): void {\n // Return if there is already an overlay\n if (this._asideOverlay) {\n return;\n }\n\n // Create the aside overlay element\n this._asideOverlay = this._renderer2.createElement(\"div\");\n\n // Add a class to the aside overlay element\n this._asideOverlay.classList.add(\"nice-vertical-navigation-aside-overlay\");\n\n // Append the aside overlay to the parent of the navigation\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._asideOverlay);\n\n // Create the enter animation and attach it to the player\n this._player =\n this._animationBuilder\n .build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 1}))\n ]).create(this._asideOverlay);\n\n // Play the animation\n this._player.play();\n\n // Add an event listener to the aside overlay\n this._asideOverlay.addEventListener(\"click\", this._handleAsideOverlayClick);\n }\n\n /**\n * Hide the aside overlay\n *\n * @private\n */\n private _hideAsideOverlay(): void {\n if (!this._asideOverlay) {\n return;\n }\n\n // Create the leave animation and attach it to the player\n this._player =\n this._animationBuilder\n .build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 0}))\n ]).create(this._asideOverlay);\n\n // Play the animation\n this._player.play();\n\n // Once the animation is done...\n this._player.onDone(() => {\n\n // If the aside overlay still exists...\n if (this._asideOverlay) {\n // Remove the event listener\n this._asideOverlay.removeEventListener(\"click\", this._handleAsideOverlayClick);\n\n // Remove the aside overlay\n this._asideOverlay.parentNode.removeChild(this._asideOverlay);\n this._asideOverlay = null;\n }\n });\n }\n\n /**\n * On mouseenter\n */\n @HostListener(\"mouseenter\")\n public _onMouseenter(): void {\n // Enable the animations\n this._enableAnimations();\n\n // Set the hovered\n this.hovered = true;\n this.hoveredChanged.next(this.hovered || this._forceHovered);\n }\n\n /**\n * On mouseleave\n */\n @HostListener(\"mouseleave\")\n public _onMouseleave(): void {\n // Enable the animations\n this._enableAnimations();\n\n // Set the hovered\n this.hovered = false;\n this.hoveredChanged.next(this.hovered || this._forceHovered || this.hasHint);\n }\n\n /**\n * Open/close the navigation\n *\n * @param open\n * @private\n */\n private _toggleOpened(open: boolean): void {\n // Set the opened\n this.opened = open;\n\n // Enable the animations\n this._enableAnimations();\n\n // If the navigation opened, and the mode\n // is 'over', show the overlay\n if (this.mode === \"over\") {\n if (this.opened) {\n this._showOverlay();\n } else {\n this._hideOverlay();\n }\n }\n\n // Execute the observable\n this.openedChanged.next(open);\n }\n}\n","<div class=\"nice-vertical-navigation-wrapper\">\n <!-- Header -->\n <div class=\"nice-vertical-navigation-header\">\n <ng-content select=\"[niceVerticalNavigationHeader]\"></ng-content>\n </div>\n\n <!-- Content -->\n <div\n class=\"nice-vertical-navigation-content\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: inner, suppressScrollX: true }\"\n #navigationContent\n >\n <!-- Content header -->\n <div class=\"nice-vertical-navigation-content-header\">\n <ng-content select=\"[niceVerticalNavigationContentHeader]\"></ng-content>\n </div>\n\n <!-- Items -->\n <div *ngFor=\"let item of navigation; trackBy: trackByFn\" [@.disabled]=\"!animateNextNavChange\" @slideInRight>\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside'\"\n [item]=\"item\"\n [name]=\"name\"\n [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\"\n [skipChildren]=\"true\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"toggleAside(item)\"\n ></nice-vertical-navigation-aside-item>\n\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </div>\n\n <!-- Content footer -->\n <div class=\"nice-vertical-navigation-content-footer\">\n <ng-content select=\"[niceVerticalNavigationContentFooter]\"></ng-content>\n </div>\n\n </div>\n\n <!-- Footer -->\n <div class=\"nice-vertical-navigation-footer\">\n <ng-content select=\"[niceVerticalNavigationFooter]\"></ng-content>\n </div>\n</div>\n\n<!-- Aside -->\n<div\n class=\"nice-vertical-navigation-aside-wrapper\"\n *ngIf=\"activeAsideItemId\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: false, suppressScrollX: true }\"\n [@fadeInLeft]=\"position === 'left'\"\n [@fadeInRight]=\"position === 'right'\"\n [@fadeOutLeft]=\"position === 'left'\"\n [@fadeOutRight]=\"position === 'right'\"\n>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside' && item.id === activeAsideItemId\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-aside-item>\n </ng-container>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { RouterModule } from \"@angular/router\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceScrollbarModule } from \"../../directives/scrollbar\";\nimport { NiceShowHintDirective } from \"./directives/show-hint.directive\";\nimport { NiceHorizontalNavigationBasicItemComponent } from \"./horizontal/components/basic/basic.component\";\nimport { NiceHorizontalNavigationBranchItemComponent } from \"./horizontal/components/branch/branch.component\";\nimport { NiceHorizontalNavigationDividerItemComponent } from \"./horizontal/components/divider/divider.component\";\nimport { NiceHorizontalNavigationSpacerItemComponent } from \"./horizontal/components/spacer/spacer.component\";\nimport { NiceHorizontalNavigationComponent } from \"./horizontal/horizontal.component\";\nimport { NiceNavigationComponent } from \"./navigation.component\";\nimport { NiceShouldHidePipe } from \"./pipes/should-hide.pipe\";\nimport { NiceShouldShowHintPipe } from \"./pipes/should-show-hint.pipe\";\nimport { NiceTranslateWithContextPipe } from \"./pipes/translate-with-context.pipe\";\nimport { NiceNavigationHintService } from \"./providers/hint.service\";\nimport { NiceVerticalNavigationAsideItemComponent } from \"./vertical/components/aside/aside.component\";\nimport { NiceVerticalNavigationBasicItemComponent } from \"./vertical/components/basic/basic.component\";\nimport { NiceVerticalNavigationCollapsableItemComponent } from \"./vertical/components/collapsable/collapsable.component\";\nimport { NiceVerticalNavigationDividerItemComponent } from \"./vertical/components/divider/divider.component\";\nimport { NiceVerticalNavigationGroupItemComponent } from \"./vertical/components/group/group.component\";\nimport { NiceVerticalNavigationSpacerItemComponent } from \"./vertical/components/spacer/spacer.component\";\nimport { NiceVerticalNavigationComponent } from \"./vertical/vertical.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n MatButtonModule,\n MatDividerModule,\n MatIconModule,\n MatMenuModule,\n MatTooltipModule,\n NiceScrollbarModule,\n TranslateModule,\n ],\n declarations: [\n NiceNavigationComponent,\n NiceHorizontalNavigationBasicItemComponent,\n NiceHorizontalNavigationBranchItemComponent,\n NiceHorizontalNavigationDividerItemComponent,\n NiceHorizontalNavigationSpacerItemComponent,\n NiceHorizontalNavigationComponent,\n NiceVerticalNavigationAsideItemComponent,\n NiceVerticalNavigationBasicItemComponent,\n NiceVerticalNavigationCollapsableItemComponent,\n NiceVerticalNavigationDividerItemComponent,\n NiceVerticalNavigationGroupItemComponent,\n NiceVerticalNavigationSpacerItemComponent,\n NiceVerticalNavigationComponent,\n\n NiceShouldHidePipe,\n NiceShouldShowHintPipe,\n NiceTranslateWithContextPipe,\n NiceShowHintDirective\n ],\n providers: [NiceNavigationHintService],\n exports: [\n NiceHorizontalNavigationComponent,\n NiceVerticalNavigationComponent\n ]\n})\nexport class NiceNavigationModule {}\n","import { Observable } from \"rxjs\";\nimport { NiceNavigationItem } from \"../navigation.types\";\n\nexport abstract class NavigationHideItemResolver {\n public abstract shouldHide(item: NiceNavigationItem): Observable<boolean>;\n}\n","import { Observable } from \"rxjs\";\n\nexport abstract class NavigationHintResolver {\n public abstract shouldShowHint(): Observable<boolean>;\n}\n","import { Component, EventEmitter, forwardRef, HostBinding, Input, Output } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { niceAnimations } from \"../../animations\";\n\n@Component({\n selector: \"nice-search-bar\",\n templateUrl: \"./search-bar.template.html\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NiceSearchBarComponent),\n multi: true\n }\n ],\n animations: niceAnimations\n})\nexport class NiceSearchBarComponent implements ControlValueAccessor {\n @Input()\n public collapsed = true;\n\n @Output()\n public collapse = new EventEmitter<boolean>();\n\n public searchValue: string;\n public opened = false;\n\n private propagateChanges = (value: string) => {};\n\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"search-opened\": this.opened\n };\n }\n\n public toggleCollapsed(): void {\n this.collapsed = !this.collapsed;\n this.collapse.emit(this.collapsed);\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.propagateChanges = fn;\n }\n\n public registerOnTouched(fn: any): void {\n // NO-OP\n }\n\n public writeValue(value: string): void {\n this.searchValue = value;\n }\n\n public onSearchChange(value: string) {\n this.propagateChanges(value);\n }\n\n public open(): void {\n if (this.opened) {\n return;\n }\n\n this.opened = true;\n }\n\n public close(): void {\n if (!this.opened) {\n return;\n }\n\n this.searchValue = \"\";\n this.opened = false;\n }\n}\n","<button mat-icon-button *ngIf=\"!opened\" (click)=\"open()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n</button>\n\n<div class=\"absolute inset-0 flex items-center flex-shrink-0 z-99 bg-default\" *ngIf=\"opened\" @slideInTop @slideOutTop >\n <mat-icon class=\"absolute ml-6 sm:ml-8\" [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n <input class=\"w-full h-full px-16 sm:px-18 bg-transparent\" [ngModel]=\"searchValue\" (ngModelChange)=\"onSearchChange($event)\">\n <button class=\"absolute top-1/2 right-5 sm:right-7 flex-shrink-0 w-10 h-10 -mt-5\" mat-icon-button (click)=\"close()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:x'\"></mat-icon>\n </button>\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { NiceSearchBarComponent } from \"./search-bar.component\";\nimport { FormsModule } from \"@angular/forms\";\n\n@NgModule({\n declarations: [\n NiceSearchBarComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n\n MatButtonModule,\n MatIconModule,\n FormsModule\n ],\n exports: [\n NiceSearchBarComponent\n ]\n})\nexport class NiceSearchBarModule {\n}\n","import { Component, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\nexport interface NiceAlertConfig {\n type: \"success\" | \"warning\" | \"info\";\n title?: string;\n message?: string;\n buttons: string[];\n}\n\n@Component({\n selector: \"nice-alert\",\n templateUrl: \"sweet-alert.template.html\",\n styleUrls: [\"sweet-alert.style.scss\"],\n encapsulation: ViewEncapsulation.None\n})\nexport class NiceSweetAlertComponent implements OnInit {\n public lottieConfig = {\n path: \"assets/animations/success.json\",\n autoplay: true,\n loop: false\n };\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public alertConfig: NiceAlertConfig,\n private dialogRef: MatDialogRef<NiceSweetAlertComponent>\n ) {\n this.lottieConfig.path = this.getAnimationPath();\n }\n\n public ngOnInit() {}\n\n public handleAnimation(animation) {\n animation.setSpeed(1.0);\n }\n\n public confirm() {\n this.dialogRef.close(true);\n }\n\n public close() {\n this.dialogRef.close(false);\n }\n\n public getAnimationPath(): string {\n switch (this.alertConfig.type) {\n case \"success\":\n return \"assets/animations/success.json\";\n case \"warning\":\n return \"assets/animations/warning.json\";\n case \"info\":\n return \"assets/animations/info.json\";\n }\n }\n\n public getConfirmButtonClass(): string {\n switch (this.alertConfig.type) {\n case \"success\":\n return \"mat-accent\";\n case \"warning\":\n return \"mat-warn\";\n case \"info\":\n return \"bg-light-blue-500\";\n }\n }\n}\n","<mat-dialog-content class=\"mat-typography mb-12 text-center\">\n <nice-lottie\n [options]=\"lottieConfig\"\n [width]=\"250\"\n (animCreated)=\"handleAnimation($event)\"\n ></nice-lottie>\n <h2 class=\"mt-8\">{{ alertConfig?.title }}</h2>\n <span [innerHTML]=\"alertConfig?.message\"></span>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <ng-container *ngFor=\"let button of alertConfig.buttons; let i = index\">\n <button mat-raised-button class=\"mr-4\" [ngClass]=\"getConfirmButtonClass()\" *ngIf=\"i === 0\" (click)=\"confirm()\">\n {{ button }}\n </button>\n <button mat-button (click)=\"close()\" *ngIf=\"i !== 0\">{{ button }}</button>\n </ng-container>\n</mat-dialog-actions>\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_ALERT_OPTIONS = new InjectionToken(\"nice_alert_options\");\n","import { Inject, Injectable, Optional, Type } from \"@angular/core\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { map, switchMap } from \"rxjs/operators\";\nimport { NiceSweetAlertComponent } from \"./sweet-alert.component\";\nimport { Observable } from \"rxjs\";\nimport { NICE_ALERT_OPTIONS } from \"./sweet-alert.constant\";\n\nexport interface NiceSweetAlertOptions {\n customModal?: Type<any>;\n}\n\nexport interface NiceSweetAlertParams {\n translationPath?: string;\n titleKey: string;\n messageKey?: string;\n buttonsKey: string[];\n params?: object;\n}\n\n@Injectable()\nexport class NiceSweetAlertService {\n private readonly modal: Type<any>;\n\n constructor(\n @Optional() @Inject(NICE_ALERT_OPTIONS) private options: NiceSweetAlertOptions,\n private matDialog: MatDialog,\n private translateService: TranslateService\n ) {\n this.modal = this.options?.customModal ?? NiceSweetAlertComponent;\n }\n\n public success(params: NiceSweetAlertParams): Observable<boolean>;\n public success(titleKey: string, messageKey: string, buttonsKey: string[], params?: object): Observable<boolean>;\n public success(...args: any[]): Observable<boolean> {\n const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);\n return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(\n switchMap(([title, message, buttons]) => {\n return this.matDialog\n .open(this.modal, {\n panelClass: \"nice-alert-modal\",\n data: {\n type: \"success\",\n title,\n message,\n buttons\n }\n })\n .afterClosed();\n })\n );\n }\n\n public warning(params: NiceSweetAlertParams): Observable<boolean>;\n public warning(titleKey: string, messageKey: string, buttonsKey: string[], params?: object): Observable<boolean>;\n public warning(...args: any[]): Observable<boolean> {\n const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);\n return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(\n switchMap(([title, message, buttons]) => {\n return this.matDialog\n .open(this.modal, {\n panelClass: \"nice-alert-modal\",\n data: {\n type: \"warning\",\n title,\n message,\n buttons\n }\n })\n .afterClosed();\n })\n );\n }\n\n public info(params: NiceSweetAlertParams): Observable<boolean>;\n public info(titleKey: string, messageKey: string, buttonsKey: string[], params?: object): Observable<boolean>;\n public info(...args: any[]): Observable<boolean> {\n const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);\n return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(\n switchMap(([title, message, buttons]) => {\n return this.matDialog\n .open(this.modal, {\n panelClass: \"nice-alert-modal\",\n data: {\n type: \"info\",\n title,\n message,\n buttons\n }\n })\n .afterClosed();\n })\n );\n }\n\n private getTranslations(\n title: string,\n message: string,\n buttons: string[],\n params?: object\n ): Observable<[string, string, string[]]> {\n return this.translateService.get([title, message, ...buttons], params).pipe(\n map((result: { [key: string]: string }) => {\n return [result[title], result[message], buttons.map(button => result[button])] as [\n string,\n string,\n string[]\n ];\n })\n );\n }\n\n private transformArgs(args: any[]): [string, string, string[], any] {\n const [paramsOrTitle] = args;\n if (typeof paramsOrTitle === \"string\") {\n return args as [string, string, string[], any];\n }\n\n const params = paramsOrTitle as NiceSweetAlertParams;\n const path = params.translationPath ? `${params.translationPath}.` : \"\";\n return [\n `${path}${params.titleKey}`,\n params.messageKey ? `${path}${params.messageKey}` : \"\",\n params.buttonsKey.map(buttonKey => `${path}${buttonKey}`),\n params.params\n ];\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\nimport { NiceSweetAlertParams, NiceSweetAlertService } from \"./sweet-alert.service\";\n\n@Directive({ selector: \"[niceSweetAlert]\" })\nexport class NiceSweetAlertDirective {\n @Input()\n public sweetAlertType: \"success\" | \"warning\" | \"info\";\n\n @Input()\n public sweetAlertOptions: NiceSweetAlertParams;\n\n @Output()\n public sweetAlertAfterClosed = new EventEmitter<boolean>();\n\n constructor(private service: NiceSweetAlertService) {}\n\n @HostListener(\"click\")\n public onClick(): void {\n if (this.sweetAlertType === \"success\") {\n this.service.success(this.sweetAlertOptions).subscribe(x => this.sweetAlertAfterClosed.emit(x));\n }\n\n if (this.sweetAlertType === \"warning\") {\n this.service.warning(this.sweetAlertOptions).subscribe(x => this.sweetAlertAfterClosed.emit(x));\n }\n\n if (this.sweetAlertType === \"info\") {\n this.service.info(this.sweetAlertOptions).subscribe(x => this.sweetAlertAfterClosed.emit(x));\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { NiceSweetAlertComponent } from \"./sweet-alert.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceSweetAlertDirective } from \"./sweet-alert.directive\";\nimport { NiceSweetAlertOptions, NiceSweetAlertService } from \"./sweet-alert.service\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { NiceLottieModule } from \"../lottie/lottie.module\";\nimport { NICE_ALERT_OPTIONS } from \"./sweet-alert.constant\";\n\n@NgModule({\n imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, NiceLottieModule],\n declarations: [NiceSweetAlertComponent, NiceSweetAlertDirective],\n providers: [NiceSweetAlertService],\n exports: [NiceSweetAlertDirective]\n})\nexport class NiceSweetAlertModule {\n public static forRoot(options?: NiceSweetAlertOptions): ModuleWithProviders<NiceSweetAlertModule> {\n return {\n ngModule: NiceSweetAlertModule,\n providers: [\n {\n provide: NICE_ALERT_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","import { Component, Inject, ViewEncapsulation } from \"@angular/core\";\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from \"@angular/material/snack-bar\";\nimport { NiceAlertAppearance } from \"../alert\";\n\nexport interface NiceToastData {\n title?: string;\n message?: string;\n appearance?: NiceAlertAppearance;\n type: \"info\" | \"success\" | \"warning\" | \"error\";\n}\n\n@Component({\n selector: \"nice-toast\",\n templateUrl: \"toast.template.html\",\n styleUrls: [\"toast.style.scss\"],\n encapsulation: ViewEncapsulation.None\n})\nexport class NiceToastComponent {\n constructor(\n @Inject(MAT_SNACK_BAR_DATA) public data: NiceToastData,\n private snackbarRef: MatSnackBarRef<NiceToastComponent>\n ) {}\n\n public dismiss() {\n this.snackbarRef.dismiss();\n }\n}\n","<nice-alert disableAnimation [type]=\"data.type\" [appearance]=\"data.appearance || 'outline'\" (click)=\"dismiss()\">\n <span niceAlertTitle *ngIf=\"data.title\">{{ data.title }}</span>\n <span [innerHtml]=\"data.message\" *ngIf=\"data.message\"></span>\n</nice-alert>\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_TOAST_OPTIONS = new InjectionToken(\"nice_toast_options\");\n","import { Inject, Injectable } from \"@angular/core\";\nimport { MatSnackBar, MatSnackBarConfig } from \"@angular/material/snack-bar\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NiceAlertAppearance } from \"../alert\";\nimport { NiceToastComponent } from \"./toast.component\";\nimport { NICE_TOAST_OPTIONS } from \"./toast.constant\";\n\nexport interface NiceToastOptions extends MatSnackBarConfig {\n appearance?: NiceAlertAppearance;\n successDuration?: number;\n warningDuration?: number;\n errorDuration?: number;\n infoDuration?: number;\n}\n\n@Injectable({ providedIn: \"any\" })\nexport class NiceToastService {\n constructor(\n @Inject(NICE_TOAST_OPTIONS)\n private options: NiceToastOptions,\n private snackbar: MatSnackBar,\n private translateService: TranslateService\n ) {}\n\n public success(messageKey: string, titleKey?: string, params?: object): void {\n this.showToast(\"success\", messageKey, titleKey, params);\n }\n\n public error(messageKey: string, titleKey?: string, params?: object): void {\n this.showToast(\"error\", messageKey, titleKey, params);\n }\n\n public warning(messageKey: string, titleKey?: string, params?: object): void {\n this.showToast(\"warning\", messageKey, titleKey, params);\n }\n\n public info(messageKey: string, titleKey?: string, params?: object): void {\n this.showToast(\"info\", messageKey, titleKey, params);\n }\n\n private showToast(type: string, messageKey: string, titleKey?: string, params?: object): void {\n const [message, title] = this.getTranslations(messageKey, titleKey, params);\n const duration = this.options[`${type}Duration`] ?? this.options.duration;\n this.snackbar.openFromComponent(NiceToastComponent, {\n ...this.options,\n duration,\n panelClass: [\"message-box\", type],\n data: {\n message,\n title,\n type,\n appearance: this.options.appearance\n }\n });\n }\n\n private getTranslations(message: string, title: string, params: object): [string, string] {\n const translations = [message];\n if (title) {\n translations.push(title);\n }\n\n try {\n const result = this.translateService.instant(translations, params) as { [key: string]: string };\n return [result[message], result[title]];\n } catch (e) {\n return [\"\", \"\"];\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceAlertModule } from \"../alert\";\nimport { NiceToastComponent } from \"./toast.component\";\nimport { NICE_TOAST_OPTIONS } from \"./toast.constant\";\nimport { NiceToastOptions, NiceToastService } from \"./toast.service\";\n\nconst defaultOptions: NiceToastOptions = {\n duration: 3000,\n horizontalPosition: \"end\",\n verticalPosition: \"bottom\"\n};\n\n@NgModule({\n imports: [CommonModule, MatSnackBarModule, TranslateModule, NiceAlertModule],\n declarations: [NiceToastComponent]\n})\nexport class NiceToastModule {\n public static forRoot(options?: NiceToastOptions): ModuleWithProviders<NiceToastModule> {\n return {\n ngModule: NiceToastModule,\n providers: [\n NiceToastService,\n {\n provide: NICE_TOAST_OPTIONS,\n useValue: {\n ...defaultOptions,\n ...(options ?? {})\n }\n }\n ]\n };\n }\n\n public static forFeature(options: NiceToastOptions): ModuleWithProviders<NiceToastModule> {\n return {\n ngModule: NiceToastModule,\n providers: [\n NiceToastService,\n {\n provide: NICE_TOAST_OPTIONS,\n useValue: {\n ...defaultOptions,\n ...options\n }\n }\n ]\n };\n }\n}\n","import { MonoTypeOperatorFunction, tap } from \"rxjs\";\nimport { TapObserver } from \"rxjs/internal/operators/tap\";\nimport { NiceToastService } from \"../toast.service\";\n\nexport interface ShowToastOperatorOptionsWithoutTitle {\n messageKey: string;\n titleKey?: string;\n params?: object;\n\n useObserver?: keyof TapObserver<any>;\n}\n\nexport interface ShowToastOperatorOptionsWithoutMessage {\n titleKey: string;\n messageKey?: string;\n params?: object;\n\n useObserver?: keyof TapObserver<any>;\n}\n\nexport type ShowToastOperatorOptions = ShowToastOperatorOptionsWithoutTitle | ShowToastOperatorOptionsWithoutMessage;\n\nexport function showSuccessToast<T>(\n loadingToastService: NiceToastService,\n options: ShowToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n const observer = options.useObserver ?? \"next\";\n return source => source.pipe(\n tap({\n [observer]: () => loadingToastService.success(options.messageKey, options.titleKey, options.params)\n })\n );\n}\n\nexport function showErrorToast<T>(\n loadingToastService: NiceToastService,\n options: ShowToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n const observer = options.useObserver ?? \"error\";\n return source => source.pipe(\n tap({\n [observer]: () => loadingToastService.error(options.messageKey, options.titleKey, options.params)\n })\n );\n}\n\nexport function showInfoToast<T>(\n loadingToastService: NiceToastService,\n options: ShowToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n const observer = options.useObserver ?? \"next\";\n return source => source.pipe(\n tap({\n [observer]: () => loadingToastService.info(options.messageKey, options.titleKey, options.params)\n })\n );\n}\n\nexport function showWarningToast<T>(\n loadingToastService: NiceToastService,\n options: ShowToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n const observer = options.useObserver ?? \"error\";\n return source => source.pipe(\n tap({\n [observer]: () => loadingToastService.warning(options.messageKey, options.titleKey, options.params)\n })\n );\n}\n","import { MonoTypeOperatorFunction, tap } from \"rxjs\";\nimport { NiceToastService } from \"../toast.service\";\n\ninterface ShowToastOperatorCommonKeysOptionsWithoutTitle {\n messageKey: string;\n titleKey?: string;\n params?: object;\n}\n\ninterface ShowToastOperatorCommonKeysOptionsWithoutMessage {\n titleKey: string;\n messageKey?: string;\n params?: object;\n}\n\ninterface ShowToastOperatorOptionsWithoutMessage {\n title: { success: string; error: string; };\n message?: { success: string; error: string; };\n params?: object;\n}\n\ninterface ShowToastOperatorOptionsWithoutTitle {\n message: { success: string; error: string; };\n title?: { success: string; error: string; };\n params?: object;\n}\n\nexport type ShowSuccessOrErrorToastOperatorOptions\n = ShowToastOperatorCommonKeysOptionsWithoutTitle\n | ShowToastOperatorCommonKeysOptionsWithoutMessage\n | ShowToastOperatorOptionsWithoutMessage\n | ShowToastOperatorOptionsWithoutTitle;\n\nexport function showSuccessOrErrorToast<T>(\n loadingToastService: NiceToastService,\n options: ShowSuccessOrErrorToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n return source => source.pipe(\n tap({\n next: () => {\n const [message, title] = transformOptions(options, \"success\");\n loadingToastService.success(message, title, options.params);\n },\n error: () => {\n const [message, title] = transformOptions(options, \"error\");\n loadingToastService.error(message, title, options.params);\n }\n })\n );\n}\n\nfunction transformOptions(options: ShowSuccessOrErrorToastOperatorOptions, type: \"success\" | \"error\"): [string, string] {\n const commonOptions = options as (ShowToastOperatorCommonKeysOptionsWithoutTitle | ShowToastOperatorCommonKeysOptionsWithoutMessage);\n if (commonOptions.messageKey || commonOptions.titleKey) {\n return [commonOptions.messageKey ? `${commonOptions.messageKey}.${type}` : \"\", commonOptions.titleKey ? `${commonOptions.titleKey}.${type}` : \"\"];\n }\n\n const fullOptions = options as (ShowToastOperatorOptionsWithoutMessage | ShowToastOperatorOptionsWithoutTitle);\n return [fullOptions.message?.[type] ?? \"\", fullOptions.title?.[type] ?? \"\"];\n}\n","import { Component, Input, TemplateRef, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"nice-toggle-button\",\n template: `<ng-template><ng-content></ng-content></ng-template>`\n})\nexport class ToggleButtonComponent {\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n\n @Input()\n public value: string;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n HostListener,\n Input, Output,\n QueryList,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { CanColor, ThemePalette } from \"@angular/material/core\";\nimport { ToggleButtonComponent } from \"./toggle-button.component\";\n\nexport type ToggleButtonGroupDataType = any | any[];\n\n@Component({\n selector: \"nice-toggle-button-group\",\n templateUrl: \"toggle-button-group.template.html\",\n styleUrls: [\"toggle-button-group.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButtonGroupComponent),\n multi: true\n }\n ]\n})\nexport class ToggleButtonGroupComponent implements CanColor {\n private _multiple = false;\n\n @ContentChildren(ToggleButtonComponent)\n public toggleButtons: QueryList<ToggleButtonComponent>;\n\n @Input()\n public selected: ToggleButtonGroupDataType;\n\n @Input()\n public color: ThemePalette;\n\n @Output()\n public selectedChange = new EventEmitter<ToggleButtonGroupDataType>();\n\n public defaultColor: ThemePalette = \"accent\";\n\n @Input()\n public set multiple(multiple: boolean) {\n if (multiple === this._multiple) {\n return;\n }\n\n if (multiple) {\n if (this.selected) {\n this.selected = [this.selected];\n } else {\n this.selected = [];\n }\n } else {\n if (this.selected) {\n this.selected = this.selected[0];\n }\n }\n this._multiple = multiple;\n }\n\n private onTouched: () => void;\n private onChange: (selected: ToggleButtonGroupDataType) => void;\n\n @HostListener(\"blur\")\n public onBlur(): void {\n this.onTouched();\n }\n\n public writeValue(value: ToggleButtonGroupDataType): void {\n if (!value) {\n return;\n }\n\n this.selected = value;\n }\n\n public registerOnChange(fn: (color: string) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public onSelect(value: any): void {\n if (this._multiple) {\n if (this.selected) {\n const index = this.selected.findIndex(x => x === value);\n if (index < 0) {\n this.selected.push(value);\n } else {\n this.selected.splice(index, 1);\n }\n } else {\n this.selected = [value];\n }\n } else {\n this.selected = value;\n }\n this.onChange?.(this.selected);\n this.selectedChange?.emit(this.selected);\n }\n\n public conditionalColorObj(value: any): any {\n const colorClass = this.color ?? this.defaultColor;\n const isActive = this._multiple ? this.selected.includes(value) : this.selected === value;\n\n const obj = {} as any;\n obj.selected = isActive;\n obj[`bg-${colorClass}`] = isActive;\n obj[`bg-selected-${colorClass}`] = isActive;\n obj[\"left-selected\"] = this.isLeftValueSelected(value);\n obj[\"right-selected\"] = this.isRightValueSelected(value);\n\n return obj;\n }\n\n private isLeftValueSelected(value: any): boolean {\n if (!this._multiple || !this.selected.includes(value)) {\n return false;\n }\n\n const values = this.toggleButtons.map(btn => btn.value);\n const index = values.indexOf(value);\n\n if (index <= 0) {\n return false;\n }\n\n return this.selected.includes(values[index - 1]);\n }\n\n private isRightValueSelected(value: any): boolean {\n if (!this._multiple) {\n return false;\n }\n\n const values = this.toggleButtons.map(btn => btn.value);\n const index = values.indexOf(value);\n\n if (index === -1 || index === values.length - 1) {\n return false;\n }\n\n return this.selected.includes(values[index + 1]);\n }\n}\n","<div class=\"toggle-button-group-wrapper\">\n <div class=\"toggle-button-group flex flex-row items-center\">\n <div\n class=\"toggle-button\"\n [ngClass]=\"conditionalColorObj(btn.value)\"\n *ngFor=\"let btn of toggleButtons\"\n >\n <div matRipple class=\"toggle-button-inner flex place-content-center items-center\" (click)=\"onSelect(btn.value)\">\n <ng-container *ngTemplateOutlet=\"btn.content\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MatRippleModule } from \"@angular/material/core\";\n\nimport { ToggleButtonGroupComponent } from \"./toggle-button-group.component\";\nimport { ToggleButtonComponent } from \"./toggle-button.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatRippleModule\n ],\n declarations: [ToggleButtonComponent, ToggleButtonGroupComponent],\n providers: [],\n exports: [ToggleButtonComponent, ToggleButtonGroupComponent]\n})\nexport class NiceToggleButtonGroupModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NiceTranslationFormService {\n private _languages$ = new BehaviorSubject<string[]>([]);\n private _requiredLanguages$ = new BehaviorSubject<string[]>([]);\n\n public get languages$(): Observable<string[]> {\n return this._languages$.asObservable();\n }\n\n public get languages(): string[] {\n return this._languages$.getValue();\n }\n\n public get requiredLanguages$(): Observable<string[]> {\n return this._requiredLanguages$.asObservable();\n }\n\n public get requiredLanguages(): string[] {\n return this._requiredLanguages$.value;\n }\n\n public get hasLanguages$(): Observable<boolean> {\n return this._languages$.asObservable().pipe(map((languages) => !!languages?.length));\n }\n\n public get hasLanguages(): boolean {\n return !!this.languages?.length;\n }\n\n public setLanguages(languages?: string[]): void {\n this._languages$.next(languages ?? []);\n }\n\n public setRequiredLanguages(languages?: string[]): void {\n if (!languages?.length) {\n this._requiredLanguages$.next([]);\n }\n\n const languagesValues = this.languages;\n const unregisteredLanguages: string[] = languages?.filter(\n (language) => !languagesValues.includes(language)\n );\n\n if (unregisteredLanguages?.length) {\n throw new Error(`You provided languages that are not configured\n > Configured languages: [${languagesValues}]\n > Missing languages provided: [${unregisteredLanguages}]\n `);\n }\n\n if (languages.length > languagesValues.length) {\n this._requiredLanguages$.next(languagesValues);\n } else {\n this._requiredLanguages$.next(languages);\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n} from \"@angular/core\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceTranslationFormService } from \"../providers/nice-translation-form.service\";\n\n@Directive({ selector: \"[niceTranslationContext]\" })\nexport class TranslationContextDirective implements OnInit, OnDestroy {\n @Output()\n public activeLanguageChange = new EventEmitter<string>();\n\n public activeLanguage$ = new BehaviorSubject<string>(undefined);\n\n private _unsubscribeAll$ = new Subject<void>();\n\n constructor(private translationFormService: NiceTranslationFormService) {}\n\n public ngOnInit(): void {\n this.translationFormService.languages$\n .pipe(\n takeUntil(this._unsubscribeAll$),\n filter((languages) => !!languages?.length),\n filter((languages) => !languages.includes(this.activeLanguage$.value))\n )\n .subscribe((languages) => {\n this.activeLanguage$.next(languages[0]);\n });\n\n this.activeLanguage$\n .pipe(takeUntil(this._unsubscribeAll$))\n .subscribe((activeLanguage) => {\n this.activeLanguageChange.emit(activeLanguage);\n });\n }\n\n public ngOnDestroy(): void {\n this._unsubscribeAll$.next();\n this._unsubscribeAll$.complete();\n }\n\n public updateLanguage(language: string): void {\n this.activeLanguage$.next(language);\n }\n\n public reset(): void {\n if (!this.translationFormService.languages.length) {\n return;\n }\n\n this.activeLanguage$.next(this.translationFormService.languages[0]);\n }\n}\n","import { Component } from \"@angular/core\";\nimport { MatButtonToggleChange } from \"@angular/material/button-toggle\";\nimport { TranslationContextDirective } from \"../directives/translation-context.directive\";\nimport { NiceTranslationFormService } from \"../providers/nice-translation-form.service\";\n\n@Component({\n selector: \"nice-translation-toggle\",\n templateUrl: \"translation-toggle.template.html\",\n})\nexport class TranslationToggleComponent {\n public languages$ = this.translationFormService.languages$;\n public activeLanguage$ = this.context.activeLanguage$;\n\n constructor(\n private context: TranslationContextDirective,\n private translationFormService: NiceTranslationFormService\n ) {}\n\n public onChange($event: MatButtonToggleChange) {\n this.context.updateLanguage($event.value);\n }\n}\n","<mat-button-toggle-group\n *ngIf=\"(languages$ | async)?.length > 1\"\n (change)=\"onChange($event)\"\n [value]=\"activeLanguage$ | async\"\n>\n <mat-button-toggle *ngFor=\"let language of languages$ | async\" [value]=\"language\">\n {{ language | uppercase }}\n </mat-button-toggle>\n</mat-button-toggle-group>\n","import { coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from \"@angular/core\";\nimport {\n AbstractControlDirective,\n ControlContainer,\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NgControl,\n Validators,\n} from \"@angular/forms\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport * as uuid from \"uuid\";\nimport { TranslationContextDirective } from \"../directives/translation-context.directive\";\nimport { NiceTranslationFormService } from \"../providers/nice-translation-form.service\";\n\n@Component({\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class TranslationFormComponent\n implements\n OnInit,\n OnDestroy,\n MatFormFieldControl<string>,\n ControlValueAccessor\n{\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"w-full\": true\n };\n }\n\n @HostBinding(\"class.floating\")\n public get shouldLabelFloat(): boolean {\n return this.floating || !this.empty || this.focused;\n }\n\n @Input()\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n public get required(): boolean {\n return (\n this._required ??\n this.ngControl?.control?.hasValidator(Validators.required) ??\n false\n );\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n this.handleDisabledState();\n this.stateChanges.next();\n }\n\n @Input()\n public set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n this.stateChanges.next();\n }\n\n public get placeholder(): string {\n return this._placeholder;\n }\n\n public set value(value: any) {\n if (value === this._value) {\n return;\n }\n\n this._value = value;\n this.propagate(this._value);\n }\n\n public get value(): any {\n return this._value;\n }\n\n public get empty(): boolean {\n const emptyControlValue =\n !this.currentControl?.value || !this.currentControl.value.length;\n\n const emptyValue =\n !this._value ||\n (typeof this._value === \"string\" && !this._value.length);\n\n return emptyControlValue && emptyValue;\n }\n\n public get errorState(): boolean {\n return this.ngControl\n ? this.ngControl.touched && this.ngControl.invalid\n : false;\n }\n\n constructor(\n private container: ControlContainer,\n private context: TranslationContextDirective,\n private service: NiceTranslationFormService,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n @Input()\n public floating = true;\n\n @Input()\n public maxLength = 524288; // The maximum number of characters allowed in the <input> element. Default value is 524288\n\n @HostBinding()\n public id: string = uuid.v4();\n\n @HostBinding(\"attr.aria-describedby\")\n public describedBy = \"\";\n\n public formGroup: FormGroup;\n public currentControl?: FormControl;\n public stateChanges = new Subject<void>();\n public ngControl: AbstractControlDirective | NgControl;\n public focused: boolean;\n public controlType = \"translationForm\";\n\n private _unsubscribeAll$ = new Subject<void>();\n private _required: boolean;\n private _disabled = false;\n private _placeholder: string;\n private _value: any;\n\n public readonly autofilled: boolean;\n public readonly userAriaDescribedBy: string;\n\n public propagate: (value: string) => void = () => {};\n\n public onContainerClick(event: MouseEvent): void {}\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(\" \");\n }\n\n public registerOnChange(fn: any): void {\n this.propagate = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n public writeValue(value: any): void {\n this._value = value;\n }\n\n public ngOnInit(): void {\n this.formGroup = this.container.control as FormGroup;\n\n this.service.languages$\n .pipe(takeUntil(this._unsubscribeAll$))\n .subscribe((languages) => {\n if (!languages?.length) {\n return;\n }\n\n this.setupFormControls(languages);\n });\n\n this.context.activeLanguage$\n .pipe(takeUntil(this._unsubscribeAll$))\n .subscribe((activeLanguage) => {\n this.setLanguage(activeLanguage);\n });\n }\n\n public ngOnDestroy(): void {\n this._unsubscribeAll$.next();\n this._unsubscribeAll$.complete();\n }\n\n public setLanguage(language: string): void {\n this.currentControl = this.formGroup.get(language) as FormControl;\n this.handleDisabledState();\n this.changeDetectorRef.markForCheck();\n }\n\n private setupFormControls(languages: string[]): void {\n for (const language of languages) {\n if (!this.formGroup.controls[language]) {\n this.formGroup.addControl(language, new FormControl(), {\n emitEvent: false,\n });\n }\n }\n\n const controlToRemove = Object.keys(this.formGroup.controls).filter(\n (key) => !languages.includes(key)\n );\n\n for (const key of controlToRemove) {\n this.formGroup.removeControl(key, { emitEvent: false });\n }\n\n this.currentControl = this.formGroup.get(languages[0]) as FormControl;\n this.handleDisabledState();\n }\n\n private handleDisabledState(): void {\n if (this._disabled) {\n this.currentControl?.disable({ emitEvent: false });\n } else {\n this.currentControl?.enable({ emitEvent: false });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n} from \"@angular/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { TranslationFormComponent } from \"../translation-form.component\";\n\n@Component({\n selector: \"nice-translation-form-textarea\",\n templateUrl: \"translation-form-textarea.template.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: TranslationFormTextareaComponent,\n },\n ]\n})\nexport class TranslationFormTextareaComponent extends TranslationFormComponent {\n @Input()\n public resizable = true;\n\n @Input()\n public rows = 2;\n\n @Input()\n public cols = 20;\n}\n","<textarea\n *ngIf=\"currentControl\"\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n","import {\n ChangeDetectionStrategy,\n Component,\n} from \"@angular/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { TranslationFormComponent } from \"../translation-form.component\";\n\n@Component({\n selector: \"nice-translation-form-textfield\",\n templateUrl: \"translation-form-textfield.template.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: TranslationFormTextfieldComponent,\n },\n ],\n})\nexport class TranslationFormTextfieldComponent extends TranslationFormComponent {}\n","<input\n matInput\n *ngIf=\"currentControl\"\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n","import { Injectable } from \"@angular/core\";\nimport { FormGroup, ValidationErrors } from \"@angular/forms\";\nimport { AsyncValidator, registerAsyncValidatorDecorator, } from \"@recursyve/ngx-form-generator\";\nimport { Observable } from \"rxjs\";\nimport { map, take } from \"rxjs/operators\";\nimport { NiceTranslationFormService } from \"../providers/nice-translation-form.service\";\n\nexport function RequireForLanguages() {\n return registerAsyncValidatorDecorator({\n name: \"RequireForLanguages\",\n });\n}\n\n@Injectable()\nexport class RequireForLanguagesValidator extends AsyncValidator {\n public name = \"RequireForLanguages\";\n\n constructor(private service: NiceTranslationFormService) {\n super();\n }\n\n public validate(formGroup: FormGroup): Observable<ValidationErrors | null> {\n return this.service.requiredLanguages$.pipe(\n take(1),\n map((requiredLanguages) => {\n if (!requiredLanguages.length) {\n return null;\n }\n\n const missingLanguages: string[] = [];\n for (const requiredLanguage of requiredLanguages) {\n const control = formGroup.get(requiredLanguage);\n\n if (typeof control?.value === \"string\" && control?.value.trim().length) {\n continue;\n }\n\n missingLanguages.push(requiredLanguage);\n }\n\n if (missingLanguages?.length) {\n return { languageRequired: { missingLanguages } };\n }\n\n return null;\n })\n );\n }\n}\n","import { AsyncPipe, NgForOf, NgIf, UpperCasePipe } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatButtonToggleModule } from \"@angular/material/button-toggle\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { NGX_FORM_GENERATOR_ASYNC_VALIDATORS } from \"@recursyve/ngx-form-generator\";\nimport { TranslationContextDirective } from \"../directives/translation-context.directive\";\nimport { TranslationToggleComponent } from \"../toggle/translation-toggle.component\";\nimport { TranslationFormTextareaComponent } from \"./textarea/translation-form-textarea.component\";\n\nimport { TranslationFormTextfieldComponent } from \"./textfield/translation-form-textfield.component\";\nimport { RequireForLanguagesValidator } from \"../validators/require-for-languages.validator\";\n\n@NgModule({\n imports: [\n MatButtonToggleModule,\n MatInputModule,\n ReactiveFormsModule,\n NgForOf,\n NgIf,\n AsyncPipe,\n UpperCasePipe,\n ],\n declarations: [\n TranslationFormTextfieldComponent,\n TranslationFormTextareaComponent,\n TranslationToggleComponent,\n TranslationContextDirective,\n ],\n providers: [],\n exports: [\n TranslationFormTextfieldComponent,\n TranslationFormTextareaComponent,\n TranslationToggleComponent,\n TranslationContextDirective,\n ],\n})\nexport class NiceTranslationFormModule {\n public static forRoot(): ModuleWithProviders<NiceTranslationFormModule> {\n return {\n ngModule: NiceTranslationFormModule,\n providers: [\n {\n provide: NGX_FORM_GENERATOR_ASYNC_VALIDATORS,\n useClass: RequireForLanguagesValidator,\n multi: true,\n },\n ]\n };\n }\n}\n","import { DynamicGroup } from \"@recursyve/ngx-form-generator\";\n\n// tslint:disable-next-line:variable-name\nexport const TranslationFormGroup = () => DynamicGroup();\n","export class TranslationForm {\n constructor(values?: { [language: string]: string; }) {\n Object.assign(this, values ?? {});\n }\n}\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\n\n@Directive({ selector: \"[niceAutofocus]\" })\nexport class NiceAutofocusDirective implements OnInit {\n constructor(private elem: ElementRef) {}\n\n public ngOnInit(): void {\n this.elem.nativeElement.focus?.();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceAutofocusDirective } from \"./autofocus.directive\";\n\n@NgModule({\n declarations: [NiceAutofocusDirective],\n exports: [NiceAutofocusDirective]\n})\nexport class NiceAutofocusDirectiveModule {}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\n@Directive({\n selector: \"textarea[niceAutogrow]\",\n exportAs: \"niceAutogrow\"\n})\nexport class NiceAutogrowDirective implements OnChanges, OnInit, OnDestroy {\n private _height = \"auto\";\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n // tslint:disable-next-line:no-input-rename\n @Input(\"niceAutogrowVerticalPadding\")\n public padding = 8;\n\n @HostBinding(\"rows\")\n private _rows = 1;\n\n /**\n * Constructor\n */\n constructor(\n private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component inline styles\n */\n @HostBinding(\"style\")\n public get styleList(): any {\n return {\n \"height\": this._height,\n \"overflow\": \"hidden\",\n \"resize\": \"none\"\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Padding\n if (\"niceAutogrowVerticalPadding\" in changes) {\n // Resize\n this._resize();\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Resize for the first time\n this._resize();\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Resize on 'input' and 'ngModelChange' events\n */\n @HostListener(\"input\")\n @HostListener(\"ngModelChange\")\n private _resize(): void {\n // This doesn't need to trigger Angular's change detection by itself\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n // Set the height to 'auto' so we can correctly read the scrollHeight\n this._height = \"auto\";\n\n // Detect the changes so the height is applied\n this._changeDetectorRef.detectChanges();\n\n // Get the scrollHeight and subtract the vertical padding\n this._height = `${this._elementRef.nativeElement.scrollHeight - this.padding}px`;\n\n // Detect the changes one more time to apply the final height\n this._changeDetectorRef.detectChanges();\n });\n });\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceAutogrowDirective } from \"./autogrow.directive\";\n\n@NgModule({\n declarations: [\n NiceAutogrowDirective\n ],\n exports: [\n NiceAutogrowDirective\n ]\n})\nexport class NiceAutogrowModule {}\n","import { Directive, ElementRef, EventEmitter, OnDestroy, OnInit, Output, } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceAsyncTypeaheadComponent } from \"../../components\";\n\n@Directive({\n selector: \"[niceChipAsyncTypeahead]\",\n exportAs: \"niceChipAsyncTypeahead\",\n})\nexport class NiceChipAsyncTypeaheadDirective implements OnInit, OnDestroy {\n @Output()\n public niceChipAsyncTypeaheadTokenEnd = new EventEmitter<any>();\n\n private unsubscribeAll$ = new Subject();\n\n constructor(\n private typeahead: NiceAsyncTypeaheadComponent,\n private elementRef: ElementRef<HTMLElement>\n ) {\n }\n\n public ngOnInit(): void {\n this.typeahead.selected\n .pipe(\n takeUntil(this.unsubscribeAll$),\n filter((selected) => selected)\n )\n .subscribe((_) => {\n this.niceChipAsyncTypeaheadTokenEnd.emit(this.typeahead.getActive());\n this.typeahead.writeValue(null);\n });\n\n this.elementRef.nativeElement.classList.add(\"nice-chip-async-typeahead\");\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next(null);\n this.unsubscribeAll$.complete();\n }\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceChipListItemLabel]\" })\nexport class ChipListItemLabelDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_CHIP_LIST_OPTIONS = new InjectionToken(\"nice_chip_list_options\");\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter, Inject,\n Input,\n Optional,\n Output,\n TemplateRef\n} from \"@angular/core\";\nimport { CanColor, ThemePalette } from \"@angular/material/core\";\nimport { Observable } from \"rxjs\";\nimport { NICE_CHIP_LIST_OPTIONS } from \"../chip-list.constant\";\nimport { ChipListItemLabelDirective } from \"./chip-list-item-label.directive\";\n\nexport type NiceChipListActionIcon = { matIcon: string; svgIcon?: string; } | { matIcon?: string; svgIcon: string; };\n\nexport interface NiceChipListOptions {\n closeButtonIcon: NiceChipListActionIcon;\n}\n\n@Component({\n selector: \"nice-chip-list-items\",\n templateUrl: \"./chip-list-items.template.html\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NiceChipListItemsComponent implements CanColor {\n @ContentChild(ChipListItemLabelDirective, { read: TemplateRef })\n public itemLabel: TemplateRef<any>;\n\n @Input()\n public color: ThemePalette = \"primary\";\n\n @Output()\n public removeChip = new EventEmitter<number>();\n\n @Input()\n public items$: Observable<any[]>;\n\n public defaultColor: ThemePalette = \"primary\";\n\n constructor(@Optional() @Inject(NICE_CHIP_LIST_OPTIONS) public readonly options: NiceChipListOptions) {\n if (!this.options) {\n this.options = {\n closeButtonIcon: {\n matIcon: \"cancel\"\n }\n };\n }\n }\n\n public remove(index: number): void {\n this.removeChip.next(index);\n }\n}\n","<div class=\"nice-items-row\" *ngIf=\"(items$ | async)?.length\">\n <div\n class=\"nice-chip\"\n *ngFor=\"let value of items$ | async; let i = index\"\n [ngClass]=\"color\"\n >\n <span *ngIf=\"!itemLabel\">{{ value }}</span>\n <ng-container *ngIf=\"itemLabel\">\n <ng-container *ngTemplateOutlet=\"itemLabel; context: { $implicit: value }\"></ng-container>\n </ng-container>\n <button (click)=\"remove(i)\">\n <mat-icon *ngIf=\"options.closeButtonIcon.matIcon\">\n {{ options.closeButtonIcon.matIcon }}\n </mat-icon>\n <mat-icon\n *ngIf=\"options.closeButtonIcon.svgIcon\"\n [svgIcon]=\"options.closeButtonIcon.svgIcon\"\n ></mat-icon>\n </button>\n </div>\n</div>\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges, OnDestroy,\n OnInit,\n Optional, Self,\n SimpleChange,\n SimpleChanges\n} from \"@angular/core\";\nimport { ControlValueAccessor, NgControl } from \"@angular/forms\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceAsyncTypeaheadComponent, NiceTypeaheadNewValue } from \"../../components\";\nimport { KeyboardCodes } from \"../../utils\";\nimport { NiceChipListItemsComponent } from \"./chip-list-items/chip-list-items.component\";\n\n@Directive({\n selector: \"input[niceChipList], nice-async-typeahead[niceChipList]\"\n})\nexport class NiceChipListDirective implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n @Input()\n public withItemList: NiceChipListItemsComponent;\n\n @Input()\n public reloadOnSelected = true;\n\n @Input()\n public separatorKeyboardCodes = [KeyboardCodes.Enter];\n\n private unsubscribeAll$ = new Subject<void>();\n private values$ = new BehaviorSubject([]);\n\n private _values: any[] = [];\n private propagateChanges = (value: any[]) => {};\n\n public get values(): any[] {\n return this._values;\n }\n\n constructor(\n @Optional() private asyncTypeahead: NiceAsyncTypeaheadComponent,\n @Optional() @Self() private ngControl: NgControl,\n private elementRef: ElementRef<HTMLInputElement>\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeyDown(event: KeyboardEvent): void {\n if (this.asyncTypeahead) {\n return;\n }\n\n if (this.separatorKeyboardCodes.includes(event.code as KeyboardCodes)) {\n if (!this.elementRef.nativeElement.validity.valid) {\n return;\n }\n\n this.addValue(this.elementRef.nativeElement.value);\n this.elementRef.nativeElement.value = \"\";\n event.preventDefault();\n return;\n }\n }\n\n public ngOnInit(): void {\n if (this.asyncTypeahead) {\n this.setupAsyncTypeahead();\n }\n\n const parentElement = this.elementRef.nativeElement.parentElement;\n if (\n parentElement.classList.contains(\"mat-mdc-form-field-infix\") ||\n parentElement.classList.contains(\"mat-form-field-infix\")\n ) {\n parentElement.style.alignItems = \"flex-start\";\n parentElement.style.flexDirection = \"column-reverse\";\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"withItemList\" in changes) {\n this.withItemList.items$ = this.values$;\n this.withItemList.removeChip.pipe(takeUntil(this.unsubscribeAll$)).subscribe(x => {\n this._values.splice(x, 1);\n\n this.updateTypeaheadSearchOptions();\n\n this.propagateChanges(this._values);\n this.values$.next(this._values);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n public writeValue(obj: any[]): void {\n if (obj && Array.isArray(obj)) {\n this._values = [...obj];\n } else {\n this._values = [];\n }\n\n this.updateTypeaheadSearchOptions();\n this.values$.next(this._values);\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChanges = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n private setupAsyncTypeahead(): void {\n this.asyncTypeahead.selected\n .pipe(\n takeUntil(this.unsubscribeAll$),\n filter((selected) => selected)\n )\n .subscribe((value) => {\n if (value instanceof NiceTypeaheadNewValue) {\n this.addValue(value);\n } else {\n this.addValue(this.asyncTypeahead.getActive());\n }\n\n this.asyncTypeahead.searchOptions = { ...(this.asyncTypeahead.searchOptions ?? {}), ignore: this._values ?? [] };\n this.asyncTypeahead.onRemove(null, this.reloadOnSelected);\n });\n }\n\n private addValue(value: any): void {\n if (this._values.includes(value)) {\n return;\n }\n\n if (value instanceof NiceTypeaheadNewValue) {\n if (this._values.some(x => x instanceof NiceTypeaheadNewValue && x.$new === value.$new)) {\n return;\n }\n }\n\n this._values?.push(value);\n this.propagateChanges(this._values);\n this.values$.next(this._values);\n }\n\n private updateTypeaheadSearchOptions(): void {\n if (!this.asyncTypeahead) {\n return;\n }\n\n const searchOptions = this.asyncTypeahead.searchOptions;\n this.asyncTypeahead.searchOptions = { ...(searchOptions ?? {}), ignore: this._values ?? [] };\n this.asyncTypeahead.ngOnChanges({\n searchOptions: new SimpleChange(searchOptions, this.asyncTypeahead.searchOptions, false)\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { ChipListItemLabelDirective } from \"./chip-list-items/chip-list-item-label.directive\";\nimport { NiceChipListItemsComponent, NiceChipListOptions } from \"./chip-list-items/chip-list-items.component\";\nimport { NICE_CHIP_LIST_OPTIONS } from \"./chip-list.constant\";\n\nimport { NiceChipListDirective } from \"./chip-list.directive\";\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [NiceChipListDirective, NiceChipListItemsComponent, ChipListItemLabelDirective],\n exports: [NiceChipListDirective, NiceChipListItemsComponent, ChipListItemLabelDirective]\n})\nexport class NiceChipListDirectiveModule {\n public static forRoot(options?: NiceChipListOptions): ModuleWithProviders<NiceChipListDirectiveModule> {\n if (!options) {\n options = {\n closeButtonIcon: {\n matIcon: \"cancel\"\n }\n };\n }\n return {\n ngModule: NiceChipListDirectiveModule,\n providers: [\n {\n provide: NICE_CHIP_LIST_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","import { CdkDragDrop, CdkDropList, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport { Directive, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Optional, Output, SimpleChanges } from \"@angular/core\";\nimport { FormArray, FormArrayName } from \"@angular/forms\";\nimport { pairwise, startWith, Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { LexoRankUtils } from \"../../utils/lexorank.utils\";\n\n@Directive({\n selector: \"[cdkDropList][niceDraggableList]\"\n})\nexport class NiceDraggableListDirective<T> implements OnInit, OnDestroy, OnChanges {\n @Input()\n public items: T[];\n\n @Input()\n public rankProperty = \"rank\";\n\n @Output()\n public itemsUpdated = new EventEmitter<T[]>();\n\n @Output()\n public itemRankUpdated = new EventEmitter<T>();\n\n public sortedItems: T[] = [];\n public formArray: FormArray;\n\n private unsubscribeAll$ = new Subject<void>();\n\n constructor(@Optional() private formArrayName: FormArrayName, private cdkDropList: CdkDropList) {}\n\n public ngOnInit(): void {\n if (this.formArrayName) {\n this.formArray = this.formArrayName.control;\n this.formArray.valueChanges.pipe(\n takeUntil(this.unsubscribeAll$),\n startWith(this.formArray.getRawValue()),\n map(() => this.formArray.getRawValue()),\n pairwise()\n ).subscribe(([previous, current]) => {\n if (previous.length !== current.length) {\n this.sortItems(current);\n }\n });\n\n this.sortItems(this.formArray.getRawValue());\n }\n\n this.cdkDropList.dropped.pipe(takeUntil(this.unsubscribeAll$)).subscribe((event) => this.drop(event));\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"items\" in changes && this.items) {\n this.sortItems(this.items);\n }\n }\n\n public drop(event: CdkDragDrop<any, any>): void {\n if (event.previousContainer === event.container) {\n if (event.previousIndex === event.currentIndex) {\n return;\n }\n\n event.item.data[this.rankProperty] = this.getNextRank(event);\n this.sortItems(this.sortedItems);\n this.itemsUpdated.next(this.sortedItems);\n this.itemRankUpdated.next(event.item.data);\n\n if (this.formArray) {\n this.formArray.get([event.previousIndex, this.rankProperty])?.patchValue(event.item.data[this.rankProperty]);\n moveItemInArray(this.formArray.controls, event.previousIndex, event.currentIndex);\n }\n } else {\n // TODO: Handle container change\n }\n }\n\n private sortItems(items: any[]): void {\n if (items.length && items.some((item) => !item[this.rankProperty])) {\n throw new Error(`All items must have a ${this.rankProperty}`);\n }\n\n this.sortedItems = [...items]\n .map(item => ({...item}))\n .sort((itemA, itemB) => LexoRankUtils.compareStringFn(itemA[this.rankProperty], itemB[this.rankProperty]));\n this.cdkDropList.data = this.sortedItems;\n }\n\n private getNextRank(event: CdkDragDrop<any, any>): string {\n const fromIndex = event.previousIndex;\n const toIndex = event.currentIndex;\n\n const itemAfter = this.sortedItems[fromIndex > toIndex ? toIndex : toIndex + 1];\n const itemBefore = this.sortedItems[fromIndex > toIndex ? toIndex - 1 : toIndex];\n return LexoRankUtils.getNewRank(itemAfter?.[this.rankProperty], itemBefore?.[this.rankProperty]);\n }\n}\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { NgModule } from \"@angular/core\";\n\nimport { NiceDraggableListDirective } from \"./draggable-list.directive\";\n\n@NgModule({\n imports: [DragDropModule],\n declarations: [NiceDraggableListDirective],\n exports: [NiceDraggableListDirective],\n})\nexport class NiceDraggableListModule {}\n","import { Directive, ElementRef, HostListener, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\n\n@Directive({ selector: \"img[niceImageErrorPlaceholder]\" })\nexport class NiceImageErrorPlaceholderDirective {\n @Input()\n public fallback?: TemplateRef<any>;\n\n constructor(private elementRef: ElementRef, private viewContainerRef: ViewContainerRef) {}\n\n @HostListener(\"error\")\n public onError(): void {\n this.elementRef.nativeElement.style.display = \"none\";\n if (this.fallback) {\n this.viewContainerRef.createEmbeddedView(this.fallback);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceImageErrorPlaceholderDirective } from \"./image-error-placeholder.directive\";\n\n@NgModule({\n declarations: [NiceImageErrorPlaceholderDirective],\n exports: [NiceImageErrorPlaceholderDirective]\n})\nexport class NiceImageErrorPlaceholderDirectiveModule {}\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\n\n// tslint:disable-next-line:directive-selector\n@Directive({selector: \"[keep-material-style]\"})\nexport class NiceMaterialStyleDirective implements OnInit {\n constructor(private element: ElementRef) {}\n\n public ngOnInit(): void {\n (this.element.nativeElement as HTMLElement).classList.add(\"keep-material-style\");\n }\n}\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\n\n// tslint:disable-next-line:directive-selector\n@Directive({selector: \"[nice-rounded-style]\"})\nexport class NiceRoundedStyleDirective implements OnInit {\n constructor(private element: ElementRef) {}\n\n public ngOnInit(): void {\n (this.element.nativeElement as HTMLElement).classList.add(\"nice-rounded-style\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceMaterialStyleDirective } from \"./nice-material-style.directive\";\nimport { NiceRoundedStyleDirective } from \"./nice-rounded-style.directive\";\n\n@NgModule({\n declarations: [\n NiceMaterialStyleDirective,\n NiceRoundedStyleDirective\n ],\n exports: [\n NiceMaterialStyleDirective,\n NiceRoundedStyleDirective\n ]\n})\nexport class NiceMaterialModule {}\n","import { Directive, EventEmitter, Input, Output, Type } from \"@angular/core\";\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\n\n@Directive()\nexport class NiceModalOpenerDirective<T, Return, Data> {\n @Input()\n public modalData: Data;\n\n @Output()\n public modalAfterClosed = new EventEmitter<Return>();\n\n constructor(protected dialog: MatDialog, private modal: Type<T>, private options: MatDialogConfig<Data>) {}\n\n public open(): void {\n this.dialog\n .open(this.modal, {\n ...this.options,\n data: this.modalData\n })\n .afterClosed()\n .subscribe(res => this.modalAfterClosed.emit(res));\n }\n}\n","import { Directive, HostListener, Type } from \"@angular/core\";\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { NiceModalOpenerDirective } from \"./modal-opener.directive\";\n\n@Directive()\nexport class NiceModalOnClickDirective<T, Return, Data = any> extends NiceModalOpenerDirective<T, Return, Data> {\n constructor(dialog: MatDialog, modal: Type<T>, options: MatDialogConfig<Data>) {\n super(dialog, modal, options);\n }\n\n @HostListener(\"click\")\n public onClick(): void {\n this.open();\n }\n}\n","import { Directive, ElementRef, OnDestroy, OnInit } from \"@angular/core\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\n\n@Directive({\n selector: \"[niceScrollReset]\",\n exportAs: \"niceScrollReset\"\n})\nexport class NiceScrollResetDirective implements OnInit, OnDestroy {\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n /**\n * Constructor\n */\n constructor(\n private _elementRef: ElementRef,\n private _router: Router\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Subscribe to NavigationEnd event\n this._router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Reset the element's scroll position to the top\n this._elementRef.nativeElement.scrollTop = 0;\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceScrollResetDirective } from \"./scroll-reset.directive\";\n\n@NgModule({\n declarations: [\n NiceScrollResetDirective\n ],\n exports: [\n NiceScrollResetDirective\n ]\n})\nexport class NiceScrollResetModule {\n}\n","import { Directive, HostListener } from \"@angular/core\";\n\n@Directive({ selector: \"[niceClickStopPropagation]\" })\nexport class NiceClickStopPropagationDirective {\n @HostListener(\"click\", [\"$event\"])\n public stopClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NiceClickStopPropagationDirective } from \"./click-stop-propagation.directive\";\n\n@NgModule({\n exports: [NiceClickStopPropagationDirective],\n declarations: [NiceClickStopPropagationDirective],\n\n})\nexport class NiceStopPropagationModule {\n}\n","import { Directive, HostListener } from \"@angular/core\";\n\n// https://stackoverflow.com/questions/48886460/prevent-closing-browser-tab-window-in-angular-5-x\n@Directive({ selector: \"[nicePreventCloseWindow]\" })\nexport class NicePreventCloseWindowDirective {\n @HostListener(\"window:beforeunload\", [\"$event\"])\n public handleClose($event) {\n $event.returnValue = false;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NicePreventCloseWindowDirective } from \"./prevent-close-window.directive\";\n\n@NgModule({\n declarations: [NicePreventCloseWindowDirective],\n exports: [NicePreventCloseWindowDirective]\n})\nexport class NiceWindowDirectiveModule {\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\n\n// tslint:disable-next-line:directive-selector\n@Directive({ selector: \"[rerender]\", standalone: true })\nexport class RerenderDirective {\n @Input()\n public set rerender(_: any) {\n this.viewContainerRef.clear();\n this.viewContainerRef.createEmbeddedView(this.templateRef);\n }\n\n constructor(private templateRef: TemplateRef<any>, private viewContainerRef: ViewContainerRef) {}\n}\n","import { Directive, EmbeddedViewRef, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\n\nclass ResolveDirectiveContext<T> {\n $implicit: T;\n resolve: T;\n}\n\n// tslint:disable-next-line:directive-selector\n@Directive({ selector: \"[resolve]\", standalone: true })\nexport class ResolveDirective<T> {\n private context = new ResolveDirectiveContext();\n private embeddedViewRef: EmbeddedViewRef<any> | null = null;\n\n @Input()\n public set resolve(value: T) {\n this.context.$implicit = this.context.resolve = value;\n\n if (!this.embeddedViewRef) {\n this.viewContainerRef.clear();\n this.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.templateRef, this.context);\n }\n }\n\n constructor(private templateRef: TemplateRef<any>, private viewContainerRef: ViewContainerRef) {}\n\n public static ngTemplateContextGuard<T>(\n directive: ResolveDirective<T>,\n ctx: any\n ): ctx is ResolveDirectiveContext<T> {\n return true;\n }\n}\n","import { NgModule, Optional, SkipSelf } from \"@angular/core\";\nimport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocompleteDefaultOptions } from \"@angular/material/autocomplete\";\nimport { MAT_CHIPS_DEFAULT_OPTIONS, MatChipsDefaultOptions } from \"@angular/material/chips\";\nimport { MATERIAL_SANITY_CHECKS } from \"@angular/material/core\";\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from \"@angular/material/form-field\";\nimport { MAT_LIST_CONFIG, MatListConfig } from \"@angular/material/list\";\nimport { MAT_SELECT_CONFIG, MatSelectConfig } from \"@angular/material/select\";\nimport { MAT_TABS_CONFIG, MatTabsConfig } from \"@angular/material/tabs\";\nimport { NiceMediaWatcherModule, NiceSplashScreenModule, NiceUtilsModule } from \"./providers\";\n\n@NgModule({\n imports: [\n NiceMediaWatcherModule,\n NiceSplashScreenModule,\n NiceUtilsModule\n ],\n providers: [\n {\n // Disable 'theme' sanity check\n provide : MATERIAL_SANITY_CHECKS,\n useValue: {\n doctype: true,\n theme : false,\n version: true\n }\n },\n {\n // Use the 'fill' appearance on Angular Material form fields by default\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: {\n appearance: \"fill\"\n } as MatFormFieldDefaultOptions\n },\n {\n provide: MAT_SELECT_CONFIG,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatSelectConfig\n },\n {\n provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatAutocompleteDefaultOptions\n },\n {\n provide: MAT_LIST_CONFIG,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatListConfig\n },\n {\n provide: MAT_CHIPS_DEFAULT_OPTIONS,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatChipsDefaultOptions\n }\n ]\n})\nexport class NiceModule {\n /**\n * Constructor\n */\n constructor(@Optional() @SkipSelf() parentModule?: NiceModule) {\n if (parentModule) {\n throw new Error(\"NiceModule has already been loaded. Import this module in the AppModule only!\");\n }\n }\n}\n","/*\n * Public API Surface of nice-ui-kit-v2\n */\n\nexport * from \"./lib/animations\";\nexport * from \"./lib/api\";\nexport * from \"./lib/components\";\nexport * from \"./lib/directives\";\nexport * from \"./lib/pipes\";\nexport * from \"./lib/providers\";\nexport * from \"./lib/utils\";\nexport * from \"./lib/nice.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NiceUtilsService","i1.NiceAlertService","i2.NiceUtilsService","i3","i4","i5","i1","i2","i4.OptionsScrollDirective","i6","i7","i8","i9","i11","i12","i3.NiceAsyncTypeaheadService","i5.OptionsScrollDirective","i10","i4.CarouselLayoutPipe","i3.NiceDateRangePickerServiceService","i6.RangePresetComponent","i5.LocalizedDatePipe","i1.NiceConfigService","tap","i1.NiceMediaWatcherService","i1.NiceSplashScreenService","i2.NiceDrawerService","i3.NiceUtilsService","i2.ExportBottomSheetService","i2.DynamicOverlayContainer","i1.DynamicOverlay","i2.NiceAlertComponent","defaultOptions","i1.NiceNavigationService","i3.NiceTranslationContextService","i2.NiceTranslationContextService","i7.NiceTranslateWithContextPipe","i5.NiceHorizontalNavigationBasicItemComponent","i6.NiceHorizontalNavigationDividerItemComponent","i7.NiceShouldHidePipe","i8.NiceTranslateWithContextPipe","debounceTime","i4.NiceNavigationHintService","i7.NiceShowHintDirective","i8.NiceShouldShowHintPipe","i9.NiceTranslateWithContextPipe","i2.NiceNavigationService","i5.NiceVerticalNavigationBasicItemComponent","i4.NiceVerticalNavigationBasicItemComponent","i5.NiceVerticalNavigationCollapsableItemComponent","i6.NiceVerticalNavigationDividerItemComponent","i7.NiceVerticalNavigationSpacerItemComponent","i8.NiceShouldHidePipe","i6.NiceVerticalNavigationCollapsableItemComponent","i7.NiceVerticalNavigationDividerItemComponent","i8.NiceVerticalNavigationGroupItemComponent","i9.NiceVerticalNavigationSpacerItemComponent","i10.NiceTranslateWithContextPipe","merge","i7.NiceNavigationHintService","i9.NiceScrollbarDirective","i10.NiceVerticalNavigationAsideItemComponent","i11.NiceVerticalNavigationBasicItemComponent","i12.NiceVerticalNavigationCollapsableItemComponent","i13.NiceVerticalNavigationDividerItemComponent","i14.NiceVerticalNavigationGroupItemComponent","i15.NiceVerticalNavigationSpacerItemComponent","i16.NiceShouldHidePipe","i4.NiceLottieComponent","switchMap","i1.NiceSweetAlertService","i3.NiceAlertComponent","i1.NiceTranslationFormService","i1.TranslationContextDirective","i2.NiceTranslationFormService","i2.TranslationContextDirective","i3.NiceTranslationFormService","i1.NiceAsyncTypeaheadComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recursyve-nice-ui-kit.v2.mjs","sources":["../../../projects/nice-ui-kit-v2/src/lib/animations/defaults.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/expand-collapse.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/fade.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/shake.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/slide.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/zoom.ts","../../../projects/nice-ui-kit-v2/src/lib/animations/public-api.ts","../../../projects/nice-ui-kit-v2/src/lib/api/exceptions/api.exception.ts","../../../projects/nice-ui-kit-v2/src/lib/api/exceptions/exception.factory.ts","../../../projects/nice-ui-kit-v2/src/lib/api/interceptors/transform-response.interceptor.ts","../../../projects/nice-ui-kit-v2/src/lib/api/nice.api.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/utils/utils.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/utils/utils.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/alert/alert.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/alert/alert.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/alert/alert.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/alert/alert.module.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/type.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/array.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/case.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/colors.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/date.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/file.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/font-awesome.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/form-data.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/http-status.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/keyboard.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/lexorank.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/modal.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/number.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/object.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/promise.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/query-params.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/regex.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/utils/url.utils.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/assets-carousel.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/directives/assets-carousel-active-content.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/dropzone/dropzone.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/assets-carousel.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/assets-carousel.template.html","../../../projects/nice-ui-kit-v2/src/lib/directives/dropzone/dropzone.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/assets-carousel/assets-carousel.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/providers/async-typeahead.provider.ts","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/directives/options-scroll.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/typeahead.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/typeahead.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/directives/options-scroll.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/typeahead/typeahead.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/async-typeahead.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/providers/async-typeahead.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/async-typeahead.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/async-typeahead.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/async-typeahead/async-typeahead.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/base-form/base-form.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/base-form/form-submit.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/base-form/base-form.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/base-form/nice-base.form.ts","../../../projects/nice-ui-kit-v2/src/lib/components/card/card.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/card/card.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/card/card.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/picture-modal/picture-modal.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/picture-modal/picture-modal.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/picture-modal/picture-modal.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/carousel.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/pipe/carousel-layout.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/carousel.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/carousel.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/carousel/carousel.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/collapsable/collapsable.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/collapsable/collapsable.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/collapsable/collapsable.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/providers/date-range-picker.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/components/range-preset/range-preset.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/components/range-preset/range-preset.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/components/header/header.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/components/header/header.template.html","../../../projects/nice-ui-kit-v2/src/lib/pipes/localized-date.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/date-range-picker.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/date-range-picker.template.html","../../../projects/nice-ui-kit-v2/src/lib/pipes/boolean.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/capitalize-first-letter.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/ceil.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/entries.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/find-by-key.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/first-letter.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/floor.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/join-if-defined.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/link.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/localized-boolean.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/localized-currency.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/localized-date-only.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/minutes-to-time.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/number-to-ordinal-indicator.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/pad.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/phone.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/postal-code.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/round.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/range.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/seconds-to-time.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/sanitize-bypass.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/track-by-prop.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/pipes/pipes.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/date-range-picker/date-range-picker.module.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/config/config.constants.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/config/config.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/config/config.module.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/media-watcher/media-watcher.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/media-watcher/media-watcher.module.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/splash-screen/splash-screen.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/splash-screen/splash-screen.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/drawer/drawer.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/drawer/drawer.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/drawer/drawer.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/drawer/drawer.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/export-bottom-sheet/providers/export-bottom-sheet.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/export-bottom-sheet/export-bottom-sheet.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/export-bottom-sheet/export-bottom-sheet.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/export-bottom-sheet/export-bottom-sheet.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/form-error/form-error.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/form-error/control-status.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/form-error/form-error.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/horizontal-stepper/horizontal-stepper.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/horizontal-stepper/horizontal-stepper.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/horizontal-stepper/step.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/horizontal-stepper/horizontal-stepper.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/resize-canvas.ts","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/image-cropper.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/image-cropper.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/image-cropper-area.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/image-cropper/image-cropper.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/layout/layout.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/layout/layout.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading-spinner.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading-spinner.template.html","../../../projects/nice-ui-kit-v2/src/lib/providers/overlay/dynamic-overlay-container.service.ts","../../../projects/nice-ui-kit-v2/src/lib/providers/overlay/dynamic-overlay.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-spinner/loading-spinner.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/loading-toast.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/loading-toast/rxjs/show-loading-toast.operator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/lottie/lottie.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/lottie/lottie.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/lottie/lottie.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/components/hint-component-base.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/navigation.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/providers/translation-context.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/navigation.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/pipes/translate-with-context.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/basic/basic.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/basic/basic.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/divider/divider.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/divider/divider.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/pipes/should-hide.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/branch/branch.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/branch/branch.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/spacer/spacer.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/components/spacer/spacer.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/horizontal.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/horizontal/horizontal.component.html","../../../projects/nice-ui-kit-v2/src/lib/directives/scrollbar/scrollbar.types.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/scrollbar/scrollbar.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/scrollbar/scrollbar.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/providers/hint.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/directives/show-hint.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/pipes/should-show-hint.pipe.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/basic/basic.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/basic/basic.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/divider/divider.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/divider/divider.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/spacer/spacer.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/spacer/spacer.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/collapsable/collapsable.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/collapsable/collapsable.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/group/group.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/group/group.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/aside/aside.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/components/aside/aside.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/vertical.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/vertical/vertical.component.html","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/navigation.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/providers/hide-item.resolver.ts","../../../projects/nice-ui-kit-v2/src/lib/components/navigation/providers/hint.resolver.ts","../../../projects/nice-ui-kit-v2/src/lib/components/search-bar/search-bar.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/search-bar/search-bar.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/search-bar/search-bar.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/sweet-alert/sweet-alert.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/toast.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/rxjs/show-toast.operator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toast/rxjs/show-success-or-error-toast.operator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toggle-button-group/toggle-button.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toggle-button-group/toggle-button-group.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/toggle-button-group/toggle-button-group.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/toggle-button-group/toggle-button-group.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/providers/nice-translation-form.service.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/directives/translation-context.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/toggle/translation-toggle.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/toggle/translation-toggle.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/translation-form.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/textarea/translation-form-textarea.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/textarea/translation-form-textarea.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/textfield/translation-form-textfield.component.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/textfield/translation-form-textfield.template.html","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/validators/require-for-languages.validator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/components/translation-form.module.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/decorators/translation-form-group.decorator.ts","../../../projects/nice-ui-kit-v2/src/lib/components/translation-form/translation.form.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/autofocus/autofocus.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/autofocus/autofocus.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/autogrow/autogrow.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/autogrow/autogrow.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-async-typeahead/chip-async-typeahead.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-async-typeahead/chip-async-typeahead.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list-items/chip-list-item-label.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list.constant.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list-items/chip-list-items.component.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list-items/chip-list-items.template.html","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/chip-list/chip-list.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/draggable-list/draggable-list.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/draggable-list/draggable-list.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/image-error-placeholder/image-error-placeholder.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/image-error-placeholder/image-error-placeholder.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/material/nice-material-style.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/material/nice-rounded-style.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/material/material.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/modals/modal-opener.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/modals/modal-on-click.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/scroll-reset/scroll-reset.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/scroll-reset/scroll-reset.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/stop-propagation/click-stop-propagation.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/stop-propagation/stop-propagation.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/window/prevent-close-window.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/window/window-directive.module.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/rerender/rerender.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/directives/resolve/resolve.directive.ts","../../../projects/nice-ui-kit-v2/src/lib/types/constructor.ts","../../../projects/nice-ui-kit-v2/src/lib/nice.module.ts","../../../projects/nice-ui-kit-v2/src/public-api.ts","../../../projects/nice-ui-kit-v2/src/recursyve-nice-ui-kit.v2.ts"],"sourcesContent":["import { animate, animation, style, transition, trigger, useAnimation } from \"@angular/animations\";\n\nexport class NiceAnimationCurves {\n static STANDARD_CURVE = \"cubic-bezier(0.4, 0.0, 0.2, 1)\";\n static DECELERATION_CURVE = \"cubic-bezier(0.0, 0.0, 0.2, 1)\";\n static ACCELERATION_CURVE = \"cubic-bezier(0.4, 0.0, 1, 1)\";\n static SHARP_CURVE = \"cubic-bezier(0.4, 0.0, 0.6, 1)\";\n}\n\nexport class NiceAnimationDurations {\n static COMPLEX = \"375ms\";\n static ENTERING = \"225ms\";\n static EXITING = \"195ms\";\n}\n\nconst customAnimation = animation([\n style({\n opacity: \"{{opacity}}\",\n transform: \"scale({{scale}}) translate3d({{x}}, {{y}}, {{z}})\"\n }),\n animate(\"{{duration}} {{delay}} cubic-bezier(0.0, 0.0, 0.2, 1)\", style(\"*\"))\n], {\n params: {\n duration: \"200ms\",\n delay: \"0ms\",\n opacity: \"0\",\n scale: \"1\",\n x: \"0\",\n y: \"0\",\n z: \"0\"\n }\n});\n\nconst defaultAnimation = trigger(\"animate\", [transition(\"void => *\", [useAnimation(customAnimation)])]);\n\nexport { defaultAnimation };\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { NiceAnimationCurves, NiceAnimationDurations } from \"./defaults\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Expand / collapse\n// -----------------------------------------------------------------------------------------------------\nconst expandCollapse = trigger(\"expandCollapse\",\n [\n state(\"void, collapsed\",\n style({\n height: \"0\"\n })\n ),\n\n state(\"*, expanded\",\n style(\"*\")\n ),\n\n // Prevent the transition if the state is false\n transition(\"void <=> false, collapsed <=> false, expanded <=> false\", []),\n\n // Transition\n transition(\"void <=> *, collapsed <=> expanded\",\n animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\nexport { expandCollapse };\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { NiceAnimationCurves, NiceAnimationDurations } from \"./defaults\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in\n// -----------------------------------------------------------------------------------------------------\nconst fadeIn = trigger(\"fadeIn\",\n [\n state(\"void\",\n style({\n opacity: 0\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in top\n// -----------------------------------------------------------------------------------------------------\nconst fadeInTop = trigger(\"fadeInTop\",\n [\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(0, -100%, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in bottom\n// -----------------------------------------------------------------------------------------------------\nconst fadeInBottom = trigger(\"fadeInBottom\",\n [\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(0, 100%, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in left\n// -----------------------------------------------------------------------------------------------------\nconst fadeInLeft = trigger(\"fadeInLeft\",\n [\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(-100%, 0, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade in right\n// -----------------------------------------------------------------------------------------------------\nconst fadeInRight = trigger(\"fadeInRight\",\n [\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(100%, 0, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out\n// -----------------------------------------------------------------------------------------------------\nconst fadeOut = trigger(\"fadeOut\",\n [\n state(\"*\",\n style({\n opacity: 1\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out top\n// -----------------------------------------------------------------------------------------------------\nconst fadeOutTop = trigger(\"fadeOutTop\",\n [\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(0, -100%, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out bottom\n// -----------------------------------------------------------------------------------------------------\nconst fadeOutBottom = trigger(\"fadeOutBottom\",\n [\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(0, 100%, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out left\n// -----------------------------------------------------------------------------------------------------\nconst fadeOutLeft = trigger(\"fadeOutLeft\",\n [\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(-100%, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Fade out right\n// -----------------------------------------------------------------------------------------------------\nconst fadeOutRight = trigger(\"fadeOutRight\",\n [\n state(\"*\",\n style({\n opacity: 1,\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"translate3d(100%, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\nexport { fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight, fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight };\n","import { animate, keyframes, style, transition, trigger } from \"@angular/animations\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Shake\n// -----------------------------------------------------------------------------------------------------\nconst shake = trigger(\"shake\",\n [\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *, * => true\",\n [\n animate(\"{{timings}}\",\n keyframes([\n style({\n transform: \"translate3d(0, 0, 0)\",\n offset: 0\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.1\n }),\n style({\n transform: \"translate3d(10px, 0, 0)\",\n offset: 0.2\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.3\n }),\n style({\n transform: \"translate3d(10px, 0, 0)\",\n offset: 0.4\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.5\n }),\n style({\n transform: \"translate3d(10px, 0, 0)\",\n offset: 0.6\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.7\n }),\n style({\n transform: \"translate3d(10px, 0, 0)\",\n offset: 0.8\n }),\n style({\n transform: \"translate3d(-10px, 0, 0)\",\n offset: 0.9\n }),\n style({\n transform: \"translate3d(0, 0, 0)\",\n offset: 1\n })\n ])\n )\n ],\n {\n params: {\n timings: \"0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955)\"\n }\n }\n )\n ]\n);\n\nexport { shake };\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { NiceAnimationCurves, NiceAnimationDurations } from \"./defaults\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide in top\n// -----------------------------------------------------------------------------------------------------\nconst slideInTop = trigger(\"slideInTop\",\n [\n state(\"void\",\n style({\n transform: \"translate3d(0, -100%, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide in bottom\n// -----------------------------------------------------------------------------------------------------\nconst slideInBottom = trigger(\"slideInBottom\",\n [\n state(\"void\",\n style({\n transform: \"translate3d(0, 100%, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide in left\n// -----------------------------------------------------------------------------------------------------\nconst slideInLeft = trigger(\"slideInLeft\",\n [\n state(\"void\",\n style({\n transform: \"translate3d(-100%, 0, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide in right\n// -----------------------------------------------------------------------------------------------------\nconst slideInRight = trigger(\"slideInRight\",\n [\n state(\"void\",\n style({\n transform: \"translate3d(100%, 0, 0)\"\n })\n ),\n\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide out top\n// -----------------------------------------------------------------------------------------------------\nconst slideOutTop = trigger(\"slideOutTop\",\n [\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n transform: \"translate3d(0, -100%, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide out bottom\n// -----------------------------------------------------------------------------------------------------\nconst slideOutBottom = trigger(\"slideOutBottom\",\n [\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n transform: \"translate3d(0, 100%, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide out left\n// -----------------------------------------------------------------------------------------------------\nconst slideOutLeft = trigger(\"slideOutLeft\",\n [\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n transform: \"translate3d(-100%, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Slide out right\n// -----------------------------------------------------------------------------------------------------\nconst slideOutRight = trigger(\"slideOutRight\",\n [\n state(\"*\",\n style({\n transform: \"translate3d(0, 0, 0)\"\n })\n ),\n\n state(\"void\",\n style({\n transform: \"translate3d(100%, 0, 0)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\nexport { slideInTop, slideInBottom, slideInLeft, slideInRight, slideOutTop, slideOutBottom, slideOutLeft, slideOutRight };\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { NiceAnimationCurves, NiceAnimationDurations } from \"./defaults\";\n\n// -----------------------------------------------------------------------------------------------------\n// @ Zoom in\n// -----------------------------------------------------------------------------------------------------\nconst zoomIn = trigger(\"zoomIn\",\n [\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"scale(0.5)\"\n })\n ),\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"scale(1)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"void => false\", []),\n\n // Transition\n transition(\"void => *\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.ENTERING} ${NiceAnimationCurves.DECELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\n// -----------------------------------------------------------------------------------------------------\n// @ Zoom out\n// -----------------------------------------------------------------------------------------------------\nconst zoomOut = trigger(\"zoomOut\",\n [\n\n state(\"*\",\n style({\n opacity: 1,\n transform: \"scale(1)\"\n })\n ),\n\n state(\"void\",\n style({\n opacity: 0,\n transform: \"scale(0.5)\"\n })\n ),\n\n // Prevent the transition if the state is false\n transition(\"false => void\", []),\n\n // Transition\n transition(\"* => void\", animate(\"{{timings}}\"),\n {\n params: {\n timings: `${NiceAnimationDurations.EXITING} ${NiceAnimationCurves.ACCELERATION_CURVE}`\n }\n }\n )\n ]\n);\n\nexport { zoomIn, zoomOut };\n\n","import { defaultAnimation } from \"./defaults\";\nimport { expandCollapse } from \"./expand-collapse\";\nimport {\n fadeIn,\n fadeInBottom,\n fadeInLeft,\n fadeInRight,\n fadeInTop,\n fadeOut,\n fadeOutBottom,\n fadeOutLeft,\n fadeOutRight,\n fadeOutTop\n} from \"./fade\";\nimport { shake } from \"./shake\";\nimport { slideInBottom, slideInLeft, slideInRight, slideInTop, slideOutBottom, slideOutLeft, slideOutRight, slideOutTop } from \"./slide\";\nimport { zoomIn, zoomOut } from \"./zoom\";\n\nexport const niceAnimations = [\n defaultAnimation,\n expandCollapse,\n fadeIn, fadeInTop, fadeInBottom, fadeInLeft, fadeInRight,\n fadeOut, fadeOutTop, fadeOutBottom, fadeOutLeft, fadeOutRight,\n shake,\n slideInTop, slideInBottom, slideInLeft, slideInRight,\n slideOutTop, slideOutBottom, slideOutLeft, slideOutRight,\n zoomIn, zoomOut\n];\n","export abstract class NiceApiException<Code> {\n public abstract code: Code;\n}\n","import { HttpErrorResponse } from \"@angular/common/http\";\nimport { NiceApiException } from \"./api.exception\";\n\nexport abstract class NiceHttpExceptionFactory<Code = any> {\n public transform(error: HttpErrorResponse): NiceApiException<Code> | HttpErrorResponse {\n if (error.error?.message === undefined) {\n return error;\n }\n return this.transformCodeError(error.error.message, error.error);\n }\n\n protected abstract transformCodeError(code: Code, data: any): NiceApiException<Code>;\n}\n","import { HttpContextToken, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from \"@angular/common/http\";\nimport { Injectable, Type } from \"@angular/core\";\nimport { plainToInstance } from \"class-transformer\";\nimport { map } from \"rxjs/operators\";\n\nexport const TRANSFORM_TYPE = new HttpContextToken<Type<any>>(() => null);\n\n@Injectable()\nexport class NiceTransformResponseInterceptor implements HttpInterceptor {\n public intercept(req: HttpRequest<any>, next: HttpHandler) {\n return next.handle(req).pipe(\n map(event => {\n if (event instanceof HttpResponse) {\n const type = req.context.get(TRANSFORM_TYPE);\n if (!type) {\n return event;\n }\n\n return event.clone({\n body: plainToInstance(type, event.body)\n });\n }\n\n return event;\n })\n );\n }\n}\n","import { HttpClient, HttpContext, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Type } from \"@angular/core\";\nimport { catchError, Observable } from \"rxjs\";\nimport { AbstractConstructor, Constructor } from \"../types/constructor\";\nimport { NiceHttpExceptionFactory } from \"./exceptions/exception.factory\";\nimport { TRANSFORM_TYPE } from \"./interceptors/transform-response.interceptor\";\n\nexport interface HttpOptions {\n type?: Type<any>;\n context?: HttpContext;\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n responseType?: \"text\" | \"json\" | \"arraybuffer\" | \"blob\";\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n}\n\nexport interface NiceApiDefinition {\n url(route?: string): string;\n delete<T>(route?: string, options?: HttpOptions): Observable<T>;\n get<T>(route?: string, options?: HttpOptions): Observable<T>;\n patch<T>(route?: string, body?: any, options?: HttpOptions): Observable<T>;\n post<T>(route?: string, body?: any, options?: HttpOptions): Observable<T>;\n put<T>(route?: string, body?: any, options?: HttpOptions): Observable<T>;\n}\n\nexport interface HasNiceApiDefinition {\n exceptionFactory: NiceHttpExceptionFactory;\n httpClient: HttpClient;\n apiUrl: string;\n path: string;\n}\n\ntype NiceApiDefinitionCtor = Constructor<NiceApiDefinition> & AbstractConstructor<NiceApiDefinition>;\n\nexport function mixinNiceApi<C extends AbstractConstructor<HasNiceApiDefinition>>(\n base: C,\n): NiceApiDefinitionCtor & C;\nexport function mixinNiceApi<C extends Constructor<HasNiceApiDefinition>>(\n base: C,\n): NiceApiDefinitionCtor & C {\n return class extends base {\n public url(route = \"\"): string {\n if (!this.path || this.path === \"\") {\n if (route === \"\") {\n return this.apiUrl;\n }\n\n if (route === \"/\") {\n return `${this.apiUrl}/`;\n }\n\n return `${this.apiUrl}/${route}`;\n }\n\n if (route === \"\") {\n return `${this.apiUrl}/${this.path}`;\n }\n\n if (route === \"/\") {\n return `${this.apiUrl}/${this.path}/`;\n }\n\n return `${this.apiUrl}/${this.path}/${route}`;\n }\n\n public delete<T>(route = \"\", options?: HttpOptions): Observable<T> {\n return this.httpClient.delete<T>(this.url(route), this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public get<T>(route = \"\", options?: HttpOptions): Observable<T> {\n return this.httpClient.get<T>(this.url(route), this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public head<T>(route = \"\", options?: HttpOptions): Observable<T> {\n return this.httpClient.head<T>(this.url(route), this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public patch<T>(route = \"\", body?: any, options?: HttpOptions): Observable<T> {\n return this.httpClient.patch<T>(this.url(route), body, this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public post<T>(route = \"\", body?: any, options?: HttpOptions): Observable<T> {\n return this.httpClient.post<T>(this.url(route), body, this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n public put<T>(route = \"\", body?: any, options?: HttpOptions): Observable<T> {\n return this.httpClient.put<T>(this.url(route), body, this.transformOptions(options) as any).pipe(\n catchError(e => this.transformError(e))\n );\n }\n\n private transformError(error: HttpErrorResponse): Observable<any> {\n if (!this.exceptionFactory) {\n throw error;\n }\n throw this.exceptionFactory.transform(error);\n }\n\n private transformOptions(options?: HttpOptions): HttpOptions {\n if (!options) {\n return options;\n }\n\n const { type, context: c, ...values } = options;\n const context = c ?? new HttpContext();\n if (type) {\n context.set(TRANSFORM_TYPE, type);\n }\n return {\n ...values,\n responseType: values.responseType ?? \"json\",\n context\n };\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceUtilsService {\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Generates a random id\n */\n public randomId(length: number = 10): string {\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let name = \"\";\n\n for (let i = 0; i < 10; i++) {\n name += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n\n return name;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceUtilsService } from \"./utils.service\";\n\n@NgModule({\n providers: [NiceUtilsService]\n})\nexport class NiceUtilsModule {\n constructor(private _niceUtilsService: NiceUtilsService) {}\n}\n","import { Injectable } from \"@angular/core\";\nimport { Observable, ReplaySubject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceAlertService {\n private readonly _onDismiss: ReplaySubject<string> = new ReplaySubject<string>(1);\n private readonly _onShow: ReplaySubject<string> = new ReplaySubject<string>(1);\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Getter for onDismiss\n */\n public get onDismiss(): Observable<any> {\n return this._onDismiss.asObservable();\n }\n\n /**\n * Getter for onShow\n */\n public get onShow(): Observable<any> {\n return this._onShow.asObservable();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Dismiss the alert\n */\n public dismiss(name: string): void {\n // Return if the name is not provided\n if (!name) {\n return;\n }\n\n // Execute the observable\n this._onDismiss.next(name);\n }\n\n /**\n * Show the dismissed alert\n */\n public show(name: string): void {\n // Return if the name is not provided\n if (!name) {\n return;\n }\n\n // Execute the observable\n this._onShow.next(name);\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { niceAnimations } from \"../../animations\";\nimport { NiceUtilsService } from \"../../providers/utils\";\nimport { NiceAlertService } from \"./alert.service\";\nimport { NiceAlertType, NiceAlertAppearance, NiceAlertColor } from \"./alert.types\";\n\n@Component({\n selector: \"nice-alert\",\n templateUrl: \"./alert.template.html\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: niceAnimations,\n exportAs: \"niceAlert\",\n standalone: false\n})\nexport class NiceAlertComponent implements OnChanges, OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_dismissible: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_dismissed: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_disableAnimation: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_showIcon: BooleanInput;\n\n @Input()\n public appearance: NiceAlertAppearance = \"soft\";\n\n @Input()\n public dismissed = false;\n\n @Input()\n public dismissible = false;\n\n @Input()\n public disableAnimation = false;\n\n @Input()\n public name: string = this._niceUtilsService.randomId();\n\n @Input()\n public showIcon = true;\n\n @Input()\n public type: NiceAlertType = \"primary\";\n\n @Input()\n public color?: NiceAlertColor;\n\n @Output()\n public readonly dismissedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _unsubscribeAll: Subject<void> = new Subject<void>();\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceAlertService: NiceAlertService,\n private _niceUtilsService: NiceUtilsService\n ) {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n let types: { [className: string]: boolean } = {\n \"nice-alert-type-primary\": this.type === \"primary\",\n \"nice-alert-type-accent\": this.type === \"accent\",\n \"nice-alert-type-warn\": this.type === \"warn\",\n \"nice-alert-type-basic\": this.type === \"basic\",\n \"nice-alert-type-info\": this.type === \"info\",\n \"nice-alert-type-success\": this.type === \"success\",\n \"nice-alert-type-warning\": this.type === \"warning\",\n \"nice-alert-type-error\": this.type === \"error\"\n };\n\n if (this.color) {\n types = {\n \"nice-alert-type-primary\": this.color === \"primary\",\n \"nice-alert-type-accent\": this.color === \"accent\",\n \"nice-alert-type-warn\": this.color === \"warn\"\n };\n }\n\n return {\n \"nice-alert-appearance-border\": this.appearance === \"border\",\n \"nice-alert-appearance-fill\": this.appearance === \"fill\",\n \"nice-alert-appearance-outline\": this.appearance === \"outline\",\n \"nice-alert-appearance-soft\": this.appearance === \"soft\",\n \"nice-alert-dismissed\": this.dismissed,\n \"nice-alert-dismissible\": this.dismissible,\n \"nice-alert-show-icon\": this.showIcon,\n ...types\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n *\n * @param changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Dismissed\n if (\"dismissed\" in changes) {\n // Coerce the value to a boolean\n this.dismissed = coerceBooleanProperty(changes.dismissed.currentValue);\n\n // Dismiss/show the alert\n this._toggleDismiss(this.dismissed);\n }\n\n // Dismissible\n if (\"dismissible\" in changes) {\n // Coerce the value to a boolean\n this.dismissible = coerceBooleanProperty(changes.dismissible.currentValue);\n }\n\n // Disable animation\n if (\"disableAnimation\" in changes) {\n // Coerce the value to a boolean\n this.disableAnimation = coerceBooleanProperty(changes.disableAnimation.currentValue);\n }\n\n // Show icon\n if (\"showIcon\" in changes) {\n // Coerce the value to a boolean\n this.showIcon = coerceBooleanProperty(changes.showIcon.currentValue);\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Subscribe to the dismiss calls\n this._niceAlertService.onDismiss\n .pipe(\n filter((name) => this.name === name),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe(() => {\n\n // Dismiss the alert\n this.dismiss();\n });\n\n // Subscribe to the show calls\n this._niceAlertService.onShow\n .pipe(\n filter((name) => this.name === name),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe(() => {\n\n // Show the alert\n this.show();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next();\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Dismiss the alert\n */\n public dismiss(): void {\n // Return if the alert is already dismissed\n if (this.dismissed) {\n return;\n }\n\n // Dismiss the alert\n this._toggleDismiss(true);\n }\n\n /**\n * Show the dismissed alert\n */\n public show(): void {\n // Return if the alert is already showing\n if (!this.dismissed) {\n return;\n }\n\n // Show the alert\n this._toggleDismiss(false);\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Dismiss/show the alert\n *\n * @param dismissed\n * @private\n */\n private _toggleDismiss(dismissed: boolean): void {\n // Return if the alert is not dismissible\n if (!this.dismissible) {\n return;\n }\n\n // Set the dismissed\n this.dismissed = dismissed;\n\n // Execute the observable\n this.dismissedChanged.next(this.dismissed);\n\n // Notify the change detector\n this._changeDetectorRef.markForCheck();\n }\n}\n","<div\n class=\"nice-alert-container\"\n *ngIf=\"!dismissible || dismissible && !dismissed\"\n [@fadeIn]=\"!dismissed && !disableAnimation\"\n [@fadeOut]=\"!dismissed && !disableAnimation\">\n\n <!-- Border -->\n <div\n class=\"nice-alert-border\"\n *ngIf=\"appearance === 'border'\"></div>\n\n <!-- Icon -->\n <div\n class=\"nice-alert-icon\"\n *ngIf=\"showIcon\">\n\n <!-- Custom icon -->\n <div class=\"nice-alert-custom-icon\">\n <ng-content select=\"[niceAlertIcon]\"></ng-content>\n </div>\n\n <!-- Default icons -->\n <div class=\"nice-alert-default-icon\">\n\n <mat-icon\n *ngIf=\"type === 'primary'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'accent'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warn'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'basic'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'info'\"\n [svgIcon]=\"'heroicons_solid:information-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'success'\"\n [svgIcon]=\"'heroicons_solid:check-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'warning'\"\n [svgIcon]=\"'heroicons_solid:exclamation-circle'\"></mat-icon>\n\n <mat-icon\n *ngIf=\"type === 'error'\"\n [svgIcon]=\"'heroicons_solid:x-circle'\"></mat-icon>\n\n </div>\n\n </div>\n\n <!-- Content -->\n <div class=\"nice-alert-content\">\n\n <div class=\"nice-alert-title\">\n <ng-content select=\"[niceAlertTitle]\"></ng-content>\n </div>\n\n <div class=\"nice-alert-message\">\n <ng-content></ng-content>\n </div>\n\n </div>\n\n <!-- Dismiss button -->\n <button\n class=\"nice-alert-dismiss-button\"\n mat-icon-button\n (click)=\"dismiss()\">\n <mat-icon [svgIcon]=\"'heroicons_solid:x'\"></mat-icon>\n </button>\n\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { NiceAlertComponent } from \"./alert.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatIconModule\n ],\n declarations: [\n NiceAlertComponent\n ],\n exports: [\n NiceAlertComponent\n ]\n})\nexport class NiceAlertModule {\n}\n","export const isNullOrUndefined = (value: unknown): boolean => {\n return TypeUtils.isNullOrUndefined(value);\n};\n\nexport const isNotNullOrUndefined = (value: unknown): boolean => {\n return TypeUtils.isNotNullOrUndefined(value);\n};\n\nexport class TypeUtils {\n public static isNullOrUndefined(value: unknown): boolean {\n return value === null || value === undefined;\n }\n\n public static isNotNullOrUndefined(value: unknown): boolean {\n return !TypeUtils.isNullOrUndefined(value);\n }\n}\n","import { isNullOrUndefined } from \"./type.utils\";\n\nexport class ArrayUtils {\n public static joinIfDefined(array: any[], join = \" \"): string {\n return array?.filter(val => val)?.join(join);\n }\n\n public static uniqueObjects<Item>(array: Item[], keySelector: (item: Item) => unknown): Item[] {\n return Array.from(new Map(array.map(x => [keySelector(x), x])).values());\n }\n\n public static unique<T>(\n array: T[],\n comparator: (value1: T, value2: T) => boolean = (value1: T, value2: T) => value1 === value2\n ): T[] {\n if (isNullOrUndefined(array)) {\n return array;\n }\n\n const newArray: T[] = [];\n for (const value of array) {\n if (newArray.findIndex((valueInArray) => comparator(valueInArray, value)) < 0) {\n newArray.push(value);\n }\n }\n\n return newArray;\n }\n\n public static equals(arr1: any[], arr2: any[], options: { shallow: boolean, ordered: boolean } = { shallow: true, ordered: false }): boolean {\n if (options.shallow && !options.ordered) {\n return this.unorderedShallowEquals(arr1, arr2);\n }\n\n // TODO: Implement other types of equals.\n throw new Error(\"Not implemented.\");\n }\n\n private static unorderedShallowEquals(arr1: any[], arr2: any[]): boolean {\n return (arr1 ?? []).every((arr1Element) => (arr2 ?? []).includes(arr1Element))\n && (arr2 ?? []).every((arr2Element) => (arr1 ?? []).includes(arr2Element));\n }\n\n public static sortByKey(array: any[], key: string) {\n return array.sort(ArrayUtils.sortByKeyFn(key));\n }\n\n public static sortByKeyFn(key: string) {\n return (a, b) => {\n if (a[key] < b[key]) {\n return -1;\n }\n if (a[key] > b[key]) {\n return 1;\n }\n return 0;\n };\n }\n\n public static groupBy<Item, Key, Value>(\n array: Item[],\n keySelector: (item: Item) => Key,\n valueSelector: (item: Item) => Value[] | Value\n ): Map<Key, Value[]> {\n const groups: Map<Key, Value[]> = new Map<Key, Value[]>();\n for (const item of array) {\n const key: Key = keySelector(item);\n if (key == null) {\n continue;\n }\n let value: Value[] | Value = valueSelector(item);\n if (value == null) {\n continue;\n }\n\n if (!(value instanceof Array)) {\n value = [value];\n }\n\n if (!groups.has(key)) {\n groups.set(key, value);\n } else {\n groups.get(key).push(...value);\n }\n }\n return groups;\n }\n}\n\ndeclare global {\n interface Array<T> {\n distinct<T>(): Array<T>;\n\n groupBy<T>(value: T): T[];\n\n includesWithCallback(callbackfn: (value: T, index: number, array: T[]) => boolean): boolean;\n\n pushOrRemove<T>(value: T): void;\n\n replace<T>(item: T, ...newItems: T[]): Array<T>;\n\n skipNullValues(): T[];\n\n difference<T>(...not: T[]): T[];\n }\n}\n\nArray.prototype.distinct = function <T>(): T[] {\n return this.filter((value, index) => {\n return this.indexOf(value) === index;\n });\n};\n\nArray.prototype.groupBy = function <T>(property: T): T[] {\n return this.reduce((acc, obj) => {\n const key = obj[property];\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(obj);\n return acc;\n }, {});\n};\n\nArray.prototype.includesWithCallback = function <T>(callbackfn: (value: T, index: number, array: T[]) => boolean) {\n return this.findIndex(callbackfn) < 0;\n};\n\nArray.prototype.pushOrRemove = function <T>(value: T): void {\n const index = this.indexOf(value);\n if (index !== -1) {\n this.splice(index, 1);\n } else {\n this.push(value);\n }\n};\n\nArray.prototype.replace = function <T>(item: T, ...newItems: T[]): T[] {\n return [...this.slice(0, this.indexOf(item)), ...newItems, ...this.slice(this.indexOf(item) + 1, this.length)];\n};\n\nArray.prototype.skipNullValues = function <T>(): T[] {\n return this.filter(x => !!x);\n};\n\nArray.prototype.difference = function <T>(...not: T[]) {\n return this.filter(i => !not.includes(i));\n};\n","export class CaseUtils {\n // myValue -> my-value\n public static toCamelFromKebab(data: string): string {\n return data.replace(/(-\\w)/g, (m) => m[1].toUpperCase());\n }\n\n // MyValue -> my_value\n public static toSnakeCaseFromPascalCase(str: string): string {\n return str.replace(/[A-Z]/g, (letter, index) => {\n if (index === 0) {\n return letter.toLowerCase();\n }\n const pastLetter = str[index - 1] as string;\n const nextLetter = str[index + 1] as string;\n if (pastLetter.toLowerCase() === pastLetter) {\n return `_${letter.toLowerCase()}`;\n }\n if (nextLetter && nextLetter.toLowerCase() === nextLetter) {\n return `_${letter.toLowerCase()}`;\n }\n return letter.toLowerCase();\n });\n }\n\n // myValue -> my_value\n public static toSnakeCaseFromCamelCase(str: string): string {\n return this.toSnakeCaseFromPascalCase(this.capitalizeFirstLetter(str));\n }\n\n // my_value -> myValue\n public static toCamelCaseFromSnakeCase(stringToConvert: string): string {\n return stringToConvert.replace(/(^[a-z]|_[a-z])/g, (letter) => {\n if (letter.length === 1) {\n return letter;\n }\n\n return letter[1].toUpperCase();\n });\n }\n\n // MyValue -> my-value\n public static toKebabCasePascalCase(str: string): string {\n return str\n .replace(/[A-Z]/g, (letter, index) => {\n return index === 0 ? letter.toLowerCase() : \"-\" + letter.toLowerCase();\n })\n .replace(/_/g, \"-\");\n }\n\n // my_value -> MyValue\n public static toPascalCaseFromSnakeCase(str: string): string {\n return str.replace(/(^[a-z]|_[a-z])/g, (letter) => {\n if (letter.length === 1) {\n return letter.toUpperCase();\n }\n\n return letter[1].toUpperCase();\n });\n }\n\n public static capitalizeFirstLetter(str: string): string {\n const firstLetter = str.substr(0, 1);\n return firstLetter.toUpperCase() + str.substr(1);\n }\n}\n","export class ColorsUtils {\n /**\n * https://codepen.io/cferdinandi/pen/Yomroj\n *\n * (c) 2019 Chris Ferdinandi, MIT License, https://gomakethings.com\n * Derived from work by Brian Suda, https://24ways.org/2010/calculating-color-contrast/\n */\n public static contrastFromHex(hex: string): string {\n if (hex.slice(0, 1) === \"#\") {\n hex = hex.slice(1);\n }\n\n // If a three-character hex, make six-character\n if (hex.length === 3) {\n hex = hex\n .split(\"\")\n .map((i) => i + i)\n .join(\"\");\n }\n\n // Convert to RGB value\n const r = parseInt(hex.substr(0, 2), 16);\n const g = parseInt(hex.substr(2, 2), 16);\n const b = parseInt(hex.substr(4, 2), 16);\n\n // Get YIQ ratio\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\n // Check contrast\n return yiq >= 128 ? \"000000\" : \"ffffff\";\n }\n}\n","import { isNullOrUndefined } from \"./type.utils\";\n\nexport class DateUtils {\n public static currentYear(): number {\n return new Date().getUTCFullYear();\n }\n\n public static extractTimeAsString(date: Date): string {\n if (!date) {\n return null;\n }\n\n const hours = date.getHours();\n const minutes = date.getMinutes();\n\n return `${(hours ?? \"\").toString().padStart(2, \"0\")}:${(minutes ?? \"\").toString().padStart(2, \"0\")}`;\n }\n\n public static setTimeFromString(date: Date, time: string): Date {\n if (isNullOrUndefined(time) || time.length === 0 || !time.includes(\":\")) {\n return date;\n }\n\n const parts = time.split(\":\");\n if (parts.length !== 2 || isNaN(+parts[0]) || isNaN(+parts[1])) {\n return date;\n }\n\n const [hours, minutes] = parts.map((part) => +part);\n const updatedDate = new Date(date);\n updatedDate.setHours(hours, minutes);\n return updatedDate;\n }\n}\n\ndeclare global {\n export interface Date {\n getSeason(): string;\n getYear(): number;\n }\n}\n\nDate.prototype.getSeason = function(): \"winter\" | \"spring\" | \"summer\" | \"fall\" {\n const month = this.getUTCMonth();\n const date = this.getUTCDate();\n\n if ((month === 11 && date >= 21) || (month >= 0 && month <= 1) || (month === 2 && date <= 19)) {\n return \"winter\";\n } else if ((month === 2 && date >= 20) || (month >= 3 && month <= 4) || (month === 5 && date <= 20)) {\n return \"spring\";\n } else if ((month === 5 && date >= 21) || (month >= 6 && month <= 7) || (month === 8 && date <= 22)) {\n return \"summer\";\n } else {\n return \"fall\";\n }\n};\n\nDate.prototype.getYear = function (): number {\n return +this.getFullYear().toString().substr(-2);\n};\n","export class FileUtils {\n public static async getFileFromUrl(url?: string, name = \"\"): Promise<File | undefined> {\n if (!url) {\n return undefined;\n }\n const res = await fetch(url);\n return new File([await res.blob()], name);\n }\n\n public static async selectFile(accept: string, multiple = false): Promise<File | File[]> {\n return new Promise(resolve => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.multiple = multiple;\n input.accept = accept;\n\n input.onchange = () => {\n if (input.files) {\n const files = Array.from(input.files);\n return resolve(multiple ? files : files[0]);\n }\n\n resolve(null);\n };\n\n input.click();\n });\n }\n\n public static downloadFile(fileName: string, content: Blob, downloadLink?: HTMLAnchorElement): void {\n if (!downloadLink) {\n downloadLink = document.createElement(\"a\");\n document.body.appendChild(downloadLink);\n downloadLink.style.display = \"none\";\n }\n\n const dataUrl = window.URL.createObjectURL(content);\n downloadLink.href = dataUrl;\n downloadLink.download = fileName;\n downloadLink.click();\n window.URL.revokeObjectURL(dataUrl);\n document.body.removeChild(downloadLink);\n }\n\n public static openFile(file: Blob, options: { openInNewTab: boolean } = { openInNewTab: true }): void {\n const anchor = document.createElement(\"a\");\n document.body.appendChild(anchor);\n anchor.style.display = \"none\";\n\n const dataUrl = window.URL.createObjectURL(file);\n anchor.href = dataUrl;\n if (options.openInNewTab) {\n anchor.target = \"_blank\";\n }\n anchor.click();\n window.URL.revokeObjectURL(dataUrl);\n document.body.removeChild(anchor);\n }\n\n public static downloadUrl(url: string): void {\n const downloadLink = document.createElement(\"a\");\n document.body.appendChild(downloadLink);\n downloadLink.style.display = \"none\";\n downloadLink.href = url;\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }\n\n public static openPrintableWindow(content: string): void {\n const win = window.open(\"\");\n if (!win) {\n return;\n }\n\n win.document.open();\n win.document.write(content);\n win.document.close();\n }\n\n public static filenameToExtension(filename: string): string {\n const re = /(?:\\.([^.]+))?$/;\n return re.exec(filename)[1];\n }\n\n public static getDataUrl(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = error => reject(error);\n });\n }\n\n public static async getFileFromDataUrl(data: string, name: string): Promise<File> {\n const base64Response = await fetch(data);\n const blob = await base64Response.blob();\n const [, type] = blob.type.split(\"/\");\n return new File([blob], `${name}.${type}`, {\n lastModified: Date.now(),\n type: blob.type\n });\n }\n}\n","export class FontAwesomeUtils {\n public static fileExtensionToIcon(extension: string): string {\n switch (extension) {\n case \"pdf\":\n return \"fa-file-pdf\";\n case \"doc\":\n case \"docx\":\n return \"fa-file-word\";\n case \"xlsx\":\n case \"xls\":\n return \"fa-file-excel\";\n case \"csv\":\n return \"fa-file-csv\";\n case \"ppt\":\n case \"pptx\":\n return \"fa-file-powerpoint\";\n case \"mp4\":\n case \"mov\":\n case \"wmv\":\n case \"webm\":\n return \"fa-file-video\";\n case \"mp3\":\n case \"wav\":\n return \"fa-file-audio\";\n case \"jpeg\":\n case \"jpg\":\n case \"png\":\n case \"gif\":\n case \"svg\":\n return \"fa-file-image\";\n case \"zip\":\n return \"fa-file-archive\";\n case \"txt\":\n return \"fa-file-alt\";\n default:\n return \"fa-file\";\n }\n }\n}\n","import { isNullOrUndefined } from \"./type.utils\";\n\nexport class FormDataUtils {\n public static appendFormDataWithDto(form: FormData, value: object): void {\n if (typeof value !== \"object\") {\n return;\n }\n\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n FormDataUtils.appendFormDataWithValue(form, value[key], key);\n }\n }\n }\n\n // FormData does not handle object and arrays, instead we add them as:\n // Object: forms.append(name[key], value) (e.g. forms.append(\"company-admin[name]\", \"digitalmomentum\"))\n // Array: forms.append(name[index], value) (e.g. forms.append(\"expressions[0]\", \"incroyable\"))\n // Recursive method that appends values, objects and arrays to the forms as name.\n public static appendFormDataWithValue(form: FormData, value, name) {\n if (isNullOrUndefined(value)) {\n return;\n }\n\n if (value instanceof Array) {\n for (let i = 0; i < value.length; ++i) {\n FormDataUtils.appendFormDataWithValue(form, value[i], name + `[${i}]`);\n }\n } else if (value instanceof Date) {\n form.append(name, value.toISOString());\n } else if (value instanceof Object) {\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n FormDataUtils.appendFormDataWithValue(form, value[key], name + `[${key}]`);\n }\n }\n } else {\n form.append(name, value);\n }\n }\n}\n","export enum HttpStatusCodes {\n CONTINUE = 100,\n SWITCHING_PROTOCOLS = 101,\n PROCESSING = 102,\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NON_AUTHORITATIVE_INFORMATION = 203,\n NO_CONTENT = 204,\n RESET_CONTENT = 205,\n PARTIAL_CONTENT = 206,\n AMBIGUOUS = 300,\n MOVED_PERMANENTLY = 301,\n FOUND = 302,\n SEE_OTHER = 303,\n NOT_MODIFIED = 304,\n TEMPORARY_REDIRECT = 307,\n PERMANENT_REDIRECT = 308,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n PAYMENT_REQUIRED = 402,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n METHOD_NOT_ALLOWED = 405,\n NOT_ACCEPTABLE = 406,\n PROXY_AUTHENTICATION_REQUIRED = 407,\n REQUEST_TIMEOUT = 408,\n CONFLICT = 409,\n GONE = 410,\n LENGTH_REQUIRED = 411,\n PRECONDITION_FAILED = 412,\n PAYLOAD_TOO_LARGE = 413,\n URI_TOO_LONG = 414,\n UNSUPPORTED_MEDIA_TYPE = 415,\n REQUESTED_RANGE_NOT_SATISFIABLE = 416,\n EXPECTATION_FAILED = 417,\n UNPROCESSABLE_ENTITY = 422,\n TOO_MANY_REQUESTS = 429,\n INTERNAL_SERVER_ERROR = 500,\n NOT_IMPLEMENTED = 501,\n BAD_GATEWAY = 502,\n SERVICE_UNAVAILABLE = 503,\n GATEWAY_TIMEOUT = 504,\n HTTP_VERSION_NOT_SUPPORTED = 505\n}\n","export enum KeyboardCodes {\n ArrowUp = \"ArrowUp\",\n ArrowDown = \"ArrowDown\",\n Enter = \"Enter\",\n Shift = \"Shift\",\n Comma = \"Comma\"\n}\n","import { LexoRank } from \"lexorank\";\n\nexport class LexoRankUtils {\n public static compareStringFn(previousRank?: string, nextRank?: string): number {\n if (!previousRank || !nextRank) {\n return 0;\n }\n\n return LexoRank.parse(previousRank).compareTo(LexoRank.parse(nextRank));\n }\n\n public static compareFn(previousRank: LexoRank, nextRank: LexoRank): number {\n return previousRank.compareTo(nextRank);\n }\n\n public static getNewRank(afterRank?: string, beforeRank?: string): string {\n if (afterRank && beforeRank) {\n if (LexoRank.parse(beforeRank).equals(LexoRank.parse(afterRank))) {\n return LexoRank.parse(afterRank).genPrev().toString();\n }\n\n return LexoRank.parse(afterRank).between(LexoRank.parse(beforeRank)).toString();\n }\n\n if (afterRank) {\n return LexoRank.parse(afterRank).genPrev().toString();\n }\n\n if (beforeRank) {\n return LexoRank.parse(beforeRank).genNext().toString();\n }\n\n return LexoRank.middle().toString();\n }\n}\n","export interface ModalData {\n mode: ModalMode;\n}\n\nexport enum ModalMode {\n Create,\n Edit\n}\n","export class NumberUtils {\n}\n\ndeclare global {\n interface Number {\n inRange(a: number, b: number): boolean;\n }\n}\n\nNumber.prototype.inRange = function (a: number, b: number): boolean {\n return this >= a && this <= b;\n};\n","import { isNullOrUndefined } from \"./type.utils\";\n\nexport class ObjectUtils {\n public static transformStringProperties(obj: any): object {\n for (const property in obj) {\n if (obj.hasOwnProperty(property)) {\n if (typeof obj[property] === \"object\") {\n obj = ObjectUtils.transformStringProperties(obj);\n } else {\n obj = ObjectUtils.stringPropertiesToNumber(obj, property);\n }\n }\n }\n\n return obj;\n }\n\n public static stringPropertiesToNumber(obj: any, property: string): object {\n if (!isNaN(obj[property])) {\n obj[property] = +obj[property];\n }\n\n return obj;\n }\n\n public static assignDefined(target: any, source: any): object {\n Object.keys(source).map(key => {\n if (source[key] !== undefined) {\n target[key] = source[key];\n }\n });\n\n return target;\n }\n\n public static areObjectsEqual(obj1: any, obj2: any): boolean {\n const keys1 = Object.keys(obj1).sort();\n const keys2 = Object.keys(obj2).sort();\n if (keys1.length !== keys2.length) {\n return false;\n }\n if (!keys1.every((k, i) => k === keys2[i])) {\n return false;\n }\n return keys1.every(kk => {\n const v1 = obj1[kk];\n const v2 = obj2[kk];\n if (Array.isArray(v1)) {\n return ObjectUtils.areObjectsEqual(v1, v2);\n } else if (typeof v1 === \"object\" && v1 !== null) {\n return ObjectUtils.areObjectsEqual(v1, v2);\n } else {\n return v1 === v2;\n }\n });\n }\n\n public static deepCopy(obj: any): any {\n // Handle the primitive types, null and undefined\n if (obj == null || typeof obj != \"object\") {\n return obj;\n }\n\n // Handle Date\n if (obj instanceof Date) {\n const copy = new Date();\n copy.setTime(obj.getTime());\n return copy;\n }\n\n // Handle Array\n if (obj instanceof Array) {\n const copy = [];\n for (const item of obj) {\n copy.push(ObjectUtils.deepCopy(item));\n }\n return copy;\n }\n\n // Handle Object\n if (obj instanceof Object) {\n const copy = {};\n for (const attr in obj) {\n if (obj.hasOwnProperty(attr)) {\n copy[attr] = ObjectUtils.deepCopy(obj[attr]);\n }\n }\n return copy;\n }\n\n throw new Error(\"Unable to copy obj! Its type isn't supported.\");\n }\n\n // To do an immutable assignment, we need to first deep copy the model and then run the deep assign.\n public static immutableDeepAssign<Source, Target>(key: string, deepObj: Source, obj: Target): Target {\n const output = ObjectUtils.deepCopy(obj);\n ObjectUtils.deepAssign(key, deepObj, output);\n return output;\n }\n\n // Does a shallow assignment on a deep value. The value is located by the key.\n public static deepAssign<Source, Target>(key: string, deepObj: Source, obj: Target) {\n ObjectUtils.internalDeepAssign(key?.split(\".\"), deepObj, obj);\n }\n\n private static internalDeepAssign<Source, Target>(segments: string[], deepObj: Source, obj: Target) {\n // No more depth to be navigated through, we can do the shallow assignment.\n if (segments?.length === 0) {\n Object.assign(obj, deepObj);\n return;\n }\n\n if (isNullOrUndefined(obj)) {\n obj = {} as Target;\n }\n\n const segment = segments.shift();\n // If we cannot complete the key's path, we create it.\n if (!obj.hasOwnProperty(segment)) {\n obj[segment] = {};\n }\n\n ObjectUtils.internalDeepAssign(segments, deepObj, obj[segment]);\n }\n}\n","export class PromiseUtils {}\n\ndeclare global {\n export interface PromiseConstructor {\n delay(ms: number): Promise<void>;\n }\n}\n\n// tslint:disable-next-line:only-arrow-functions\nPromise.delay = function(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n};\n","import { HttpParams } from \"@angular/common/http\";\n\nexport class QueryParamsUtils {\n public static fromObject(obj: any): string {\n Object.entries(obj).forEach(([key, value]) => {\n if (value === undefined) {\n delete obj[key];\n }\n });\n return new HttpParams({\n fromObject: obj\n }).toString();\n }\n}\n","const lowerUpperDigit8 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8,}$/;\n\nexport class RegexUtils {\n public static email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n public static password = {\n // Used as default.\n // 8 chars, lower + upper + digit.\n lowerUpperDigit8\n };\n\n public static canadianPostalCode = /^((?!.*[DFIOQU])[A-VXYa-vxy][0-9][A-Za-z] ?[0-9][A-Za-z][0-9])?$/;\n}\n","export class UrlUtils {\n public static emailUrl(email: string): string {\n return `mailto:${email}`;\n }\n\n public static directionUrl(address: string, postalCode: string): string {\n return `https://www.google.com/maps/dir/?api=1&destination=${address}+${postalCode}`;\n }\n\n public static phoneCallUrl(phone: string, ext?: string): string {\n if (ext?.length) {\n return `tel:${phone};${ext}`;\n }\n\n return `tel:${phone}`;\n }\n\n // Takes location ref and returns fragment\n // http://localhost:4200/dashboard/profile returns [\"dashboard\", \"profile\"]\n public static getCurrentUrlFragments(): string[] {\n return window.location.href.replace(\"://\", \"\").split(\"/\").slice(1);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_ASSETS_CAROUSEL_OPTIONS = new InjectionToken(\"nice_assets_options\");\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[niceAssetsCarouselActiveContent]\",\n standalone: false\n})\nexport class NiceAssetsCarouselActiveContentDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { Directive, EventEmitter, HostBinding, HostListener, Output } from \"@angular/core\";\n\n@Directive({\n selector: \"[niceDropzone]\",\n standalone: false\n})\nexport class NiceDropzoneDirective {\n @HostBinding(\"class.file-over\")\n public fileOver: boolean;\n\n @Output()\n public filesDropped = new EventEmitter<FileList>();\n\n // Dragover listener\n @HostListener(\"dragover\", [\"$event\"])\n public onDragOver(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = true;\n }\n\n // Dragleave listener\n @HostListener(\"dragleave\", [\"$event\"])\n public onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n }\n\n // Drop listener\n @HostListener(\"drop\", [\"$event\"])\n public ondrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.fileOver = false;\n const files = event.dataTransfer.files;\n if (files.length > 0) {\n this.filesDropped.emit(files);\n }\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input, OnChanges, OnInit,\n Optional,\n Output,\n QueryList, SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { ThemePalette } from \"@angular/material/core\";\nimport { niceAnimations } from \"../../animations\";\nimport { FileUtils } from \"../../utils\";\nimport { NICE_ASSETS_CAROUSEL_OPTIONS } from \"./assets-carousel.constant\";\nimport { NiceAssetsCarouselActiveContentDirective } from \"./directives/assets-carousel-active-content.directive\";\n\nexport interface NiceAssets {\n type: \"image\" | \"video\";\n id?: number | string;\n url?: string;\n base64?: string;\n file?: File;\n}\n\nexport type NiceAssetsCarouselActionIcon = { matIcon: string; svgIcon?: string; } | { matIcon?: string; svgIcon: string; };\n\nexport interface NiceAssetsCarouselActions {\n icon: NiceAssetsCarouselActionIcon;\n name: string;\n action: (active: number) => void;\n}\n\nexport interface NiceAssetsCarouselOptions {\n actionButtons?: {\n moreOptions?: NiceAssetsCarouselActionIcon;\n addPhoto?: NiceAssetsCarouselActionIcon;\n remove?: NiceAssetsCarouselActionIcon;\n };\n addPhoto?: NiceAssetsCarouselActionIcon;\n leftArrow?: NiceAssetsCarouselActionIcon;\n rightArrow?: NiceAssetsCarouselActionIcon;\n upload?: NiceAssetsCarouselActionIcon;\n}\n\n@Component({\n selector: \"nice-assets-carousel\",\n templateUrl: \"assets-carousel.template.html\",\n styleUrls: [\"assets-carousel.theme.scss\"],\n encapsulation: ViewEncapsulation.None,\n animations: niceAnimations,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NiceAssetsCarouselComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class NiceAssetsCarouselComponent implements OnInit, OnChanges, ControlValueAccessor {\n public _activeTranslationPosition = 0;\n public _active = 0;\n public _assets: NiceAssets[] = [];\n public _activeAsset: NiceAssets;\n public _lastAsset = true;\n public _shouldTransform = false;\n public _activeVideoElement: ElementRef<HTMLVideoElement>;\n public _assetsElement: QueryList<ElementRef<HTMLDivElement>>;\n public defaultColor: ThemePalette = \"primary\";\n\n @ViewChild(\"fileInput\")\n public inputElement: ElementRef<HTMLInputElement>;\n\n @Input()\n public color: ThemePalette = this.defaultColor;\n\n @Input()\n public edit = false;\n\n @Input()\n public loading = false;\n\n @Input()\n public accept: string[] = [];\n\n @Input()\n public customActions: NiceAssetsCarouselActions[] = [];\n\n @Input()\n public imagesProcessor: (files: File[]) => Promise<File[]>;\n\n @Input()\n public multipleUpload = false;\n\n @Input()\n public visiblePreviewAsset = 4;\n\n @Input()\n public showAddAssetContainer = true;\n\n @ContentChild(NiceAssetsCarouselActiveContentDirective, { read: TemplateRef })\n public activeContent: TemplateRef<any>;\n\n @Output()\n public activeChange = new EventEmitter<number>();\n\n @Output()\n public removedAsset = new EventEmitter<NiceAssets>();\n\n public listStyle: { transform: string } = { transform: \"translateX(0px)\" };\n\n public showOverlay: boolean;\n\n private _imagesMimeTypes = [\"image/png\", \"image/jpeg\", \"image/webp\", \"image/avif\"];\n private propagate: (assets: NiceAssets[]) => void;\n\n @ViewChild(\"activeVideo\")\n public set activeVideoElement(activeVideoElement: ElementRef<HTMLVideoElement>) {\n this._activeVideoElement = activeVideoElement;\n\n if (!this._activeVideoElement || !this._assetsElement) {\n return;\n }\n\n this.startSyncVideo();\n }\n\n @ViewChildren(\"assets\")\n public set assetsElement(assetsElement: QueryList<ElementRef<HTMLDivElement>>) {\n this._assetsElement = assetsElement;\n\n if (!this._activeVideoElement || !this._assetsElement) {\n return;\n }\n\n this.startSyncVideo();\n }\n\n @Input()\n public set assets(assets: NiceAssets[]) {\n this.writeValue(assets ?? []);\n }\n\n private set activeTranslationPosition(position: number) {\n this._activeTranslationPosition = position;\n this.listStyle.transform = `translateX(calc((var(--nice-assets-carousel-asset-width) + var(--nice-assets-carousel-asset-gap)) * ${position}))`;\n }\n\n private set activeAsset(position: number) {\n if (position < 0) {\n position = 0;\n }\n\n this._active = position;\n this._activeAsset = this._assets[this._active];\n this._lastAsset = this._active === this._assets.length - 1 || !this._assets.length;\n this._shouldTransform\n = ((this.edit && this.showAddAssetContainer) && this._active >= (this.visiblePreviewAsset - 1))\n || this._active >= this.visiblePreviewAsset;\n this.activeChange.emit(this._active);\n }\n\n constructor(@Optional() @Inject(NICE_ASSETS_CAROUSEL_OPTIONS) public readonly options: NiceAssetsCarouselOptions) {\n if (!this.options) {\n this.options = {\n actionButtons: {\n addPhoto: {\n matIcon: \"photo_camera\"\n },\n moreOptions: {\n matIcon: \"more_vert\"\n },\n remove: {\n matIcon: \"delete\"\n }\n },\n addPhoto: {\n matIcon: \"photo_camera\"\n },\n leftArrow: {\n matIcon: \"chevron_left\"\n },\n rightArrow: {\n matIcon: \"chevron_right\"\n },\n upload: {\n matIcon: \"file_upload\"\n }\n };\n }\n }\n\n public ngOnInit(): void {\n if (!this.accept?.length) {\n this.accept = [...this._imagesMimeTypes];\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"accept\" in changes && this.accept) {\n const index = this.accept.indexOf(\"image/*\");\n if (index >= 0) {\n this.accept.splice(index, 1);\n this.accept.push(...this._imagesMimeTypes);\n }\n }\n }\n\n public writeValue(assets: NiceAssets[]): void {\n this._assets = assets ?? [];\n\n if (this._assets.length === 0) {\n this._activeAsset = null;\n this._lastAsset = true;\n } else if (this._assets.length > 0) {\n this._activeAsset = this._assets[this._active];\n }\n }\n\n public registerOnChange(fn: (assets: NiceAssets[]) => void): void {\n this.propagate = fn;\n }\n\n public registerOnTouched(fn: (assets: NiceAssets[]) => void): void {}\n\n public clickLeft(): void {\n if (this._active) {\n this.activeAsset = this._active - 1;\n }\n\n if (this._activeTranslationPosition < 0) {\n this.activeTranslationPosition = this._activeTranslationPosition + 1;\n }\n }\n\n public clickRight(): void {\n if (this._lastAsset) {\n return;\n }\n\n this.activeAsset = this._active + 1;\n if (this._shouldTransform) {\n this.activeTranslationPosition = this._activeTranslationPosition - 1;\n }\n }\n\n public clickAsset(index: number): void {\n let visibleAssets = (this.edit && this.showAddAssetContainer) ? (this.visiblePreviewAsset - 2) : (this.visiblePreviewAsset - 1);\n if (index < visibleAssets) {\n visibleAssets = index;\n }\n\n if (index >= 0) {\n this.activeTranslationPosition = (index - visibleAssets) * -1;\n }\n\n this.activeAsset = index;\n }\n\n public async onFilesChange(event: Event): Promise<void> {\n const files = (event.target as HTMLInputElement)?.files;\n\n await this.onFilesDrop(files);\n\n this.inputElement.nativeElement.value = \"\";\n }\n\n public async onFilesDrop(fileList: FileList): Promise<void> {\n let files = this.filterOutUnsupportedFiles(fileList);\n\n if (this.imagesProcessor) {\n files = await this.getProcessedFiles(files);\n }\n\n if (!files?.length) {\n return;\n }\n\n for (const file of files) {\n this._assets.push({\n file,\n type: file.type.split(\"/\").shift() as \"image\" | \"video\",\n base64: await FileUtils.getDataUrl(file)\n });\n }\n\n this.clickAsset(this._assets.length - 1);\n this.propagate?.(this._assets);\n }\n\n public clickRemove(): void {\n this.removedAsset.emit(this._assets[this._active]);\n this._assets.splice(this._active, 1);\n\n if (this._lastAsset) {\n this.clickAsset(this._assets.length - 1);\n } else {\n this.clickAsset(this._active);\n }\n\n this.propagate?.(this._assets);\n }\n\n public clickCustom(action: NiceAssetsCarouselActions): void {\n action.action(this._active);\n }\n\n public async startSyncVideo(): Promise<void> {\n (this._assetsElement.get(this._active).nativeElement.firstElementChild as HTMLVideoElement).pause();\n (this._assetsElement.get(this._active).nativeElement.firstElementChild as HTMLVideoElement).currentTime = 0;\n\n this._activeVideoElement.nativeElement.currentTime = 0;\n\n await this._activeVideoElement.nativeElement.play();\n await (this._assetsElement.get(this._active).nativeElement.firstElementChild as HTMLVideoElement).play();\n }\n\n private filterOutUnsupportedFiles(fileList: FileList): File[] {\n const files: File[] = [];\n\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList.item(i);\n if (this.accept.some((accept) => {\n if (accept.endsWith(\"*\")) {\n return file.type.startsWith(accept.replace(\"*\", \"\"));\n }\n\n return accept === file.type;\n })) {\n files.push(file);\n }\n }\n\n return files;\n }\n\n private async getProcessedFiles(files: File[]): Promise<File[] | null> {\n try {\n if (!files.length) {\n return null;\n }\n\n return await this.imagesProcessor(files);\n } catch (e) {\n return null;\n }\n }\n}\n","<div class=\"carousel-container\" niceDropzone (filesDropped)=\"onFilesDrop($event)\">\n <div\n class=\"active-image\"\n matRipple\n [class.empty-state]=\"!_activeAsset\"\n (click)=\"edit && fileInput.click();\n $event.stopPropagation()\"\n >\n <div *ngIf=\"loading\" style=\"min-height: inherit\" class=\"flex flex-row justify-center items-center h-full\">\n <mat-spinner [diameter]=\"32\"></mat-spinner>\n </div>\n <ng-container *ngIf=\"!loading\">\n <ng-container\n *ngIf=\"_activeAsset && activeContent\"\n [ngTemplateOutlet]=\"activeContent\"\n [ngTemplateOutletContext]=\"{ $implicit: _activeAsset}\"\n ></ng-container>\n <img\n *ngIf=\"_activeAsset?.type === 'image'\"\n (mouseover)=\"showOverlay=true\"\n [src]=\"_activeAsset.url ?? _activeAsset.base64\"\n draggable=\"false\"\n class=\"relative\"\n alt=\"active-image\"\n >\n <video #activeVideo *ngIf=\"_activeAsset?.type === 'video'\" draggable=\"false\" loop [src]=\"_activeAsset.url ?? _activeAsset.base64\"></video>\n\n <div class=\"empty-state-content\" *ngIf=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n <div class=\"text\">\n {{ \"nice_ui_kit.assets_carousel.upload_here\" | translate }}\n </div>\n </div>\n\n <div *ngIf=\"_activeAsset && showOverlay && edit\" class=\"active-image-overlay\">\n <div\n (mouseout)=\"showOverlay=false\"\n class=\"flex flex-col justify-center items-center w-full h-full\"\n >\n <mat-icon *ngIf=\"options.upload.matIcon\">{{ options.upload.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.upload.svgIcon\" [svgIcon]=\"options.upload.svgIcon\"></mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"edit\" class=\"active-buttons\">\n <button mat-icon-button (click)=\"fileInput.click(); $event.stopPropagation()\">\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.matIcon\">{{ options.actionButtons.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.addPhoto.svgIcon\" [svgIcon]=\"options.actionButtons.addPhoto.svgIcon\"></mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"assetActions\" (click)=\"$event.stopPropagation()\" [disabled]=\"!_activeAsset\">\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.matIcon\">{{ options.actionButtons.moreOptions.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.moreOptions.svgIcon\" [svgIcon]=\"options.actionButtons.moreOptions.svgIcon\"></mat-icon>\n </button>\n <mat-menu class=\"nice-asset-options-menu\" [xPosition]=\"'before'\" #assetActions=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let action of customActions\"\n (click)=\"clickCustom(action)\"\n >\n <mat-icon *ngIf=\"action.icon.matIcon\">{{ action.icon.matIcon }}</mat-icon>\n <mat-icon [svgIcon]=\"action.icon.svgIcon\" *ngIf=\"action.icon.svgIcon\"></mat-icon>\n <span>{{ action.name | translate }}</span>\n </button>\n <button mat-menu-item (click)=\"clickRemove()\">\n <mat-icon *ngIf=\"options.actionButtons.remove.matIcon\">{{ options.actionButtons.remove.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.actionButtons.remove.svgIcon\" [svgIcon]=\"options.actionButtons.remove.svgIcon\"></mat-icon>\n <span>{{ \"nice_ui_kit.assets_carousel.delete\" | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </ng-container>\n </div>\n\n <div class=\"carousel\">\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button left-arrow\" mat-icon-button [disabled]=\"!_active\" (click)=\"clickLeft()\">\n <mat-icon *ngIf=\"options.leftArrow.matIcon\">{{ options.leftArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.leftArrow.svgIcon\" [svgIcon]=\"options.leftArrow.svgIcon\"></mat-icon>\n </button>\n <div class=\"asset-list-container\">\n <div *ngIf=\"showAddAssetContainer && edit\" class=\"add-asset-container\">\n <div class=\"add-asset\" matRipple (click)=\"fileInput.click()\">\n <mat-icon *ngIf=\"options.addPhoto.matIcon\">{{ options.addPhoto.matIcon }}</mat-icon>\n <mat-icon *ngIf=\"options.addPhoto.svgIcon\" [svgIcon]=\"options.addPhoto.svgIcon\"></mat-icon>\n </div>\n </div>\n <div class=\"asset-list\" [ngStyle]=\"listStyle\">\n <div\n #assets\n class=\"asset\"\n *ngFor=\"let asset of _assets; let i = index\"\n (click)=\"clickAsset(i)\"\n [ngClass]=\"color\"\n [class.active]=\"_active === i\"\n >\n <ng-container>\n <img\n *ngIf=\"asset.type === 'image'\"\n draggable=\"false\"\n [src]=\"asset.url ?? asset.base64\"\n alt=\"add-image\"\n />\n <video\n *ngIf=\"asset.type === 'video'\"\n draggable=\"false\"\n loop\n [src]=\"asset.url ?? asset.base64\"\n ></video>\n </ng-container>\n </div>\n </div>\n </div>\n <button *ngIf=\"showAddAssetContainer || _activeAsset\" class=\"action-button right-arrow\" mat-icon-button [disabled]=\"_lastAsset\" (click)=\"clickRight()\">\n <mat-icon *ngIf=\"options.rightArrow.matIcon\">{{ options.rightArrow.matIcon }}</mat-icon>\n <mat-icon class=\"arrows\" *ngIf=\"options.rightArrow.svgIcon\" [svgIcon]=\"options.rightArrow.svgIcon\"></mat-icon>\n </button>\n </div>\n</div>\n\n<input #fileInput type=\"file\" hidden [accept]=\"accept\" (change)=\"onFilesChange($event)\" [multiple]=\"multipleUpload\">\n","import { NgModule } from \"@angular/core\";\nimport { NiceDropzoneDirective } from \"./dropzone.directive\";\n\n@NgModule({\n imports: [],\n declarations: [NiceDropzoneDirective],\n providers: [],\n exports: [NiceDropzoneDirective]\n})\nexport class NiceDropzoneModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceDropzoneModule } from \"../../directives/dropzone\";\n\nimport { NiceAssetsCarouselComponent, NiceAssetsCarouselOptions } from \"./assets-carousel.component\";\nimport { NICE_ASSETS_CAROUSEL_OPTIONS } from \"./assets-carousel.constant\";\nimport { NiceAssetsCarouselActiveContentDirective } from \"./directives/assets-carousel-active-content.directive\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatMenuModule,\n MatRippleModule,\n NiceDropzoneModule,\n TranslateModule,\n MatProgressSpinnerModule\n ],\n declarations: [NiceAssetsCarouselComponent, NiceAssetsCarouselActiveContentDirective],\n providers: [],\n exports: [NiceAssetsCarouselComponent, NiceAssetsCarouselActiveContentDirective]\n})\nexport class NiceAssetsCarouselModule {\n public static forRoot(options?: NiceAssetsCarouselOptions): ModuleWithProviders<NiceAssetsCarouselModule> {\n if (!options) {\n options = {\n actionButtons: {}\n };\n }\n if (!options.actionButtons.moreOptions) {\n options.actionButtons.moreOptions = { matIcon: \"more_vert\" };\n }\n if (!options.actionButtons.addPhoto) {\n options.actionButtons.addPhoto = { matIcon: \"photo_camera\" };\n }\n if (!options.actionButtons.remove) {\n options.actionButtons.remove = { matIcon: \"delete\" };\n }\n if (!options.addPhoto) {\n options.addPhoto = { matIcon: \"photo_camera\" };\n }\n if (!options.leftArrow) {\n options.leftArrow = { matIcon: \"chevron_left\" };\n }\n if (!options.rightArrow) {\n options.rightArrow = { matIcon: \"chevron_right\" };\n }\n if (!options.upload) {\n options.upload = { matIcon: \"file_upload\" };\n }\n\n return {\n ngModule: NiceAssetsCarouselModule,\n providers: [\n {\n provide: NICE_ASSETS_CAROUSEL_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","import { Observable } from \"rxjs\";\n\nexport interface NiceAsyncTypeaheadSearchResult<T> {\n items: T[];\n nextPage: number | null;\n}\n\nexport abstract class NiceAsyncTypeaheadProvider<T, ID = number, Options = any> {\n public abstract resource: string;\n public abstract search(\n searchQuery: string,\n page: number,\n options?: Options\n ): Observable<NiceAsyncTypeaheadSearchResult<T>> | Promise<NiceAsyncTypeaheadSearchResult<T>>;\n public abstract getById(id: ID, options?: Options): Promise<T>;\n\n public format(item: T): string {\n return \"\";\n }\n}\n","import { Directive, EventEmitter, Input, OnDestroy, Output } from \"@angular/core\";\nimport { MatAutocomplete } from \"@angular/material/autocomplete\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, tap } from \"rxjs/operators\";\n\nexport interface IAutoCompleteScrollEvent {\n autoComplete: MatAutocomplete;\n scrollEvent: Event;\n}\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: \"mat-autocomplete[optionsScroll]\",\n standalone: false\n})\nexport class OptionsScrollDirective implements OnDestroy {\n private _onDestroy$ = new Subject();\n\n @Input()\n public thresholdPercent = 0.99;\n\n @Output()\n public optionsScroll = new EventEmitter<IAutoCompleteScrollEvent>();\n\n constructor(public autoComplete: MatAutocomplete) {\n this.autoComplete.opened\n .pipe(\n tap(() => {\n // Note: When autocomplete raises opened, panel is not yet created (by Overlay)\n // Note: The panel will be available on next tick\n // Note: The panel wil NOT open if there are no options to display\n setTimeout(() => {\n // Note: remove listner just for safety, in case the close event is skipped.\n this.removeScrollEventListener();\n if (this.autoComplete && this.autoComplete.panel) {\n this.autoComplete.panel.nativeElement.addEventListener(\"scroll\", this.onScroll.bind(this));\n }\n });\n }),\n takeUntil(this._onDestroy$)\n )\n .subscribe();\n\n this.autoComplete.closed\n .pipe(\n tap(() => this.removeScrollEventListener()),\n takeUntil(this._onDestroy$)\n )\n .subscribe();\n }\n\n public ngOnDestroy() {\n this._onDestroy$.next(null);\n this._onDestroy$.complete();\n\n this.removeScrollEventListener();\n }\n\n public onScroll(event: Event) {\n if (this.thresholdPercent === undefined) {\n this.optionsScroll.next({ autoComplete: this.autoComplete, scrollEvent: event });\n } else {\n const target = event.target as HTMLElement;\n const threshold = (this.thresholdPercent * 100 * target.scrollHeight) / 100;\n const current = target.scrollTop + target.clientHeight;\n\n if (current > threshold) {\n this.optionsScroll.next({ autoComplete: this.autoComplete, scrollEvent: event });\n }\n }\n }\n\n private removeScrollEventListener() {\n if (this.autoComplete && this.autoComplete.panel) {\n this.autoComplete.panel.nativeElement.removeEventListener(\"scroll\", this.onScroll);\n }\n }\n}\n","import { FocusMonitor } from \"@angular/cdk/a11y\";\nimport { coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input, NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, NgControl, Validators } from \"@angular/forms\";\nimport { MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent } from \"@angular/material/autocomplete\";\nimport { MatOption } from \"@angular/material/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { Subject, Subscription } from \"rxjs\";\nimport * as uuid from \"uuid\";\nimport { isNullOrUndefined } from \"../../utils\";\n\nexport class NiceTypeaheadNewValue {\n constructor(public $new: string) {}\n}\n\n@Component({\n selector: \"nice-typeahead\",\n templateUrl: \"typeahead.template.html\",\n styleUrls: [\"typeahead.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: NiceTypeaheadComponent\n }\n ],\n standalone: false\n})\nexport class NiceTypeaheadComponent implements OnInit, OnDestroy, ControlValueAccessor, MatFormFieldControl<string> {\n @Input()\n public set items(items: any[] | null | undefined) {\n this._items = items ?? [];\n this.values = items ?? [];\n this.setLoading(false);\n this.setLoadingPage(false);\n this.updateSearchInput();\n this.checkIfValueStillExist();\n }\n\n @Input()\n public set labelFormatFn(labelFormatFn: (item: any) => string) {\n this._labelFormatFn = labelFormatFn;\n this.updateSearchInput();\n }\n\n @Input()\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n public get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n if (this._disabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n this.stateChanges.next();\n }\n\n @Input()\n public set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n this.stateChanges.next();\n }\n\n public get placeholder(): string {\n return this._placeholder;\n }\n\n @Input()\n public set emptyPlaceholder(emptyPlaceholder: string) {\n this._emptyPlaceholder = emptyPlaceholder;\n this.stateChanges.next();\n }\n\n public get emptyPlaceholder(): string {\n return this._emptyPlaceholder;\n }\n\n public set value(value: any) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n this.propagate(this._value);\n }\n\n public get value(): any {\n return this._value;\n }\n\n public get empty(): boolean {\n return (\n (!this.searchControl.value || !this.searchControl.value.length) &&\n (!this._value || (typeof this._value === \"string\" && !this._value.length))\n );\n }\n\n public get errorState(): boolean {\n return this.ngControl ? this.ngControl.touched && this.ngControl.invalid : false;\n }\n\n @HostBinding(\"class.floating\")\n public get shouldLabelFloat(): boolean {\n return this.open || !this.empty;\n }\n\n constructor(\n @Optional() @Self() public ngControl: NgControl,\n private fm: FocusMonitor,\n private zone: NgZone,\n public elRef: ElementRef<HTMLElement>\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\n if (this.ignoreNextFocus) {\n this.ignoreNextFocus = false;\n return;\n }\n\n this.focused = !!origin;\n this.stateChanges.next();\n if (this.focused && ((!this._items || !this._items.length) && !this.allowNotFoundItems) && !this.loading) {\n this.searchControl.patchValue(\"\");\n }\n\n if (!this.focused && !this._value) {\n if (this.activeOption && this.activeOption.viewValue?.toLowerCase() === this.searchControl.value?.toLowerCase()) {\n this.onOptionSelected({\n option: this.activeOption,\n source: null\n });\n } else {\n if (!this.open) {\n this.onRemove();\n }\n }\n }\n });\n }\n\n private _items: any[];\n private _labelFormatFn: (item: unknown) => string;\n private _page = 0;\n\n @Input()\n public allowNotFoundItems = false;\n\n @Input()\n public panelClass: string | string[] = [];\n\n @Input()\n public bindValue: string;\n @Input()\n public bindLabel: string;\n\n /** @deprecated: Use NiceRemoteTypeahead instead */\n @Input()\n public typeahead: Subject<string>;\n /** @deprecated: Use NiceRemoteTypeahead instead */\n @Input()\n public page$: Subject<number>;\n\n @Input()\n public loading: boolean;\n @Input()\n public loadingPage: boolean;\n\n @Input()\n public searchFn: (search: string, option: any) => boolean;\n\n // tslint:disable-next-line:no-output-native\n @Output()\n public change = new EventEmitter();\n\n @ViewChild(\"searchInput\")\n public input: ElementRef<HTMLInputElement>;\n\n @ViewChildren(MatOption)\n public options: MatOption[];\n\n public search$ = new Subject<string>();\n public searchControl = new FormControl(null);\n public values: unknown[] = [];\n public valueChangesSub$: Subscription;\n public searchSub$: Subscription;\n public open = false;\n public panelWidth = 0;\n public activeOption: MatOption;\n\n private updatingItem = false;\n private waitForItems = false;\n private ignoreNextFocus = false;\n private observer: ResizeObserver;\n\n /** MatFormField */\n private _required: boolean;\n private _disabled = false;\n private _placeholder: string;\n private _value: any;\n private _emptyPlaceholder: string;\n\n public stateChanges = new Subject<void>();\n public controlType = \"typeahead\";\n public focused = false;\n\n @HostBinding()\n public id: string = uuid.v4();\n @HostBinding(\"attr.aria-describedby\")\n public describedBy = \"\";\n\n @Input()\n public optionTemplate: TemplateRef<HTMLElement>;\n\n public propagate: (value: string) => void = () => {};\n\n public ngOnInit(): void {\n if (this.ngControl) {\n this.ngControl.statusChanges.subscribe((status) => {\n this.disabled = status === \"DISABLED\";\n });\n }\n\n this.searchSub$ = this.search$.subscribe(text => {\n if (!text || typeof text !== \"string\") {\n this.values = this._filter(\"\");\n return;\n }\n this.values = this._filter(text);\n });\n if (this.searchControl) {\n this.valueChangesSub$ = this.searchControl.valueChanges.subscribe(text => {\n if (this.updatingItem) {\n return;\n }\n\n if (this._value) {\n if (text === this.formatLabel(this.getValueItem())) {\n return;\n }\n\n this.value = null;\n }\n\n if (this.waitForItems) {\n this.waitForItems = false;\n return;\n }\n\n if (typeof text !== \"string\") {\n return;\n }\n\n if (this.typeahead) {\n this.setLoading(true);\n this._page = 0;\n this.typeahead.next(text);\n } else {\n this.search$.next(text);\n }\n });\n }\n\n this.observer = new ResizeObserver(entries => {\n this.zone.run(() => {\n this.panelWidth = entries[0].contentRect.width;\n });\n });\n\n this.observer.observe(this.elRef.nativeElement);\n }\n\n public ngOnDestroy(): void {\n this.search$?.complete();\n this.searchSub$?.unsubscribe();\n this.valueChangesSub$?.unsubscribe();\n this.stateChanges?.complete();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n this.observer?.unobserve(this.elRef.nativeElement);\n }\n\n public onContainerClick(event: MouseEvent): void {\n if (!this.disabled && (event.target as Element).tagName.toLowerCase() != \"input\") {\n this.input.nativeElement.focus();\n }\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(\" \");\n }\n\n public registerOnChange(propagate: (value: string) => void): void {\n this.propagate = propagate;\n }\n\n public registerOnTouched(fn: any): void {\n // NO-OP\n }\n\n public writeValue(value: string): void {\n try {\n this.updatingItem = true;\n // If both are equal (considering null === undefined), consider that the value has not changed.\n if (this._value === value || (isNullOrUndefined(this._value) && isNullOrUndefined(value))) {\n return;\n }\n\n if (!value && this._value !== value) {\n this.onRemove(null);\n return;\n }\n this.value = value;\n if (!this._items) {\n this.waitForItems = true;\n return;\n }\n\n this.updateSearchInput();\n } finally {\n this.updatingItem = false;\n }\n }\n\n public onOptionActivated(event: MatAutocompleteActivatedEvent): void {\n this.activeOption = event.option;\n }\n\n public onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n if (event.option.id === \"new-value-option\") {\n this.value = new NiceTypeaheadNewValue(this.searchControl.value);\n } else {\n this.updateLabel(event.option.value);\n this.value = this.bindValue ? this.getObjectItem(this.bindValue, event.option.value) : event.option.value;\n }\n this.change.emit(event.option.value);\n }\n\n public updateState(open: boolean): void {\n this.open = open;\n if (!this.open && this.ngControl) {\n this.ngControl.control.markAsTouched();\n }\n\n if (!this.open) {\n this.activeOption = null;\n if (!this._value) {\n this.onRemove();\n }\n }\n }\n\n public onRemove(event?: Event): void {\n if (event) {\n event.stopPropagation();\n }\n if (this.disabled) {\n return;\n }\n this.ignoreNextFocus = true;\n this.focused = false;\n this.value = null;\n this.searchControl.patchValue(null);\n if (this.ngControl?.control) {\n this.ngControl.control.markAsTouched();\n }\n this.stateChanges.next();\n this.change.emit();\n\n if (this.typeahead) {\n this.setLoading(true);\n this._page = 0;\n this.typeahead.next(\"\");\n } else {\n this.search$.next(\"\");\n }\n }\n\n public formatLabel(item: any): string {\n if (this._labelFormatFn) {\n return this._labelFormatFn(item);\n }\n\n if (this.bindLabel) {\n return this.getObjectItem(this.bindLabel, item);\n }\n\n if (typeof item !== \"string\") {\n return \"\";\n }\n\n return item;\n }\n\n private _filter(text: string): unknown[] {\n if (this._items) {\n const searchFn = this.searchFn || this.defaultSearch.bind(this);\n return this._items.filter(x => searchFn(text, x));\n }\n return [];\n }\n\n private defaultSearch(search: string, option: unknown): boolean {\n if (typeof option === \"string\") {\n return this.filterString(search, option);\n }\n\n if (typeof option !== \"object\") {\n return false;\n }\n\n if (this.bindLabel) {\n const item = this.getObjectItem(this.bindLabel, option);\n if (typeof item === \"string\") {\n return this.filterString(search, item);\n }\n } else if (this.formatLabel) {\n const item = this.formatLabel(option);\n if (typeof item === \"string\") {\n return this.filterString(search, item);\n }\n }\n\n return false;\n }\n\n private updateSearchInput(): void {\n if ((!this.waitForItems && !this._items) || !this._items) {\n return;\n }\n\n if (this._value instanceof NiceTypeaheadNewValue) {\n this.updateLabel(this._value.$new);\n return;\n }\n\n if (typeof this._value === \"object\") {\n this.updateLabel(this._value);\n return;\n }\n\n const search = this._items.find(\n v => (this.bindValue && typeof v === \"object\" ? this.getObjectItem(this.bindValue, v) : v) === this._value\n );\n if (search) {\n this.updateLabel(search);\n }\n }\n\n private filterString(text: string, value: string): boolean {\n return value.toLowerCase().includes(text.toLowerCase());\n }\n\n private updateLabel(item: unknown | string): void {\n if (!item) {\n return;\n }\n\n const label = this.formatLabel(item);\n\n if (label && label !== this.searchControl.value) {\n this.searchControl.patchValue(label, { emitEvent: false });\n }\n }\n\n public onEndScroll(): void {\n if (this.page$ && !this.loadingPage) {\n this.setLoadingPage(true);\n this._page++;\n this.page$.next(this._page);\n }\n }\n\n private getObjectItem(key: string, obj: object): any {\n const keys = key.split(\".\");\n let item = obj;\n for (const k of keys) {\n if (!item) {\n return item;\n }\n\n if (!item.hasOwnProperty(k)) {\n return item;\n }\n item = item[k];\n }\n\n return item;\n }\n\n private getValueItem(): any {\n if (!this.bindValue) {\n return this._value;\n }\n\n const keys = this.bindValue.split(\".\");\n return this._items.find(x => {\n let item = x;\n for (const k of keys) {\n if (!item) {\n return item;\n }\n\n if (!item.hasOwnProperty(k)) {\n return item;\n }\n item = item[k];\n }\n\n return item === this._value;\n });\n }\n\n private setLoading(loading: boolean): void {\n if (this.loading === undefined) {\n this.loading = loading;\n }\n }\n\n private setLoadingPage(loading: boolean): void {\n if (this.loadingPage === undefined) {\n this.loadingPage = loading;\n }\n }\n\n private checkIfValueStillExist(): void {\n if (this._value instanceof NiceTypeaheadNewValue) {\n return;\n }\n\n const item = this._items.find(\n v => (this.bindValue && typeof v === \"object\" ? this.getObjectItem(this.bindValue, v) : v) === this._value\n );\n if (item) {\n return;\n }\n\n if (this._value !== null && this._value !== undefined) {\n this.onRemove(null);\n }\n }\n}\n","<div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"required\"\n />\n <mat-icon *ngIf=\"value && !loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"loading\"></mat-spinner>\n</div>\n<mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n autoActiveFirstOption\n>\n <mat-progress-bar *ngIf=\"open && loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n <mat-option *ngFor=\"let option of values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\">\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n</mat-autocomplete>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"required\"\n />\n</ng-template>\n","import { NgModule } from \"@angular/core\";\nimport { OptionsScrollDirective } from \"./options-scroll.directive\";\n\n@NgModule({\n declarations: [OptionsScrollDirective],\n exports: [OptionsScrollDirective]\n})\nexport class OptionScrollModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { OptionScrollModule } from \"./directives/options-scroll.module\";\n\nimport { NiceTypeaheadComponent } from \"./typeahead.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n OptionScrollModule,\n MatAutocompleteModule,\n FormsModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatProgressBarModule,\n MatIconModule,\n MatButtonModule,\n TranslateModule\n ],\n declarations: [NiceTypeaheadComponent],\n exports: [NiceTypeaheadComponent]\n})\nexport class NiceTypeaheadModule {}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_ASYNC_TYPEAHEAD_PROVIDER = new InjectionToken(\"nice_async_typeahead_provider\");\n","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport {\n BehaviorSubject,\n catchError,\n defer,\n distinctUntilChanged,\n EMPTY,\n firstValueFrom,\n from,\n isObservable,\n mergeMap,\n Observable,\n Subject,\n Subscription,\n switchMap\n} from \"rxjs\";\nimport { fromPromise } from \"rxjs/internal/observable/innerFrom\";\nimport { finalize, map } from \"rxjs/operators\";\nimport { NICE_ASYNC_TYPEAHEAD_PROVIDER } from \"../async-typeahead.constant\";\nimport { NiceAsyncTypeaheadProvider } from \"./async-typeahead.provider\";\n\nexport class AsyncTypeaheadState {\n items: any[];\n active: any;\n loading: boolean;\n loadingPage: boolean;\n initialized: boolean;\n page: number;\n isLastPage: boolean;\n searchQuery?: string;\n excludedIds: any[];\n searchOptions?: object;\n}\n\nexport type AsyncTypeaheadRequests = {\n resource: string;\n page: number;\n searchQuery?: string;\n searchOptions?: any;\n};\n\n@Injectable()\nexport class NiceAsyncTypeaheadService {\n private state$: BehaviorSubject<AsyncTypeaheadState> = new BehaviorSubject({\n items: [],\n active: null,\n loading: false,\n loadingPage: false,\n initialized: false,\n searchQuery: null,\n page: 0,\n isLastPage: false,\n excludedIds: []\n });\n\n public loading$ = this.state$.pipe(map(x => x.loading), distinctUntilChanged());\n public loadingPage$ = this.state$.pipe(map(x => x.loadingPage), distinctUntilChanged());\n public active$ = this.state$.pipe(map(x => x.active), distinctUntilChanged());\n public items$ = this.state$.pipe(map(x => x.items), distinctUntilChanged());\n public filteredItems$ = this.state$.pipe(map(x => x.items.filter(item => !x.excludedIds.includes(item.id))), distinctUntilChanged());\n\n private requests$ = new Subject<AsyncTypeaheadRequests>();\n private requestsSubscription$: Subscription;\n\n constructor(@Optional() @Inject(NICE_ASYNC_TYPEAHEAD_PROVIDER) private readonly apis: NiceAsyncTypeaheadProvider<any>[]) {\n if (!this.apis) {\n this.apis = [];\n }\n }\n\n public listenForRequest(): void {\n this.requestsSubscription$ = this.requests$.pipe(\n switchMap((request) => this.sendRequest(request))\n ).subscribe();\n }\n\n public closeRequestSubscription(): void {\n this.requestsSubscription$?.unsubscribe();\n }\n\n public async initialize(resource: string): Promise<void> {\n const { initialized } = this.state$.getValue();\n if (initialized) {\n return;\n }\n\n return this.search(resource, \"\");\n }\n\n public sendRequest(request: AsyncTypeaheadRequests): Observable<void> {\n return defer(() => {\n const { active, initialized } = this.state$.getValue();\n\n if (active && !initialized) {\n this.state$.next({\n ...this.state$.value,\n initialized: true\n });\n return EMPTY;\n }\n\n const api = this.apis.find(x => x.resource === request.resource);\n if (!api) {\n return EMPTY;\n }\n\n if (request.page === 0) {\n this.state$.next({\n ...this.state$.value,\n loading: true,\n initialized: true,\n page: request.page,\n isLastPage: false,\n searchQuery: request.searchQuery\n });\n } else {\n this.state$.next({\n ...this.state$.value,\n loadingPage: true\n });\n }\n\n const result = api.search(request.searchQuery, request.page, request.searchOptions);\n if (isObservable(result)) {\n return result;\n }\n\n return fromPromise(result);\n }).pipe(\n map((result) => {\n this.state$.next({\n ...this.state$.value,\n items: request.page === 0 ? result.items : [...(this.state$.value.items ?? []), ...result.items],\n page: result.nextPage ? result.nextPage : this.state$.value.page,\n isLastPage: !result.nextPage\n });\n }),\n catchError(() => EMPTY),\n finalize(() => {\n this.state$.next({\n ...this.state$.value,\n loading: false,\n loadingPage: false\n });\n })\n );\n }\n\n public search(resource: string, searchQuery: string): void {\n this.requests$.next({\n resource,\n searchQuery,\n searchOptions: this.getSearchOptions(),\n page: 0\n });\n }\n\n public loadMore(resource: string): void {\n const { loadingPage, isLastPage } = this.state$.getValue();\n if (loadingPage || isLastPage) {\n return;\n }\n\n const { searchQuery, page } = this.state$.getValue();\n this.requests$.next({\n resource,\n page,\n searchQuery,\n searchOptions: this.getSearchOptions(),\n });\n }\n\n public getActive(): any {\n return this.state$.value.active;\n }\n\n public getInitialized(): boolean {\n return this.state$.value.initialized;\n }\n\n public getSearchOptions(): object | undefined {\n return this.state$.value.searchOptions;\n }\n\n public setSearchOptions(searchOptions: object | undefined): void {\n this.state$.next({\n ...this.state$.value,\n searchOptions\n });\n }\n\n public setActive(entity: any | undefined): void {\n this.state$.next({\n ...this.state$.value,\n active: entity ?? null\n });\n }\n\n public async setActiveId(resource: string, id: any): Promise<void> {\n if (!id) {\n return;\n }\n\n const api = this.apis.find(x => x.resource === resource);\n if (!api) {\n return;\n }\n\n try {\n this.state$.next({\n ...this.state$.value,\n loading: true\n });\n\n const localItem = this.state$.value.items.find((item) => item.id === id);\n if (localItem) {\n this.state$.next({\n ...this.state$.value,\n items: [localItem],\n active: localItem,\n page: 0,\n isLastPage: false\n });\n return;\n }\n\n const entity = await api.getById(id, this.getSearchOptions());\n if (!entity) {\n return;\n }\n\n this.state$.next({\n ...this.state$.value,\n items: [entity],\n active: entity,\n page: 0,\n isLastPage: false\n });\n } catch {\n } finally {\n this.state$.next({\n ...this.state$.value,\n loading: false\n });\n }\n }\n\n public reloadActive(resource: string): Promise<void> {\n return this.setActiveId(resource, this.state$.value.active?.id);\n }\n\n public reloadFilteredItems(): void {\n // TODO: Use a better way to trigger the items$ observable\n this.state$.next({\n ...this.state$.value\n });\n }\n\n public setFilterFn(filterFn: (value: any) => boolean | Promise<boolean> | Observable<boolean>): void {\n this.filteredItems$ = this.items$.pipe(mergeMap(items => {\n return from(Promise.all(items.map(async item => {\n const result = filterFn(item);\n\n const unwrappedResult = isObservable(result) ? await firstValueFrom(result) : await result;\n\n return [item, unwrappedResult];\n })));\n }\n ),\n map(items => items.filter(([item, keep]) => keep).map(([item, keep]) => item))\n );\n }\n\n public format(resource: string, item: string): string {\n const api = this.apis.find(x => x.resource === resource);\n if (!api) {\n return \"\";\n }\n\n return api.format(item);\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding, inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional, Output,\n Self,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl, NgForm, Validators } from \"@angular/forms\";\nimport { MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent } from \"@angular/material/autocomplete\";\nimport { _ErrorStateTracker, ErrorStateMatcher, MatOption } from \"@angular/material/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { debounceTime, distinctUntilChanged, firstValueFrom, Observable, Subject, Subscription } from \"rxjs\";\nimport { take } from \"rxjs/operators\";\nimport * as uuid from \"uuid\";\nimport { isNullOrUndefined } from \"../../utils\";\nimport { NiceTypeaheadNewValue } from \"../typeahead\";\nimport { NiceAsyncTypeaheadService } from \"./providers/async-typeahead.service\";\n\n@Component({\n selector: \"nice-async-typeahead\",\n templateUrl: \"async-typeahead.template.html\",\n styleUrls: [\"async-typeahead.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: NiceAsyncTypeaheadComponent\n },\n NiceAsyncTypeaheadService\n ],\n standalone: false\n})\n// tslint:disable-next-line:max-line-length\nexport class NiceAsyncTypeaheadComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor, MatFormFieldControl<any>, DoCheck {\n public stateChanges = new Subject<void>();\n public controlType = \"remote-typeahead\";\n public focused = false;\n\n public searchControl = new FormControl(null);\n public valueChangesSub$: Subscription;\n public open = false;\n public panelWidth = 0;\n public activeOption: MatOption;\n\n protected _errorStateTracker?: _ErrorStateTracker;\n\n public active$ = this.service.active$;\n\n @ViewChild(\"searchInput\")\n public input: ElementRef<HTMLInputElement>;\n\n @ViewChildren(MatOption)\n public options: MatOption[];\n\n @Output()\n public entityRemoved = new EventEmitter<void>();\n\n @Input()\n public resource: string;\n\n @Input()\n public searchOptions: any;\n\n @Input()\n public autoReload = true;\n\n @Input()\n public preloadResource = false;\n\n @Input()\n public allowNotFoundItems = false;\n\n @Input()\n public panelClass: string | string[] = [];\n\n @Input()\n public bindValue = \"id\";\n\n @Input()\n public bindLabel: string;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public emptyPlaceholder: string;\n\n @Input()\n public optionTemplate: TemplateRef<HTMLElement>;\n\n @Input()\n public filterFn: (value: any) => boolean | Promise<boolean> | Observable<boolean>;\n\n @Output()\n public selected = new EventEmitter<any>();\n\n public isOpened$ = new Subject<boolean>();\n\n @Input()\n public set labelFormatFn(labelFormatFn: (item: any) => string) {\n this._labelFormatFn = labelFormatFn;\n }\n private _labelFormatFn: (item: any) => string;\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n public set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n\n this.changeDetectorRef.detectChanges();\n }\n\n public get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n protected _disabled = false;\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n public set value(value: any) {\n if (value !== this._value) {\n this._value = value;\n this.propagate(value);\n this.stateChanges.next();\n }\n }\n public get value(): string {\n return this._value;\n }\n private _value: any;\n\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n @Input()\n public set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n public get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n protected _required: boolean | undefined;\n\n @HostBinding(\"class.floating\")\n public get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n public get errorState(): boolean {\n return this._errorStateTracker?.errorState ?? false;\n }\n\n public set errorState(value: boolean) {\n if (!this._errorStateTracker) {\n return;\n }\n\n this._errorStateTracker.errorState = value;\n }\n\n @HostBinding()\n public id: string = uuid.v4();\n\n @HostBinding(\"attr.aria-describedby\")\n public describedBy = \"\";\n\n\n private componentInitialized = false;\n private initialWriteValue?: any;\n\n public get empty(): boolean {\n return (\n (!this.searchControl.value || !this.searchControl.value.length) &&\n (!this._value || (typeof this._value === \"string\" && !this._value.length))\n );\n }\n\n public get initialized(): boolean {\n return this.service.getInitialized();\n }\n\n public propagate: (value: string) => void = () => {};\n\n constructor(\n @Optional() @Self() public readonly ngControl: NgControl,\n private ngZone: NgZone,\n private changeDetectorRef: ChangeDetectorRef,\n public service: NiceAsyncTypeaheadService,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n const defaultErrorStateMatcher = inject(ErrorStateMatcher);\n const parentFormGroup = inject(FormGroupDirective, { optional: true });\n const parentForm = inject(NgForm, { optional: true });\n this._errorStateTracker = new _ErrorStateTracker(\n defaultErrorStateMatcher,\n ngControl,\n parentFormGroup,\n parentForm,\n this.stateChanges,\n );\n }\n\n public async ngOnInit(): Promise<void> {\n this.service.listenForRequest();\n\n if (this.ngControl) {\n if (this.ngControl.disabled) {\n this.searchControl.disable({ emitEvent: false });\n }\n\n this.ngControl.statusChanges.subscribe((status) => {\n this.disabled = status === \"DISABLED\";\n if (this._disabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n });\n }\n\n if (this.filterFn) {\n this.service.setFilterFn(this.filterFn);\n }\n\n if (this.searchControl) {\n this.valueChangesSub$ = this.searchControl.valueChanges.pipe(debounceTime(500), distinctUntilChanged()).subscribe(text => {\n if (typeof text !== \"string\") {\n return;\n }\n\n this.service.search(this.resource, text);\n });\n }\n\n if (this.preloadResource) {\n this.service.search(this.resource, \"\");\n }\n\n this.componentInitialized = true;\n if (this.initialWriteValue !== undefined) {\n await this.writeValue(this.initialWriteValue);\n }\n }\n\n public ngOnDestroy(): void {\n this.service.closeRequestSubscription();\n this.valueChangesSub$.unsubscribe();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (\"searchOptions\" in changes) {\n const change = changes.searchOptions;\n this.service.setSearchOptions(change.currentValue);\n\n if (!change.isFirstChange() && change.currentValue !== change.previousValue && this.autoReload) {\n this.service.search(this.resource, \"\");\n this.service.items$.pipe(take(1)).subscribe(() => this.checkIfValueStillExist());\n }\n }\n\n if (\"filterFn\" in changes) {\n const change = changes.filterFn;\n if (!change.isFirstChange() && change.currentValue !== change.previousValue) {\n this.service.setFilterFn(change.currentValue);\n }\n }\n\n this.stateChanges.next();\n }\n\n public ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n\n public async writeValue(value: any): Promise<void> {\n if (!this.componentInitialized) {\n this.initialWriteValue = value;\n return;\n }\n\n if (this._value === value || (isNullOrUndefined(this._value) && isNullOrUndefined(value))) {\n return;\n }\n\n if (!value && this._value !== value) {\n this.onRemove(null);\n return;\n }\n\n if (value instanceof NiceTypeaheadNewValue) {\n this.updateSearchInput();\n return;\n } else {\n await this.service.setActiveId(this.resource, value).then(() => this.updateSearchInput());\n }\n\n this.value = value;\n }\n\n public registerOnChange(propagate: (value: string) => void): void {\n this.propagate = propagate;\n }\n\n public registerOnTouched(fn: any): void {\n // NO-OP\n }\n\n public onContainerClick(event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n\n this.stateChanges.next();\n if ((event.target as Element).tagName.toLowerCase() !== \"input\") {\n this.input.nativeElement.focus();\n }\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(\" \");\n }\n\n public updateErrorState(): void {\n this._errorStateTracker?.updateErrorState();\n }\n\n public getActive<T = any>(): T {\n return this.service.getActive();\n }\n\n public onOptionActivated(event: MatAutocompleteActivatedEvent): void {\n this.activeOption = event.option;\n }\n\n public onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n if (event.option.id === \"new-value-option\") {\n this.value = new NiceTypeaheadNewValue(this.searchControl.value);\n } else {\n this.updateLabel(event.option.value);\n this.service.setActive(event.option.value);\n this.value = this.bindValue ? this.getObjectItem(this.bindValue, event.option.value) : event.option.value;\n }\n\n this.selected.emit(this.value);\n }\n\n public updateState(open: boolean): void {\n this.open = open;\n this.isOpened$.next(open);\n\n if (!this.open) {\n this.ngZone.run(() => {\n this.focusChanged(false);\n this.changeDetectorRef.markForCheck();\n });\n }\n\n if (this.open && !this.initialized) {\n this.service.initialize(this.resource);\n }\n\n if (!this.open && this.ngControl) {\n this.ngControl.control.markAsTouched();\n }\n\n if (!this.open) {\n this.activeOption = null;\n if (!this._value && this.searchControl.value) {\n this.onRemove();\n }\n }\n }\n\n public onRemove(event?: Event, reload = true): void {\n if (event) {\n // event.stopPropagation();\n }\n if (this.disabled) {\n return;\n }\n this.service.setActive(null);\n this.value = null;\n this.searchControl.patchValue(null);\n if (this.ngControl?.control) {\n this.ngControl.control.markAsTouched();\n }\n this.stateChanges.next();\n\n this.entityRemoved.emit();\n\n if (reload) {\n this.service.search(this.resource, \"\");\n }\n }\n\n public formatLabel(item: any): string {\n if (this._labelFormatFn) {\n return this._labelFormatFn(item);\n }\n\n if (this.bindLabel) {\n return this.getObjectItem(this.bindLabel, item);\n }\n\n if (typeof item !== \"string\") {\n return this.service.format(this.resource, item);\n }\n\n return item;\n }\n\n public onEndScroll(): void {\n this.service.loadMore(this.resource);\n }\n\n public focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n\n if (isFocused && this.filterFn) {\n this.service.reloadFilteredItems();\n }\n }\n }\n\n public reload(): void {\n this.service?.search(this.resource, this.searchControl.value ?? \"\");\n }\n\n public async reloadActive(): Promise<void> {\n await this.service?.reloadActive(this.resource);\n const active = this.service?.getActive();\n this.updateLabel(active);\n }\n\n public setSearchOptions(options: any): void {\n this.searchOptions = options;\n this.service.setSearchOptions(options);\n }\n\n private updateLabel(item: unknown | string): void {\n if (!item) {\n return;\n }\n\n const label = this.formatLabel(item);\n\n if (label && label !== this.searchControl.value) {\n this.searchControl.patchValue(label, { emitEvent: false });\n }\n }\n\n private getObjectItem(key: string, obj: object): any {\n const keys = key.split(\".\");\n let item = obj;\n for (const k of keys) {\n if (!item) {\n return item;\n }\n\n if (!item.hasOwnProperty(k)) {\n return item;\n }\n item = item[k];\n }\n\n return item;\n }\n\n private updateSearchInput(): void {\n if (this._value instanceof NiceTypeaheadNewValue) {\n this.updateLabel(this._value.$new);\n return;\n }\n\n const active = this.service.getActive();\n if (active) {\n this.updateLabel(active);\n return;\n }\n }\n\n private async checkIfValueStillExist(): Promise<void> {\n if (this._value instanceof NiceTypeaheadNewValue) {\n return;\n }\n\n const items = await firstValueFrom(this.service.filteredItems$);\n const item = items.find(\n v => (this.bindValue && typeof v === \"object\" ? this.getObjectItem(this.bindValue, v) : v) === this._value\n );\n if (item) {\n return;\n }\n\n if (this._value !== null && this._value !== undefined) {\n this.onRemove(null);\n }\n }\n}\n","<ng-container *ngIf=\"{ loading: service.loading$ | async, loadingPage: service.loadingPage$ | async, values: service.filteredItems$ | async } as ctx\">\n <div class=\"flex\" *ngIf=\"!disabled; else disable\">\n <input\n #searchInput\n matInput\n class=\"flex-auto\"\n type=\"text\"\n name=\"mat-autocomplete\"\n [disabled]=\"$any(disabled)\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [required]=\"$any(required)\"\n (focus)=\"focusChanged(true)\"\n />\n <mat-icon *ngIf=\"value && !ctx.loading\" matSuffix class=\"close-button secondary-text\" (click)=\"onRemove($event)\">\n close\n </mat-icon>\n\n <mat-spinner class=\"self-center\" [diameter]=\"16\" *ngIf=\"ctx.loading\"></mat-spinner>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"panelWidth\"\n [class]=\"panelClass\"\n (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\"\n (closed)=\"updateState(false)\"\n (opened)=\"updateState(true)\"\n (optionsScroll)=\"onEndScroll()\"\n >\n <mat-progress-bar class=\"-mt-2\" *ngIf=\"open && ctx.loading\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n\n <mat-option *ngFor=\"let option of ctx.values\" [value]=\"option\">\n <ng-container\n *ngIf=\"optionTemplate; else format\"\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\"\n >\n </ng-container>\n <ng-template #format>\n {{ formatLabel(option) }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && !allowNotFoundItems\" disabled>\n <ng-container *ngIf=\"emptyPlaceholder; else defaultEmptyPlaceholder\">\n {{ emptyPlaceholder }}\n </ng-container>\n <ng-template #defaultEmptyPlaceholder>\n {{ \"components.typeahead.no_item_found\" | translate }}\n </ng-template>\n </mat-option>\n <mat-option *ngIf=\"!ctx.values?.length && allowNotFoundItems\" id=\"new-value-option\" [value]=\"searchControl.value\">\n <span class=\"italic\">{{ searchControl.value }}</span>\n </mat-option>\n <mat-progress-bar *ngIf=\"open && ctx.loadingPage\" mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n </mat-autocomplete>\n</ng-container>\n\n<ng-template #disable>\n <input\n matInput\n class=\"disabled-input\"\n type=\"text\"\n [disabled]=\"true\"\n [placeholder]=\"placeholder\"\n [formControl]=\"searchControl\"\n [required]=\"$any(required)\"\n />\n</ng-template>\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule, Type } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { OptionScrollModule } from \"../typeahead/directives/options-scroll.module\";\n\nimport { NiceAsyncTypeaheadComponent } from \"./async-typeahead.component\";\nimport { NICE_ASYNC_TYPEAHEAD_PROVIDER } from \"./async-typeahead.constant\";\nimport { NiceAsyncTypeaheadProvider } from \"./providers/async-typeahead.provider\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n OptionScrollModule,\n MatInputModule,\n MatAutocompleteModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatProgressBarModule,\n TranslateModule\n ],\n declarations: [NiceAsyncTypeaheadComponent],\n providers: [],\n exports: [NiceAsyncTypeaheadComponent]\n})\nexport class NiceAsyncTypeaheadModule {\n public static register(providers: Type<NiceAsyncTypeaheadProvider<any, any>>[]): ModuleWithProviders<NiceAsyncTypeaheadModule> {\n return {\n ngModule: NiceAsyncTypeaheadModule,\n providers: providers.map(x => ({\n provide: NICE_ASYNC_TYPEAHEAD_PROVIDER,\n useClass: x,\n multi: true\n }))\n };\n }\n}\n","import { CdkStepper } from \"@angular/cdk/stepper\";\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\nimport { ControlValueAccessor, FormGroup } from \"@angular/forms\";\nimport { GeneratedFormGroup } from \"@recursyve/ngx-form-generator\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n template: ``,\n standalone: false\n})\nexport abstract class NiceBaseFormComponent<Form extends { [key: string]: any }> implements OnInit, OnDestroy, ControlValueAccessor {\n @ViewChild(CdkStepper)\n private stepper: CdkStepper;\n\n @Input()\n public loading = false;\n\n // tslint:disable-next-line:no-output-native\n @Output()\n public submit = new EventEmitter<Form>();\n\n protected unsubscribeAll$ = new Subject<void>();\n\n private propagate: (form: Form) => void = () => {};\n\n constructor(public formGroup: GeneratedFormGroup<Form>) {}\n\n public ngOnInit(): void {\n this.formGroup.valueChanges.pipe(takeUntil(this.unsubscribeAll$)).subscribe(() => {\n this.onValueChange(this.formGroup.getRawValue());\n });\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$?.next();\n this.unsubscribeAll$?.complete();\n }\n\n public registerOnChange(fn: (form: Form) => void): void {\n this.propagate = fn;\n }\n\n public registerOnTouched(fn: (form: Form) => void): void {\n // NO-OP\n }\n\n public writeValue(form: Form): void {\n if (form) {\n this.formGroup.patchValue(form);\n }\n }\n\n public clickSubmit(): void {\n if (!this.validate()) {\n return;\n }\n this.submit.emit(this.formGroup.getRawValue());\n }\n\n public clickNext(index: number): void {\n this.validateStep(index);\n if (this.stepper) {\n this.stepper.next();\n }\n }\n\n public clickPrevious(): void {\n if (this.stepper) {\n this.stepper.previous();\n }\n }\n\n protected onValueChange(value: Form): void {\n this.propagate(value);\n }\n\n public validate(): boolean {\n if (this.formGroup.valid) {\n return true;\n }\n this.formGroup.markAllAsTouched();\n return false;\n }\n\n protected validateStep(index: number): boolean {\n const group = this.getCurrentStepGroup(index);\n if (group?.valid) {\n return true;\n }\n group?.markAllAsTouched();\n return false;\n }\n\n protected getCurrentStepGroup(index: number): FormGroup | null {\n return null;\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\nimport { NiceBaseFormComponent } from \"./base-form.component\";\n\n@Directive({\n selector: \"[niceFormSubmit]\",\n standalone: false\n})\nexport class NiceFormSubmitDirective {\n @Input()\n public form: NiceBaseFormComponent<any>;\n\n @HostListener(\"click\")\n public onClick(): void {\n this.form.clickSubmit();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceFormSubmitDirective } from \"./form-submit.directive\";\n\n@NgModule({\n declarations: [NiceFormSubmitDirective],\n exports: [NiceFormSubmitDirective]\n})\nexport class NiceBaseFormModule {}\n","export class NiceBaseForm<T, Dto> {\n\n constructor(value?: Partial<T>) {\n if (!value) {\n return;\n }\n Object.assign(this, value);\n }\n\n public toDto(): Dto {\n return {\n ...this\n } as any;\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { Component, HostBinding, Input, OnChanges, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\nimport { niceAnimations } from \"../../animations\";\nimport { NiceCardFace } from \"./card.types\";\n\n@Component({\n selector: \"nice-card\",\n templateUrl: \"./card.component.html\",\n encapsulation: ViewEncapsulation.None,\n animations: niceAnimations,\n exportAs: \"niceCard\",\n standalone: false\n})\nexport class NiceCardComponent implements OnChanges {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_expanded: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_flippable: BooleanInput;\n\n @Input()\n public expanded = false;\n\n @Input()\n public face: NiceCardFace = \"front\";\n\n @Input()\n public flippable = false;\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"nice-card-expanded\": this.expanded,\n \"nice-card-face-back\": this.flippable && this.face === \"back\",\n \"nice-card-face-front\": this.flippable && this.face === \"front\",\n \"nice-card-flippable\": this.flippable\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Expanded\n if (\"expanded\" in changes) {\n // Coerce the value to a boolean\n this.expanded = coerceBooleanProperty(changes.expanded.currentValue);\n }\n\n // Flippable\n if (\"flippable\" in changes) {\n // Coerce the value to a boolean\n this.flippable = coerceBooleanProperty(changes.flippable.currentValue);\n }\n }\n}\n","<!-- Flippable card -->\n<ng-container *ngIf=\"flippable\">\n <!-- Front -->\n <div class=\"nice-card-front\">\n <ng-content select=\"[niceCardFront]\"></ng-content>\n </div>\n\n <!-- Back -->\n <div class=\"nice-card-back\">\n <ng-content select=\"[niceCardBack]\"></ng-content>\n </div>\n</ng-container>\n\n<!-- Normal card -->\n<ng-container *ngIf=\"!flippable\">\n <!-- Content -->\n <ng-content></ng-content>\n\n <!-- Expansion -->\n <div\n class=\"nice-card-expansion\"\n *ngIf=\"expanded\"\n [@expandCollapse]>\n <ng-content select=\"[niceCardExpansion]\"></ng-content>\n </div>\n</ng-container>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NiceCardComponent } from \"./card.component\";\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n NiceCardComponent\n ],\n exports: [\n NiceCardComponent\n ]\n})\nexport class NiceCardModule {\n}\n","import { Component, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: \"nice-picture-modal\",\n styleUrls: [\"picture-modal.style.scss\"],\n templateUrl: \"picture-modal.template.html\",\n standalone: false\n})\nexport class PictureModalComponent {\n public picture: string;\n}\n","<div class=\"overlay-content\">\n <img [src]=\"picture\" />\n</div>\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\nimport { PictureModalComponent } from \"./picture-modal.component\";\n\nexport interface PictureModalConfig {\n picture?: string;\n}\n\n@Injectable()\nexport class PictureModalService {\n constructor(private overlay: Overlay) {}\n\n public open(config: PictureModalConfig) {\n const positionStrategy = this.overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically();\n\n const overlayRef = this.overlay.create({\n backdropClass: \"cdk-overlay-dark-backdrop\",\n hasBackdrop: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n\n const pictureModalPortal = new ComponentPortal(PictureModalComponent);\n const pictureModalRef = overlayRef.attach(pictureModalPortal);\n\n pictureModalRef.instance.picture = config.picture;\n\n overlayRef.backdropClick().subscribe(() => overlayRef.dispose());\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const CAROUSEL_ICONS = new InjectionToken(\"carousel_icons\");\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"carouselLayout\",\n standalone: false\n})\nexport class CarouselLayoutPipe implements PipeTransform {\n public transform(value: \"row\" | \"column\", direction: \"ltr\" | \"rtl\" | \"utd\" | \"dtu\"): string {\n if (value === \"row\") {\n return direction === \"rtl\" ? \"flex-row-reverse\" : \"flex-row\";\n }\n return direction === \"utd\" ? \"flex-col\" : \"flex-col-reverse\";\n }\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output, ViewEncapsulation } from \"@angular/core\";\nimport { PictureModalService } from \"./picture-modal/picture-modal.service\";\nimport { CAROUSEL_ICONS } from \"./carousel.constant\";\nimport { NiceCarouselIconOptions } from \"./interfaces/carousel-options.interface\";\n\nexport interface Picture {\n id: number;\n url: string;\n}\n\n@Component({\n selector: \"nice-carousel\",\n templateUrl: \"carousel.template.html\",\n styleUrls: [\"./carousel.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class CarouselComponent {\n public currentImages: Picture[];\n\n @Input()\n public set images(urls: Picture[]) {\n this.currentImages = urls;\n }\n\n @Input()\n public direction: \"ltr\" | \"rtl\" | \"utd\" | \"dtu\" = \"ltr\";\n\n @Input()\n public layout: \"row\" | \"column\" = \"row\";\n\n @Input()\n public editable = false;\n\n @Output()\n public delete = new EventEmitter<Picture>();\n\n constructor(\n private pictureModalService: PictureModalService,\n @Optional() @Inject(CAROUSEL_ICONS) \n public icons?: NiceCarouselIconOptions\n ) {}\n\n public clickView(picture: Picture) {\n this.pictureModalService.open({\n picture: picture.url\n });\n }\n\n public clickDelete(picture: Picture) {\n this.delete.emit(picture);\n }\n}\n","<div class=\"slides-container\">\n <div class=\"slides flex\" [ngClass]=\"layout | carouselLayout: direction\">\n <div class=\"slide\" *ngFor=\"let image of currentImages\">\n <img [src]=\"image?.url\" (click)=\"clickView(image)\"/>\n <ng-container *ngIf=\"editable\">\n <ng-container *ngIf=\"icons?.remove; else defaultIcon\">\n <mat-icon [svgIcon]=\"icons.remove.svgIcon\" (click)=\"clickDelete(image)\" class=\"remove-button\"></mat-icon>\n </ng-container>\n <ng-template #defaultIcon>\n <i class=\"fad fa-times-circle remove-button\" (click)=\"clickDelete(image)\"></i>\n </ng-template>\n </ng-container>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { CarouselComponent } from \"./carousel.component\";\nimport { PictureModalComponent } from \"./picture-modal\";\nimport { PictureModalService } from \"./picture-modal\";\nimport { CarouselLayoutPipe } from \"./pipe/carousel-layout.pipe\";\nimport { NiceCarouselOptions } from \"./interfaces/carousel-options.interface\";\nimport { CAROUSEL_ICONS } from \"./carousel.constant\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatCardModule,\n MatButtonModule,\n TranslateModule,\n MatIconModule\n ],\n exports: [CarouselComponent],\n declarations: [CarouselComponent, PictureModalComponent, CarouselLayoutPipe],\n providers: [PictureModalService]\n})\nexport class NiceCarouselModule {\n public static forRoot(options?: NiceCarouselOptions): ModuleWithProviders<NiceCarouselModule> {\n return {\n ngModule: NiceCarouselModule,\n providers: [\n {\n provide: CAROUSEL_ICONS,\n useValue: { \n ...(options?.icons ?? {}) \n }\n }\n ].filter((provider) => !!provider)\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit, Output,\n SimpleChanges,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: \"nice-collapsable\",\n templateUrl: \"collapsable.template.html\",\n styleUrls: [\"collapsable.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceCollapsableComponent implements OnInit, OnChanges, OnDestroy {\n @Input()\n public open: boolean;\n\n @Output()\n public openChange = new EventEmitter<boolean>();\n\n public unsubscribeAll$ = new Subject<void>();\n public control = new FormControl(false);\n\n public ngOnInit(): void {\n this.control.valueChanges.pipe(takeUntil(this.unsubscribeAll$)).subscribe(open => this.openChange.emit(open));\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"open\" in changes) {\n this.control.patchValue(this.open);\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n}\n","<div class=\"nice-collapse\">\n <input type=\"checkbox\" class=\"peer cursor-pointer\" [formControl]=\"control\"/>\n <div class=\"collapse-title\">\n <ng-content select=\"[niceCollapsableTitle]\"></ng-content>\n </div>\n <div class=\"collapse-content\">\n <div class=\"content\">\n <ng-content select=\"[niceCollapsableContent]\"></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { NiceCollapsableComponent } from \"./collapsable.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule\n ],\n declarations: [NiceCollapsableComponent],\n providers: [],\n exports: [NiceCollapsableComponent]\n})\nexport class NiceCollapsableModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable()\nexport class NiceDateRangePickerServiceService {\n public allowClear$ = new BehaviorSubject(true);\n\n public setAllowClear(allowClear: boolean): void {\n this.allowClear$.next(allowClear);\n }\n}\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\nimport { DateAdapter } from \"@angular/material/core\";\nimport { MatDateRangePicker } from \"@angular/material/datepicker\";\nimport { NiceDateRangePickerServiceService } from \"../../providers/date-range-picker.service\";\n\nconst customPresets = [\n \"today\",\n \"last_7_days\",\n \"this_week\",\n \"this_month\",\n \"this_year\",\n \"last_week\",\n \"last_month\",\n \"last_year\",\n];\n\ntype CustomPreset = typeof customPresets[number];\n\n@Component({\n selector: \"nice-range-preset\",\n templateUrl: \"range-preset.template.html\",\n styleUrls: [\"range-preset.style.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class RangePresetComponent<D> {\n public readonly customPresets = customPresets;\n public readonly allowClear$ = this.service.allowClear$;\n\n constructor(\n private dateAdapter: DateAdapter<D>,\n private picker: MatDateRangePicker<D>,\n private service: NiceDateRangePickerServiceService\n ) {}\n\n public clearRange(): void {\n this.picker.select(null);\n this.picker.select(null);\n this.picker.close();\n }\n\n public selectRange(rangeName: CustomPreset): void {\n const [start, end] = this.calculateDateRange(rangeName);\n this.picker.select(start);\n this.picker.select(end);\n this.picker.close();\n }\n\n private calculateDateRange(rangeName: CustomPreset): [start: D, end: D] {\n const today = this.today;\n const year = this.dateAdapter.getYear(today);\n\n switch (rangeName) {\n case \"today\":\n return [today, today];\n case \"last_7_days\": {\n const start = this.dateAdapter.addCalendarDays(today, -6);\n return [start, today];\n }\n case \"this_week\": {\n return this.calculateWeek(today);\n }\n case \"this_month\": {\n return this.calculateMonth(today);\n }\n case \"this_year\": {\n const start = this.dateAdapter.createDate(year, 0, 1);\n const end = this.dateAdapter.createDate(year, 11, 31);\n return [start, end];\n }\n case \"last_week\": {\n const thisDayLastWeek = this.dateAdapter.addCalendarDays(today, -7);\n return this.calculateWeek(thisDayLastWeek);\n }\n case \"last_month\": {\n const thisDayLastMonth = this.dateAdapter.addCalendarMonths(today, -1);\n return this.calculateMonth(thisDayLastMonth);\n }\n case \"last_year\": {\n const start = this.dateAdapter.createDate(year - 1, 0, 1);\n const end = this.dateAdapter.createDate(year - 1, 11, 31);\n return [start, end];\n }\n default:\n return null;\n }\n }\n\n private calculateMonth(forDay: D): [start: D, end: D] {\n const year = this.dateAdapter.getYear(forDay);\n const month = this.dateAdapter.getMonth(forDay);\n const start = this.dateAdapter.createDate(year, month, 1);\n const end = this.dateAdapter.addCalendarDays(\n start,\n this.dateAdapter.getNumDaysInMonth(forDay) - 1\n );\n return [start, end];\n }\n\n private calculateWeek(forDay: D): [start: D, end: D] {\n const deltaStart = this.dateAdapter.getFirstDayOfWeek() - this.dateAdapter.getDayOfWeek(forDay);\n const start = this.dateAdapter.addCalendarDays(forDay, deltaStart);\n const end = this.dateAdapter.addCalendarDays(start, 6);\n return [start, end];\n }\n\n private get today(): D {\n const today = this.dateAdapter.getValidDateOrNull(new Date());\n if (today === null) {\n throw new Error(\"date creation failed\");\n }\n return today;\n }\n}\n","<mat-card class=\"mat-elevation-z3\">\n <button\n *ngIf=\"allowClear$ | async\"\n mat-button\n (click)=\"clearRange()\"\n >\n {{ \"nice_ui_kit.date_range_picker.clear\" | translate }}\n </button>\n\n <button\n *ngFor=\"let item of customPresets\"\n mat-button\n (click)=\"selectRange(item)\"\n >\n {{ \"nice_ui_kit.date_range_picker.presets.\" + item | translate }}\n </button>\n</mat-card>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy } from \"@angular/core\";\nimport { DateAdapter, MAT_DATE_FORMATS, MatDateFormats } from \"@angular/material/core\";\nimport { MatCalendar } from \"@angular/material/datepicker\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n templateUrl: \"header.template.html\",\n styleUrls: [\"header.style.scss\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class HeaderComponent<D> implements OnDestroy {\n private readonly destroy$ = new Subject<void>();\n\n public toggled = false;\n\n constructor(\n private calendar: MatCalendar<D>,\n private dateAdapter: DateAdapter<D>,\n @Inject(MAT_DATE_FORMATS) private dateFormats: MatDateFormats,\n cdr: ChangeDetectorRef\n ) {\n calendar.stateChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => cdr.markForCheck());\n }\n\n public get periodLabel(): string {\n return this.dateAdapter\n .format(this.calendar.activeDate, this.dateFormats.display.monthYearLabel)\n .toLocaleUpperCase();\n }\n\n public previousClicked(mode: \"month\" | \"year\"): void {\n this.changeDate(mode, -1);\n }\n\n public nextClicked(mode: \"month\" | \"year\"): void {\n this.changeDate(mode, 1);\n }\n\n private changeDate(mode: \"month\" | \"year\", amount: -1 | 1): void {\n this.calendar.activeDate =\n mode === \"month\"\n ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, amount)\n : this.dateAdapter.addCalendarYears(this.calendar.activeDate, amount);\n }\n\n public clickOptions() {\n this.toggled = !this.toggled;\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n }\n}\n","<div class=\"hidden md:block\" fxHide.lt-md>\n <nice-range-preset></nice-range-preset>\n</div>\n<div class=\"block md:hidden\">\n <ng-container *ngIf=\"toggled\">\n <nice-range-preset></nice-range-preset>\n </ng-container>\n</div>\n\n<div class=\"header\">\n <button\n fxHide.gt-md\n mat-icon-button\n (click)=\"clickOptions()\"\n >\n <mat-icon>sort</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"double-arrow\"\n (click)=\"previousClicked('year')\"\n >\n <mat-icon>keyboard_arrow_left</mat-icon>\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n <button mat-icon-button (click)=\"previousClicked('month')\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <span class=\"header-label\">{{ periodLabel }}</span>\n\n <button mat-icon-button (click)=\"nextClicked('month')\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"double-arrow\"\n (click)=\"nextClicked('year')\"\n >\n <mat-icon>keyboard_arrow_right</mat-icon>\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n","import { DatePipe } from \"@angular/common\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Pipe({\n name: \"localizedDate\",\n standalone: false\n})\nexport class LocalizedDatePipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n public transform(value: any, pattern: string = \"mediumDate\", fallbackWithNull = false, timeZone?: string): string {\n if (pattern === \"mediumDateWithoutYear\") {\n pattern = this.getMediumDateWithoutYearPattern();\n }\n\n const datePipe: DatePipe = new DatePipe(this.translateService.currentLang, timeZone);\n\n if (value instanceof Date) {\n if (isNaN(value.getTime())) {\n return fallbackWithNull ? null : this.translateService.instant(\"general.not_available\");\n }\n }\n\n if (value && value !== \"0000-00-00\") {\n return datePipe.transform(value, pattern);\n } else {\n return fallbackWithNull ? null : this.translateService.instant(\"general.not_available\");\n }\n }\n\n private getMediumDateWithoutYearPattern(): string {\n if (this.translateService.defaultLang === \"fr\") {\n return \"d MMMM\";\n }\n return \"MMMM d\";\n }\n}\n","import { Component, forwardRef, Input, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { isSameDay } from \"date-fns/isSameDay\";\nimport { subDays } from \"date-fns/subDays\";\nimport { pairwise, startWith } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\nimport { HeaderComponent } from \"./components/header/header.component\";\n\nexport interface NiceDateRangePickerValue {\n from: Date;\n to: Date;\n}\n\n@Component({\n selector: \"nice-date-range-picker\",\n templateUrl: \"date-range-picker.template.html\",\n styleUrls: [\"date-range-picker.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NiceDateRangePickerComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class NiceDateRangePickerComponent implements OnInit, ControlValueAccessor {\n public readonly HeaderComponent = HeaderComponent;\n\n @Input()\n public min = subDays(new Date(), 3);\n\n @Input()\n public max = new Date();\n\n @Input()\n public nowIsMax = true;\n\n @Input()\n public allowClear = true;\n\n public formGroup = new FormGroup({\n from: new FormControl(),\n to: new FormControl()\n });\n public now = new Date();\n public value: NiceDateRangePickerValue;\n\n private propagate: (value: NiceDateRangePickerValue) => void;\n\n public ngOnInit(): void {\n this.value = {\n from: this.min,\n to: this.max\n };\n this.formGroup.patchValue(this.value);\n\n this.formGroup.valueChanges.pipe(\n startWith(this.value),\n pairwise(),\n filter(([before, after]) => {\n /**\n * We filter out the value changes to only emit when the selection is completed/\n */\n\n if (!after.from && !after.to) {\n return true;\n }\n\n // This is the middle of the selection\n if (after.from && !after.to) {\n return false;\n }\n\n // This means that the selection is done\n if (!before.to && after.to) {\n return true;\n }\n\n // This is an edge case when we select a new range with an active range selected.\n // The after.to will be at null after the after.from is emitted\n if (!isSameDay(before.from, after.from) && isSameDay(before.to, after.to)) {\n return false;\n }\n\n // Skip if noting has changed\n return !(isSameDay(before.from, after.from) && !isSameDay(before.to, after.to));\n }),\n ).subscribe((_) => {\n this.value = this.formGroup.getRawValue();\n this.propagate?.(this.value);\n });\n }\n\n public writeValue(value: NiceDateRangePickerValue): void {\n this.value = value;\n this.formGroup.patchValue(this.value);\n }\n\n public registerOnChange(fn: (value: NiceDateRangePickerValue) => void): void {\n this.propagate = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n}\n","<div class=\"nice-date-picker-container\">\n <div class=\"nice-date-picker-header\">\n <div class=\"from-to\">\n <ng-container *ngIf=\"value?.from\">\n {{ value.from | localizedDate: \"longDate\" }}\n </ng-container>\n <ng-container *ngIf=\"value?.to\">\n <div class=\"separator\">-</div>\n {{ value.to | localizedDate: \"longDate\" }}\n </ng-container>\n </div>\n </div>\n\n <mat-date-range-input [formGroup]=\"formGroup\" [max]=\"nowIsMax ? now : null\" [rangePicker]=\"picker\">\n <input formControlName=\"from\" class=\"hidden-input\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"to\" class=\"hidden-input\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n\n <mat-date-range-picker\n [calendarHeaderComponent]=\"HeaderComponent\"\n panelClass=\"nice-date-range-picker\"\n #picker\n ></mat-date-range-picker>\n</div>\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Pipe({\n name: \"boolean\",\n standalone: false\n})\nexport class BooleanPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n public transform(value: any): string {\n if (typeof value !== \"boolean\") {\n return \"\";\n }\n\n return this.translateService.instant(value ? \"general.yes\" : \"general.no\");\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { isNullOrUndefined } from \"../utils/type.utils\";\n\n@Pipe({\n name: \"capitalizeFirstLetter\",\n standalone: false\n})\nexport class CapitalizeFirstLetterPipe implements PipeTransform {\n public transform(value: string): string {\n if (isNullOrUndefined(value)) {\n return value;\n }\n\n return value.charAt(0).toUpperCase() + value.slice(1);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"ceil\",\n standalone: false\n})\nexport class CeilPipe implements PipeTransform {\n public transform(input: number) {\n return Math.ceil(input);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"entries\",\n standalone: false\n})\nexport class EntriesPipe implements PipeTransform {\n public transform<Value>(value: Value): { key: keyof Value, value: any }[] {\n const keys: { key: keyof Value, value: any }[] = [];\n\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n keys.push({\n key,\n value: value[key]\n });\n }\n }\n\n return keys;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"findByKey\",\n standalone: false\n})\nexport class FindByKeyPipe implements PipeTransform {\n public transform<ArrayType, ValueType>(array: ArrayType[], value: ValueType, key = \"id\"): ArrayType {\n return (array ?? []).find((v) => v?.[key] === value);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"firstLetter\",\n standalone: false\n})\nexport class FirstLetterPipe implements PipeTransform {\n public transform(value: string): string {\n return value?.[0];\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"floor\",\n standalone: false\n})\nexport class FloorPipe implements PipeTransform {\n public transform(input: number) {\n return Math.floor(input);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"join\",\n standalone: false\n})\nexport class JoinPipe implements PipeTransform {\n public transform(array: any[], separator = \" \", prop?: string): string {\n if (!array?.length) {\n return \"general.not_available\";\n }\n\n if (!prop) {\n return array.filter(x => x).join(separator);\n }\n return array.filter(x => x).map(x => x[prop]).join(separator);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { UrlUtils } from \"../utils/url.utils\";\n\n@Pipe({\n name: \"link\",\n standalone: false\n})\nexport class LinkPipe implements PipeTransform {\n public transform(value: string, type: \"mailto\"): string;\n public transform(value: { phoneNumber: string, extension?: string }, type: \"tel\"): string;\n public transform(value: { address: string, postalCode: string }, type: \"direction\"): string;\n public transform(value: any, type: \"mailto\" | \"tel\" | \"direction\"): string {\n if (!value) {\n return;\n }\n\n switch (type) {\n case \"mailto\":\n return UrlUtils.emailUrl(value);\n case \"tel\":\n return UrlUtils.phoneCallUrl(value.phoneNumber, value.extension);\n case \"direction\":\n return UrlUtils.directionUrl(value.address, value.postalCode);\n }\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Pipe({\n name: \"localizedBoolean\",\n standalone: false\n})\nexport class LocalizedBooleanPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n public transform(value: boolean): any {\n return this.translateService.instant(`general.bool_${value}`);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { CurrencyPipe } from \"@angular/common\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Pipe({\n name: \"localizedCurrency\",\n standalone: false\n})\nexport class LocalizedCurrencyPipe extends CurrencyPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {\n super(translateService.currentLang);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\n\n@Pipe({\n name: \"localizedDateOnly\",\n standalone: false\n})\nexport class LocalizedDateOnlyPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n public transform(value: any, pattern: string = \"mediumDate\", fallbackWithNull = false): string {\n const pipe = new LocalizedDatePipe(this.translateService);\n return pipe.transform(value, pattern, fallbackWithNull, \"UTC\");\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n// Formats minutes in hh:mm format.\n@Pipe({\n name: \"minutesToTime\",\n standalone: false\n})\nexport class MinutesToTimePipe implements PipeTransform {\n public transform(totalMinutes: number, separator: string = \":\"): string {\n const hours = `${Math.floor(totalMinutes / 60)}`.padStart(2, \"0\");\n const minutes = `${Math.floor(totalMinutes % 60)}`.padStart(2, \"0\");\n return `${hours}${separator}${minutes}`;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"numberToOrdinalIndicator\",\n standalone: false\n})\nexport class NumberToOrdinalIndicatorPipe implements PipeTransform {\n public transform(value: number): string {\n switch (value) {\n case 1:\n return \"general.first\";\n case 2:\n return \"general.second\";\n case 3:\n return \"general.third\";\n default:\n return \"general.xth\";\n }\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"pad\",\n standalone: false\n})\nexport class PadPipe implements PipeTransform {\n public transform(value: number | string, length: number, direction: \"start\" | \"end\" = \"start\", maxLength = 2, fillString = \"0\"): string {\n const strValue = typeof value === \"number\" ? `${value}` : value;\n switch (direction) {\n case \"start\":\n return strValue.padStart(maxLength, fillString);\n case \"end\":\n return strValue.padEnd(maxLength, fillString);\n }\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { NgxMaskService } from \"ngx-mask\";\n\n@Pipe({\n name: \"phone\",\n standalone: false\n})\nexport class PhonePipe implements PipeTransform {\n constructor(private maskService: NgxMaskService) {}\n\n public transform(rawPhoneNumber: string, extension?: string): string {\n const formattedPhoneNumber = this.maskService.applyMask(rawPhoneNumber, \"(000) 000-0000\");\n if (!extension) {\n return formattedPhoneNumber;\n }\n\n return `${formattedPhoneNumber} #${extension}`;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { NgxMaskService } from \"ngx-mask\";\n\n@Pipe({\n name: \"postalCode\",\n standalone: false\n})\nexport class PostalCodePipe implements PipeTransform {\n constructor(private maskService: NgxMaskService) {}\n\n public transform(postalCode: string): string {\n if (postalCode) {\n return this.maskService.applyMask(postalCode, \"S0S 0S0\");\n }\n return \"\";\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"round\",\n standalone: false\n})\nexport class RoundPipe implements PipeTransform {\n public transform(input: number) {\n return Math.round(input);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"range\",\n standalone: false\n})\nexport class RangePipe implements PipeTransform {\n public transform(value: number): number[] {\n const range: number[] = [];\n for (let i = 0; i < value; i++) {\n range.push(i);\n }\n return range;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n// Formats seconds in hh:mm:ss format.\n@Pipe({\n name: \"secondsToTime\",\n standalone: false\n})\nexport class SecondsToTimePipe implements PipeTransform {\n public transform(value: number, separator = \":\"): string {\n const hours = `${Math.floor(value / 60 / 60)}`.padStart(2, \"0\");\n const minutes = `${Math.floor(value / 60 % 60)}`.padStart(2, \"0\");\n const seconds = `${Math.floor(value % 60)}`.padStart(2, \"0\");\n return `${hours}${separator}${minutes}${separator}${seconds}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: \"sanitizeBypass\",\n standalone: false\n})\nexport class SanitizeBypassPipe implements PipeTransform {\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n public transform(value: any, bypass: \"html\" | \"style\"): any {\n switch (bypass) {\n case \"html\":\n return this.sanitizer.bypassSecurityTrustHtml(value || '');\n case \"style\":\n return this.sanitizer.bypassSecurityTrustStyle(value || '');\n }\n }\n}\n","import { Pipe, PipeTransform, TrackByFunction } from \"@angular/core\";\n\n@Pipe({\n name: \"trackByProp\",\n standalone: false\n})\nexport class TrackByPropPipe<T> implements PipeTransform {\n public transform(prop: keyof T & string): TrackByFunction<T> {\n return (_, item) => item[prop];\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { EntriesPipe } from \"./entries.pipe\";\nimport { BooleanPipe } from \"./boolean.pipe\";\nimport { LocalizedDateOnlyPipe } from \"./localized-date-only.pipe\";\nimport { PostalCodePipe } from \"./postal-code.pipe\";\nimport { PhonePipe } from \"./phone.pipe\";\nimport { CeilPipe } from \"./ceil.pipe\";\nimport { FloorPipe } from \"./floor.pipe\";\nimport { RoundPipe } from \"./round.pipe\";\nimport { FindByKeyPipe } from \"./find-by-key.pipe\";\nimport { PadPipe } from \"./pad.pipe\";\nimport { LinkPipe } from \"./link.pipe\";\nimport { MinutesToTimePipe } from \"./minutes-to-time.pipe\";\nimport { NumberToOrdinalIndicatorPipe } from \"./number-to-ordinal-indicator.pipe\";\nimport { RangePipe } from \"./range.pipe\";\nimport { SecondsToTimePipe } from \"./seconds-to-time.pipe\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\nimport { LocalizedCurrencyPipe } from \"./localized-currency.pipe\";\nimport { CapitalizeFirstLetterPipe } from \"./capitalize-first-letter.pipe\";\nimport { JoinPipe } from \"./join-if-defined.pipe\";\nimport { SanitizeBypassPipe } from \"./sanitize-bypass.pipe\";\nimport { FirstLetterPipe } from \"./first-letter.pipe\";\nimport { LocalizedBooleanPipe } from \"./localized-boolean.pipe\";\nimport { TrackByPropPipe } from \"./track-by-prop.pipe\";\n\n@NgModule({\n declarations: [\n BooleanPipe,\n CapitalizeFirstLetterPipe,\n CeilPipe,\n FindByKeyPipe,\n FirstLetterPipe,\n FloorPipe,\n JoinPipe,\n EntriesPipe,\n LinkPipe,\n LocalizedBooleanPipe,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedDateOnlyPipe,\n MinutesToTimePipe,\n NumberToOrdinalIndicatorPipe,\n PadPipe,\n PhonePipe,\n PostalCodePipe,\n RangePipe,\n RoundPipe,\n SanitizeBypassPipe,\n SecondsToTimePipe,\n TrackByPropPipe\n ],\n providers: [\n BooleanPipe,\n CapitalizeFirstLetterPipe,\n CeilPipe,\n FindByKeyPipe,\n FirstLetterPipe,\n FloorPipe,\n JoinPipe,\n EntriesPipe,\n LinkPipe,\n LocalizedBooleanPipe,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedDateOnlyPipe,\n MinutesToTimePipe,\n NumberToOrdinalIndicatorPipe,\n PadPipe,\n PhonePipe,\n PostalCodePipe,\n RangePipe,\n RoundPipe,\n SanitizeBypassPipe,\n SecondsToTimePipe\n ],\n exports: [\n BooleanPipe,\n CapitalizeFirstLetterPipe,\n CeilPipe,\n FindByKeyPipe,\n FirstLetterPipe,\n FloorPipe,\n JoinPipe,\n EntriesPipe,\n LinkPipe,\n LocalizedBooleanPipe,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedDateOnlyPipe,\n MinutesToTimePipe,\n NumberToOrdinalIndicatorPipe,\n PadPipe,\n PhonePipe,\n PostalCodePipe,\n RangePipe,\n RoundPipe,\n SanitizeBypassPipe,\n SecondsToTimePipe,\n TrackByPropPipe\n ]\n})\nexport class NicePipesModule {\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NicePipesModule } from \"../../pipes\";\nimport { HeaderComponent } from \"./components/header/header.component\";\nimport { RangePresetComponent } from \"./components/range-preset/range-preset.component\";\nimport { NiceDateRangePickerComponent } from \"./date-range-picker.component\";\nimport { NiceDateRangePickerServiceService } from \"./providers/date-range-picker.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatDatepickerModule,\n MatFormFieldModule,\n MatCardModule,\n MatButtonModule,\n MatIconModule,\n TranslateModule,\n ReactiveFormsModule,\n NicePipesModule\n ],\n declarations: [NiceDateRangePickerComponent, RangePresetComponent, HeaderComponent],\n providers: [NiceDateRangePickerServiceService],\n exports: [NiceDateRangePickerComponent]\n})\nexport class NiceDateRangePickerModule {}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_APP_CONFIG = new InjectionToken<any>(\"NICE_APP_CONFIG\");\n","import { Inject, Injectable } from \"@angular/core\";\nimport { merge } from \"lodash-es\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { NICE_APP_CONFIG } from \"./config.constants\";\nimport { NiceConfig } from \"./config.model\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceConfigService {\n private _config: BehaviorSubject<any>;\n\n /**\n * Constructor\n */\n constructor(@Inject(NICE_APP_CONFIG) config: NiceConfig) {\n // Private\n this._config = new BehaviorSubject(config);\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Setter & getter for config\n */\n public set config(value: NiceConfig) {\n // Merge the new config over to the current config\n const config = merge({}, this._config.getValue(), value);\n\n // Execute the observable\n this._config.next(config);\n }\n\n public get config$(): Observable<NiceConfig> {\n return this._config.asObservable();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Resets the config to the default\n */\n public reset(): void {\n // Set the config\n this._config.next(this.config);\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { NICE_APP_CONFIG } from \"./config.constants\";\nimport { NiceConfig } from \"./config.model\";\nimport { NiceConfigService } from \"./config.service\";\n\n@NgModule()\nexport class NiceConfigModule {\n /**\n * Constructor\n */\n constructor(private _niceConfigService: NiceConfigService) {\n }\n\n /**\n * forRoot method for setting user configuration\n */\n public static forRoot(config: NiceConfig): ModuleWithProviders<NiceConfigModule> {\n return {\n ngModule: NiceConfigModule,\n providers: [\n {\n provide: NICE_APP_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","import { BreakpointObserver, Breakpoints, BreakpointState } from \"@angular/cdk/layout\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable, ReplaySubject, startWith, tap } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\n@Injectable()\nexport class NiceMediaWatcherService {\n private _onMediaChange = new ReplaySubject<{ matchingAliases: string[], matchingQueries: any }>(1);\n private _currentBreakpoints: { [key: string]: boolean };\n private _breakpoint$: Observable<BreakpointState>;\n\n public xsBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.XSmall).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n public smBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.Small).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n public mdBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.Medium).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n public lgBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.Large).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n public xlBreakpointActive$ = this.onMediaQueryChange$(Breakpoints.XLarge).pipe(\n startWith({ matches: false }),\n map((x) => x.matches)\n );\n\n /**\n * Constructor\n */\n constructor(private _breakpointObserver: BreakpointObserver) {\n this._breakpoint$ = this.onMediaQueryChange$([\n Breakpoints.XSmall,\n Breakpoints.Small,\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ]).pipe(\n tap((res) => this._currentBreakpoints = res.breakpoints)\n );\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On media query change\n */\n public onMediaQueryChange$(query: string | string[]): Observable<BreakpointState> {\n return this._breakpointObserver.observe(query);\n }\n\n public asObservable(): Observable<BreakpointState> {\n return this._breakpoint$;\n }\n\n public isActive(query: string | string[]): boolean {\n if (typeof query === \"string\") {\n query = [query];\n }\n\n for (const q of query) {\n if (this.isBreakpointActive(q)) {\n return true;\n }\n }\n\n return false;\n }\n\n private isBreakpointActive(breakpoint: string): boolean {\n if (breakpoint.startsWith(\"gt-\")) {\n switch (breakpoint.replace(\"gt-\", \"\")) {\n case \"xs\":\n return this._currentBreakpoints[Breakpoints.Small]\n || this._currentBreakpoints[Breakpoints.Medium]\n || this._currentBreakpoints[Breakpoints.Large]\n || this._currentBreakpoints[Breakpoints.XLarge];\n case \"sm\":\n return this._currentBreakpoints[Breakpoints.Medium]\n || this._currentBreakpoints[Breakpoints.Large]\n || this._currentBreakpoints[Breakpoints.XLarge];\n case \"md\":\n return this._currentBreakpoints[Breakpoints.Large]\n || this._currentBreakpoints[Breakpoints.XLarge];\n case \"lg\":\n return this._currentBreakpoints[Breakpoints.XLarge];\n }\n }\n\n if (breakpoint.startsWith(\"lt-\")) {\n switch (breakpoint.replace(\"lt-\", \"\")) {\n case \"sm\":\n return this._currentBreakpoints[Breakpoints.XSmall];\n case \"md\":\n return this._currentBreakpoints[Breakpoints.XSmall]\n || this._currentBreakpoints[Breakpoints.Small];\n case \"lg\":\n return this._currentBreakpoints[Breakpoints.XSmall]\n || this._currentBreakpoints[Breakpoints.Small]\n || this._currentBreakpoints[Breakpoints.Medium];\n case \"xl\":\n return this._currentBreakpoints[Breakpoints.XSmall]\n || this._currentBreakpoints[Breakpoints.Small]\n || this._currentBreakpoints[Breakpoints.Medium]\n || this._currentBreakpoints[Breakpoints.Large];\n }\n }\n\n switch (breakpoint) {\n case \"xs\":\n return this._currentBreakpoints[Breakpoints.XSmall];\n case \"sm\":\n return this._currentBreakpoints[Breakpoints.Small];\n case \"md\":\n return this._currentBreakpoints[Breakpoints.Medium];\n case \"lg\":\n return this._currentBreakpoints[Breakpoints.Large];\n case \"xl\":\n return this._currentBreakpoints[Breakpoints.XLarge];\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceMediaWatcherService } from \"./media-watcher.service\";\n\n@NgModule({\n providers: [\n NiceMediaWatcherService\n ]\n})\nexport class NiceMediaWatcherModule {\n /**\n * Constructor\n */\n constructor(private _niceMediaWatcherService: NiceMediaWatcherService) {}\n}\n","\nimport { Inject, Injectable, DOCUMENT } from \"@angular/core\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { filter, take } from \"rxjs/operators\";\n\n@Injectable()\nexport class NiceSplashScreenService {\n /**\n * Constructor\n */\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _router: Router\n ) {\n // Hide it on the first NavigationEnd event\n this._router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n take(1)\n )\n .subscribe(() => {\n this.hide();\n });\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Show the splash screen\n */\n public show(): void {\n this._document.body.classList.remove(\"nice-splash-screen-hidden\");\n }\n\n /**\n * Hide the splash screen\n */\n public hide(): void {\n this._document.body.classList.add(\"nice-splash-screen-hidden\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceSplashScreenService } from \"./splash-screen.service\";\n\n@NgModule({\n providers: [\n NiceSplashScreenService\n ]\n})\nexport class NiceSplashScreenModule {\n /**\n * Constructor\n */\n constructor(private _niceSplashScreenService: NiceSplashScreenService) {}\n}\n","import { Injectable } from \"@angular/core\";\nimport { NiceDrawerComponent } from \"./drawer.component\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceDrawerService {\n private _componentRegistry: Map<string, NiceDrawerComponent> = new Map<string, NiceDrawerComponent>();\n\n /**\n * Constructor\n */\n constructor() {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Register drawer component\n */\n registerComponent(name: string, component: NiceDrawerComponent): void\n {\n this._componentRegistry.set(name, component);\n }\n\n /**\n * Deregister drawer component\n */\n deregisterComponent(name: string): void\n {\n this._componentRegistry.delete(name);\n }\n\n /**\n * Get drawer component from the registry\n */\n getComponent(name: string): NiceDrawerComponent | undefined\n {\n return this._componentRegistry.get(name);\n }\n}\n","import { animate, AnimationBuilder, AnimationPlayer, style } from \"@angular/animations\";\nimport { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { NiceUtilsService } from \"../../providers\";\nimport { NiceDrawerService } from \"./drawer.service\";\nimport { NiceDrawerMode, NiceDrawerPosition } from \"./drawer.types\";\n\n@Component({\n selector: \"nice-drawer\",\n templateUrl: \"./drawer.component.html\",\n styleUrls: [\"./drawer.theme.scss\"],\n encapsulation: ViewEncapsulation.None,\n exportAs: \"niceDrawer\",\n standalone: false\n})\nexport class NiceDrawerComponent implements OnChanges, OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n static ngAcceptInputType_fixed: BooleanInput;\n // tslint:disable-next-line:variable-name\n static ngAcceptInputType_opened: BooleanInput;\n // tslint:disable-next-line:variable-name\n static ngAcceptInputType_transparentOverlay: BooleanInput;\n\n @Input()\n public fixed = false;\n\n @Input()\n public mode: NiceDrawerMode = \"side\";\n\n @Input()\n public width: string | number = 320;\n\n @Input()\n public name: string = this._niceUtilsService.randomId();\n\n @Input()\n public opened = false;\n\n @Input()\n public position: NiceDrawerPosition = \"left\";\n\n @Input()\n public transparentOverlay = false;\n\n @Output()\n private readonly fixedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n private readonly modeChanged: EventEmitter<NiceDrawerMode> = new EventEmitter<NiceDrawerMode>();\n\n @Output()\n private readonly openedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Output()\n private readonly positionChanged: EventEmitter<NiceDrawerPosition> = new EventEmitter<NiceDrawerPosition>();\n\n private _animationsEnabled = false;\n private _hovered = false;\n private _overlay: HTMLElement;\n private _player: AnimationPlayer;\n\n /**\n * Constructor\n */\n constructor(\n private _animationBuilder: AnimationBuilder,\n private _elementRef: ElementRef,\n private _renderer2: Renderer2,\n private _niceDrawerService: NiceDrawerService,\n private _niceUtilsService: NiceUtilsService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"nice-drawer-animations-enabled\": this._animationsEnabled,\n \"nice-drawer-fixed\": this.fixed,\n \"nice-drawer-hover\": this._hovered,\n [`nice-drawer-mode-${this.mode}`]: true,\n \"nice-drawer-opened\": this.opened,\n [`nice-drawer-position-${this.position}`]: true\n };\n }\n\n /**\n * Host binding for component inline styles\n */\n @HostBinding(\"style\")\n public get styleList(): any {\n const width = typeof this.width === \"number\" ? `${this.width}px` : this.width;\n const dynamicStyle = {\n \"width\": width,\n \"min-width\": width,\n \"max-width\": width\n };\n\n if (this.mode === \"side\") {\n dynamicStyle[`margin-${this.position}`] = this.opened ? 0 : `-${width}`;\n }\n\n return dynamicStyle;\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Decorated methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On mouseenter\n *\n * @private\n */\n @HostListener(\"mouseenter\")\n private _onMouseenter(): void {\n // Enable the animations\n this._enableAnimations();\n\n // Set the hovered\n this._hovered = true;\n }\n\n /**\n * On mouseleave\n *\n * @private\n */\n @HostListener(\"mouseleave\")\n private _onMouseleave(): void {\n // Enable the animations\n this._enableAnimations();\n\n // Set the hovered\n this._hovered = false;\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n *\n * @param changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Fixed\n if (\"fixed\" in changes) {\n // Coerce the value to a boolean\n this.fixed = coerceBooleanProperty(changes.fixed.currentValue);\n\n // Execute the observable\n this.fixedChanged.next(this.fixed);\n }\n\n // Mode\n if (\"mode\" in changes) {\n // Get the previous and current values\n const previousMode = changes.mode.previousValue;\n const currentMode = changes.mode.currentValue;\n\n // Disable the animations\n this._disableAnimations();\n\n // If the mode changes: 'over -> side'\n if (previousMode === \"over\" && currentMode === \"side\") {\n // Hide the overlay\n this._hideOverlay();\n }\n\n // If the mode changes: 'side -> over'\n if (previousMode === \"side\" && currentMode === \"over\") {\n // If the drawer is opened\n if (this.opened) {\n // Show the overlay\n this._showOverlay();\n }\n }\n\n // Execute the observable\n this.modeChanged.next(currentMode);\n\n // Enable the animations after a delay\n // The delay must be bigger than the current transition-duration\n // to make sure nothing will be animated while the mode is changing\n setTimeout(() => {\n this._enableAnimations();\n }, 500);\n }\n\n // Opened\n if (\"opened\" in changes) {\n // Coerce the value to a boolean\n const open = coerceBooleanProperty(changes.opened.currentValue);\n\n // Open/close the drawer\n this._toggleOpened(open);\n }\n\n // Position\n if (\"position\" in changes) {\n // Execute the observable\n this.positionChanged.next(this.position);\n }\n\n // Transparent overlay\n if (\"transparentOverlay\" in changes) {\n // Coerce the value to a boolean\n this.transparentOverlay = coerceBooleanProperty(changes.transparentOverlay.currentValue);\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Register the drawer\n this._niceDrawerService.registerComponent(this.name, this);\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Finish the animation\n if (this._player) {\n this._player.finish();\n }\n\n // Deregister the drawer from the registry\n this._niceDrawerService.deregisterComponent(this.name);\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Open the drawer\n */\n public open(): void {\n // Return if the drawer has already opened\n if (this.opened) {\n return;\n }\n\n // Open the drawer\n this._toggleOpened(true);\n }\n\n /**\n * Close the drawer\n */\n public close(): void {\n // Return if the drawer has already closed\n if (!this.opened) {\n return;\n }\n\n // Close the drawer\n this._toggleOpened(false);\n }\n\n /**\n * Toggle the drawer\n */\n public toggle(): void {\n if (this.opened) {\n this.close();\n } else {\n this.open();\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Enable the animations\n *\n * @private\n */\n private _enableAnimations(): void {\n // Return if the animations are already enabled\n if (this._animationsEnabled) {\n return;\n }\n\n // Enable the animations\n this._animationsEnabled = true;\n }\n\n /**\n * Disable the animations\n *\n * @private\n */\n private _disableAnimations(): void {\n // Return if the animations are already disabled\n if (!this._animationsEnabled) {\n return;\n }\n\n // Disable the animations\n this._animationsEnabled = false;\n }\n\n /**\n * Show the backdrop\n *\n * @private\n */\n private _showOverlay(): void {\n // Create the backdrop element\n this._overlay = this._renderer2.createElement(\"div\");\n\n // Return if overlay couldn't be create for some reason\n if (!this._overlay) {\n return;\n }\n\n // Add a class to the backdrop element\n this._overlay.classList.add(\"nice-drawer-overlay\");\n\n // Add a class depending on the fixed option\n if (this.fixed) {\n this._overlay.classList.add(\"nice-drawer-overlay-fixed\");\n }\n\n // Add a class depending on the transparentOverlay option\n if (this.transparentOverlay) {\n this._overlay.classList.add(\"nice-drawer-overlay-transparent\");\n }\n\n // Append the backdrop to the parent of the drawer\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._overlay);\n\n // Create the enter animation and attach it to the player\n this._player = this._animationBuilder.build([\n style({opacity: 0}),\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 1}))\n ]).create(this._overlay);\n\n // Once the animation is done...\n this._player.onDone(() => {\n\n // Destroy the player\n this._player.destroy();\n this._player = null;\n });\n\n // Play the animation\n this._player.play();\n\n // Add an event listener to the overlay\n this._overlay.addEventListener(\"click\", () => {\n this.close();\n });\n }\n\n /**\n * Hide the backdrop\n *\n * @private\n */\n private _hideOverlay(): void {\n if (!this._overlay) {\n return;\n }\n\n // Create the leave animation and attach it to the player\n this._player = this._animationBuilder.build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 0}))\n ]).create(this._overlay);\n\n // Play the animation\n this._player.play();\n\n // Once the animation is done...\n this._player.onDone(() => {\n\n // Destroy the player\n this._player.destroy();\n this._player = null;\n\n // If the backdrop still exists...\n if (this._overlay) {\n // Remove the backdrop\n this._overlay.parentNode.removeChild(this._overlay);\n this._overlay = null;\n }\n });\n }\n\n /**\n * Open/close the drawer\n *\n * @param open\n * @private\n */\n private _toggleOpened(open: boolean): void {\n // Set the opened\n this.opened = open;\n\n // Enable the animations\n this._enableAnimations();\n\n // If the mode is 'over'\n if (this.mode === \"over\") {\n // If the drawer opens, show the overlay\n if (open) {\n this._showOverlay();\n }\n // Otherwise, close the overlay\n else {\n this._hideOverlay();\n }\n }\n\n // Execute the observable\n this.openedChanged.next(open);\n }\n}\n","<div class=\"nice-drawer-toggle\">\n <ng-content select=\"[niceDrawerToggle]\"></ng-content>\n</div>\n\n<div class=\"nice-drawer-content\" [style.visibility]=\"opened ? 'visible' : 'hidden'\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { NiceDrawerComponent } from \"./drawer.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule\n ],\n declarations: [\n NiceDrawerComponent\n ],\n exports: [\n NiceDrawerComponent\n ]\n})\nexport class NiceDrawerModule {\n}\n","import { Injectable } from \"@angular/core\";\nimport { ExportStrategy } from \"../models/export-strategy.model\";\n\n@Injectable()\nexport abstract class ExportBottomSheetService {\n public abstract getStrategyIcon(strategy: ExportStrategy): string;\n}\n\n@Injectable()\nexport class DefaultExportBottomSheetService extends ExportBottomSheetService {\n public getStrategyIcon(strategy: ExportStrategy): string {\n switch (strategy.type) {\n case \"xlsx\":\n return \"fas fa-file-excel\";\n case \"pdf\":\n return \"fas fa-file-pdf\";\n case \"csv\":\n return \"fas fa-file-csv\";\n }\n return \"\";\n }\n}\n","import { Component, Inject } from \"@angular/core\";\nimport { MatBottomSheetRef, MAT_BOTTOM_SHEET_DATA } from \"@angular/material/bottom-sheet\";\nimport { ExportStrategy } from \"./models/export-strategy.model\";\nimport { ExportBottomSheetService } from \"./providers/export-bottom-sheet.service\";\n\nexport interface ExportBottomSheetConfig {\n exportStrategies: ExportStrategy[];\n}\n\n@Component({\n selector: \"nice-export-bottom-sheet\",\n templateUrl: \"export-bottom-sheet.template.html\",\n standalone: false\n})\nexport class ExportBottomSheetComponent {\n constructor(\n @Inject(MAT_BOTTOM_SHEET_DATA) public exportBottomSheetConfig: ExportBottomSheetConfig,\n private bottomSheetRef: MatBottomSheetRef<ExportBottomSheetComponent>,\n private service: ExportBottomSheetService\n ) {}\n\n public getStrategyIcon(strategy: ExportStrategy): string {\n return this.service.getStrategyIcon(strategy);\n }\n\n public clickExport(strategy: ExportStrategy) {\n this.bottomSheetRef.dismiss();\n strategy.onClickExport();\n }\n}\n","<mat-nav-list>\n <a *ngFor=\"let strategy of exportBottomSheetConfig.exportStrategies\" mat-list-item (click)=\"clickExport(strategy)\">\n <i [ngClass]=\"getStrategyIcon(strategy)\" mat-list-icon></i>\n <span mat-line [innerHtml]=\"'components.export_bottom_sheet.types.' + strategy.type | translate\"></span>\n </a>\n</mat-nav-list>\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule, Type } from \"@angular/core\";\nimport { MatBottomSheetModule } from \"@angular/material/bottom-sheet\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ExportBottomSheetComponent } from \"./export-bottom-sheet.component\";\nimport { DefaultExportBottomSheetService, ExportBottomSheetService } from \"./providers/export-bottom-sheet.service\";\n\nexport interface ExportBottomSheetOptions {\n service: Type<ExportBottomSheetService>;\n}\n\n@NgModule({\n imports: [CommonModule, MatBottomSheetModule, MatListModule, MatIconModule, TranslateModule],\n declarations: [ExportBottomSheetComponent],\n providers: [\n {\n provide: ExportBottomSheetService,\n useClass: DefaultExportBottomSheetService\n }\n ],\n exports: [ExportBottomSheetComponent]\n})\nexport class NiceExportBottomSheetModule {\n public static forFeature(options: ExportBottomSheetOptions): ModuleWithProviders<NiceExportBottomSheetModule> {\n return {\n ngModule: NiceExportBottomSheetModule,\n providers: [\n {\n provide: ExportBottomSheetService,\n useClass: options.service\n }\n ]\n };\n }\n}\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { Component, Input, ViewEncapsulation } from \"@angular/core\";\n\n@Component({\n // tslint:disable-next-line:components-selector component-selector\n selector: \"[form-error]\",\n template: `\n <div [@animation]=\"increment\" *ngIf=\"message\">\n <mat-error>{{ message }}</mat-error>\n </div>\n `,\n styleUrls: [\"./form-error.style.scss\"],\n animations: [\n trigger(\"animation\", [\n transition(\":increment\", [style({ opacity: 0 }), animate(\"200ms ease-in\", style({ opacity: 1 }))]),\n transition(\":enter\", [\n style({ opacity: 0, transform: \"translateY(-1rem)\" }),\n animate(\"200ms ease-in\", style({ opacity: 1, transform: \"translateY(0)\" }))\n ]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ opacity: 0, transform: \"translateY(-1rem)\" }))])\n ])\n ],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class NiceFormErrorComponent {\n public message: string;\n public increment = 0;\n\n @Input()\n public set error(value: string) {\n if (value) {\n if (this.message !== value) {\n this.increment++;\n }\n }\n this.message = value;\n }\n}\n","import { AfterViewInit, ComponentRef, Directive, ElementRef, OnDestroy, ViewContainerRef } from \"@angular/core\";\nimport { NgControl } from \"@angular/forms\";\nimport { MatFormField } from \"@angular/material/form-field\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { th } from \"date-fns/locale\";\nimport { NiceFormErrorComponent } from \"./form-error.component\";\nimport { Subject, combineLatest } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Directive({\n selector: \"[niceControlStatus]\",\n standalone: false\n})\nexport class NiceControlStatusDirective implements AfterViewInit, OnDestroy {\n private ref: ComponentRef<NiceFormErrorComponent>;\n private control: NgControl;\n\n private unsubscribeAll$ = new Subject<void>();\n\n public onChange = () => {\n if (this.control.pending) {\n return;\n }\n\n if (this.control.invalid && this.control.touched) {\n for (const error in this.control.errors) {\n if (this.control.errors.hasOwnProperty(error)) {\n if (this.control.errors[error]) {\n let lastErrorKey = error;\n let param: any;\n if (error === \"pattern\") {\n lastErrorKey = this.control.errors[error].requiredPattern;\n }\n if (error === \"mask\") {\n lastErrorKey = this.control.errors[error].requiredMask;\n }\n if (error === \"minlength\" || error === \"maxlength\") {\n param = {\n value: this.control.errors[error].requiredLength\n };\n }\n if (error === \"min\") {\n param = {\n min: this.control.errors[error].min,\n actual: this.control.errors[error].actual\n };\n }\n if (error === \"max\") {\n param = {\n max: this.control.errors[error].max,\n actual: this.control.errors[error].actual\n };\n }\n if (error === \"arrayMinLength\") {\n param = {\n min: this.control.errors[error].min,\n actual: this.control.errors[error].actual\n };\n }\n if (error === \"arrayMaxLength\") {\n param = {\n max: this.control.errors[error].max,\n actual: this.control.errors[error].actual\n };\n }\n\n if (typeof this.control.errors[error] === \"object\" && !param) {\n param = this.control.errors[error];\n }\n\n this.setError(this.translateService.instant(`errors.${lastErrorKey}`, param));\n break;\n }\n }\n }\n } else {\n this.setError(\"\");\n }\n }\n\n constructor(\n private el: ElementRef<HTMLElement>,\n private vcr: ViewContainerRef,\n private formField: MatFormField,\n private translateService: TranslateService\n ) {}\n\n public ngAfterViewInit(): void {\n this.control = this.formField._control.ngControl as NgControl;\n combineLatest([this.formField._control.stateChanges, this.control.statusChanges])\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(() => this.onChange());\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n public setError(text: string): void {\n if (!this.ref) {\n this.ref = this.vcr.createComponent(NiceFormErrorComponent);\n if (this.el.nativeElement.getElementsByClassName(\"mat-form-field-wrapper\").item(0)) {\n this.el.nativeElement\n .getElementsByClassName(\"mat-form-field-wrapper\")\n .item(0)\n .getElementsByClassName(\"mat-form-field-subscript-wrapper\")\n .item(0)\n .appendChild(this.ref.location.nativeElement);\n }\n\n if (this.el.nativeElement.getElementsByClassName(\"mat-mdc-form-field-subscript-wrapper\").item(0)) {\n const hint = this.el.nativeElement.getElementsByClassName(\"mat-mdc-form-field-hint\").item(0);\n (this.ref.location.nativeElement as HTMLDivElement).style.position = \"absolute\";\n (this.ref.location.nativeElement as HTMLDivElement).style.top = hint ? \"16px\" : \"0\";\n\n const wrapper = this.el.nativeElement\n .getElementsByClassName(\"mat-mdc-form-field-subscript-wrapper\")\n .item(0);\n if (hint) {\n wrapper.classList.add(\"override-height\");\n }\n\n wrapper.prepend(this.ref.location.nativeElement);\n }\n }\n if (text) {\n this.el.nativeElement.classList.add(\"form-error-show\");\n } else {\n this.el.nativeElement.classList.remove(\"form-error-show\");\n }\n this.ref.instance.error = text;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceFormErrorComponent } from \"./form-error.component\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { CommonModule } from \"@angular/common\";\nimport { NiceControlStatusDirective } from \"./control-status.directive\";\n\n@NgModule({\n imports: [CommonModule, MatFormFieldModule],\n declarations: [NiceFormErrorComponent, NiceControlStatusDirective],\n exports: [NiceFormErrorComponent, NiceControlStatusDirective]\n})\nexport class NiceFormErrorModule {}\n","import {\n Component, EventEmitter, Output,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { CdkStep, CdkStepper } from \"@angular/cdk/stepper\";\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\n\n@Component({\n selector: \"nice-horizontal-stepper\",\n templateUrl: \"horizontal-stepper.template.html\",\n styleUrls: [\"./horizontal-stepper.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkStepper, useExisting: NiceHorizontalStepperComponent }],\n animations: [trigger(\"stepTransition\", [\n state(\"previous\", style({ transform: \"translate3d(-100%, 0, 0)\", visibility: \"hidden\" })),\n state(\"current\", style({ transform: \"none\", visibility: \"visible\" })),\n state(\"next\", style({ transform: \"translate3d(100%, 0, 0)\", visibility: \"hidden\" })),\n transition(\"* => *\", animate(\"500ms cubic-bezier(0.35, 0, 0.25, 1)\"))\n ])],\n standalone: false\n})\nexport class NiceHorizontalStepperComponent extends CdkStepper {\n @Output()\n private onStepperClick = new EventEmitter<number>();\n\n public onClick(step: CdkStep, index: number): void {\n step.select();\n this.onStepperClick.emit(index);\n }\n}\n","<section class=\"stepper-container\">\n <div class=\"flex justify-center content-center items-center\">\n <button\n class=\"step\"\n *ngFor=\"let step of steps; let i = index\"\n [ngClass]=\"{ 'active': selectedIndex === i }\"\n (click)=\"onClick(step, i)\"\n >\n </button>\n </div>\n <div class=\"mat-horizontal-content-container h-full\">\n <div *ngFor=\"let step of steps; let i = index\"\n class=\"mat-horizontal-stepper-content h-full\" role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from \"@angular/core\";\nimport { CdkStep } from \"@angular/cdk/stepper\";\n\n@Component({\n selector: \"nice-step\",\n template: `<ng-template><ng-content></ng-content></ng-template>`,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: CdkStep, useExisting: NiceStepComponent }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceStepComponent extends CdkStep {}\n","import { NgModule } from \"@angular/core\";\nimport { NiceHorizontalStepperComponent } from \"./horizontal-stepper.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { CdkStepperModule } from \"@angular/cdk/stepper\";\nimport { NiceStepComponent } from \"./step.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n CdkStepperModule\n ],\n declarations: [NiceStepComponent, NiceHorizontalStepperComponent],\n exports: [NiceStepComponent, NiceHorizontalStepperComponent]\n})\nexport class NiceHorizontalStepperModule {}\n","/*\n * Hermite resize - fast image resize/resample using Hermite filter.\n * https://github.com/viliusle/Hermite-resize\n */\nexport function resizeCanvas(canvas: HTMLCanvasElement, width: number, height: number) {\n const width_source = canvas.width;\n const height_source = canvas.height;\n width = Math.round(width);\n height = Math.round(height);\n\n const ratio_w = width_source / width;\n const ratio_h = height_source / height;\n const ratio_w_half = Math.ceil(ratio_w / 2);\n const ratio_h_half = Math.ceil(ratio_h / 2);\n\n const ctx = canvas.getContext('2d');\n const img = ctx!.getImageData(0, 0, width_source, height_source);\n const img2 = ctx!.createImageData(width, height);\n const data = img.data;\n const data2 = img2.data;\n\n for (let j = 0; j < height; j++) {\n for (let i = 0; i < width; i++) {\n const x2 = (i + j * width) * 4;\n let weight = 0;\n let weights = 0;\n let weights_alpha = 0;\n let gx_r = 0;\n let gx_g = 0;\n let gx_b = 0;\n let gx_a = 0;\n const center_y = j * ratio_h;\n\n const xx_start = Math.floor(i * ratio_w);\n let xx_stop = Math.ceil((i + 1) * ratio_w);\n const yy_start = Math.floor(j * ratio_h);\n let yy_stop = Math.ceil((j + 1) * ratio_h);\n xx_stop = Math.min(xx_stop, width_source);\n yy_stop = Math.min(yy_stop, height_source);\n\n for (let yy = yy_start; yy < yy_stop; yy++) {\n const dy = Math.abs(center_y - yy) / ratio_h_half;\n const center_x = i * ratio_w;\n const w0 = dy * dy; // pre-calc part of w\n for (let xx = xx_start; xx < xx_stop; xx++) {\n const dx = Math.abs(center_x - xx) / ratio_w_half;\n const w = Math.sqrt(w0 + dx * dx);\n if (w >= 1) {\n // pixel too far\n continue;\n }\n // hermite filter\n weight = 2 * w * w * w - 3 * w * w + 1;\n const pos_x = 4 * (xx + yy * width_source);\n // alpha\n gx_a += weight * data[pos_x + 3];\n weights_alpha += weight;\n // colors\n if (data[pos_x + 3] < 255) {\n weight = weight * data[pos_x + 3] / 250;\n }\n gx_r += weight * data[pos_x];\n gx_g += weight * data[pos_x + 1];\n gx_b += weight * data[pos_x + 2];\n weights += weight;\n }\n }\n data2[x2] = gx_r / weights;\n data2[x2 + 1] = gx_g / weights;\n data2[x2 + 2] = gx_b / weights;\n data2[x2 + 3] = gx_a / weights_alpha;\n }\n }\n\n // clear and resize canvas\n canvas.width = width;\n canvas.height = height;\n\n // draw\n ctx!.putImageData(img2, 0, 0);\n return ctx;\n}\n","/**\n * Adapted from https://github.com/A-l-y-l-e/Alyle-UI/tree/10.5.3/src/lib/image-cropper\n */\n\nimport { normalizePassiveListenerOptions } from \"@angular/cdk/platform\";\nimport { ViewportRuler } from \"@angular/cdk/scrolling\";\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter, HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n DOCUMENT\n} from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\nimport { take, takeUntil } from \"rxjs/operators\";\nimport { resizeCanvas } from \"./resize-canvas\";\n\nconst activeEventOptions = normalizePassiveListenerOptions({ passive: false });\n\n/** Image Cropper Config */\nexport class ImgCropperConfig {\n /** Cropper area width */\n width = 250;\n /** Cropper area height */\n height = 200;\n minWidth = 40;\n minHeight = 40;\n /** If this is not defined, the new image will be automatically defined. */\n type?: string;\n /** Background color( default: null), if is null in png is transparent but not in jpg. */\n fill?: string | null;\n /**\n * Set anti-aliased (default: true)\n * @deprecated this is not necessary as the cropper will automatically resize the image\n * to the best quality\n */\n antiAliased = true;\n autoCrop?: boolean;\n output?: ImgOutput | ImgResolution = ImgResolution.Default;\n /**\n * Zoom out until the entire image fits into the cropping area.\n * default: false\n */\n extraZoomOut?: boolean;\n /**\n * Emit event `error` if the file size in bytes for the limit.\n * Note: It only works when the image is received from the `<input>` event.\n */\n maxFileSize?: number | null;\n /**\n * Whether the cropper area will be round.\n * This implies that the cropper area will maintain its aspect ratio.\n * default: false\n */\n round?: boolean;\n /**\n * Whether the cropper area is resizable.\n * default: false\n */\n resizableArea?: boolean;\n /**\n * Keep the width and height of the growing area the same according\n * to `ImgCropperConfig.width` and `ImgCropperConfig.height`\n * default: false\n */\n keepAspectRatio?: boolean;\n /**\n * Whether the cropper area is responsive.\n * By default, the width and height of the cropper area is fixed,\n * so can use when the cropper area is larger than its container,\n * otherwise this will bring problems when cropping.\n */\n responsiveArea?: boolean;\n}\n\n/**\n * The output image\n * With this option you can resize the output image.\n * If `width` or `height` are 0, this will be set automatically.\n * Both cannot be 0.\n */\nexport interface ImgOutput {\n /**\n * The cropped image will be resized to this `width`.\n */\n width: number;\n /**\n * Cropped image will be resized to this `height`.\n */\n height: number;\n}\n\n/** Image output */\nexport enum ImgResolution {\n /**\n * The output image will be equal to the initial size of the cropper area.\n */\n Default,\n /** Just crop the image without resizing */\n OriginalImage\n}\n\n/** Image output */\nexport enum ImgCropperError {\n /** The loaded image exceeds the size limit set. */\n Size,\n /** The file loaded is not image. */\n Type,\n /** When the image has not been loaded. */\n Other\n}\n\nexport interface ImgCropperEvent {\n /** Cropped image data URL */\n dataURL?: string;\n name: string | null;\n /** Filetype */\n type?: string;\n /** Cropped area width */\n areaWidth: number;\n /** Cropped area height */\n areaHeight: number;\n /** Cropped image width */\n width: number;\n /** Cropped image height */\n height: number;\n /** Original Image data URL */\n originalDataURL?: string;\n scale: number;\n /** Current rotation in degrees */\n rotation: number;\n /** Size of the image in bytes */\n size: number;\n /** Scaled offset from the left edge of the image */\n left: number;\n /** Scaled offset from the top edge of the image */\n top: number;\n /**\n * Scaled offset from the left edge of the image to center of area\n * Can be used to set image position\n */\n xOrigin: number;\n /**\n * Scaled offset from the top edge of the image to center of area\n * Can be used to set image position\n */\n yOrigin: number;\n /** @deprecated Use `xOrigin & yOrigin` instead. */\n position?: {\n x: number\n y: number\n };\n}\n\nexport interface ImgCropperErrorEvent {\n name?: string;\n /** Size of the image in bytes */\n size: number;\n /** Filetype */\n type: string;\n /** Type of error */\n error: ImgCropperError;\n errorMsg?: string;\n}\n\ninterface ImgRect {\n x: number;\n y: number;\n xc: number;\n yc: number;\n /** transform with */\n wt: number;\n ht: number;\n}\n\nexport interface ImgCropperLoaderConfig {\n name?: string | null;\n /** Filetype */\n type?: string;\n /** Cropped area width */\n areaWidth?: number;\n /** Cropped area height */\n areaHeight?: number;\n /** Cropped image width */\n width?: number;\n /** Cropped image height */\n height?: number;\n /** Original Image data URL */\n originalDataURL: string;\n scale?: number;\n /** Current rotation in degrees */\n rotation?: number;\n /** Size of the image in bytes */\n size?: number;\n /** Offset from the left edge of the image to center of area */\n xOrigin?: number;\n /** Offset from the top edge of the image to center of area */\n yOrigin?: number;\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: \"nice-img-cropper, nice-image-cropper\",\n templateUrl: \"image-cropper.template.html\",\n styleUrls: [\"image-cropper.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class NiceImageCropperComponent implements OnInit, OnDestroy {\n static readonly и = \"NiceImageCropper\";\n\n private _currentLoadConfig?: ImgCropperLoaderConfig;\n\n /** Original image */\n private _img: HTMLImageElement;\n private offset?: {\n x: number\n y: number\n left: number\n top: number\n };\n private _scale?: number;\n private _scal3Fix?: number;\n private _minScale?: number;\n private _maxScale?: number;\n /** Initial config */\n private _configPrimary: ImgCropperConfig;\n private _config: ImgCropperConfig;\n private _imgRect: ImgRect = {} as any;\n private _rotation = 0;\n // private _sizeInBytes: number | null;\n private _isSliding: boolean;\n /** Keeps track of the last pointer event that was captured by the crop area. */\n private _lastPointerEvent: MouseEvent | TouchEvent | null;\n private _startPointerEvent: {\n x: number\n y: number\n } | null;\n public _primaryAreaWidth: number;\n public _primaryAreaHeight: number;\n\n public _absoluteScale: number;\n\n /**\n * When is loaded image\n * @internal\n */\n public _isLoadedImg: boolean;\n\n /** When is loaded image & ready for crop */\n public isLoaded: boolean;\n /** When the cropper is ready to be interacted */\n public isReady: boolean;\n public isCropped: boolean;\n\n @ViewChild(\"_imgContainer\", { static: true })\n private _imgContainer: ElementRef;\n\n @ViewChild(\"_area\", { read: ElementRef })\n private _areaRef: ElementRef;\n @ViewChild(\"_imgCanvas\", { static: true })\n private _imgCanvas: ElementRef<HTMLCanvasElement>;\n\n @Input()\n public set config(val: ImgCropperConfig) {\n this._config = mergeDeep({}, new ImgCropperConfig(), val);\n this._configPrimary = mergeDeep({}, this._config);\n this._primaryAreaWidth = this.config.width;\n this._primaryAreaHeight = this.config.height;\n if (\n this._config.round\n && this.config.width !== this.config.height\n ) {\n throw new Error(`${NiceImageCropperComponent.и}: Both width and height must be equal when using \\`ImgCropperConfig.round = true\\``);\n }\n const maxFileSize = this._config.maxFileSize;\n if (maxFileSize) {\n this.maxFileSize = maxFileSize;\n }\n }\n public get config(): ImgCropperConfig {\n return this._config;\n }\n /** Set scale */\n @Input()\n public set scale(val: number | undefined) {\n this.setScale(val);\n }\n public get scale(): number | undefined {\n return this._scale;\n }\n\n /**\n * Emit event `error` if the file size for the limit.\n * Note: It only works when the image is received from the `<input>` event.\n */\n @Input()\n public maxFileSize: number;\n\n /** Get min scale */\n public get minScale(): number | undefined {\n return this._minScale;\n }\n\n @Output()\n private readonly scaleChange = new EventEmitter<number>();\n\n /** Emits minimum supported image scale */\n // tslint:disable-next-line:no-output-rename\n @Output(\"minScale\")\n private readonly minScaleChange = new EventEmitter<number>();\n\n /** Emits maximum supported image scale */\n // tslint:disable-next-line:no-output-rename\n @Output(\"maxScale\")\n private readonly maxScaleChange = new EventEmitter<number>();\n\n /** Emits when the image is loaded */\n @Output()\n private readonly imageLoaded = new EventEmitter<ImgCropperEvent>();\n\n /** Emits when the cropper is ready to be interacted */\n @Output()\n private readonly ready = new EventEmitter<ImgCropperEvent>();\n\n /** On crop new image */\n @Output()\n private readonly cropped = new EventEmitter<ImgCropperEvent>();\n\n /** Emits when the cropper is cleaned */\n @Output()\n private readonly cleaned = new EventEmitter<void>();\n\n /** Emit an error when the loaded image is not valid */\n // tslint:disable-next-line: no-output-native\n @Output()\n private readonly error = new EventEmitter<ImgCropperErrorEvent>();\n\n private _currentInputElement?: HTMLInputElement;\n\n /** Emits whenever the component is destroyed. */\n private readonly _destroy = new Subject<void>();\n\n /** Used to subscribe to global move and end events */\n protected _document: Document;\n\n constructor(\n private _renderer: Renderer2,\n readonly _elementRef: ElementRef<HTMLElement>,\n private cd: ChangeDetectorRef,\n private _ngZone: NgZone,\n @Inject(DOCUMENT) _document: any,\n viewPortRuler: ViewportRuler\n ) {\n this._document = _document;\n viewPortRuler.change()\n .pipe(takeUntil(this._destroy))\n .subscribe(() =>\n this._ngZone.run(() => this.updateCropperPosition())\n );\n }\n\n public ngOnInit(): void {\n this._ngZone.runOutsideAngular(() => {\n const element = this._imgContainer.nativeElement;\n element.addEventListener(\"mousedown\", this._pointerDown, activeEventOptions);\n element.addEventListener(\"touchstart\", this._pointerDown, activeEventOptions);\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy.next();\n this._destroy.complete();\n const element = this._imgContainer.nativeElement;\n this._lastPointerEvent = null;\n this._removeGlobalEvents();\n element.removeEventListener(\"mousedown\", this._pointerDown, activeEventOptions);\n element.removeEventListener(\"touchstart\", this._pointerDown, activeEventOptions);\n }\n\n /** Load image with canvas */\n private _imgLoaded(imgElement: HTMLImageElement): void {\n if (imgElement) {\n this._img = imgElement;\n const canvas = this._imgCanvas.nativeElement;\n canvas.width = imgElement.width;\n canvas.height = imgElement.height;\n const ctx = canvas.getContext(\"2d\");\n ctx.clearRect(0, 0, imgElement.width, imgElement.height);\n ctx.drawImage(imgElement, 0, 0);\n\n /** set min scale */\n this._updateMinScale(canvas);\n this._updateMaxScale();\n }\n }\n\n private _setStylesForContImg(values: { x?: number, y?: number }) {\n const newStyles = { } as any;\n if (values.x != null && values.y != null) {\n const rootRect = this._rootRect();\n const x = rootRect.width / 2 - (values.x);\n const y = rootRect.height / 2 - (values.y);\n\n this._imgRect.x = (values.x);\n this._imgRect.y = (values.y);\n this._imgRect.xc = (x);\n this._imgRect.yc = (y);\n\n }\n newStyles.transform = `translate3d(${(this._imgRect.x)}px,${(this._imgRect.y)}px, 0)`;\n newStyles.transform += `scale(${this._scal3Fix})`;\n newStyles.transformOrigin = `${this._imgRect.xc}px ${this._imgRect.yc}px 0`;\n newStyles[\"-webkit-transform\"] = newStyles.transform;\n newStyles[\"-webkit-transform-origin\"] = newStyles.transformOrigin;\n for (const key in newStyles) {\n if (newStyles.hasOwnProperty(key)) {\n this._renderer.setStyle(this._imgContainer.nativeElement, key, newStyles[key]);\n }\n }\n }\n /**\n * Update area and image position only if needed,\n * this is used when window resize\n */\n public updateCropperPosition(): void {\n if (this.isLoaded) {\n this.updatePosition();\n this._updateAreaIfNeeded();\n }\n }\n\n /** Load Image from input event */\n public selectInputEvent(img: Event) {\n this._currentInputElement = img.target as HTMLInputElement;\n const _img = img.target as HTMLInputElement;\n if (_img.files && _img.files.length !== 1) {\n return;\n }\n const fileSize = _img.files[0].size;\n const fileName = _img.value.replace(/.*(\\/|\\\\)/, \"\");\n\n if (this.maxFileSize && fileSize > this.maxFileSize) {\n const cropEvent: ImgCropperErrorEvent = {\n name: fileName,\n type: _img.files[0].type,\n size: fileSize,\n error: ImgCropperError.Size\n };\n this.clean();\n this.error.emit(cropEvent as ImgCropperErrorEvent);\n return;\n }\n\n new Observable<ProgressEvent>(observer => {\n\n const reader = new FileReader();\n\n reader.onerror = err => observer.error(err);\n reader.onabort = err => observer.error(err);\n reader.onload = (ev) => setTimeout(() => {\n observer.next(ev);\n observer.complete();\n });\n\n reader.readAsDataURL(_img.files[0]);\n })\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(\n (loadEvent) => {\n const originalDataURL = (loadEvent.target as FileReader).result as string;\n\n this.loadImage({\n name: fileName,\n size: _img.files[0].size, // size in bytes\n type: this.config.type || _img.files[0].type,\n originalDataURL\n });\n\n this.cd.markForCheck();\n },\n () => {\n const cropEvent: ImgCropperErrorEvent = {\n name: fileName,\n size: fileSize,\n error: ImgCropperError.Other,\n errorMsg: \"The File could not be loaded.\",\n type: _img.files[0].type\n };\n this.clean();\n this.error.emit(cropEvent as ImgCropperErrorEvent);\n }\n );\n\n }\n\n /** Set the size of the image, the values can be 0 between 1, where 1 is the original size */\n public setScale(size?: number, noAutoCrop?: boolean) {\n // fix min scale\n const newSize = size >= this.minScale && size <= 1 ? size : this.minScale;\n\n // check\n const changed = size != null && size !== this.scale && newSize !== this.scale;\n this._scale = size;\n if (!changed) {\n return;\n }\n this._scal3Fix = newSize;\n this._updateAbsoluteScale();\n if (this.isLoaded) {\n if (changed) {\n const originPosition = {...this._imgRect};\n this.offset = {\n x: originPosition.x,\n y: originPosition.y,\n left: originPosition.xc,\n top: originPosition.yc\n };\n this._setStylesForContImg({});\n this._simulatePointerMove();\n } else {\n return;\n }\n } else if (this.minScale) {\n this._setStylesForContImg({\n ...this._getCenterPoints()\n });\n } else {\n return;\n }\n\n this.scaleChange.emit(size);\n if (!noAutoCrop) {\n this._cropIfAutoCrop();\n }\n\n }\n\n private _getCenterPoints() {\n const root = this._elementRef.nativeElement as HTMLElement;\n const img = this._imgCanvas.nativeElement;\n const x = (root.offsetWidth - (img.width)) / 2;\n const y = (root.offsetHeight - (img.height)) / 2;\n return {\n x,\n y\n };\n }\n\n /**\n * Fit to screen\n */\n public fitToScreen() {\n const container = this._elementRef.nativeElement as HTMLElement;\n const min = {\n width: container.offsetWidth,\n height: container.offsetHeight\n };\n const { width, height } = this._img;\n const minScale = {\n width: min.width / width,\n height: min.height / height\n };\n const result = Math.max(minScale.width, minScale.height);\n this.setScale(result);\n }\n\n public fit() {\n this.setScale(this.minScale);\n }\n\n private _pointerDown = (event: TouchEvent | MouseEvent) => {\n // Don't do anything if the\n // user is using anything other than the main mouse button.\n if (this._isSliding || (!isTouchEvent(event) && event.button !== 0)) {\n return;\n }\n\n this._ngZone.run(() => {\n this._isSliding = true;\n this.offset = {\n x: this._imgRect.x,\n y: this._imgRect.y,\n left: this._imgRect.xc,\n top: this._imgRect.yc\n };\n this._lastPointerEvent = event;\n this._startPointerEvent = getGesturePointFromEvent(event);\n event.preventDefault();\n this._bindGlobalEvents(event);\n });\n\n }\n\n /**\n * Simulate pointerMove with clientX = 0 and clientY = 0,\n * this is used by `setScale` and `rotate`\n */\n private _simulatePointerMove() {\n this._isSliding = true;\n this._startPointerEvent = {\n x: 0,\n y: 0\n };\n this._pointerMove({\n clientX: 0,\n clientY: 0,\n type: \"n\",\n preventDefault: () => {}\n } as MouseEvent);\n this._isSliding = false;\n this._startPointerEvent = null;\n }\n\n public _markForCheck() {\n this.cd.markForCheck();\n }\n\n /**\n * Called when the user has moved their pointer after\n * starting to drag.\n */\n private _pointerMove = (event: TouchEvent | MouseEvent) => {\n if (this._isSliding) {\n event.preventDefault();\n this._lastPointerEvent = event;\n let x: number | undefined;\n let y: number | undefined;\n const canvas = this._imgCanvas.nativeElement;\n const scaleFix = this._scal3Fix;\n const config = this.config;\n const startP = this.offset;\n const point = getGesturePointFromEvent(event);\n const deltaX = point.x - this._startPointerEvent.x;\n const deltaY = point.y - this._startPointerEvent.y;\n if (!scaleFix || !startP) {\n return;\n }\n\n const isMinScaleY = canvas.height * scaleFix < config.height && config.extraZoomOut;\n const isMinScaleX = canvas.width * scaleFix < config.width && config.extraZoomOut;\n\n const limitLeft = (config.width / 2 / scaleFix) >= startP.left - (deltaX / scaleFix);\n const limitRight = (config.width / 2 / scaleFix) +\n (canvas.width) - (startP.left - (deltaX / scaleFix)) <= config.width / scaleFix;\n const limitTop = ((config.height / 2 / scaleFix) >= (startP.top - (deltaY / scaleFix)));\n const limitBottom = (\n ((config.height / 2 / scaleFix) + (canvas.height) - (startP.top - (deltaY / scaleFix))) <= (config.height / scaleFix)\n );\n\n // Limit for left\n if ((limitLeft && !isMinScaleX) || (!limitLeft && isMinScaleX)) {\n x = startP.x + (startP.left) - (config.width / 2 / scaleFix);\n }\n\n // Limit for right\n if ((limitRight && !isMinScaleX) || (!limitRight && isMinScaleX)) {\n x = startP.x + (startP.left) + (config.width / 2 / scaleFix) - canvas.width;\n }\n\n // Limit for top\n if ((limitTop && !isMinScaleY) || (!limitTop && isMinScaleY)) {\n y = startP.y + (startP.top) - (config.height / 2 / scaleFix);\n }\n\n // Limit for bottom\n if ((limitBottom && !isMinScaleY) || (!limitBottom && isMinScaleY)) {\n y = startP.y + (startP.top) + (config.height / 2 / scaleFix) - canvas.height;\n }\n\n // When press shiftKey, deprecated\n // if (event.srcEvent && event.srcEvent.shiftKey) {\n // if (Math.abs(event.deltaX) === Math.max(Math.abs(event.deltaX), Math.abs(event.deltaY))) {\n // y = this.offset.top;\n // } else {\n // x = this.offset.left;\n // }\n // }\n\n if (x === void 0) { x = (deltaX / scaleFix) + (startP.x); }\n if (y === void 0) { y = (deltaY / scaleFix) + (startP.y); }\n this._setStylesForContImg({\n x, y\n });\n }\n }\n\n public updatePosition(): void;\n public updatePosition(xOrigin: number, yOrigin: number): void;\n public updatePosition(xOrigin?: number, yOrigin?: number): void {\n const hostRect = this._rootRect();\n const areaRect = this._areaCropperRect();\n const areaWidth = areaRect.width > hostRect.width\n ? hostRect.width\n : areaRect.width;\n const areaHeight = areaRect.height > hostRect.height\n ? hostRect.height\n : areaRect.height;\n let x: number;\n let y: number;\n if (xOrigin == null && yOrigin == null) {\n xOrigin = this._imgRect.xc;\n yOrigin = this._imgRect.yc;\n }\n x = (areaRect.left - hostRect.left);\n y = (areaRect.top - hostRect.top);\n x -= (xOrigin - (areaWidth / 2));\n y -= (yOrigin - (areaHeight / 2));\n\n this._setStylesForContImg({\n x, y\n });\n }\n\n public _slideEnd() {\n this._cropIfAutoCrop();\n }\n\n private _cropIfAutoCrop() {\n if (this.config.autoCrop) {\n this.crop();\n }\n }\n\n /** + */\n public zoomIn() {\n const scale = this._scal3Fix + .05;\n if (scale > this.minScale && scale <= this._maxScale) {\n this.setScale(scale);\n } else {\n this.setScale(this._maxScale);\n }\n }\n\n /** Clean the img cropper */\n public clean() {\n // fix choosing the same image does not load\n if (this._currentInputElement) {\n this._currentInputElement.value = \"\";\n this._currentInputElement = null;\n }\n if (this.isLoaded) {\n this._imgRect = { } as any;\n this.offset = undefined;\n this.scale = undefined as any;\n this._scal3Fix = undefined;\n this._rotation = 0;\n this._minScale = undefined;\n this._isLoadedImg = false;\n this.isLoaded = false;\n this.isCropped = false;\n this._currentLoadConfig = undefined;\n this.config = this._configPrimary;\n const canvas = this._imgCanvas.nativeElement;\n canvas.width = 0;\n canvas.height = 0;\n this.cleaned.emit(null);\n this.cd.markForCheck();\n }\n }\n\n /** - */\n public zoomOut() {\n const scale = this._scal3Fix - .05;\n if (scale > this.minScale && scale <= this._maxScale) {\n this.setScale(scale);\n } else {\n this.fit();\n }\n }\n public center() {\n const newStyles = {\n ...this._getCenterPoints()\n };\n this._setStylesForContImg(newStyles);\n this._cropIfAutoCrop();\n }\n /**\n * load an image from a given configuration,\n * or from the result of a cropped image\n */\n public loadImage(config: ImgCropperLoaderConfig | string, fn?: () => void) {\n this.clean();\n const _config = this._currentLoadConfig = typeof config === \"string\"\n ? { originalDataURL: config }\n : { ...config };\n let src = _config.originalDataURL;\n this._primaryAreaWidth = this._configPrimary.width;\n this._primaryAreaHeight = this._configPrimary.height;\n if (_config.areaWidth && _config.areaHeight) {\n this.config.width = _config.areaWidth;\n this.config.height = _config.areaHeight;\n }\n src = normalizeSVG(src);\n\n const img = createHtmlImg(src);\n\n const cropEvent = { ..._config } as ImgCropperEvent;\n\n new Observable<void>(observer => {\n\n img.onerror = err => observer.error(err);\n img.onabort = err => observer.error(err);\n img.onload = () => observer.next(null);\n })\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(\n () => {\n this._imgLoaded(img);\n this._isLoadedImg = true;\n this.imageLoaded.emit(cropEvent);\n this.cd.markForCheck();\n this._ngZone.runOutsideAngular(() => {\n this._ngZone\n .onStable\n .asObservable()\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(\n () => setTimeout(() => this._ngZone.run(() => this._positionImg(cropEvent, fn)))\n );\n });\n },\n () => {\n const error: ImgCropperErrorEvent = {\n name: _config.name,\n error: ImgCropperError.Type,\n type: _config.type,\n size: _config.size\n };\n this.error.emit(error);\n }\n );\n }\n\n private _updateAreaIfNeeded() {\n if (!this._config.responsiveArea) {\n return;\n }\n\n const rootRect = this._rootRect();\n const areaRect = this._areaCropperRect();\n const minWidth = this.config.minWidth || 1;\n const minHeight = this.config.minHeight || 1;\n if (!(\n areaRect.width > rootRect.width\n || areaRect.height > rootRect.height\n || areaRect.width < this._primaryAreaWidth\n || areaRect.height < this._primaryAreaHeight\n )) {\n return;\n }\n const areaWidthConf = Math.max(this.config.width, minWidth);\n const areaWidthMax = Math.max(rootRect.width, minWidth);\n const minHost = Math.min(\n Math.max(rootRect.width, minWidth), Math.max(rootRect.height, minHeight)\n );\n const currentScale = this._scal3Fix;\n let newScale = 0;\n const roundConf = this.config.round;\n\n if (roundConf) {\n this.config.width = this.config.height = minHost;\n } else {\n if (areaWidthConf === areaRect.width) {\n if (areaWidthMax > this._primaryAreaWidth) {\n this.config.width = this._primaryAreaWidth;\n this.config.height = (this._primaryAreaWidth * areaRect.height) / areaRect.width;\n newScale = (currentScale * this._primaryAreaWidth) / areaRect.width;\n } else {\n this.config.width = areaWidthMax;\n this.config.height = (areaWidthMax * areaRect.height) / areaRect.width;\n newScale = (currentScale * areaWidthMax) / areaRect.width;\n }\n this._updateMinScale();\n this._updateMaxScale();\n this.setScale(newScale, true);\n this._markForCheck();\n }\n }\n }\n\n private _updateAbsoluteScale() {\n const scale = this._scal3Fix / (this.config.width / this._primaryAreaWidth);\n this._absoluteScale = scale;\n }\n\n /**\n * Load Image from URL\n * @deprecated Use `loadImage` instead of `setImageUrl`\n * @param src URL\n * @param fn function that will be called before emit the event loaded\n */\n public setImageUrl(src: string, fn?: () => void) {\n this.loadImage(src, fn);\n }\n\n private _positionImg(cropEvent: ImgCropperEvent, fn?: () => void) {\n const loadConfig = this._currentLoadConfig;\n this._updateMinScale(this._imgCanvas.nativeElement);\n this._updateMaxScale();\n this.isLoaded = false;\n if (fn) {\n fn();\n } else {\n if (loadConfig.scale) {\n this.setScale(loadConfig.scale, true);\n } else {\n this.setScale(this.minScale, true);\n }\n this.rotate(loadConfig.rotation || 0);\n this._updateAreaIfNeeded();\n this._markForCheck();\n this._ngZone.runOutsideAngular(() => {\n this._ngZone\n .onStable\n .asObservable()\n .pipe(take(1), takeUntil(this._destroy))\n .subscribe(() => {\n if (loadConfig.xOrigin != null && loadConfig.yOrigin != null) {\n this.updatePosition(loadConfig.xOrigin, loadConfig.yOrigin);\n }\n this._updateAreaIfNeeded();\n this.isLoaded = true;\n this._cropIfAutoCrop();\n this._ngZone.run(() => {\n this._markForCheck();\n this.ready.emit(cropEvent);\n });\n });\n });\n }\n }\n\n public rotate(degrees: number) {\n let validDegrees = _normalizeDegrees(degrees);\n // If negative convert to positive\n if (validDegrees < 0) {\n validDegrees += 360;\n }\n const newRotation = _normalizeDegrees((this._rotation || 0) + validDegrees);\n if (newRotation === this._rotation) {\n return;\n }\n const degreesRad = validDegrees * Math.PI / 180;\n const canvas = this._imgCanvas.nativeElement;\n const canvasClon = createCanvasImg(canvas);\n const ctx = canvas.getContext(\"2d\");\n this._rotation = newRotation;\n\n // clear\n ctx.clearRect(0, 0, canvasClon.width, canvasClon.height);\n\n // rotate canvas image\n const transform = `rotate(${validDegrees}deg) scale(${1 / this._scal3Fix})`;\n const transformOrigin = `${this._imgRect.xc}px ${this._imgRect.yc}px 0`;\n canvas.style.transform = transform;\n // tslint:disable-next-line: deprecation\n canvas.style.webkitTransform = transform;\n canvas.style.transformOrigin = transformOrigin;\n // tslint:disable-next-line: deprecation\n canvas.style.webkitTransformOrigin = transformOrigin;\n\n const { left, top } = canvas.getBoundingClientRect() as DOMRect;\n\n // save rect\n const canvasRect = canvas.getBoundingClientRect();\n\n // remove rotate styles\n canvas.removeAttribute(\"style\");\n\n // set w & h\n const w = canvasRect.width;\n const h = canvasRect.height;\n ctx.canvas.width = w;\n ctx.canvas.height = h;\n\n // clear\n ctx.clearRect(0, 0, w, h);\n\n // translate and rotate\n ctx.translate(w / 2, h / 2);\n ctx.rotate(degreesRad);\n ctx.drawImage(canvasClon, -canvasClon.width / 2, -canvasClon.height / 2);\n\n // Update min scale\n this._updateMinScale(canvas);\n this._updateMaxScale();\n\n // set the minimum scale, only if necessary\n if (this.scale < this.minScale) {\n this.setScale(0, true);\n } // ↑ no AutoCrop\n\n const rootRect = this._rootRect();\n\n this._setStylesForContImg({\n x: (left - rootRect.left),\n y: (top - rootRect.top)\n });\n\n // keep image inside the frame\n const originPosition = {...this._imgRect};\n this.offset = {\n x: originPosition.x,\n y: originPosition.y,\n left: originPosition.xc,\n top: originPosition.yc\n };\n this._setStylesForContImg({});\n this._simulatePointerMove();\n\n this._cropIfAutoCrop();\n }\n\n public _updateMinScale(canvas?: HTMLCanvasElement) {\n if (!canvas) {\n canvas = this._imgCanvas.nativeElement;\n }\n const config = this.config;\n const minScale = (config.extraZoomOut ? Math.min : Math.max)(\n config.width / canvas.width,\n config.height / canvas.height);\n this._minScale = minScale;\n this.minScaleChange.emit(minScale);\n }\n\n private _updateMaxScale() {\n const maxScale = (this.config.width / this._primaryAreaWidth);\n this._maxScale = maxScale;\n this.maxScaleChange.emit(maxScale);\n }\n\n /**\n * Resize & crop image\n */\n public crop(config?: ImgCropperConfig): ImgCropperEvent {\n const newConfig = config\n ? mergeDeep({ }, this.config || new ImgCropperConfig(), config) : this.config;\n const cropEvent = this._imgCrop(newConfig);\n this.cd.markForCheck();\n return cropEvent;\n }\n\n /**\n * @docs-private\n */\n private _imgCrop(myConfig: ImgCropperConfig) {\n const canvasElement: HTMLCanvasElement = document.createElement(\"canvas\");\n const areaRect = this._areaCropperRect();\n const canvasRect = this._canvasRect();\n const scaleFix = this._scal3Fix;\n const left = (areaRect.left - canvasRect.left) / scaleFix;\n const top = (areaRect.top - canvasRect.top) / scaleFix;\n const { output } = myConfig;\n const currentImageLoadConfig = this._currentLoadConfig;\n const area = {\n width: myConfig.width,\n height: myConfig.height\n };\n canvasElement.width = area.width / scaleFix;\n canvasElement.height = area.height / scaleFix;\n const ctx = canvasElement.getContext(\"2d\");\n if (myConfig.fill) {\n ctx.fillStyle = myConfig.fill;\n ctx.fillRect(0, 0, canvasElement.width, canvasElement.height);\n }\n ctx.drawImage(this._imgCanvas.nativeElement,\n -(left), -(top),\n );\n const result = canvasElement;\n if (myConfig.output === ImgResolution.Default) {\n resizeCanvas(\n result,\n this._configPrimary.width,\n this._configPrimary.height);\n } else if (typeof output === \"object\") {\n if (output.width && output.height) {\n resizeCanvas(result, output.width, output.height);\n } else if (output.width) {\n const newHeight = area.height * output.width / area.width;\n resizeCanvas(result, output.width, newHeight);\n } else if (output.height) {\n const newWidth = area.width * output.height / area.height;\n resizeCanvas(result, newWidth, output.height);\n }\n }\n const type = currentImageLoadConfig.originalDataURL.startsWith(\"http\")\n ? currentImageLoadConfig.type || myConfig.type\n : myConfig.type || currentImageLoadConfig.type;\n const dataURL = result.toDataURL(type);\n const cropEvent: ImgCropperEvent = {\n dataURL,\n type,\n name: currentImageLoadConfig.name,\n areaWidth: this._primaryAreaWidth,\n areaHeight: this._primaryAreaHeight,\n width: result.width,\n height: result.height,\n originalDataURL: currentImageLoadConfig.originalDataURL,\n scale: this._absoluteScale,\n rotation: this._rotation,\n left: (areaRect.left - canvasRect.left) / this._scal3Fix,\n top: (areaRect.top - canvasRect.top) / this._scal3Fix,\n size: currentImageLoadConfig.size,\n xOrigin: this._imgRect.xc,\n yOrigin: this._imgRect.yc,\n position: {\n x: this._imgRect.xc,\n y: this._imgRect.yc\n }\n };\n\n this.isCropped = true;\n this.cropped.emit(cropEvent);\n return cropEvent;\n }\n\n public _rootRect(): DOMRect {\n return this._elementRef.nativeElement.getBoundingClientRect() as DOMRect;\n }\n\n public _areaCropperRect(): DOMRect {\n return this._areaRef.nativeElement.getBoundingClientRect() as DOMRect;\n }\n\n public _canvasRect(): DOMRect {\n return this._imgCanvas.nativeElement.getBoundingClientRect();\n }\n\n\n /** Called when the user has lifted their pointer. */\n private _pointerUp = (event: TouchEvent | MouseEvent) => {\n if (this._isSliding) {\n event.preventDefault();\n this._removeGlobalEvents();\n this._isSliding = false;\n this._startPointerEvent = null;\n this._cropIfAutoCrop();\n }\n }\n\n /** Called when the window has lost focus. */\n private _windowBlur = () => {\n // If the window is blurred while dragging we need to stop dragging because the\n // browser won't dispatch the `mouseup` and `touchend` events anymore.\n if (this._lastPointerEvent) {\n this._pointerUp(this._lastPointerEvent);\n }\n }\n\n private _bindGlobalEvents(triggerEvent: TouchEvent | MouseEvent) {\n const element = this._document;\n const isTouch = isTouchEvent(triggerEvent);\n const moveEventName = isTouch ? \"touchmove\" : \"mousemove\";\n const endEventName = isTouch ? \"touchend\" : \"mouseup\";\n element.addEventListener(moveEventName, this._pointerMove, activeEventOptions);\n element.addEventListener(endEventName, this._pointerUp, activeEventOptions);\n\n if (isTouch) {\n element.addEventListener(\"touchcancel\", this._pointerUp, activeEventOptions);\n }\n\n const window = this._getWindow();\n\n if (typeof window !== \"undefined\" && window) {\n window.addEventListener(\"blur\", this._windowBlur);\n }\n }\n\n /** Removes any global event listeners that we may have added. */\n private _removeGlobalEvents() {\n const element = this._document;\n element.removeEventListener(\"mousemove\", this._pointerMove, activeEventOptions);\n element.removeEventListener(\"mouseup\", this._pointerUp, activeEventOptions);\n element.removeEventListener(\"touchmove\", this._pointerMove, activeEventOptions);\n element.removeEventListener(\"touchend\", this._pointerUp, activeEventOptions);\n element.removeEventListener(\"touchcancel\", this._pointerUp, activeEventOptions);\n\n const window = this._getWindow();\n\n if (typeof window !== \"undefined\" && window) {\n window.removeEventListener(\"blur\", this._windowBlur);\n }\n }\n\n /** Use defaultView of injected document if available or fallback to global window reference */\n private _getWindow(): Window {\n return this._document.defaultView || window;\n }\n\n}\n\n/**\n * Normalize degrees for cropper rotation\n * @docs-private\n */\nexport function _normalizeDegrees(n: number) {\n const de = n % 360;\n if (de % 90) {\n throw new Error(`LyCropper: Invalid \\`${n}\\` degree, only accepted values: 0, 90, 180, 270 & 360.`);\n }\n return de;\n}\n\n/**\n * @docs-private\n */\nfunction createCanvasImg(img: HTMLCanvasElement | HTMLImageElement) {\n\n // create a new canvas\n const newCanvas = document.createElement(\"canvas\");\n const context = newCanvas.getContext(\"2d\");\n\n // set dimensions\n newCanvas.width = img.width;\n newCanvas.height = img.height;\n\n // apply the old canvas to the new one\n context.drawImage(img, 0, 0);\n\n // return the new canvas\n return newCanvas;\n}\n\n\nconst DATA_IMAGE_SVG_PREFIX = \"data:image/svg+xml;base64,\";\n\nfunction normalizeSVG(dataURL: string) {\n if (window.atob && isSvgImage(dataURL)) {\n const len = dataURL.length / 5;\n const text = window.atob(dataURL.replace(DATA_IMAGE_SVG_PREFIX, \"\"));\n const span = document.createElement(\"span\");\n span.innerHTML = text;\n const svg = span.querySelector(\"svg\");\n span.setAttribute(\"style\", \"display:none\");\n document.body.appendChild(span);\n const width = parseFloat(getComputedStyle(svg).width) || 1;\n const height = parseFloat(getComputedStyle(svg).height) || 1;\n const max = Math.max(width, height);\n\n svg.setAttribute(\"width\", `${len / (width / max)}px`);\n svg.setAttribute(\"height\", `${len / (height / max)}px`);\n const result = DATA_IMAGE_SVG_PREFIX + window.btoa(span.innerHTML);\n document.body.removeChild(span);\n return result;\n }\n return dataURL;\n}\n\nfunction isSvgImage(dataUrl: string) {\n return dataUrl.startsWith(DATA_IMAGE_SVG_PREFIX);\n}\n\nfunction createHtmlImg(src: string) {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.src = src;\n return img;\n}\n\n\nfunction getGesturePointFromEvent(event: TouchEvent | MouseEvent) {\n\n // `touches` will be empty for start/end events so we have to fall back to `changedTouches`.\n const point = isTouchEvent(event)\n ? (event.touches[0] || event.changedTouches[0])\n : event;\n\n return {\n x: point.clientX,\n y: point.clientY\n };\n}\n\n/** Returns whether an event is a touch event. */\nfunction isTouchEvent(event: MouseEvent | TouchEvent): event is TouchEvent {\n return event.type[0] === \"t\";\n}\n\nexport function round(n: number) {\n return Math.round(n);\n}\n\n/**\n * Simple object check.\n * @param item\n */\nfunction isObject(item) {\n return (item && typeof item === \"object\" && !Array.isArray(item));\n}\n\nexport function mergeDeep<T, U>(target: T, source: U): T & U;\nexport function mergeDeep<T, U, V>(target: T, source1: U, source2: V): T & U & V;\nexport function mergeDeep<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\nexport function mergeDeep(target: object, ...sources: any[]): any;\n\n/**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\nexport function mergeDeep(target: any, ...sources: any[]) {\n if (!sources.length) { return target; }\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) { Object.assign(target, { [key]: {} }); }\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return mergeDeep(target, ...sources);\n}\n\n\n/**\n * We have the cropper area in the same file to fix the build\n */\n\n@Component({\n selector: \"nice-cropper-area\",\n templateUrl: \"./image-cropper-area.template.html\",\n styleUrls: [\"./image-cropper-area.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceCropperAreaComponent implements OnDestroy {\n @ViewChild(\"resizer\")\n private readonly _resizer?: ElementRef;\n\n @Input()\n public keepAspectRatio: boolean;\n\n @Input()\n @HostBinding(\"class.round\")\n public round: boolean;\n\n /** Used to subscribe to global move and end events */\n protected _document: Document;\n private _isSliding: boolean;\n\n /** Keeps track of the last pointer event that was captured by the crop area. */\n private _lastPointerEvent: MouseEvent | TouchEvent | null;\n private _startPointerEvent: {\n x: number\n y: number\n } | null;\n private _currentWidth: number;\n private _currentHeight: number;\n private _startAreaRect: DOMRect;\n private _startImgRect: DOMRect;\n\n constructor(\n @Inject(DOCUMENT) _document: any,\n private readonly _elementRef: ElementRef,\n private readonly _cropper: NiceImageCropperComponent,\n private readonly _ngZone: NgZone,\n ) {\n this._document = _document;\n }\n\n private _resizableArea: boolean;\n\n @Input()\n public set resizableArea(val: boolean) {\n if (val !== this._resizableArea) {\n this._resizableArea = val;\n Promise.resolve(null).then(() => {\n if (val) {\n this._removeResizableArea();\n this._addResizableArea();\n } else {\n this._removeResizableArea();\n }\n });\n }\n }\n public get resizableArea() {\n return this._resizableArea;\n }\n\n public ngOnDestroy() {\n this._removeResizableArea();\n }\n\n private _addResizableArea() {\n this._ngZone.runOutsideAngular(() => {\n const element = this._resizer.nativeElement;\n element.addEventListener(\"mousedown\", this._pointerDown, activeEventOptions);\n element.addEventListener(\"touchstart\", this._pointerDown, activeEventOptions);\n });\n }\n\n private _removeResizableArea() {\n const element = this._resizer?.nativeElement;\n if (element) {\n this._lastPointerEvent = null;\n this._removeGlobalEvents();\n element.removeEventListener(\"mousedown\", this._pointerDown, activeEventOptions);\n element.removeEventListener(\"touchstart\", this._pointerDown, activeEventOptions);\n }\n }\n\n private _pointerDown = (event: MouseEvent | TouchEvent) => {\n // Don't do anything if the\n // user is using anything other than the main mouse button.\n if (this._isSliding || (!isTouchEvent(event) && event.button !== 0)) {\n return;\n }\n\n event.preventDefault();\n\n this._ngZone.run(() => {\n this._isSliding = true;\n this._lastPointerEvent = event;\n this._startPointerEvent = getGesturePointFromEvent(event);\n this._startAreaRect = this._cropper._areaCropperRect();\n this._startImgRect = this._cropper._canvasRect();\n event.preventDefault();\n this._bindGlobalEvents(event);\n });\n }\n\n private _pointerMove = (event: MouseEvent | TouchEvent) => {\n if (this._isSliding) {\n event.preventDefault();\n this._lastPointerEvent = event;\n const element: HTMLDivElement = this._elementRef.nativeElement;\n const {width, height, minWidth, minHeight} = this._cropper.config;\n const point = getGesturePointFromEvent(event);\n const deltaX = point.x - this._startPointerEvent.x;\n const deltaY = point.y - this._startPointerEvent.y;\n const startAreaRect = this._startAreaRect;\n const startImgRect = this._startImgRect;\n const isRound = this.round;\n const keepAspectRatio = this._cropper.config.keepAspectRatio || event.shiftKey;\n let newWidth = 0;\n let newHeight = 0;\n const rootRect = this._cropper._rootRect();\n\n if (isRound) {\n // The distance from the center of the cropper area to the pointer\n const originX = ((width / 2 / Math.sqrt(2)) + deltaX);\n const originY = ((height / 2 / Math.sqrt(2)) + deltaY);\n\n // Leg\n const side = Math.sqrt(originX ** 2 + originY ** 2);\n newWidth = newHeight = side * 2;\n\n } else if (keepAspectRatio) {\n newWidth = width + deltaX * 2;\n newHeight = height + deltaY * 2;\n if (width !== height) {\n if (width > height) {\n newHeight = height / (width / newWidth);\n } else if (height > width) {\n newWidth = width / (height / newHeight);\n }\n } else {\n newWidth = newHeight = Math.max(newWidth, newHeight);\n }\n } else {\n newWidth = width + deltaX * 2;\n newHeight = height + deltaY * 2;\n }\n\n // To min width\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n // To min height\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n\n // Do not overflow the cropper area\n const centerX = startAreaRect.x + startAreaRect.width / 2;\n const centerY = startAreaRect.y + startAreaRect.height / 2;\n const topOverflow = startImgRect.y > centerY - (newHeight / 2);\n const bottomOverflow = centerY + (newHeight / 2) > startImgRect.bottom;\n const minHeightOnOverflow = Math.min((centerY - startImgRect.y) * 2, (startImgRect.bottom - centerY) * 2);\n const leftOverflow = startImgRect.x > centerX - (newWidth / 2);\n const rightOverflow = centerX + (newWidth / 2) > startImgRect.right;\n const minWidthOnOverflow = Math.min((centerX - startImgRect.x) * 2, (startImgRect.right - centerX) * 2);\n const minOnOverflow = Math.min(minWidthOnOverflow, minHeightOnOverflow);\n if (round) {\n if (topOverflow || bottomOverflow || leftOverflow || rightOverflow) {\n newHeight = newWidth = minOnOverflow;\n }\n } else if (keepAspectRatio) {\n const newNewWidth: number[] = [];\n const newNewHeight: number[] = [];\n if ((topOverflow || bottomOverflow) && Math.min()) {\n newHeight = minHeightOnOverflow;\n newNewHeight.push(newHeight);\n newWidth = width / (height / minHeightOnOverflow);\n newNewWidth.push(newWidth);\n }\n if ((leftOverflow || rightOverflow)) {\n newWidth = minWidthOnOverflow;\n newNewWidth.push(newWidth);\n newHeight = height / (width / minWidthOnOverflow);\n newNewHeight.push(newHeight);\n }\n if (newNewWidth.length === 2) {\n newWidth = Math.min(...newNewWidth);\n }\n if (newNewHeight.length === 2) {\n newHeight = Math.min(...newNewHeight);\n }\n } else {\n if (topOverflow || bottomOverflow) {\n newHeight = minHeightOnOverflow;\n }\n if (leftOverflow || rightOverflow) {\n newWidth = minWidthOnOverflow;\n }\n }\n\n // Do not overflow the container\n if (round) {\n const min = Math.min(rootRect.width, rootRect.height);\n if (newWidth > min) {\n newWidth = newHeight = min;\n } else if (newHeight > min) {\n newWidth = newHeight = min;\n }\n } else if (keepAspectRatio) {\n if (newWidth > rootRect.width) {\n newWidth = rootRect.width;\n newHeight = height / (width / rootRect.width);\n } else if (newHeight > rootRect.height) {\n newWidth = width / (height / rootRect.height);\n newHeight = rootRect.height;\n }\n } else {\n if (newWidth > rootRect.width) {\n newWidth = rootRect.width;\n } else if (newHeight > rootRect.height) {\n newHeight = rootRect.height;\n }\n }\n\n\n // round values\n newWidth = Math.round(newWidth);\n newHeight = Math.round(newHeight);\n\n element.style.width = `${newWidth}px`;\n element.style.height = `${newHeight}px`;\n this._currentWidth = newWidth;\n this._currentHeight = newHeight;\n }\n }\n\n /** Called when the user has lifted their pointer. */\n private _pointerUp = (event: TouchEvent | MouseEvent) => {\n if (this._isSliding) {\n event.preventDefault();\n this._removeGlobalEvents();\n this._cropper._primaryAreaWidth = this._cropper.config.width = this._currentWidth;\n this._cropper._primaryAreaHeight = this._cropper.config.height = this._currentHeight;\n this._cropper.config = this._cropper.config;\n this._cropper._updateMinScale();\n this._isSliding = false;\n this._startPointerEvent = null;\n }\n }\n\n /** Called when the window has lost focus. */\n private _windowBlur = () => {\n // If the window is blurred while dragging we need to stop dragging because the\n // browser won't dispatch the `mouseup` and `touchend` events anymore.\n if (this._lastPointerEvent) {\n this._pointerUp(this._lastPointerEvent);\n }\n }\n\n private _bindGlobalEvents(triggerEvent: TouchEvent | MouseEvent) {\n const element = this._document;\n const isTouch = isTouchEvent(triggerEvent);\n const moveEventName = isTouch ? \"touchmove\" : \"mousemove\";\n const endEventName = isTouch ? \"touchend\" : \"mouseup\";\n element.addEventListener(moveEventName, this._pointerMove, activeEventOptions);\n element.addEventListener(endEventName, this._pointerUp, activeEventOptions);\n\n if (isTouch) {\n element.addEventListener(\"touchcancel\", this._pointerUp, activeEventOptions);\n }\n\n const window = this._getWindow();\n\n if (typeof window !== \"undefined\" && window) {\n window.addEventListener(\"blur\", this._windowBlur);\n }\n }\n\n /** Removes any global event listeners that we may have added. */\n private _removeGlobalEvents() {\n const element = this._document;\n element.removeEventListener(\"mousemove\", this._pointerMove, activeEventOptions);\n element.removeEventListener(\"mouseup\", this._pointerUp, activeEventOptions);\n element.removeEventListener(\"touchmove\", this._pointerMove, activeEventOptions);\n element.removeEventListener(\"touchend\", this._pointerUp, activeEventOptions);\n element.removeEventListener(\"touchcancel\", this._pointerUp, activeEventOptions);\n\n const window = this._getWindow();\n\n if (typeof window !== \"undefined\" && window) {\n window.removeEventListener(\"blur\", this._windowBlur);\n }\n }\n\n /** Use defaultView of injected document if available or fallback to global window reference */\n private _getWindow(): Window {\n return this._document.defaultView || window;\n }\n}\n","<!-- (selectstart): On Safari starting to slide temporarily triggers text selection mode which\nshow the wrong cursor. We prevent it by stopping the `selectstart` event. -->\n<div class=\"image-container\" #_imgContainer\n (selectstart)=\"$event.preventDefault()\"\n>\n <canvas #_imgCanvas></canvas>\n</div>\n<nice-cropper-area\n #_area\n *ngIf=\"_isLoadedImg\"\n [round]=\"!!config.round\"\n [resizableArea]=\"!!config.resizableArea\"\n [keepAspectRatio]=\"!!config.keepAspectRatio\"\n [ngStyle]=\"{\n width: config.width + 'px',\n height: config.height + 'px'\n }\"\n></nice-cropper-area>\n<button class=\"close-button\" mat-icon-button *ngIf=\"_isLoadedImg\" (click)=\"clean()\">\n <mat-icon>arrow_back</mat-icon>\n</button>\n","<div class=\"resizer\" #resizer *ngIf=\"resizableArea\"></div>\n","/**\n * Adapted from https://github.com/A-l-y-l-e/Alyle-UI/tree/10.5.3/src/lib/image-cropper\n */\n\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\n\nimport { NiceCropperAreaComponent, NiceImageCropperComponent } from \"./image-cropper.component\";\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatIconModule],\n declarations: [NiceImageCropperComponent, NiceCropperAreaComponent],\n exports: [NiceImageCropperComponent]\n})\nexport class NiceImageCropperModule {}\n","\nimport { Component, Inject, OnDestroy, OnInit, Renderer2, DOCUMENT } from \"@angular/core\";\nimport { combineLatest, Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { NiceConfigService, NiceMediaWatcherService } from \"../../providers\";\nimport { NiceConfig, Scheme } from \"../../providers/config/config.model\";\n\n@Component({\n selector: \"nice-layout\",\n template: `<ng-content></ng-content>`,\n standalone: false\n})\nexport class NiceLayoutComponent implements OnInit, OnDestroy {\n private config: NiceConfig;\n private scheme: Scheme;\n private theme: string;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n /**\n * Constructor\n */\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _renderer2: Renderer2,\n private _niceConfigService: NiceConfigService,\n private _niceMediaWatcherService: NiceMediaWatcherService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Set the theme and scheme based on the configuration\n combineLatest([\n this._niceConfigService.config$,\n this._niceMediaWatcherService.onMediaQueryChange$([\"(prefers-color-scheme: dark)\", \"(prefers-color-scheme: light)\"])\n ]).pipe(\n takeUntil(this._unsubscribeAll),\n map(([config, mql]) => {\n const options = {\n scheme: config.scheme,\n theme: config.theme\n };\n\n if (config.scheme === \"auto\") {\n options.scheme = mql.breakpoints[\"(prefers-color-scheme: dark)\"] ? \"dark\" : \"light\";\n }\n\n return options;\n })\n ).subscribe((options) => {\n this.scheme = options.scheme;\n this.theme = options.theme;\n\n this._updateScheme();\n this._updateTheme();\n });\n\n // Subscribe to config changes\n this._niceConfigService.config$\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((config: NiceConfig) => {\n this.config = config;\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n /**\n * Update the selected scheme\n *\n * @private\n */\n private _updateScheme(): void {\n // Remove class names for all schemes\n this._document.body.classList.remove(\"light\", \"dark\");\n\n // Add class name for the currently selected scheme\n this._document.body.classList.add(this.scheme);\n }\n\n /**\n * Update the selected theme\n *\n * @private\n */\n private _updateTheme(): void {\n // Find the class name for the previously selected theme and remove it\n this._document.body.classList.forEach((className: string) => {\n if (className.startsWith(\"theme-\")) {\n this._document.body.classList.remove(className, className.split(\"-\")[1]);\n }\n });\n\n // Add class name for the currently selected theme\n this._document.body.classList.add(`theme-${this.theme}`);\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { NiceLayoutComponent } from \"./layout.component\";\n\n@NgModule({\n imports: [],\n declarations: [NiceLayoutComponent],\n providers: [],\n exports: [NiceLayoutComponent]\n})\nexport class NiceLayoutModule {}\n","import { Component, Input } from \"@angular/core\";\nimport { ProgressSpinnerMode } from \"@angular/material/progress-spinner\";\n\n@Component({\n selector: \"nice-loading-spinner\",\n templateUrl: \"loading-spinner.template.html\",\n styleUrls: [\"./loading-spinner.style.scss\"],\n standalone: false\n})\nexport class NiceLoadingSpinnerComponent {\n @Input()\n public loading: boolean;\n\n @Input()\n mode: ProgressSpinnerMode = \"indeterminate\";\n\n @Input()\n diameter = 50;\n}\n","<mat-spinner [diameter]=\"diameter\" [mode]=\"mode\" [color]=\"'accent'\"></mat-spinner>\n","import { OverlayContainer } from \"@angular/cdk/overlay\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class DynamicOverlayContainer extends OverlayContainer {\n public setContainerElement(containerElement: HTMLElement): void {\n this._containerElement = containerElement;\n }\n}\n","import { Overlay, OverlayKeyboardDispatcher, OverlayPositionBuilder, ScrollStrategyOptions, OverlayOutsideClickDispatcher } from \"@angular/cdk/overlay\";\nimport { ComponentFactoryResolver, Inject, Injectable, Injector, NgZone, Renderer2, RendererFactory2, DOCUMENT } from \"@angular/core\";\nimport { DynamicOverlayContainer } from \"./dynamic-overlay-container.service\";\nimport { Directionality } from \"@angular/cdk/bidi\";\nimport { Location } from \"@angular/common\";\n\n@Injectable({ providedIn: \"root\" })\nexport class DynamicOverlay extends Overlay {\n private readonly _dynamicOverlayContainer: DynamicOverlayContainer;\n private renderer: Renderer2;\n\n constructor(\n @Inject(DOCUMENT) _document: any,\n scrollStrategies: ScrollStrategyOptions,\n _overlayContainer: DynamicOverlayContainer,\n _componentFactoryResolver: ComponentFactoryResolver,\n _positionBuilder: OverlayPositionBuilder,\n _keyboardDispatcher: OverlayKeyboardDispatcher,\n _injector: Injector,\n _ngZone: NgZone,\n _directionality: Directionality,\n rendererFactory: RendererFactory2,\n _location: Location,\n _outsideClickDispatcher: OverlayOutsideClickDispatcher\n ) {\n super(\n scrollStrategies,\n _overlayContainer,\n _componentFactoryResolver,\n _positionBuilder,\n _keyboardDispatcher,\n _injector,\n _ngZone,\n _document,\n _directionality,\n _location,\n _outsideClickDispatcher\n );\n this.renderer = rendererFactory.createRenderer(null, null);\n\n this._dynamicOverlayContainer = _overlayContainer;\n }\n\n public setContainerElement(containerElement: HTMLElement): void {\n this.renderer.setStyle(containerElement, \"transform\", \"translateZ(0)\");\n this._dynamicOverlayContainer.setContainerElement(containerElement);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_LOADING_OPTIONS = new InjectionToken(\"nice_loading_options\");\n","import { Directive, ElementRef, Inject, Input, Optional, Type } from \"@angular/core\";\nimport { OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { DynamicOverlay } from \"../../providers/overlay/dynamic-overlay.service\";\nimport { NiceLoadingSpinnerComponent } from \"./loading-spinner.component\";\nimport { NICE_LOADING_OPTIONS } from \"./loading.constant\";\n\nexport interface NiceLoadingOptions {\n customLoading?: Type<any>;\n}\n\n@Directive({\n selector: \"[niceLoadingOverlay]\",\n standalone: false\n})\nexport class NiceLoadingDirective {\n private overlayRef: OverlayRef;\n private _loading = false;\n\n @Input(\"niceLoadingOverlay\")\n public set loading(loading: boolean | null) {\n setTimeout(() => {\n if (loading === this._loading) {\n return;\n }\n this._loading = loading;\n if (!this.overlayRef) {\n this.overlay.setContainerElement(this.elRef.nativeElement);\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically(),\n hasBackdrop: true,\n panelClass: \"nice-loading-overlay\"\n });\n }\n if (this._loading) {\n this.overlayRef.attach(new ComponentPortal(this.options?.customLoading ?? NiceLoadingSpinnerComponent));\n } else {\n this.overlayRef.detach();\n }\n }, 0);\n }\n\n constructor(\n @Optional() @Inject(NICE_LOADING_OPTIONS) private options: NiceLoadingOptions,\n private elRef: ElementRef,\n private overlay: DynamicOverlay\n ) {}\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { DynamicOverlayContainer } from \"../../providers/overlay/dynamic-overlay-container.service\";\nimport { DynamicOverlay } from \"../../providers/overlay/dynamic-overlay.service\";\nimport { NiceLoadingSpinnerComponent } from \"./loading-spinner.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { NiceLoadingDirective, NiceLoadingOptions } from \"./loading.directive\";\nimport { NICE_LOADING_OPTIONS } from \"./loading.constant\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressSpinnerModule\n ],\n declarations: [\n NiceLoadingSpinnerComponent,\n NiceLoadingDirective\n ],\n providers: [DynamicOverlayContainer, DynamicOverlay],\n exports: [\n NiceLoadingSpinnerComponent,\n NiceLoadingDirective\n ]\n})\nexport class NiceLoadingSpinnerModule {\n public static forRoot(options?: NiceLoadingOptions): ModuleWithProviders<NiceLoadingSpinnerModule> {\n return {\n ngModule: NiceLoadingSpinnerModule,\n providers: [\n {\n provide: NICE_LOADING_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation } from \"@angular/core\";\nimport { MAT_SNACK_BAR_DATA } from \"@angular/material/snack-bar\";\nimport { NiceAlertAppearance, NiceAlertColor, NiceAlertType } from \"../alert\";\nimport { NiceLoadingToastOptions } from \"./loading-toast.service\";\n\nexport interface NiceLoadingToastData {\n message: string;\n options?: NiceLoadingToastOptions;\n}\n\n@Component({\n selector: \"nice-loading-toast\",\n templateUrl: \"loading-toast.template.html\",\n styleUrls: [\"loading-toast.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceLoadingToastComponent {\n @Input()\n public message: string;\n\n @Input()\n public options: NiceLoadingToastOptions;\n\n public get appearance(): NiceAlertAppearance {\n return this.data?.options?.appearance ?? this.options?.appearance;\n }\n\n public get color(): NiceAlertColor {\n return this.data?.options?.color ?? this.options?.color;\n }\n\n public get showIcon(): boolean {\n return this.data?.options?.showIcon ?? this.options?.showIcon;\n }\n\n public get type(): NiceAlertType {\n return this.data?.options?.type ?? this.options?.type;\n }\n\n constructor(@Optional() @Inject(MAT_SNACK_BAR_DATA) public data?: NiceLoadingToastData) {}\n}\n","<nice-alert class=\"toast\" disableAnimation [appearance]=\"appearance\" [color]=\"color\" [dismissible]=\"false\" [type]=\"type\" [showIcon]=\"showIcon\">\n <div class=\"full flex justify-between gap-8\" niceAlertTitle>\n <span class=\"flex-auto\">{{ data?.message ?? message }}</span>\n\n <div>\n <mat-spinner [diameter]=\"21\"></mat-spinner>\n </div>\n </div>\n</nice-alert>\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_LOADING_TOAST_OPTIONS = new InjectionToken(\"nice_loading_toast_options\");\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Directive, Inject, Input, Optional } from \"@angular/core\";\nimport { NiceLoadingToastComponent } from \"./loading-toast.component\";\nimport { NICE_LOADING_TOAST_OPTIONS } from \"./loading-toast.constant\";\nimport { NiceLoadingToastOptions } from \"./loading-toast.service\";\n\n@Directive({\n selector: \"[niceLoadingToast]\",\n standalone: false\n})\nexport class NiceLoadingToastDirective {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_niceLoadingDisableUserInteraction: BooleanInput;\n\n private overlayRef: OverlayRef;\n private _loading = false;\n private _niceLoadingDisableUserInteraction = true;\n\n @Input()\n public niceLoadingMessage: string;\n\n @Input()\n public set niceLoadingDisableUserInteraction(disableUserInteraction: boolean) {\n this._niceLoadingDisableUserInteraction = coerceBooleanProperty(disableUserInteraction);\n }\n\n @Input(\"niceLoadingToast\")\n public set loading(loading: boolean | null) {\n if (loading === this._loading) {\n return;\n }\n this._loading = loading;\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .global()\n .bottom(\"22px\")\n .right(\"16px\"),\n hasBackdrop: this._niceLoadingDisableUserInteraction,\n backdropClass: \"bg-transparent\",\n panelClass: \"nice-loading-toast\"\n });\n }\n\n if (this._loading) {\n const toastInstance = this.overlayRef.attach(new ComponentPortal(NiceLoadingToastComponent));\n toastInstance.instance.message = this.niceLoadingMessage;\n toastInstance.instance.options = this.options;\n } else {\n this.overlayRef.detach();\n }\n }\n\n constructor(\n @Optional() @Inject(NICE_LOADING_TOAST_OPTIONS)\n private options: NiceLoadingToastOptions,\n private overlay: Overlay\n ) {}\n}\n","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { MatSnackBar, MatSnackBarRef } from \"@angular/material/snack-bar\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NiceAlertAppearance, NiceAlertColor, NiceAlertType } from \"../alert\";\nimport { NiceLoadingToastComponent } from \"./loading-toast.component\";\nimport { NICE_LOADING_TOAST_OPTIONS } from \"./loading-toast.constant\";\n\nexport interface NiceLoadingToastOptions {\n appearance?: NiceAlertAppearance;\n showIcon?: boolean;\n type?: NiceAlertType;\n color?: NiceAlertColor;\n}\n\n@Injectable({ providedIn: \"any\" })\nexport class NiceLoadingToastService {\n constructor(\n @Optional() @Inject(NICE_LOADING_TOAST_OPTIONS)\n private options: NiceLoadingToastOptions,\n private snackbar: MatSnackBar,\n private translateService: TranslateService\n ) {}\n\n public showLoadingToast(messageKey: string, params?: object): MatSnackBarRef<any> {\n const message = this.getTranslations(messageKey, params);\n return this.snackbar.openFromComponent(NiceLoadingToastComponent, {\n horizontalPosition: \"end\",\n verticalPosition: \"bottom\",\n panelClass: [\"nice-loading-toast\"],\n data: {\n message,\n options: this.options\n }\n });\n }\n\n private getTranslations(message: string, params: object): string {\n try {\n return this.translateService.instant(message, params);\n } catch (e) {\n return \"\";\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { DynamicOverlayContainer } from \"../../providers/overlay/dynamic-overlay-container.service\";\nimport { NiceAlertModule } from \"../alert\";\nimport { NiceLoadingToastComponent } from \"./loading-toast.component\";\nimport { NICE_LOADING_TOAST_OPTIONS } from \"./loading-toast.constant\";\nimport { NiceLoadingToastDirective } from \"./loading-toast.directive\";\nimport { NiceLoadingToastOptions, NiceLoadingToastService } from \"./loading-toast.service\";\n\nconst defaultOptions: NiceLoadingToastOptions = {\n color: \"primary\",\n type: \"info\",\n showIcon: true,\n appearance: \"outline\"\n};\n\n@NgModule({\n imports: [CommonModule, MatSnackBarModule, MatProgressSpinnerModule, NiceAlertModule],\n providers: [DynamicOverlayContainer, NiceLoadingToastService],\n declarations: [NiceLoadingToastComponent, NiceLoadingToastDirective],\n exports: [NiceLoadingToastDirective]\n})\nexport class NiceLoadingToastModule {\n public static forRoot(options?: NiceLoadingToastOptions): ModuleWithProviders<NiceLoadingToastModule> {\n return {\n ngModule: NiceLoadingToastModule,\n providers: [\n NiceLoadingToastService,\n {\n provide: NICE_LOADING_TOAST_OPTIONS,\n useValue: {\n ...defaultOptions,\n ...(options ?? {})\n }\n }\n ]\n };\n }\n\n public static forFeature(options: NiceLoadingToastOptions): ModuleWithProviders<NiceLoadingToastModule> {\n return {\n ngModule: NiceLoadingToastModule,\n providers: [\n NiceLoadingToastService,\n {\n provide: NICE_LOADING_TOAST_OPTIONS,\n useValue: {\n ...defaultOptions,\n ...options\n }\n }\n ]\n };\n }\n}\n","import { MonoTypeOperatorFunction, combineLatest, defer, timer } from \"rxjs\";\nimport { finalize, map } from \"rxjs/operators\";\nimport { NiceLoadingToastService } from \"../loading-toast.service\";\n\nexport interface ShowLoadingToastOperatorOptions {\n minDuration?: number;\n}\n\nexport function showLoadingToast<T>(\n loadingToastService: NiceLoadingToastService,\n key: string,\n options: ShowLoadingToastOperatorOptions = {}\n): MonoTypeOperatorFunction<T> {\n return source => defer(() => {\n const ref = loadingToastService.showLoadingToast(key);\n return combineLatest([\n source,\n timer(options.minDuration ?? 1000)\n ]).pipe(\n map(([value]) => value),\n finalize(() => ref.dismiss())\n );\n });\n}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Inject, Input, OnInit, Output, PLATFORM_ID, ViewChild } from \"@angular/core\";\nimport { isPlatformServer } from \"@angular/common\";\n\n@Component({\n selector: \"nice-lottie\",\n templateUrl: \"lottie.template.html\",\n standalone: false\n})\nexport class NiceLottieComponent implements OnInit, AfterViewInit {\n private _options: import(\"lottie-web\").AnimationConfigWithPath | import(\"lottie-web\").AnimationConfigWithData;\n private _lottie: typeof import(\"lottie-web\").default;\n\n @Input()\n public options: any;\n @Input()\n public width: number;\n @Input()\n public height: number;\n\n @Output()\n public animCreated: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(\"animationContainer\")\n public animationContainer: ElementRef;\n\n public viewWidth: string;\n public viewHeight: string;\n\n constructor(@Inject(PLATFORM_ID) private platformId: string) {\n }\n\n public ngOnInit(): void {\n this.viewWidth = this.width + \"px\" || \"100%\";\n this.viewHeight = this.height + \"px\" || \"100%\";\n }\n\n public async ngAfterViewInit(): Promise<void> {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n this._lottie = (await import(\"lottie-web\")).default;\n this._options = {\n container: this.animationContainer.nativeElement,\n renderer: this.options.renderer || \"svg\",\n loop: this.options.loop !== false,\n autoplay: this.options.autoplay !== false,\n animationData: this.options.animationData,\n path: this.options.path || \"\",\n rendererSettings: this.options.rendererSettings || {}\n };\n\n const anim: any = this._lottie.loadAnimation(this._options);\n this.animCreated.emit(anim);\n }\n}\n","<div #animationContainer\n [ngStyle]=\"{'width': viewWidth, 'height': viewHeight, 'overflow':'hidden', 'margin': '0 auto'}\">\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { NiceLottieComponent } from \"./lottie.component\";\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [NiceLottieComponent],\n exports: [NiceLottieComponent]\n})\nexport class NiceLottieModule {}\n","import { ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, OnDestroy } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\n@Directive()\n// tslint:disable-next-line:class-name directive-class-suffix\nexport abstract class _HintComponentBase implements OnDestroy {\n\n /** The timeout ID of any current timer set to show the tooltip */\n private _showTimeoutId: number | undefined;\n\n /** The timeout ID of any current timer set to hide the tooltip */\n private _hideTimeoutId: number | undefined;\n\n /** Element that caused the tooltip to open. */\n _triggerElement: HTMLElement;\n\n /** Amount of milliseconds to delay the closing sequence. */\n _mouseLeaveHideDelay: number;\n\n /** Reference to the internal tooltip element. */\n abstract _hint: ElementRef<HTMLElement>;\n\n /** Whether interactions on the page should close the tooltip */\n private _closeOnInteraction = false;\n\n /** Whether the tooltip is currently visible. */\n private _isVisible = false;\n\n /** Subject for notifying that the tooltip has been hidden from the view */\n private readonly _onHide: Subject<void> = new Subject();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n /**\n * Shows the tooltip with an animation originating from the provided origin\n * @param delay Amount of milliseconds to the delay showing the tooltip.\n */\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n clearTimeout(this._hideTimeoutId);\n\n this._showTimeoutId = setTimeout(() => {\n this._toggleVisibility(true);\n this._showTimeoutId = undefined;\n }, delay) as unknown as number;\n }\n\n /**\n * Begins the animation to hide the tooltip after the provided delay in ms.\n * @param delay Amount of milliseconds to delay showing the tooltip.\n */\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n clearTimeout(this._showTimeoutId);\n\n this._hideTimeoutId = setTimeout(() => {\n this._toggleVisibility(false);\n this._hideTimeoutId = undefined;\n }, delay) as unknown as number;\n }\n\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden(): Observable<void> {\n return this._onHide;\n }\n\n /** Whether the tooltip is being displayed. */\n isVisible(): boolean {\n return this._isVisible;\n }\n\n ngOnDestroy() {\n this._cancelPendingAnimations();\n this._onHide.complete();\n this._triggerElement = null;\n }\n\n /**\n * Interactions on the HTML body should close the tooltip immediately as defined in the\n * material design spec.\n * https://material.io/design/components/tooltips.html#behavior\n */\n _handleBodyInteraction(): void {\n if (this._closeOnInteraction) {\n this.hide(0);\n }\n }\n\n /**\n * Marks that the tooltip needs to be checked in the next change detection run.\n * Mainly used for rendering the initial text before positioning a tooltip, which\n * can be problematic in components with OnPush change detection.\n */\n _markForCheck(): void {\n this._changeDetectorRef.markForCheck();\n }\n\n @HostListener(\"mouseleave\", [\"$event\"])\n _handleMouseLeave({relatedTarget}: MouseEvent) {\n if (!relatedTarget || !this._triggerElement.contains(relatedTarget as Node)) {\n if (this.isVisible()) {\n this.hide(this._mouseLeaveHideDelay);\n } else {\n this._finalizeAnimation(false);\n }\n }\n }\n\n /**\n * Callback for when the timeout in this.show() gets completed.\n * This method is only needed by the mdc-tooltip, and so it is only implemented\n * in the mdc-tooltip, not here.\n */\n protected _onShow(): void {}\n\n /** Cancels any pending animation sequences. */\n _cancelPendingAnimations() {\n clearTimeout(this._showTimeoutId);\n clearTimeout(this._hideTimeoutId);\n this._showTimeoutId = this._hideTimeoutId = undefined;\n }\n\n /** Handles the cleanup after an animation has finished. */\n private _finalizeAnimation(toVisible: boolean) {\n if (toVisible) {\n this._closeOnInteraction = true;\n } else if (!this.isVisible()) {\n this._onHide.next();\n }\n }\n\n /** Toggles the visibility of the tooltip element. */\n private _toggleVisibility(isVisible: boolean) {\n // We set the classes directly here ourselves so that toggling the tooltip state\n // isn't bound by change detection. This allows us to hide it even if the\n // view ref has been detached from the CD tree.\n this._isVisible = isVisible;\n\n if (isVisible) {\n this._onShow();\n }\n }\n}\n","import { Injectable, OnDestroy } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from \"@angular/router\";\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationItem } from \"./navigation.types\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class NiceNavigationService implements OnDestroy {\n private _onNavigationChanged = new BehaviorSubject<any>(null);\n private _onNavigationRegistered = new BehaviorSubject<any>(null);\n private _onNavigationUnregistered = new BehaviorSubject<any>(null);\n private _defaultNavigationKey: string;\n private _currentNavigationKey: string;\n private _componentRegistry: Map<string, any> = new Map<string, any>();\n private _navigationStore: Map<string, NiceNavigationItem[]> = new Map<string, any>();\n\n protected _unsubscribeAll: Subject<any>;\n\n /**\n * Constructor\n */\n constructor(private router: Router) {\n this._unsubscribeAll = new Subject();\n this.listenOnRouteChange();\n }\n\n public get onNavigationChanged(): Observable<any> {\n return this._onNavigationChanged.asObservable();\n }\n\n public get onNavigationRegistered(): Observable<any> {\n return this._onNavigationRegistered.asObservable();\n }\n\n public get onNavigationUnregistered(): Observable<any> {\n return this._onNavigationUnregistered.asObservable();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n public ngOnDestroy(): void {\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n /**\n * Register navigation component\n */\n public registerComponent(name: string, component: any): void {\n this._componentRegistry.set(name, component);\n }\n\n /**\n * Deregister navigation component\n */\n public deregisterComponent(name: string): void {\n this._componentRegistry.delete(name);\n }\n\n /**\n * Get navigation component from the registry\n */\n public getComponent(name: string): any {\n return this._componentRegistry.get(name);\n }\n\n /**\n * Store the given navigation with the given key\n */\n public storeNavigation(key: string, navigation: NiceNavigationItem[], isDefault = false): void {\n // Add to the store\n this._navigationStore.set(key, navigation);\n\n // Notify the subject\n this._onNavigationRegistered.next([key, navigation, key === this._currentNavigationKey]);\n\n if (isDefault) {\n this._defaultNavigationKey = key;\n }\n }\n\n /**\n * Get navigation from storage by key\n */\n public getNavigation(key: string): NiceNavigationItem[] {\n return this._navigationStore.get(key) ?? [];\n }\n\n /**\n * Delete the navigation from the storage\n */\n public deleteNavigation(key: string): void {\n // Check if the navigation exists\n if (!this._navigationStore.has(key)) {\n console.warn(`Navigation with the key '${key}' does not exist in the store.`);\n }\n\n // Delete from the storage\n this._navigationStore.delete(key);\n\n // Notify the subject\n this._onNavigationUnregistered.next(key);\n }\n\n /**\n * Utility function that returns a flattened\n * version of the given navigation array\n */\n public getFlatNavigation(navigation: NiceNavigationItem[], flatNavigation: NiceNavigationItem[] = []): NiceNavigationItem[] {\n for (const item of navigation) {\n if (item.type === \"basic\") {\n flatNavigation.push(item);\n continue;\n }\n\n if (item.type === \"aside\" || item.type === \"collapsable\" || item.type === \"group\") {\n if (item.children) {\n this.getFlatNavigation(item.children, flatNavigation);\n }\n }\n }\n\n return flatNavigation;\n }\n\n /**\n * Utility function that returns the item\n * with the given id from given navigation\n */\n public getItem(id: string, navigation: NiceNavigationItem[]): NiceNavigationItem | null {\n for (const item of navigation) {\n if (item.id === id) {\n return item;\n }\n\n if (item.children) {\n const childItem = this.getItem(id, item.children);\n\n if (childItem) {\n return childItem;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Utility function that returns the item's parent\n * with the given id from given navigation\n */\n public getItemParent(\n id: string,\n navigation: NiceNavigationItem[],\n parent: NiceNavigationItem[] | NiceNavigationItem\n ): NiceNavigationItem[] | NiceNavigationItem | null {\n for (const item of navigation) {\n if (item.id === id) {\n return parent;\n }\n\n if (item.children) {\n const childItem = this.getItemParent(id, item.children, item);\n\n if (childItem) {\n return childItem;\n }\n }\n }\n\n return null;\n }\n\n public getCurrentNavigation(): NiceNavigationItem[] {\n if (!this._currentNavigationKey) {\n console.warn(`The current navigation is not set.`);\n return;\n }\n\n return this.getNavigation(this._currentNavigationKey);\n }\n\n public setCurrentNavigation(key: string): void {\n // Check if the sidebar exists\n if (!this._navigationStore.has(key)) {\n console.warn(`Navigation with the key '${key}' does not exist in the store.`);\n }\n\n if (this._currentNavigationKey === key) {\n return;\n }\n\n // Set the current adminNavigation key\n this._currentNavigationKey = key;\n\n // Notify the subject\n this._onNavigationChanged.next(key);\n }\n\n private listenOnRouteChange(): void {\n this.router.events.pipe(\n takeUntil(this._unsubscribeAll),\n filter((e) => e instanceof NavigationEnd)\n ).subscribe(() => {\n const route = this.lastChild(this.router.routerState.snapshot.root);\n if (route.data.navigationKey) {\n this.setCurrentNavigation(route.data.navigationKey);\n } else if (this._defaultNavigationKey) {\n this.setCurrentNavigation(this._defaultNavigationKey);\n }\n });\n }\n\n private lastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n if (route.firstChild) {\n return this.lastChild(route.firstChild);\n } else {\n return route;\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class NiceTranslationContextService {\n private _context: Record<string, any>;\n\n public get context(): Record<string, any> {\n return this._context;\n }\n public set context(context: Record<string, any>) {\n this._context = context;\n }\n}\n","import { ChangeDetectorRef, Component, Directive, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from \"@angular/core\";\nimport { distinctUntilChanged, ReplaySubject, startWith, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceUtilsService } from \"../../providers\";\nimport { NiceNavigationService } from \"./navigation.service\";\nimport { NiceNavigationItem } from \"./navigation.types\";\nimport { NiceTranslationContextService } from \"./providers/translation-context.service\";\n\n@Component({\n template: ``,\n standalone: false\n})\nexport class NiceNavigationComponent implements OnInit, OnDestroy, OnChanges {\n protected _navigation: NiceNavigationItem[];\n protected _unsubscribeAll: Subject<any>;\n\n public animateNextNavChange = false;\n public onRefreshed = new ReplaySubject<boolean>(1);\n public name: string;\n\n constructor(\n protected _changeDetectorRef: ChangeDetectorRef,\n protected _niceNavigationService: NiceNavigationService,\n protected _niceUtilsService: NiceUtilsService,\n protected _translationContext: NiceTranslationContextService\n ) {\n this._unsubscribeAll = new Subject();\n }\n\n public ngOnInit(): void {\n // Make sure the name input is not an empty string\n if (this.name === \"\") {\n this.name = this._niceUtilsService.randomId();\n }\n\n // Register the navigation component\n this._niceNavigationService.registerComponent(this.name, this);\n\n this._niceNavigationService.onNavigationChanged.pipe(\n distinctUntilChanged(),\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n this.animateNextNavChange = !!this._navigation?.length;\n this._navigation = this._niceNavigationService.getCurrentNavigation();\n this._changeDetectorRef.markForCheck();\n });\n\n this._niceNavigationService.onNavigationRegistered.pipe(\n filter((x) => !!x),\n distinctUntilChanged(),\n takeUntil(this._unsubscribeAll)\n ).subscribe(([_, __, isActive]) => {\n if (!isActive) {\n return;\n }\n\n this.animateNextNavChange = !!this._navigation?.length;\n this._navigation = this._niceNavigationService.getCurrentNavigation();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n // Deregister the navigation component from the registry\n this._niceNavigationService.deregisterComponent(this.name);\n\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n // Navigation\n if (\"navigation\" in changes) {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n\n if (\"translationContext\" in changes) {\n // Mark for check\n this._translationContext.context = changes.translationContext.currentValue;\n }\n }\n\n /**\n * Refresh the component to apply the changes\n */\n public refresh(): void {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n\n // Execute the observable\n this.onRefreshed.next(true);\n }\n\n /**\n * Track by function for ngFor loops\n */\n public trackByFn(index: number, item: any): any {\n return item.id || index;\n }\n}\n\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NiceTranslationContextService } from \"../providers/translation-context.service\";\n\n@Pipe({\n name: \"niceTranslateWithContext\", pure: false,\n standalone: false\n})\nexport class NiceTranslateWithContextPipe implements PipeTransform {\n constructor(private translate: TranslateService, private context: NiceTranslationContextService) {}\n\n public transform(value: string): any {\n if (!value) {\n return value;\n }\n\n return this.translate.instant(value, this.context.context);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-horizontal-navigation-basic-item\",\n templateUrl: \"./basic.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceHorizontalNavigationBasicItemComponent implements OnInit, OnDestroy {\n private _niceHorizontalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceHorizontalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceHorizontalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Item wrapper -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | niceTranslateWithContext\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n <!-- Item with an internal link -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{ 'nice-horizontal-navigation-item-active-forced': item.active }\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-horizontal-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{ exact: item.exactMatch || false }\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\"\n (click)=\"item.function(item)\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-horizontal-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-horizontal-navigation-item-active-forced': item.active}\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-horizontal-navigation-item nice-horizontal-navigation-item-disabled\"\n *ngIf=\"item.disabled\"\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\">\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-horizontal-navigation-divider-item\",\n templateUrl: \"./divider.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceHorizontalNavigationDividerItemComponent implements OnInit, OnDestroy {\n private _niceHorizontalNavigationComponent;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceHorizontalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceHorizontalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Divider -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper divider\"\n [ngClass]=\"item.classes?.wrapper\"\n></div>\n","import { Injector, Pipe, PipeTransform } from \"@angular/core\";\nimport { Observable, of } from \"rxjs\";\nimport { NiceNavigationItem } from \"../navigation.types\";\nimport { NavigationHideItemResolver } from \"../providers/hide-item.resolver\";\n\n@Pipe({\n name: \"niceShouldHide\",\n standalone: false\n})\nexport class NiceShouldHidePipe implements PipeTransform {\n constructor(private injector: Injector) {}\n\n public transform(value: NiceNavigationItem): Observable<boolean> {\n if (!value.hidden) {\n return of(false);\n }\n\n if (typeof value === \"boolean\") {\n return of(true);\n }\n\n if (typeof value.hidden !== \"function\") {\n return of(false);\n }\n\n const resolver = this.injector.get(value.hidden, null) as NavigationHideItemResolver;\n if (!resolver) {\n return of((value.hidden as (item: NiceNavigationItem) => boolean)(value));\n }\n\n return resolver.shouldHide(value);\n }\n}\n","import { BooleanInput } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from \"@angular/core\";\nimport { MatMenu } from \"@angular/material/menu\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\n\n@Component({\n selector: \"nice-horizontal-navigation-branch-item\",\n templateUrl: \"./branch.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceHorizontalNavigationBranchItemComponent implements OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_child: BooleanInput;\n\n private _niceHorizontalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public child = false;\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @ViewChild(\"matMenu\", { static: true })\n public matMenu: MatMenu;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceHorizontalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceHorizontalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Trigger the change detection\n */\n public triggerChangeDetection(): void {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n}\n","<div\n *ngIf=\"!child\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-menu-active': trigger.menuOpen,\n 'nice-horizontal-navigation-menu-active-forced': item.active\n }\"\n [matMenuTriggerFor]=\"matMenu\"\n (onMenuOpen)=\"triggerChangeDetection()\"\n (onMenuClose)=\"triggerChangeDetection()\"\n #trigger=\"matMenuTrigger\"\n>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n</div>\n\n<mat-menu\n class=\"nice-horizontal-navigation-menu-panel\"\n [overlapTrigger]=\"false\"\n #matMenu=\"matMenu\"\n>\n <ng-container *ngFor=\"let item of item.children\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [disabled]=\"item.disabled\"\n mat-menu-item\n >\n <nice-horizontal-navigation-basic-item\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-basic-item>\n </div>\n\n <!-- Branch: aside, collapsable, group -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [disabled]=\"item.disabled\"\n [matMenuTriggerFor]=\"branch.matMenu\"\n mat-menu-item\n >\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <nice-horizontal-navigation-branch-item\n [child]=\"true\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n #branch\n ></nice-horizontal-navigation-branch-item>\n </div>\n\n <!-- Divider -->\n <div\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'divider'\"\n mat-menu-item\n >\n <nice-horizontal-navigation-divider-item\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-divider-item>\n </div>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<!-- Item template -->\n<ng-template\n let-item\n #itemTemplate\n>\n <div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [class.nice-horizontal-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n >\n <div\n class=\"nice-horizontal-navigation-item\"\n [ngClass]=\"{\n 'nice-horizontal-navigation-item-disabled': item.disabled,\n 'nice-horizontal-navigation-item-active-forced': item.active\n }\">\n\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-horizontal-navigation-item-title-wrapper\">\n <div class=\"nice-horizontal-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-horizontal-navigation-item-subtitle text-hint\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-horizontal-navigation-item-badge\"\n *ngIf=\"item.badge\">\n <div\n class=\"nice-horizontal-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-horizontal-navigation-spacer-item\",\n templateUrl: \"./spacer.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceHorizontalNavigationSpacerItemComponent implements OnInit, OnDestroy {\n private _niceHorizontalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceHorizontalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceHorizontalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Spacer -->\n<div\n class=\"nice-horizontal-navigation-item-wrapper\"\n [ngClass]=\"item.classes?.wrapper\"\n></div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from \"@angular/core\";\nimport { niceAnimations } from \"../../../animations\";\nimport { NiceUtilsService } from \"../../../providers/utils\";\nimport { NiceNavigationComponent } from \"../navigation.component\";\nimport { NiceNavigationService } from \"../navigation.service\";\nimport { NiceNavigationItem } from \"../navigation.types\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { NiceTranslationContextService } from \"../providers/translation-context.service\";\n\n@Component({\n selector: \"nice-horizontal-navigation\",\n templateUrl: \"./horizontal.component.html\",\n animations: niceAnimations,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NiceTranslationContextService],\n exportAs: \"niceHorizontalNavigation\",\n standalone: false\n})\nexport class NiceHorizontalNavigationComponent extends NiceNavigationComponent {\n @Input()\n public name: string = this._niceUtilsService.randomId();\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n @Input()\n public translationContext: Record<string, any>;\n\n @Input()\n public set navigation(navigation: NiceNavigationItem[]) {\n this._navigation = navigation;\n this._changeDetectorRef.markForCheck();\n }\n public get navigation(): NiceNavigationItem[] {\n return this._navigation;\n }\n\n /**\n * Constructor\n */\n constructor(\n _changeDetectorRef: ChangeDetectorRef,\n _niceNavigationService: NiceNavigationService,\n _niceUtilsService: NiceUtilsService,\n _translationContextService: NiceTranslationContextService\n ) {\n super(_changeDetectorRef, _niceNavigationService, _niceUtilsService, _translationContextService);\n }\n}\n","<div class=\"nice-horizontal-navigation-wrapper\">\n <ng-container *ngFor=\"let item of navigation\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-horizontal-navigation-basic-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-basic-item>\n\n <!-- Branch: aside, collapsable, group -->\n <nice-horizontal-navigation-branch-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'aside' || item.type === 'collapsable' || item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-horizontal-navigation-branch-item>\n\n <!-- Spacer -->\n <nice-horizontal-navigation-spacer-item\n class=\"nice-horizontal-navigation-menu-item\"\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-horizontal-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n","export class ScrollbarGeometry {\n public x: number;\n public y: number;\n\n public w: number;\n public h: number;\n\n constructor(x: number, y: number, w: number, h: number) {\n this.x = x;\n this.y = y;\n this.w = w;\n this.h = h;\n }\n}\n\nexport class ScrollbarPosition {\n public x: number | \"start\" | \"end\";\n public y: number | \"start\" | \"end\";\n\n constructor(x: number | \"start\" | \"end\", y: number | \"start\" | \"end\") {\n this.x = x;\n this.y = y;\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { Platform } from \"@angular/cdk/platform\";\nimport { Directive, ElementRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ScrollbarGeometry, ScrollbarPosition } from \"./scrollbar.types\";\nimport { merge } from \"lodash-es\";\nimport PerfectScrollbar from \"perfect-scrollbar\";\nimport { fromEvent, Subject } from \"rxjs\";\nimport { debounceTime, takeUntil } from \"rxjs/operators\";\n\n/**\n * Wrapper directive for the Perfect Scrollbar: https://github.com/mdbootstrap/perfect-scrollbar\n */\n@Directive({\n selector: \"[niceScrollbar]\",\n exportAs: \"niceScrollbar\",\n standalone: false\n})\nexport class NiceScrollbarDirective implements OnChanges, OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_niceScrollbar: BooleanInput;\n\n private _animation: number;\n private _options: PerfectScrollbar.Options;\n private _ps: PerfectScrollbar;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n @Input()\n public niceScrollbar = true;\n\n @Input()\n public niceScrollbarOptions: PerfectScrollbar.Options;\n\n /**\n * Constructor\n */\n constructor(\n private _elementRef: ElementRef,\n private _platform: Platform,\n private _router: Router\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Getter for _elementRef\n */\n public get elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /**\n * Getter for _ps\n */\n public get ps(): PerfectScrollbar | null {\n return this._ps;\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Enabled\n if (\"niceScrollbar\" in changes) {\n // Interpret empty string as 'true'\n this.niceScrollbar = coerceBooleanProperty(changes.niceScrollbar.currentValue);\n\n // If enabled, init the directive\n if (this.niceScrollbar) {\n this._init();\n }\n // Otherwise destroy it\n else {\n this._destroy();\n }\n }\n\n // Scrollbar options\n if (\"niceScrollbarOptions\" in changes) {\n // Merge the options\n this._options = merge({}, this._options, changes.niceScrollbarOptions.currentValue);\n\n // Return if not initialized\n if (!this._ps) {\n return;\n }\n\n // Destroy and re-init the PerfectScrollbar to update its options\n setTimeout(() => {\n this._destroy();\n });\n\n setTimeout(() => {\n this._init();\n });\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Subscribe to window resize event\n fromEvent(window, \"resize\")\n .pipe(\n takeUntil(this._unsubscribeAll),\n debounceTime(150)\n )\n .subscribe(() => {\n\n // Update the PerfectScrollbar\n this.update();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n this._destroy();\n\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Is enabled\n */\n public isEnabled(): boolean {\n return this.niceScrollbar;\n }\n\n /**\n * Update the scrollbar\n */\n public update(): void {\n // Return if not initialized\n if (!this._ps) {\n return;\n }\n\n // Update the PerfectScrollbar\n this._ps.update();\n }\n\n /**\n * Destroy the scrollbar\n */\n public destroy(): void {\n this.ngOnDestroy();\n }\n\n /**\n * Returns the geometry of the scrollable element\n */\n public geometry(prefix: string = \"scroll\"): ScrollbarGeometry {\n return new ScrollbarGeometry(\n this._elementRef.nativeElement[prefix + \"Left\"],\n this._elementRef.nativeElement[prefix + \"Top\"],\n this._elementRef.nativeElement[prefix + \"Width\"],\n this._elementRef.nativeElement[prefix + \"Height\"]);\n }\n\n /**\n * Returns the position of the scrollable element\n */\n public position(absolute: boolean = false): ScrollbarPosition {\n let scrollbarPosition;\n\n if (!absolute && this._ps) {\n scrollbarPosition = new ScrollbarPosition(\n this._ps.reach.x || 0,\n this._ps.reach.y || 0\n );\n } else {\n scrollbarPosition = new ScrollbarPosition(\n this._elementRef.nativeElement.scrollLeft,\n this._elementRef.nativeElement.scrollTop\n );\n }\n\n return scrollbarPosition;\n }\n\n /**\n * Scroll to\n */\n public scrollTo(x: number, y?: number, speed?: number): void {\n if (y == null && speed == null) {\n this.animateScrolling(\"scrollTop\", x, speed);\n } else {\n if (x != null) {\n this.animateScrolling(\"scrollLeft\", x, speed);\n }\n\n if (y != null) {\n this.animateScrolling(\"scrollTop\", y, speed);\n }\n }\n }\n\n /**\n * Scroll to X\n */\n public scrollToX(x: number, speed?: number): void {\n this.animateScrolling(\"scrollLeft\", x, speed);\n }\n\n /**\n * Scroll to Y\n */\n public scrollToY(y: number, speed?: number): void {\n this.animateScrolling(\"scrollTop\", y, speed);\n }\n\n /**\n * Scroll to top\n */\n public scrollToTop(offset: number = 0, speed?: number): void {\n this.animateScrolling(\"scrollTop\", offset, speed);\n }\n\n /**\n * Scroll to bottom\n */\n public scrollToBottom(offset: number = 0, speed?: number): void {\n const top = this._elementRef.nativeElement.scrollHeight - this._elementRef.nativeElement.clientHeight;\n this.animateScrolling(\"scrollTop\", top - offset, speed);\n }\n\n /**\n * Scroll to left\n */\n public scrollToLeft(offset: number = 0, speed?: number): void {\n this.animateScrolling(\"scrollLeft\", offset, speed);\n }\n\n /**\n * Scroll to right\n */\n public scrollToRight(offset: number = 0, speed?: number): void {\n const left = this._elementRef.nativeElement.scrollWidth - this._elementRef.nativeElement.clientWidth;\n this.animateScrolling(\"scrollLeft\", left - offset, speed);\n }\n\n /**\n * Scroll to element\n */\n public scrollToElement(qs: string, offset: number = 0, ignoreVisible: boolean = false, speed?: number): void {\n const element = this._elementRef.nativeElement.querySelector(qs);\n\n if (!element) {\n return;\n }\n\n const elementPos = element.getBoundingClientRect();\n const scrollerPos = this._elementRef.nativeElement.getBoundingClientRect();\n\n if (this._elementRef.nativeElement.classList.contains(\"ps--active-x\")) {\n if (ignoreVisible && elementPos.right <= (scrollerPos.right - Math.abs(offset))) {\n return;\n }\n\n const currentPos = this._elementRef.nativeElement.scrollLeft;\n const position = elementPos.left - scrollerPos.left + currentPos;\n\n this.animateScrolling(\"scrollLeft\", position + offset, speed);\n }\n\n if (this._elementRef.nativeElement.classList.contains(\"ps--active-y\")) {\n if (ignoreVisible && elementPos.bottom <= (scrollerPos.bottom - Math.abs(offset))) {\n return;\n }\n\n const currentPos = this._elementRef.nativeElement.scrollTop;\n const position = elementPos.top - scrollerPos.top + currentPos;\n\n this.animateScrolling(\"scrollTop\", position + offset, speed);\n }\n }\n\n /**\n * Animate scrolling\n */\n public animateScrolling(target: string, value: number, speed?: number): void {\n if (this._animation) {\n window.cancelAnimationFrame(this._animation);\n this._animation = null;\n }\n\n if (!speed || typeof window === \"undefined\") {\n this._elementRef.nativeElement[target] = value;\n } else if (value !== this._elementRef.nativeElement[target]) {\n let newValue = 0;\n let scrollCount = 0;\n\n let oldTimestamp = performance.now();\n let oldValue = this._elementRef.nativeElement[target];\n\n const cosParameter = (oldValue - value) / 2;\n\n const step = (newTimestamp: number) => {\n scrollCount += Math.PI / (speed / (newTimestamp - oldTimestamp));\n newValue = Math.round(value + cosParameter + cosParameter * Math.cos(scrollCount));\n\n // Only continue animation if scroll position has not changed\n if (this._elementRef.nativeElement[target] === oldValue) {\n if (scrollCount >= Math.PI) {\n this.animateScrolling(target, value, 0);\n } else {\n this._elementRef.nativeElement[target] = newValue;\n\n // On a zoomed out page the resulting offset may differ\n oldValue = this._elementRef.nativeElement[target];\n oldTimestamp = newTimestamp;\n\n this._animation = window.requestAnimationFrame(step);\n }\n }\n };\n\n window.requestAnimationFrame(step);\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Initialize\n */\n private _init(): void {\n // Return if already initialized\n if (this._ps) {\n return;\n }\n\n // Return if on mobile or not on browser\n if (this._platform.ANDROID || this._platform.IOS || !this._platform.isBrowser) {\n this.niceScrollbar = false;\n return;\n }\n\n // Initialize the PerfectScrollbar\n this._ps = new PerfectScrollbar(this._elementRef.nativeElement, {...this._options});\n }\n\n /**\n * Destroy\n */\n private _destroy(): void {\n // Return if not initialized\n if (!this._ps) {\n return;\n }\n\n // Destroy the PerfectScrollbar\n this._ps.destroy();\n\n // Clean up\n this._ps = null;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceScrollbarDirective } from \"./scrollbar.directive\";\n\n@NgModule({\n declarations: [\n NiceScrollbarDirective\n ],\n exports: [\n NiceScrollbarDirective\n ]\n})\nexport class NiceScrollbarModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable()\nexport class NiceNavigationHintService {\n public hasActiveHint$ = new BehaviorSubject(false);\n\n public get hasActiveHint(): boolean {\n return this.hasActiveHint$.value;\n }\n\n public setActiveHint(isActive: boolean): void {\n this.hasActiveHint$.next(isActive);\n }\n}\n","import { FocusMonitor } from \"@angular/cdk/a11y\";\nimport { FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { Platform } from \"@angular/cdk/platform\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { AfterViewInit, Directive, ElementRef, Input, NgZone, OnDestroy, ViewContainerRef } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { _HintComponentBase } from \"../components/hint-component-base\";\nimport { NiceNavigationItem } from \"../navigation.types\";\nimport { NiceNavigationHintService } from \"../providers/hint.service\";\n\n@Directive({\n selector: \"[niceShowHint]\",\n standalone: false\n})\nexport class NiceShowHintDirective<T extends _HintComponentBase> implements AfterViewInit, OnDestroy {\n @Input()\n public shouldShow = false;\n\n @Input()\n public item: NiceNavigationItem;\n\n private _pointerExitEventsInitialized = false;\n private _portal: ComponentPortal<any>;\n private _hintInstance: T;\n private _overlayRef: OverlayRef;\n\n private readonly _passiveListeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n private readonly unsubscribeAll$ = new Subject<void>();\n\n constructor(\n private _overlay: Overlay,\n private _elementRef: ElementRef<HTMLElement>,\n private _viewContainerRef: ViewContainerRef,\n private _ngZone: NgZone,\n private _platform: Platform,\n private _focusMonitor: FocusMonitor,\n private _hintService: NiceNavigationHintService\n ) {}\n\n public ngAfterViewInit(): void {\n this._setupPointerEnterEventsIfNeeded();\n\n this._focusMonitor\n .monitor(this._elementRef)\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n this._ngZone.run(() => this.hide());\n } else if (origin === \"keyboard\") {\n this._ngZone.run(() => this.show());\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n public show(): void {\n if (!this.shouldShow || !this.item.hint || this._isHintVisible()) {\n return;\n }\n\n const overlayRef = this._createOverlay();\n this._portal = this._portal || new ComponentPortal<any>(this.item.hint.component);\n this._detach();\n this._hintInstance = overlayRef.attach(this._portal).instance;\n\n this._hintInstance._triggerElement = this._elementRef.nativeElement;\n this._hintInstance\n .afterHidden()\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(() => this._detach());\n\n this._hintService.setActiveHint(true);\n }\n\n public hide(): void {\n const instance = this._hintInstance;\n\n if (instance) {\n if (instance.isVisible()) {\n instance.hide(0);\n } else {\n instance._cancelPendingAnimations();\n this._detach();\n }\n }\n }\n\n private _createOverlay(): OverlayRef {\n if (this._overlayRef) {\n const existingStrategy = this._overlayRef.getConfig()\n .positionStrategy as FlexibleConnectedPositionStrategy;\n\n // @ts-ignore\n if (!origin && existingStrategy._origin instanceof ElementRef) {\n return this._overlayRef;\n }\n\n this._detach();\n }\n\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withPositions([\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n offsetY: 8\n }\n ])\n .withFlexibleDimensions(false);\n\n strategy.positionChanges.pipe(takeUntil(this.unsubscribeAll$)).subscribe(change => {\n if (this._hintInstance) {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this._ngZone.run(() => this.hide());\n }\n }\n });\n\n this._overlayRef = this._overlay.create({\n positionStrategy: strategy\n });\n\n this._overlayRef\n .detachments()\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(() => this._detach());\n\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.unsubscribeAll$))\n .subscribe(() => this._hintInstance?._handleBodyInteraction());\n\n return this._overlayRef;\n }\n\n private _detach() {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n\n this._hintInstance = null;\n this._hintService.setActiveHint(false);\n }\n\n private _isHintVisible(): boolean {\n return !!this._hintInstance;\n }\n\n private _setupPointerEnterEventsIfNeeded() {\n // Optimization: Defer hooking up events if there's no message or the tooltip is disabled.\n if (this._passiveListeners.length) {\n return;\n }\n\n // The mouse events shouldn't be bound on mobile devices, because they can prevent the\n // first tap from firing its click event or can cause the tooltip to open for clicks.\n if (this._platformSupportsMouseEvents()) {\n this._passiveListeners.push([\n \"mouseenter\",\n () => {\n this._setupPointerExitEventsIfNeeded();\n this.show();\n },\n ]);\n }\n\n this._addListeners(this._passiveListeners);\n }\n\n private _setupPointerExitEventsIfNeeded() {\n if (this._pointerExitEventsInitialized) {\n return;\n }\n this._pointerExitEventsInitialized = true;\n\n const exitListeners: (readonly [string, EventListenerOrEventListenerObject])[] = [];\n if (this._platformSupportsMouseEvents()) {\n exitListeners.push(\n [\n \"mouseleave\",\n event => {\n const newTarget = (event as MouseEvent).relatedTarget as Node | null;\n if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {\n this.hide();\n }\n },\n ]\n );\n }\n\n this._addListeners(exitListeners);\n this._passiveListeners.push(...exitListeners);\n }\n\n private _platformSupportsMouseEvents() {\n return !this._platform.IOS && !this._platform.ANDROID;\n }\n\n private _addListeners(listeners: (readonly [string, EventListenerOrEventListenerObject])[]) {\n listeners.forEach(([event, listener]) => {\n this._elementRef.nativeElement.addEventListener(event, listener);\n });\n }\n}\n","import { Injector, Pipe, PipeTransform } from \"@angular/core\";\nimport { Observable, combineLatest, of } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { NiceNavigationItem } from \"../navigation.types\";\n\n@Pipe({\n name: \"niceShouldShowHint\",\n standalone: false\n})\nexport class NiceShouldShowHintPipe implements PipeTransform {\n constructor(private injector: Injector) {}\n\n public transform(value: NiceNavigationItem | NiceNavigationItem[]): Observable<boolean> {\n if (!Array.isArray(value)) {\n value = [value];\n }\n\n return combineLatest(value.map(x => this.transformHint(x))).pipe(map(res => res.some(x => x)));\n }\n\n private transformHint(value: NiceNavigationItem): Observable<boolean> {\n if (!value.hint) {\n return of(false);\n }\n\n const resolver = this.injector.get(value.hint.resolver);\n if (!resolver) {\n return of(false);\n }\n\n return resolver.shouldShowHint();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { NiceUtilsService } from \"../../../../../providers/utils\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-basic-item\",\n templateUrl: \"./basic.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceVerticalNavigationBasicItemComponent implements OnInit, OnDestroy{\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n public itemActive$ = this._route.url.pipe(\n map(() => {\n const url = this._router.url.split(\"?\").shift();\n if (this.item.exactMatch === true) {\n return url === this.item.link;\n }\n return url.startsWith(this.item.link) && url.length >= this.item.link.length;\n })\n );\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService,\n private _niceUtilsService: NiceUtilsService,\n private _route: ActivatedRoute,\n private _router: Router\n ) {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n matTooltipClass=\"nice-vertical-navigation-item-tooltips\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | niceTranslateWithContext\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n\n <!-- Item with an internal link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-vertical-navigation-item nice-vertical-navigation-item-disabled\"\n *ngIf=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <ng-container *ngIf=\"{ showHint: item | niceShouldShowHint | async } as ctx\">\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\">\n <ng-container *ngIf=\"itemActive$ | async; else notActive\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.activeIcon || item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.activeIcon || item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.activeIcon || item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-container>\n\n <ng-template #notActive>\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-template>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\" niceShowHint [shouldShow]=\"ctx.showHint\" [item]=\"item\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n\n <div *ngIf=\"ctx.showHint\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </ng-container>\n</ng-template>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-divider-item\",\n templateUrl: \"./divider.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceVerticalNavigationDividerItemComponent implements OnInit, OnDestroy {\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Divider -->\n<div\n class=\"nice-vertical-navigation-item-wrapper divider\"\n [ngClass]=\"item.classes?.wrapper\"\n></div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-spacer-item\",\n templateUrl: \"./spacer.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceVerticalNavigationSpacerItemComponent implements OnInit, OnDestroy {\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","<!-- Spacer -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [ngClass]=\"item.classes?.wrapper\"\n></div>\n","import { BooleanInput } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit\n} from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { niceAnimations } from \"../../../../../animations\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-collapsable-item\",\n templateUrl: \"./collapsable.component.html\",\n styles: [],\n animations: niceAnimations,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceVerticalNavigationCollapsableItemComponent implements OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_autoCollapse: BooleanInput;\n\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public autoCollapse: boolean;\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n public isCollapsed = true;\n public isExpanded = false;\n\n public hasChildActivated$ = new BehaviorSubject(false);\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _router: Router,\n private _niceNavigationService: NiceNavigationService\n ) {}\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"nice-vertical-navigation-item-collapsed\": this.isCollapsed,\n \"nice-vertical-navigation-item-expanded\": this.isExpanded\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // If the item has a children that has a matching url with the current url, expand...\n if (this._hasActiveChild(this.item, this._router.url)) {\n this.hasChildActivated$.next(true);\n this.expand();\n }\n // Otherwise...\n else {\n // If the autoCollapse is on, collapse...\n if (this.autoCollapse) {\n this.hasChildActivated$.next(false);\n this.collapse();\n }\n }\n\n // Listen for the onCollapsableItemCollapsed from the service\n this._niceVerticalNavigationComponent.onCollapsableItemCollapsed\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((collapsedItem) => {\n\n // Check if the collapsed item is null\n if (collapsedItem === null) {\n return;\n }\n\n // Collapse if this is a children of the collapsed item\n if (this._isChildrenOf(collapsedItem, this.item)) {\n this.collapse();\n }\n });\n\n // Listen for the onCollapsableItemExpanded from the service if the autoCollapse is on\n if (this.autoCollapse) {\n this._niceVerticalNavigationComponent.onCollapsableItemExpanded\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((expandedItem) => {\n\n // Check if the expanded item is null\n if (expandedItem === null) {\n return;\n }\n\n // Check if this is a parent of the expanded item\n if (this._isChildrenOf(this.item, expandedItem)) {\n return;\n }\n\n // Check if this has a children with a matching url with the current active url\n if (this._hasActiveChild(this.item, this._router.url)) {\n return;\n }\n\n // Check if this is the expanded item\n if (this.item === expandedItem) {\n return;\n }\n\n // If none of the above conditions are matched, collapse this item\n this.collapse();\n });\n }\n\n // Attach a listener to the NavigationEnd event\n this._router.events\n .pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe((event: NavigationEnd) => {\n\n // If the item has a children that has a matching url with the current url, expand...\n if (this._hasActiveChild(this.item, event.urlAfterRedirects)) {\n this.hasChildActivated$.next(true);\n this.expand();\n }\n // Otherwise...\n else {\n this.hasChildActivated$.next(false);\n\n // If the autoCollapse is on, collapse...\n if (this.autoCollapse) {\n this.collapse();\n }\n }\n });\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Check if the given item has the given url\n * in one of its children\n */\n private _hasActiveChild(item: NiceNavigationItem, currentUrl: string): boolean {\n const children = item.children;\n\n if (!children) {\n return false;\n }\n\n for (const child of children) {\n if (child.children) {\n if (this._hasActiveChild(child, currentUrl)) {\n return true;\n }\n }\n\n // Check if the child has a link and is active\n if (child.link && this._router.isActive(child.link, child.exactMatch || false)) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Check if this is a children\n * of the given item\n */\n private _isChildrenOf(parent: NiceNavigationItem, item: NiceNavigationItem): boolean {\n const children = parent.children;\n\n if (!children) {\n return false;\n }\n\n if (children.indexOf(item) > -1) {\n return true;\n }\n\n for (const child of children) {\n if (child.children) {\n if (this._isChildrenOf(child, item)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Collapse\n */\n public collapse(): void {\n // Return if the item is disabled\n if (this.item.disabled) {\n return;\n }\n\n // Return if the item is already collapsed\n if (this.isCollapsed) {\n return;\n }\n\n // Collapse it\n this.isCollapsed = true;\n this.isExpanded = !this.isCollapsed;\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n\n // Execute the observable\n this._niceVerticalNavigationComponent.onCollapsableItemCollapsed.next(this.item);\n }\n\n /**\n * Expand\n */\n public expand(): void {\n // Return if the item is disabled\n if (this.item.disabled) {\n return;\n }\n\n // Return if the item is already expanded\n if (!this.isCollapsed) {\n return;\n }\n\n // Expand it\n this.isCollapsed = false;\n this.isExpanded = !this.isCollapsed;\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n\n // Execute the observable\n this._niceVerticalNavigationComponent.onCollapsableItemExpanded.next(this.item);\n }\n\n /**\n * Toggle collapsable\n */\n public toggleCollapsable(): void {\n // Toggle collapse/expand\n if (this.isCollapsed) {\n this.expand();\n } else {\n this.collapse();\n }\n }\n\n /**\n * Track by function for ngFor loops\n */\n public trackByFn(index: number, item: any): any {\n return item.id || index;\n }\n}\n","<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n","import { BooleanInput } from \"@angular/cdk/coercion\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-group-item\",\n templateUrl: \"./group.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceVerticalNavigationGroupItemComponent implements OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_autoCollapse: BooleanInput;\n\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public autoCollapse: boolean;\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n \n @Input()\n public showTooltips = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Track by function for ngFor loops\n */\n public trackByFn(index: number, item: any): any {\n return item.id || index;\n }\n}\n","<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div class=\"nice-vertical-navigation-item\">\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\" *ngIf=\"item.title || item.subtitle\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n</ng-container>\n","import { BooleanInput } from \"@angular/cdk/coercion\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceNavigationService } from \"../../../navigation.service\";\nimport { NiceNavigationItem } from \"../../../navigation.types\";\n\n@Component({\n selector: \"nice-vertical-navigation-aside-item\",\n templateUrl: \"./aside.component.html\",\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceVerticalNavigationAsideItemComponent implements OnChanges, OnInit, OnDestroy {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_autoCollapse: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_skipChildren: BooleanInput;\n\n private _niceVerticalNavigationComponent;\n private _unsubscribeAll = new Subject<any>();\n\n @Input()\n public activeItemId: string;\n\n @Input()\n public autoCollapse: boolean;\n\n @Input()\n public item: NiceNavigationItem;\n\n @Input()\n public name: string;\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public skipChildren: boolean;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n public active = false;\n\n /**\n * Constructor\n */\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n private _router: Router,\n private _niceNavigationService: NiceNavigationService\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Active item id\n if (\"activeItemId\" in changes) {\n // Mark if active\n this._markIfActive(this._router.url);\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Mark if active\n this._markIfActive(this._router.url);\n\n // Attach a listener to the NavigationEnd event\n this._router.events\n .pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe((event: NavigationEnd) => {\n\n // Mark if active\n this._markIfActive(event.urlAfterRedirects);\n });\n\n // Get the parent navigation component\n this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);\n\n // Subscribe to onRefreshed on the navigation component\n this._niceVerticalNavigationComponent.onRefreshed.pipe(\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Check if the given item has the given url\n * in one of its children\n */\n private _hasActiveChild(item: NiceNavigationItem, currentUrl: string): boolean {\n const children = item.children;\n\n if (!children) {\n return false;\n }\n\n for (const child of children) {\n if (child.children) {\n if (this._hasActiveChild(child, currentUrl)) {\n return true;\n }\n }\n\n // Skip items other than 'basic'\n if (child.type !== \"basic\") {\n continue;\n }\n\n // Check if the child has a link and is active\n if (child.link && this._router.isActive(child.link, child.exactMatch || false)) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Decide and mark if the item is active\n */\n private _markIfActive(currentUrl: string): void {\n // Check if the activeItemId is equals to this item id\n this.active = this.activeItemId === this.item.id;\n\n // If the aside has a children that is active,\n // always mark it as active\n if (this._hasActiveChild(this.item, currentUrl)) {\n this.active = true;\n }\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Track by function for ngFor loops\n */\n public trackByFn(index: number, item: any): any {\n return item.id || index;\n }\n}\n","<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n","import { animate, AnimationBuilder, AnimationPlayer, style } from \"@angular/animations\";\nimport { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport { ScrollStrategy, ScrollStrategyOptions } from \"@angular/cdk/overlay\";\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { TooltipPosition } from \"@angular/material/tooltip\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { merge, ReplaySubject, Subscription } from \"rxjs\";\nimport { delay, filter, takeUntil } from \"rxjs/operators\";\nimport { niceAnimations } from \"../../../animations\";\nimport { NiceScrollbarDirective } from \"../../../directives/scrollbar\";\nimport { NiceUtilsService } from \"../../../providers/utils\";\nimport { NiceNavigationComponent } from \"../navigation.component\";\nimport { NiceNavigationService } from \"../navigation.service\";\nimport {\n NiceNavigationItem,\n NiceVerticalNavigationAppearance,\n NiceVerticalNavigationMode,\n NiceVerticalNavigationPosition\n} from \"../navigation.types\";\nimport { NiceNavigationHintService } from \"../providers/hint.service\";\nimport { NiceTranslationContextService } from \"../providers/translation-context.service\";\n\n@Component({\n selector: \"nice-vertical-navigation\",\n templateUrl: \"./vertical.component.html\",\n animations: niceAnimations,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [NiceTranslationContextService],\n exportAs: \"niceVerticalNavigation\",\n standalone: false\n})\nexport class NiceVerticalNavigationComponent extends NiceNavigationComponent implements OnChanges, OnInit, AfterViewInit {\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_inner: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_opened: BooleanInput;\n // tslint:disable-next-line:variable-name\n public static ngAcceptInputType_transparentOverlay: BooleanInput;\n\n private _forceHovered = false;\n private _animationsEnabled = false;\n private _asideOverlay: HTMLElement;\n private readonly _handleAsideOverlayClick: any;\n private readonly _handleOverlayClick: any;\n private _overlay: HTMLElement;\n private _player: AnimationPlayer;\n private _scrollStrategy: ScrollStrategy = this._scrollStrategyOptions.block();\n private _niceScrollbarDirectives!: QueryList<NiceScrollbarDirective>;\n private _niceScrollbarDirectivesSubscription: Subscription;\n\n @Input()\n public name: string = this._niceUtilsService.randomId();\n\n @Input()\n public appearance: NiceVerticalNavigationAppearance = \"default\";\n\n @Input()\n public autoCollapse = true;\n\n @Input()\n public inner = false;\n\n @Input()\n public mode: NiceVerticalNavigationMode = \"side\";\n\n @Input()\n public opened = true;\n\n @Input()\n public hovered = false;\n\n @Input()\n public hasHint = false;\n\n @Input()\n public position: NiceVerticalNavigationPosition = \"left\";\n\n @Input()\n public showTooltips = false;\n\n @Input()\n public transparentOverlay = false;\n\n @Input()\n public tooltipPosition: TooltipPosition = \"after\";\n\n @Input()\n public translationContext: Record<string, any>;\n\n @Output()\n public readonly appearanceChanged = new EventEmitter<NiceVerticalNavigationAppearance>();\n\n @Output()\n public readonly modeChanged = new EventEmitter<NiceVerticalNavigationMode>();\n\n @Output()\n public readonly openedChanged = new EventEmitter<boolean>();\n\n @Output()\n public readonly hoveredChanged = new EventEmitter<boolean>();\n\n @Output()\n public readonly positionChanged = new EventEmitter<NiceVerticalNavigationPosition>();\n\n @ViewChild(\"navigationContent\")\n private _navigationContentEl: ElementRef;\n\n @Input()\n public set navigation(navigation: NiceNavigationItem[]) {\n this._navigation = navigation;\n this._changeDetectorRef.markForCheck();\n }\n public get navigation(): NiceNavigationItem[] {\n return this._navigation;\n }\n\n public set forceHovered(forceHovered: boolean) {\n this._forceHovered = forceHovered;\n this.hoveredChanged.next((this.hovered || this._forceHovered) || this.hasHint);\n this._changeDetectorRef.markForCheck();\n }\n\n public activeAsideItemId: string | null = null;\n public onCollapsableItemCollapsed = new ReplaySubject<NiceNavigationItem>(1);\n public onCollapsableItemExpanded = new ReplaySubject<NiceNavigationItem>(1);\n\n /**\n * Constructor\n */\n constructor(\n _changeDetectorRef: ChangeDetectorRef,\n _niceNavigationService: NiceNavigationService,\n _niceUtilsService: NiceUtilsService,\n _translationContextService: NiceTranslationContextService,\n private _animationBuilder: AnimationBuilder,\n private _elementRef: ElementRef,\n private _renderer2: Renderer2,\n private _router: Router,\n private _scrollStrategyOptions: ScrollStrategyOptions,\n private _hintService: NiceNavigationHintService\n ) {\n super(_changeDetectorRef, _niceNavigationService, _niceUtilsService, _translationContextService);\n\n this._handleAsideOverlayClick = () => {\n this.closeAside();\n };\n this._handleOverlayClick = () => {\n this.close();\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component classes\n */\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"nice-vertical-navigation-animations-enabled\": this._animationsEnabled,\n [`nice-vertical-navigation-appearance-${this.appearance}`]: true,\n \"nice-vertical-navigation-hover\": this.hovered || this._forceHovered,\n \"nice-vertical-navigation-inner\": this.inner,\n \"nice-vertical-navigation-mode-over\": this.mode === \"over\",\n \"nice-vertical-navigation-mode-side\": this.mode === \"side\",\n \"nice-vertical-navigation-opened\": this.opened,\n \"nice-vertical-navigation-position-left\": this.position === \"left\",\n \"nice-vertical-navigation-position-right\": this.position === \"right\",\n \"nice-vertical-navigation-has-hint\": this.hasHint\n };\n }\n\n /**\n * Host binding for component inline styles\n */\n @HostBinding(\"style\")\n public get styleList(): any {\n return {\n \"visibility\": this.opened ? \"visible\" : \"hidden\"\n };\n }\n\n /**\n * Setter for niceScrollbarDirectives\n */\n @ViewChildren(NiceScrollbarDirective)\n public set niceScrollbarDirectives(niceScrollbarDirectives: QueryList<NiceScrollbarDirective>) {\n // Store the directives\n this._niceScrollbarDirectives = niceScrollbarDirectives;\n\n // Return if there are no directives\n if (niceScrollbarDirectives.length === 0) {\n return;\n }\n\n // Unsubscribe the previous subscriptions\n if (this._niceScrollbarDirectivesSubscription) {\n this._niceScrollbarDirectivesSubscription.unsubscribe();\n }\n\n // Update the scrollbars on collapsable items' collapse/expand\n this._niceScrollbarDirectivesSubscription =\n merge(\n this.onCollapsableItemCollapsed,\n this.onCollapsableItemExpanded\n )\n .pipe(\n takeUntil(this._unsubscribeAll),\n delay(250)\n )\n .subscribe(() => {\n\n // Loop through the scrollbars and update them\n niceScrollbarDirectives.forEach((niceScrollbarDirective) => {\n niceScrollbarDirective.update();\n });\n });\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n *\n * @param changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n\n // Appearance\n if (\"appearance\" in changes) {\n // Execute the observable\n this.appearanceChanged.next(changes.appearance.currentValue);\n }\n\n // Inner\n if (\"inner\" in changes) {\n // Coerce the value to a boolean\n this.inner = coerceBooleanProperty(changes.inner.currentValue);\n }\n\n // Mode\n if (\"mode\" in changes) {\n // Get the previous and current values\n const currentMode = changes.mode.currentValue;\n const previousMode = changes.mode.previousValue;\n\n // Disable the animations\n this._disableAnimations();\n\n // If the mode changes: 'over -> side'\n if (previousMode === \"over\" && currentMode === \"side\") {\n // Hide the overlay\n this._hideOverlay();\n }\n\n // If the mode changes: 'side -> over'\n if (previousMode === \"side\" && currentMode === \"over\") {\n // Close the aside\n this.closeAside();\n\n // If the navigation is opened\n if (this.opened) {\n // Show the overlay\n this._showOverlay();\n }\n }\n\n // Execute the observable\n this.modeChanged.next(currentMode);\n\n // Enable the animations after a delay\n // The delay must be bigger than the current transition-duration\n // to make sure nothing will be animated while the mode changing\n setTimeout(() => {\n this._enableAnimations();\n }, 500);\n }\n\n // Opened\n if (\"opened\" in changes) {\n // Coerce the value to a boolean\n this.opened = coerceBooleanProperty(changes.opened.currentValue);\n\n // Open/close the navigation\n this._toggleOpened(this.opened);\n }\n\n // Position\n if (\"position\" in changes) {\n // Execute the observable\n this.positionChanged.next(changes.position.currentValue);\n }\n\n // Transparent overlay\n if (\"transparentOverlay\" in changes) {\n // Coerce the value to a boolean\n this.transparentOverlay = coerceBooleanProperty(changes.transparentOverlay.currentValue);\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n super.ngOnInit();\n\n // Make sure the name input is not an empty string\n if (this.name === \"\") {\n this.name = this._niceUtilsService.randomId();\n }\n\n // Subscribe to the 'NavigationEnd' event\n this._router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe(() => {\n // If the mode is 'over' and the navigation is opened...\n if (this.mode === \"over\" && this.opened) {\n // Close the navigation\n this.close();\n }\n\n // If the mode is 'side' and the aside is active...\n if (this.mode === \"side\" && this.activeAsideItemId) {\n // Close the aside\n this.closeAside();\n }\n });\n\n this._hintService.hasActiveHint$.pipe(takeUntil(this._unsubscribeAll)).subscribe(hasHint => {\n this.hasHint = hasHint;\n this.hoveredChanged.next((this.hovered || this._forceHovered) || this.hasHint);\n });\n }\n\n /**\n * After view init\n */\n public ngAfterViewInit(): void {\n setTimeout(() => {\n\n // Return if 'navigation content' element does not exist\n if (!this._navigationContentEl) {\n return;\n }\n\n // If 'navigation content' element doesn't have\n // perfect scrollbar activated on it...\n if (!this._navigationContentEl.nativeElement.classList.contains(\"ps\")) {\n // Find the active item\n const activeItem = this._navigationContentEl.nativeElement.querySelector(\".nice-vertical-navigation-item-active\");\n\n // If the active item exists, scroll it into view\n if (activeItem) {\n activeItem.scrollIntoView();\n }\n }\n // Otherwise\n else {\n // Go through all the scrollbar directives\n this._niceScrollbarDirectives.forEach((niceScrollbarDirective) => {\n\n // Skip if not enabled\n if (!niceScrollbarDirective.isEnabled()) {\n return;\n }\n\n // Scroll to the active element\n niceScrollbarDirective.scrollToElement(\".nice-vertical-navigation-item-active\", -120, true);\n });\n }\n });\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Public methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Open the navigation\n */\n public open(): void {\n // Return if the navigation is already open\n if (this.opened) {\n return;\n }\n\n // Set the opened\n this._toggleOpened(true);\n }\n\n /**\n * Close the navigation\n */\n public close(): void {\n // Return if the navigation is already closed\n if (!this.opened) {\n return;\n }\n\n // Close the aside\n this.closeAside();\n\n // Set the opened\n this._toggleOpened(false);\n }\n\n /**\n * Toggle the navigation\n */\n public toggle(): void {\n // Toggle\n if (this.opened) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Open the aside\n */\n public openAside(item: NiceNavigationItem): void {\n // Return if the item is disabled\n if (item.disabled || !item.id) {\n return;\n }\n\n // Open\n this.activeAsideItemId = item.id;\n\n // Show the aside overlay\n this._showAsideOverlay();\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Close the aside\n */\n public closeAside(): void {\n // Close\n this.activeAsideItemId = null;\n\n // Hide the aside overlay\n this._hideAsideOverlay();\n\n // Mark for check\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Toggle the aside\n */\n public toggleAside(item: NiceNavigationItem): void {\n // Toggle\n if (this.activeAsideItemId === item.id) {\n this.closeAside();\n } else {\n this.openAside(item);\n }\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Enable the animations\n *\n * @private\n */\n private _enableAnimations(): void {\n // Return if the animations are already enabled\n if (this._animationsEnabled) {\n return;\n }\n\n // Enable the animations\n this._animationsEnabled = true;\n }\n\n /**\n * Disable the animations\n *\n * @private\n */\n private _disableAnimations(): void {\n // Return if the animations are already disabled\n if (!this._animationsEnabled) {\n return;\n }\n\n // Disable the animations\n this._animationsEnabled = false;\n }\n\n /**\n * Show the overlay\n *\n * @private\n */\n private _showOverlay(): void {\n // Return if there is already an overlay\n if (this._asideOverlay) {\n return;\n }\n\n // Create the overlay element\n this._overlay = this._renderer2.createElement(\"div\");\n\n // Add a class to the overlay element\n this._overlay.classList.add(\"nice-vertical-navigation-overlay\");\n\n // Add a class depending on the transparentOverlay option\n if (this.transparentOverlay) {\n this._overlay.classList.add(\"nice-vertical-navigation-overlay-transparent\");\n }\n\n // Append the overlay to the parent of the navigation\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._overlay);\n\n // Enable block scroll strategy\n this._scrollStrategy.enable();\n\n // Create the enter animation and attach it to the player\n this._player = this._animationBuilder.build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 1}))\n ]).create(this._overlay);\n\n // Play the animation\n this._player.play();\n\n // Add an event listener to the overlay\n this._overlay.addEventListener(\"click\", this._handleOverlayClick);\n }\n\n /**\n * Hide the overlay\n *\n * @private\n */\n private _hideOverlay(): void {\n if (!this._overlay) {\n return;\n }\n\n // Create the leave animation and attach it to the player\n this._player = this._animationBuilder.build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 0}))\n ]).create(this._overlay);\n\n // Play the animation\n this._player.play();\n\n // Once the animation is done...\n this._player.onDone(() => {\n\n // If the overlay still exists...\n if (this._overlay) {\n // Remove the event listener\n this._overlay.removeEventListener(\"click\", this._handleOverlayClick);\n\n // Remove the overlay\n this._overlay.parentNode.removeChild(this._overlay);\n this._overlay = null;\n }\n\n // Disable block scroll strategy\n this._scrollStrategy.disable();\n });\n }\n\n /**\n * Show the aside overlay\n *\n * @private\n */\n private _showAsideOverlay(): void {\n // Return if there is already an overlay\n if (this._asideOverlay) {\n return;\n }\n\n // Create the aside overlay element\n this._asideOverlay = this._renderer2.createElement(\"div\");\n\n // Add a class to the aside overlay element\n this._asideOverlay.classList.add(\"nice-vertical-navigation-aside-overlay\");\n\n // Append the aside overlay to the parent of the navigation\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._asideOverlay);\n\n // Create the enter animation and attach it to the player\n this._player =\n this._animationBuilder\n .build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 1}))\n ]).create(this._asideOverlay);\n\n // Play the animation\n this._player.play();\n\n // Add an event listener to the aside overlay\n this._asideOverlay.addEventListener(\"click\", this._handleAsideOverlayClick);\n }\n\n /**\n * Hide the aside overlay\n *\n * @private\n */\n private _hideAsideOverlay(): void {\n if (!this._asideOverlay) {\n return;\n }\n\n // Create the leave animation and attach it to the player\n this._player =\n this._animationBuilder\n .build([\n animate(\"300ms cubic-bezier(0.25, 0.8, 0.25, 1)\", style({opacity: 0}))\n ]).create(this._asideOverlay);\n\n // Play the animation\n this._player.play();\n\n // Once the animation is done...\n this._player.onDone(() => {\n\n // If the aside overlay still exists...\n if (this._asideOverlay) {\n // Remove the event listener\n this._asideOverlay.removeEventListener(\"click\", this._handleAsideOverlayClick);\n\n // Remove the aside overlay\n this._asideOverlay.parentNode.removeChild(this._asideOverlay);\n this._asideOverlay = null;\n }\n });\n }\n\n /**\n * On mouseenter\n */\n @HostListener(\"mouseenter\")\n public _onMouseenter(): void {\n // Enable the animations\n this._enableAnimations();\n\n // Set the hovered\n this.hovered = true;\n this.hoveredChanged.next(this.hovered || this._forceHovered);\n }\n\n /**\n * On mouseleave\n */\n @HostListener(\"mouseleave\")\n public _onMouseleave(): void {\n // Enable the animations\n this._enableAnimations();\n\n // Set the hovered\n this.hovered = false;\n this.hoveredChanged.next(this.hovered || this._forceHovered || this.hasHint);\n }\n\n /**\n * Open/close the navigation\n *\n * @param open\n * @private\n */\n private _toggleOpened(open: boolean): void {\n // Set the opened\n this.opened = open;\n\n // Enable the animations\n this._enableAnimations();\n\n // If the navigation opened, and the mode\n // is 'over', show the overlay\n if (this.mode === \"over\") {\n if (this.opened) {\n this._showOverlay();\n } else {\n this._hideOverlay();\n }\n }\n\n // Execute the observable\n this.openedChanged.next(open);\n }\n}\n","<div class=\"nice-vertical-navigation-wrapper\">\n <!-- Header -->\n <div class=\"nice-vertical-navigation-header\">\n <ng-content select=\"[niceVerticalNavigationHeader]\"></ng-content>\n </div>\n\n <!-- Content -->\n <div\n class=\"nice-vertical-navigation-content\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: inner, suppressScrollX: true }\"\n #navigationContent\n >\n <!-- Content header -->\n <div class=\"nice-vertical-navigation-content-header\">\n <ng-content select=\"[niceVerticalNavigationContentHeader]\"></ng-content>\n </div>\n\n <!-- Items -->\n <div *ngFor=\"let item of navigation; trackBy: trackByFn\" [@.disabled]=\"!animateNextNavChange\" @slideInRight>\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside'\"\n [item]=\"item\"\n [name]=\"name\"\n [activeItemId]=\"activeAsideItemId\"\n [autoCollapse]=\"autoCollapse\"\n [skipChildren]=\"true\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"toggleAside(item)\"\n ></nice-vertical-navigation-aside-item>\n\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </div>\n\n <!-- Content footer -->\n <div class=\"nice-vertical-navigation-content-footer\">\n <ng-content select=\"[niceVerticalNavigationContentFooter]\"></ng-content>\n </div>\n\n </div>\n\n <!-- Footer -->\n <div class=\"nice-vertical-navigation-footer\">\n <ng-content select=\"[niceVerticalNavigationFooter]\"></ng-content>\n </div>\n</div>\n\n<!-- Aside -->\n<div\n class=\"nice-vertical-navigation-aside-wrapper\"\n *ngIf=\"activeAsideItemId\"\n niceScrollbar\n [niceScrollbarOptions]=\"{ wheelPropagation: false, suppressScrollX: true }\"\n [@fadeInLeft]=\"position === 'left'\"\n [@fadeInRight]=\"position === 'right'\"\n [@fadeOutLeft]=\"position === 'left'\"\n [@fadeOutRight]=\"position === 'right'\"\n>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Aside -->\n <nice-vertical-navigation-aside-item\n *ngIf=\"item.type === 'aside' && item.id === activeAsideItemId\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-aside-item>\n </ng-container>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { RouterModule } from \"@angular/router\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceScrollbarModule } from \"../../directives/scrollbar\";\nimport { NiceShowHintDirective } from \"./directives/show-hint.directive\";\nimport { NiceHorizontalNavigationBasicItemComponent } from \"./horizontal/components/basic/basic.component\";\nimport { NiceHorizontalNavigationBranchItemComponent } from \"./horizontal/components/branch/branch.component\";\nimport { NiceHorizontalNavigationDividerItemComponent } from \"./horizontal/components/divider/divider.component\";\nimport { NiceHorizontalNavigationSpacerItemComponent } from \"./horizontal/components/spacer/spacer.component\";\nimport { NiceHorizontalNavigationComponent } from \"./horizontal/horizontal.component\";\nimport { NiceNavigationComponent } from \"./navigation.component\";\nimport { NiceShouldHidePipe } from \"./pipes/should-hide.pipe\";\nimport { NiceShouldShowHintPipe } from \"./pipes/should-show-hint.pipe\";\nimport { NiceTranslateWithContextPipe } from \"./pipes/translate-with-context.pipe\";\nimport { NiceNavigationHintService } from \"./providers/hint.service\";\nimport { NiceVerticalNavigationAsideItemComponent } from \"./vertical/components/aside/aside.component\";\nimport { NiceVerticalNavigationBasicItemComponent } from \"./vertical/components/basic/basic.component\";\nimport { NiceVerticalNavigationCollapsableItemComponent } from \"./vertical/components/collapsable/collapsable.component\";\nimport { NiceVerticalNavigationDividerItemComponent } from \"./vertical/components/divider/divider.component\";\nimport { NiceVerticalNavigationGroupItemComponent } from \"./vertical/components/group/group.component\";\nimport { NiceVerticalNavigationSpacerItemComponent } from \"./vertical/components/spacer/spacer.component\";\nimport { NiceVerticalNavigationComponent } from \"./vertical/vertical.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n MatButtonModule,\n MatDividerModule,\n MatIconModule,\n MatMenuModule,\n MatTooltipModule,\n NiceScrollbarModule,\n TranslateModule,\n ],\n declarations: [\n NiceNavigationComponent,\n NiceHorizontalNavigationBasicItemComponent,\n NiceHorizontalNavigationBranchItemComponent,\n NiceHorizontalNavigationDividerItemComponent,\n NiceHorizontalNavigationSpacerItemComponent,\n NiceHorizontalNavigationComponent,\n NiceVerticalNavigationAsideItemComponent,\n NiceVerticalNavigationBasicItemComponent,\n NiceVerticalNavigationCollapsableItemComponent,\n NiceVerticalNavigationDividerItemComponent,\n NiceVerticalNavigationGroupItemComponent,\n NiceVerticalNavigationSpacerItemComponent,\n NiceVerticalNavigationComponent,\n\n NiceShouldHidePipe,\n NiceShouldShowHintPipe,\n NiceTranslateWithContextPipe,\n NiceShowHintDirective\n ],\n providers: [NiceNavigationHintService],\n exports: [\n NiceHorizontalNavigationComponent,\n NiceVerticalNavigationComponent\n ]\n})\nexport class NiceNavigationModule {}\n","import { Observable } from \"rxjs\";\nimport { NiceNavigationItem } from \"../navigation.types\";\n\nexport abstract class NavigationHideItemResolver {\n public abstract shouldHide(item: NiceNavigationItem): Observable<boolean>;\n}\n","import { Observable } from \"rxjs\";\n\nexport abstract class NavigationHintResolver {\n public abstract shouldShowHint(): Observable<boolean>;\n}\n","import { Component, EventEmitter, forwardRef, HostBinding, Input, Output } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { niceAnimations } from \"../../animations\";\n\n@Component({\n selector: \"nice-search-bar\",\n templateUrl: \"./search-bar.template.html\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NiceSearchBarComponent),\n multi: true\n }\n ],\n animations: niceAnimations,\n standalone: false\n})\nexport class NiceSearchBarComponent implements ControlValueAccessor {\n @Input()\n public collapsed = true;\n\n @Output()\n public collapse = new EventEmitter<boolean>();\n\n public searchValue: string;\n public opened = false;\n\n private propagateChanges = (value: string) => {};\n\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"search-opened\": this.opened\n };\n }\n\n public toggleCollapsed(): void {\n this.collapsed = !this.collapsed;\n this.collapse.emit(this.collapsed);\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.propagateChanges = fn;\n }\n\n public registerOnTouched(fn: any): void {\n // NO-OP\n }\n\n public writeValue(value: string): void {\n this.searchValue = value;\n }\n\n public onSearchChange(value: string) {\n this.propagateChanges(value);\n }\n\n public open(): void {\n if (this.opened) {\n return;\n }\n\n this.opened = true;\n }\n\n public close(): void {\n if (!this.opened) {\n return;\n }\n\n this.searchValue = \"\";\n this.opened = false;\n }\n}\n","<button mat-icon-button *ngIf=\"!opened\" (click)=\"open()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n</button>\n\n<div class=\"absolute inset-0 flex items-center flex-shrink-0 z-99 bg-default\" *ngIf=\"opened\" @slideInTop @slideOutTop >\n <mat-icon class=\"absolute ml-6 sm:ml-8\" [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n <input class=\"w-full h-full px-16 sm:px-18 bg-transparent\" [ngModel]=\"searchValue\" (ngModelChange)=\"onSearchChange($event)\">\n <button class=\"absolute top-1/2 right-5 sm:right-7 flex-shrink-0 w-10 h-10 -mt-5\" mat-icon-button (click)=\"close()\">\n <mat-icon [svgIcon]=\"'heroicons_outline:x'\"></mat-icon>\n </button>\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { NiceSearchBarComponent } from \"./search-bar.component\";\nimport { FormsModule } from \"@angular/forms\";\n\n@NgModule({\n declarations: [\n NiceSearchBarComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n\n MatButtonModule,\n MatIconModule,\n FormsModule\n ],\n exports: [\n NiceSearchBarComponent\n ]\n})\nexport class NiceSearchBarModule {\n}\n","import { Component, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\nexport interface NiceAlertConfig {\n type: \"success\" | \"warning\" | \"info\";\n title?: string;\n message?: string;\n buttons: string[];\n}\n\n@Component({\n selector: \"nice-alert\",\n templateUrl: \"sweet-alert.template.html\",\n styleUrls: [\"sweet-alert.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class NiceSweetAlertComponent implements OnInit {\n public lottieConfig = {\n path: \"assets/animations/success.json\",\n autoplay: true,\n loop: false\n };\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public alertConfig: NiceAlertConfig,\n private dialogRef: MatDialogRef<NiceSweetAlertComponent>\n ) {\n this.lottieConfig.path = this.getAnimationPath();\n }\n\n public ngOnInit() {}\n\n public handleAnimation(animation) {\n animation.setSpeed(1.0);\n }\n\n public confirm() {\n this.dialogRef.close(true);\n }\n\n public close() {\n this.dialogRef.close(false);\n }\n\n public getAnimationPath(): string {\n switch (this.alertConfig.type) {\n case \"success\":\n return \"assets/animations/success.json\";\n case \"warning\":\n return \"assets/animations/warning.json\";\n case \"info\":\n return \"assets/animations/info.json\";\n }\n }\n\n public getConfirmButtonClass(): string {\n switch (this.alertConfig.type) {\n case \"success\":\n return \"mat-accent\";\n case \"warning\":\n return \"mat-warn\";\n case \"info\":\n return \"bg-light-blue-500\";\n }\n }\n}\n","<mat-dialog-content class=\"mat-typography mb-12 text-center\">\n <nice-lottie\n [options]=\"lottieConfig\"\n [width]=\"250\"\n (animCreated)=\"handleAnimation($event)\"\n ></nice-lottie>\n <h2 class=\"mt-8\">{{ alertConfig?.title }}</h2>\n <span [innerHTML]=\"alertConfig?.message\"></span>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <ng-container *ngFor=\"let button of alertConfig.buttons; let i = index\">\n <button mat-raised-button class=\"mr-4\" [ngClass]=\"getConfirmButtonClass()\" *ngIf=\"i === 0\" (click)=\"confirm()\">\n {{ button }}\n </button>\n <button mat-button (click)=\"close()\" *ngIf=\"i !== 0\">{{ button }}</button>\n </ng-container>\n</mat-dialog-actions>\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_ALERT_OPTIONS = new InjectionToken(\"nice_alert_options\");\n","import { Inject, Injectable, Optional, Type } from \"@angular/core\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { map, switchMap } from \"rxjs/operators\";\nimport { NiceSweetAlertComponent } from \"./sweet-alert.component\";\nimport { Observable } from \"rxjs\";\nimport { NICE_ALERT_OPTIONS } from \"./sweet-alert.constant\";\n\nexport interface NiceSweetAlertOptions {\n customModal?: Type<any>;\n}\n\nexport interface NiceSweetAlertParams {\n translationPath?: string;\n titleKey: string;\n messageKey?: string;\n buttonsKey: string[];\n params?: object;\n}\n\n@Injectable()\nexport class NiceSweetAlertService {\n private readonly modal: Type<any>;\n\n constructor(\n @Optional() @Inject(NICE_ALERT_OPTIONS) private options: NiceSweetAlertOptions,\n private matDialog: MatDialog,\n private translateService: TranslateService\n ) {\n this.modal = this.options?.customModal ?? NiceSweetAlertComponent;\n }\n\n public success(params: NiceSweetAlertParams): Observable<boolean>;\n public success(titleKey: string, messageKey: string, buttonsKey: string[], params?: object): Observable<boolean>;\n public success(...args: any[]): Observable<boolean> {\n const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);\n return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(\n switchMap(([title, message, buttons]) => {\n return this.matDialog\n .open(this.modal, {\n panelClass: \"nice-alert-modal\",\n data: {\n type: \"success\",\n title,\n message,\n buttons\n }\n })\n .afterClosed();\n })\n );\n }\n\n public warning(params: NiceSweetAlertParams): Observable<boolean>;\n public warning(titleKey: string, messageKey: string, buttonsKey: string[], params?: object): Observable<boolean>;\n public warning(...args: any[]): Observable<boolean> {\n const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);\n return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(\n switchMap(([title, message, buttons]) => {\n return this.matDialog\n .open(this.modal, {\n panelClass: \"nice-alert-modal\",\n data: {\n type: \"warning\",\n title,\n message,\n buttons\n }\n })\n .afterClosed();\n })\n );\n }\n\n public info(params: NiceSweetAlertParams): Observable<boolean>;\n public info(titleKey: string, messageKey: string, buttonsKey: string[], params?: object): Observable<boolean>;\n public info(...args: any[]): Observable<boolean> {\n const [titleKey, messageKey, buttonsKey, params] = this.transformArgs(args);\n return this.getTranslations(titleKey, messageKey, buttonsKey, params).pipe(\n switchMap(([title, message, buttons]) => {\n return this.matDialog\n .open(this.modal, {\n panelClass: \"nice-alert-modal\",\n data: {\n type: \"info\",\n title,\n message,\n buttons\n }\n })\n .afterClosed();\n })\n );\n }\n\n private getTranslations(\n title: string,\n message: string,\n buttons: string[],\n params?: object\n ): Observable<[string, string, string[]]> {\n return this.translateService.get([title, message, ...buttons], params).pipe(\n map((result: { [key: string]: string }) => {\n return [result[title], result[message], buttons.map(button => result[button])] as [\n string,\n string,\n string[]\n ];\n })\n );\n }\n\n private transformArgs(args: any[]): [string, string, string[], any] {\n const [paramsOrTitle] = args;\n if (typeof paramsOrTitle === \"string\") {\n return args as [string, string, string[], any];\n }\n\n const params = paramsOrTitle as NiceSweetAlertParams;\n const path = params.translationPath ? `${params.translationPath}.` : \"\";\n return [\n `${path}${params.titleKey}`,\n params.messageKey ? `${path}${params.messageKey}` : \"\",\n params.buttonsKey.map(buttonKey => `${path}${buttonKey}`),\n params.params\n ];\n }\n}\n","import { Directive, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\nimport { NiceSweetAlertParams, NiceSweetAlertService } from \"./sweet-alert.service\";\n\n@Directive({\n selector: \"[niceSweetAlert]\",\n standalone: false\n})\nexport class NiceSweetAlertDirective {\n @Input()\n public sweetAlertType: \"success\" | \"warning\" | \"info\";\n\n @Input()\n public sweetAlertOptions: NiceSweetAlertParams;\n\n @Output()\n public sweetAlertAfterClosed = new EventEmitter<boolean>();\n\n constructor(private service: NiceSweetAlertService) {}\n\n @HostListener(\"click\")\n public onClick(): void {\n if (this.sweetAlertType === \"success\") {\n this.service.success(this.sweetAlertOptions).subscribe(x => this.sweetAlertAfterClosed.emit(x));\n }\n\n if (this.sweetAlertType === \"warning\") {\n this.service.warning(this.sweetAlertOptions).subscribe(x => this.sweetAlertAfterClosed.emit(x));\n }\n\n if (this.sweetAlertType === \"info\") {\n this.service.info(this.sweetAlertOptions).subscribe(x => this.sweetAlertAfterClosed.emit(x));\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { NiceSweetAlertComponent } from \"./sweet-alert.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceSweetAlertDirective } from \"./sweet-alert.directive\";\nimport { NiceSweetAlertOptions, NiceSweetAlertService } from \"./sweet-alert.service\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { NiceLottieModule } from \"../lottie/lottie.module\";\nimport { NICE_ALERT_OPTIONS } from \"./sweet-alert.constant\";\n\n@NgModule({\n imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, NiceLottieModule],\n declarations: [NiceSweetAlertComponent, NiceSweetAlertDirective],\n providers: [NiceSweetAlertService],\n exports: [NiceSweetAlertDirective]\n})\nexport class NiceSweetAlertModule {\n public static forRoot(options?: NiceSweetAlertOptions): ModuleWithProviders<NiceSweetAlertModule> {\n return {\n ngModule: NiceSweetAlertModule,\n providers: [\n {\n provide: NICE_ALERT_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","import { Component, Inject, ViewEncapsulation } from \"@angular/core\";\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from \"@angular/material/snack-bar\";\nimport { NiceAlertAppearance } from \"../alert\";\n\nexport interface NiceToastData {\n title?: string;\n message?: string;\n appearance?: NiceAlertAppearance;\n type: \"info\" | \"success\" | \"warning\" | \"error\";\n}\n\n@Component({\n selector: \"nice-toast\",\n templateUrl: \"toast.template.html\",\n styleUrls: [\"toast.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class NiceToastComponent {\n constructor(\n @Inject(MAT_SNACK_BAR_DATA) public data: NiceToastData,\n private snackbarRef: MatSnackBarRef<NiceToastComponent>\n ) {}\n\n public dismiss() {\n this.snackbarRef.dismiss();\n }\n}\n","<nice-alert disableAnimation [type]=\"data.type\" [appearance]=\"data.appearance || 'outline'\" (click)=\"dismiss()\">\n <span niceAlertTitle *ngIf=\"data.title\">{{ data.title }}</span>\n <span [innerHtml]=\"data.message\" *ngIf=\"data.message\"></span>\n</nice-alert>\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_TOAST_OPTIONS = new InjectionToken(\"nice_toast_options\");\n","import { Inject, Injectable } from \"@angular/core\";\nimport { MatSnackBar, MatSnackBarConfig } from \"@angular/material/snack-bar\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NiceAlertAppearance } from \"../alert\";\nimport { NiceToastComponent } from \"./toast.component\";\nimport { NICE_TOAST_OPTIONS } from \"./toast.constant\";\n\nexport interface NiceToastOptions extends MatSnackBarConfig {\n appearance?: NiceAlertAppearance;\n successDuration?: number;\n warningDuration?: number;\n errorDuration?: number;\n infoDuration?: number;\n}\n\n@Injectable({ providedIn: \"any\" })\nexport class NiceToastService {\n constructor(\n @Inject(NICE_TOAST_OPTIONS)\n private options: NiceToastOptions,\n private snackbar: MatSnackBar,\n private translateService: TranslateService\n ) {}\n\n public success(messageKey: string, titleKey?: string, params?: object): void {\n this.showToast(\"success\", messageKey, titleKey, params);\n }\n\n public error(messageKey: string, titleKey?: string, params?: object): void {\n this.showToast(\"error\", messageKey, titleKey, params);\n }\n\n public warning(messageKey: string, titleKey?: string, params?: object): void {\n this.showToast(\"warning\", messageKey, titleKey, params);\n }\n\n public info(messageKey: string, titleKey?: string, params?: object): void {\n this.showToast(\"info\", messageKey, titleKey, params);\n }\n\n private showToast(type: string, messageKey: string, titleKey?: string, params?: object): void {\n const [message, title] = this.getTranslations(messageKey, titleKey, params);\n const duration = this.options[`${type}Duration`] ?? this.options.duration;\n this.snackbar.openFromComponent(NiceToastComponent, {\n ...this.options,\n duration,\n panelClass: [\"message-box\", type],\n data: {\n message,\n title,\n type,\n appearance: this.options.appearance\n }\n });\n }\n\n private getTranslations(message: string, title: string, params: object): [string, string] {\n const translations = [message];\n if (title) {\n translations.push(title);\n }\n\n try {\n const result = this.translateService.instant(translations, params) as { [key: string]: string };\n return [result[message], result[title]];\n } catch (e) {\n return [\"\", \"\"];\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceAlertModule } from \"../alert\";\nimport { NiceToastComponent } from \"./toast.component\";\nimport { NICE_TOAST_OPTIONS } from \"./toast.constant\";\nimport { NiceToastOptions, NiceToastService } from \"./toast.service\";\n\nconst defaultOptions: NiceToastOptions = {\n duration: 3000,\n horizontalPosition: \"end\",\n verticalPosition: \"bottom\"\n};\n\n@NgModule({\n imports: [CommonModule, MatSnackBarModule, TranslateModule, NiceAlertModule],\n declarations: [NiceToastComponent]\n})\nexport class NiceToastModule {\n public static forRoot(options?: NiceToastOptions): ModuleWithProviders<NiceToastModule> {\n return {\n ngModule: NiceToastModule,\n providers: [\n NiceToastService,\n {\n provide: NICE_TOAST_OPTIONS,\n useValue: {\n ...defaultOptions,\n ...(options ?? {})\n }\n }\n ]\n };\n }\n\n public static forFeature(options: NiceToastOptions): ModuleWithProviders<NiceToastModule> {\n return {\n ngModule: NiceToastModule,\n providers: [\n NiceToastService,\n {\n provide: NICE_TOAST_OPTIONS,\n useValue: {\n ...defaultOptions,\n ...options\n }\n }\n ]\n };\n }\n}\n","import { MonoTypeOperatorFunction, tap } from \"rxjs\";\nimport { TapObserver } from \"rxjs/internal/operators/tap\";\nimport { NiceToastService } from \"../toast.service\";\n\nexport interface ShowToastOperatorOptionsWithoutTitle {\n messageKey: string;\n titleKey?: string;\n params?: object;\n\n useObserver?: keyof TapObserver<any>;\n}\n\nexport interface ShowToastOperatorOptionsWithoutMessage {\n titleKey: string;\n messageKey?: string;\n params?: object;\n\n useObserver?: keyof TapObserver<any>;\n}\n\nexport type ShowToastOperatorOptions = ShowToastOperatorOptionsWithoutTitle | ShowToastOperatorOptionsWithoutMessage;\n\nexport function showSuccessToast<T>(\n loadingToastService: NiceToastService,\n options: ShowToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n const observer = options.useObserver ?? \"next\";\n return source => source.pipe(\n tap({\n [observer]: () => loadingToastService.success(options.messageKey, options.titleKey, options.params)\n })\n );\n}\n\nexport function showErrorToast<T>(\n loadingToastService: NiceToastService,\n options: ShowToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n const observer = options.useObserver ?? \"error\";\n return source => source.pipe(\n tap({\n [observer]: () => loadingToastService.error(options.messageKey, options.titleKey, options.params)\n })\n );\n}\n\nexport function showInfoToast<T>(\n loadingToastService: NiceToastService,\n options: ShowToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n const observer = options.useObserver ?? \"next\";\n return source => source.pipe(\n tap({\n [observer]: () => loadingToastService.info(options.messageKey, options.titleKey, options.params)\n })\n );\n}\n\nexport function showWarningToast<T>(\n loadingToastService: NiceToastService,\n options: ShowToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n const observer = options.useObserver ?? \"error\";\n return source => source.pipe(\n tap({\n [observer]: () => loadingToastService.warning(options.messageKey, options.titleKey, options.params)\n })\n );\n}\n","import { MonoTypeOperatorFunction, tap } from \"rxjs\";\nimport { NiceToastService } from \"../toast.service\";\n\ninterface ShowToastOperatorCommonKeysOptionsWithoutTitle {\n messageKey: string;\n titleKey?: string;\n params?: object;\n}\n\ninterface ShowToastOperatorCommonKeysOptionsWithoutMessage {\n titleKey: string;\n messageKey?: string;\n params?: object;\n}\n\ninterface ShowToastOperatorOptionsWithoutMessage {\n title: { success: string; error: string; };\n message?: { success: string; error: string; };\n params?: object;\n}\n\ninterface ShowToastOperatorOptionsWithoutTitle {\n message: { success: string; error: string; };\n title?: { success: string; error: string; };\n params?: object;\n}\n\nexport type ShowSuccessOrErrorToastOperatorOptions\n = ShowToastOperatorCommonKeysOptionsWithoutTitle\n | ShowToastOperatorCommonKeysOptionsWithoutMessage\n | ShowToastOperatorOptionsWithoutMessage\n | ShowToastOperatorOptionsWithoutTitle;\n\nexport function showSuccessOrErrorToast<T>(\n loadingToastService: NiceToastService,\n options: ShowSuccessOrErrorToastOperatorOptions\n): MonoTypeOperatorFunction<T> {\n return source => source.pipe(\n tap({\n next: () => {\n const [message, title] = transformOptions(options, \"success\");\n loadingToastService.success(message, title, options.params);\n },\n error: () => {\n const [message, title] = transformOptions(options, \"error\");\n loadingToastService.error(message, title, options.params);\n }\n })\n );\n}\n\nfunction transformOptions(options: ShowSuccessOrErrorToastOperatorOptions, type: \"success\" | \"error\"): [string, string] {\n const commonOptions = options as (ShowToastOperatorCommonKeysOptionsWithoutTitle | ShowToastOperatorCommonKeysOptionsWithoutMessage);\n if (commonOptions.messageKey || commonOptions.titleKey) {\n return [commonOptions.messageKey ? `${commonOptions.messageKey}.${type}` : \"\", commonOptions.titleKey ? `${commonOptions.titleKey}.${type}` : \"\"];\n }\n\n const fullOptions = options as (ShowToastOperatorOptionsWithoutMessage | ShowToastOperatorOptionsWithoutTitle);\n return [fullOptions.message?.[type] ?? \"\", fullOptions.title?.[type] ?? \"\"];\n}\n","import { Component, Input, TemplateRef, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"nice-toggle-button\",\n template: `<ng-template><ng-content></ng-content></ng-template>`,\n standalone: false\n})\nexport class ToggleButtonComponent {\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n\n @Input()\n public value: string;\n}\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n Output,\n QueryList,\n ViewEncapsulation\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { ThemePalette } from \"@angular/material/core\";\nimport { ToggleButtonComponent } from \"./toggle-button.component\";\n\nexport type ToggleButtonGroupDataType = any | any[];\n\n@Component({\n selector: \"nice-toggle-button-group\",\n templateUrl: \"toggle-button-group.template.html\",\n styleUrls: [\"toggle-button-group.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButtonGroupComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class ToggleButtonGroupComponent {\n private _multiple = false;\n\n @ContentChildren(ToggleButtonComponent)\n public toggleButtons: QueryList<ToggleButtonComponent>;\n\n @Input()\n public selected: ToggleButtonGroupDataType;\n\n @Input()\n public color: ThemePalette;\n\n @Output()\n public selectedChange = new EventEmitter<ToggleButtonGroupDataType>();\n\n public defaultColor: ThemePalette = \"accent\";\n\n @Input()\n public set multiple(multiple: boolean) {\n if (multiple === this._multiple) {\n return;\n }\n\n if (multiple) {\n if (this.selected) {\n this.selected = [this.selected];\n } else {\n this.selected = [];\n }\n } else {\n if (this.selected) {\n this.selected = this.selected[0];\n }\n }\n this._multiple = multiple;\n }\n\n private onTouched: () => void;\n private onChange: (selected: ToggleButtonGroupDataType) => void;\n\n @HostListener(\"blur\")\n public onBlur(): void {\n this.onTouched();\n }\n\n public writeValue(value: ToggleButtonGroupDataType): void {\n if (!value) {\n return;\n }\n\n this.selected = value;\n }\n\n public registerOnChange(fn: (color: string) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public onSelect(value: any): void {\n if (this._multiple) {\n if (this.selected) {\n const index = this.selected.findIndex(x => x === value);\n if (index < 0) {\n this.selected.push(value);\n } else {\n this.selected.splice(index, 1);\n }\n } else {\n this.selected = [value];\n }\n } else {\n this.selected = value;\n }\n this.onChange?.(this.selected);\n this.selectedChange?.emit(this.selected);\n }\n\n public conditionalColorObj(value: any): any {\n const colorClass = this.color ?? this.defaultColor;\n const isActive = this._multiple ? this.selected.includes(value) : this.selected === value;\n\n const obj = {} as any;\n obj.selected = isActive;\n obj[`bg-${colorClass}`] = isActive;\n obj[`bg-selected-${colorClass}`] = isActive;\n obj[\"left-selected\"] = this.isLeftValueSelected(value);\n obj[\"right-selected\"] = this.isRightValueSelected(value);\n\n return obj;\n }\n\n private isLeftValueSelected(value: any): boolean {\n if (!this._multiple || !this.selected.includes(value)) {\n return false;\n }\n\n const values = this.toggleButtons.map(btn => btn.value);\n const index = values.indexOf(value);\n\n if (index <= 0) {\n return false;\n }\n\n return this.selected.includes(values[index - 1]);\n }\n\n private isRightValueSelected(value: any): boolean {\n if (!this._multiple) {\n return false;\n }\n\n const values = this.toggleButtons.map(btn => btn.value);\n const index = values.indexOf(value);\n\n if (index === -1 || index === values.length - 1) {\n return false;\n }\n\n return this.selected.includes(values[index + 1]);\n }\n}\n","<div class=\"toggle-button-group-wrapper\">\n <div class=\"toggle-button-group flex flex-row items-center\">\n <div\n class=\"toggle-button\"\n [ngClass]=\"conditionalColorObj(btn.value)\"\n *ngFor=\"let btn of toggleButtons\"\n >\n <div matRipple class=\"toggle-button-inner flex place-content-center items-center\" (click)=\"onSelect(btn.value)\">\n <ng-container *ngTemplateOutlet=\"btn.content\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { MatRippleModule } from \"@angular/material/core\";\n\nimport { ToggleButtonGroupComponent } from \"./toggle-button-group.component\";\nimport { ToggleButtonComponent } from \"./toggle-button.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n MatRippleModule\n ],\n declarations: [ToggleButtonComponent, ToggleButtonGroupComponent],\n providers: [],\n exports: [ToggleButtonComponent, ToggleButtonGroupComponent]\n})\nexport class NiceToggleButtonGroupModule {}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NiceTranslationFormService {\n private _languages$ = new BehaviorSubject<string[]>([]);\n private _requiredLanguages$ = new BehaviorSubject<string[]>([]);\n\n public get languages$(): Observable<string[]> {\n return this._languages$.asObservable();\n }\n\n public get languages(): string[] {\n return this._languages$.getValue();\n }\n\n public get requiredLanguages$(): Observable<string[]> {\n return this._requiredLanguages$.asObservable();\n }\n\n public get requiredLanguages(): string[] {\n return this._requiredLanguages$.value;\n }\n\n public get hasLanguages$(): Observable<boolean> {\n return this._languages$.asObservable().pipe(map((languages) => !!languages?.length));\n }\n\n public get hasLanguages(): boolean {\n return !!this.languages?.length;\n }\n\n public setLanguages(languages?: string[]): void {\n this._languages$.next(languages ?? []);\n }\n\n public setRequiredLanguages(languages?: string[]): void {\n if (!languages?.length) {\n this._requiredLanguages$.next([]);\n }\n\n const languagesValues = this.languages;\n const unregisteredLanguages: string[] = languages?.filter(\n (language) => !languagesValues.includes(language)\n );\n\n if (unregisteredLanguages?.length) {\n throw new Error(`You provided languages that are not configured\n > Configured languages: [${languagesValues}]\n > Missing languages provided: [${unregisteredLanguages}]\n `);\n }\n\n if (languages.length > languagesValues.length) {\n this._requiredLanguages$.next(languagesValues);\n } else {\n this._requiredLanguages$.next(languages);\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n} from \"@angular/core\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceTranslationFormService } from \"../providers/nice-translation-form.service\";\n\n@Directive({\n selector: \"[niceTranslationContext]\",\n standalone: false\n})\nexport class TranslationContextDirective implements OnInit, OnDestroy {\n @Output()\n public activeLanguageChange = new EventEmitter<string>();\n\n public activeLanguage$ = new BehaviorSubject<string>(undefined);\n\n private _unsubscribeAll$ = new Subject<void>();\n\n constructor(private translationFormService: NiceTranslationFormService) {}\n\n public ngOnInit(): void {\n this.translationFormService.languages$\n .pipe(\n takeUntil(this._unsubscribeAll$),\n filter((languages) => !!languages?.length),\n filter((languages) => !languages.includes(this.activeLanguage$.value))\n )\n .subscribe((languages) => {\n this.activeLanguage$.next(languages[0]);\n });\n\n this.activeLanguage$\n .pipe(takeUntil(this._unsubscribeAll$))\n .subscribe((activeLanguage) => {\n this.activeLanguageChange.emit(activeLanguage);\n });\n }\n\n public ngOnDestroy(): void {\n this._unsubscribeAll$.next();\n this._unsubscribeAll$.complete();\n }\n\n public updateLanguage(language: string): void {\n this.activeLanguage$.next(language);\n }\n\n public reset(): void {\n if (!this.translationFormService.languages.length) {\n return;\n }\n\n this.activeLanguage$.next(this.translationFormService.languages[0]);\n }\n}\n","import { Component } from \"@angular/core\";\nimport { MatButtonToggleChange } from \"@angular/material/button-toggle\";\nimport { TranslationContextDirective } from \"../directives/translation-context.directive\";\nimport { NiceTranslationFormService } from \"../providers/nice-translation-form.service\";\n\n@Component({\n selector: \"nice-translation-toggle\",\n templateUrl: \"translation-toggle.template.html\",\n standalone: false\n})\nexport class TranslationToggleComponent {\n public languages$ = this.translationFormService.languages$;\n public activeLanguage$ = this.context.activeLanguage$;\n\n constructor(\n private context: TranslationContextDirective,\n private translationFormService: NiceTranslationFormService\n ) {}\n\n public onChange($event: MatButtonToggleChange) {\n this.context.updateLanguage($event.value);\n }\n}\n","<mat-button-toggle-group\n *ngIf=\"(languages$ | async)?.length > 1\"\n (change)=\"onChange($event)\"\n [value]=\"activeLanguage$ | async\"\n>\n <mat-button-toggle *ngFor=\"let language of languages$ | async\" [value]=\"language\">\n {{ language | uppercase }}\n </mat-button-toggle>\n</mat-button-toggle-group>\n","import { coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from \"@angular/core\";\nimport {\n AbstractControlDirective,\n ControlContainer,\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NgControl,\n Validators,\n} from \"@angular/forms\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport * as uuid from \"uuid\";\nimport { TranslationContextDirective } from \"../directives/translation-context.directive\";\nimport { NiceTranslationFormService } from \"../providers/nice-translation-form.service\";\n\n@Component({\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport abstract class TranslationFormComponent\n implements\n OnInit,\n OnDestroy,\n MatFormFieldControl<string>,\n ControlValueAccessor\n{\n @HostBinding(\"class\")\n public get classList(): any {\n return {\n \"w-full\": true\n };\n }\n\n @HostBinding(\"class.floating\")\n public get shouldLabelFloat(): boolean {\n return this.floating || !this.empty || this.focused;\n }\n\n @Input()\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n public get required(): boolean {\n return (\n this._required ??\n this.ngControl?.control?.hasValidator(Validators.required) ??\n false\n );\n }\n\n @Input()\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n this.handleDisabledState();\n this.stateChanges.next();\n }\n\n @Input()\n public set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n this.stateChanges.next();\n }\n\n public get placeholder(): string {\n return this._placeholder;\n }\n\n public set value(value: any) {\n if (value === this._value) {\n return;\n }\n\n this._value = value;\n this.propagate(this._value);\n }\n\n public get value(): any {\n return this._value;\n }\n\n public get empty(): boolean {\n const emptyControlValue =\n !this.currentControl?.value || !this.currentControl.value.length;\n\n const emptyValue =\n !this._value ||\n (typeof this._value === \"string\" && !this._value.length);\n\n return emptyControlValue && emptyValue;\n }\n\n public get errorState(): boolean {\n return this.ngControl\n ? this.ngControl.touched && this.ngControl.invalid\n : false;\n }\n\n constructor(\n private container: ControlContainer,\n private context: TranslationContextDirective,\n private service: NiceTranslationFormService,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n @Input()\n public floating = true;\n\n @Input()\n public maxLength = 524288; // The maximum number of characters allowed in the <input> element. Default value is 524288\n\n @HostBinding()\n public id: string = uuid.v4();\n\n @HostBinding(\"attr.aria-describedby\")\n public describedBy = \"\";\n\n public formGroup: FormGroup;\n public currentControl?: FormControl;\n public stateChanges = new Subject<void>();\n public ngControl: AbstractControlDirective | NgControl;\n public focused: boolean;\n public controlType = \"translationForm\";\n\n private _unsubscribeAll$ = new Subject<void>();\n private _required: boolean;\n private _disabled = false;\n private _placeholder: string;\n private _value: any;\n\n public readonly autofilled: boolean;\n public readonly userAriaDescribedBy: string;\n\n public propagate: (value: string) => void = () => {};\n\n public onContainerClick(event: MouseEvent): void {}\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(\" \");\n }\n\n public registerOnChange(fn: any): void {\n this.propagate = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n public writeValue(value: any): void {\n this._value = value;\n }\n\n public ngOnInit(): void {\n this.formGroup = this.container.control as FormGroup;\n\n this.service.languages$\n .pipe(takeUntil(this._unsubscribeAll$))\n .subscribe((languages) => {\n if (!languages?.length) {\n return;\n }\n\n this.setupFormControls(languages);\n });\n\n this.context.activeLanguage$\n .pipe(takeUntil(this._unsubscribeAll$))\n .subscribe((activeLanguage) => {\n this.setLanguage(activeLanguage);\n });\n }\n\n public ngOnDestroy(): void {\n this._unsubscribeAll$.next();\n this._unsubscribeAll$.complete();\n }\n\n public setLanguage(language: string): void {\n this.currentControl = this.formGroup.get(language) as FormControl;\n this.handleDisabledState();\n this.changeDetectorRef.markForCheck();\n }\n\n private setupFormControls(languages: string[]): void {\n for (const language of languages) {\n if (!this.formGroup.controls[language]) {\n this.formGroup.addControl(language, new FormControl(), {\n emitEvent: false,\n });\n }\n }\n\n const controlToRemove = Object.keys(this.formGroup.controls).filter(\n (key) => !languages.includes(key)\n );\n\n for (const key of controlToRemove) {\n this.formGroup.removeControl(key, { emitEvent: false });\n }\n\n this.currentControl = this.formGroup.get(languages[0]) as FormControl;\n this.handleDisabledState();\n }\n\n private handleDisabledState(): void {\n if (this._disabled) {\n this.currentControl?.disable({ emitEvent: false });\n } else {\n this.currentControl?.enable({ emitEvent: false });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n} from \"@angular/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { TranslationFormComponent } from \"../translation-form.component\";\n\n@Component({\n selector: \"nice-translation-form-textarea\",\n templateUrl: \"translation-form-textarea.template.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: TranslationFormTextareaComponent,\n },\n ],\n standalone: false\n})\nexport class TranslationFormTextareaComponent extends TranslationFormComponent {\n @Input()\n public resizable = true;\n\n @Input()\n public rows = 2;\n\n @Input()\n public cols = 20;\n}\n","<textarea\n *ngIf=\"currentControl\"\n matInput\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n [class.resize-none]=\"!resizable\"\n></textarea>\n","import {\n ChangeDetectionStrategy,\n Component,\n} from \"@angular/core\";\nimport { MatFormFieldControl } from \"@angular/material/form-field\";\nimport { TranslationFormComponent } from \"../translation-form.component\";\n\n@Component({\n selector: \"nice-translation-form-textfield\",\n templateUrl: \"translation-form-textfield.template.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: TranslationFormTextfieldComponent,\n },\n ],\n standalone: false\n})\nexport class TranslationFormTextfieldComponent extends TranslationFormComponent {}\n","<input\n matInput\n *ngIf=\"currentControl\"\n [formControl]=\"currentControl\"\n [placeholder]=\"placeholder\"\n [maxlength]=\"maxLength\"\n/>\n","import { Injectable } from \"@angular/core\";\nimport { FormGroup, ValidationErrors } from \"@angular/forms\";\nimport { AsyncValidator, registerAsyncValidatorDecorator, } from \"@recursyve/ngx-form-generator\";\nimport { Observable } from \"rxjs\";\nimport { map, take } from \"rxjs/operators\";\nimport { NiceTranslationFormService } from \"../providers/nice-translation-form.service\";\n\nexport function RequireForLanguages() {\n return registerAsyncValidatorDecorator({\n name: \"RequireForLanguages\",\n });\n}\n\n@Injectable()\nexport class RequireForLanguagesValidator extends AsyncValidator {\n public name = \"RequireForLanguages\";\n\n constructor(private service: NiceTranslationFormService) {\n super();\n }\n\n public validate(formGroup: FormGroup): Observable<ValidationErrors | null> {\n return this.service.requiredLanguages$.pipe(\n take(1),\n map((requiredLanguages) => {\n if (!requiredLanguages.length) {\n return null;\n }\n\n const missingLanguages: string[] = [];\n for (const requiredLanguage of requiredLanguages) {\n const control = formGroup.get(requiredLanguage);\n\n if (typeof control?.value === \"string\" && control?.value.trim().length) {\n continue;\n }\n\n missingLanguages.push(requiredLanguage);\n }\n\n if (missingLanguages?.length) {\n return { languageRequired: { missingLanguages } };\n }\n\n return null;\n })\n );\n }\n}\n","import { AsyncPipe, NgForOf, NgIf, UpperCasePipe } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatButtonToggleModule } from \"@angular/material/button-toggle\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { NGX_FORM_GENERATOR_ASYNC_VALIDATORS } from \"@recursyve/ngx-form-generator\";\nimport { TranslationContextDirective } from \"../directives/translation-context.directive\";\nimport { TranslationToggleComponent } from \"../toggle/translation-toggle.component\";\nimport { TranslationFormTextareaComponent } from \"./textarea/translation-form-textarea.component\";\n\nimport { TranslationFormTextfieldComponent } from \"./textfield/translation-form-textfield.component\";\nimport { RequireForLanguagesValidator } from \"../validators/require-for-languages.validator\";\n\n@NgModule({\n imports: [\n MatButtonToggleModule,\n MatInputModule,\n ReactiveFormsModule,\n NgForOf,\n NgIf,\n AsyncPipe,\n UpperCasePipe,\n ],\n declarations: [\n TranslationFormTextfieldComponent,\n TranslationFormTextareaComponent,\n TranslationToggleComponent,\n TranslationContextDirective,\n ],\n providers: [],\n exports: [\n TranslationFormTextfieldComponent,\n TranslationFormTextareaComponent,\n TranslationToggleComponent,\n TranslationContextDirective,\n ],\n})\nexport class NiceTranslationFormModule {\n public static forRoot(): ModuleWithProviders<NiceTranslationFormModule> {\n return {\n ngModule: NiceTranslationFormModule,\n providers: [\n {\n provide: NGX_FORM_GENERATOR_ASYNC_VALIDATORS,\n useClass: RequireForLanguagesValidator,\n multi: true,\n },\n ]\n };\n }\n}\n","import { DynamicGroup } from \"@recursyve/ngx-form-generator\";\n\n// tslint:disable-next-line:variable-name\nexport const TranslationFormGroup = () => DynamicGroup();\n","export class TranslationForm {\n constructor(values?: { [language: string]: string; }) {\n Object.assign(this, values ?? {});\n }\n}\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\n\n@Directive({\n selector: \"[niceAutofocus]\",\n standalone: false\n})\nexport class NiceAutofocusDirective implements OnInit {\n constructor(private elem: ElementRef) {}\n\n public ngOnInit(): void {\n this.elem.nativeElement.focus?.();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceAutofocusDirective } from \"./autofocus.directive\";\n\n@NgModule({\n declarations: [NiceAutofocusDirective],\n exports: [NiceAutofocusDirective]\n})\nexport class NiceAutofocusDirectiveModule {}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\n@Directive({\n selector: \"textarea[niceAutogrow]\",\n exportAs: \"niceAutogrow\",\n standalone: false\n})\nexport class NiceAutogrowDirective implements OnChanges, OnInit, OnDestroy {\n private _height = \"auto\";\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n // tslint:disable-next-line:no-input-rename\n @Input(\"niceAutogrowVerticalPadding\")\n public padding = 8;\n\n @HostBinding(\"rows\")\n private _rows = 1;\n\n /**\n * Constructor\n */\n constructor(\n private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Accessors\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Host binding for component inline styles\n */\n @HostBinding(\"style\")\n public get styleList(): any {\n return {\n \"height\": this._height,\n \"overflow\": \"hidden\",\n \"resize\": \"none\"\n };\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On changes\n */\n public ngOnChanges(changes: SimpleChanges): void {\n // Padding\n if (\"niceAutogrowVerticalPadding\" in changes) {\n // Resize\n this._resize();\n }\n }\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Resize for the first time\n this._resize();\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Private methods\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * Resize on 'input' and 'ngModelChange' events\n */\n @HostListener(\"input\")\n @HostListener(\"ngModelChange\")\n private _resize(): void {\n // This doesn't need to trigger Angular's change detection by itself\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n // Set the height to 'auto' so we can correctly read the scrollHeight\n this._height = \"auto\";\n\n // Detect the changes so the height is applied\n this._changeDetectorRef.detectChanges();\n\n // Get the scrollHeight and subtract the vertical padding\n this._height = `${this._elementRef.nativeElement.scrollHeight - this.padding}px`;\n\n // Detect the changes one more time to apply the final height\n this._changeDetectorRef.detectChanges();\n });\n });\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceAutogrowDirective } from \"./autogrow.directive\";\n\n@NgModule({\n declarations: [\n NiceAutogrowDirective\n ],\n exports: [\n NiceAutogrowDirective\n ]\n})\nexport class NiceAutogrowModule {}\n","import { Directive, ElementRef, EventEmitter, OnDestroy, OnInit, Output, } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceAsyncTypeaheadComponent } from \"../../components\";\n\n@Directive({\n selector: \"[niceChipAsyncTypeahead]\",\n exportAs: \"niceChipAsyncTypeahead\",\n standalone: false\n})\nexport class NiceChipAsyncTypeaheadDirective implements OnInit, OnDestroy {\n @Output()\n public niceChipAsyncTypeaheadTokenEnd = new EventEmitter<any>();\n\n private unsubscribeAll$ = new Subject();\n\n constructor(\n private typeahead: NiceAsyncTypeaheadComponent,\n private elementRef: ElementRef<HTMLElement>\n ) {\n }\n\n public ngOnInit(): void {\n this.typeahead.selected\n .pipe(\n takeUntil(this.unsubscribeAll$),\n filter((selected) => selected)\n )\n .subscribe((_) => {\n this.niceChipAsyncTypeaheadTokenEnd.emit(this.typeahead.getActive());\n this.typeahead.writeValue(null);\n });\n\n this.elementRef.nativeElement.classList.add(\"nice-chip-async-typeahead\");\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next(null);\n this.unsubscribeAll$.complete();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceChipAsyncTypeaheadDirective } from \"./chip-async-typeahead.directive\";\n\n@NgModule({\n declarations: [NiceChipAsyncTypeaheadDirective],\n exports: [NiceChipAsyncTypeaheadDirective]\n})\nexport class NiceChipAsyncTypeaheadModule {}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[niceChipListItemLabel]\",\n standalone: false\n})\nexport class ChipListItemLabelDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_CHIP_LIST_OPTIONS = new InjectionToken(\"nice_chip_list_options\");\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n TemplateRef\n} from \"@angular/core\";\nimport { ThemePalette } from \"@angular/material/core\";\nimport { Observable } from \"rxjs\";\nimport { NICE_CHIP_LIST_OPTIONS } from \"../chip-list.constant\";\nimport { ChipListItemLabelDirective } from \"./chip-list-item-label.directive\";\n\nexport type NiceChipListActionIcon = { matIcon: string; svgIcon?: string; } | { matIcon?: string; svgIcon: string; };\n\nexport interface NiceChipListOptions {\n closeButtonIcon: NiceChipListActionIcon;\n}\n\n@Component({\n selector: \"nice-chip-list-items\",\n templateUrl: \"./chip-list-items.template.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NiceChipListItemsComponent {\n @ContentChild(ChipListItemLabelDirective, { read: TemplateRef })\n public itemLabel: TemplateRef<any>;\n\n @Input()\n public color: ThemePalette = \"primary\";\n\n @Output()\n public removeChip = new EventEmitter<number>();\n\n @Input()\n public items$: Observable<any[]>;\n\n public defaultColor: ThemePalette = \"primary\";\n\n constructor(@Optional() @Inject(NICE_CHIP_LIST_OPTIONS) public readonly options: NiceChipListOptions) {\n if (!this.options) {\n this.options = {\n closeButtonIcon: {\n matIcon: \"cancel\"\n }\n };\n }\n }\n\n public remove(index: number): void {\n this.removeChip.next(index);\n }\n}\n","<div class=\"nice-items-row\" *ngIf=\"(items$ | async)?.length\">\n <div\n class=\"nice-chip\"\n *ngFor=\"let value of items$ | async; let i = index\"\n [ngClass]=\"color\"\n >\n <span *ngIf=\"!itemLabel\">{{ value }}</span>\n <ng-container *ngIf=\"itemLabel\">\n <ng-container *ngTemplateOutlet=\"itemLabel; context: { $implicit: value }\"></ng-container>\n </ng-container>\n <button (click)=\"remove(i)\">\n <mat-icon *ngIf=\"options.closeButtonIcon.matIcon\">\n {{ options.closeButtonIcon.matIcon }}\n </mat-icon>\n <mat-icon\n *ngIf=\"options.closeButtonIcon.svgIcon\"\n [svgIcon]=\"options.closeButtonIcon.svgIcon\"\n ></mat-icon>\n </button>\n </div>\n</div>\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnChanges, OnDestroy,\n OnInit,\n Optional, Self,\n SimpleChange,\n SimpleChanges\n} from \"@angular/core\";\nimport { ControlValueAccessor, NgControl } from \"@angular/forms\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\nimport { NiceAsyncTypeaheadComponent, NiceTypeaheadNewValue } from \"../../components\";\nimport { KeyboardCodes } from \"../../utils\";\nimport { NiceChipListItemsComponent } from \"./chip-list-items/chip-list-items.component\";\n\n@Directive({\n selector: \"input[niceChipList], nice-async-typeahead[niceChipList]\",\n standalone: false\n})\nexport class NiceChipListDirective implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n @Input()\n public withItemList: NiceChipListItemsComponent;\n\n @Input()\n public reloadOnSelected = true;\n\n @Input()\n public separatorKeyboardCodes = [KeyboardCodes.Enter];\n\n private unsubscribeAll$ = new Subject<void>();\n private values$ = new BehaviorSubject([]);\n\n private _values: any[] = [];\n private propagateChanges = (value: any[]) => {};\n\n public get values(): any[] {\n return this._values;\n }\n\n constructor(\n @Optional() private asyncTypeahead: NiceAsyncTypeaheadComponent,\n @Optional() @Self() private ngControl: NgControl,\n private elementRef: ElementRef<HTMLInputElement>\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeyDown(event: KeyboardEvent): void {\n if (this.asyncTypeahead) {\n return;\n }\n\n if (this.separatorKeyboardCodes.includes(event.code as KeyboardCodes)) {\n if (!this.elementRef.nativeElement.validity.valid) {\n return;\n }\n\n this.addValue(this.elementRef.nativeElement.value);\n this.elementRef.nativeElement.value = \"\";\n event.preventDefault();\n return;\n }\n }\n\n public ngOnInit(): void {\n if (this.asyncTypeahead) {\n this.setupAsyncTypeahead();\n }\n\n const parentElement = this.elementRef.nativeElement.parentElement;\n if (\n parentElement.classList.contains(\"mat-mdc-form-field-infix\") ||\n parentElement.classList.contains(\"mat-form-field-infix\")\n ) {\n parentElement.style.alignItems = \"flex-start\";\n parentElement.style.flexDirection = \"column-reverse\";\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"withItemList\" in changes) {\n this.withItemList.items$ = this.values$;\n this.withItemList.removeChip.pipe(takeUntil(this.unsubscribeAll$)).subscribe(x => {\n this._values.splice(x, 1);\n\n this.updateTypeaheadSearchOptions();\n\n this.propagateChanges(this._values);\n this.values$.next(this._values);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n public writeValue(obj: any[]): void {\n if (obj && Array.isArray(obj)) {\n this._values = [...obj];\n } else {\n this._values = [];\n }\n\n this.updateTypeaheadSearchOptions();\n this.values$.next(this._values);\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChanges = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n private setupAsyncTypeahead(): void {\n this.asyncTypeahead.selected\n .pipe(\n takeUntil(this.unsubscribeAll$),\n filter((selected) => selected)\n )\n .subscribe((value) => {\n if (value instanceof NiceTypeaheadNewValue) {\n this.addValue(value);\n } else {\n this.addValue(this.asyncTypeahead.getActive());\n }\n\n this.asyncTypeahead.searchOptions = { ...(this.asyncTypeahead.searchOptions ?? {}), ignore: this._values ?? [] };\n this.asyncTypeahead.onRemove(null, this.reloadOnSelected);\n });\n }\n\n private addValue(value: any): void {\n if (this._values.includes(value)) {\n return;\n }\n\n if (value instanceof NiceTypeaheadNewValue) {\n if (this._values.some(x => x instanceof NiceTypeaheadNewValue && x.$new === value.$new)) {\n return;\n }\n }\n\n this._values?.push(value);\n this.propagateChanges(this._values);\n this.values$.next(this._values);\n }\n\n private updateTypeaheadSearchOptions(): void {\n if (!this.asyncTypeahead) {\n return;\n }\n\n const searchOptions = this.asyncTypeahead.searchOptions;\n this.asyncTypeahead.searchOptions = { ...(searchOptions ?? {}), ignore: this._values ?? [] };\n this.asyncTypeahead.ngOnChanges({\n searchOptions: new SimpleChange(searchOptions, this.asyncTypeahead.searchOptions, false)\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { ChipListItemLabelDirective } from \"./chip-list-items/chip-list-item-label.directive\";\nimport { NiceChipListItemsComponent, NiceChipListOptions } from \"./chip-list-items/chip-list-items.component\";\nimport { NICE_CHIP_LIST_OPTIONS } from \"./chip-list.constant\";\n\nimport { NiceChipListDirective } from \"./chip-list.directive\";\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [NiceChipListDirective, NiceChipListItemsComponent, ChipListItemLabelDirective],\n exports: [NiceChipListDirective, NiceChipListItemsComponent, ChipListItemLabelDirective]\n})\nexport class NiceChipListDirectiveModule {\n public static forRoot(options?: NiceChipListOptions): ModuleWithProviders<NiceChipListDirectiveModule> {\n if (!options) {\n options = {\n closeButtonIcon: {\n matIcon: \"cancel\"\n }\n };\n }\n return {\n ngModule: NiceChipListDirectiveModule,\n providers: [\n {\n provide: NICE_CHIP_LIST_OPTIONS,\n useValue: options\n }\n ]\n };\n }\n}\n","import { CdkDragDrop, CdkDropList, moveItemInArray } from \"@angular/cdk/drag-drop\";\nimport { Directive, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Optional, Output, SimpleChanges } from \"@angular/core\";\nimport { FormArray, FormArrayName } from \"@angular/forms\";\nimport { pairwise, startWith, Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { LexoRankUtils } from \"../../utils/lexorank.utils\";\n\n@Directive({\n selector: \"[cdkDropList][niceDraggableList]\",\n standalone: false\n})\nexport class NiceDraggableListDirective<T> implements OnInit, OnDestroy, OnChanges {\n @Input()\n public items: T[];\n\n @Input()\n public rankProperty = \"rank\";\n\n @Output()\n public itemsUpdated = new EventEmitter<T[]>();\n\n @Output()\n public itemRankUpdated = new EventEmitter<T>();\n\n public sortedItems: T[] = [];\n public formArray: FormArray;\n\n private unsubscribeAll$ = new Subject<void>();\n\n constructor(@Optional() private formArrayName: FormArrayName, private cdkDropList: CdkDropList) {}\n\n public ngOnInit(): void {\n if (this.formArrayName) {\n this.formArray = this.formArrayName.control;\n this.formArray.valueChanges.pipe(\n takeUntil(this.unsubscribeAll$),\n startWith(this.formArray.getRawValue()),\n map(() => this.formArray.getRawValue()),\n pairwise()\n ).subscribe(([previous, current]) => {\n if (previous.length !== current.length) {\n this.sortItems(current);\n }\n });\n\n this.sortItems(this.formArray.getRawValue());\n }\n\n this.cdkDropList.dropped.pipe(takeUntil(this.unsubscribeAll$)).subscribe((event) => this.drop(event));\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"items\" in changes && this.items) {\n this.sortItems(this.items);\n }\n }\n\n public drop(event: CdkDragDrop<any, any>): void {\n if (event.previousContainer === event.container) {\n if (event.previousIndex === event.currentIndex) {\n return;\n }\n\n event.item.data[this.rankProperty] = this.getNextRank(event);\n this.sortItems(this.sortedItems);\n this.itemsUpdated.next(this.sortedItems);\n this.itemRankUpdated.next(event.item.data);\n\n if (this.formArray) {\n this.formArray.get([event.previousIndex, this.rankProperty])?.patchValue(event.item.data[this.rankProperty]);\n moveItemInArray(this.formArray.controls, event.previousIndex, event.currentIndex);\n }\n } else {\n // TODO: Handle container change\n }\n }\n\n private sortItems(items: any[]): void {\n if (items.length && items.some((item) => !item[this.rankProperty])) {\n throw new Error(`All items must have a ${this.rankProperty}`);\n }\n\n this.sortedItems = [...items]\n .map(item => ({...item}))\n .sort((itemA, itemB) => LexoRankUtils.compareStringFn(itemA[this.rankProperty], itemB[this.rankProperty]));\n this.cdkDropList.data = this.sortedItems;\n }\n\n private getNextRank(event: CdkDragDrop<any, any>): string {\n const fromIndex = event.previousIndex;\n const toIndex = event.currentIndex;\n\n const itemAfter = this.sortedItems[fromIndex > toIndex ? toIndex : toIndex + 1];\n const itemBefore = this.sortedItems[fromIndex > toIndex ? toIndex - 1 : toIndex];\n return LexoRankUtils.getNewRank(itemAfter?.[this.rankProperty], itemBefore?.[this.rankProperty]);\n }\n}\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { NgModule } from \"@angular/core\";\n\nimport { NiceDraggableListDirective } from \"./draggable-list.directive\";\n\n@NgModule({\n imports: [DragDropModule],\n declarations: [NiceDraggableListDirective],\n exports: [NiceDraggableListDirective],\n})\nexport class NiceDraggableListModule {}\n","import { Directive, ElementRef, HostListener, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\n\n@Directive({\n selector: \"img[niceImageErrorPlaceholder]\",\n standalone: false\n})\nexport class NiceImageErrorPlaceholderDirective {\n @Input()\n public fallback?: TemplateRef<any>;\n\n constructor(private elementRef: ElementRef, private viewContainerRef: ViewContainerRef) {}\n\n @HostListener(\"error\")\n public onError(): void {\n this.elementRef.nativeElement.style.display = \"none\";\n if (this.fallback) {\n this.viewContainerRef.createEmbeddedView(this.fallback);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceImageErrorPlaceholderDirective } from \"./image-error-placeholder.directive\";\n\n@NgModule({\n declarations: [NiceImageErrorPlaceholderDirective],\n exports: [NiceImageErrorPlaceholderDirective]\n})\nexport class NiceImageErrorPlaceholderDirectiveModule {}\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\n\n// tslint:disable-next-line:directive-selector\n@Directive({\n selector: \"[keep-material-style]\",\n standalone: false\n})\nexport class NiceMaterialStyleDirective implements OnInit {\n constructor(private element: ElementRef) {}\n\n public ngOnInit(): void {\n (this.element.nativeElement as HTMLElement).classList.add(\"keep-material-style\");\n }\n}\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\n\n// tslint:disable-next-line:directive-selector\n@Directive({\n selector: \"[nice-rounded-style]\",\n standalone: false\n})\nexport class NiceRoundedStyleDirective implements OnInit {\n constructor(private element: ElementRef) {}\n\n public ngOnInit(): void {\n (this.element.nativeElement as HTMLElement).classList.add(\"nice-rounded-style\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceMaterialStyleDirective } from \"./nice-material-style.directive\";\nimport { NiceRoundedStyleDirective } from \"./nice-rounded-style.directive\";\n\n@NgModule({\n declarations: [\n NiceMaterialStyleDirective,\n NiceRoundedStyleDirective\n ],\n exports: [\n NiceMaterialStyleDirective,\n NiceRoundedStyleDirective\n ]\n})\nexport class NiceMaterialModule {}\n","import { Directive, EventEmitter, Input, Output, Type } from \"@angular/core\";\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\n\n@Directive()\nexport class NiceModalOpenerDirective<T, Return, Data> {\n @Input()\n public modalData: Data;\n\n @Output()\n public modalAfterClosed = new EventEmitter<Return>();\n\n constructor(protected dialog: MatDialog, private modal: Type<T>, private options: MatDialogConfig<Data>) {}\n\n public open(): void {\n this.dialog\n .open(this.modal, {\n ...this.options,\n data: this.modalData\n })\n .afterClosed()\n .subscribe(res => this.modalAfterClosed.emit(res));\n }\n}\n","import { Directive, HostListener, Type } from \"@angular/core\";\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport { NiceModalOpenerDirective } from \"./modal-opener.directive\";\n\n@Directive()\nexport class NiceModalOnClickDirective<T, Return, Data = any> extends NiceModalOpenerDirective<T, Return, Data> {\n constructor(dialog: MatDialog, modal: Type<T>, options: MatDialogConfig<Data>) {\n super(dialog, modal, options);\n }\n\n @HostListener(\"click\")\n public onClick(): void {\n this.open();\n }\n}\n","import { Directive, ElementRef, OnDestroy, OnInit } from \"@angular/core\";\nimport { NavigationEnd, Router } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\n\n@Directive({\n selector: \"[niceScrollReset]\",\n exportAs: \"niceScrollReset\",\n standalone: false\n})\nexport class NiceScrollResetDirective implements OnInit, OnDestroy {\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n /**\n * Constructor\n */\n constructor(\n private _elementRef: ElementRef,\n private _router: Router\n ) {\n }\n\n // -----------------------------------------------------------------------------------------------------\n // @ Lifecycle hooks\n // -----------------------------------------------------------------------------------------------------\n\n /**\n * On init\n */\n public ngOnInit(): void {\n // Subscribe to NavigationEnd event\n this._router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n takeUntil(this._unsubscribeAll)\n ).subscribe(() => {\n // Reset the element's scroll position to the top\n this._elementRef.nativeElement.scrollTop = 0;\n });\n }\n\n /**\n * On destroy\n */\n public ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this._unsubscribeAll.next(null);\n this._unsubscribeAll.complete();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceScrollResetDirective } from \"./scroll-reset.directive\";\n\n@NgModule({\n declarations: [\n NiceScrollResetDirective\n ],\n exports: [\n NiceScrollResetDirective\n ]\n})\nexport class NiceScrollResetModule {\n}\n","import { Directive, HostListener } from \"@angular/core\";\n\n@Directive({\n selector: \"[niceClickStopPropagation]\",\n standalone: false\n})\nexport class NiceClickStopPropagationDirective {\n @HostListener(\"click\", [\"$event\"])\n public stopClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NiceClickStopPropagationDirective } from \"./click-stop-propagation.directive\";\n\n@NgModule({\n exports: [NiceClickStopPropagationDirective],\n declarations: [NiceClickStopPropagationDirective],\n\n})\nexport class NiceStopPropagationModule {\n}\n","import { Directive, HostListener } from \"@angular/core\";\n\n// https://stackoverflow.com/questions/48886460/prevent-closing-browser-tab-window-in-angular-5-x\n@Directive({\n selector: \"[nicePreventCloseWindow]\",\n standalone: false\n})\nexport class NicePreventCloseWindowDirective {\n @HostListener(\"window:beforeunload\", [\"$event\"])\n public handleClose($event) {\n $event.returnValue = false;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NicePreventCloseWindowDirective } from \"./prevent-close-window.directive\";\n\n@NgModule({\n declarations: [NicePreventCloseWindowDirective],\n exports: [NicePreventCloseWindowDirective]\n})\nexport class NiceWindowDirectiveModule {\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\n\n// tslint:disable-next-line:directive-selector\n@Directive({ selector: \"[rerender]\", standalone: true })\nexport class RerenderDirective {\n @Input()\n public set rerender(_: any) {\n this.viewContainerRef.clear();\n this.viewContainerRef.createEmbeddedView(this.templateRef);\n }\n\n constructor(private templateRef: TemplateRef<any>, private viewContainerRef: ViewContainerRef) {}\n}\n","import { Directive, EmbeddedViewRef, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\n\nclass ResolveDirectiveContext<T> {\n $implicit: T;\n resolve: T;\n}\n\n// tslint:disable-next-line:directive-selector\n@Directive({ selector: \"[resolve]\", standalone: true })\nexport class ResolveDirective<T> {\n private context = new ResolveDirectiveContext();\n private embeddedViewRef: EmbeddedViewRef<any> | null = null;\n\n @Input()\n public set resolve(value: T) {\n this.context.$implicit = this.context.resolve = value;\n\n if (!this.embeddedViewRef) {\n this.viewContainerRef.clear();\n this.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.templateRef, this.context);\n }\n }\n\n constructor(private templateRef: TemplateRef<any>, private viewContainerRef: ViewContainerRef) {}\n\n public static ngTemplateContextGuard<T>(\n directive: ResolveDirective<T>,\n ctx: any\n ): ctx is ResolveDirectiveContext<T> {\n return true;\n }\n}\n","/**\n * From @angular/material/core/common-behaviors/constructor.ts\n */\n\nexport type Constructor<T> = new (...args: any[]) => T;\nexport type AbstractConstructor<T = object> = abstract new (...args: any[]) => T;\n","import { NgModule, Optional, SkipSelf } from \"@angular/core\";\nimport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocompleteDefaultOptions } from \"@angular/material/autocomplete\";\nimport { MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, MatButtonToggleDefaultOptions } from \"@angular/material/button-toggle\";\nimport { MAT_CHIPS_DEFAULT_OPTIONS, MatChipsDefaultOptions } from \"@angular/material/chips\";\nimport { MATERIAL_SANITY_CHECKS } from \"@angular/material/core\";\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldDefaultOptions } from \"@angular/material/form-field\";\nimport { MAT_LIST_CONFIG, MatListConfig } from \"@angular/material/list\";\nimport { MAT_SELECT_CONFIG, MatSelectConfig } from \"@angular/material/select\";\nimport { NiceMediaWatcherModule, NiceSplashScreenModule, NiceUtilsModule } from \"./providers\";\n\n@NgModule({\n imports: [\n NiceMediaWatcherModule,\n NiceSplashScreenModule,\n NiceUtilsModule\n ],\n providers: [\n {\n // Disable 'theme' sanity check\n provide : MATERIAL_SANITY_CHECKS,\n useValue: {\n doctype: true,\n theme : false,\n version: true\n }\n },\n {\n // Use the 'fill' appearance on Angular Material form fields by default\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: {\n appearance: \"fill\"\n } as MatFormFieldDefaultOptions\n },\n {\n provide: MAT_SELECT_CONFIG,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatSelectConfig\n },\n {\n provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatAutocompleteDefaultOptions\n },\n {\n provide: MAT_LIST_CONFIG,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatListConfig\n },\n {\n provide: MAT_CHIPS_DEFAULT_OPTIONS,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatChipsDefaultOptions\n },\n {\n provide: MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,\n useValue: {\n hideSingleSelectionIndicator: true\n } as MatButtonToggleDefaultOptions\n }\n ]\n})\nexport class NiceModule {\n /**\n * Constructor\n */\n constructor(@Optional() @SkipSelf() parentModule?: NiceModule) {\n if (parentModule) {\n throw new Error(\"NiceModule has already been loaded. Import this module in the AppModule only!\");\n }\n }\n}\n","/*\n * Public API Surface of nice-ui-kit-v2\n */\n\nexport * from \"./lib/animations\";\nexport * from \"./lib/api\";\nexport * from \"./lib/components\";\nexport * from \"./lib/directives\";\nexport * from \"./lib/pipes\";\nexport * from \"./lib/providers\";\nexport * from \"./lib/types/constructor\";\nexport * from \"./lib/utils\";\nexport * from \"./lib/nice.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NiceUtilsService","i1.NiceAlertService","i2.NiceUtilsService","i3","i4","i5","i1","i2","i4.OptionsScrollDirective","i9","i10","i2.NiceAsyncTypeaheadService","i6","i7","i8","i4.CarouselLayoutPipe","i3.NiceDateRangePickerServiceService","i6.RangePresetComponent","i5.LocalizedDatePipe","i1.NiceConfigService","tap","i1.NiceMediaWatcherService","i1.NiceSplashScreenService","i2.NiceDrawerService","i3.NiceUtilsService","i2.ExportBottomSheetService","i2.DynamicOverlayContainer","i1.DynamicOverlay","i2.NiceAlertComponent","defaultOptions","i1.NiceNavigationService","i3.NiceTranslationContextService","i2.NiceTranslationContextService","i7.NiceTranslateWithContextPipe","i5.NiceHorizontalNavigationBasicItemComponent","i6.NiceHorizontalNavigationDividerItemComponent","i7.NiceShouldHidePipe","i8.NiceTranslateWithContextPipe","debounceTime","i4.NiceNavigationHintService","i7.NiceShowHintDirective","i8.NiceShouldShowHintPipe","i9.NiceTranslateWithContextPipe","i2.NiceNavigationService","i5.NiceVerticalNavigationBasicItemComponent","i4.NiceVerticalNavigationBasicItemComponent","i5.NiceVerticalNavigationCollapsableItemComponent","i6.NiceVerticalNavigationDividerItemComponent","i7.NiceVerticalNavigationSpacerItemComponent","i8.NiceShouldHidePipe","i6.NiceVerticalNavigationCollapsableItemComponent","i7.NiceVerticalNavigationDividerItemComponent","i8.NiceVerticalNavigationGroupItemComponent","i9.NiceVerticalNavigationSpacerItemComponent","i10.NiceTranslateWithContextPipe","merge","i7.NiceNavigationHintService","i9.NiceScrollbarDirective","i10.NiceVerticalNavigationAsideItemComponent","i11.NiceVerticalNavigationBasicItemComponent","i12.NiceVerticalNavigationCollapsableItemComponent","i13.NiceVerticalNavigationDividerItemComponent","i14.NiceVerticalNavigationGroupItemComponent","i15.NiceVerticalNavigationSpacerItemComponent","i16.NiceShouldHidePipe","i4.NiceLottieComponent","switchMap","i1.NiceSweetAlertService","i3.NiceAlertComponent","i1.NiceTranslationFormService","i1.TranslationContextDirective","i2.NiceTranslationFormService","i2.TranslationContextDirective","i3.NiceTranslationFormService","i1.NiceAsyncTypeaheadComponent"],"mappings":"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"}
|