design-angular-kit 1.0.0-1 → 1.0.0-10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +183 -24
- package/assets/i18n/en.json +93 -0
- package/assets/i18n/it.json +93 -0
- package/esm2020/lib/abstracts/abstract-form-component.mjs +174 -0
- package/esm2020/lib/abstracts/abstract.component.mjs +27 -0
- package/esm2020/lib/components/core/accordion/accordion.component.mjs +31 -0
- package/esm2020/lib/components/core/alert/alert.component.mjs +69 -0
- package/esm2020/lib/components/core/badge/badge.directive.mjs +34 -0
- package/esm2020/lib/components/core/button/button.directive.mjs +80 -0
- package/esm2020/lib/components/core/callout/callout.component.mjs +84 -0
- package/esm2020/lib/components/core/card/card.component.mjs +58 -0
- package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +66 -0
- package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +14 -0
- package/esm2020/lib/components/core/chip/chip.component.mjs +89 -0
- package/esm2020/lib/components/core/collapse/collapse.component.mjs +101 -0
- package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
- package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
- package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +59 -0
- package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +130 -0
- package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +68 -0
- package/esm2020/lib/components/core/forward/forward.directive.mjs +51 -0
- package/esm2020/lib/components/core/link/link.component.mjs +40 -0
- package/esm2020/lib/components/core/list/list/list.component.mjs +13 -0
- package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +36 -0
- package/esm2020/lib/components/core/modal/modal.component.mjs +98 -0
- package/esm2020/lib/components/core/notifications/notifications.component.mjs +110 -0
- package/esm2020/lib/components/core/pagination/pagination.component.mjs +51 -0
- package/esm2020/lib/components/core/popover/popover.directive.mjs +179 -0
- package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +34 -0
- package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +27 -0
- package/esm2020/lib/components/core/rating/rating.component.mjs +45 -0
- package/esm2020/lib/components/core/spinner/spinner.component.mjs +35 -0
- package/esm2020/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +119 -0
- package/esm2020/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +18 -0
- package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +59 -0
- package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +36 -0
- package/esm2020/lib/components/core/table/table.component.mjs +57 -0
- package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +143 -0
- package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +40 -0
- package/esm2020/lib/components/form/input/input.component.mjs +222 -0
- package/esm2020/lib/components/form/password-input/password-input.component.mjs +112 -0
- package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +53 -0
- package/esm2020/lib/components/form/select/select.component.mjs +62 -0
- package/esm2020/lib/components/form/textarea/textarea.component.mjs +46 -0
- package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +137 -0
- package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +104 -0
- package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +69 -0
- package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +74 -0
- package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +45 -0
- package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +23 -0
- package/esm2020/lib/components/navigation/header/header.component.mjs +63 -0
- package/esm2020/lib/components/utils/icon/icon.component.mjs +54 -0
- package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +39 -0
- package/esm2020/lib/components/utils/not-found-page/not-found-page.component.mjs +13 -0
- package/esm2020/lib/design-angular-kit.module.mjs +45 -131
- package/esm2020/lib/interfaces/core.mjs +16 -0
- package/esm2020/lib/interfaces/form.mjs +2 -0
- package/esm2020/lib/interfaces/icon.mjs +2 -0
- package/esm2020/lib/interfaces/utils.mjs +2 -0
- package/esm2020/lib/modules/components.module.mjs +261 -0
- package/esm2020/lib/pipes/mark-matching-text.pipe.mjs +36 -0
- package/esm2020/lib/services/notifications/notifications.service.mjs +120 -0
- package/esm2020/lib/utils/boolean-input.mjs +15 -0
- package/esm2020/lib/utils/file-utils.mjs +73 -0
- package/esm2020/lib/utils/regex.mjs +26 -0
- package/esm2020/lib/validators/it-validators.mjs +134 -0
- package/esm2020/public_api.mjs +67 -36
- package/fesm2015/design-angular-kit.mjs +3424 -2713
- package/fesm2015/design-angular-kit.mjs.map +1 -1
- package/fesm2020/design-angular-kit.mjs +3391 -2713
- package/fesm2020/design-angular-kit.mjs.map +1 -1
- package/lib/abstracts/abstract-form-component.d.ts +89 -0
- package/lib/abstracts/abstract.component.d.ts +20 -0
- package/lib/components/core/accordion/accordion.component.d.ts +12 -0
- package/lib/components/core/alert/alert.component.d.ts +39 -0
- package/lib/components/core/badge/badge.directive.d.ts +16 -0
- package/lib/components/core/button/button.directive.d.ts +36 -0
- package/lib/components/core/callout/callout.component.d.ts +47 -0
- package/lib/components/core/card/card.component.d.ts +41 -0
- package/lib/components/core/carousel/carousel/carousel.component.d.ts +46 -0
- package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +10 -0
- package/lib/components/core/chip/chip.component.d.ts +62 -0
- package/lib/components/core/collapse/collapse.component.d.ts +60 -0
- package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +12 -0
- package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +5 -0
- package/lib/components/core/dimmer/dimmer.component.d.ts +24 -0
- package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +81 -0
- package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +39 -0
- package/lib/components/core/forward/forward.directive.d.ts +14 -0
- package/lib/components/core/link/link.component.d.ts +31 -0
- package/lib/components/core/list/list/list.component.d.ts +10 -0
- package/lib/components/core/list/list-item/list-item.component.d.ts +24 -0
- package/lib/components/core/modal/modal.component.d.ts +59 -0
- package/lib/components/core/notifications/notifications.component.d.ts +44 -0
- package/lib/components/core/pagination/pagination.component.d.ts +31 -0
- package/lib/components/core/popover/popover.directive.d.ts +98 -0
- package/lib/components/core/progress-bar/progress-bar.component.d.ts +28 -0
- package/lib/components/core/progress-button/progress-button.component.d.ts +22 -0
- package/lib/components/core/rating/rating.component.d.ts +20 -0
- package/lib/components/core/spinner/spinner.component.d.ts +21 -0
- package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +102 -0
- package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +19 -0
- package/lib/components/core/tab/tab-container/tab-container.component.d.ts +30 -0
- package/lib/components/core/tab/tab-item/tab-item.component.d.ts +34 -0
- package/lib/components/core/table/table.component.d.ts +54 -0
- package/lib/components/core/tooltip/tooltip.directive.d.ts +81 -0
- package/lib/components/form/checkbox/checkbox.component.d.ts +30 -0
- package/lib/components/form/input/input.component.d.ts +96 -0
- package/lib/components/form/password-input/password-input.component.d.ts +55 -0
- package/lib/components/form/radio-button/radio-button.component.d.ts +29 -0
- package/lib/components/form/select/select.component.d.ts +30 -0
- package/lib/components/form/textarea/textarea.component.d.ts +24 -0
- package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +54 -0
- package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +59 -0
- package/lib/components/navigation/back-button/back-button.component.d.ts +47 -0
- package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +46 -0
- package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +30 -0
- package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +22 -0
- package/lib/components/navigation/header/header.component.d.ts +30 -0
- package/lib/components/utils/icon/icon.component.d.ts +40 -0
- package/lib/components/utils/language-switcher/language-switcher.component.d.ts +23 -0
- package/lib/components/utils/not-found-page/not-found-page.component.d.ts +5 -0
- package/lib/design-angular-kit.module.d.ts +7 -24
- package/lib/interfaces/core.d.ts +59 -0
- package/lib/interfaces/form.d.ts +67 -0
- package/lib/interfaces/icon.d.ts +3 -0
- package/lib/interfaces/utils.d.ts +10 -0
- package/lib/modules/components.module.d.ts +62 -0
- package/lib/services/notifications/notifications.service.d.ts +63 -0
- package/lib/utils/boolean-input.d.ts +11 -0
- package/lib/utils/file-utils.d.ts +32 -0
- package/lib/utils/regex.d.ts +25 -0
- package/lib/validators/it-validators.d.ts +58 -0
- package/package.json +22 -13
- package/public_api.d.ts +59 -35
- package/esm2020/lib/badge/badge.directive.mjs +0 -83
- package/esm2020/lib/breadcrumb/breadcrumb-item.component.mjs +0 -66
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -89
- package/esm2020/lib/button/button.directive.mjs +0 -185
- package/esm2020/lib/button/button.module.mjs +0 -18
- package/esm2020/lib/checkbox/checkbox.component.mjs +0 -138
- package/esm2020/lib/collapse/collapse-group.component.mjs +0 -57
- package/esm2020/lib/collapse/collapse-item.component.mjs +0 -79
- package/esm2020/lib/collapse/collapse.config.mjs +0 -12
- package/esm2020/lib/collapse/collapse.directive.mjs +0 -55
- package/esm2020/lib/collapse/collapse.module.mjs +0 -22
- package/esm2020/lib/dropdown/dropdown-divider.component.mjs +0 -11
- package/esm2020/lib/dropdown/dropdown-item.component.mjs +0 -97
- package/esm2020/lib/dropdown/dropdown.component.mjs +0 -143
- package/esm2020/lib/dropdown/dropdown.config.mjs +0 -12
- package/esm2020/lib/dropdown/dropdown.directive.mjs +0 -156
- package/esm2020/lib/dropdown/dropdown.module.mjs +0 -25
- package/esm2020/lib/enums/icons.enum.mjs +0 -27
- package/esm2020/lib/form-input/form-input-password.utils.mjs +0 -154
- package/esm2020/lib/form-input/form-input.component.mjs +0 -495
- package/esm2020/lib/form-input/it-prefix.directive.mjs +0 -13
- package/esm2020/lib/form-input/it-suffix.directive.mjs +0 -13
- package/esm2020/lib/form-input/it-text-prefix.directive.mjs +0 -13
- package/esm2020/lib/form-input/it-text-suffix.directive.mjs +0 -13
- package/esm2020/lib/form-input/mark-matching-text.pipe.mjs +0 -36
- package/esm2020/lib/icon/icon.component.mjs +0 -87
- package/esm2020/lib/icon/icon.module.mjs +0 -18
- package/esm2020/lib/models/Alignment.mjs +0 -15
- package/esm2020/lib/models/ButtonSize.mjs +0 -15
- package/esm2020/lib/models/InputType.mjs +0 -44
- package/esm2020/lib/models/ThemeColor.mjs +0 -30
- package/esm2020/lib/popover/popover.config.mjs +0 -17
- package/esm2020/lib/popover/popover.directive.mjs +0 -33
- package/esm2020/lib/popover/popover.module.mjs +0 -19
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +0 -98
- package/esm2020/lib/radio/radio.component.mjs +0 -287
- package/esm2020/lib/radio/unique-selection-dispatcher.mjs +0 -55
- package/esm2020/lib/tabs/tab-group.component.mjs +0 -177
- package/esm2020/lib/tabs/tab.component.mjs +0 -73
- package/esm2020/lib/tabs/tabs.module.mjs +0 -20
- package/esm2020/lib/toggle/toggle.component.mjs +0 -86
- package/esm2020/lib/tooltip/tooltip.config.mjs +0 -17
- package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -43
- package/esm2020/lib/tooltip/tooltip.module.mjs +0 -19
- package/esm2020/lib/util/focus-mouse.directive.mjs +0 -32
- package/esm2020/lib/util/util.mjs +0 -12
- package/esm2020/lib/util/utils.module.mjs +0 -16
- package/lib/badge/badge.directive.d.ts +0 -33
- package/lib/breadcrumb/breadcrumb-item.component.d.ts +0 -33
- package/lib/breadcrumb/breadcrumb.component.d.ts +0 -33
- package/lib/button/button.directive.d.ts +0 -72
- package/lib/button/button.module.d.ts +0 -8
- package/lib/checkbox/checkbox.component.d.ts +0 -61
- package/lib/collapse/collapse-group.component.d.ts +0 -16
- package/lib/collapse/collapse-item.component.d.ts +0 -46
- package/lib/collapse/collapse.config.d.ts +0 -6
- package/lib/collapse/collapse.directive.d.ts +0 -25
- package/lib/collapse/collapse.module.d.ts +0 -12
- package/lib/dropdown/dropdown-divider.component.d.ts +0 -5
- package/lib/dropdown/dropdown-item.component.d.ts +0 -56
- package/lib/dropdown/dropdown.component.d.ts +0 -65
- package/lib/dropdown/dropdown.config.d.ts +0 -6
- package/lib/dropdown/dropdown.directive.d.ts +0 -77
- package/lib/dropdown/dropdown.module.d.ts +0 -15
- package/lib/enums/icons.enum.d.ts +0 -23
- package/lib/form-input/form-input-password.utils.d.ts +0 -45
- package/lib/form-input/form-input.component.d.ts +0 -283
- package/lib/form-input/it-prefix.directive.d.ts +0 -5
- package/lib/form-input/it-suffix.directive.d.ts +0 -5
- package/lib/form-input/it-text-prefix.directive.d.ts +0 -5
- package/lib/form-input/it-text-suffix.directive.d.ts +0 -5
- package/lib/icon/icon.component.d.ts +0 -34
- package/lib/icon/icon.module.d.ts +0 -8
- package/lib/models/Alignment.d.ts +0 -12
- package/lib/models/ButtonSize.d.ts +0 -11
- package/lib/models/InputType.d.ts +0 -36
- package/lib/models/ThemeColor.d.ts +0 -21
- package/lib/popover/popover.config.d.ts +0 -11
- package/lib/popover/popover.directive.d.ts +0 -20
- package/lib/popover/popover.module.d.ts +0 -9
- package/lib/progress-bar/progress-bar.component.d.ts +0 -55
- package/lib/radio/radio.component.d.ts +0 -116
- package/lib/radio/unique-selection-dispatcher.d.ts +0 -36
- package/lib/tabs/tab-group.component.d.ts +0 -71
- package/lib/tabs/tab.component.d.ts +0 -44
- package/lib/tabs/tabs.module.d.ts +0 -10
- package/lib/toggle/toggle.component.d.ts +0 -46
- package/lib/tooltip/tooltip.config.d.ts +0 -11
- package/lib/tooltip/tooltip.directive.d.ts +0 -27
- package/lib/tooltip/tooltip.module.d.ts +0 -9
- package/lib/util/focus-mouse.directive.d.ts +0 -13
- package/lib/util/util.d.ts +0 -5
- package/lib/util/utils.module.d.ts +0 -7
- /package/lib/{form-input → pipes}/mark-matching-text.pipe.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-angular-kit.mjs","sources":["../../../projects/design-angular-kit/src/lib/models/ThemeColor.ts","../../../projects/design-angular-kit/src/lib/util/util.ts","../../../projects/design-angular-kit/src/lib/progress-bar/progress-bar.component.ts","../../../projects/design-angular-kit/src/lib/progress-bar/progress-bar.component.html","../../../projects/design-angular-kit/src/lib/checkbox/checkbox.component.ts","../../../projects/design-angular-kit/src/lib/checkbox/checkbox.component.html","../../../projects/design-angular-kit/src/lib/popover/popover.config.ts","../../../projects/design-angular-kit/src/lib/popover/popover.directive.ts","../../../projects/design-angular-kit/src/lib/popover/popover.module.ts","../../../projects/design-angular-kit/src/lib/util/focus-mouse.directive.ts","../../../projects/design-angular-kit/src/lib/toggle/toggle.component.ts","../../../projects/design-angular-kit/src/lib/toggle/toggle.component.html","../../../projects/design-angular-kit/src/lib/radio/unique-selection-dispatcher.ts","../../../projects/design-angular-kit/src/lib/radio/radio.component.ts","../../../projects/design-angular-kit/src/lib/radio/radio.component.html","../../../projects/design-angular-kit/src/lib/tooltip/tooltip.config.ts","../../../projects/design-angular-kit/src/lib/tooltip/tooltip.directive.ts","../../../projects/design-angular-kit/src/lib/tooltip/tooltip.module.ts","../../../projects/design-angular-kit/src/lib/models/ButtonSize.ts","../../../projects/design-angular-kit/src/lib/enums/icons.enum.ts","../../../projects/design-angular-kit/src/lib/models/Alignment.ts","../../../projects/design-angular-kit/src/lib/icon/icon.component.ts","../../../projects/design-angular-kit/src/lib/icon/icon.component.html","../../../projects/design-angular-kit/src/lib/dropdown/dropdown.config.ts","../../../projects/design-angular-kit/src/lib/dropdown/dropdown.directive.ts","../../../projects/design-angular-kit/src/lib/button/button.directive.ts","../../../projects/design-angular-kit/src/lib/icon/icon.module.ts","../../../projects/design-angular-kit/src/lib/button/button.module.ts","../../../projects/design-angular-kit/src/lib/badge/badge.directive.ts","../../../projects/design-angular-kit/src/lib/collapse/collapse.config.ts","../../../projects/design-angular-kit/src/lib/collapse/collapse.directive.ts","../../../projects/design-angular-kit/src/lib/collapse/collapse-item.component.ts","../../../projects/design-angular-kit/src/lib/collapse/collapse-item.component.html","../../../projects/design-angular-kit/src/lib/collapse/collapse-group.component.ts","../../../projects/design-angular-kit/src/lib/collapse/collapse-group.component.html","../../../projects/design-angular-kit/src/lib/util/utils.module.ts","../../../projects/design-angular-kit/src/lib/collapse/collapse.module.ts","../../../projects/design-angular-kit/src/lib/models/InputType.ts","../../../projects/design-angular-kit/src/lib/form-input/form-input-password.utils.ts","../../../projects/design-angular-kit/src/lib/form-input/it-prefix.directive.ts","../../../projects/design-angular-kit/src/lib/form-input/it-suffix.directive.ts","../../../projects/design-angular-kit/src/lib/form-input/it-text-prefix.directive.ts","../../../projects/design-angular-kit/src/lib/form-input/it-text-suffix.directive.ts","../../../projects/design-angular-kit/src/lib/form-input/mark-matching-text.pipe.ts","../../../projects/design-angular-kit/src/lib/form-input/form-input.component.ts","../../../projects/design-angular-kit/src/lib/form-input/form-input.component.html","../../../projects/design-angular-kit/src/lib/dropdown/dropdown-item.component.ts","../../../projects/design-angular-kit/src/lib/dropdown/dropdown-item.component.html","../../../projects/design-angular-kit/src/lib/dropdown/dropdown.component.ts","../../../projects/design-angular-kit/src/lib/dropdown/dropdown.component.html","../../../projects/design-angular-kit/src/lib/dropdown/dropdown-divider.component.ts","../../../projects/design-angular-kit/src/lib/dropdown/dropdown-divider.component.html","../../../projects/design-angular-kit/src/lib/breadcrumb/breadcrumb-item.component.ts","../../../projects/design-angular-kit/src/lib/breadcrumb/breadcrumb-item.component.html","../../../projects/design-angular-kit/src/lib/breadcrumb/breadcrumb.component.ts","../../../projects/design-angular-kit/src/lib/breadcrumb/breadcrumb.component.html","../../../projects/design-angular-kit/src/lib/tabs/tab.component.ts","../../../projects/design-angular-kit/src/lib/tabs/tab.component.html","../../../projects/design-angular-kit/src/lib/tabs/tab-group.component.ts","../../../projects/design-angular-kit/src/lib/tabs/tab-group.component.html","../../../projects/design-angular-kit/src/lib/dropdown/dropdown.module.ts","../../../projects/design-angular-kit/src/lib/tabs/tabs.module.ts","../../../projects/design-angular-kit/src/lib/design-angular-kit.module.ts","../../../projects/design-angular-kit/src/public_api.ts","../../../projects/design-angular-kit/src/design-angular-kit.ts"],"sourcesContent":["import * as t from 'io-ts';\n\nexport const ThemeColor = t.keyof({\n primary: null,\n secondary: null,\n danger: null,\n warning: null,\n info: null,\n success: null,\n light: null,\n dark: null,\n});\n\nconst PRIMARY = 'primary';\nconst SECONDARY = 'secondary';\nconst DANGER = 'danger';\nconst WARNING = 'warning';\nconst INFO = 'info';\nconst SUCCESS = 'success';\nconst LIGHT = 'light';\nconst DARK = 'dark';\n\nexport const THEME_COLORS = {\n PRIMARY: PRIMARY,\n SECONDARY: SECONDARY,\n DANGER: DANGER,\n WARNING: WARNING,\n INFO: INFO,\n SUCCESS: SUCCESS,\n LIGHT: LIGHT,\n DARK: DARK\n};\n","export class Util {\n static coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n }\n\n static coerceNumberProperty(value: any, fallbackValue = 0): number {\n return Util._isNumberValue(value) ? Number(value) : fallbackValue;\n }\n\n static _isNumberValue(value: any): boolean {\n return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\n\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ElementRef,\n Inject,\n Input,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { ThemeColor, THEME_COLORS } from '../models/ThemeColor';\nimport { Util } from '../util/util';\n\nlet progressbarId = 0;\n\n/**\n * Una barra di avanzamento con design bootstrap italia.\n */\n@Component({\n selector: 'it-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProgressBarComponent {\n\n public static readonly PROGRESS_BAR_DEFAULT_MIN = 0;\n public static readonly PROGRESS_BAR_DEFAULT_MAX = 100;\n public static readonly PROGRESS_BAR_DEFAULT_VALUE = 0;\n public static readonly PROGRESS_BAR_DEFAULT_LABEL = '';\n\n progressbarId = `it-progress-bar-${progressbarId++}`;\n\n /**\n * Il valore minimo della barra di avanzamento.\n */\n @Input()\n get min(): number { return this._min; }\n set min(v: number) { this._min = Math.round(v); }\n private _min = ProgressBarComponent.PROGRESS_BAR_DEFAULT_MIN;\n\n /**\n * Il valore massimo della barra di avanzamento.\n */\n @Input()\n get max(): number { return this._max; }\n set max(v: number) { this._max = Math.round(v); }\n private _max = ProgressBarComponent.PROGRESS_BAR_DEFAULT_MAX;\n\n /**\n * L'attuale valore della barra di avanzamento.\n */\n @Input()\n get value(): number { return this._value; }\n set value(v: number) { this._value = Math.min(Math.max(v, this._min), this._max); }\n private _value = ProgressBarComponent.PROGRESS_BAR_DEFAULT_VALUE;\n\n /**\n * L'etichetta della barra di avanzamento.\n */\n @Input()\n get label(): string { return this._label; }\n set label(v: string) { this._label = v; }\n private _label = ProgressBarComponent.PROGRESS_BAR_DEFAULT_LABEL;\n\n @Input()\n get indeterminate(): boolean { return this._indeterminate; }\n set indeterminate(value: boolean) { this._indeterminate = Util.coerceBooleanProperty(value); }\n private _indeterminate = false;\n\n @Input()\n get indeterminateHiddenText(): string { return this._indeterminateHiddenText; }\n set indeterminateHiddenText(v: string) { this._indeterminateHiddenText = v; }\n private _indeterminateHiddenText = \"In elaborazione...\";\n\n /**\n * Il colore della barra di avanzamento.\n */\n @Input()\n get color(): any {\n return this._color;\n }\n set color(value: any) {\n if (ThemeColor.is(value)) {\n this._color = value;\n } else {\n this._color = THEME_COLORS.PRIMARY;\n }\n }\n private _color = THEME_COLORS.PRIMARY;\n\n valuePercentage(): number {\n return ((this.value - this.min) * 100) / (this.max - this.min);\n }\n\n pgStyle() {\n return this.indeterminate ? null : { 'width' : this.valuePercentage() + '%' };\n }\n\n\n get progressBarClass(): Set<string> {\n const progressbarClass = new Set<string>();\n progressbarClass.add('progress-bar');\n if (this.color) {\n progressbarClass.add(`bg-${this.color}`);\n }\n\n return progressbarClass;\n }\n\n\n constructor() { }\n\n}\n","<ng-container *ngIf = \"label; else progressBarEl\">\n <div class=\"progress-bar-wrapper\">\n <div class=\"progress-bar-label\"><span class=\"visually-hidden\">Progresso </span>{{label}}</div>\n <ng-container *ngTemplateOutlet=\"progressBarEl\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #progressBarEl>\n <div class=\"progress\" [class.progress-indeterminate] = \"indeterminate\">\n <span class=\"visually-hidden\" *ngIf=\"indeterminate && indeterminateHiddenText\">{{indeterminateHiddenText}}</span>\n <div role=\"progressbar\" [id]=\"progressbarId\" \n [ngClass]=\"progressBarClass\" \n [ngStyle]=\"pgStyle()\"\n [attr.aria-valuenow]=\"value\" [attr.aria-valuemin]=\"min\" [attr.aria-valuemax]=\"max\" >\n </div>\n </div>\n</ng-template>","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, forwardRef, ChangeDetectionStrategy, ElementRef, ViewChild } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { Util } from '../util/util';\n\nlet identifier = 0;\n\nexport class CheckboxChange {\n source: CheckboxComponent;\n checked: boolean;\n}\n\n/**\n * Una checkbox con design bootstrap italia. Supporta tutte le funzionalità di una checkbox HTML5,\n * ed espone una API simile. Una `<it-checkbox>` può essere checked, unchecked, o disabled.\n */\n@Component({\n selector: 'it-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.css'],\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CheckboxComponent), multi: true }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n \n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement: ElementRef<HTMLInputElement>;\n\n /**\n * Se la checkbox è selezionata.\n */\n @Input()\n get checked(): boolean { return this._checked; }\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n if(this._checked) {\n this.indeterminate = false; \n }\n this._changeDetectorRef.markForCheck();\n }\n }\n private _checked = false;\n\n @Input()\n get grouped(): boolean { return this._grouped; }\n set grouped(value: boolean) { this._grouped = Util.coerceBooleanProperty(value); }\n private _grouped = false;\n \n /**\n * L'etichetta della checkbox.\n */\n @Input()\n label: string;\n\n /**\n * Se la checkbox è disabilitata.\n */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n private _disabled = false;\n\n @Input()\n get inline(): boolean { return this._inline; }\n set inline(value: boolean) { this._inline = Util.coerceBooleanProperty(value); }\n private _inline = false;\n\n\n @Input()\n get indeterminate(): boolean { return this._indeterminate; }\n set indeterminate(value: boolean) { \n const newValue = Util.coerceBooleanProperty(value); \n const changed = this._indeterminate !== newValue;\n if(changed) {\n this._indeterminate = newValue;\n this.indeterminateChange.emit(this._indeterminate);\n \n if(this._indeterminate) {\n queueMicrotask(() => {\n this.checked = false;\n this._emitChangeEvent();\n });\n \n }\n \n }\n }\n private _indeterminate = false;\n\n @Output() indeterminateChange = new EventEmitter<boolean>();\n\n focus = false;\n onFocus() {\n this.focus = true;\n }\n\n onBlur() {\n this.focus = false;\n }\n \n /**\n * Evento emesso quando il valore `checked` della checkbox cambia.\n */\n @Output() readonly change: EventEmitter<CheckboxChange> =\n new EventEmitter<CheckboxChange>();\n\n inputId = `checkbox-${identifier++}`;\n\n private _onTouched: () => any = () => {};\n\n private _controlValueAccessorChangeFn: (value: any) => void = () => { };\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef\n ) { }\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n handleChange(event: Event) {\n event.stopPropagation();\n if (!this.disabled) {\n if(!this.indeterminate) {\n this._toggle();\n } else {\n this.indeterminate = false;\n // reset proprietà \"checked\" per prevenire il comportamento di default dell'elemento HTML\n this._inputElement.nativeElement.checked = this.checked;\n }\n this._emitChangeEvent();\n }\n }\n\n private _toggle(): void {\n this.checked = !this.checked;\n }\n\n private _emitChangeEvent() {\n const event = new CheckboxChange();\n event.source = this;\n event.checked = this.checked;\n\n this._controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n }\n}\n","<div class=\"form-check\" [class.form-check-group] = \"grouped\" [class.form-check-inline] = \"inline\" >\n <input #input type=\"checkbox\"\n [id]=\"inputId\"\n [class.focus--mouse] = \"focus\"\n [class.semi-checked] = \"indeterminate\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"handleChange($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n <label\n [attr.for]=\"inputId\" *ngIf = \"label\">{{label}}</label>\n \n <ng-content></ng-content>\n</div>","\nimport { Injectable } from '@angular/core';\nimport { NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap';\n\n/**\n * Servizio di configurazione per la direttiva ItPopover.\n * Il servizio può essere iniettato, tipicamente in un root component, per impostare i valori delle proprietà in\n * modo tale da fornire i valori di default per tutti i popover utilizzati in un'applicazione.\n */\n@Injectable({providedIn: 'root'})\nexport class ItPopoverConfig extends NgbPopoverConfig {}\n","import {\n Directive,\n Input,\n OnInit,\n OnDestroy,\n OnChanges,\n Inject,\n Injector,\n Renderer2,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n NgZone,\n ChangeDetectorRef,\n ApplicationRef\n } from '@angular/core';\n import {DOCUMENT} from '@angular/common';\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { ItPopoverConfig } from './popover.config';\n \n/**\n * A lightweight and extensible directive for fancy popover creation.\n */\n@Directive({selector: '[itPopover]', exportAs: 'itPopover'})\nexport class ItPopover extends NgbPopover implements OnInit, OnDestroy, OnChanges {\n \n /**\n * The string content or a `TemplateRef` for the content to be displayed in the popover.\n *\n * If the title and the content are falsy, the popover won't open.\n */\n @Input() itPopover: string | TemplateRef<any>| null | undefined;\n\n constructor(\n _elementRef: ElementRef<HTMLElement>, _renderer: Renderer2, injector: Injector,\n viewContainerRef: ViewContainerRef, config: ItPopoverConfig, _ngZone: NgZone,\n @Inject(DOCUMENT) _document: any, _changeDetector: ChangeDetectorRef,\n applicationRef: ApplicationRef) {\n super(_elementRef, _renderer, injector, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n super.ngbPopover = this.itPopover;\n this.popoverClass = 'it-popover-window';\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NgbPopoverModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { ItPopover } from \"./popover.directive\";\n\n@NgModule({\n declarations: [ItPopover],\n exports: [ItPopover],\n imports: [CommonModule, NgbPopoverModule]\n})\nexport class ItPopoverModule {}","import { Directive, ElementRef, HostListener } from \"@angular/core\";\n\n\n/**\n * Aggiunge la classe \"focus--mouse\" quando viene effettuato il focus sull'elemento a cui è applicata la direttiva\n */\n@Directive({\n selector: '[focusMouse]',\n exportAs: 'focusMouse'\n\n})\nexport class FocusMouseDirective {\n \n constructor(private elementRef: ElementRef) {}\n \n \n @HostListener('focus')\n onFocus(): void {\n (this.elementRef.nativeElement as HTMLElement).classList.add('focus--mouse');\n }\n\n @HostListener('blur')\n onBlur(): void {\n (this.elementRef.nativeElement as HTMLElement).classList.remove('focus--mouse');\n }\n}","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, forwardRef, ChangeDetectionStrategy } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\nlet identifier = 0;\n\nexport class ToggleChange {\n source: ToggleComponent;\n checked: boolean;\n}\n\n/**\n * Una toggle con design bootstrap italia. Supporta tutte le funzionalità di una checkbox HTML5,\n * ed espone una API simile. Una `<it-toggle>` può essere checked, unchecked, o disabled.\n */\n@Component({\n selector: 'it-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.css'],\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ToggleComponent), multi: true }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToggleComponent implements ControlValueAccessor {\n /**\n * Se la toggle è selezionata.\n */\n @Input()\n get checked(): boolean { return this._checked; }\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n private _checked = false;\n\n /**\n * L'etichetta della toggle.\n */\n @Input()\n label: string;\n\n /**\n * Se la toggle è disabilitata.\n */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n private _disabled = false;\n\n /**\n * Evento emesso quando il valore `checked` della toggle cambia.\n */\n @Output() readonly change: EventEmitter<ToggleChange> =\n new EventEmitter<ToggleChange>();\n\n inputId = `toggle-${identifier++}`;\n\n private _onTouched: () => any = () => {};\n\n private _controlValueAccessorChangeFn: (value: any) => void = () => { };\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef\n ) { }\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n handleChange(event: Event) {\n event.stopPropagation();\n if (!this.disabled) {\n this._toggle();\n this._emitChangeEvent();\n }\n }\n\n private _toggle(): void {\n this.checked = !this.checked;\n }\n\n private _emitChangeEvent() {\n const event = new ToggleChange();\n event.source = this;\n event.checked = this.checked;\n\n this._controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n }\n}\n","<div class=\"form-check\">\n <div class=\"toggles\">\n <label [attr.for]=inputId>\n {{label}}\n <input type=checkbox\n focusMouse\n [id]=inputId\n [checked]=checked\n [disabled]=disabled\n (change)=handleChange($event)>\n <span class=\"lever\"></span>\n </label>\n </div>\n</div>","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\n\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\n@Injectable({providedIn: 'root'})\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private _listeners: UniqueSelectionDispatcherListener[] = [];\n\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id: string, name: string) {\n for (const listener of this._listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\n\n ngOnDestroy() {\n this._listeners = [];\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n forwardRef,\n ChangeDetectionStrategy,\n AfterContentInit,\n Directive,\n ContentChildren,\n QueryList,\n OnInit,\n OnDestroy,\n Optional,\n HostBinding\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { UniqueSelectionDispatcher } from './unique-selection-dispatcher';\n\nlet identifier = 0;\n\nfunction _coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n}\n\nexport class RadioChange {\n constructor(\n public source: RadioButtonComponent,\n public value: any\n ) { }\n}\n\n@Directive({\n selector: 'it-radio-group', // tslint:disable-line\n exportAs: 'itRadioGroup',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupDirective),\n multi: true\n }]\n})\nexport class RadioGroupDirective implements AfterContentInit, ControlValueAccessor {\n\n @HostBinding('attr.role') role = 'radiogroup';\n\n /**\n * Il valore selezionato per il gruppo. Dovrebbe essere uguale al valore del radio button selezionato se\n * *esiste* un radio button con un valore corrispondente. Se *non esiste* un radio button corrispondente\n * questo valore persiste ed è applicato nel caso in cui un nuovo radio button viene aggiunto con il valore\n * corrispondente.\n */\n private _value: any = null;\n\n /** L'attributo HTML name da applicare ai radio button in questo gruppo */\n private _name = `it-radio-group-${identifier++}`;\n\n /** Il radio button attualmente selezionato. */\n private _selected: RadioButtonComponent | null = null;\n\n /** se `value` è stato settato al suo valore iniziale. */\n private _isInitialized = false;\n\n /** Se il radio group è disabilitato. */\n private _disabled = false;\n\n\n\n /**\n * Evento emesso quando il valore del gruppo cambia.\n * Gli eventi di change sono emessi soltanto quando il valore cambia a causa dell'interazione dell'utente\n * con il radio button (stesso comportamento di `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<RadioChange> = new EventEmitter<RadioChange>();\n\n /** radio buttons figli. */\n @ContentChildren(forwardRef(() => RadioButtonComponent), { descendants: true }) _radios: QueryList<RadioButtonComponent>; // tslint:disable-line\n\n /** Il metodo da chiamare per aggiornare ngModel */\n _controlValueAccessorChangeFn: (value: any) => void = () => { };\n\n onTouched: () => any = () => { };\n\n /** Nome del gruppo di radio button. Tutti i radio button all'interno del gruppo avranno questo nome. */\n @Input()\n get name(): string { return this._name; }\n set name(value: string) {\n this._name = value;\n this._updateRadioButtonNames();\n }\n\n /** Valore del radio button. */\n @Input()\n get value(): any { return this._value; }\n set value(newValue: any) {\n if (this._value !== newValue) {\n this._value = newValue;\n\n this._updateSelectedRadioFromValue();\n this._checkSelectedRadioButton();\n }\n }\n\n _checkSelectedRadioButton() {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n\n /** Il radio button selezionato. */\n @Input()\n get selected() { return this._selected; }\n set selected(selected: RadioButtonComponent | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this._checkSelectedRadioButton();\n }\n\n /** Se il gruppo è disabled */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value) {\n this._disabled = _coerceBooleanProperty(value);\n this._markRadiosForCheck();\n }\n\n constructor(\n private _changeDetector: ChangeDetectorRef\n ) { }\n\n /**\n * Inizializza le proprietà quando il contenuto dei figliè disponibile.\n * Questo permette di propagare gli attributi rilevanti ai radio buttons associati.\n */\n ngAfterContentInit(): void {\n this._isInitialized = true;\n }\n\n _touch() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n private _updateRadioButtonNames(): void {\n if (this._radios) {\n this._radios.forEach(radio => {\n radio.name = this.name;\n });\n }\n }\n\n /** Aggiorna il radio button `selected` a seconda del suo _value. */\n private _updateSelectedRadioFromValue(): void {\n this._selected = null;\n this._radios.forEach(radio => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n\n /** Invia l'evento change con la selezione corrente e il valore del gruppo. */\n _emitChangeEvent(): void {\n if (this._isInitialized) {\n this.change.emit(new RadioChange(this._selected, this._value));\n }\n }\n\n _markRadiosForCheck() {\n if (this._radios) {\n this._radios.forEach(radio => radio._markForCheck());\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this._controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n\n/**\n * Un radio button con design bootstrap italia. Supporta tutte le funzionalità di una radio HTML5,\n * ed espone una API simile. Una `<it-radio-button>` può essere checked, unchecked, o disabled.\n */\n@Component({\n selector: 'it-radio-button',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n exportAs: 'itRadioButton',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RadioButtonComponent implements OnInit, OnDestroy {\n\n id = `radio-${identifier++}`;\n\n /** Attributo 'name' usato per raggruppare i radio button per un'unica selezione. */\n @Input() name: string;\n\n /** L'etichetta delradio button. */\n @Input()\n label: string;\n\n /** se il radio button è checked. */\n @Input()\n get checked(): boolean { return this._checked; }\n set checked(value: boolean) {\n const newCheckedState = _coerceBooleanProperty(value);\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n if (newCheckedState && this.radioGroup && this.radioGroup.value !== this.value) {\n this.radioGroup.selected = this;\n } else if (!newCheckedState && this.radioGroup && this.radioGroup.value === this.value) {\n this.radioGroup.selected = null;\n }\n\n if (newCheckedState) {\n this._radioDispatcher.notify(this.id, this.name);\n }\n\n this._changeDetector.markForCheck();\n }\n }\n\n /** Il valore di questo radio button. */\n @Input()\n get value(): any { return this._value; }\n set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n if (this.radioGroup !== null) {\n if (!this.checked) {\n this.checked = this.radioGroup.value === value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n\n /** Se il radio button è disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.radioGroup !== null && this.radioGroup.disabled);\n }\n set disabled(value: boolean) {\n const newDisabledState = !!value;\n if (this._disabled !== newDisabledState) {\n this._disabled = newDisabledState;\n this._changeDetector.markForCheck();\n }\n }\n\n /**\n * Evento emesso quando il valore `checked` del radio button cambia.\n */\n @Output() readonly change: EventEmitter<RadioChange> = new EventEmitter<RadioChange>();\n\n /** Il radio group padre. Può essere presente o meno. */\n radioGroup: RadioGroupDirective;\n\n /** Se il radio button è checked. */\n private _checked = false;\n\n /** Se il radio button è disabled. */\n private _disabled: boolean;\n\n /** il valore assegnato al radio button. */\n private _value: any = null;\n\n private _removeUniqueSelectionListener: () => void = () => { };\n\n constructor(\n @Optional() radioGroup: RadioGroupDirective,\n private _changeDetector: ChangeDetectorRef,\n private _radioDispatcher: UniqueSelectionDispatcher\n ) {\n this.radioGroup = radioGroup;\n\n this._removeUniqueSelectionListener =\n _radioDispatcher.listen((id: string, name: string) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n });\n }\n\n /**\n * Segna il radio button come da controllare per la change detection.\n */\n _markForCheck() {\n this._changeDetector.markForCheck();\n }\n\n ngOnInit(): void {\n if (this.radioGroup) {\n // Se il radio button è all'interno di un gruppo, determina se deve essere selezionato\n this.checked = this.radioGroup.value === this._value;\n // Copia il `name` del radio group\n this.name = this.radioGroup.name;\n }\n }\n\n ngOnDestroy() {\n this._removeUniqueSelectionListener();\n }\n\n private _emitChangeEvent(): void {\n this.change.emit(new RadioChange(this, this._value));\n }\n\n _onInputChange(event: Event) {\n event.stopPropagation();\n\n const groupValueChanged = this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this._emitChangeEvent();\n\n if (this.radioGroup) {\n this.radioGroup._controlValueAccessorChangeFn(this.value);\n this.radioGroup._touch();\n if (groupValueChanged) {\n this.radioGroup._emitChangeEvent();\n }\n }\n }\n}\n","<div class=\"form-check\">\n <input type=\"radio\"\n focusMouse\n [id]=\"id\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n (change)=\"_onInputChange($event)\">\n <label\n [attr.for]=\"id\">{{label}}</label>\n</div>\n","\nimport { Injectable } from '@angular/core';\nimport { NgbTooltipConfig } from '@ng-bootstrap/ng-bootstrap';\n\n/**\n * Servizio di configurazione per la direttiva ItPopover.\n * Il servizio può essere iniettato, tipicamente in un root component, per impostare i valori delle proprietà in\n * modo tale da fornire i valori di default per tutti i popover utilizzati in un'applicazione.\n */\n@Injectable({providedIn: 'root'})\nexport class ItTooltipConfig extends NgbTooltipConfig {}\n","/**\n * @license\n * Copyright Angular ng-bootstrap team All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://raw.githubusercontent.com/ng-bootstrap/ng-bootstrap/master/LICENSE\n */\nimport {\n Directive,\n Input,\n OnInit,\n OnDestroy,\n OnChanges,\n Injector,\n Renderer2,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n NgZone,\n Inject,\n ApplicationRef,\n ChangeDetectorRef,\n} from '@angular/core';\n\n\nimport { ItTooltipConfig } from './tooltip.config';\n\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Una direttiva per la creazione di un tooltip.\n */\n@Directive({\n selector: '[itTooltip]', // tslint:disable-line\n exportAs: 'itTooltip'\n})\nexport class ItTooltip extends NgbTooltip implements OnInit, OnDestroy, OnChanges {\n /**\n * The string content or a `TemplateRef` for the content to be displayed in the popover.\n *\n * If the title and the content are falsy, the popover won't open.\n */\n @Input() itTooltip: string | TemplateRef<any>| null | undefined;\n\n constructor(\n _elementRef: ElementRef<HTMLElement>, _renderer: Renderer2, injector: Injector,\n viewContainerRef: ViewContainerRef, config: ItTooltipConfig, _ngZone: NgZone,\n @Inject(DOCUMENT) _document: any, _changeDetector: ChangeDetectorRef,\n applicationRef: ApplicationRef) {\n super(_elementRef, _renderer, injector, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef);\n }\n \n ngOnInit(): void {\n super.ngOnInit();\n super.ngbTooltip = this.itTooltip;\n this.tooltipClass = 'it-tooltip-window';\n }\n \n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NgbTooltipModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { ItTooltip } from \"./tooltip.directive\";\n\n@NgModule({\n declarations: [ItTooltip],\n exports: [ItTooltip],\n imports: [CommonModule, NgbTooltipModule]\n})\nexport class ItTooltipModule {}","import * as t from 'io-ts';\n\nexport const ButtonSize = t.keyof({\n lg: null,\n sm: null,\n xs: null,\n});\n\nconst LG = 'lg';\nconst SM = 'sm';\nconst XS = 'xs';\n\nexport const BUTTON_SIZES = {\n LG: LG,\n SM: SM,\n XS: XS,\n};\n","export enum IconSizeEnum {\n sx = 'icon-xs',\n sm = 'icon-sm',\n lg = 'icon-lg',\n xl = 'icon-xl',\n default = ''\n}\n\nexport enum IconColorEnum {\n default = 'default',\n primary = 'primary',\n secondary = 'secondary',\n info = 'info',\n success = 'success',\n warning = 'warning',\n danger = 'danger',\n disable = 'disable',\n light = 'light',\n white = 'white',\n}\n\nexport enum IconBackgroundColorEnum {\n light = 'light',\n dark = 'dark',\n}\n\n","import * as t from 'io-ts';\n\n\nexport enum VerticalAlign {\n top = \"top\",\n middle = 'middle',\n bottom = 'bottom'\n}\n\nexport enum HorizontalAlign {\n left = 'left',\n right = 'right'\n}\n\nexport const HORIZONTAL_ALIGN = t.keyof(HorizontalAlign);\nexport const VERTICAL_ALIGN = t.keyof(VerticalAlign);\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input} from '@angular/core';\nimport {IconBackgroundColorEnum, IconColorEnum, IconSizeEnum} from '../enums/icons.enum';\nimport { HorizontalAlign, VerticalAlign, VERTICAL_ALIGN } from '../models/Alignment';\n\n@Component({\n selector: 'it-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconComponent {\n\n private static readonly ICON_BASE_URL = 'bootstrap-italia/dist/svg/sprites.svg#';\n\n constructor(private _cdr: ChangeDetectorRef) { }\n\n changeColor(color: IconColorEnum) {\n if(this.color !== color) {\n this.color = color;\n this._cdr.markForCheck();\n }\n }\n\n @Input() rounded: boolean = false;\n @Input() roundedColor: IconColorEnum = null;\n\n get roundedColorClass(): string {\n return this.roundedColor ? ' rounded-' + this.roundedColor : '';\n }\n\n\n @Input() set icon(newIcon: string) {\n if(newIcon) {\n this.svgPath = IconComponent.ICON_BASE_URL + newIcon;\n this.iconName = newIcon;\n } else {\n this.svgPath = null;\n }\n }\n\n protected iconName: string = '';\n\n @Input() wai = 'wai';\n\n @Input() size: IconSizeEnum = IconSizeEnum.default;\n @Input() color: IconColorEnum = IconColorEnum.primary;\n @Input() bgColor: IconBackgroundColorEnum = null;\n\n @Input() padded = false;\n @Input() expand = false;\n\n /**\n * Allineamento orizzontale dell'icona rispetto al contenitor: 'left' | 'right'\n */\n @Input() position: HorizontalAlign = HorizontalAlign.right;\n\n private _verticalAlign: VerticalAlign = VerticalAlign.middle;\n\n /**\n * Allineamento verticale dell'icona rispetto al contenitore: 'top' | 'middle' | 'bottom'\n */\n get verticalAlign() {\n return this._verticalAlign;\n }\n\n @Input() set verticalAlign(value: any) {\n if (VERTICAL_ALIGN.is(value)) {\n this._verticalAlign = value as VerticalAlign;\n } else {\n this._verticalAlign = VerticalAlign.middle;\n }\n }\n\n svgPath: string = null;\n\n}\n","<ng-container *ngIf = \"iconName && svgPath\">\n <ng-container *ngIf = \"rounded; else svgIcon\">\n <span [class] = \"'rounded-icon' + roundedColorClass\">\n <ng-container *ngTemplateOutlet=\"svgIcon\"></ng-container>\n </span>\n </ng-container>\n</ng-container>\n<ng-template #svgIcon>\n <svg\n class=\"icon {{iconName}} {{size}} icon-{{color}} {{ bgColor ? 'bg-' + bgColor : '' }} {{position}} align-{{verticalAlign}}\" \n [class.icon-expand]=\"expand\" [class.icon-padded]=\"padded\">\n\n <use [attr.xlink:href]=\"svgPath\" [attr.href]=\"svgPath\"></use>\n</svg> \n</ng-template>","import { Injectable } from \"@angular/core\";\nimport { NgbDropdownConfig } from \"@ng-bootstrap/ng-bootstrap\";\n\n@Injectable({providedIn: 'root'})\nexport class ItDropdownConfig extends NgbDropdownConfig {}","\nimport {\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n NgZone,\n AfterContentInit,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n Optional,\n OnChanges,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport { NgbDropdown, NgbDropdownAnchor, NgbDropdownItem, NgbDropdownMenu, NgbDropdownToggle, NgbNavbar } from '@ng-bootstrap/ng-bootstrap';\nimport { ItDropdownConfig } from './dropdown.config';\n\n@Directive({selector: '.navbar'})\nexport class ItNavbar extends NgbNavbar {\n}\n\n/**\n * A directive you should put on a dropdown item to enable keyboard navigation.\n * Arrow keys will move focus between items marked with this directive.\n *\n * @since 4.1.0\n */\n@Directive({\n selector: '[itDropdownItem]'\n})\nexport class ItDropdownItem extends NgbDropdownItem {\n constructor(elementRef: ElementRef<HTMLElement>, _renderer: Renderer2) {\n super(elementRef, _renderer);\n }\n}\n\n/**\n * A directive that wraps dropdown menu content and dropdown items.\n */\n@Directive({\n selector: '[itDropdownMenu]',\n host: {\n '[attr.data-popper-placement]': 'placement'\n }\n})\nexport class ItDropdownMenu extends NgbDropdownMenu implements AfterContentInit {\n @ContentChildren(ItDropdownItem) menuItems: QueryList<ItDropdownItem>;\n\n constructor(\n @Inject(forwardRef(() => ItDropdown)) public dropdown: ItDropdown, _elementRef: ElementRef<HTMLElement>) {\n super(dropdown, _elementRef);\n }\n\n ngAfterContentInit(): void {\n super.menuItems = this.menuItems;\n }\n\n\n\n}\n\n/**\n * A directive to mark an element to which dropdown menu will be anchored.\n *\n * This is a simple version of the `NgbDropdownToggle` directive.\n * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support\n * for events other than click.\n *\n * @since 1.1.0\n */\n@Directive(\n {selector: '[itDropdownAnchor]'})\nexport class ItDropdownAnchor extends NgbDropdownAnchor {\n constructor(\n @Inject(forwardRef(() => ItDropdown)) public dropdown: ItDropdown, _elementRef: ElementRef<HTMLElement>) {\n super(dropdown, _elementRef)\n }\n}\n\n/**\n * A directive to mark an element that will toggle dropdown via the `click` event.\n *\n * You can also use `NgbDropdownAnchor` as an alternative.\n */\n@Directive({\n selector: '[itDropdownToggle]',\n host: {\n '[class]': 'placement'\n },\n providers: [{provide: ItDropdownAnchor, useExisting: forwardRef(() => ItDropdownToggle)}]\n})\nexport class ItDropdownToggle extends NgbDropdownToggle {\n constructor(@Inject(forwardRef(() => ItDropdown)) public dropdown: ItDropdown, elementRef: ElementRef<HTMLElement>) {\n super(dropdown, elementRef);\n }\n}\n\n/**\n * A directive that provides contextual overlays for displaying lists of links and more.\n */\n@Directive({selector: '[itDropdown]', exportAs: 'itDropdown'})\nexport class ItDropdown extends NgbDropdown implements AfterContentInit, OnChanges, OnDestroy {\n\n @ContentChild(ItDropdownMenu, {static: false}) _itMenu: ItDropdownMenu;\n @ContentChild(ItDropdownAnchor, {static: false}) _itAnchor: ItDropdownAnchor;\n\n /**\n * An event fired when the dropdown is opened or closed.\n *\n * The event payload is a `boolean`:\n * * `true` - the dropdown was opened\n * * `false` - the dropdown was closed\n */\n @Output() openChange = new EventEmitter<boolean>();\n\n constructor(\n _changeDetector: ChangeDetectorRef, config: ItDropdownConfig,\n @Inject(DOCUMENT) _document: any, _ngZone: NgZone, _elementRef: ElementRef<HTMLElement>,\n _renderer: Renderer2, @Optional() itNavbar: ItNavbar) {\n super(_changeDetector, config, _document, _ngZone, _elementRef, _renderer, itNavbar);\n }\n\n ngAfterContentInit() {\n super[\"_menu\"] = this._itMenu;\n super[\"_anchor\"] = this._itAnchor;\n\n super.ngAfterContentInit();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n super.ngOnChanges(changes);\n }\n\n ngOnDestroy() { super.ngOnDestroy(); }\n\n}","import { ChangeDetectorRef, ContentChild, ContentChildren, Directive, Host, HostBinding, HostListener, Input, Optional, QueryList } from '@angular/core';\nimport { ThemeColor } from '../models/ThemeColor';\nimport { ButtonSize } from '../models/ButtonSize';\nimport { Util } from '../util/util';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconColorEnum } from '../enums/icons.enum';\nimport { ItDropdownToggle } from '../dropdown/dropdown.directive';\nimport { ProgressBarComponent } from '../progress-bar/progress-bar.component';\n\n\n/**\n * Un bottone con design bootstrap italia. Supporta tutte le funzionalità di un bottone HTML5.\n */\n@Directive({\n selector: '[itButton]',\n exportAs: 'itButton'\n})\nexport class ItButtonDirective {\n private _isDropdownButton: boolean = false;\n constructor(@Optional() @Host() dropdownToggle: ItDropdownToggle, private _cdr: ChangeDetectorRef) {\n this._isDropdownButton = !!dropdownToggle;\n }\n\n private isLightColor(color: string): boolean {\n return color === IconColorEnum.light || color === IconColorEnum.info || \n color === IconColorEnum.white;\n }\n\n @Input() autoUpdateIconColor = true;\n\n @Input('itButton')\n set color(value: any) {\n if (ThemeColor.is(value)) {\n this._color = value;\n } else {\n this._color = this._isDropdownButton ? \"dropdown\" : IconColorEnum.primary;\n }\n if(this.autoUpdateIconColor) {\n this.updateButtonIconColor();\n }\n }\n private _color;\n\n private updateButtonIconColor() {\n this.iconComponents?.forEach(icon => {\n let newIconColor = IconColorEnum.primary;\n if(this._color === \"dropdown\") {\n newIconColor = IconColorEnum.primary;\n } else if(this.isLightColor(this._color)) {\n newIconColor = IconColorEnum.default;\n } else {\n newIconColor = IconColorEnum.white;\n }\n icon.changeColor(newIconColor);\n });\n \n }\n\n /**\n * Stabilisce il colore del pulsante a seconda delle classi di bootstrap.\n * Può avere valori:\n * <ul>\n * <li> primary\n * <li> secondary\n * <li> danger\n * <li> warning\n * <li> info\n * <li> success\n * <li> light\n * <li> dark\n * </ul>\n */\n get color(): any {\n return this._color;\n }\n\n\n /**\n * Se presente, il pulsante avrà un effetto di trasparenza e non reagirà al click\n */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) { this._disabled = Util.coerceBooleanProperty(value); }\n private _disabled = false;\n\n private _onFocus = false;\n @HostListener('focus')\n onFocus() {\n this._onFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._onFocus = false;\n }\n\n @ContentChildren(IconComponent) iconComponents: QueryList<IconComponent>;\n @ContentChild(ProgressBarComponent) progressBar: ProgressBarComponent;\n\n /**\n * Stabilisce se lo stile del pulsante avrà un contorno.\n * Accetta una espressione booleana o può essere usato come attributo senza valore.\n * Deve funzionare solo in congiunzione con un colore definito, altrimenti l'attributo viene ignorato.\n */\n @Input()\n get outline(): boolean { return this._outline; }\n set outline(value: boolean) { this._outline = Util.coerceBooleanProperty(value); }\n private _outline = false;\n\n /**\n * Indica se il pulsante occupa tutta l'ampiezza a sua disposizione.\n */\n @Input()\n get block(): boolean { return this._block; }\n set block(value: boolean) { this._block = Util.coerceBooleanProperty(value); }\n private _block = false;\n\n\n\n \n\n /**\n * Indica la grandezza del pulsante. Può assumere i valori:\n * <ul>\n * <li> lg\n * <li> sm\n * <li> xs\n * </ul>\n */\n @Input()\n get size(): any {\n return this._size;\n }\n set size(value: any) {\n if (ButtonSize.is(value)) {\n this._size = value;\n } else {\n this._size = undefined;\n }\n }\n private _size;\n \n @HostBinding('class')\n get hostClasses(): string {\n let cssClass = 'btn';\n \n if (this.color) {\n if (this.outline) {\n cssClass += ` btn-outline-${this.color}`;\n } else {\n cssClass += ` btn-${this.color}`;\n }\n }\n\n if (this.size) {\n cssClass += ` btn-${this.size}`;\n }\n\n if (this.block) {\n cssClass += ' btn-block';\n }\n\n if (this.disabled) {\n cssClass += ' disabled';\n }\n\n if(this._onFocus) {\n cssClass += ' focus--mouse';\n }\n\n if(this.iconComponents?.length && !this.progressBar) {\n cssClass += ' btn-icon';\n }\n\n if(this.progressBar) {\n cssClass += ' btn-progress';\n }\n\n return cssClass;\n }\n\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { IconComponent } from \"./icon.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [IconComponent],\n exports: [IconComponent]\n})\nexport class ItIconModule {}","import { NgModule } from \"@angular/core\";\nimport { ItIconModule } from \"../icon/icon.module\";\nimport { ItButtonDirective } from \"./button.directive\";\n\n@NgModule({\n declarations: [ItButtonDirective],\n imports: [ItIconModule],\n exports: [ItButtonDirective]\n})\nexport class ItButtonModule {}","import { Directive, ElementRef, Input, HostBinding } from '@angular/core';\nimport { ThemeColor, THEME_COLORS } from '../models/ThemeColor';\nimport { Util } from '../util/util';\n\n/**\n * Una badge con design bootstrap italia.\n */\n@Directive({\n selector: '[itBadge]', // tslint:disable-line\n exportAs: 'itBadge'\n})\nexport class BadgeDirective {\n\n /**\n * (Opzionale) indica il colore del badge. Può essere `primary`, `secondary`, `danger`, `warning`, `info`, `success`, `light` o `dark`.\n * Se non viene fornito o il valore è diverso da quelli previsti il suo valore di default è `light`.\n */\n @Input()\n get badgeColor(): any {\n return this._badgeColor;\n }\n set badgeColor(value: any) {\n if (ThemeColor.is(value)) {\n this._badgeColor = value;\n } else {\n this._badgeColor = THEME_COLORS.LIGHT;\n }\n }\n private _badgeColor = THEME_COLORS.LIGHT;\n\n /**\n * La direttiva che abilita l'elemento come badge. Mostra il testo come contenuto del badge.\n * Se valutato ad `undefined`, `null` o stringa vuota il badge non viene mostrato.\n */\n @Input('itBadge')\n @HostBinding('innerText')\n get badgeText(): string { return this._badgeText; }\n set badgeText(value: string) {\n if (value) {\n this._badgeText = value;\n } else {\n this._badgeText = '';\n }\n }\n private _badgeText = '';\n\n private _isPill = false;\n /**\n * Indica se il badge è arrotondato o meno.\n */\n @Input()\n get isPill(): boolean { return this._isPill; }\n set isPill(value: boolean) {\n this._isPill = Util.coerceBooleanProperty(value);\n }\n\n private getBadgeColorClassName(): string {\n return `bg-${this._badgeColor}`;\n }\n\n @HostBinding('class')\n get hostClasses(): string {\n return [\n 'badge',\n this.getBadgeColorClassName(),\n this.isPill ? 'rounded-pill' : '',\n ].join(' ');\n }\n\n constructor(private el: ElementRef) { }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { NgbCollapseConfig } from \"@ng-bootstrap/ng-bootstrap\";\n\n@Injectable({providedIn: 'root'})\nexport class ItCollapseConfig extends NgbCollapseConfig {\n \n}","import { Directive, Input, ElementRef, NgZone, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, Output, EventEmitter} from '@angular/core';\nimport { NgbCollapse } from '@ng-bootstrap/ng-bootstrap';\nimport { Util } from '../util/util';\nimport { ItCollapseConfig } from './collapse.config';\n\n/**\n * Per ottimizzare l’ingombro dei contenuti di una pagina si possono usare degli elementi richiudibili\n * (in gergo definiti collassabili o collapse), che possono essere attivati indipendentemente l’uno dall’altro\n */\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[itCollapse]',\n exportAs: 'itCollapse'\n})\nexport class ItCollapseDirective extends NgbCollapse implements OnInit, OnChanges {\n \n constructor(private _cd: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>, _config: ItCollapseConfig, _ngZone: NgZone) {\n super(_elementRef, _config, _ngZone);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n super.collapsed = Util.coerceBooleanProperty(this.itCollapse);\n super.ngbCollapseChange = this.itCollapseChange; \n this._cd.detectChanges();\n }\n\n ngOnChanges({itCollapse}: SimpleChanges): void {\n const coercedValue = Util.coerceBooleanProperty(itCollapse.currentValue);\n super.collapsed = coercedValue;\n super.ngOnChanges({collapsed: itCollapse});\n \n }\n\n /**\n * La direttiva di collapse che opzionalmente contiene il predicato che ne stabilisce\n * che sarà avvalorato a true quando il collapse è espanso, a false altrimenti\n */\n @Input() itCollapse:boolean;\n @Output() itCollapseChange = new EventEmitter<boolean>();\n\n\n get isCollapsed(): boolean {\n return this.collapsed;\n }\n\n show(): void {\n if(this.isCollapsed) {\n super.toggle();\n }\n }\n\n hide(): void {\n if(!this.isCollapsed) {\n super.toggle();\n }\n }\n}\n","import { Component, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\nimport { ItCollapseDirective } from './collapse.directive';\n\nlet identifier = 0;\n\n@Component({\n selector: 'it-collapse-item',\n templateUrl: './collapse-item.component.html',\n styleUrls: ['./collapse-item.component.css']\n})\nexport class ItCollapseItemComponent {\n @ViewChild(ItCollapseDirective, { static: true }) readonly directive: ItCollapseDirective;\n\n id = `collapse-item-${identifier++}`;\n headingId = `${this.id}-heading`;\n\n /**\n * Testo del bottone di apertura/chiusura del collapse item\n */\n @Input()\n get header(): string { return this._header; }\n set header(value: string) { this._header = value; }\n private _header;\n\n /**\n * Evento da emettere quando il collapse sta per essere mostrato\n */\n @Output('show')\n get showEvent(): EventEmitter<ItCollapseItemComponent> { return this._showEvent; }\n set showEvent(value: EventEmitter<ItCollapseItemComponent>) { this._showEvent = value; }\n private _showEvent = new EventEmitter<ItCollapseItemComponent>();\n\n /**\n * Evento da emettere quando il collapse è mostrato\n */\n @Output('shown')\n get shownEvent(): EventEmitter<ItCollapseItemComponent> { return this._shownEvent; }\n set shownEvent(value: EventEmitter<ItCollapseItemComponent>) { this._shownEvent = value; }\n private _shownEvent = new EventEmitter<ItCollapseItemComponent>();\n\n /**\n * Evento da emettere quando il collapse sta per essere nascosto\n */\n @Output('hide')\n get hideEvent(): EventEmitter<ItCollapseItemComponent> { return this._hideEvent; }\n set hideEvent(value: EventEmitter<ItCollapseItemComponent>) { this._hideEvent = value; }\n private _hideEvent = new EventEmitter<ItCollapseItemComponent>();\n\n /**\n * Evento da emettere quando il collapse è nascosto\n */\n @Output('hidden')\n get hiddenEvent(): EventEmitter<ItCollapseItemComponent> { return this._hiddenEvent; }\n set hiddenEvent(value: EventEmitter<ItCollapseItemComponent>) { this._hiddenEvent = value; }\n private _hiddenEvent = new EventEmitter<ItCollapseItemComponent>();\n\n show() {\n this.showEvent.emit(this);\n }\n\n hide() {\n this.hideEvent.emit(this);\n }\n\n shown() {\n this.shownEvent.emit(this);\n }\n\n hidden() {\n this.hiddenEvent.emit(this);\n }\n\n constructor(readonly elementRef: ElementRef) { }\n}\n","<div class=\"collapse-header\" [id]=\"headingId\">\n <button #toggleButton focusMouse data-toggle=\"collapse\" [attr.aria-expanded]=\"!collapse.isCollapsed\" [attr.aria-controls]=\"id\" (click)=\"collapse.toggle()\" [ngClass]=\"{'collapsed' : collapse.isCollapsed}\">\n {{header}}\n </button>\n</div>\n<div [id]=\"id\" #collapse=\"itCollapse\" itCollapse (shown)=\"shown()\" (hidden)=\"hidden()\" role=\"tabpanel\" [attr.aria-labelledby]=\"headingId\">\n <div class=\"collapse-body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, ContentChildren, forwardRef, QueryList,\n Input, HostListener, SimpleChanges, OnChanges } from '@angular/core';\nimport { ItCollapseItemComponent } from './collapse-item.component';\nimport { Util } from '../util/util';\n\nlet identifier = 0;\n\n@Component({\n selector: 'it-collapse-group',\n templateUrl: './collapse-group.component.html',\n styleUrls: ['./collapse-group.component.css']\n})\nexport class ItCollapseGroupComponent implements OnChanges {\n id = `collapse-group-${identifier++}`;\n\n /**\n * Indica se gli item del gruppo sono mutuamente richiudibili (o accordion)\n */\n @Input()\n get accordion(): boolean { return this._accordion; }\n set accordion(value: boolean) { this._accordion = Util.coerceBooleanProperty(value); }\n private _accordion = false;\n\n @ContentChildren(forwardRef(() => ItCollapseItemComponent), { descendants: true })\n private _items: QueryList<ItCollapseItemComponent>; // tslint:disable-line\n\n @HostListener('click', ['$event.target'])\n onClick(target) {\n if (this.accordion) {\n const items = this._items.toArray();\n items.forEach(currentItem => {\n const isTargetPartOfItem = (currentItem.elementRef.nativeElement as HTMLElement).contains(target);\n if (!isTargetPartOfItem) {\n if (!currentItem.directive.isCollapsed) {\n currentItem.directive.toggle();\n }\n }\n });\n }\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (simpleChanges['accordion']) {\n const isAccordion = simpleChanges['accordion'].currentValue;\n if (isAccordion) {\n const items = this._items.toArray();\n items.forEach(currentItem => {\n if (!currentItem.directive.isCollapsed) {\n currentItem.directive.toggle();\n }\n });\n }\n }\n }\n}\n","<div [id]=\"id\" class=\"collapse-div\" role=\"tablist\">\n <ng-content></ng-content>\n</div>","import { NgModule } from \"@angular/core\";\nimport { FocusMouseDirective } from \"./focus-mouse.directive\";\n\n\n@NgModule({\n declarations: [FocusMouseDirective],\n exports: [FocusMouseDirective]\n})\nexport class ItUtilsModule {}","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NgbCollapseModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { ItUtilsModule } from \"../util/utils.module\";\nimport { ItCollapseGroupComponent } from \"./collapse-group.component\";\nimport { ItCollapseItemComponent } from \"./collapse-item.component\";\nimport { ItCollapseDirective } from \"./collapse.directive\";\n\n@NgModule({\n imports: [CommonModule, NgbCollapseModule, ItUtilsModule],\n declarations: [ItCollapseDirective, ItCollapseItemComponent, ItCollapseGroupComponent],\n exports: [ItCollapseDirective, ItCollapseItemComponent, ItCollapseGroupComponent],\n})\nexport class ItCollapseModule {}","import * as t from 'io-ts';\n\nexport const InputType = t.keyof({\n text: null,\n email: null,\n password: null,\n number: null,\n time: null,\n search: null,\n date: null,\n radio: null,\n checkbox: null,\n textarea: null,\n button: null,\n reset: null, \n submit: null,\n 'datetime-local': null,\n hidden: null,\n image: null,\n month: null,\n range: null,\n tel: null,\n url: null,\n week: null,\n datetime: null,\n color: null,\n file: null\n});\n\nconst TEXT = 'text';\nconst EMAIL = 'email';\nconst PASSWORD = 'password';\nconst NUMBER = 'number';\nconst TIME = 'time';\nconst SEARCH = 'search';\nconst DATE = 'date';\n\nexport const INPUT_TYPES = {\n TEXT: TEXT,\n EMAIL: EMAIL,\n PASSWORD: PASSWORD,\n NUMBER: NUMBER,\n SEARCH: SEARCH,\n TIME: TIME,\n DATE: DATE\n};\n","import { PasswordStrengthMeterConfig } from \"./form-input.component\"\n\n/**\n * Classe di utility creata sulla base del seguente sorgente di bootstrap-italia: https://github.com/italia/bootstrap-italia/blob/main/src/js/plugins/input-password.js\n * TODO: Da sostituire una volta che i metodi scoreText, scoreColor, e calculateScore \n * saranno importabili dalla libreria bootstrap-italia.\n */\nexport class FormInputPasswordUtils {\n\n public static readonly DEFAULT_CONFIG = {\n shortPass: 'Password molto debole',\n badPass: 'Password debole',\n goodPass: 'Password sicura',\n strongPass: 'Password molto sicura',\n enterPass: 'Inserisci almeno 8 caratteri e una lettera maiuscola',\n alertCaps: 'CAPS LOCK inserito',\n showText: true,\n minimumLength: 4,\n };\n\n constructor(private _config: PasswordStrengthMeterConfig) {}\n\n /**\n * Returns a value between -1 and 100 to score\n * the user's password.\n *\n * @param string password The password to be checked.\n * @return int\n */\n public calculateScore(password: string) {\n var score = 0\n\n // empty password\n if (password.trim().length === 0) {\n return -2\n }\n\n // password < this._config.minimumLength\n if (password.length < this._config.minimumLength) {\n return -1\n }\n\n // password length\n score += password.length * 4\n score += this._checkRepetition(1, password).length - password.length\n score += this._checkRepetition(2, password).length - password.length\n score += this._checkRepetition(3, password).length - password.length\n score += this._checkRepetition(4, password).length - password.length\n\n // password has 3 numbers\n if (password.match(/(.*[0-9].*[0-9].*[0-9])/)) {\n score += 5\n }\n\n // password has at least 2 sybols\n let symbols: RegExp | string = '.*[!,@,#,$,%,^,&,*,?,_,~]';\n symbols = new RegExp('(' + symbols + symbols + ')')\n if (password.match(symbols)) {\n score += 5\n }\n\n // password has Upper and Lower chars\n if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) {\n score += 10\n }\n\n // password has number and chars\n if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/)) {\n score += 15\n }\n\n // password has number and symbol\n if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([0-9])/)) {\n score += 15\n }\n\n // password has char and symbol\n if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([a-zA-Z])/)) {\n score += 15\n }\n\n // password is just numbers or chars\n if (password.match(/^\\w+$/) || password.match(/^\\d+$/)) {\n score -= 10\n }\n\n if (score > 100) {\n score = 100\n }\n\n if (score < 0) {\n score = 0\n }\n\n return score\n }\n\n /**\n * Checks for repetition of characters in\n * a string\n *\n * @param int rLen Repetition length.\n * @param string str The string to be checked.\n * @return string\n */\n private _checkRepetition(rLen, str) {\n var res = '',\n repeated = false\n for (var i = 0; i < str.length; i++) {\n repeated = true\n for (var j = 0; j < rLen && j + i + rLen < str.length; j++) {\n repeated = repeated && str.charAt(j + i) === str.charAt(j + i + rLen)\n }\n if (j < rLen) {\n repeated = false\n }\n if (repeated) {\n i += rLen - 1\n repeated = false\n } else {\n res += str.charAt(i)\n }\n }\n return res\n }\n\n /**\n * Returns strings based on the score given.\n *\n * @param int score Score base.\n * @return string\n */\n public scoreText(score) {\n\n if (score === -1) {\n return this._config.shortPass;\n } else if (score === -2) {\n return this._config.enterPass;\n }\n\n score = score < 0 ? 0 : score\n\n if (score < 26) {\n return this._config.shortPass\n }\n if (score < 51) {\n return this._config.badPass\n }\n if (score < 76) {\n return this._config.goodPass\n }\n\n return this._config.strongPass\n }\n\n public scoreColor(score) {\n if (score === -1) {\n return 'danger'\n }\n if (score === -2) {\n return 'muted'\n }\n\n score = score < 0 ? 0 : score\n\n if (score < 26) {\n return 'danger'\n }\n if (score < 51) {\n return 'warning'\n }\n if (score < 76) {\n return 'success'\n }\n\n return 'success'\n }\n}","import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: '[itPrefix]'\n})\nexport class ItPrefixDirective {}\n","import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: '[itSuffix]'\n})\nexport class ItSuffixDirective {}","import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: '[itTextPrefix]'\n})\nexport class ItTextPrefixDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[itTextSuffix]'\n})\nexport class ItTextSuffixDirective {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n@Pipe({\n name: 'markMatchingText'\n}) \nexport class MarkMatchingTextPipe implements PipeTransform {\n constructor(private domSanitizer: DomSanitizer) {}\n\n transform(allString: string, searchString: string): any {\n if (!searchString) { \n return allString; \n } else if(!allString) {\n return \"\";\n }\n // Check if search string is a substring of pivot string (no case-sensitive)\n const idxOfMatchString = allString.toLowerCase().indexOf(searchString.toLowerCase());\n if(idxOfMatchString !== -1) {\n // retrieve the exactly substring\n const matchingString = allString.substring(idxOfMatchString, idxOfMatchString + searchString.length);\n // Replace original string marking as <strong> (bold) the matchinng substring\n const regEx = new RegExp('(' + matchingString + ')', 'gi')\n const res = allString.replace(regEx, '<mark>$1</mark>');\n return this.domSanitizer.bypassSecurityTrustHtml(res);\n } \n\n return allString;\n \n }\n\n \n}","import {\n Component, Input, ChangeDetectionStrategy, forwardRef,\n AfterContentInit, Output, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef, ContentChildren, QueryList, AfterContentChecked, OnInit, HostListener\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { merge } from 'rxjs';\nimport { InputType, INPUT_TYPES } from '../models/InputType';\nimport { Util } from '../util/util';\nimport { FormInputPasswordUtils } from './form-input-password.utils';\nimport { ItPrefixDirective } from './it-prefix.directive';\nimport { ItSuffixDirective } from './it-suffix.directive';\nimport { ItTextPrefixDirective } from './it-text-prefix.directive';\nimport { ItTextSuffixDirective } from './it-text-suffix.directive';\n\nlet identifier = 0;\n\nexport class FormInputChange {\n constructor(\n public source: FormInputComponent,\n public value: any\n ) { }\n}\n\nexport interface PasswordStrengthMeterConfig {\n /** Testo per il punteggio di forza della password minimo */\n shortPass: string,\n /** Testo per punteggio di forza della password basso\t */\n badPass: string,\n /** Testo per punteggio di forza della password buono\t */\n goodPass: string,\n /** Testo per il punteggio di forza della password massimo\t */\n strongPass: string,\n /** Testo di aiuto */\n enterPass: string,\n /** Testo per avvertire che il CAPS LOCK è inserito\t */\n alertCaps: string,\n /** Lunghezza minima per il calcolo della forza della password (soglia password molto debole)\t */\n showText: boolean,\n /** Attiva/disattiva la visibilità dei messaggi di errore\t */\n minimumLength: number,\n}\n\n\n/**\n * Elemento disponibile per l'autocompletamento del it-form-input\n */\nexport interface AutoCompleteItem {\n /** Valore voce di autocompletamento */\n value: string;\n /** Opzionale. Path in cui ricercare l'immagine dell'avatar da posizionare a sinistra della voce di autocompletamento */\n avatarSrcPath?: string;\n /** Opzionale. Testo in alternativa dell'avatar per accessibilità */\n avatarAltText?: string;\n /** Opzionale. Icona posizionata a sinistra della voce di autocompletamento */\n icon?: string;\n /** Opzionale. Label posizionata a destra della voce di autocompletamento */\n label?: string;\n /** Opzionale. Link relativo all'elemento */\n link?: string\n}\n\n/**\n * Elementi e stili per la creazione di input accessibili e responsivi.\n */\n@Component({\n selector: 'it-input',\n templateUrl: './form-input.component.html',\n styleUrls: ['./form-input.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FormInputComponent),\n multi: true\n }]\n})\nexport class FormInputComponent implements OnInit, AfterContentInit, ControlValueAccessor {\n\n private _formInputPasswordUtils: FormInputPasswordUtils;\n\n @ContentChildren(ItPrefixDirective, {descendants: true}) _prefixChildren: QueryList<ItPrefixDirective>;\n @ContentChildren(ItTextPrefixDirective, {descendants: true}) _textPrefixChildren: QueryList<ItTextPrefixDirective>;\n\n @ContentChildren(ItSuffixDirective, {descendants: true}) _suffixChildren: QueryList<ItSuffixDirective>;\n @ContentChildren(ItTextSuffixDirective, {descendants: true}) _textSuffixChildren: QueryList<ItTextSuffixDirective>;\n\n INPUT_TYPES = INPUT_TYPES;\n\n @ViewChild('inputElement', { static: false })\n private _inputElement: ElementRef;\n\n /**\n * Opzionale. Indica se mostrare gli input readonly nella forma stilizzata come testo normale\n */\n @Input()\n get readonlyPlainText(): boolean { return this._readonlyPlainText; }\n set readonlyPlainText(value: boolean) { this._readonlyPlainText = Util.coerceBooleanProperty(value); }\n private _readonlyPlainText: boolean = false;\n\n\n /**\n * Opzionale. Indica se abilitare il controllo sulla sicurezza della password\n */\n @Input()\n get enablePasswordStrengthMeter(): boolean { return this._enablePasswordStrengthMeter; }\n set enablePasswordStrengthMeter(value: boolean) { this._enablePasswordStrengthMeter = Util.coerceBooleanProperty(value); }\n private _enablePasswordStrengthMeter: boolean = false;\n\n /**\n * Punteggio di sicurezza calcolato in base alla password immessa se enablePasswordStrengthMeter ha valore true\n */\n passwordScore: number = 0;\n\n /**\n * Dimensione dell'input di autocomplete. Di default ha dimensione standard.\n */\n @Input() autocompleteWrapperSize: 'big' | 'default' = 'default';\n\n private _passwordStrengthMeterConfig: PasswordStrengthMeterConfig = FormInputPasswordUtils.DEFAULT_CONFIG;\n\n @Input() set passwordStrengthMeterConfig(newConfig: PasswordStrengthMeterConfig) {\n this._passwordStrengthMeterConfig = {...this._passwordStrengthMeterConfig, ...newConfig};\n }\n\n get passwordStrengthMeterConfig(): PasswordStrengthMeterConfig {\n return this._passwordStrengthMeterConfig;\n }\n\n /**\n * Indica l'id dell'elemento HTML\n */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value;\n }\n private _id = `form-input-${identifier++}`;\n\n /**\n * Indica l'attributo name del componente HTML\n */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n }\n private _name: string;\n\n /**\n * Indica il tipo di campo. Puo' assumere i valori text, email, password e number\n */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n if (InputType.is(value)) {\n if (value === INPUT_TYPES.NUMBER) {\n if (isNaN(Number(this.value))) {\n this.value = '';\n this.onChange();\n }\n }\n this._type = value;\n } else {\n this._type = INPUT_TYPES.TEXT;\n }\n\n this._isPasswordMode = this._type === INPUT_TYPES.PASSWORD;\n this._isPasswordVisible = false;\n this.showAutocompletion = false;\n }\n private _type = INPUT_TYPES.TEXT;\n\n /**\n * Indica il valore della label da visualizzare\n */\n @Input()\n get label(): string { return this._label; }\n set label(value: string) { this._label = value; }\n private _label: string;\n\n /**\n * Indica se la label dell'input deve essere visualizzata dall'utente o solamente visibile per lo screen reader\n */\n @Input()\n get labelVisuallyHidden(): boolean { return this._labelVisuallyHidden; }\n set labelVisuallyHidden(value: boolean) { this._labelVisuallyHidden = value; }\n private _labelVisuallyHidden: boolean = false;\n\n\n /**\n * Indica il valore che avrà l'attributo HTML \"min\" per l'input di tipo number\n */\n @Input()\n get min(): number { return this._min; }\n set min(value: number) { this._min = Util.coerceNumberProperty(value); }\n private _min: number;\n \n /**\n * Indica il valore che avrà l'attributo HTML \"max\" per l'input di tipo number\n */\n @Input()\n get max(): number { return this._max; }\n set max(value: number) { this._max = Util.coerceNumberProperty(value); }\n private _max: number;\n\n /**\n * Indica il valore che avrà l'attributo HTML \"step\" per l'input di tipo number\n */\n @Input()\n get step(): number { return this._step; }\n set step(value: number) { this._step = Util.coerceNumberProperty(value); }\n private _step: number = 1;\n\n\n /**\n * Indica il testo di aiuto sotto la input\n */\n @Input()\n get note(): string { return this._note; }\n set note(value: string) { this._note = value; }\n private _note: string;\n\n /**\n * Indica il testo presente nel campo vuoto. Nel caso sia già presente la label, il placeholder non verrà mostrato\n */\n @Input()\n get placeholder(): string {\n return this._placeholder || '';\n }\n set placeholder(value: string) { this._placeholder = value; }\n private _placeholder: string;\n\n /**\n * Indica l'icona da visualizzare a sinistra del campo di input\n */\n @Input()\n get icon(): string { return this._icon; }\n set icon(value: string) { this._icon = value; }\n private _icon: string;\n\n /**\n * Opzionale.\n * Indica se il campo in questione è disabilitato.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) { this._disabled = Util.coerceBooleanProperty(value); }\n private _disabled = false;\n\n /**\n * Opzionale.\n * Nel caso di input numerico, indica se il campo è una valuta.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get currency(): boolean { return this._currency; }\n set currency(value: boolean) { this._currency = Util.coerceBooleanProperty(value); }\n private _currency = false;\n\n /**\n * Opzionale.\n * Nel caso di input numerico, indica se il campo è una percentuale.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get percentage(): boolean { return this._percentage; }\n set percentage(value: boolean) { this._percentage = Util.coerceBooleanProperty(value); }\n private _percentage = false;\n\n /**\n * Opzionale.\n * Nel caso di input numerico, indica se il campo si deve ridimensionare automaticamente a seconda del valore contenuto in esso.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get adaptive(): boolean { return this._adaptive; }\n set adaptive(value: boolean) { this._adaptive = Util.coerceBooleanProperty(value); }\n private _adaptive = false;\n\n /**\n * Opzionale.\n * Indica se il campo in questione è di sola lettura.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get readonly(): boolean { return this._readonly; }\n set readonly(value: boolean) { this._readonly = Util.coerceBooleanProperty(value); }\n private _readonly = false;\n\n get value(): any { return this._inputElement?.nativeElement?.value; }\n set value(value: any) { \n if(this._inputElement) {\n this._inputElement.nativeElement.value = value;\n } \n }\n\n /**\n * Opzionale.\n * Disponibile solo se il type è search.\n * Indica la lista di elementi ricercabili su cui basare il sistema di autocompletamento della input\n */\n @Input()\n get autoCompleteData(): Array<AutoCompleteItem> { return this._autoCompleteData; }\n set autoCompleteData(value: Array<AutoCompleteItem>) { this._autoCompleteData = value; }\n private _autoCompleteData: Array<AutoCompleteItem>;\n\n /**\n * Evento emesso quando il valore dell'input cambia.\n * Gli eventi di change sono emessi soltanto quando il valore cambia a causa dell'interazione dell'utente\n * con il campo d'input.\n */\n @Output()\n readonly change: EventEmitter<FormInputChange> = new EventEmitter<FormInputChange>();\n\n /**\n * Opzionale.\n * Indica se disabilitare l'avviso di CAPS LOCK attivo\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get disableCapsLockAlert(): boolean { return this._disableCapsLockAlert; }\n set disableCapsLockAlert(value: boolean) { this._disableCapsLockAlert = Util.coerceBooleanProperty(value); }\n private _disableCapsLockAlert = false;\n\n /**\n * Indica se è attivo il CAPS LOCK\n */\n isCapsLockActive = false;\n\n /**\n * La label da mostrare in caso sia attivo il CAPS LOCK\n */\n @Input() capsLockActiveLabel = 'CAPS LOCK inserito';\n\n get isLabelActive() {\n return this._isLabelActive;\n }\n set isLabelActive(value: boolean) {\n const newValue = Util.coerceBooleanProperty(value);\n \n // In alcuni casi la label deve essere sempre posizionata sopra l'input per evitare sovrapposizioni \n // di testo, come in caso di presenza del placeholder o per l'input di tipo \"date\" o \"time\"\n if(newValue || (!this.value && !this.placeholder && this.type !== INPUT_TYPES.TIME && \n this.type !== INPUT_TYPES.DATE && this.type !== INPUT_TYPES.NUMBER)) {\n this._isLabelActive = newValue;\n } else {\n this._isLabelActive = true;\n }\n }\n private _isLabelActive: boolean;\n\n\n get isPasswordMode() {\n return this._isPasswordMode;\n }\n set isPasswordMode(value: boolean) {\n this._isPasswordMode = Util.coerceBooleanProperty(value);\n }\n private _isPasswordMode = false;\n\n get isPasswordVisible() {\n return this._isPasswordVisible;\n }\n set isPasswordVisible(value: boolean) {\n this._isPasswordVisible = Util.coerceBooleanProperty(value);\n this._type = this._isPasswordVisible ? INPUT_TYPES.TEXT : INPUT_TYPES.PASSWORD;\n }\n private _isPasswordVisible = false;\n\n showAutocompletion = false;\n private _isInitialized = false;\n private _controlValueAccessorChangeFn: (value: any) => void = () => { };\n private _onTouched: () => any = () => { };\n\n /** Indica se è stato effettuato il focus sul campo di input */\n focus: boolean = false;\n\n private _emitChangeEvent(): void {\n if (this._isInitialized) {\n this.change.emit(new FormInputChange(this, this.value));\n }\n }\n\n ngOnInit(): void {\n this.isLabelActive = false;\n this._formInputPasswordUtils = new FormInputPasswordUtils(this.passwordStrengthMeterConfig);\n }\n\n\n writeValue(value: any): void {\n this.value = value;\n if (this.value) {\n this.isLabelActive = true;\n }\n\n this.onChange();\n if (this._isInitialized) {\n this._changeDetector.detectChanges();\n }\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this._controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n constructor(private _changeDetector: ChangeDetectorRef) { }\n\n\n ngAfterContentInit(): void {\n this._isInitialized = true;\n\n // Run change detection if the suffix or prefix changes.\n merge(this._prefixChildren.changes, this._suffixChildren.changes,\n this._textPrefixChildren.changes, this._textSuffixChildren.changes\n ).subscribe(() => {\n this._changeDetector.markForCheck();\n });\n \n }\n\n onChange() {\n this._emitChangeEvent();\n this._controlValueAccessorChangeFn(this.value);\n }\n\n onInput() {\n if(this.isPasswordMode && this._enablePasswordStrengthMeter) {\n this.recalculatePasswordStrength();\n }\n\n this.showAutocompletion = this._type === INPUT_TYPES.SEARCH && this.isAutocompletable() && this.value;\n \n this._emitChangeEvent();\n this._controlValueAccessorChangeFn(this.value);\n }\n\n onFocus() {\n this.focus = true;\n this.isLabelActive = true;\n }\n\n onBlur() {\n this.focus = false;\n const inputValue: string = this.value;\n if (!inputValue || inputValue.length === 0) {\n \n this.isLabelActive = false;\n \n if (this.type === INPUT_TYPES.NUMBER) {\n this.value = '';\n }\n }\n }\n\n get noteId() {\n return `${this.id}-note`;\n }\n\n getRelatedEntries() {\n if (this.value) {\n const lowercaseValue = this.value.toLowerCase();\n const lowercaseData = this._autoCompleteData.filter((item) => item.value).map(item => {\n return { ...item, original : item.value, lowercase : item.value.toLowerCase() };\n });\n\n const relatedEntries = [];\n lowercaseData.forEach(lowercaseEntry => {\n const matching = (lowercaseEntry.lowercase).includes(lowercaseValue);\n if (matching) {\n relatedEntries.push(lowercaseEntry);\n }\n });\n\n return relatedEntries;\n } else {\n return [];\n }\n }\n\n isAutocompletable() {\n if (this._autoCompleteData && this._type === INPUT_TYPES.SEARCH) {\n return this._autoCompleteData.length > 0;\n } else {\n return false;\n }\n }\n\n onEntryClick(entry: AutoCompleteItem, event: Event) {\n // Se non è stato definito un link associato all'elemento dell'autocomplete, probabilmente il desiderata \n // non è effettuare la navigazione al default '#', pertanto in tal caso meglio annullare la navigazione.\n if(!entry.link) {\n event.preventDefault();\n }\n this.value = entry.value;\n this.showAutocompletion = false;\n this.onChange();\n }\n\n /**\n * indica se il campo di input è composto da altri elementi accessori come \n * icone o bottoni da posizionare adiacenti al campo di input\n */\n get isInputGroup(): boolean {\n return this._textPrefixChildren.length > 0 || this._prefixChildren.length > 0 || !!this.icon \n || this._suffixChildren.length > 0 || this._textSuffixChildren.length > 0;\n }\n\n\n /**\n * Ricalcola il punteggio di sicurezza in base al valore corrente\n */\n recalculatePasswordStrength(): void {\n this.passwordScore = this._formInputPasswordUtils.calculateScore(this.value);\n }\n \n\n get passwordScoreText(): string {\n return this._formInputPasswordUtils.scoreText(this.passwordScore);\n }\n\n get passwordScoreColor(): string {\n return this._formInputPasswordUtils.scoreColor(this.passwordScore);\n }\n\n get valueLength(): number {\n if(!this.value) {\n return 0;\n }\n return (this.value as string | number).toString().length;\n }\n \n\n @HostListener('window:click', ['$event'])\n @HostListener('window:keydown', ['$event'])\n @HostListener('window:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent): void {\n this.isCapsLockActive = event.getModifierState && event.getModifierState('CapsLock');\n }\n\n\n autocompleteItemTrackByValueFn(index: number, item: AutoCompleteItem) {\n return item.value;\n }\n\n\n /**\n * Incrementa il valore dell'input numerico di tanto quanto vale lo step\n */\n incrementNumberValue(): void {\n if(this.type === INPUT_TYPES.NUMBER) {\n const tempValue = +this.value + this.step;\n if(this.max === undefined || tempValue <= this.max) {\n this.value = tempValue;\n }\n }\n }\n\n /**\n * Decrementa il valore dell'input numerico di tanto quanto vale lo step\n */\n decrementNumberValue(): void {\n if(this.type === INPUT_TYPES.NUMBER ) {\n const tempValue = +this.value - this.step;\n if(this.min === undefined || tempValue >= this.min) {\n this.value = tempValue;\n }\n }\n }\n}\n\n","<div class=\"form-group\" [class.autocomplete-wrapper-big]=\"autocompleteWrapperSize === 'big'\">\n <div class=\"input-group\" *ngIf = \"isInputGroup; else formInputWithLabel\">\n <ng-container *ngIf=\"_textPrefixChildren.length || _prefixChildren.length || icon\">\n <div class=\"input-group-prepend\">\n\n <!-- Gli elementi figli di \"it-input\" con la direttiva \"itTextPrefix\" -->\n <ng-container *ngIf=\"_textPrefixChildren.length || icon\">\n\n <div class=\"input-group-text\" >\n <ng-container *ngIf=\"icon\">\n <it-icon [icon] = \"icon\" size=\"icon-sm\"></it-icon>\n </ng-container>\n\n <ng-container *ngIf=\"_textPrefixChildren.length\">\n <ng-content select = \"[itTextPrefix]\"></ng-content>\n </ng-container>\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"_prefixChildren.length\">\n <!-- Gli elementi figli di \"it-input\" con la direttiva \"itPrefix\" -->\n <ng-content select = \"[itPrefix]\"></ng-content>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"formInputWithLabel\"></ng-container>\n\n <ng-container *ngIf=\"_suffixChildren.length || _textSuffixChildren.length\">\n <div class=\"input-group-append\">\n <!-- Gli elementi figli di \"it-input\" con la direttiva \"itTextSuffix\" -->\n <ng-container *ngIf=\"_textSuffixChildren.length\">\n <div class=\"input-group-text\" >\n <ng-content select = \"[itTextSuffix]\"></ng-content>\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"_suffixChildren.length\">\n <!-- Gli elementi figli di \"it-input\" con la direttiva \"itSuffix\" -->\n <ng-content select = \"[itSuffix]\"></ng-content>\n </ng-container>\n </div>\n </ng-container>\n \n \n </div>\n\n\n\n <ng-template #formInput>\n <input #inputElement\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (change)=\"onChange()\"\n (input)=\"onInput()\"\n [type]=\"type\"\n [id]=\"id\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [class.focus--mouse]=\"focus\"\n [class.input-password]=\"isPasswordMode\"\n [attr.name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [style.width]=\"adaptive && valueLength ? 'calc(44px + ' + valueLength + 'ch)' : null\"\n [ngClass]=\"{\n 'form-control' : (!readonly || !readonlyPlainText) && type !== INPUT_TYPES.NUMBER,\n 'form-control-plaintext' : readonly && readonlyPlainText,\n 'autocomplete' : isAutocompletable()\n }\"\n [attr.aria-describedby]=\"note ? noteId : undefined\"/> \n </ng-template>\n\n\n\n <ng-template #formInputWithLabel>\n <label [attr.for]=\"id\" *ngIf=\"label\" \n [class.visually-hidden]=\"labelVisuallyHidden\"\n [class.input-number-label]=\"type === INPUT_TYPES.NUMBER\"\n [class.active] = \"isLabelActive && !labelVisuallyHidden\" >\n {{label}}\n </label>\n \n <!-- INIZIO gestione input di tipo NUMBER -->\n\n <ng-container *ngIf=\"type === INPUT_TYPES.NUMBER; else formInput\">\n <span class=\"input-number\" \n [class.input-number-adaptive]=\"adaptive\"\n [class.input-number-currency]=\"currency\" \n [class.input-number-percentage]=\"percentage\">\n\n <ng-container [ngTemplateOutlet]=\"formInput\"></ng-container>\n\n <button class=\"input-number-add\" (click)=\"incrementNumberValue()\" focusMouse>\n <span class=\"visually-hidden\">Aumenta valore di {{step}} Euro</span>\n </button>\n <button class=\"input-number-sub\" (click)=\"decrementNumberValue()\" focusMouse>\n <span class=\"visually-hidden\">Diminuisci valore di {{step}} Euro</span>\n </button>\n </span>\n </ng-container>\n\n <!-- FINE gestione input di tipo NUMBER -->\n\n </ng-template>\n\n <small [id]=\"noteId\" class=\"form-text\" *ngIf=\"note\">\n {{note}}\n </small>\n\n\n <!-- INIZIO gestione input di tipo PASSWORD -->\n\n <ng-container *ngIf=\"isPasswordMode\">\n <!-- Icona dell'occhio per la vedere/nascondere la password -->\n <span \n class = \"password-icon\"\n aria-hidden=\"true\"\n (click)=\"isPasswordVisible = !isPasswordVisible\">\n <it-icon [icon]=\"'it-password-' + (isPasswordVisible ? 'invisible' : 'visible')\" size=\"icon-sm\" color=\"default\"></it-icon>\n </span>\n\n <!-- Indicatore di sicurezza della password -->\n <div class=\"password-strength-meter\" *ngIf=\"isPasswordMode && enablePasswordStrengthMeter\">\n <small class=\"form-text\" \n [ngClass] = \"['text-' + passwordScoreColor]\"\n *ngIf = \"passwordStrengthMeterConfig.showText\">{{ passwordScoreText }}\n </small>\n <div class=\"password-meter progress rounded-0 position-absolute\">\n <div class=\"row position-absolute w-100 m-0\">\n <div class=\"col-3 border-start border-end border-white\"></div>\n <div class=\"col-3 border-start border-end border-white\"></div>\n <div class=\"col-3 border-start border-end border-white\"></div>\n <div class=\"col-3 border-start border-end border-white\"></div>\n </div>\n\n <div class=\"progress-bar\" \n [class]=\"['bg-' + passwordScoreColor]\"\n role=\"progressbar\" [attr.aria-valuenow]=\"passwordScore >= 0 ? passwordScore : 0\" aria-valuemin=\"0\" aria-valuemax=\"100\" [style.width.%]=\"passwordScore >= 0 ? passwordScore : 0\">\n </div>\n </div>\n </div>\n\n </ng-container>\n\n <!-- FINE gestione input di tipo PASSWORD -->\n\n\n\n\n <!-- Avviso CAPS LOCK Attivo -->\n <small *ngIf=\"isCapsLockActive && !disableCapsLockAlert && type !== INPUT_TYPES.NUMBER\" class=\"password-caps form-text text-warning position-absolute bg-white w-100\">{{capsLockActiveLabel}}</small>\n\n\n\n <!-- INIZIO gestione AUTOCOMPLETAMENTO -->\n\n\n <!-- Icona lente per autocompletamento -->\n <span class=\"autocomplete-icon\" aria-hidden=\"true\" *ngIf=\"isAutocompletable()\">\n <it-icon icon = \"it-search\" size=\"icon-sm\" color=\"default\"></it-icon>\n </span>\n\n\n <!-- Lista di autocompletamento -->\n <ul class=\"autocomplete-list\" *ngIf=\"isAutocompletable()\" [class.autocomplete-list-show]=\"showAutocompletion\">\n <li *ngFor=\"let entry of getRelatedEntries(); trackBy: autocompleteItemTrackByValueFn\" (click)=\"onEntryClick(entry, $event)\">\n <a [href]=\"entry.link\" >\n <ng-container *ngTemplateOutlet=\"autocompleteItemTemplate\"></ng-container>\n </a>\n <ng-template #autocompleteItemTemplate>\n <div class=\"avatar size-sm\" *ngIf=\"entry.avatarSrcPath\">\n <img [src]=\"entry.avatarSrcPath\" [alt]=\"entry.avatarAltText\">\n </div>\n <it-icon *ngIf=\"entry.icon\" [icon]=\"entry.icon\" size=\"icon-sm\"></it-icon>\n <span class=\"autocomplete-list-text\">\n <span [innerHTML] = \"entry.original | markMatchingText: value\"></span>\n <em *ngIf=\"entry.label\">{{entry.label}}</em>\n </span>\n </ng-template>\n </li>\n </ul>\n\n</div>\n\n <!-- FINE gestione AUTOCOMPLETAMENTO -->","import { Component, Input} from '@angular/core';\nimport { IconColorEnum } from '../enums/icons.enum';\nimport { HorizontalAlign, HORIZONTAL_ALIGN } from '../models/Alignment';\nimport { Util } from '../util/util';\n\nlet identifier = 0;\n\n/**\n * Componente usata per visualizzare una voce di menù all'interno di una dropdown\n */\n@Component({\n selector: 'it-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.css']\n})\nexport class DropdownItemComponent {\n id = `dropdown-item-${identifier++}`;\n\n /**\n * Il link alla pagina verso cui andare al click sull'elemento del dropdown\n */\n @Input()\n get link(): string { return !this.disabled ? this._link : ''; }\n set link(value: string) { this._link = value; }\n private _link = '';\n\n /**\n * Se presente indica che l'elemento viene renderizzato come elemento attivo.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get active(): boolean { return this._active; }\n set active(value: boolean) { this._active = Util.coerceBooleanProperty(value); }\n private _active = false;\n\n /**\n * Se presente indica che l'elemento è disabilitato.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) {\n this._disabled = Util.coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n /**\n * Se presente indica che il testo dell'elemento viene renderizzato più grande.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get large(): boolean { return this._large; }\n set large(value: boolean) { this._large = Util.coerceBooleanProperty(value); }\n private _large = false;\n\n /**\n * La classe dell'icona da usare prima o dopo del testo dell'elemento del dropdown\n */\n @Input()\n get icon(): string { return this._icon; }\n set icon(value: string) { this._icon = value; }\n private _icon = undefined;\n\n /**\n * La posizione dell'icona rispetto al testo dell'elemento del dropdown.\n * Può assumere valori right o left.\n */\n @Input()\n get iconPosition(): HorizontalAlign { return this._iconPosition; }\n set iconPosition(value: any) {\n if (HORIZONTAL_ALIGN.is(value)) {\n this._iconPosition = value as HorizontalAlign;\n } else {\n this._iconPosition = HorizontalAlign.right;\n }\n }\n private _iconPosition = HorizontalAlign.right;\n\n\n @Input()\n get iconColor(): IconColorEnum { return this._iconColor; }\n set iconColor(value: IconColorEnum) { this._iconColor = value; }\n private _iconColor = IconColorEnum.primary;\n\n get dropdownItemClass() {\n return `list-item ${this.iconPosition}-icon`;\n }\n\n get iconClass() {\n return `${this.icon} ${this.iconPosition}`;\n }\n\n}\n","<li [id]=\"id\">\n <a itDropdownItem focusMouse\n [attr.href]=\"link\"\n [attr.tabindex]=\"this.disabled ? -1 : 0\"\n [class]=\"dropdownItemClass\"\n [ngClass]=\"{\n 'large' : large, \n 'active' : active,\n 'disabled' : disabled,\n 'disabled-item-link' : disabled,\n 'left-icon': iconPosition === 'left',\n 'right-icon': iconPosition === 'right'\n }\">\n <span>\n <ng-content></ng-content>\n </span>\n <it-icon *ngIf = \"icon\" [icon]=\"icon\" [position]=\"iconPosition\" [color] = \"iconColor\"></it-icon>\n </a>\n</li>","import {\n Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, QueryList\n} from '@angular/core';\nimport { Util } from '../util/util';\nimport { ThemeColor } from '../models/ThemeColor';\nimport { DropdownItemComponent } from './dropdown-item.component';\nimport { IconColorEnum } from '../enums/icons.enum';\n\nlet identifier = 0;\n\nconst DEFAULT_COLOR = 'dropdown';\nexport type DropdownMenuPlacement = 'bottom-start' | 'top-start' | 'left-start' | 'right-start';\n\n/**\n * Componente usata per attivare o disattivare overlay contestuali per visualizzare elenchi di link e altro ancora con questi menù a tendina\n */\n@Component({\n selector: 'it-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class DropdownComponent {\n id = `dropdown-${identifier++}`;\n\n @ContentChildren(DropdownItemComponent) menuItems: QueryList<DropdownItemComponent>;\n\n\n @Input() menuHeading: string = \"\";\n @Input() expandIcon: string | null = \"it-expand\";\n @Input() expandIconPosition: 'start' | 'end' = 'end';\n\n private _menuPlacement: DropdownMenuPlacement;\n get menuPlacement() {\n return this._menuPlacement;\n }\n @Input() set menuPlacement(value : DropdownMenuPlacement) {\n if(value === 'left-start') {\n this.expandIconPosition = 'start';\n } else if (value === 'right-start') {\n this.expandIconPosition = 'end';\n }\n this._menuPlacement = value;\n }\n\n /**\n * Se presente indica che il dropdown utilizza il tema di colorazione scura.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get dark(): boolean { return this._dark; }\n set dark(value: boolean) { \n this._dark = Util.coerceBooleanProperty(value); \n if(this.autoUpdateMenuItemsIconColor) {\n this.updateMenuItemsIconColor();\n }\n }\n private _dark = false;\n\n /**\n * Se presente indica che le voci del dropdown si sviluppano orizzontalmente.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get fullWidth(): boolean { return this._fullWidth; }\n set fullWidth(value: boolean) { this._fullWidth = Util.coerceBooleanProperty(value); }\n private _fullWidth = false;\n\n /**\n * Il colore del pulsante che attiva il dropdown.\n * Può assumere i valori primary, secondary, danger, warning, info, warning, success, light e dark\n */\n @Input()\n get color(): any { return this._color; }\n set color(value: any) {\n if (ThemeColor.is(value)) {\n this._color = value;\n } else {\n this._color = DEFAULT_COLOR;\n }\n }\n private _color = DEFAULT_COLOR;\n\n /**\n * Il testo presente sul pulsante che attiva il dropdown\n */\n @Input()\n get label(): string { return this._label; }\n set label(value: string) { this._label = value; }\n private _label = '';\n\n\n /**\n * Evento che viene lanciato ogni volta che il dropdown viene aperto\n */\n @Output()\n get onOpen(): EventEmitter<DropdownComponent> { return this._onOpen; }\n set onOpen(value: EventEmitter<DropdownComponent>) { this._onOpen = value; }\n private _onOpen = new EventEmitter<DropdownComponent>();\n\n /**\n * Evento che viene lanciato ogni volta che il dropdown viene chiuso\n */\n @Output()\n get onClose(): EventEmitter<DropdownComponent> { return this._onClose; }\n set onClose(value: EventEmitter<DropdownComponent>) { this._onClose = value; }\n private _onClose = new EventEmitter<DropdownComponent>();\n\n public isOpen: boolean = false;\n\n onOpenChange(isOpen: boolean) {\n this.isOpen = isOpen;\n if(this.isOpen) {\n this.onOpen.emit();\n } else {\n this.onClose.emit();\n }\n }\n\n @Input() autoUpdateMenuItemsIconColor: boolean = true;\n private updateMenuItemsIconColor() {\n this.menuItems?.forEach(item => {\n item.iconColor = this._dark ? IconColorEnum.light : IconColorEnum.primary;\n });\n }\n\n get isDropend(): boolean {\n return this._menuPlacement === 'right-start';\n }\n\n get isDropstart(): boolean {\n return this._menuPlacement === 'left-start';\n }\n\n get isDropup(): boolean {\n return this._menuPlacement === 'top-start';\n }\n\n\n\n}\n","<div itDropdown (openChange)=\"onOpenChange($event)\" \n [placement]=\"menuPlacement\"\n [class.dropstart] = \"isDropstart\"\n [class.dropend] = \"isDropend\"\n [class.dropup] = \"isDropup\">\n <button class=\"dropdown-toggle\" [itButton]=\"color\" itDropdownToggle id=\"dropdownMenuButton\" aria-haspopup=\"true\">\n <it-icon *ngIf = \"expandIcon && expandIconPosition === 'start'\" [icon]=\"expandIcon\" [expand]=\"true\"> </it-icon>\n {{label}}\n <it-icon *ngIf = \"expandIcon && expandIconPosition === 'end'\" [icon]=\"expandIcon\" [expand]=\"true\"> </it-icon>\n </button>\n <div itDropdownMenu aria-labelledby=\"dropdownMenuButton\" [class.dark]=\"dark\" [class.full-width]=\"fullWidth\">\n <div class=\"link-list-wrapper\">\n <div class=\"link-list-heading\" *ngIf = \"menuHeading\">{{menuHeading}}</div>\n <ul class=\"link-list\">\n <ng-content></ng-content>\n </ul>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'it-dropdown-divider',\n templateUrl: './dropdown-divider.component.html',\n styleUrls: ['./dropdown-divider.component.css']\n})\nexport class DropdownDividerComponent {\n\n}\n","<li>\n <span class=\"divider\"></span>\n</li>","import { Component, OnInit, Input, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\n\nlet identifier = 0;\n\n@Component({\n selector: 'it-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html',\n styleUrls: ['./breadcrumb-item.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbItemComponent {\n id = `it-breadcrumb-item-${identifier++}`;\n\n constructor(private _cdRef: ChangeDetectorRef, private _elemRef: ElementRef) { }\n\n /**\n * Il link alla pagina verso cui andare al click di questo elemento del breadcrumb\n */\n @Input()\n get link(): string { return this._link; }\n set link(value: string) { this._link = value; }\n private _link: string;\n\n /**\n * La classe dell'icona da usare prima del testo dell'elemento del breadcrumb\n */\n @Input()\n get icon(): string { return this._icon; }\n set icon(value: string) { this._icon = value; }\n private _icon: string;\n\n @Input()\n get iconColor(): string { return this._iconColor; }\n set iconColor(value: string) { \n if(this._iconColor !== value) {\n this._iconColor = value;\n this._cdRef.detectChanges();\n }\n }\n private _iconColor: string;\n\n get separator(): string { return this._separator; }\n set separator(value: string) { this._separator = value; }\n private _separator: string;\n\n get isLast(): boolean { return this._isLast; }\n set isLast(value: boolean) {\n this._isLast = value;\n const breadcrumbItem = this._elemRef.nativeElement.querySelector('.breadcrumb-item');\n if (this._isLast) {\n breadcrumbItem.setAttribute('aria-current', 'page');\n } else {\n if (breadcrumbItem.hasAttribute('aria-current')) {\n breadcrumbItem.removeAttribute('aria-current');\n }\n }\n this._cdRef.detectChanges();\n }\n private _isLast = false;\n\n @Input() customClass: string = '';\n\n get breadcrumbClass() {\n return 'breadcrumb-item ' + (this.customClass ?? '') + (this.isLast ? ' active' : '');\n }\n\n}\n","<li [class]=\"breadcrumbClass\" [id]=\"id\">\n <it-icon [icon] = \"icon\" [color] = \"iconColor\"></it-icon>\n\n <a [href]=\"link\" focusMouse>\n <ng-content></ng-content>\n </a> \n <span class=\"separator\" *ngIf=\"!isLast\">{{separator}}</span>\n</li>\n","import {\n Component, Input, ContentChildren, QueryList, forwardRef,\n AfterContentInit, OnChanges, OnDestroy, SimpleChanges, ChangeDetectionStrategy\n} from '@angular/core';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { Util } from '../util/util';\nimport { Subscription } from 'rxjs';\n\nconst DEFAULT_SEPARATOR = '/';\nlet identifier = 0;\n\n/**\n * Una componente che indica la posizione della pagina corrente all’interno di una gerarchia di navigazione\n */\n@Component({\n selector: 'it-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbComponent implements AfterContentInit, OnChanges, OnDestroy {\n id = `it-breadcrumb-${identifier++}`;\n\n /**\n * Indica che il breadcrumb utilizza il tema di colorazione scura.\n * Accetta una espressione booleana o può essere usato come attributo senza valore\n */\n @Input()\n get dark(): boolean { return this._dark; }\n set dark(value: boolean) { \n this._dark = Util.coerceBooleanProperty(value); \n }\n private _dark = false;\n\n /**\n * Il carattere che verrà usato come separatore tra gli elementi del breadcrumb\n */\n @Input()\n get separator(): string { return this._separator; }\n set separator(value: string) { this._separator = value ? value : DEFAULT_SEPARATOR; }\n private _separator = DEFAULT_SEPARATOR;\n\n @ContentChildren(forwardRef(() => BreadcrumbItemComponent), { descendants: true })\n private _items: QueryList<BreadcrumbItemComponent>;\n\n @Input() \n customClass: string = '';\n\n @Input() \n ariaLabel: string = 'breadcrumb';\n\n get breadcrumbClass() {\n return 'breadcrumb ' + (this.customClass ?? '') + (this._dark ? ' dark' : '');\n }\n\n private _subscription = Subscription.EMPTY;\n\n ngAfterContentInit() {\n this._reloadBreadcrumbs(this._items);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['separator']) {\n if (!changes['separator'].firstChange) {\n this._reloadBreadcrumbs(this._items);\n }\n } else if (changes['dark']) {\n this._reloadBreadcrumbs(this._items);\n }\n }\n\n ngOnDestroy() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n\n private _reloadBreadcrumbs(currentItems: QueryList<BreadcrumbItemComponent>) {\n currentItems.forEach(item => {\n item.separator = this.separator;\n item.isLast = (item === currentItems.last);\n item.iconColor = item.iconColor || (this._dark ? 'white' : 'primary');\n });\n\n this._subscribeToChanges();\n }\n\n\n private _subscribeToChanges() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n\n this._subscription = this._items.changes.subscribe(items => {\n this._reloadBreadcrumbs(items);\n });\n }\n\n}\n","<nav class=\"breadcrumb-container\" [attr.aria-label]=\"ariaLabel\" [id]=\"id\">\n <ol [ngClass]=\"breadcrumbClass\">\n <ng-content></ng-content>\n </ol>\n</nav>","import {\n Component,\n OnDestroy,\n OnChanges,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Util } from '../util/util';\n\n/**\n * Un componente tab con design bootstrap italia. Indica la singola tab di un insieme di tab.\n * Utilizzabile con il tag `<it-tab>` all'interno di un tag `<it-tab-group>`.\n */\n@Component({\n selector: 'it-tab',\n exportAs: 'itTab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ItTabComponent implements OnChanges, OnDestroy {\n\n /** Testo della tab. */\n @Input() label: string = ''; // tslint:disable-line\n\n /** Aria label del tab. */\n @Input('aria-label') ariaLabel: string; // tslint:disable-line\n\n /**\n * Riferimento all'elemento dal quale il tab è etichettato.\n * Viene resettato se `aria-label` è impostato.\n */\n @Input('aria-labelledby') ariaLabelledby: string; // tslint:disable-line\n\n /** Se la tab è disabilitata. */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value) {\n this._disabled = Util.coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n /**\n * La stringa rappresentante l'icona da utilizzare nel titolo della tab. Es. `it-file`\n */\n @Input() icon: string | null = null;\n\n /** Emette un evento ogni volta che la label cambia. */\n readonly _labelChange = new Subject<void>();\n\n /** Emette un evento ogni volta che l'attributo disabled cambia */\n readonly _disableChange = new Subject<void>();\n\n /**\n * La posizione relativa della tab dove 0 rappresenta il centro, i negativi sono a sinistra\n * e i positivi sono a destra.\n */\n position: number | null = null;\n\n /**\n * Se il tab è attivo.\n */\n isActive = false;\n\n @ViewChild(TemplateRef, { static: true }) _implicitContent: TemplateRef<any>;\n\n ngOnDestroy(): void {\n this._disableChange.complete();\n this._labelChange.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.hasOwnProperty('label')\n || changes.hasOwnProperty('ariaLabel')\n || changes.hasOwnProperty('ariaLabelledby')) {\n this._labelChange.next();\n }\n\n if (changes.hasOwnProperty('disabled')) {\n this._disableChange.next();\n }\n }\n\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import {\n Component,\n AfterContentInit,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n AfterContentChecked,\n OnDestroy\n} from '@angular/core';\nimport { Subscription, merge } from 'rxjs';\nimport { Util } from '../util/util';\nimport { ItTabComponent } from './tab.component';\n\n/** Usato per generare ID univoci per ogni componente tab */\nlet nextId = 0;\n\n/** Un change event emesso ai cambi di selezione. */\nexport class TabChangeEvent {\n /** Indice del tab selezionato. */\n index: number;\n /** Riferimento al tab selezionato. */\n tab: ItTabComponent;\n}\n\n /**\n * Un componente tab-group con design bootstrap italia. Utilizzabile con il tag `<it-tab-group>`.\n *\n * Supporta al suo interno tab di base `<it-tab>` con una label e un contenuto.\n */\n@Component({\n selector: 'it-tab-group',\n exportAs: 'itTabGroup',\n templateUrl: './tab-group.component.html',\n styleUrls: ['./tab-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ItTabGroupComponent implements AfterContentInit, AfterContentChecked, OnDestroy {\n\n @ContentChildren(ItTabComponent) _tabs: QueryList<ItTabComponent>;\n\n /** L'indice del tab che dovrebbe essere selezionato dopo che il contenuto e' stato controllato */\n private _indexToSelect: number | null = 0;\n\n /** Subscription all'aggiunta e rimozione di tab. */\n private _tabsSubscription = Subscription.EMPTY;\n\n /** Subscription ai cambiamenti alle label dei tab. */\n private _tabLabelSubscription = Subscription.EMPTY;\n\n /** Se le tab sono formattate come pill. */\n @Input()\n get pill(): boolean { return this._isPill; }\n set pill(value) {\n this._isPill = Util.coerceBooleanProperty(value);\n }\n private _isPill = false;\n\n\n /** L'indice della tab attiva. */\n @Input()\n get selectedIndex(): number | null { return this._selectedIndex; }\n set selectedIndex(value: number | null) {\n this._indexToSelect = Util.coerceNumberProperty(value, null);\n }\n private _selectedIndex: number | null = null;\n\n /**\n * Se il tab-group ha un tema scuro\n */\n @Input()\n get dark(): boolean { return this._dark; }\n set dark(value) {\n this._dark = Util.coerceBooleanProperty(value);\n }\n private _dark = false;\n\n /** abilita il supporto al data-binding bidirezionale `[(selectedIndex)]` */\n @Output() readonly selectedIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n /** emesso quando la selezione del tab cambia. */\n @Output() readonly selectedTabChange: EventEmitter<TabChangeEvent> =\n new EventEmitter<TabChangeEvent>(true);\n\n private _groupId: number;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\n this._groupId = nextId++;\n }\n\n /**\n * Dopo che il contenuto è controllato, il componente conosce i tab che sono stati definiti\n * e qual è l'indice del tab selezionato.\n */\n ngAfterContentChecked(): void {\n this.changeTab(this._indexToSelect);\n }\n\n changeTab(newIndex: number): void {\n\n // Non fissare `indexToSelect` immediatamente nel setter perchè può accadere che\n // il numero di tab cambi prima che avvenga la change detection.\n const indexToSelect = this._indexToSelect = this._clampTabIndex(newIndex);\n\n // Se il nuovo tab è disabilitato, non fare niente\n if (this._tabs && this._tabs.length > 0 && this._tabs.toArray()[indexToSelect].disabled) {\n return;\n }\n\n if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {\n const tabChangeEvent = this._createChangeEvent(indexToSelect);\n this.selectedTabChange.emit(tabChangeEvent);\n // Emetto questo valore dopo che è partita la change detection\n // dal momento che il contenuto controllato potrebbe contenere questa variabile\n Promise.resolve().then(() => this.selectedIndexChange.emit(indexToSelect));\n }\n\n // Setta la posizione per ogni tab.\n this._tabs.forEach((tab: ItTabComponent, index: number) => {\n tab.position = index - indexToSelect;\n tab.isActive = index === indexToSelect;\n });\n\n if (this._selectedIndex !== indexToSelect) {\n this._selectedIndex = indexToSelect;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngAfterContentInit(): void {\n this._subscribeToTabLabels();\n\n // Sottoscrivi al cambiamento nel numero di tab, così da\n // poter ri-renderizzare il contenuto quando nuove tab vengono aggiunte o rimosse.\n this._tabsSubscription = this._tabs.changes.subscribe(() => {\n const indexToSelect = this._clampTabIndex(this._indexToSelect);\n\n // Mantieni il tab selezionato precedentemente se un nuovo tab è aggiunto o rimosso e non ci sono\n // cambiamenti espliciti che selezionino un tab differente.\n if (indexToSelect === this._selectedIndex) {\n const tabs = this._tabs.toArray();\n\n for (let i = 0; i < tabs.length; i++) {\n if (tabs[i].isActive) {\n // Assegna `_indexToSelect` e `_selectedIndex` in modo da non emettere un change event\n // per evitare al consumer loop infiniti in alcuni casi limite come ad esempio\n // se si aggiunge un tab all'interno dell'evento `selectedIndexChange`.\n this._indexToSelect = this._selectedIndex = i;\n break;\n }\n }\n }\n\n this._subscribeToTabLabels();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n }\n\n private _createChangeEvent(index: number): TabChangeEvent {\n const event = new TabChangeEvent;\n event.index = index;\n if (this._tabs && this._tabs.length) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n }\n\n /**\n * Sottoscrivi a cambiamenti nelle label dei tab. Necessario perchè l'input per la label è sul TabComponent\n * mentre il data binding è all'interno di TabGroupComponent. Per fare in modo che il binding sia aggiornato\n * bisogna sottoscriversi ai cambiamenti e azionare la change detection in maniera manuale.\n */\n private _subscribeToTabLabels() {\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n\n this._tabLabelSubscription = merge(\n ...this._tabs.map(tab => tab._disableChange),\n ...this._tabs.map(tab => tab._labelChange)).subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** fissa l'indice tra 0 e la dimensione dei tab. */\n private _clampTabIndex(index: number | null): number {\n return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n }\n\n /** ritorna un id univoco per ogni label di tab */\n _getTabLabelId(i: number): string {\n return `it-tab-label-${this._groupId}-${i}`;\n }\n\n /** ritorna un id univoco per ogni elemento di contenuto del tab */\n _getTabContentId(i: number): string {\n return `it-tab-content-${this._groupId}-${i}`;\n }\n\n /** restituisce il tabIndex del tab. */\n _getTabIndex(tab: ItTabComponent, idx: number): number | null {\n if (tab.disabled) {\n return null;\n }\n return this.selectedIndex === idx ? 0 : -1;\n }\n\n _handleClick($event: Event, index: number): void {\n $event.preventDefault();\n this.changeTab(index);\n }\n\n}\n","<ul class=\"nav\" [ngClass]=\"{'nav-dark': dark, 'nav-tabs': !pill, 'nav-pills mb-3': pill}\" role=\"tablist\">\n\n <li class=\"nav-item\" *ngFor=\"let tab of _tabs; let i = index\">\n <a\n focusMouse\n href=\"#\"\n role=\"tab\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [ngClass]=\"{ 'nav-link': true, 'active': selectedIndex == i, 'disabled': tab.disabled }\"\n [id]=\"_getTabLabelId(i)\"\n (click)=\"_handleClick($event, i)\"\n >\n <i *ngIf=\"tab.icon\" class=\"it-ico-lg d-block text-center\" [ngClass]=\"tab.icon\"></i>\n {{tab.label}}\n </a>\n </li>\n</ul>\n<div class=\"tab-content\">\n <ng-container *ngFor=\"let tab of _tabs; let i = index\">\n <div\n [ngClass]=\"{ 'tab-pane p-3': true, 'show active': selectedIndex == i }\"\n [id]=\"_getTabContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\">\n <ng-container *ngTemplateOutlet=\"tab._implicitContent\"></ng-container>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NgbDropdownModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { ItButtonModule } from \"../button/button.module\";\nimport { ItIconModule } from \"../icon/icon.module\";\nimport { ItUtilsModule } from \"../util/utils.module\";\nimport { DropdownDividerComponent } from \"./dropdown-divider.component\";\nimport { DropdownItemComponent } from \"./dropdown-item.component\";\nimport { DropdownComponent } from \"./dropdown.component\";\nimport { ItDropdown, ItDropdownAnchor, ItDropdownItem, ItDropdownMenu, ItDropdownToggle, ItNavbar } from \"./dropdown.directive\";\n\n@NgModule({\n declarations: [DropdownComponent, DropdownDividerComponent, DropdownItemComponent, ItDropdown, ItNavbar, ItDropdownMenu, ItDropdownAnchor, ItDropdownToggle, ItDropdownItem],\n imports: [CommonModule, NgbDropdownModule, ItIconModule, ItButtonModule, ItUtilsModule],\n exports: [DropdownComponent, DropdownDividerComponent, DropdownItemComponent, ItDropdown, ItNavbar, ItDropdownMenu, ItDropdownAnchor, ItDropdownToggle, ItDropdownItem]\n})\nexport class ItDropdownModule {}","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ItUtilsModule } from \"../util/utils.module\";\nimport { ItTabGroupComponent } from \"./tab-group.component\";\nimport { ItTabComponent } from \"./tab.component\";\n\n@NgModule({\n declarations: [ItTabComponent, ItTabGroupComponent],\n exports: [ItTabComponent, ItTabGroupComponent],\n imports: [CommonModule, ItUtilsModule]\n})\nexport class ItTabsModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { ProgressBarComponent } from './progress-bar/progress-bar.component';\nimport { RadioButtonComponent, RadioGroupDirective } from './radio/radio.component';\nimport { ToggleComponent } from './toggle/toggle.component';\nimport { BadgeDirective } from './badge/badge.directive';\nimport { FormInputComponent } from './form-input/form-input.component';\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { BreadcrumbItemComponent } from './breadcrumb/breadcrumb-item.component';\nimport { ItPrefixDirective } from './form-input/it-prefix.directive';\nimport { ItSuffixDirective } from './form-input/it-suffix.directive';\nimport { ItTextPrefixDirective } from './form-input/it-text-prefix.directive';\nimport { ItTextSuffixDirective } from './form-input/it-text-suffix.directive';\nimport { ItPopoverModule } from './popover/popover.module';\nimport { ItTooltipModule } from './tooltip/tooltip.module';\nimport { ItCollapseModule } from './collapse/collapse.module';\nimport { ItDropdownModule } from './dropdown/dropdown.module';\nimport { ItIconModule } from './icon/icon.module';\nimport { ItButtonModule } from './button/button.module';\nimport { ItTabsModule } from './tabs/tabs.module';\nimport { MarkMatchingTextPipe } from './form-input/mark-matching-text.pipe';\nimport { ItUtilsModule } from './util/utils.module';\n\n@NgModule({\n imports: [\n \n CommonModule,\n ItUtilsModule,\n FormsModule,\n ItPopoverModule,\n ItTooltipModule,\n ItCollapseModule,\n ItDropdownModule,\n ItIconModule,\n ItButtonModule,\n ItTabsModule,\n ],\n declarations: [\n CheckboxComponent,\n ToggleComponent,\n RadioGroupDirective,\n RadioButtonComponent,\n BadgeDirective,\n ProgressBarComponent,\n FormInputComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ItPrefixDirective,\n ItSuffixDirective,\n ItTextPrefixDirective,\n ItTextSuffixDirective,\n MarkMatchingTextPipe\n ],\n exports: [\n CheckboxComponent,\n ToggleComponent,\n RadioGroupDirective,\n RadioButtonComponent,\n BadgeDirective,\n ProgressBarComponent,\n ItButtonModule,\n FormInputComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n ItIconModule,\n ItPrefixDirective,\n ItSuffixDirective,\n ItTextPrefixDirective,\n ItTextSuffixDirective,\n ItPopoverModule,\n ItTooltipModule,\n ItCollapseModule,\n ItDropdownModule,\n ItUtilsModule\n ]\n})\nexport class DesignAngularKitModule {}\n","/*\n * Public API Surface of design-angular-kit\n */\n\nexport * from './lib/progress-bar/progress-bar.component';\nexport * from './lib/checkbox/checkbox.component';\nexport * from './lib/popover/popover.directive';\nexport * from './lib/popover/popover.config';\nexport * from './lib/popover/popover.module';\nexport * from './lib/toggle/toggle.component';\nexport * from './lib/radio/radio.component';\nexport * from './lib/tooltip/tooltip.directive';\nexport * from './lib/tooltip/tooltip.module';\nexport * from './lib/tooltip/tooltip.config';\nexport * from './lib/button/button.directive';\nexport * from './lib/button/button.module';\nexport * from './lib/badge/badge.directive';\nexport * from './lib/collapse/collapse.directive';\nexport * from './lib/collapse/collapse-item.component';\nexport * from './lib/collapse/collapse-group.component';\nexport * from './lib/collapse/collapse.module';\nexport * from './lib/form-input/form-input.component';\nexport * from './lib/form-input/it-prefix.directive';\nexport * from './lib/form-input/it-suffix.directive';\nexport * from './lib/form-input/it-text-suffix.directive';\nexport * from './lib/form-input/it-text-prefix.directive';\nexport * from './lib/dropdown/dropdown.component';\nexport * from './lib/dropdown/dropdown-item.component';\nexport * from './lib/dropdown/dropdown-divider.component';\nexport * from './lib/breadcrumb/breadcrumb.component';\nexport * from './lib/breadcrumb/breadcrumb-item.component';\nexport * from './lib/tabs/tab-group.component';\nexport * from './lib/icon/icon.component';\nexport * from './lib/icon/icon.module';\nexport * from './lib/dropdown/dropdown.directive';\nexport * from './lib/dropdown/dropdown.config';\nexport * from './lib/dropdown/dropdown.module'\nexport * from './lib/util/utils.module';\nexport * from './lib/util/focus-mouse.directive';\n\nexport * from './lib/design-angular-kit.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["identifier","i1.FocusMouseDirective","i1.UniqueSelectionDispatcher","i2.FocusMouseDirective","i1.ItDropdownToggle","i1.ItCollapseConfig","i3.ItCollapseDirective","i1","i3.IconComponent","i4.MarkMatchingTextPipe","i2.IconComponent","i3.FocusMouseDirective","i4.ItDropdownItem","i3.ItButtonDirective","i4.ItDropdown","i4.ItDropdownMenu","i4.ItDropdownToggle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design-angular-kit.mjs","sources":["../../../projects/design-angular-kit/src/lib/abstracts/abstract.component.ts","../../../projects/design-angular-kit/src/lib/utils/boolean-input.ts","../../../projects/design-angular-kit/src/lib/abstracts/abstract-form-component.ts","../../../projects/design-angular-kit/src/lib/components/core/collapse/collapse.component.ts","../../../projects/design-angular-kit/src/lib/components/core/collapse/collapse.component.html","../../../projects/design-angular-kit/src/lib/components/core/accordion/accordion.component.ts","../../../projects/design-angular-kit/src/lib/components/core/accordion/accordion.component.html","../../../projects/design-angular-kit/src/lib/components/utils/icon/icon.component.ts","../../../projects/design-angular-kit/src/lib/components/utils/icon/icon.component.html","../../../projects/design-angular-kit/src/lib/components/core/alert/alert.component.ts","../../../projects/design-angular-kit/src/lib/components/core/alert/alert.component.html","../../../projects/design-angular-kit/src/lib/components/core/badge/badge.directive.ts","../../../projects/design-angular-kit/src/lib/components/core/progress-bar/progress-bar.component.ts","../../../projects/design-angular-kit/src/lib/components/core/progress-bar/progress-bar.component.html","../../../projects/design-angular-kit/src/lib/components/core/progress-button/progress-button.component.ts","../../../projects/design-angular-kit/src/lib/components/core/progress-button/progress-button.component.html","../../../projects/design-angular-kit/src/lib/components/core/button/button.directive.ts","../../../projects/design-angular-kit/src/lib/components/core/callout/callout.component.ts","../../../projects/design-angular-kit/src/lib/components/core/callout/callout.component.html","../../../projects/design-angular-kit/src/lib/components/core/card/card.component.ts","../../../projects/design-angular-kit/src/lib/components/core/card/card.component.html","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel-item/carousel-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel-item/carousel-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel/carousel.component.ts","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel/carousel.component.html","../../../projects/design-angular-kit/src/lib/components/core/link/link.component.ts","../../../projects/design-angular-kit/src/lib/components/core/link/link.component.html","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown-item/dropdown-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown-item/dropdown-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown/dropdown.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown/dropdown.component.html","../../../projects/design-angular-kit/src/lib/components/core/list/list/list.component.ts","../../../projects/design-angular-kit/src/lib/components/core/list/list/list.component.html","../../../projects/design-angular-kit/src/lib/components/core/list/list-item/list-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/list/list-item/list-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/modal/modal.component.ts","../../../projects/design-angular-kit/src/lib/components/core/modal/modal.component.html","../../../projects/design-angular-kit/src/lib/interfaces/core.ts","../../../projects/design-angular-kit/src/lib/services/notifications/notifications.service.ts","../../../projects/design-angular-kit/src/lib/components/core/notifications/notifications.component.ts","../../../projects/design-angular-kit/src/lib/components/core/notifications/notifications.component.html","../../../projects/design-angular-kit/src/lib/components/core/pagination/pagination.component.ts","../../../projects/design-angular-kit/src/lib/components/core/pagination/pagination.component.html","../../../projects/design-angular-kit/src/lib/components/core/popover/popover.directive.ts","../../../projects/design-angular-kit/src/lib/components/core/rating/rating.component.ts","../../../projects/design-angular-kit/src/lib/components/core/rating/rating.component.html","../../../projects/design-angular-kit/src/lib/components/core/spinner/spinner.component.ts","../../../projects/design-angular-kit/src/lib/components/core/spinner/spinner.component.html","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers-item/steppers-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers-item/steppers-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers-container/steppers-container.component.ts","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers-container/steppers-container.component.html","../../../projects/design-angular-kit/src/lib/components/core/tab/tab-item/tab-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/tab/tab-item/tab-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/tab/tab-container/tab-container.component.ts","../../../projects/design-angular-kit/src/lib/components/core/tab/tab-container/tab-container.component.html","../../../projects/design-angular-kit/src/lib/components/core/table/table.component.ts","../../../projects/design-angular-kit/src/lib/components/core/table/table.component.html","../../../projects/design-angular-kit/src/lib/components/core/tooltip/tooltip.directive.ts","../../../projects/design-angular-kit/src/lib/components/form/checkbox/checkbox.component.ts","../../../projects/design-angular-kit/src/lib/components/form/checkbox/checkbox.component.html","../../../projects/design-angular-kit/src/lib/utils/regex.ts","../../../projects/design-angular-kit/src/lib/validators/it-validators.ts","../../../projects/design-angular-kit/src/lib/pipes/mark-matching-text.pipe.ts","../../../projects/design-angular-kit/src/lib/components/form/input/input.component.ts","../../../projects/design-angular-kit/src/lib/components/form/input/input.component.html","../../../projects/design-angular-kit/src/lib/components/form/password-input/password-input.component.ts","../../../projects/design-angular-kit/src/lib/components/form/password-input/password-input.component.html","../../../projects/design-angular-kit/src/lib/components/form/radio-button/radio-button.component.ts","../../../projects/design-angular-kit/src/lib/components/form/radio-button/radio-button.component.html","../../../projects/design-angular-kit/src/lib/components/form/select/select.component.ts","../../../projects/design-angular-kit/src/lib/components/form/select/select.component.html","../../../projects/design-angular-kit/src/lib/components/form/textarea/textarea.component.ts","../../../projects/design-angular-kit/src/lib/components/form/textarea/textarea.component.html","../../../projects/design-angular-kit/src/lib/utils/file-utils.ts","../../../projects/design-angular-kit/src/lib/components/form/upload-drag-drop/upload-drag-drop.component.ts","../../../projects/design-angular-kit/src/lib/components/form/upload-drag-drop/upload-drag-drop.component.html","../../../projects/design-angular-kit/src/lib/components/form/upload-file-list/upload-file-list.component.ts","../../../projects/design-angular-kit/src/lib/components/form/upload-file-list/upload-file-list.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/back-button/back-button.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/back-button/back-button.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/back-to-top/back-to-top.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/back-to-top/back-to-top.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/header/header.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/header/header.component.html","../../../projects/design-angular-kit/src/lib/components/utils/language-switcher/language-switcher.component.ts","../../../projects/design-angular-kit/src/lib/components/utils/language-switcher/language-switcher.component.html","../../../projects/design-angular-kit/src/lib/components/utils/not-found-page/not-found-page.component.ts","../../../projects/design-angular-kit/src/lib/components/utils/not-found-page/not-found-page.component.html","../../../projects/design-angular-kit/src/lib/components/core/chip/chip.component.ts","../../../projects/design-angular-kit/src/lib/components/core/chip/chip.component.html","../../../projects/design-angular-kit/src/lib/components/core/forward/forward.directive.ts","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer.component.html","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.html","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.html","../../../projects/design-angular-kit/src/lib/modules/components.module.ts","../../../projects/design-angular-kit/src/lib/design-angular-kit.module.ts","../../../projects/design-angular-kit/src/public_api.ts","../../../projects/design-angular-kit/src/design-angular-kit.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\n\n@Component({ template: '' })\nexport class AbstractComponent implements AfterViewInit, OnChanges {\n\n /**\n * The element ID\n */\n @Input() id?: string;\n\n /**\n * Fired when component input attributes was changed\n */\n @Output() public valueChanges: EventEmitter<void>;\n\n constructor(\n protected readonly _renderer: Renderer2,\n protected readonly _elementRef: ElementRef,\n protected readonly _changeDetectorRef: ChangeDetectorRef\n ) {\n this.valueChanges = new EventEmitter<void>();\n }\n\n ngAfterViewInit(): void {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'id');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.valueChanges.next(); // The inputs were changed\n }\n}\n","export type BooleanInput = boolean | 'true' | 'false'\n\n/**\n * Check if boolean input has true value and not is `undefined`\n * @param booleanInput the boolean input\n */\nexport function isTrueBooleanInput(booleanInput?: BooleanInput): boolean {\n return booleanInput !== undefined && (booleanInput === true || booleanInput === 'true');\n}\n\n/**\n * Check if boolean input has false value or is `undefined`\n * @param booleanInput the boolean input\n */\nexport function isFalseBooleanInput(booleanInput?: BooleanInput): boolean {\n return booleanInput === undefined || booleanInput === false || booleanInput === 'false'\n}\n","import { ControlValueAccessor, FormControl, NgControl, ValidatorFn } from '@angular/forms';\nimport {\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n Input,\n OnInit,\n Optional,\n Renderer2,\n Self\n} from '@angular/core';\nimport { AbstractComponent } from './abstract.component';\nimport { BooleanInput, isFalseBooleanInput, isTrueBooleanInput } from '../utils/boolean-input';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({ template: '' })\nexport class AbstractFormComponent<T = any> extends AbstractComponent implements OnInit, ControlValueAccessor, DoCheck {\n\n /**\n * The label of form control\n */\n @Input() label?: string;\n\n /**\n * Validation color display mode (validation triggered if field is touched or not pristine)\n * - <b>true</b>: Always show the validation color\n * - <b>false</b>: Never show validation color\n * - <b>only-valid</b>: Show only valid validation color\n * - <b>only-invalid</b>: Show only invalid validation color\n * @default <b>only-invalid</b>: Show only invalid validation color\n */\n @Input() validationMode: BooleanInput | 'only-valid' | 'only-invalid' = 'only-invalid';\n\n /**\n * Set the disabled state\n */\n @Input() set disabled(isDisabled: BooleanInput) {\n this.setDisabledState(isTrueBooleanInput(isDisabled));\n }\n\n /**\n * Internal form control\n */\n control: FormControl;\n\n constructor(\n @Self() @Optional() protected readonly _ngControl: NgControl,\n protected readonly _translateService: TranslateService,\n protected override readonly _renderer: Renderer2,\n protected override readonly _elementRef: ElementRef,\n protected override readonly _changeDetectorRef: ChangeDetectorRef\n ) {\n super(_renderer, _elementRef, _changeDetectorRef);\n this.control = new FormControl();\n this._ngControl && (this._ngControl.valueAccessor = this);\n }\n\n /**\n * Check if field is invalid (Validation failed)\n */\n get isInvalid(): boolean | undefined {\n if (this.validationMode === 'only-valid' || (this.validationMode !== 'only-invalid' && isFalseBooleanInput(this.validationMode))) {\n return undefined;\n }\n\n if (this._ngControl) {\n return this._ngControl.invalid === true && (!this._ngControl.pristine || this._ngControl.touched === true);\n }\n return this.control.invalid && (!this.control.pristine || this.control.touched);\n }\n\n /**\n * Check if field is valid (Validation successful)\n */\n get isValid(): boolean | undefined {\n if (this.validationMode === 'only-invalid' || (this.validationMode !== 'only-valid' && isFalseBooleanInput(this.validationMode))) {\n return undefined;\n }\n\n if (this._ngControl) {\n return this._ngControl.valid === true && (!this._ngControl.pristine || this._ngControl.touched === true);\n }\n return this.control.valid && (!this.control.pristine || this.control.touched);\n }\n\n /**\n * Return the invalid message string from TranslateService\n */\n get invalidMessage(): Observable<string> {\n if (this.control.hasError('required')) {\n return this._translateService.get('it.errors.required-field');\n }\n\n return this._translateService.get('it.errors.invalid-field');\n }\n\n ngOnInit(): void {\n if (this._ngControl) {\n this.control.setValidators((this._ngControl.control as FormControl).validator);\n }\n }\n\n onChange = (_: T) => {\n };\n\n onTouched = () => {\n };\n\n registerOnChange(fn: any): void {\n this.control.valueChanges.subscribe(fn);\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n return this.control.disable();\n }\n this.control.enable();\n }\n\n writeValue(value: T): void {\n this.control.setValue(value, { emitEvent: false });\n }\n\n /**\n * Mark the control as touched\n */\n markAsTouched(): void {\n if (!this.control.touched) {\n this.onTouched();\n }\n }\n\n /**\n * Fired to check if form control is touched\n */\n ngDoCheck() {\n if (this.control.touched) {\n return;\n }\n if (this._ngControl?.control?.touched) {\n this.control.markAsTouched();\n }\n }\n\n /**\n * Add the validators in control and parent control\n * @param validators the validators\n * @protected\n */\n protected addValidators(validators: ValidatorFn | ValidatorFn[]): void {\n if (!Array.isArray(validators)) {\n validators = [validators];\n }\n\n validators.forEach(validator => {\n if (!this.control.hasValidator(validator)) {\n this.control.addValidators(validator);\n }\n\n if (this._ngControl?.control && !this._ngControl.control.hasValidator(validator)) {\n this._ngControl.control.addValidators(validator);\n }\n });\n }\n\n /**\n * Reports whether the control with the given path has the error specified. <br/>\n * If the control is not present, false is returned.\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n * @returns whether the given error is present in the control at the given path.\n */\n public hasError(errorCode: string, path?: Array<string | number> | string): boolean {\n if (this._ngControl) {\n return this._ngControl.hasError(errorCode, path);\n }\n return this.control.hasError(errorCode, path);\n }\n\n /**\n * Reports error data for the control with the given path.\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n * @returns error data for that particular error. If the control or error is not present,\n * null is returned.\n */\n public getError(errorCode: string, path?: Array<string | number> | string): any {\n if (this._ngControl) {\n return this._ngControl.getError(errorCode, path);\n }\n return this.control.getError(errorCode, path);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { Collapse } from 'bootstrap-italia';\n\n@Component({\n selector: 'it-collapse[id]',\n templateUrl: './collapse.component.html',\n exportAs: 'itCollapse',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CollapseComponent extends AbstractComponent {\n\n /**\n * Enable multiple collapse\n */\n @Input() multi?: BooleanInput;\n\n /**\n * Toggles the collapsible element on invocation\n */\n @Input() opened?: BooleanInput;\n\n /**\n * Custom class\n */\n @Input() class: string = '';\n\n /**\n * This event fires immediately when the show method is called.\n */\n @Output() onShow: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).\n */\n @Output() onShown: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires immediately when the hide method is called.\n */\n @Output() onHide: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).\n */\n @Output() onHidden: EventEmitter<Event> = new EventEmitter();\n\n\n private collapse?: Collapse;\n\n @ViewChild('collapse') private collapseDiv?: ElementRef<HTMLDivElement>;\n\n get isMulti(): boolean {\n return isTrueBooleanInput(this.multi);\n }\n\n get isOpenedOnStart(): boolean {\n return isTrueBooleanInput(this.opened);\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');\n\n if (this.collapseDiv) {\n const element = this.collapseDiv.nativeElement;\n this.collapse = Collapse.getOrCreateInstance(element, {\n toggle: this.isOpenedOnStart\n });\n\n element.addEventListener('show.bs.collapse', event => this.onShow.emit(event));\n element.addEventListener('shown.bs.collapse', event => this.onShown.emit(event));\n element.addEventListener('hide.bs.collapse', event => this.onHide.emit(event));\n element.addEventListener('hidden.bs.collapse', event => this.onHidden.emit(event));\n }\n }\n\n /**\n * Shows a resealable item\n * NOTE: Returns to the caller before the collapsable element has actually been shown (onShown event).\n */\n public show(): void {\n this.collapse?.show();\n }\n\n /**\n * Hides a resealable item\n * NOTE: Returns to the caller before the collapsable element has actually been hidden (onHidden Event)\n */\n public hide(): void {\n this.collapse?.hide();\n }\n\n /**\n * Toggle a collapsible item to show or hide it.\n * NOTE: Returns to the caller before the collapsable element has actually been shown or hidden (onShown and onHidden events)\n */\n public toggle(): void {\n this.collapse?.toggle();\n }\n\n /**\n * Eliminates the possibility of an item being resealable\n */\n public dispose(): void {\n this.collapse?.dispose();\n }\n}\n","<div [id]=\"id\" class=\"collapse {{class}}\" [class.multi-collapse]=\"isMulti\" #collapse>\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CollapseComponent } from '../collapse/collapse.component';\n\n@Component({\n selector: 'it-accordion[id][title]',\n templateUrl: './accordion.component.html',\n exportAs: 'itAccordion',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccordionComponent extends CollapseComponent {\n\n /**\n * Accordion Title\n */\n @Input() title!: string;\n\n isCollapsed: boolean = true;\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');\n\n this.isCollapsed = !this.isOpenedOnStart;\n this.onHide.subscribe(() => {\n this.isCollapsed = true;\n this._changeDetectorRef.detectChanges();\n });\n this.onShow.subscribe(() => {\n this.isCollapsed = false;\n this._changeDetectorRef.detectChanges();\n });\n }\n\n}\n","<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"isOpenedOnStart ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n","import {AfterViewInit, Component, ElementRef, Input, Renderer2} from '@angular/core';\nimport {IconColor, IconName, IconSize} from \"../../../interfaces/icon\";\nimport {BooleanInput} from \"../../../utils/boolean-input\";\n\n@Component({\n selector: 'it-icon[name]',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss']\n})\nexport class IconComponent implements AfterViewInit {\n\n /**\n * The icon name\n */\n @Input() name!: IconName;\n\n /**\n * The icon size\n */\n @Input() size?: IconSize;\n\n /**\n * The icon color\n */\n @Input() color?: IconColor;\n\n /**\n * Create a padding proportional to the size of the surrounding icon.\n */\n @Input() padded?: BooleanInput;\n\n /**\n * Custom class\n */\n @Input() class: string = ''\n\n /**\n * Return the icon href\n */\n get iconHref(): string {\n return `/bootstrap-italia/dist/svg/sprites.svg#it-${this.name}`;\n }\n\n /**\n * Return the icon class\n */\n get iconClass(): string {\n let iconClass = 'icon';\n if (this.size) {\n iconClass += ` icon-${this.size}`\n }\n if (this.color) {\n iconClass += ` icon-${this.color}`\n }\n if (this.class) {\n iconClass += ` ${this.class}`\n }\n return iconClass;\n }\n\n constructor(\n protected readonly _renderer: Renderer2,\n protected readonly _elementRef: ElementRef\n ) {\n }\n\n ngAfterViewInit() {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');\n }\n}\n","<svg [class]=\"iconClass\" [class.icon-padded]=\"padded\">\n <use [attr.href]=\"iconHref\" [attr.xlink:href]=\"iconHref\"></use>\n</svg>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { AlertColor } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\nimport { Alert } from 'bootstrap-italia';\n\n@Component({\n selector: 'it-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n exportAs: 'itAlert',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertComponent extends AbstractComponent {\n\n /**\n * The alert color\n * @default info\n */\n @Input() color: AlertColor = 'info';\n\n /**\n * Inserts the close button\n */\n @Input() dismissible?: BooleanInput;\n\n /**\n * This event fires immediately when the instance's close method is called.\n */\n @Output() onClose: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires when the alert has been closed (it will wait for CSS transitions to complete).\n */\n @Output() onClosed: EventEmitter<Event> = new EventEmitter();\n\n private alert?: Alert;\n\n @ViewChild('alertElement') private alertElement?: ElementRef<HTMLDivElement>;\n\n\n get isDismissible(): boolean {\n return isTrueBooleanInput(this.dismissible);\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (this.alertElement) {\n const element = this.alertElement.nativeElement;\n this.alert = Alert.getOrCreateInstance(element);\n\n element.addEventListener('close.bs.alert', event => this.onClose.emit(event));\n element.addEventListener('closed.bs.alert', event => this.onClosed.emit(event));\n }\n }\n\n /**\n * Close an alert by removing it from the DOM.\n * If the `.fade` and `.show` classes are present in the element, the alert will be closed with a disappearing effect.\n */\n public close(): void {\n this.alert?.close();\n }\n\n /**\n * The alert is removed\n */\n public dispose(): void {\n this.alert?.dispose();\n }\n}\n","<div class=\"alert alert-{{color}}\" #alertElement\n [class.alert-dismissible]=\"isDismissible\"\n [class.fade]=\"isDismissible\"\n [class.show]=\"isDismissible\"\n role=\"alert\">\n <h4 class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n </h4>\n\n <ng-content></ng-content>\n\n <button *ngIf=\"isDismissible\"\n type=\"button\"\n class=\"btn-close\"\n data-bs-dismiss=\"alert\"\n [attr.aria-label]=\"'it.core.close-alert'|translate\">\n <it-icon name=\"close\"></it-icon>\n </button>\n</div>\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { BadgeColor } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n@Directive({\n selector: '[itBadge]',\n exportAs: 'itBadge'\n})\nexport class BadgeDirective {\n\n /**\n * Define the badge color\n */\n @Input('itBadge') color?: BadgeColor;\n\n /**\n * Show rounded badge\n */\n @Input('rounded') rounded?: BooleanInput;\n\n @HostBinding('class')\n get badgeClass(): string {\n let badgeClass = 'badge';\n if (isTrueBooleanInput(this.rounded)) {\n badgeClass += ` rounded-pill`;\n }\n if (this.color) {\n badgeClass += ` bg-${this.color}`;\n }\n\n return badgeClass;\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ProgressBarColor } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n@Component({\n selector: 'it-progress-bar[value]',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProgressBarComponent {\n\n /**\n * The progress bar value [0, 100]\n */\n @Input() value!: number;\n\n /**\n * Show the progress label\n */\n @Input() showLabel?: BooleanInput;\n\n /**\n * Show the progress as indeterminate\n */\n @Input() indeterminate?: BooleanInput;\n\n /**\n * The progress bar color\n */\n @Input() color?: ProgressBarColor;\n\n /**\n * Return the background color\n */\n get bgColor(): string {\n if (!this.color) {\n return '';\n }\n\n return ` bg-${this.color}`;\n }\n\n get isIndeterminate(): boolean {\n return isTrueBooleanInput(this.indeterminate);\n }\n}\n","<div class=\"progress-bar-wrapper\">\n <div *ngIf=\"showLabel\" class=\"progress-bar-label\">\n <span class=\"visually-hidden\">{{'it.core.progress'|translate}} </span>{{value}}%\n </div>\n <div class=\"progress\"\n [class.progress-color]=\"!!color\"\n [class.progress-indeterminate]=\"isIndeterminate\">\n\n <div *ngIf=\"isIndeterminate; else determinate\" class=\"progress-bar{{bgColor}}\" role=\"progressbar\"></div>\n <ng-template #determinate>\n <div class=\"progress-bar{{bgColor}}\" role=\"progressbar\" [style.width.%]=\"value\"\n [attr.aria-valuenow]=\"value\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n </ng-template>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ProgressBarColor } from '../../../interfaces/core';\n\n@Component({\n selector: 'button[itButton][progress]',\n templateUrl: './progress-button.component.html',\n styleUrls: ['./progress-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProgressButtonComponent {\n\n /**\n * Behavior of the progress bar\n * - <b>true</b>: Show indeterminate progress bar\n * - <b>false</b> or <b>undefined</b>: Hide progress bar\n * - <b>number</b> [0, 100]: Assign a specific value to the progress bar\n * @default undefined\n */\n @Input() progress?: number | BooleanInput;\n\n /**\n * The progress bar color\n */\n @Input() progressColor?: ProgressBarColor;\n\n get isProgress(): boolean {\n return typeof this.progress === 'number' || isTrueBooleanInput(this.progress);\n }\n\n get progressValue(): number {\n return typeof this.progress === 'number' ? this.progress : 0;\n }\n\n get isIndeterminate(): boolean {\n return typeof this.progress !== 'number' && isTrueBooleanInput(this.progress);\n }\n\n}\n","<ng-content></ng-content>\n\n<it-progress-bar *ngIf=\"isProgress\"\n [value]=\"progressValue\"\n [indeterminate]=\"isIndeterminate\"\n [color]=\"progressColor\"></it-progress-bar>\n","import { ContentChildren, Directive, Host, HostBinding, HostListener, Input, Optional, QueryList } from '@angular/core';\nimport { ButtonColor, ButtonSize } from '../../../interfaces/core';\nimport { IconComponent } from '../../utils/icon/icon.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ProgressButtonComponent } from '../progress-button/progress-button.component';\n\n@Directive({\n selector: '[itButton]',\n exportAs: 'itButton'\n})\nexport class ButtonDirective {\n\n /**\n * Button color\n */\n @Input('itButton') color?: ButtonColor;\n\n /**\n * Button size\n */\n @Input() size?: ButtonSize;\n\n /**\n * Indicates whether the button occupies all the width available to it.\n */\n @Input() block?: ButtonSize;\n\n /**\n * If button is disabled\n */\n @Input() @HostBinding('disabled') disabled?: BooleanInput;\n\n /**\n * The icon children\n */\n @ContentChildren(IconComponent) icons?: QueryList<IconComponent>;\n\n private isFocus = false;\n\n constructor(\n @Optional() @Host() private progressButtonComponent: ProgressButtonComponent\n ) {\n }\n\n @HostListener('focus')\n onFocus() {\n this.isFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this.isFocus = false;\n }\n\n @HostBinding('class')\n get hostClasses(): string {\n let cssClass = 'btn';\n\n if (this.color) {\n cssClass += ` btn-${this.color}`;\n }\n\n if (this.size) {\n cssClass += ` btn-${this.size}`;\n }\n\n if (this.block) {\n cssClass += ' btn-block';\n }\n\n if (isTrueBooleanInput(this.disabled)) {\n cssClass += ' disabled';\n }\n\n if (this.isFocus) {\n cssClass += ' focus--mouse';\n }\n\n if (this.icons?.length && !this.progressButtonComponent) {\n cssClass += ' btn-icon';\n }\n\n if (!!this.progressButtonComponent) {\n cssClass += ' btn-progress';\n }\n\n return cssClass;\n }\n\n}\n","import {ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport {CalloutAppearance, CalloutColor} from \"../../../interfaces/core\";\nimport { IconName } from '../../../interfaces/icon';\n\n@Component({\n selector: 'it-callout',\n templateUrl: './callout.component.html',\n styles: [`\n .callout-big-text:empty {\n display: none;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CalloutComponent {\n\n /**\n * Callout label\n */\n @Input() set label (value: string | undefined) { this._label = value; }\n get label (): string | undefined { return this._label; }\n private _label: string | undefined = undefined;\n\n /**\n * Callout hiddenLabel\n */\n @Input() set hiddenLabel (value: string | undefined) { this._hiddenLabel = value; }\n get hiddenLabel (): string | undefined { return this._hiddenLabel; }\n private _hiddenLabel: string | undefined = undefined;\n\n /**\n * Callout color\n * - <b>success</b>\n * - <b>danger</b>\n * - <b>warning</b>\n * - <b>important</b>\n * - <b>note</b>\n */\n @Input() set color (value: CalloutColor | undefined) { this._color = value; }\n get color (): CalloutColor | undefined { return this._color; }\n private _color: CalloutColor | undefined = undefined;\n\n /**\n * Callout appearance\n * - <b>default</b>\n * - <b>highlight</b>: Callout version with border only on the left side\n * - <b>more</b>: It looks radically different from the other styles available and is suitable for more extensive texts\n * @default default\n */\n @Input() set appearance (value: CalloutAppearance) { this._appearance = value; }\n get appearance (): CalloutAppearance { return this._appearance; }\n private _appearance: CalloutAppearance = 'default';\n\n /**\n * Custom icon\n */\n @Input() set icon (value: IconName | undefined) { this._icon = value; }\n get icon(): IconName | undefined { return this._icon;}\n private _icon: IconName | undefined = undefined;\n\n get iconName (): IconName {\n if (this._icon) {\n return this._icon;\n }\n\n if (this.appearance === 'more') {\n return 'zoom-in';\n }\n\n switch (this.color) {\n case 'success':\n return 'check-circle';\n case 'warning':\n return 'help-circle';\n case 'danger':\n return 'close-circle';\n case 'important':\n case 'note':\n default:\n return 'info-circle';\n }\n }\n\n}\n","<div class=\"callout {{color}}\" [class.callout-highlight]=\"appearance === 'highlight'\"\n [class.callout-more]=\"appearance === 'more'\">\n <div class=\"callout-title\" *ngIf=\"label\">\n <it-icon [name]=\"iconName\"></it-icon>\n <span *ngIf=\"hiddenLabel\" class=\"visually-hidden\">{{ hiddenLabel }}</span>\n <span>{{ label }}</span>\n </div>\n <p class=\"callout-big-text\">\n <ng-content select=\"[bigText]\"></ng-content>\n </p>\n <ng-content></ng-content>\n</div>","import { Component, Input } from '@angular/core';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n@Component({\n selector: 'it-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class CardComponent extends AbstractComponent {\n\n /**\n * It serves to space the cards in their mobile version.\n * @default true\n */\n @Input() space: BooleanInput = true;\n\n /**\n * To create cards with short or \"preview\" content\n */\n @Input() teaser?: BooleanInput;\n\n /**\n * Card with image\n */\n @Input() hasImage?: BooleanInput;\n\n /**\n * To add rounding effects\n */\n @Input() rounded?: BooleanInput;\n\n /**\n * To add shadow effects\n */\n @Input() shadow?: BooleanInput;\n\n /**\n * Custom card class\n */\n @Input() cardClass: string = '';\n\n /**\n * Custom card body class\n */\n @Input() bodyClass: string = '';\n\n get isSpace(): boolean {\n return isTrueBooleanInput(this.space);\n }\n\n get isTeaser(): boolean {\n return isTrueBooleanInput(this.teaser);\n }\n\n get isHasImage(): boolean {\n return isTrueBooleanInput(this.hasImage);\n }\n\n get isRounded(): boolean {\n return isTrueBooleanInput(this.rounded);\n }\n\n get isShadow(): boolean {\n return isTrueBooleanInput(this.shadow);\n }\n\n}\n","<div class=\"card-wrapper\" [class.card-space]=\"isSpace\">\n <div class=\"card {{cardClass}}\"\n [class.card-teaser]=\"isTeaser\"\n [class.card-img.no-after]=\"isHasImage\"\n [class.shadow]=\"isShadow\"\n [class.rounded]=\"isRounded\">\n\n <ng-content select=\"[beforeBody]\"></ng-content>\n\n <div class=\"card-body {{bodyClass}}\">\n <ng-content></ng-content>\n </div>\n\n </div>\n</div>\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'it-carousel-item',\n templateUrl: './carousel-item.component.html',\n styleUrls: ['./carousel-item.component.scss']\n})\nexport class CarouselItemComponent {\n\n /**\n * The content of item\n */\n @ViewChild(TemplateRef)\n public htmlContent!: TemplateRef<any>;\n\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import { AfterViewInit, Component, ContentChildren, ElementRef, Input, QueryList, ViewChild } from '@angular/core';\nimport { CarouselType } from '../../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { CarouselItemComponent } from '../carousel-item/carousel-item.component';\nimport { CarouselBI } from 'bootstrap-italia';\n\n@Component({\n selector: 'it-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n exportAs: 'itCarousel'\n})\nexport class CarouselComponent implements AfterViewInit {\n\n /**\n * The callout title\n */\n @Input() title?: string;\n\n /**\n * The carousel type\n * @default default\n */\n @Input() type: CarouselType = 'default';\n\n /**\n * Custom class in splide__track element\n */\n @Input() trackClass: string = '';\n\n /**\n * True for full screen (landscape) viewing\n */\n @Input() fullCarousel?: BooleanInput;\n\n /**\n * To indicate that the contained image is of a large type\n */\n @Input() bigImg?: BooleanInput;\n\n /**\n * Card line style\n */\n @Input() lined?: BooleanInput;\n\n @ContentChildren(CarouselItemComponent) items?: QueryList<CarouselItemComponent>;\n\n\n private carousel?: CarouselBI;\n\n @ViewChild('carousel') private carouselDiv!: ElementRef<HTMLDivElement>;\n\n get typeClass(): string {\n const typeClass = 'it-carousel-landscape-abstract';\n return this.type === 'default' ? typeClass : typeClass + `-${this.type}`;\n }\n\n get isFullCarousel(): boolean {\n return isTrueBooleanInput(this.fullCarousel);\n }\n\n get isBigImg(): boolean {\n return isTrueBooleanInput(this.bigImg);\n }\n\n get isLined(): boolean {\n return isTrueBooleanInput(this.lined);\n }\n\n ngAfterViewInit(): void {\n this.carousel = CarouselBI.getOrCreateInstance(this.carouselDiv.nativeElement);\n }\n\n /**\n * Removes CarouselBI features\n */\n public dispose(): void {\n this.carousel?.dispose();\n }\n}\n","<div #carousel class=\"it-carousel-wrapper splide {{typeClass}}\"\n [class.it-full-carousel]=\"isFullCarousel\"\n [class.it-big-img]=\"isBigImg\"\n data-bs-carousel-splide>\n\n <div class=\"it-header-block\" *ngIf=\"title\">\n <div class=\"it-header-block-title\">\n <h2>{{title}}</h2>\n </div>\n </div>\n\n <div class=\"splide__track {{trackClass}}\">\n <ul class=\"splide__list\">\n <li *ngFor=\"let item of items\" class=\"splide__slide\" [class.lined_slide]=\"isLined\">\n <div class=\"it-single-slide-wrapper\">\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </div>\n </li>\n </ul>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\n\n@Component({\n selector: 'it-link',\n templateUrl: './link.component.html',\n styleUrls: ['./link.component.scss']\n})\nexport class LinkComponent extends AbstractComponent {\n\n /**\n * The router link action\n *\n * Commands to pass to Router#createUrlTree.\n * - array: commands to pass to Router#createUrlTree.\n * - string: shorthand for array of commands with just the string, i.e. ['/route']\n * - null|undefined: Disables the link by removing the href\n */\n @Input() href?: any[] | string | null;\n\n /**\n * Is an external link (false to not use Angular router link)\n */\n @Input() externalLink?: BooleanInput;\n\n /**\n * Is disabled link\n */\n @Input() disabled?: BooleanInput;\n\n /**\n * Custom class\n */\n @Input() class: string = '';\n\n get isExternalLink(): boolean {\n return isTrueBooleanInput(this.externalLink);\n }\n\n get isDisabled(): boolean {\n return isTrueBooleanInput(this.disabled);\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');\n }\n}\n","<a *ngIf=\"!isExternalLink; else externalLink\" [class]=\"class\" [routerLink]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n</a>\n<ng-template #externalLink>\n <a [class]=\"class\" [attr.href]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #linkContent>\n <ng-content></ng-content>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { IconName } from '../../../../interfaces/icon';\nimport { LinkComponent } from '../../link/link.component';\n\n@Component({\n selector: 'it-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DropdownItemComponent extends LinkComponent {\n\n /**\n * Show divider\n */\n @Input() divider?: BooleanInput;\n\n /**\n * Active item\n */\n @Input() active?: BooleanInput;\n\n /**\n * To increase the size of links\n */\n @Input() large?: BooleanInput;\n\n /**\n * The name of icon to show\n */\n @Input() iconName?: IconName;\n\n /**\n * The icon position\n * @default right\n */\n @Input() iconPosition: 'left' | 'right' = 'right';\n\n /**\n * Change icon color if menu is dark\n * @default false\n */\n isDark: boolean = false;\n\n get isDivider(): boolean {\n return isTrueBooleanInput(this.divider);\n }\n\n get isActive(): boolean {\n return isTrueBooleanInput(this.active);\n }\n\n get isLarge(): boolean {\n return isTrueBooleanInput(this.large);\n }\n\n get linkClass(): string {\n let linkClass = `list-item ${this.isActive ? 'active' : 'dropdown-item'}`;\n if (this.isDisabled) {\n linkClass += ' disabled';\n }\n if (this.isLarge) {\n linkClass += ' large';\n }\n if (this.iconName) {\n linkClass += ` ${this.iconPosition === 'right' ? 'right-icon' : 'left-icon'}`;\n }\n\n return linkClass;\n }\n\n setDark(dark: boolean): void {\n if (this.isDark !== dark) {\n this.isDark = dark;\n this._changeDetectorRef.detectChanges();\n }\n }\n}\n","<li>\n <span *ngIf=\"isDivider; else item\" class=\"divider\"></span>\n\n <ng-template #item>\n <it-link [class]=\"linkClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <it-icon *ngIf=\"iconName && iconPosition === 'left'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span><ng-content></ng-content></span>\n\n <it-icon *ngIf=\"iconName && iconPosition === 'right'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span *ngIf=\"isActive\" class=\"visually-hidden\">{{'it.core.active'|translate}}</span>\n </it-link>\n </ng-template>\n</li>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { AbstractComponent } from '../../../../abstracts/abstract.component';\nimport { ButtonColor, DropdownDirection } from '../../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { DropdownItemComponent } from '../dropdown-item/dropdown-item.component';\nimport { Dropdown } from 'bootstrap-italia';\n\n@Component({\n selector: 'it-dropdown[id]',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n exportAs: 'itDropdown',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DropdownComponent extends AbstractComponent {\n\n /**\n * Button color\n */\n @Input() color?: ButtonColor;\n\n /**\n * To open menu items to:\n * - <strong>dropup</strong>: up\n * - <strong>dropend</strong>: right\n * - <strong>dropstart</strong>: left\n */\n @Input() direction?: DropdownDirection;\n\n /**\n * To get a dropdown menu as wide as the element containing the dropdown button\n */\n @Input() fullWidth?: BooleanInput;\n\n /**\n * Dark menu style\n */\n @Input() dark?: BooleanInput;\n\n /**\n * The dropdown items\n */\n @ContentChildren(DropdownItemComponent) items?: QueryList<DropdownItemComponent>;\n\n /**\n * Fires immediately when the show instance method is called.\n */\n @Output() onShow: EventEmitter<Event> = new EventEmitter();\n\n /**\n * Fired when the dropdown has been made visible to the user and CSS transitions have completed.\n */\n @Output() onShown: EventEmitter<Event> = new EventEmitter();\n\n /**\n * Fires immediately when the hide instance method has been called.\n */\n @Output() onHide: EventEmitter<Event> = new EventEmitter();\n\n /**\n * Fired when the dropdown has finished being hidden from the user and CSS transitions have completed.\n */\n @Output() onHidden: EventEmitter<Event> = new EventEmitter();\n\n\n private dropdown?: Dropdown;\n\n @ViewChild('dropdownButton') private dropdownButton?: ElementRef<HTMLButtonElement>;\n\n get buttonClass(): string {\n let btnClass = 'btn dropdown-toggle';\n if (this.color) {\n btnClass += ` btn-${this.color}`;\n } else {\n btnClass += ` btn-dropdown`;\n }\n\n return btnClass;\n }\n\n get isFullWidth(): boolean {\n return isTrueBooleanInput(this.fullWidth);\n }\n\n get isDark(): boolean {\n return isTrueBooleanInput(this.dark);\n }\n\n override ngOnChanges(changes: SimpleChanges): void {\n if (changes['dark'] && !changes['dark'].firstChange) {\n this.setDarkItems();\n }\n super.ngOnChanges(changes);\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n this.setDarkItems();\n\n if (this.dropdownButton) {\n const element = this.dropdownButton.nativeElement;\n this.dropdown = Dropdown.getOrCreateInstance(element);\n\n element.addEventListener('show.bs.dropdown', event => this.onShow.emit(event));\n element.addEventListener('shown.bs.dropdown', event => this.onShown.emit(event));\n element.addEventListener('hide.bs.dropdown', event => this.onHide.emit(event));\n element.addEventListener('hidden.bs.dropdown', event => this.onHidden.emit(event));\n }\n }\n\n /**\n * Set child items dark mode\n * @private\n */\n private setDarkItems(): void {\n this.items?.forEach(item => {\n item.setDark(this.isDark);\n });\n }\n\n /**\n * Toggles the dropdown menu of a given navbar or tabbed navigation.\n */\n public toggle(): void {\n this.dropdown?.toggle();\n }\n\n /**\n * Shows the dropdown menu of a given navbar or tabbed navigation.\n */\n public show(): void {\n this.dropdown?.show();\n }\n\n /**\n * Hides the dropdown menu of a given navbar or tabbed navigation.\n */\n public hide(): void {\n this.dropdown?.hide();\n }\n\n /**\n * Updates the position of an element's dropdown.\n */\n public update(): void {\n this.dropdown?.update();\n }\n\n /**\n * Destroys an element's dropdown. (Removes stored data on the DOM element)\n */\n public dispose(): void {\n this.dropdown?.dispose();\n }\n}\n","<div class=\"dropdown {{direction}}\">\n <button #dropdownButton [id]=\"id\"\n [class]=\"buttonClass\"\n type=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-content select=\"[button]\"></ng-content>\n <it-icon class=\"icon-expand\" name=\"expand\" size=\"sm\" [color]=\"this.color ? 'light' : 'primary'\"></it-icon>\n </button>\n\n <div class=\"dropdown-menu\" [class.full-width]=\"isFullWidth\" [class.dark]=\"isDark\" [attr.aria-labelledby]=\"id\">\n <div class=\"link-list-wrapper\">\n <div class=\"link-list-heading\">\n <ng-content select=\"[listHeading]\"></ng-content>\n </div>\n <ul class=\"link-list\">\n <ng-content select=\"[list]\"></ng-content>\n </ul>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { BooleanInput } from '../../../../utils/boolean-input';\n\n@Component({\n selector: 'it-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss']\n})\nexport class ListComponent {\n\n /**\n * Add 'link-list' class for navigation menù\n */\n @Input() linkList?: BooleanInput;\n\n}\n","<div class=\"it-list-wrapper\">\n <ul class=\"it-list\">\n <ng-content></ng-content>\n </ul>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { LinkComponent } from '../../link/link.component';\n\n@Component({\n selector: 'it-list-item',\n templateUrl: './list-item.component.html',\n styleUrls: ['./list-item.component.scss']\n})\nexport class ListItemComponent extends LinkComponent {\n\n /**\n * Add active class\n */\n @Input() active?: BooleanInput;\n\n /**\n * Add large class\n */\n @Input() large?: BooleanInput;\n\n /**\n * The avatar url\n */\n @Input() avatar?: URL;\n\n /**\n * The thumb image url\n */\n @Input() image?: URL;\n\n\n get itemClass(): string {\n let itemClass = 'list-item';\n if (isTrueBooleanInput(this.active)) {\n itemClass += ` active`;\n }\n if (isTrueBooleanInput(this.large)) {\n itemClass += ` large`;\n }\n if (this.class) {\n itemClass += ` ${this.class}`;\n }\n return itemClass;\n }\n\n}\n","<li>\n <ng-template #content>\n <div class=\"it-rounded-icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n\n <div *ngIf=\"avatar\" class=\"avatar size-lg\">\n <img [attr.src]=\"avatar\" alt=\"avatar\">\n </div>\n\n <div *ngIf=\"image\" class=\"it-thumb\">\n <img [attr.src]=\"image\" alt=\"thumb\">\n </div>\n\n <div class=\"it-right-zone\">\n <span class=\"text\">\n <ng-content></ng-content>\n </span>\n <ng-content select=\"[action]\"></ng-content>\n\n <span class=\"it-multiple\">\n <span class=\"metadata\">\n <ng-content select=\"[metadata]\"></ng-content>\n </span>\n\n <ng-content select=\"[multiple]\"></ng-content>\n </span>\n </div>\n </ng-template>\n\n\n <div *ngIf=\"!href; else link\" [class]=\"itemClass\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n\n <ng-template #link>\n <it-link [class]=\"itemClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </it-link>\n </ng-template>\n</li>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\nimport { Modal } from 'bootstrap-italia';\n\n@Component({\n selector: 'it-modal[id][title]',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n exportAs: 'itModal',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ModalComponent extends AbstractComponent {\n\n /**\n * The modal Title\n */\n @Input() title!: string;\n\n /**\n * The modal size\n */\n @Input() size?: 'modal-sm' | 'modal-lg' | 'modal-xl';\n\n /**\n * This event fires immediately when the instance method show is called.\n */\n @Output() onShow: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires when the modal has been made visible to the user (it will wait for CSS transitions to complete).\n */\n @Output() onShown: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is raised immediately when the instance method hide has been called.\n */\n @Output() onHide: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires when the modal has finished hiding from the user (it will wait for CSS transitions to complete).\n */\n @Output() onHidden: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is fired when the modal is displayed, its background is static and a click outside the modal or a press\n * of the esc key occurs and data-bs-keyboard is set to false.\n */\n @Output() onHidePrevented: EventEmitter<Event> = new EventEmitter();\n\n\n private modal?: Modal;\n\n @ViewChild('modalElement', { static: false }) private modalElement?: ElementRef<HTMLDivElement>;\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');\n\n if (this.modalElement) {\n const element = this.modalElement.nativeElement;\n this.modal = Modal.getOrCreateInstance(element);\n\n element.addEventListener('show.bs.modal', event => this.onShow.emit(event));\n element.addEventListener('shown.bs.modal', event => this.onShown.emit(event));\n element.addEventListener('hide.bs.modal', event => this.onHide.emit(event));\n element.addEventListener('hidden.bs.modal', event => this.onHidden.emit(event));\n element.addEventListener('hidePrevented.bs.modal', event => this.onHidePrevented.emit(event));\n }\n }\n\n /**\n * Manually activate/deactivate a modal. Returns to the caller before the modal has actually been shown or hidden\n */\n public toggle(): void {\n this.modal?.toggle();\n }\n\n /**\n * Manually open a modal. Returns to the caller before the modal has actually been displayed\n */\n public show(): void {\n this.modal?.show();\n }\n\n /**\n * Manually hide a modal. Returns to the caller before the modal has actually been hidden\n */\n public hide(): void {\n this.modal?.hide();\n }\n\n /**\n * Manually reposition the modal if the height of the modal changes when it is opened (in case a scroll bar appears).\n */\n public handleUpdate(): void {\n this.modal?.handleUpdate();\n }\n\n /**\n * Destroys the modal of an element.\n */\n public dispose(): void {\n this.modal?.dispose();\n }\n\n}\n","<div #modalElement [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\">\n <div class=\"modal-dialog {{size}}\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title h5 no_toc\" id=\"{{id}}-label\">{{title}}</h2>\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"\n [attr.aria-label]=\"'it.core.close-modal'|translate\"></button>\n </div>\n <div class=\"modal-body mb-3\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer modal-footer-shadow\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { IconName } from './icon';\n\nexport type AlertColor = 'info' | 'success' | 'warning' | 'danger';\n\nexport type ButtonColor =\n 'primary'\n | 'outline-primary'\n | 'secondary'\n | 'outline-secondary'\n | 'success'\n | 'outline-success'\n | 'danger'\n | 'outline-danger'\n | 'warning'\n | 'outline-warning'\n | 'info'\n | 'outline-info'\n | 'light'\n | 'outline-light'\n | 'dark'\n | 'outline-dark'\n | 'link';\n\nexport type ButtonSize = 'lg' | 'sm' | 'xs';\nexport type ButtonType = 'submit' | 'button';\n\nexport type CalloutColor = 'success' | 'warning' | 'danger' | 'important' | 'note';\nexport type CalloutAppearance = 'default' | 'highlight' | 'more';\n\nexport type ElementPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport type ProgressBarColor = 'primary' | 'success' | 'warning' | 'danger' | 'info';\n\nexport type BadgeColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger';\n\nexport type TableColor = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';\n\nexport type TableHeadColor = 'light' | 'dark';\n\nexport type TableResponsive =\n 'responsive'\n | 'responsive-sm'\n | 'responsive-md'\n | 'responsive-lg'\n | 'responsive-xl'\n | 'responsive-xxl';\n\nexport type VerticalAlignment =\n 'align-baseline'\n | 'align-top'\n | 'align-middle'\n | 'align-bottom'\n | 'align-text-bottom'\n | 'align-text-top';\n\nexport type DropdownDirection = 'dropup' | 'dropend' | 'dropstart';\n\nexport type CarouselType = 'default' | 'three-cols' | 'three-cols-arrow-visible';\n\nexport interface Notification {\n\n /**\n * Notification type\n */\n type: NotificationType;\n\n /**\n * Notification title\n */\n title: string;\n\n /**\n * Notification message / text\n */\n message?: string;\n\n /**\n * Custom duration of notification\n */\n duration?: number;\n\n /**\n * The close notification button appears\n */\n dismissible?: boolean;\n\n /**\n * Custom position of notification\n */\n position?: NotificationPosition;\n\n /**\n * Custom icon of notification\n */\n icon?: IconName;\n}\n\nexport enum NotificationType {\n Standard = 'standard',\n Success = 'success',\n Error = 'error',\n Info = 'info',\n Warning = 'warning'\n}\n\nexport enum NotificationPosition {\n Top = 'top-fix mt-3',\n Bottom = 'bottom-fix mb-3',\n Left = 'left-fix ms-3',\n Right = 'right-fix me-3'\n}\n","import { Injectable } from '@angular/core';\nimport { filter, Observable, Subject } from 'rxjs';\nimport { Notification, NotificationPosition, NotificationType } from '../../interfaces/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NotificationsService {\n private subject = new Subject<Notification>();\n\n /**\n * Listen on notification arrived\n * @param filterType filter type of notification\n */\n public onNotification(filterType?: NotificationType): Observable<Notification> {\n return this.subject.asObservable().pipe(\n filter(n => n && (!filterType || (n.type === filterType)))\n );\n }\n\n /**\n * Show new notification\n * @param notification notification\n */\n public addNotification(notification: Notification): void {\n this.subject.next(notification);\n }\n\n /**\n * Create new Standard notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public standard(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Standard,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n\n /**\n * Create new Success notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public success(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Success,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n\n /**\n * Create new Error notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public error(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Error,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n\n /**\n * Create new Warning notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public warning(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Warning,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n\n /**\n * Create new Info notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public info(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Info,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NotificationsService } from '../../../services/notifications/notifications.service';\nimport { Notification, NotificationPosition, NotificationType } from '../../../interfaces/core';\nimport { Notification as BSNotification } from 'bootstrap-italia';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { IconName } from '../../../interfaces/icon';\n\n@Component({\n selector: 'it-notifications',\n templateUrl: './notifications.component.html',\n styleUrls: ['./notifications.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotificationsComponent implements OnDestroy {\n\n /**\n * Default notifications duration (milliseconds)\n * @default 8000\n */\n @Input() duration: number = 8000;\n\n /**\n * Default notifications position\n */\n @Input() position?: NotificationPosition;\n\n /**\n * Default notifications is dismissible\n * @default true\n */\n @Input() dismissible?: BooleanInput = true;\n\n private subscription: Subscription;\n private notificationCount: number = 0;\n protected notifications: Array<Notification & { id: string }> = [];\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _notificationService: NotificationsService\n ) {\n this.subscription = this._notificationService.onNotification().subscribe(notification => {\n if (!notification.duration) {\n notification.duration = this.duration; // Add duration if not is set\n }\n if (!notification.position && this.position) {\n notification.position = this.position; // Add position if not is set\n }\n if (notification.dismissible === undefined && isTrueBooleanInput(this.dismissible)) {\n notification.dismissible = true; // Add dismissible if not is set\n }\n if (!notification.icon) {\n notification.icon = this.getNotificationIcon(notification);\n }\n\n const newNotification = {\n ...notification,\n id: `${notification.type}-${this.notificationCount++}-notification`\n };\n this.notifications.push(newNotification);\n this._changeDetectorRef.detectChanges();\n\n setTimeout(() => {\n // Show the notification\n new BSNotification(document.getElementById(newNotification.id)!, {\n timeout: notification.duration\n }).show();\n\n // Clear notification after the duration\n setTimeout(() => {\n const index = this.notifications.findIndex(n => n.id === newNotification.id);\n if (index > -1) {\n this.notifications.splice(index, 1);\n if (!this.notifications.length) {\n this.notificationCount = 0;\n }\n this._changeDetectorRef.detectChanges();\n }\n }, notification.duration);\n }, 200);\n });\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n protected get NotificationType(): typeof NotificationType {\n return NotificationType;\n }\n\n /**\n * Hide the notification\n * @param id\n */\n protected hideNotification(id: string): void {\n BSNotification.getInstance(document.getElementById(id)!)?.hide();\n }\n\n /**\n * Retrieve the icon name by notification type\n * @param notification the notification\n * @protected\n */\n private getNotificationIcon(notification: Notification): IconName | undefined {\n switch (notification.type) {\n case NotificationType.Success:\n return 'check-circle';\n case NotificationType.Error:\n return 'close-circle';\n case NotificationType.Warning:\n return 'error';\n case NotificationType.Info:\n return 'info-circle';\n case NotificationType.Standard:\n default:\n return undefined;\n }\n }\n}\n","<div *ngFor=\"let notification of notifications\"\n [id]=\"notification.id\"\n class=\"notification {{notification.position}} {{notification.type}}\"\n [class.with-icon]=\"!!notification.icon\"\n [class.dismissable]=\"notification.dismissible\"\n role=\"alert\" [attr.aria-labelledby]=\"notification.id+'-title'\">\n\n <h2 [id]=\"notification.id+'-title'\" class=\"h5\">\n <it-icon *ngIf=\"!!notification.icon\" [name]=\"notification.icon\"></it-icon>\n <ng-container>{{notification.title}}</ng-container>\n </h2>\n <p *ngIf=\"notification.message\">{{notification.message}}</p>\n\n <button *ngIf=\"notification.dismissible\" type=\"button\" class=\"btn notification-close\"\n (click)=\"hideNotification(notification.id)\">\n <it-icon name=\"close\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.close-notification'|translate:{ title: notification.title } }}</span>\n </button>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'it-pagination[currentPage][pageNumbers]',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss']\n})\nexport class PaginationComponent {\n\n /**\n * Index of page (start 0)\n */\n @Input() currentPage!: number;\n\n /**\n * Max number of page (counter)\n */\n @Input() pageNumbers!: number;\n\n /**\n * Pagination alignment (justify-content)\n */\n @Input() alignment?: 'center' | 'end';\n\n /**\n * Fired when page is changed\n */\n @Output() newPageEvent = new EventEmitter<number>();\n\n /**\n * Create array to generate pagination of 5 element\n */\n get pages(): Array<number> {\n const length = this.pageNumbers > 5 ? 5 : this.pageNumbers;\n let start = (this.currentPage > 1 && this.pageNumbers > 5) ? this.currentPage - 1 : 1;\n\n if (this.pageNumbers > 5) {\n if ((this.currentPage + 1) >= this.pageNumbers) {\n start -= 2;\n } else if (this.currentPage >= (this.pageNumbers - 2)) {\n start -= (this.pageNumbers - (this.currentPage + 1));\n }\n }\n\n return Array.from({ length }, (_, i) => i + start);\n }\n\n /**\n * On click page change\n * @param newPage the new page of table\n */\n pageChange(newPage: number): void {\n this.newPageEvent.emit(newPage - 1); // emit new page\n }\n\n}\n","<nav class=\"pagination-wrapper\"\n [class.justify-content-center]=\"alignment==='center'\"\n [class.justify-content-end]=\"alignment==='end'\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [class.disabled]=\"currentPage < 1\">\n <a class=\"page-link\" (click)=\"pageChange(currentPage)\">\n <it-icon name=\"chevron-left\" color=\"primary\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.previous-page'|translate}}</span>\n </a>\n </li>\n\n <ng-container *ngIf=\"pageNumbers > 5 && currentPage > 2\">\n <li class=\"page-item\"><a class=\"page-link\" (click)=\"pageChange(1)\">1</a></li>\n <li class=\"page-item\" *ngIf=\"currentPage > 3\">\n <span class=\"page-link\">...</span>\n </li>\n </ng-container>\n\n <li class=\"page-item\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" aria-current=\"page\" *ngIf=\"page === (currentPage + 1); else inactivePage\">\n <span class=\"d-inline-block d-sm-none\">{{'it.core.page'|translate}}</span> {{page}}\n </a>\n <ng-template #inactivePage>\n <a class=\"page-link\" (click)=\"pageChange(page)\">{{page}}</a>\n </ng-template>\n </li>\n\n <ng-container *ngIf=\"pageNumbers > 5 && pageNumbers - currentPage > 3\">\n <li class=\"page-item\">\n <span class=\"page-link\">...</span>\n </li>\n <li class=\"page-item\"><a class=\"page-link\" (click)=\"pageChange(pageNumbers)\">{{pageNumbers}}</a></li>\n </ng-container>\n\n <li class=\"page-item\" [class.disabled]=\"currentPage >= pageNumbers - 1\">\n <a class=\"page-link\" (click)=\"pageChange(currentPage + 2)\">\n <span class=\"visually-hidden\">{{'it.core.next-page'|translate}}</span>\n <it-icon name=\"chevron-right\" color=\"primary\"></it-icon>\n </a>\n </li>\n </ul>\n</nav>\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ElementPlacement } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { Popover } from 'bootstrap-italia';\n\n@Directive({\n selector: '[itPopover]',\n exportAs: 'itPopover'\n})\nexport class PopoverDirective implements AfterViewInit, OnDestroy {\n\n /**\n * Define the popover content\n * @param content the popover content\n */\n @Input('itPopover') set content(content: string) {\n this.element.setAttribute('data-bs-content', content);\n }\n\n /**\n * Define the popover title\n * @param title the popover title\n */\n @Input('popoverTitle') set title(title: string | undefined) {\n if (title) {\n this.element.setAttribute('title', title);\n this.element.setAttribute('data-bs-original-title', title);\n }\n }\n\n\n /**\n * Define the popover placement\n * @param placement\n */\n @Input('popoverPlacement') set placement(placement: ElementPlacement) {\n this.element.setAttribute('data-bs-placement', placement);\n }\n\n /**\n * Appends the popover to a specific element.\n * @param container\n */\n @Input('popoverContainer') set container(container: 'body' | string | undefined) {\n if (container) {\n this.element.setAttribute('data-container', container);\n }\n }\n\n /**\n * Indicates whether the title contains html\n * @param html true if contain html\n */\n @Input('popoverHtml') set html(html: BooleanInput) {\n this.element.setAttribute('data-bs-html', isTrueBooleanInput(html) ? 'true' : 'false');\n }\n\n /**\n * How popover is triggered\n * - 'hover': To open the Popover on hover of the mouse over the element\n * - 'focus': To ignore popovers on the user's next click of an element other than the toggle element.\n * @param trigger\n */\n @Input('popoverTrigger') set hover(trigger: 'click' | 'hover' | 'focus' | 'manual' | undefined) {\n if (trigger) {\n this.element.setAttribute('data-bs-trigger', trigger);\n }\n }\n\n /**\n * This event fires immediately when the show method is called.\n */\n @Output() onShow: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).\n */\n @Output() onShown: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires immediately when the hide method is called.\n */\n @Output() onHide: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).\n */\n @Output() onHidden: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires after the show event when the tooltip template has been added to the DOM.\n */\n @Output() onInserted: EventEmitter<Event> = new EventEmitter();\n\n private readonly element: HTMLElement;\n private popover?: Popover;\n\n constructor(\n private readonly _elementRef: ElementRef\n ) {\n this.element = this._elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n this.element.setAttribute('data-bs-toggle', 'popover');\n this.popover = Popover.getOrCreateInstance(this.element);\n\n this.element.addEventListener('show.bs.popover', event => this.onShow.emit(event));\n this.element.addEventListener('shown.bs.popover', event => this.onShown.emit(event));\n this.element.addEventListener('hide.bs.popover', event => this.onHide.emit(event));\n this.element.addEventListener('hidden.bs.popover', event => this.onHidden.emit(event));\n this.element.addEventListener('inserted.bs.popover', event => this.onInserted.emit(event));\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n /**\n * Shows the popover of an item.\n */\n public show(): void {\n this.popover?.show();\n }\n\n /**\n * Hide the popover of an element.\n */\n public hide(): void {\n this.popover?.hide();\n }\n\n /**\n * Activate / Deactivate the popover of an element\n */\n public toggle(): void {\n this.popover?.toggle();\n }\n\n /**\n * Hides and destroys the popover of an element.\n */\n public dispose(): void {\n this.popover?.dispose();\n }\n\n /**\n * Gives the popover of an element a chance to be shown.\n */\n public enable(): void {\n this.popover?.enable();\n }\n\n /**\n * Removes the ability to show the popover of an element.\n */\n public disable(): void {\n this.popover?.disable();\n }\n\n /**\n * Toggles the possibility that the popover of an element is shown or hidden.\n */\n public toggleEnabled(): void {\n this.popover?.disable();\n }\n\n /**\n * Updates the position of an element's popover.\n */\n public update(): void {\n this.popover?.disable();\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, SimpleChanges } from '@angular/core';\nimport { AbstractFormComponent } from '../../../abstracts/abstract-form-component';\n\n@Component({\n selector: 'it-rating[id]',\n templateUrl: './rating.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RatingComponent extends AbstractFormComponent<number> {\n\n /**\n * The rating value\n */\n @Input() value?: number;\n\n /**\n * Number of stars to show\n * @default 5\n */\n @Input() starCount: number = 5;\n\n protected stars: Array<number> = [];\n\n get name(): string {\n return this._ngControl?.name?.toString() || (this.id!);\n }\n\n override ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n\n if (changes['starCount'] || !this.stars.length) {\n this.stars = Array.from({ length: this.starCount }, (_, i) => i + 1).reverse();\n }\n }\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (!this.control.value && !!this.value) {\n this.writeValue(this.value);\n this.onChange(this.value);\n }\n }\n}\n","<fieldset class=\"rating\"\n [class.rating-label]=\"!!label\"\n [class.rating-read-only]=\"control.disabled\">\n <legend>\n <span>{{label}}</span>\n <span class=\"visually-hidden\">\n {{'it.core.rating-star'|translate : { current: control.value || 0, total: stars.length } }}\n </span>\n </legend>\n\n <ng-container *ngFor=\"let starValue of stars\">\n <input [id]=\"id + '-' + starValue\"\n type=\"radio\"\n [name]=\"name\"\n [value]=\"starValue\"\n [attr.aria-hidden]=\"control.disabled\"\n [formControl]=\"control\" />\n\n <label class=\"full\" [for]=\"id + '-' + starValue\">\n <it-icon name=\"star-full\" size=\"sm\"></it-icon>\n <span class=\"visually-hidden\">\n {{'it.core.rate-star'|translate : { current: starValue, total: stars.length } }}\n </span>\n </label>\n </ng-container>\n\n</fieldset>\n","import {Component, Input} from '@angular/core';\nimport {BooleanInput, isTrueBooleanInput} from \"../../../utils/boolean-input\";\n\n@Component({\n selector: 'it-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n\n /**\n * The spinner is active\n */\n @Input() active: BooleanInput = true;\n\n /**\n * Show a small spinner\n */\n @Input() small?: BooleanInput;\n\n /**\n * Show the double animation\n */\n @Input() double?: BooleanInput;\n\n get isActive(): boolean {\n return isTrueBooleanInput(this.active);\n }\n\n get isSmall(): boolean {\n return isTrueBooleanInput(this.small);\n }\n\n get isDouble(): boolean {\n return isTrueBooleanInput(this.double);\n }\n\n}\n","<div class=\"progress-spinner\"\n [class.progress-spinner-double]=\"isDouble\"\n [class.progress-spinner-active]=\"isActive\"\n [class.size-sm]=\"isSmall\">\n <div *ngIf=\"isDouble\" class=\"progress-spinner-inner\"></div>\n <div *ngIf=\"isDouble\" class=\"progress-spinner-inner\"></div>\n <span class=\"visually-hidden\">{{'it.core.loading'|translate}}...</span>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { IconName } from '../../../../interfaces/icon';\n\n@Component({\n selector: 'it-steppers-item[label]',\n templateUrl: './steppers-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SteppersItemComponent {\n\n /**\n * The labels present in the header steps\n */\n @Input() label!: string;\n\n /**\n * The labels present in the header steps can be preceded by an icon.\n */\n @Input() icon?: IconName;\n\n /**\n * The content of step\n */\n @ViewChild(TemplateRef) public htmlContent!: TemplateRef<any>;\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList\n} from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { SteppersItemComponent } from '../steppers-item/steppers-item.component';\nimport { ProgressBarColor } from '../../../../interfaces/core';\n\n@Component({\n selector: 'it-steppers-container[activeStep]',\n templateUrl: './steppers-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SteppersContainerComponent implements AfterViewInit {\n\n /**\n * The active step index\n * @param index the step index\n */\n @Input() activeStep!: number;\n\n /**\n * Show the stepper header\n * @default true\n */\n @Input() showHeader: BooleanInput = true;\n\n /**\n * Dark style\n */\n @Input() dark?: BooleanInput;\n\n /**\n * The labels present in the header steps can be anticipated by the relative ordinal number.\n */\n @Input() steppersNumber?: BooleanInput;\n\n /**\n * The progress style\n * -<b>progress</b>: Show progress bar - You can change the color with the `progressColor` attribute\n * -<b>dots</b>: Show progress dots\n * @default undefined - don't show progress\n */\n @Input() progressStyle?: 'progress' | 'dots';\n\n /**\n * Customize progress color\n */\n @Input() progressColor?: ProgressBarColor;\n\n /**\n * Show the back button\n * @default true\n */\n @Input() showBackButton: BooleanInput = true;\n\n /**\n * Show the forward button\n * @default true\n */\n @Input() showForwardButton: BooleanInput = true;\n\n /**\n * Show the confirm button\n * @default false\n */\n @Input() showConfirmButton: BooleanInput = false;\n\n /**\n * Show the confirm button as indeterminate progress button\n */\n @Input() confirmLoading?: BooleanInput;\n\n /**\n * Show the save button\n * @default false\n */\n @Input() showSaveButton: BooleanInput = false;\n\n /**\n * Show the save button as indeterminate progress button\n */\n @Input() saveLoading?: BooleanInput;\n\n /**\n * The stepper items\n */\n @ContentChildren(SteppersItemComponent) steps?: QueryList<SteppersItemComponent>;\n\n /**\n * On back button click\n * @event activeStep the current step index\n */\n @Output() backClick: EventEmitter<number>;\n\n /**\n * On forward button click\n * @event activeStep the current step index\n */\n @Output() forwardClick: EventEmitter<number>;\n\n /**\n * On confirm button click\n * @event activeStep the current step index\n */\n @Output() confirmClick: EventEmitter<number>;\n\n /**\n * On save button click\n * @event activeStep the current step index\n */\n @Output() saveClick: EventEmitter<number>;\n\n get isShowHeader(): boolean {\n return isTrueBooleanInput(this.showHeader);\n }\n\n get isSteppersNumber(): boolean {\n return isTrueBooleanInput(this.steppersNumber);\n }\n\n get isDark(): boolean {\n return isTrueBooleanInput(this.dark);\n }\n\n get isShowBackButton(): boolean {\n return isTrueBooleanInput(this.showBackButton);\n }\n\n get isShowForwardButton(): boolean {\n return isTrueBooleanInput(this.showForwardButton);\n }\n\n get isShowConfirmButton(): boolean {\n return isTrueBooleanInput(this.showConfirmButton);\n }\n\n get isConfirmLoading(): boolean {\n return isTrueBooleanInput(this.confirmLoading);\n }\n\n get isShowSaveButton(): boolean {\n return isTrueBooleanInput(this.showSaveButton);\n }\n\n get isSaveLoading(): boolean {\n return isTrueBooleanInput(this.saveLoading);\n }\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef\n ) {\n this.backClick = new EventEmitter<number>();\n this.forwardClick = new EventEmitter<number>();\n this.confirmClick = new EventEmitter<number>();\n this.saveClick = new EventEmitter<number>();\n }\n\n ngAfterViewInit(): void {\n this._changeDetectorRef.detectChanges();\n\n this.steps?.changes.subscribe(() => {\n this._changeDetectorRef.detectChanges();\n });\n }\n}\n","<div class=\"steppers\" [class.bg-dark]=\"isDark\">\n <div *ngIf=\"isShowHeader\" class=\"steppers-header\">\n <ul>\n <li *ngFor=\"let step of steps; let i = index\"\n [class.confirmed]=\"i < activeStep\"\n [class.active]=\"i === activeStep\"\n [class.no-line]=\"i === activeStep && isSteppersNumber\">\n\n <it-icon *ngIf=\"step.icon && !isSteppersNumber\" [name]=\"step.icon\"></it-icon>\n <span *ngIf=\"isSteppersNumber\" class=\"steppers-number\">\n <ng-container *ngIf=\"i < activeStep; else showNumber\">\n <ng-container *ngTemplateOutlet=\"checkIcon\"></ng-container>\n </ng-container>\n <ng-template #showNumber>\n <span class=\"visually-hidden\">{{'it.core.step' | translate}} </span>{{i + 1}}\n </ng-template>\n </span>\n\n {{step.label}}\n\n <span *ngIf=\"i < activeStep && !isSteppersNumber\" class=\"ms-auto\">\n <ng-container *ngTemplateOutlet=\"checkIcon\"></ng-container>\n </span>\n <span *ngIf=\"i === activeStep\" class=\"visually-hidden\">{{'it.core.active' | translate}}</span>\n </li>\n </ul>\n <span class=\"steppers-index\" aria-hidden=\"true\">\n <ng-container\n *ngIf=\"!isSteppersNumber; else showNumbers\">{{(activeStep + 1) + '/' + steps?.length}}</ng-container>\n <ng-template #showNumbers>\n <span *ngFor=\"let step of steps; let i = index\" [class.active]=\"i === activeStep\">{{i + 1}}</span>\n </ng-template>\n </span>\n </div>\n\n <div *ngIf=\"steps?.get(activeStep) as step\" class=\"steppers-content\" aria-live=\"polite\">\n <ng-container *ngTemplateOutlet=\"step.htmlContent\"></ng-container>\n </div>\n\n <nav *ngIf=\"isShowBackButton || isShowSaveButton || isShowForwardButton || isShowConfirmButton || !!progressStyle\"\n class=\"steppers-nav\">\n <button *ngIf=\"isShowBackButton\" type=\"button\" itButton=\"outline-primary\" size=\"sm\" class=\"steppers-btn-prev\"\n (click)=\"backClick.emit(activeStep)\">\n <it-icon name=\"chevron-left\" color=\"primary\"></it-icon>\n {{'it.core.back' | translate}}\n </button>\n\n <ng-container *ngIf=\"!!progressStyle\">\n <ul *ngIf=\"progressStyle === 'dots'; else progressBar\" class=\"steppers-dots\">\n <li *ngFor=\"let step of steps; let i = index\" [class.done]=\"i < activeStep\">\n <span class=\"visually-hidden\">\n {{'it.core.step-of' | translate: { current: activeStep + 1, available: steps?.length } }}\n {{i < activeStep ? ('- ' + ('it.core.confirmed' | translate)) : ''}}\n </span>\n </li>\n </ul>\n\n <ng-template #progressBar>\n <div class=\"steppers-progress\">\n <it-progress-bar [color]=\"progressColor\" [value]=\"(activeStep/(steps?.length||1)) * 100\"></it-progress-bar>\n </div>\n </ng-template>\n </ng-container>\n\n <button *ngIf=\"isShowSaveButton\" type=\"button\" itButton=\"primary\" size=\"sm\" class=\"steppers-btn-save\"\n [progress]=\"isSaveLoading\" [disabled]=\"isSaveLoading\" (click)=\"saveClick.emit(activeStep)\">\n {{'it.general.save' | translate}}\n </button>\n\n <button *ngIf=\"isShowForwardButton\" type=\"button\" itButton=\"outline-primary\" size=\"sm\" class=\"steppers-btn-next\"\n (click)=\"forwardClick.emit(activeStep)\">\n {{'it.core.forward' | translate}}\n <it-icon name=\"chevron-right\" color=\"primary\"></it-icon>\n </button>\n\n <button *ngIf=\"isShowConfirmButton\" type=\"button\" itButton=\"primary\" size=\"sm\"\n class=\"steppers-btn-confirm d-lg-block\"\n [progress]=\"isConfirmLoading\" [disabled]=\"isConfirmLoading\"\n (click)=\"confirmClick.emit(activeStep)\">\n {{'it.core.confirm' | translate}}\n </button>\n </nav>\n</div>\n\n<ng-template #checkIcon>\n <it-icon name=\"check\" class=\"steppers-success\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.confirmed' | translate}}</span>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { AbstractComponent } from '../../../../abstracts/abstract.component';\nimport { BooleanInput } from '../../../../utils/boolean-input';\nimport { IconName } from '../../../../interfaces/icon';\n\n@Component({\n selector: 'it-tab-item[id]',\n templateUrl: './tab-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabItemComponent extends AbstractComponent {\n\n /**\n * The tab label\n */\n @Input() label?: string;\n\n /**\n * The icon name\n */\n @Input() icon?: IconName;\n\n /**\n * Default active tab\n */\n @Input() active?: BooleanInput;\n\n /**\n * Default disabled tab\n */\n @Input() disabled?: BooleanInput;\n\n /**\n * Custom class\n */\n @Input() class: string = '';\n\n /**\n * The content of tab\n */\n @ViewChild(TemplateRef) public htmlContent!: TemplateRef<any>;\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n ViewChildren\n} from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { TabItemComponent } from '../tab-item/tab-item.component';\nimport { of, startWith, Subscription, switchMap, tap } from 'rxjs';\nimport { Tab } from 'bootstrap-italia';\nimport { AbstractComponent } from '../../../../abstracts/abstract.component';\n\n@Component({\n selector: 'it-tab-container',\n templateUrl: './tab-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabContainerComponent extends AbstractComponent implements OnDestroy {\n\n /**\n * Tabs automatically occupy the entire available width\n */\n @Input() auto?: BooleanInput;\n\n /**\n * To obtain the correct margin between text and icon in the horizontally developed tab\n */\n @Input() iconText?: BooleanInput;\n\n /**\n * Dark style\n */\n @Input() dark?: BooleanInput;\n\n /**\n * The tab items\n */\n @ContentChildren(TabItemComponent) tabs?: QueryList<TabItemComponent>;\n\n @ViewChildren('tabNavLinks') private tabNavLinks?: QueryList<ElementRef<HTMLAnchorElement>>;\n\n private tabSubscriptions?: Array<Subscription>;\n\n isTrueBooleanInput(booleanInput?: BooleanInput): boolean {\n return isTrueBooleanInput(booleanInput);\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.tabs?.changes.pipe( // When tabs changes (dynamic add/remove)\n startWith(undefined),\n tap(() => {\n this.tabSubscriptions?.forEach(sub => sub.unsubscribe()); // Remove old subscriptions\n this.tabSubscriptions = this.tabs?.map(tab => tab.valueChanges.subscribe(() => {\n this._changeDetectorRef.detectChanges(); // DetectChanges when tab-item attributes changes\n }));\n this._changeDetectorRef.detectChanges(); // Force update html render\n }),\n switchMap(() => this.tabNavLinks?.changes.pipe(startWith(undefined)) || of(undefined))\n ).subscribe(() => {\n // Init tabs from bootstrap-italia\n this.tabNavLinks?.forEach(tabNavLink => {\n const triggerEl = tabNavLink.nativeElement,\n tabTrigger = Tab.getOrCreateInstance(triggerEl);\n\n if (triggerEl.getAttribute('tab-listener') !== 'true') {\n triggerEl.addEventListener('click', event => {\n event.preventDefault();\n tabTrigger.show();\n });\n triggerEl.setAttribute('tab-listener', 'true'); // Prevents multiple insertion of the listener\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.tabSubscriptions?.forEach(sub => sub.unsubscribe());\n }\n}\n","<ul class=\"nav nav-tabs\"\n [class.auto]=\"isTrueBooleanInput(auto)\"\n [class.nav-tabs-icon-text]=\"isTrueBooleanInput(iconText)\"\n [class.nav-dark]=\"isTrueBooleanInput(dark)\"\n role=\"tablist\">\n\n <li class=\"nav-item\" *ngFor=\"let tab of tabs\">\n <a #tabNavLinks [id]=\"tab.id+'-tab-link'\"\n role=\"tab\"\n class=\"nav-link\"\n [class.active]=\"isTrueBooleanInput(tab.active)\"\n [class.disabled]=\"isTrueBooleanInput(tab.disabled)\"\n [attr.href]=\"'#'+tab.id+'-tab'\"\n [attr.aria-controls]=\"tab.id+'-tab'\">\n <it-icon *ngIf=\"tab.icon\" [name]=\"tab.icon\" class=\"me-2\"></it-icon>\n {{tab.label}}\n </a>\n </li>\n</ul>\n\n<div class=\"tab-content\">\n <div *ngFor=\"let tab of tabs\"\n [id]=\"tab.id+'-tab'\"\n class=\"tab-pane p-4 fade {{tab.class ?? ''}}\"\n [class.active]=\"isTrueBooleanInput(tab.active)\"\n [class.show]=\"isTrueBooleanInput(tab.active)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tab.id+'-tab-link'\">\n <ng-container *ngTemplateOutlet=\"tab.htmlContent\"></ng-container>\n </div>\n</div>\n","import {Component, Input} from '@angular/core';\nimport {TableColor, TableHeadColor, TableResponsive, VerticalAlignment} from \"../../../interfaces/core\";\nimport {BooleanInput, isTrueBooleanInput} from \"../../../utils/boolean-input\";\n\n@Component({\n selector: 'it-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent {\n\n /**\n * Table color\n */\n @Input() color?: TableColor;\n\n /**\n * Head table color\n */\n @Input() headColor?: TableHeadColor;\n\n /**\n * Use vertical alignment classes to realign where needed.\n */\n @Input() alignment?: VerticalAlignment;\n\n /**\n * Use .table-striped to add zebra stripes to each table row contained in <tbody>.\n */\n @Input() striped?: BooleanInput;\n\n /**\n * Add .table-hover to enable hover state on table rows contained in <tbody>.\n */\n @Input() hover?: BooleanInput;\n\n /**\n * Add .table-bordered to have borders on all sides of the table and on all cells.\n */\n @Input() bordered?: BooleanInput;\n\n /**\n * Add the .table-borderless class for a borderless table.\n */\n @Input() borderless?: BooleanInput;\n\n /**\n * Add .table-sm to make tables more compact by halving the cell padding.\n */\n @Input() compact?: BooleanInput;\n\n /**\n * To render the <caption> on top of the table\n */\n @Input() captionTop?: BooleanInput;\n\n /**\n * Responsive tables allow you to scroll tables horizontally with ease.\n * @default responsive\n */\n @Input() responsive: TableResponsive = 'responsive';\n\n\n get isStriped(): boolean {\n return isTrueBooleanInput(this.striped);\n }\n\n get isHover(): boolean {\n return isTrueBooleanInput(this.hover);\n }\n\n get isBordered(): boolean {\n return isTrueBooleanInput(this.bordered);\n }\n\n get isBorderless(): boolean {\n return isTrueBooleanInput(this.borderless);\n }\n\n get isCompact(): boolean {\n return isTrueBooleanInput(this.compact);\n }\n\n get isCaptionTop(): boolean {\n return isTrueBooleanInput(this.captionTop);\n }\n}\n","<div [class]=\"responsive ? 'table-' + responsive : undefined\">\n <table class=\"table{{color ? ' table-' + color : '' }}\"\n [class.table-striped]=\"isStriped\"\n [class.table-hover]=\"isHover\"\n [class.table-bordered]=\"isBordered\"\n [class.table-borderless]=\"isBorderless\"\n [class.table-sm]=\"isCompact\"\n [class.caption-top]=\"isCaptionTop\">\n <caption>\n <ng-content select=\"[caption]\"></ng-content>\n </caption>\n <thead [class]=\"headColor ? 'table-' + headColor : undefined\">\n <ng-content select=\"[thead]\"></ng-content>\n </thead>\n <tbody>\n <ng-content select=\"[tbody]\"></ng-content>\n </tbody>\n <tfoot>\n <ng-content select=\"[tfoot]\"></ng-content>\n </tfoot>\n </table>\n</div>\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ElementPlacement } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { Tooltip } from 'bootstrap-italia';\n\n@Directive({\n selector: '[itTooltip]',\n exportAs: 'itTooltip'\n})\nexport class TooltipDirective implements AfterViewInit, OnDestroy {\n\n /**\n * Define the tooltip title\n * @param title the tooltip title\n */\n @Input('itTooltip') set title(title: string | undefined) {\n if (title) {\n // this.element.setAttribute(\"title\", title);\n this.element.setAttribute('data-bs-original-title', title);\n }\n }\n\n /**\n * Define the tooltip placement\n * @param placement\n */\n @Input('tooltipPlacement') set placement(placement: ElementPlacement) {\n this.element.setAttribute('data-bs-placement', placement);\n }\n\n /**\n * Indicates whether the title contains html\n * @param html true if contain html\n */\n @Input('tooltipHtml') set html(html: BooleanInput) {\n this.element.setAttribute('data-bs-html', isTrueBooleanInput(html) ? 'true' : 'false');\n }\n\n /**\n * This event fires immediately when the show method is called.\n */\n @Output() onShow: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).\n */\n @Output() onShown: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires immediately when the hide method is called.\n */\n @Output() onHide: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).\n */\n @Output() onHidden: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires after the show event when the tooltip template has been added to the DOM.\n */\n @Output() onInserted: EventEmitter<Event> = new EventEmitter();\n\n private readonly element: HTMLElement;\n private tooltip?: Tooltip;\n\n constructor(\n private readonly _elementRef: ElementRef\n ) {\n this.element = this._elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n this.element.setAttribute('data-bs-toggle', 'tooltip');\n this.tooltip = Tooltip.getOrCreateInstance(this.element);\n\n this.element.addEventListener('show.bs.tooltip', event => this.onShow.emit(event));\n this.element.addEventListener('shown.bs.tooltip', event => this.onShown.emit(event));\n this.element.addEventListener('hide.bs.tooltip', event => this.onHide.emit(event));\n this.element.addEventListener('hidden.bs.tooltip', event => this.onHidden.emit(event));\n this.element.addEventListener('inserted.bs.tooltip', event => this.onInserted.emit(event));\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n /**\n * Shows the tooltip of an item.\n */\n public show(): void {\n this.tooltip?.show();\n }\n\n /**\n * Hide the tooltip of an element.\n */\n public hide(): void {\n this.tooltip?.hide();\n }\n\n /**\n * Activate / Deactivate the tooltip of an element\n */\n public toggle(): void {\n this.tooltip?.toggle();\n }\n\n /**\n * Hides and destroys the tooltip of an element.\n */\n public dispose(): void {\n this.tooltip?.dispose();\n }\n\n /**\n * Gives the tooltip of an element a chance to be shown.\n */\n public enable(): void {\n this.tooltip?.enable();\n }\n\n /**\n * Removes the ability to show the tooltip of an element.\n */\n public disable(): void {\n this.tooltip?.disable();\n }\n\n /**\n * Toggles the possibility that the tooltip of an element is shown or hidden.\n */\n public toggleEnabled(): void {\n this.tooltip?.disable();\n }\n\n /**\n * Updates the position of an element's tooltip.\n */\n public update(): void {\n this.tooltip?.disable();\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { AbstractFormComponent } from '../../../abstracts/abstract-form-component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n@Component({\n selector: 'it-checkbox[id]',\n templateUrl: './checkbox.component.html'\n})\nexport class CheckboxComponent extends AbstractFormComponent<boolean> {\n\n /**\n * If show checkbox as toggle\n */\n @Input() toggle?: BooleanInput;\n\n /**\n * If show checkbox inline\n */\n @Input() inline?: BooleanInput;\n\n /**\n * If is checkbox group\n */\n @Input() group?: BooleanInput;\n\n /**\n * If checkbox is checked\n */\n @Input() checked?: BooleanInput;\n\n /**\n * If checkbox is indeterminate\n */\n @Input() indeterminate?: BooleanInput;\n\n get isIndeterminate(): boolean {\n return isTrueBooleanInput(this.indeterminate);\n }\n\n get isGroup(): boolean {\n return isTrueBooleanInput(this.group);\n }\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (this.control.value || this.checked === undefined) {\n return;\n }\n\n const value = isTrueBooleanInput(this.checked);\n this.writeValue(value);\n return this.onChange(value);\n }\n}\n","<ng-container>\n <div class=\"form-check\"\n [class.form-check-group]=\"isGroup\"\n [class.form-check-inline]=\"inline\">\n\n <div *ngIf=\"toggle; else defaultStyle\" class=\"toggles\">\n <label [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n <input [id]=\"id\"\n type=\"checkbox\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n <span class=\"lever\"></span>\n </label>\n </div>\n\n <ng-template #defaultStyle>\n <input [id]=\"id\"\n type=\"checkbox\"\n class=\"form-check-input\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [class.semi-checked]=\"isIndeterminate\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n <label class=\"form-check-label\" [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n </label>\n </ng-template>\n\n <small *ngIf=\"isGroup\" [id]=\"id + '-help'\" class=\"form-text\">\n <ng-content></ng-content>\n </small>\n\n <div *ngIf=\"isInvalid && isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"isInvalid && !isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n</ng-template>\n\n<ng-template #htmlLabel>\n <div #customLabel>\n <ng-content select=\"[label]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customLabel.hasChildNodes()\">{{label}}</ng-container>\n</ng-template>\n","/**\n * General Email Regex (RFC 5322 Official Standard)\n * http://emailregex.com/\n */\nexport const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/\n\n/**\n * Phone number Regex\n */\nexport const PHONE_NUMBER_REGEX = /^\\s*(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{3})(?: *x(\\d+))?\\s*$/\n\n/**\n * URL Regex\n */\nexport const URL_REGEX = /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})/\n\n/**\n * The italian tax code Regex (Codice Fiscale)\n */\nexport const ITALIAN_TAX_CODE_REGEX = /^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$/i\n\n/**\n * The VAT number Regex (Partita iva)\n */\nexport const VAT_NUMBER_REGEX = /^[0-9]{11}$/\n\n/**\n * Italian CAP Regex\n */\nexport const CAP_REGEX = /^[0-9]{5}$/;\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport {\n CAP_REGEX,\n EMAIL_REGEX,\n ITALIAN_TAX_CODE_REGEX,\n PHONE_NUMBER_REGEX,\n URL_REGEX,\n VAT_NUMBER_REGEX\n} from '../utils/regex';\n\nexport class ItValidators {\n public static SpecialCharacterPattern = '!@#$%&*_+=;:|,.';\n\n /**\n * Static pattern validator with custom error\n * @param regex\n * @param error\n */\n public static customPattern(regex: RegExp, error: ValidationErrors): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n // if control is empty return no error\n return null;\n }\n\n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value);\n\n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null : error;\n };\n }\n\n /**\n * Set Validator if the condition is satisfied\n * @param validator the validator to apply if the condition is true\n * @param condition the condition\n */\n public static conditional(validator: ValidatorFn, condition: (control: AbstractControl) => boolean): ValidatorFn {\n return formControl => {\n if (!formControl.parent) {\n return null;\n }\n if (condition(formControl)) {\n return validator(formControl);\n }\n return null;\n };\n }\n\n /**\n * Check whether our password and confirm password are a match\n * @param control\n */\n public static passwordMatch(control: AbstractControl): AbstractControl | null {\n const confirmControl = control.get('passwordConfirm'); //confirmPassword form control\n if (!confirmControl) {\n return null;\n }\n\n const password = control.get('password')?.value; // get password from our password form control\n\n // compare is the password match\n if ((password && !confirmControl.value) || (confirmControl.value && password !== confirmControl.value)) {\n // if they don't match, set an error in our confirmPassword form control\n confirmControl?.setErrors({ noPasswordMatch: true });\n confirmControl?.markAsTouched();\n return control;\n }\n\n if (password) {\n confirmControl?.markAsTouched();\n }\n return null;\n }\n\n /**\n * Password validator\n * @param minLength minimum password length - default 10\n * @param hasNumber check whether the entered password has a number - default true\n * @param hasCapitalCase check whether the entered password has upper case letter - default true\n * @param hasSmallCase check whether the entered password has a lower-case letter - default true\n * @param hasSpecialCharacters check whether the entered password has a special character - default true\n */\n public static password(minLength = 10, hasNumber = true, hasCapitalCase = true, hasSmallCase = true, hasSpecialCharacters = true): ValidatorFn {\n return <ValidatorFn>Validators.compose([\n Validators.required,\n ItValidators.customPattern(/\\d/, { hasNumber: hasNumber }),\n ItValidators.customPattern(/[A-Z]/, { hasCapitalCase: hasCapitalCase }),\n ItValidators.customPattern(/[a-z]/, { hasSmallCase: hasSmallCase }),\n ItValidators.customPattern(new RegExp(`[${ItValidators.SpecialCharacterPattern}]`), { hasSpecialCharacters: hasSpecialCharacters }),\n Validators.minLength(minLength)\n ]);\n }\n\n /**\n * Email validator\n */\n public static get email(): ValidatorFn {\n return <ValidatorFn>Validators.compose([\n Validators.email,\n ItValidators.customPattern(EMAIL_REGEX, { invalidEmail: true })\n ]);\n }\n\n /**\n * Phone number validator\n */\n public static get tel(): ValidatorFn {\n return ItValidators.customPattern(PHONE_NUMBER_REGEX, { invalidTel: true });\n }\n\n /**\n * URL validator\n */\n public static get url(): ValidatorFn {\n return ItValidators.customPattern(URL_REGEX, { invalidUrl: true });\n }\n\n /**\n * Italian Tax Code validator\n */\n public static get taxCode(): ValidatorFn {\n return ItValidators.customPattern(ITALIAN_TAX_CODE_REGEX, { invalidTaxCode: true });\n }\n\n /**\n * VAT Number validator\n */\n public static get vatNumber(): ValidatorFn {\n return ItValidators.customPattern(VAT_NUMBER_REGEX, { invalidVatNumber: true });\n }\n\n /**\n * Italian Postal Code validator (CAP)\n */\n public static get cap(): ValidatorFn {\n return ItValidators.customPattern(CAP_REGEX, { invalidCap: true });\n }\n\n /**\n * Check if value is a valid RegExp\n */\n public static get regExp(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n try {\n if (control?.value) {\n new RegExp(control.value);\n }\n } catch (e) {\n return { invalidRegex: true };\n }\n return null;\n };\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n@Pipe({\n name: 'markMatchingText'\n}) \nexport class MarkMatchingTextPipe implements PipeTransform {\n constructor(private domSanitizer: DomSanitizer) {}\n\n transform(allString: string, searchString: string): any {\n if (!searchString) { \n return allString; \n } else if(!allString) {\n return \"\";\n }\n // Check if search string is a substring of pivot string (no case-sensitive)\n const idxOfMatchString = allString.toLowerCase().indexOf(searchString.toLowerCase());\n if(idxOfMatchString !== -1) {\n // retrieve the exactly substring\n const matchingString = allString.substring(idxOfMatchString, idxOfMatchString + searchString.length);\n // Replace original string marking as <strong> (bold) the matchinng substring\n const regEx = new RegExp('(' + matchingString + ')', 'gi')\n const res = allString.replace(regEx, '<mark>$1</mark>');\n return this.domSanitizer.bypassSecurityTrustHtml(res);\n } \n\n return allString;\n \n }\n\n \n}","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractFormComponent } from '../../../abstracts/abstract-form-component';\nimport { AutocompleteItem, InputControlType } from '../../../interfaces/form';\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\nimport { ItValidators } from '../../../validators/it-validators';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { debounceTime, distinctUntilChanged, map, Observable, of, switchMap } from 'rxjs';\n\n@Component({\n selector: 'it-input[id]',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss']\n})\nexport class InputComponent extends AbstractFormComponent<string | number> {\n\n /**\n * The input type\n * @default text\n */\n @Input() type: InputControlType = 'text';\n\n /**\n * The input placeholder\n */\n @Input() placeholder: string = '';\n\n /**\n * The input description\n */\n @Input() description?: string;\n\n /**\n * To prevent modification of the contained value.\n * - <b>plaintext</b>: Readonly field in the form stylized as plain text\n */\n @Input() readonly?: BooleanInput | 'plaintext';\n\n /**\n * The max value [Used only in type = 'number']\n */\n @Input() max?: number;\n\n /**\n * The min value [Used only in type = 'number']\n */\n @Input() min?: number;\n\n /**\n * The step value [Used only in type = 'number']\n */\n @Input() step?: number | 'any';\n\n /**\n * If is a currency number [Used only in type = 'number']\n */\n @Input() currency?: BooleanInput;\n\n /**\n * If is a percentage number [Used only in type = 'number']\n */\n @Input() percentage?: BooleanInput;\n\n /**\n * To make the numeric field automatically resize according to the value contained in it. [Used only in type = 'number']\n */\n @Input() adaptive?: BooleanInput;\n\n /**\n * Indicates the list of searchable elements on which to base the input autocomplete system [Optional. Used only in type = 'search']\n * If you need to retrieve items via API, can pass a function of Observable\n * @default undefined\n */\n @Input() autocompleteData?: Array<AutocompleteItem> | ((search?: string) => Observable<Array<AutocompleteItem>>);\n\n /**\n * Time span [ms] has passed without another source emission, to delay data filtering.\n * Useful when the user is typing multiple letters\n * @default 300 [ms]\n */\n @Input() autocompleteDebounceTime: number = 300;\n\n /**\n * Fired when the Autocomplete Item has been selected\n */\n @Output() onAutocompleteSelected: EventEmitter<AutocompleteItem> = new EventEmitter();\n\n showAutocompletion = false;\n\n\n get isActiveLabel(): boolean {\n const value = this.control.value;\n if ((!!value && value !== 0) || value === 0 || !!this.placeholder) {\n return true;\n }\n\n if (this.type === 'number' && (isTrueBooleanInput(this.currency) || isTrueBooleanInput(this.percentage))) {\n return true;\n }\n\n return this.type === 'date' || this.type === 'time' || this.type === 'color';\n }\n\n /**\n * Check is readonly field\n */\n get isReadonly(): boolean {\n return this.readonly === 'plaintext' || isTrueBooleanInput(this.readonly);\n }\n\n /**\n * Return the invalid message string from TranslateService\n */\n override get invalidMessage(): Observable<string> {\n if (this.hasError('min') && this.min) {\n return this._translateService.get('it.errors.min-invalid', {\n min: this.min\n });\n }\n if (this.hasError('max') && this.max) {\n return this._translateService.get('it.errors.max-invalid', {\n max: this.max\n });\n }\n if (this.hasError('minlength')) {\n const error = this.getError('minlength');\n return this._translateService.get('it.errors.min-length-invalid', { min: error.requiredLength });\n }\n if (this.hasError('maxlength')) {\n const error = this.getError('maxlength');\n return this._translateService.get('it.errors.max-length-invalid', { max: error.requiredLength });\n }\n if (this.hasError('email') || this.hasError('invalidEmail')) {\n return this._translateService.get('it.errors.email-invalid');\n }\n if (this.hasError('invalidTel')) {\n return this._translateService.get('it.errors.tel-invalid');\n }\n if (this.hasError('invalidUrl')) {\n return this._translateService.get('it.errors.url-invalid');\n }\n if (this.hasError('invalidTaxCode')) {\n return this._translateService.get('it.errors.tax-code-invalid');\n }\n if (this.hasError('invalidVatNumber')) {\n return this._translateService.get('it.errors.vat-number-invalid');\n }\n if (this.hasError('invalidCap')) {\n return this._translateService.get('it.errors.cap-invalid');\n }\n if (this.hasError('invalidRegex')) {\n return this._translateService.get('it.errors.regex-invalid');\n }\n if (this.hasError('pattern')) {\n const error = this.getError('pattern');\n return this._translateService.get('it.errors.pattern-invalid', { pattern: error.requiredPattern });\n }\n\n return super.invalidMessage;\n }\n\n /** Observable da cui vengono emessi i risultati dell'auto completamento */\n autocompleteResults$: Observable<{ searchedValue: string, relatedEntries: Array<AutocompleteItem> }> = new Observable();\n\n\n override ngOnInit() {\n super.ngOnInit();\n\n const validators: Array<ValidatorFn> = [];\n switch (this.type) {\n case 'number':\n if (isTrueBooleanInput(this.percentage)) {\n this.min = this.min || 0;\n this.max = this.max || 100;\n }\n\n // Dynamic min/max validators\n validators.push((control: AbstractControl) => this.min ? Validators.min(this.min)(control) : null);\n validators.push((control: AbstractControl) => this.max ? Validators.max(this.max)(control) : null);\n break;\n case 'email':\n validators.push(ItValidators.email);\n break;\n case 'tel':\n validators.push(ItValidators.tel);\n break;\n case 'url':\n validators.push(ItValidators.url);\n break;\n }\n\n this.addValidators(validators);\n this.autocompleteResults$ = this.getAutocompleteResults$();\n }\n\n /**\n * Increment or decrease the input number value of step\n * @param decrease true to decrease value\n */\n incrementNumber(decrease: boolean = false): void {\n if (this.type !== 'number') {\n return;\n }\n const step = (this.step === 'any' ? 1 : (this.step ?? 1));\n let value = Number(this.control.value);\n value = (isNaN(value) ? 0 : value) + (decrease ? -step : step);\n value = Math.round(value * 1e12) / 1e12; // prevent js decimal error\n\n if (this.min !== undefined && value < this.min) {\n value = this.min;\n } else if (this.max !== undefined && value > this.max) {\n value = this.max;\n }\n\n this.control.setValue(value);\n }\n\n\n /**\n * Create the autocomplete list\n */\n private getAutocompleteResults$(): Observable<{ searchedValue: string, relatedEntries: Array<AutocompleteItem> }> {\n if (this.type !== 'search') {\n return of({ searchedValue: '', relatedEntries: [] });\n }\n return this.control.valueChanges.pipe(\n debounceTime(this.autocompleteDebounceTime), // Delay filter data after time span has passed without another source emission, useful when the user is typing multiple letters\n distinctUntilChanged(), // Only if searchValue is distinct in comparison to the last value\n switchMap(searchedValue => {\n if (!this.autocompleteData) {\n return of({ searchedValue, relatedEntries: [] });\n }\n\n const autoCompleteData$ = Array.isArray(this.autocompleteData) ? of(this.autocompleteData) : this.autocompleteData(searchedValue);\n return autoCompleteData$.pipe(\n map(autocompleteData => {\n if (!searchedValue) {\n return { searchedValue, relatedEntries: [] };\n }\n\n const lowercaseValue = searchedValue.toLowerCase();\n const relatedEntries = autocompleteData.filter(item => item.value?.toLowerCase().includes(lowercaseValue));\n\n return { searchedValue, relatedEntries };\n })\n );\n })\n );\n }\n\n onEntryClick(entry: AutocompleteItem, event: Event) {\n // Se non è stato definito un link associato all'elemento dell'autocomplete, probabilmente il desiderata\n // non è effettuare la navigazione al default '#', pertanto in tal caso meglio annullare la navigazione.\n if (!entry.link) {\n event.preventDefault();\n }\n\n this.onAutocompleteSelected.next(entry);\n this.control.setValue(entry.value);\n this.showAutocompletion = false;\n }\n\n autocompleteItemTrackByValueFn(index: number, item: AutocompleteItem) {\n return item.value;\n }\n\n onKeyDown() {\n this.showAutocompletion = this.type === 'search';\n }\n}\n","<div class=\"form-group\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\" [class.d-none]=\"!prependText.hasChildNodes() && !prepend.hasChildNodes()\">\n <div #prepend>\n <ng-content select=\"[prepend]\"></ng-content>\n </div>\n <div class=\"input-group-text\" #prependText>\n <ng-content select=\"[prependText]\"></ng-content>\n </div>\n </div>\n\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"isActiveLabel\"\n [class.empty-prepend-label]=\"!prependText.hasChildNodes() && !prepend.hasChildNodes()\">\n {{label}}\n </label>\n\n <span *ngIf=\"type === 'number'\"\n class=\"input-number\"\n [class.input-number-currency]=\"currency\"\n [class.input-number-percentage]=\"percentage\"\n [class.input-number-adaptive]=\"adaptive\">\n\n <input type=\"number\"\n [id]=\"id\"\n [step]=\"step ?? null\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [attr.aria-describedby]=\"id + '-description'\"\n (blur)=\"markAsTouched()\" />\n\n <button type=\"button\" class=\"input-number-add\" (click)=\"incrementNumber()\">\n <span class=\"visually-hidden\">{{'it.form.increase-value'}}</span>\n </button>\n <button type=\"button\" class=\"input-number-sub\" (click)=\"incrementNumber(true)\">\n <span class=\"visually-hidden\">{{'it.form.decrease-value'}}</span>\n </button>\n </span>\n\n <input *ngIf=\"type !== 'number'\"\n [id]=\"id\"\n [type]=\"type\"\n [class.form-control]=\"readonly !== 'plaintext'\"\n [class.form-control-plaintext]=\"readonly === 'plaintext'\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n (keydown)=\"onKeyDown()\"\n [attr.aria-describedby]=\"id + '-description'\"\n (blur)=\"markAsTouched()\">\n\n <div class=\"input-group-append\">\n <ng-content select=\"[append]\"></ng-content>\n\n <div class=\"input-group-text\">\n <ng-content select=\"[appendText]\"></ng-content>\n </div>\n </div>\n </div>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n\n <!-- INIZIO gestione AUTOCOMPLETAMENTO -->\n <ng-container *ngIf=\"type === 'search'\">\n <!-- Icona lente per autocompletamento -->\n <span class=\"autocomplete-icon\" aria-hidden=\"true\">\n <it-icon name=\"search\" size=\"sm\"></it-icon>\n </span>\n\n <ng-container *ngIf=\"autocompleteResults$ | async as autocomplete\">\n <!-- Lista di autocompletamento -->\n <ul class=\"autocomplete-list\" [class.autocomplete-list-show]=\"autocomplete.relatedEntries?.length && showAutocompletion\">\n <li *ngFor=\"let entry of autocomplete.relatedEntries; trackBy: autocompleteItemTrackByValueFn\"\n (click)=\"onEntryClick(entry, $event)\">\n <a [href]=\"entry.link\">\n <ng-container *ngTemplateOutlet=\"autocompleteItemTemplate\"></ng-container>\n </a>\n <ng-template #autocompleteItemTemplate>\n <div class=\"avatar size-sm\" *ngIf=\"entry.avatarSrcPath\">\n <img [src]=\"entry.avatarSrcPath\" [alt]=\"entry.avatarAltText\">\n </div>\n <it-icon *ngIf=\"entry.icon\" [name]=\"entry.icon\" size=\"sm\"></it-icon>\n <span class=\"autocomplete-list-text\">\n <span [innerHTML]=\"entry.value | markMatchingText: autocomplete.searchedValue\"></span>\n <em *ngIf=\"entry.label\">{{entry.label}}</em>\n </span>\n </ng-template>\n </li>\n </ul>\n </ng-container>\n </ng-container>\n <!-- FINE gestione AUTOCOMPLETAMENTO -->\n\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { AbstractFormComponent } from '../../../abstracts/abstract-form-component';\nimport { ItValidators } from '../../../validators/it-validators';\nimport { Observable } from 'rxjs';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { InputPassword } from 'bootstrap-italia';\n\n@Component({\n selector: 'it-password-input[id]',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractFormComponent<string> {\n\n /**\n * The password minimum length\n * @default 10\n */\n @Input() minLength: number = 10;\n\n /**\n * The password must contain at least one number\n * @default true\n */\n @Input() useNumber: boolean = true;\n\n /**\n * The password must contain at least one uppercase character\n * @default true\n */\n @Input() useCapitalCase: boolean = true;\n\n /**\n * The password must contain at least one lowercase character\n * @default true\n */\n @Input() useSmallCase: boolean = true;\n\n /**\n * The password must contain at least one special character\n * @default true\n */\n @Input() useSpecialCharacters: boolean = true;\n\n /**\n * The input placeholder\n */\n @Input() placeholder: string = '';\n\n /**\n * The input description\n */\n @Input() description?: string;\n\n /**\n * Enable to show the strength meter\n */\n @Input() showStrengthMeter?: BooleanInput;\n\n\n inputPasswordBs?: InputPassword;\n\n @ViewChild('input') private inputElement?: ElementRef<HTMLInputElement>;\n\n override ngOnInit() {\n super.ngOnInit();\n\n this.addValidators(ItValidators.password(\n this.minLength,\n this.useNumber,\n this.useCapitalCase,\n this.useSmallCase,\n this.useSpecialCharacters\n ));\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (this.inputElement) {\n this.inputPasswordBs = new InputPassword(this.inputElement.nativeElement, {\n ...this.description && { enterPass: this.description },\n showText: this.isStrengthMeter,\n minimumLength: this.minLength\n });\n }\n }\n\n get isStrengthMeter(): boolean {\n return isTrueBooleanInput(this.showStrengthMeter);\n }\n\n /**\n * Return the invalid message string from TranslateService\n */\n override get invalidMessage(): Observable<string> {\n if (this.hasError('noPasswordMatch')) {\n return this._translateService.get('it.errors.password-no-match');\n }\n if (this.hasError('minlength')) {\n return this._translateService.get('it.errors.password-min-length', {\n minLength: this.minLength\n });\n }\n if (this.hasError('hasNumber')) {\n return this._translateService.get('it.errors.password-number');\n }\n if (this.hasError('hasCapitalCase')) {\n return this._translateService.get('it.errors.password-capital-case');\n }\n if (this.hasError('hasSmallCase')) {\n return this._translateService.get('it.errors.password-capital-case');\n }\n if (this.hasError('hasSpecialCharacters')) {\n return this._translateService.get('it.errors.password-special-character');\n }\n\n return super.invalidMessage;\n }\n}\n","<div class=\"form-group\">\n\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n\n <input type=\"password\"\n [id]=\"id\"\n class=\"form-control input-password\"\n [class.input-password-strength-meter]=\"isStrengthMeter\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [attr.aria-describedby]=\"id + '-description'\" #input>\n\n <span class=\"password-icon\" aria-hidden=\"true\">\n <it-icon name=\"password-visible\" size=\"sm\" class=\"password-icon-visible\"></it-icon>\n <it-icon name=\"password-invisible\" size=\"sm\" class=\"password-icon-invisible d-none\"></it-icon>\n </span>\n\n <small *ngIf=\"description && !isStrengthMeter\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { AbstractFormComponent } from '../../../abstracts/abstract-form-component';\nimport { BooleanInput, isFalseBooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n@Component({\n selector: 'it-radio-button[id][value]',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss']\n})\nexport class RadioButtonComponent extends AbstractFormComponent<string | number> {\n\n /**\n * The radio value\n */\n @Input() value?: string | number;\n\n /**\n * If show radio inline\n * @default false\n */\n @Input() inline: BooleanInput = false;\n\n /**\n * If is radio group\n * @default false\n */\n @Input() group: BooleanInput = false;\n\n /**\n * If is radio is checked\n */\n @Input() checked?: BooleanInput;\n\n get isInline(): boolean {\n return isTrueBooleanInput(this.inline);\n }\n\n get isGroup(): boolean {\n return isTrueBooleanInput(this.group);\n }\n\n get name(): string {\n return this._ngControl?.name?.toString() || '';\n }\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (this.control.value || !this.value || isFalseBooleanInput(this.checked)) {\n return;\n }\n\n this.writeValue(this.value);\n return this.onChange(this.value);\n }\n}\n","<ng-container>\n <div class=\"form-check\"\n [class.form-check-group]=\"isGroup\"\n [class.form-check-inline]=\"isInline\">\n\n <input\n [id]=\"id\"\n type=\"radio\"\n [value]=\"value\"\n class=\"form-check-input\"\n [name]=\"name\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n\n <label class=\"form-check-label\" [for]=\"id\">\n <div #customLabel>\n <ng-content select=\"[label]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customLabel.hasChildNodes()\">{{label}}</ng-container>\n </label>\n\n <small *ngIf=\"isGroup\" [id]=\"id + '-help'\" class=\"form-text\">\n <ng-content></ng-content>\n </small>\n\n <div *ngIf=\"isInvalid && isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n\n </div>\n\n <div *ngIf=\"isInvalid && !isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { AbstractFormComponent } from '../../../abstracts/abstract-form-component';\nimport { SelectControlGroup, SelectControlOption } from '../../../interfaces/form';\n\n@Component({\n selector: 'it-select[id][options]',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss']\n})\nexport class SelectComponent extends AbstractFormComponent {\n\n /**\n * The select options\n */\n @Input() options!: Array<SelectControlOption>;\n\n /**\n * The select group options\n */\n @Input() groups?: Array<SelectControlGroup>;\n\n /**\n * The select description\n */\n @Input() description?: string;\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (this.control.value) {\n return;\n }\n const selectedOption = this.options.find(this.optionIsSelected);\n if (selectedOption) {\n this.writeValue(selectedOption.value);\n return this.onChange(selectedOption.value);\n }\n\n const selectedGroupOption = this.groups?.flatMap(g => g.options).find(this.optionIsSelected);\n if (selectedGroupOption) {\n this.writeValue(selectedGroupOption.value);\n this.onChange(selectedGroupOption.value);\n }\n }\n\n /**\n * Check if the option is selected\n * @param option the option\n */\n optionIsSelected(option: SelectControlOption): boolean {\n if (option.selected === true) {\n return true;\n }\n\n if (typeof option.selected === 'function') {\n return option.selected(this.control.value);\n }\n\n return false;\n }\n\n /**\n * Check if the option is disabled\n * @param option the option\n */\n optionIsDisabled(option: SelectControlOption): boolean {\n if (option.disabled === true) {\n return true;\n }\n\n if (typeof option.disabled === 'function') {\n return option.disabled(this.control.value);\n }\n\n return false;\n }\n}\n","<div class=\"select-wrapper\">\n <label [for]=\"id\">{{label}}</label>\n <select [id]=\"id\" [formControl]=\"control\" [attr.aria-describedby]=\"id + '-description'\">\n <option *ngFor=\"let option of options\" [disabled]=\"optionIsDisabled(option)\" [value]=\"option.value\">\n {{option.text ?? option.value}}\n </option>\n\n <ng-container *ngIf=\"groups\">\n <optgroup *ngFor=\"let group of groups\" [label]=\"group.label\">\n <option *ngFor=\"let option of group.options\" [disabled]=\"optionIsDisabled(option)\" [value]=\"option.value\">\n {{option.text ?? option.value}}\n </option>\n </optgroup>\n </ng-container>\n </select>\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { AbstractFormComponent } from '../../../abstracts/abstract-form-component';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'it-textarea[id]',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss']\n})\nexport class TextareaComponent extends AbstractFormComponent<string> {\n\n /**\n * Textarea Rows\n * @default 3\n */\n @Input() rows?: number = 3;\n\n /**\n * The textarea placeholder\n */\n @Input() placeholder: string = '';\n\n /**\n * The input description\n */\n @Input() description?: string;\n\n /**\n * Return the invalid message string from TranslateService\n */\n override get invalidMessage(): Observable<string> {\n if (this.control.hasError('maxlength')) {\n const error = this.getError('maxlength');\n return this._translateService.get('it.errors.max-length-invalid', { max: error.requiredLength });\n }\n if (this.control.hasError('pattern')) {\n const error = this.getError('pattern');\n return this._translateService.get('it.errors.pattern-invalid', { pattern: error.requiredPattern });\n }\n\n return super.invalidMessage;\n }\n}\n","<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"markAsTouched()\"></textarea>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n","import { Observable } from 'rxjs';\n\nexport class FileUtils {\n\n /**\n * Return the file size string\n * @param file the file\n * @param decimals decimal to show\n */\n public static getFileSizeString(file: File, decimals = 2): string {\n const bytes = file.size;\n if (!+bytes) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n }\n\n /**\n * Convert a file to base64 string\n * @param file the base64 string\n */\n public static fileToBase64(file: File): Observable<string> {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n return new Observable<string>(observer => {\n reader.onload = (e) => {\n const target = e.target;\n if (!target || !target.result || target.result instanceof ArrayBuffer) {\n return observer.error('Error on parse');\n }\n observer.next(target.result);\n observer.complete();\n };\n reader.onerror = error => {\n observer.error(error);\n };\n });\n }\n\n /**\n * Convert base64 to Blob\n * @param base64 the base64 string\n * @param mimeType the <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\">MIME type</a> (example 'application/pdf')\n */\n public static base64ToBlob(base64: string, mimeType: string): Blob {\n const byteString = window.atob(base64);\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const int8Array = new Uint8Array(arrayBuffer);\n for (let i = 0; i < byteString.length; i++) {\n int8Array[i] = byteString.charCodeAt(i);\n }\n return new Blob([int8Array], { type: mimeType });\n }\n\n /**\n * Convert base64 to File\n * @param base64 the base64 string\n * @param mimeType the <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\">MIME type</a> (example 'application/pdf')\n * @param filename the file name\n */\n public static base64ToFile(base64: string, mimeType: string, filename: string): File {\n const fileBlob = FileUtils.base64ToBlob(base64, mimeType);\n return new File([fileBlob], filename, { type: mimeType });\n }\n\n /**\n * Extract the MIME type from base64 string\n * @param base64 the base64 string\n */\n public static getMimeTypeFromBase64(base64: string): string|undefined {\n const mime = base64.match(/data:([a-zA-Z0-9]+\\/[a-zA-Z0-9-.+]+).*,.*/);\n return (mime && mime.length) ? mime[1] : undefined;\n }\n}\n","import { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\nimport { FileUtils } from '../../../utils/file-utils';\nimport { ProgressDonut } from 'bootstrap-italia';\n\n@Component({\n selector: 'it-upload-drag-drop[id]',\n templateUrl: './upload-drag-drop.component.html',\n exportAs: 'itUploadDragDrop'\n})\nexport class UploadDragDropComponent extends AbstractComponent {\n\n /**\n * The accepted file type to upload <br>\n * Possible values: <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\">MIME Types</a> separated by comma\n * @example application/pdf,image/png\n * @default *\n */\n @Input() accept: string = '*';\n\n /**\n * Fired when file start to upload\n */\n @Output() fileStartUpload = new EventEmitter<File>();\n\n isDragover: boolean = false;\n isLoading: boolean = false;\n isSuccess: boolean = false;\n\n donut?: ProgressDonut;\n\n @ViewChild('donutElement') private donutElement?: ElementRef<HTMLDivElement>;\n\n filename?: string;\n extension?: string;\n fileSize?: string;\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n if (this.donutElement) {\n this.donut = ProgressDonut.getOrCreateInstance(this.donutElement.nativeElement);\n }\n }\n\n // Dragover listener\n @HostListener('dragover', ['$event'])\n public onDragOver(evt: DragEvent): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.isDragover = !this.isLoading;\n }\n\n\n // Dragleave listener\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt: DragEvent): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.isDragover = false;\n }\n\n // Drop leave listener\n @HostListener('drop', ['$event'])\n public onDrop(evt: DragEvent): void {\n evt.preventDefault();\n evt.stopPropagation();\n\n this.isDragover = false;\n const files = evt.dataTransfer?.files;\n if (this.isLoading || !files?.length) {\n return;\n }\n this.start(files[0]);\n }\n\n /**\n * On load file from input\n * @param event\n */\n onLoadFile(event: Event): void {\n const files = (event.target as HTMLInputElement)?.files;\n if (!files?.length) {\n return;\n }\n this.start(files[0]);\n }\n\n /**\n * Start the upload file\n * @param file\n */\n public start(file: File): void {\n if (this.accept !== '*' && !this.accept.includes(file.type)) {\n return;\n }\n\n this.reset();\n this.isLoading = true;\n\n const splitName = file.name.split('.');\n this.filename = splitName[0];\n this.extension = splitName[1]?.toUpperCase();\n this.fileSize = FileUtils.getFileSizeString(file);\n\n this.fileStartUpload.emit(file);\n }\n\n /**\n * Percentage of upload\n * @param value the percentage [0 - 100]\n */\n public progress(value: number) {\n if (!this.isLoading) {\n return;\n }\n\n if (value >= 100) {\n this.success();\n } else {\n this.donut?.set(((value < 0) ? 0 : value) / 100);\n }\n }\n\n /**\n * Upload success\n */\n public success(): void {\n this.isLoading = false;\n this.isSuccess = true;\n }\n\n /**\n * Reset file uploader\n */\n public reset(): void {\n this.isLoading = false;\n this.isSuccess = false;\n this.filename = this.extension = this.fileSize = undefined;\n this.donut?.set(0);\n }\n\n}\n","<div class=\"upload-dragdrop\" [class.dragover]=\"isDragover\" [class.loading]=\"isLoading\" [class.success]=\"isSuccess\">\n <div class=\"upload-dragdrop-image\">\n <img src=\"/bootstrap-italia/dist/assets/upload-drag-drop-icon.svg\" alt=\"drag-drop-icon\" aria-hidden=\"true\">\n <div class=\"upload-dragdrop-loading\">\n <div class=\"progress-donut\" #donutElement></div>\n </div>\n <div class=\"upload-dragdrop-success\">\n <it-icon name=\"check\"></it-icon>\n </div>\n </div>\n <div class=\"upload-dragdrop-text\">\n <p class=\"upload-dragdrop-weight\">\n <it-icon name=\"file\" size=\"xs\"></it-icon>\n {{extension}} ({{fileSize}})\n </p>\n <h5>{{filename || ('it.form.upload-drag-file'|translate)}}</h5>\n <p *ngIf=\"isLoading\">{{'it.form.upload-loading'|translate}}</p>\n <p *ngIf=\"isSuccess\">{{'it.form.upload-complete'|translate}}</p>\n <p *ngIf=\"!isLoading && !isSuccess\">{{'it.form.upload-or'|translate}}\n <input type=\"file\" [id]=\"id\" class=\"upload-dragdrop-input\" [accept]=\"accept\" (change)=\"onLoadFile($event)\"/>\n <label [for]=\"id\">{{'it.form.upload-select-device'|translate}}</label>\n </p>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { UploadFileListItem } from '../../../interfaces/form';\nimport { FileUtils } from '../../../utils/file-utils';\nimport { forkJoin, take, tap } from 'rxjs';\n\n@Component({\n selector: 'it-upload-file-list[id][fileList]',\n templateUrl: './upload-file-list.component.html'\n})\nexport class UploadFileListComponent extends AbstractComponent implements OnInit, OnChanges {\n\n /**\n * The list of files to show in list\n */\n @Input() fileList!: Array<UploadFileListItem>;\n\n /**\n * The accepted file type to upload <br>\n * Possible values: <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\">MIME Types</a> separated by comma\n * @example application/pdf,image/png\n * @default *\n */\n @Input() accept: string = '*';\n\n /**\n * If upload multiple files\n */\n @Input() multiple: BooleanInput = true;\n\n /**\n * If is file list image\n */\n @Input() images?: BooleanInput;\n\n /**\n * Hide the load button\n */\n @Input() hideLoadButton?: BooleanInput;\n\n /**\n * Fired when upload new files\n */\n @Output() uploadFiles: EventEmitter<FileList> = new EventEmitter<FileList>();\n\n /**\n * Fired on delete item button click\n */\n @Output() deleteItem: EventEmitter<UploadFileListItem> = new EventEmitter<UploadFileListItem>();\n\n /**\n * Cache to preview image\n */\n previewImages: Map<number, string> = new Map<number, string>();\n\n ngOnInit(): void {\n if (this.isImageList && this.accept === '*') {\n this.accept = 'image/*';\n }\n }\n\n override ngOnChanges(changes: SimpleChanges): void {\n if (changes['fileList'] && this.isImageList) {\n const images$ = this.fileList.map(item => FileUtils.fileToBase64(item.file).pipe(\n take(1),\n tap(base64 => this.previewImages.set(item.id, base64))\n ));\n forkJoin(images$).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n super.ngOnChanges(changes);\n });\n } else {\n super.ngOnChanges(changes);\n }\n }\n\n get isMultipleInput(): boolean {\n return isTrueBooleanInput(this.multiple);\n }\n\n get isImageList(): boolean {\n return isTrueBooleanInput(this.images);\n }\n\n get isHideLoadButton(): boolean {\n return isTrueBooleanInput(this.hideLoadButton);\n }\n\n /**\n * On load file from input\n * @param event\n */\n onLoadFiles(event: Event): void {\n const files = (event.target as HTMLInputElement)?.files;\n if (!files || !files.length) {\n return;\n }\n this.uploadFiles.emit(files);\n }\n\n /**\n * Get the file size string\n * @param file\n */\n getFileSize(file: File): string {\n return FileUtils.getFileSizeString(file);\n }\n\n}\n","<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? (item.progress ? 'secondary' : 'primary') : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" type=\"button\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\" type=\"button\" disabled>\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress\"></it-progress-bar>\n </li>\n</ul>\n","import { Component, Input } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n@Component({\n selector: 'it-back-button',\n templateUrl: './back-button.component.html',\n exportAs: 'itBackButton'\n})\nexport class BackButtonComponent {\n\n /**\n * Back button style\n * - <b>link</b>: use a link with icon and text\n * - <b>button</b>: use a button with icon and text\n * @default button\n */\n @Input() buttonStyle: 'link' | 'button' = 'button';\n\n /**\n * Button direction\n * - <b>left</b>: Back direction\n * - <b>up</b>: Upper direction\n * @default left\n */\n @Input() direction: 'left' | 'up' = 'left';\n\n /**\n * Show/Hide icon\n * @default true\n */\n @Input() showIcon: BooleanInput = true;\n\n /**\n * Show/Hide text\n * @default true\n */\n @Input() showText: BooleanInput = true;\n\n /**\n * Custom back logic <br/>\n *\n * NOTE: to use 'this' need bind function <br/>\n * @example backCbFn = this.errorCallback.bind(this);\n * (errorCallback is your function, pass backCbFn to the component)\n */\n @Input() backFn?: (location: Location) => void;\n\n get isShowIcon(): boolean {\n return isTrueBooleanInput(this.showIcon);\n }\n\n get isShowText(): boolean {\n return isTrueBooleanInput(this.showText);\n }\n\n constructor(\n public readonly _location: Location\n ) {\n }\n\n /**\n * Go back function\n */\n public goBack(event: Event): void {\n event.preventDefault();\n if (this.backFn) {\n return this.backFn(this._location);\n }\n\n this._location.back();\n }\n}\n","<a *ngIf=\"buttonStyle === 'link'\" href=\"#\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<button *ngIf=\"buttonStyle === 'button'\" itButton=\"primary\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<ng-template #content>\n <it-icon *ngIf=\"isShowIcon\"\n size=\"sm\"\n [name]=\"direction === 'left' ? 'arrow-left' : 'arrow-up'\"\n [color]=\"buttonStyle === 'link' ? 'primary' : 'white'\"\n [class.me-2]=\"isShowText\"></it-icon>\n\n <span [class.visually-hidden]=\"!isShowText\">\n {{(direction === 'left' ? 'it.navigation.go-back' : 'it.navigation.upper-level') | translate}}\n </span>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\nimport { BackToTop } from 'bootstrap-italia';\n\n@Component({\n selector: 'it-back-to-top',\n templateUrl: './back-to-top.component.html',\n exportAs: 'itBackToTop',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BackToTopComponent extends AbstractComponent {\n\n /**\n * The back to top ID\n * @default 'back-to-top-button'\n */\n @Input() override id: string = 'back-to-top-button';\n\n /**\n * Show small button\n */\n @Input() small?: BooleanInput;\n\n /**\n * Show shadow\n */\n @Input() shadow?: BooleanInput;\n\n /**\n * Button usable button on a dark background\n */\n @Input() dark?: BooleanInput;\n\n private backToTop?: BackToTop;\n\n @ViewChild('backToTop') private backToTopElement?: ElementRef<HTMLAnchorElement>;\n\n get isSmall(): boolean {\n return isTrueBooleanInput(this.small);\n }\n\n get isShadow(): boolean {\n return isTrueBooleanInput(this.shadow);\n }\n\n get isDark(): boolean {\n return isTrueBooleanInput(this.dark);\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (this.backToTopElement) {\n const element = this.backToTopElement.nativeElement;\n this.backToTop = BackToTop.getOrCreateInstance(element);\n }\n }\n\n /**\n * Show button\n */\n public show(): void {\n this.backToTop?.show();\n }\n\n /**\n * Hide the button\n */\n public hide(): void {\n this.backToTop?.hide();\n }\n\n /**\n * Activates the scroll animation towards the Y coordinate indicated by the positionTop option\n */\n public scrollToTop(): void {\n this.backToTop?.scrollToTop();\n }\n\n /**\n * Eliminate component features\n */\n public dispose(): void {\n this.backToTop?.dispose();\n }\n}\n","<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { IconName } from '../../../../interfaces/icon';\nimport { LinkComponent } from '../../../core/link/link.component';\n\n@Component({\n selector: 'it-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html',\n styleUrls: ['./breadcrumb-item.component.scss']\n})\nexport class BreadcrumbItemComponent extends LinkComponent {\n\n /**\n * Is active breadcrumb item\n */\n @Input() active?: BooleanInput;\n\n /**\n * The name of icon to show\n */\n @Input() iconName?: IconName;\n\n /**\n * The content of item\n */\n @ViewChild(TemplateRef)\n public htmlContent!: TemplateRef<any>;\n\n get isActive(): boolean {\n return isTrueBooleanInput(this.active);\n }\n\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {ChangeDetectorRef, Component, ContentChildren, Input, QueryList} from '@angular/core';\nimport {BreadcrumbItemComponent} from \"../breadcrumb-item/breadcrumb-item.component\";\nimport {BooleanInput, isTrueBooleanInput} from \"../../../../utils/boolean-input\";\n\n@Component({\n selector: 'it-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss']\n})\nexport class BreadcrumbComponent {\n\n /**\n * The character to use as separator\n * @default /\n */\n @Input() separator: string = '/';\n\n /**\n * Dark style\n */\n @Input() dark?: BooleanInput;\n\n /**\n * The tab items\n */\n @ContentChildren(BreadcrumbItemComponent) items?: QueryList<BreadcrumbItemComponent>;\n\n get isDark(): boolean {\n return isTrueBooleanInput(this.dark);\n }\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef\n ) {\n }\n\n ngAfterViewInit(): void {\n this._changeDetectorRef.detectChanges();\n }\n\n /**\n * Check if index is last item\n * @param index\n */\n isLastItem(index: number): boolean {\n return !!this.items && index >= (this.items.length - 1);\n }\n\n}\n","<nav class=\"breadcrumb-container\" [attr.aria-label]=\"'it.navigation.navigation-path'|translate\">\n <ol class=\"breadcrumb\" [class.dark]=\"isDark\" [class.px-3]=\"isDark\">\n <li *ngFor=\"let item of items; let i = index\"\n class=\"breadcrumb-item\"\n [class.active]=\"item.isActive\"\n [attr.aria-current]=\"item.isActive ? 'page' : null\">\n\n <it-icon *ngIf=\"item.iconName\"\n [name]=\"item.iconName\"\n [color]=\"isDark ? 'white' : 'secondary'\"\n size=\"sm\"\n class=\"align-top me-1\"></it-icon>\n\n <it-link *ngIf=\"!item.isActive && !isLastItem(i); else activeContent\"\n [href]=\"item.href\" [class]=\"item.class\" [externalLink]=\"item.externalLink\" [disabled]=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </it-link>\n\n <ng-template #activeContent>\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </ng-template>\n\n <span *ngIf=\"!isLastItem(i)\" class=\"separator\">{{separator}}</span>\n </li>\n </ol>\n</nav>\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { AbstractComponent } from '../../../abstracts/abstract.component';\n\n@Component({\n selector: 'it-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent extends AbstractComponent {\n\n @Input() light?: BooleanInput;\n\n @Input() showSlim?: BooleanInput = true;\n\n @Input() slimTitle?: string;\n\n @Input() loginStyle: 'none' | 'default' | 'full' = 'full';\n\n @Input() smallHeader?: BooleanInput = true;\n\n @Input() showSearch?: BooleanInput = true;\n\n @Output() loginClick: EventEmitter<Event>;\n\n @Output() searchClick: EventEmitter<Event>;\n\n /**\n * TODO: complete header\n * @param _renderer\n * @param _elementRef\n * @param _changeDetectorRef\n */\n constructor(\n protected override readonly _renderer: Renderer2,\n protected override readonly _elementRef: ElementRef,\n protected override readonly _changeDetectorRef: ChangeDetectorRef\n ) {\n super(_renderer, _elementRef, _changeDetectorRef);\n this.loginClick = new EventEmitter<Event>();\n this.searchClick = new EventEmitter<Event>();\n }\n\n get isLight(): boolean {\n return isTrueBooleanInput(this.light);\n }\n\n get isShowSlim(): boolean {\n return isTrueBooleanInput(this.showSlim);\n }\n\n get isSmallHeader(): boolean {\n return isTrueBooleanInput(this.smallHeader);\n }\n\n get isShowSearch(): boolean {\n return isTrueBooleanInput(this.showSearch);\n }\n\n}\n","<header class=\"it-header-wrapper\">\n <div *ngIf=\"isShowSlim\" class=\"it-header-slim-wrapper\" [class.theme-light]=\"isLight\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-slim-wrapper-content\">\n <a class=\"d-none d-lg-block navbar-brand\" href=\"#\">{{slimTitle}}</a>\n <div class=\"nav-mobile\">\n <nav [attr.aria-label]=\"'it.navigation.secondary-navigation'|translate\">\n <a class=\"it-opener d-lg-none\" data-bs-toggle=\"collapse\" href=\"#menuC1\" role=\"button\"\n aria-expanded=\"false\" aria-controls=\"menuC1\">\n <span>{{slimTitle}}</span>\n <it-icon name=\"expand\"></it-icon>\n </a>\n <div class=\"link-list-wrapper collapse\" id=\"menuC1\">\n <ng-content select=\"[slimLinkList]\"></ng-content>\n </div>\n </nav>\n </div>\n <div class=\"it-header-slim-right-zone\">\n <!-- TODO: add language dropdown -->\n <ng-content select=\"[slimRightZone]\"></ng-content>\n <div *ngIf=\"loginStyle === 'default'\" class=\"it-access-top-wrapper\">\n <a class=\"btn btn-primary btn-sm\" (click)=\"loginClick.emit($event)\">\n {{'it.navigation.login'|translate}}\n </a>\n </div>\n </div>\n <button *ngIf=\"loginStyle === 'full'\" itButton=\"primary\" class=\"btn-full\" (click)=\"loginClick.emit($event)\">\n <span class=\"rounded-icon\">\n <it-icon name=\"user\" color=\"primary\"></it-icon>\n <span class=\"d-none d-lg-block\">{{'it.navigation.full-login'|translate}}</span>\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"it-nav-wrapper\">\n <div class=\"it-header-center-wrapper\" [class.it-small-header]=\"isSmallHeader\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-center-content-wrapper\">\n <div class=\"it-brand-wrapper\">\n <ng-content select=\"[brand]\"></ng-content>\n </div>\n <div class=\"it-right-zone\">\n <ng-content select=\"[rightZone]\"></ng-content>\n\n <div class=\"it-search-wrapper\" *ngIf=\"isShowSearch\">\n <span class=\"d-none d-md-block\">{{'it.navigation.search'|translate}}</span>\n <a class=\"search-link rounded-icon\" [attr.aria-label]=\"'it.navigation.website-search'|translate\" (click)=\"searchClick.emit($event)\">\n <it-icon name=\"search\"></it-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- TODO: complete header -->\n </div>\n</header>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { map, Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AvailableLanguage } from '../../../interfaces/utils';\n\n@Component({\n selector: 'it-language-switcher',\n templateUrl: './language-switcher.component.html'\n})\nexport class LanguageSwitcherComponent implements OnInit {\n\n /**\n * The available languages\n * @default The languages available through TranslateService (ngx-translate)\n */\n @Input() availableLanguages?: Array<AvailableLanguage>;\n\n currentLang$: Observable<AvailableLanguage | undefined>;\n\n constructor(\n private readonly translateService: TranslateService\n ) {\n this.currentLang$ = translateService.onLangChange.pipe(\n map(event => this.availableLanguages?.find(l => l.code === event.lang))\n );\n }\n\n ngOnInit(): void {\n if (!this.availableLanguages) {\n this.availableLanguages = this.translateService.getLangs().map(lang => ({\n code: lang,\n label: lang,\n ...(lang === 'it' && {label: 'ITA'}),\n ...(lang === 'en' && {label: 'ENG'})\n }));\n }\n }\n\n /**\n * Change the current language\n * @param lang the language code\n */\n changeLanguage(lang: string): void {\n this.translateService.use(lang);\n }\n\n}\n","<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'it-not-found-page',\n templateUrl: './not-found-page.component.html',\n styleUrls: ['./not-found-page.component.scss']\n})\nexport class NotFoundPageComponent {\n\n}\n","<div class=\"error-template text-center mt-5\">\n <h1>404</h1>\n <h2>{{'it.utils.404.title' | translate}}</h2>\n <p>{{'it.utils.404.description' | translate}}</p>\n\n <div class=\"mt-3\">\n <it-back-button></it-back-button>\n <a class=\"btn btn-primary ms-3\" href=\"/\" title=\"{{'it.utils.404.go-to-homepage' | translate}}\">\n {{'it.utils.404.go-to-homepage' | translate}}\n </a>\n </div>\n\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IconName } from '../../../interfaces/icon';\n\nexport type ChipColor = 'primary' | 'secondary' | 'success' | 'danger' | 'warning';\n\n@Component({\n selector: 'it-chip',\n templateUrl: './chip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChipComponent {\n\n /**\n * Indica la label\n */\n @Input() set label (value: string) { this._label = value; }\n get label (): string { return this._label; }\n private _label = '';\n\n /**\n * Indica se mostrate il pulante di chisura\n */\n @Input() set showCloseButton (value: boolean) { this._showCloseButton = value; }\n get showCloseButton (): boolean { return this._showCloseButton; }\n private _showCloseButton = false;\n\n /**\n * Indica il size\n */\n @Input() set size (value: '' | 'lg') { this._size = value; }\n get size (): '' | 'lg' { return this._size; }\n private _size: '' | 'lg' = '';\n\n /**\n * Indica il colore della chip\n */\n @Input() set color (value: ChipColor | undefined) { this._color = value; }\n get color (): ChipColor | undefined { return this._color; }\n private _color: ChipColor | undefined = undefined;\n\n /**\n * Indica se la chip è disabilitata\n */\n @Input() set disabled (value: boolean) { this._disabled = value; }\n get disabled (): boolean { return this._disabled; }\n private _disabled: boolean = false;\n\n /**\n * Indica il nome dell'icona, se valorizzata viene mostrata\n */\n @Input() set icon (value: IconName | undefined) { this._icon = value; }\n get icon (): IconName | undefined { return this._icon; }\n private _icon: IconName | undefined = undefined;\n\n /**\n * Indica l'url dell'avatar, se valorizzata viene mostrata\n */\n @Input() set avatar (value: string | undefined) { this._avatar = value; }\n get avatar (): string | undefined { return this._avatar; }\n private _avatar: string | undefined = undefined;\n\n /**\n * Indica il valore da aggiungere al parametro alt, di default ''\n */\n @Input() set altAvatar (value: string) { this._altAvatar = value; }\n get altAvatar (): string { return this._altAvatar; }\n private _altAvatar: string = '';\n\n /**\n * Evento emesso al click sul bottone di chiusura\n */\n @Output() close = new EventEmitter();\n\n iconClose: IconName = 'close';\n\n clickToClose(): void {\n this.close.emit();\n }\n}\n","<div class=\"chip\" [ngClass]=\"[!showCloseButton ? 'chip-simple': 'alert', size === 'lg' ? 'chip-lg': '', color ? 'chip-' + color : '', disabled ? 'chip-disabled' : '']\">\n <svg *ngIf=\"icon\" class=\"icon icon-xs\"><use [attr.href]=\"'/bootstrap-italia/dist/svg/sprites.svg#it-' + icon\" [attr.xlink:href]=\"'/bootstrap-italia/dist/svg/sprites.svg#it-' + icon\"></use></svg>\n <div *ngIf=\"avatar\" class=\"avatar size-xs\">\n <img [src]=\"avatar\" [alt]=\"altAvatar\">\n </div>\n <span class=\"chip-label\">{{ label }}</span>\n <button *ngIf=\"showCloseButton\" (click)=\"clickToClose()\" [disabled]=\"disabled\">\n <svg class=\"icon\"><use href=\"/bootstrap-italia/dist/svg/sprites.svg#it-close\" xlink:href=\"/bootstrap-italia/dist/svg/sprites.svg#it-close\"></use></svg>\n <span class=\"visually-hidden\">{{ 'it.core.remove' | translate }} {{ label }}</span>\n </button>\n</div>","import { DOCUMENT } from '@angular/common';\nimport { Directive, HostListener, Inject, Input } from '@angular/core';\n\n@Directive({\n selector: '[itForward]',\n host: {'class': 'forward'}\n})\nexport class ForwardDirective {\n\n /**\n * Indica, se HTMLElement, l'elemento a cui navigare, o se stringa, il selettore che selezionerà l'elemento a cui navigare.\n */\n @Input() set itForward(value: HTMLElement | string | undefined) { this._itForward = value; }\n get itForward(): HTMLElement | string | undefined { return this._itForward; }\n private _itForward: HTMLElement | string | undefined = undefined;\n\n constructor(\n @Inject(DOCUMENT) private document?: Document\n ) { }\n\n @HostListener('click', ['$event'])\n onClick(event: any) {\n event.preventDefault();\n if (this.itForward) {\n if (typeof this.itForward === 'string') {\n this.document?.querySelector(this.itForward)?.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: \"nearest\"\n })\n } else if (this.itForward instanceof HTMLElement) {\n this.itForward.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: \"nearest\"\n });\n }\n }\n }\n\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\n\nexport type DimmerColor = '' | 'dimmer-primary';\n\n@Component({\n selector: 'it-dimmer',\n templateUrl: './dimmer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('fade', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('150ms', style({ opacity: 0.92 })),\n ]),\n transition(':leave', [\n animate('150ms', style({ opacity: 0 })),\n ]),\n ])\n]\n})\nexport class DimmerComponent implements OnInit {\n\n /**\n * Dimmer status\n * @default false\n */\n @Input() set active (value: boolean) {this._active = value};\n get active() {return this._active; }\n private _active = false;\n\n /**\n * Colore del dimmer\n * @default ''\n */\n @Input() set color (value: DimmerColor) {this._color = value};\n get color() {return this._color; }\n private _color: DimmerColor = '';\n\n constructor(\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.elementRef?.nativeElement?.parentElement?.classList?.add('dimmable');\n }\n}\n","<div class=\"dimmer\" *ngIf=\"active\" @fade [ngClass]=\"[color]\">\n <div class=\"dimmer-inner\">\n <ng-content></ng-content>\n </div>\n</div>","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'it-dimmer-buttons',\n templateUrl: './dimmer-buttons.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DimmerButtonsComponent {\n\n /**\n * Indica se abbiamo 1 solo bottone\n * @default false\n */\n @Input() set hasOneButton (value: boolean) {this._hasOneButton = value};\n get hasOneButton() {return this._hasOneButton; }\n private _hasOneButton = false;\n\n}\n","<div class=\"dimmer-buttons bg-dark\" [ngClass]=\"{'single-button': hasOneButton}\">\n <ng-content></ng-content>\n</div>","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'it-dimmer-icon',\n templateUrl: './dimmer-icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DimmerIconComponent {\n\n}\n","<div class=\"dimmer-icon\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule, NgForOf, NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { AbstractFormComponent } from '../abstracts/abstract-form-component';\nimport { AbstractComponent } from '../abstracts/abstract.component';\nimport { AccordionComponent } from '../components/core/accordion/accordion.component';\nimport { AlertComponent } from '../components/core/alert/alert.component';\nimport { BadgeDirective } from '../components/core/badge/badge.directive';\nimport { ButtonDirective } from '../components/core/button/button.directive';\nimport { CalloutComponent } from '../components/core/callout/callout.component';\nimport { CardComponent } from '../components/core/card/card.component';\nimport { CarouselComponent } from '../components/core/carousel/carousel/carousel.component';\nimport { CarouselItemComponent } from '../components/core/carousel/carousel-item/carousel-item.component';\nimport { CollapseComponent } from '../components/core/collapse/collapse.component';\nimport { DropdownComponent } from '../components/core/dropdown/dropdown/dropdown.component';\nimport { DropdownItemComponent } from '../components/core/dropdown/dropdown-item/dropdown-item.component';\nimport { LinkComponent } from '../components/core/link/link.component';\nimport { ListComponent } from '../components/core/list/list/list.component';\nimport { ListItemComponent } from '../components/core/list/list-item/list-item.component';\nimport { ModalComponent } from '../components/core/modal/modal.component';\nimport { NotificationsComponent } from '../components/core/notifications/notifications.component';\nimport { PaginationComponent } from '../components/core/pagination/pagination.component';\nimport { PopoverDirective } from '../components/core/popover/popover.directive';\nimport { ProgressBarComponent } from '../components/core/progress-bar/progress-bar.component';\nimport { ProgressButtonComponent } from '../components/core/progress-button/progress-button.component';\nimport { RatingComponent } from '../components/core/rating/rating.component';\nimport { SpinnerComponent } from '../components/core/spinner/spinner.component';\nimport {\n SteppersContainerComponent\n} from '../components/core/steppers/steppers-container/steppers-container.component';\nimport { SteppersItemComponent } from '../components/core/steppers/steppers-item/steppers-item.component';\nimport { TabContainerComponent } from '../components/core/tab/tab-container/tab-container.component';\nimport { TabItemComponent } from '../components/core/tab/tab-item/tab-item.component';\nimport { TableComponent } from '../components/core/table/table.component';\nimport { TooltipDirective } from '../components/core/tooltip/tooltip.directive';\nimport { CheckboxComponent } from '../components/form/checkbox/checkbox.component';\nimport { InputComponent } from '../components/form/input/input.component';\nimport { PasswordInputComponent } from '../components/form/password-input/password-input.component';\nimport { RadioButtonComponent } from '../components/form/radio-button/radio-button.component';\nimport { SelectComponent } from '../components/form/select/select.component';\nimport { TextareaComponent } from '../components/form/textarea/textarea.component';\nimport { UploadDragDropComponent } from '../components/form/upload-drag-drop/upload-drag-drop.component';\nimport { UploadFileListComponent } from '../components/form/upload-file-list/upload-file-list.component';\nimport { BackButtonComponent } from '../components/navigation/back-button/back-button.component';\nimport { BackToTopComponent } from '../components/navigation/back-to-top/back-to-top.component';\nimport { BreadcrumbComponent } from '../components/navigation/breadcrumbs/breadcrumb/breadcrumb.component';\nimport {\n BreadcrumbItemComponent\n} from '../components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component';\nimport { HeaderComponent } from '../components/navigation/header/header.component';\nimport { IconComponent } from '../components/utils/icon/icon.component';\nimport { LanguageSwitcherComponent } from '../components/utils/language-switcher/language-switcher.component';\nimport { NotFoundPageComponent } from '../components/utils/not-found-page/not-found-page.component';\nimport { ChipComponent } from '../components/core/chip/chip.component';\nimport { ForwardDirective } from '../components/core/forward/forward.directive';\nimport { DimmerComponent } from '../components/core/dimmer/dimmer.component';\nimport { DimmerButtonsComponent } from '../components/core/dimmer/dimmer-buttons/dimmer-buttons.component';\nimport { DimmerIconComponent } from '../components/core/dimmer/dimmer-icon/dimmer-icon.component';\nimport { MarkMatchingTextPipe } from '../pipes/mark-matching-text.pipe';\n\n\n/**\n * Core components\n */\nconst core = [\n AccordionComponent,\n AlertComponent,\n BadgeDirective,\n ButtonDirective,\n CalloutComponent,\n CardComponent,\n CarouselComponent,\n CarouselItemComponent,\n ChipComponent,\n CollapseComponent,\n DimmerButtonsComponent,\n DimmerComponent,\n DimmerIconComponent,\n DropdownComponent,\n DropdownItemComponent,\n ForwardDirective,\n LinkComponent,\n ListComponent,\n ListItemComponent,\n ModalComponent,\n NotificationsComponent,\n PaginationComponent,\n PopoverDirective,\n ProgressBarComponent,\n ProgressButtonComponent,\n RatingComponent,\n SpinnerComponent,\n SteppersContainerComponent,\n SteppersItemComponent,\n TabContainerComponent,\n TabItemComponent,\n TableComponent,\n TooltipDirective\n];\n\n/**\n * Form components\n */\nconst form = [\n CheckboxComponent,\n InputComponent,\n PasswordInputComponent,\n RadioButtonComponent,\n SelectComponent,\n TextareaComponent,\n UploadDragDropComponent,\n UploadFileListComponent\n];\n\n/**\n * Navigation Components\n */\nconst navigation = [\n BackButtonComponent,\n BackToTopComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n HeaderComponent\n];\n\n/**\n * Utils components\n */\nconst utils = [\n IconComponent,\n NotFoundPageComponent,\n LanguageSwitcherComponent,\n MarkMatchingTextPipe\n];\n\n@NgModule({\n declarations: [\n AbstractComponent,\n AbstractFormComponent,\n ...core,\n ...form,\n ...navigation,\n ...utils\n ],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n NgIf,\n NgForOf,\n RouterLink\n ],\n exports: [\n ...core,\n ...form,\n ...navigation,\n ...utils\n ]\n})\nexport class ComponentsModule {\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { ComponentsModule } from './modules/components.module';\n\n@NgModule({\n declarations: [],\n imports: [\n ComponentsModule,\n HttpClientModule,\n TranslateModule.forChild({\n loader: {\n provide: TranslateLoader,\n useFactory: (http: HttpClient) => new TranslateHttpLoader(http, '/bootstrap-italia/i18n/'),\n deps: [HttpClient]\n },\n extend: true,\n isolate: false,\n defaultLanguage: 'it'\n })\n ],\n exports: [\n ComponentsModule,\n TranslateModule\n ]\n})\nexport class DesignAngularKitModule {\n\n constructor(\n private readonly translateService: TranslateService\n ) {\n translateService.addLangs(['it', 'en']); // Adds 'it' and 'eng' as available languages.\n translateService.use('it');\n }\n\n}\n","/*\n * Public API Surface of design-angular-kit\n */\n\nexport * from './lib/design-angular-kit.module';\nexport * from './lib/modules/components.module';\n\n\n// Core\nexport * from './lib/components/core/accordion/accordion.component';\nexport * from './lib/components/core/alert/alert.component';\nexport * from './lib/components/core/badge/badge.directive';\nexport * from './lib/components/core/button/button.directive';\nexport * from './lib/components/core/callout/callout.component';\nexport * from './lib/components/core/card/card.component';\nexport * from './lib/components/core/carousel/carousel/carousel.component';\nexport * from './lib/components/core/carousel/carousel-item/carousel-item.component';\nexport * from './lib/components/core/chip/chip.component';\nexport * from './lib/components/core/collapse/collapse.component';\nexport * from './lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component';\nexport * from './lib/components/core/dimmer/dimmer.component';\nexport * from './lib/components/core/dimmer/dimmer-icon/dimmer-icon.component';\nexport * from './lib/components/core/dropdown/dropdown/dropdown.component';\nexport * from './lib/components/core/dropdown/dropdown-item/dropdown-item.component';\nexport * from './lib/components/core/forward/forward.directive';\nexport * from './lib/components/core/link/link.component';\nexport * from './lib/components/core/list/list/list.component';\nexport * from './lib/components/core/list/list-item/list-item.component';\nexport * from './lib/components/core/modal/modal.component';\nexport * from './lib/components/core/notifications/notifications.component';\nexport * from './lib/components/core/pagination/pagination.component';\nexport * from './lib/components/core/popover/popover.directive';\nexport * from './lib/components/core/progress-bar/progress-bar.component';\nexport * from './lib/components/core/progress-button/progress-button.component';\nexport * from './lib/components/core/rating/rating.component';\nexport * from './lib/components/core/spinner/spinner.component';\nexport * from './lib/components/core/steppers/steppers-container/steppers-container.component';\nexport * from './lib/components/core/steppers/steppers-item/steppers-item.component';\nexport * from './lib/components/core/tab/tab-container/tab-container.component';\nexport * from './lib/components/core/tab/tab-item/tab-item.component';\nexport * from './lib/components/core/table/table.component';\nexport * from './lib/components/core/tooltip/tooltip.directive';\n\n// Forms\nexport * from './lib/components/form/checkbox/checkbox.component';\nexport * from './lib/components/form/input/input.component';\nexport * from './lib/components/form/password-input/password-input.component';\nexport * from './lib/components/form/radio-button/radio-button.component';\nexport * from './lib/components/form/select/select.component';\nexport * from './lib/components/form/textarea/textarea.component';\nexport * from './lib/components/form/upload-drag-drop/upload-drag-drop.component';\nexport * from './lib/components/form/upload-file-list/upload-file-list.component';\n\n// Navigation\nexport * from './lib/components/navigation/back-button/back-button.component';\nexport * from './lib/components/navigation/back-to-top/back-to-top.component';\nexport * from './lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component';\nexport * from './lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component';\nexport * from './lib/components/navigation/header/header.component';\n\n\n// Utils\nexport * from './lib/components/utils/icon/icon.component';\nexport * from './lib/components/utils/language-switcher/language-switcher.component';\nexport * from './lib/components/utils/not-found-page/not-found-page.component';\n\n// Services\nexport * from './lib/services/notifications/notifications.service';\n\n// Pipes\nexport * from './lib/pipes/mark-matching-text.pipe';\n\n// Interfaces\nexport * from './lib/interfaces/core';\nexport * from './lib/interfaces/form';\nexport * from './lib/interfaces/icon';\nexport * from './lib/interfaces/utils';\n\nexport * from './lib/utils/regex';\nexport * from './lib/utils/file-utils';\nexport * from './lib/validators/it-validators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i2.IconComponent","i3","i2.ProgressBarComponent","i1.ProgressButtonComponent","i2.LinkComponent","i3.IconComponent","i4","i1.IconComponent","BSNotification","i1.NotificationsService","i2.ButtonDirective","i3.ProgressBarComponent","i4.ProgressButtonComponent","i5.IconComponent","i6","i4.MarkMatchingTextPipe","i3.TooltipDirective","i4.IconComponent","i5","i3.DropdownComponent","i4.DropdownItemComponent","i1.BackButtonComponent"],"mappings":"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"}
|