design-angular-kit 1.0.0-2 → 1.0.0-21

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.
Files changed (220) hide show
  1. package/README.md +102 -26
  2. package/assets/i18n/en.json +122 -0
  3. package/assets/i18n/it.json +52 -11
  4. package/esm2022/lib/abstracts/abstract-form.component.mjs +186 -0
  5. package/esm2022/lib/abstracts/abstract.component.mjs +45 -0
  6. package/esm2022/lib/components/components.module.mjs +188 -0
  7. package/esm2022/lib/components/core/accordion/accordion.component.mjs +38 -0
  8. package/esm2022/lib/components/core/alert/alert.component.mjs +74 -0
  9. package/esm2022/lib/components/core/badge/badge.directive.mjs +38 -0
  10. package/esm2022/lib/components/core/button/button.directive.mjs +85 -0
  11. package/esm2022/lib/components/core/callout/callout.component.mjs +57 -0
  12. package/esm2022/lib/components/core/card/card.component.mjs +64 -0
  13. package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +89 -0
  14. package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +19 -0
  15. package/esm2022/lib/components/core/carousel/carousel.module.mjs +23 -0
  16. package/esm2022/lib/components/core/chip/chip.component.mjs +96 -0
  17. package/esm2022/lib/components/core/collapse/collapse.component.mjs +101 -0
  18. package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
  19. package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
  20. package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +59 -0
  21. package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +27 -0
  22. package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +143 -0
  23. package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +68 -0
  24. package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +18 -0
  25. package/esm2022/lib/components/core/forward/forward.directive.mjs +53 -0
  26. package/esm2022/lib/components/core/link/link.component.mjs +46 -0
  27. package/esm2022/lib/components/core/list/list/list.component.mjs +17 -0
  28. package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +40 -0
  29. package/esm2022/lib/components/core/list/list.module.mjs +23 -0
  30. package/esm2022/lib/components/core/modal/modal.component.mjs +192 -0
  31. package/esm2022/lib/components/core/notifications/notifications.component.mjs +111 -0
  32. package/esm2022/lib/components/core/pagination/pagination.component.mjs +133 -0
  33. package/esm2022/lib/components/core/popover/popover.directive.mjs +175 -0
  34. package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +35 -0
  35. package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +27 -0
  36. package/esm2022/lib/components/core/spinner/spinner.component.mjs +36 -0
  37. package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +138 -0
  38. package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +19 -0
  39. package/esm2022/lib/components/core/steppers/steppers.module.mjs +23 -0
  40. package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +60 -0
  41. package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +36 -0
  42. package/esm2022/lib/components/core/tab/tab.module.mjs +23 -0
  43. package/esm2022/lib/components/core/table/table.component.mjs +57 -0
  44. package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +142 -0
  45. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +49 -0
  46. package/esm2022/lib/components/form/form.module.mjs +55 -0
  47. package/esm2022/lib/components/form/input/input.component.mjs +239 -0
  48. package/esm2022/lib/components/form/password-input/password-input.component.mjs +155 -0
  49. package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +69 -0
  50. package/esm2022/lib/components/form/range/range.component.mjs +64 -0
  51. package/esm2022/lib/components/form/rating/rating.component.mjs +51 -0
  52. package/esm2022/lib/components/form/select/select.component.mjs +70 -0
  53. package/esm2022/lib/components/form/textarea/textarea.component.mjs +47 -0
  54. package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +140 -0
  55. package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +112 -0
  56. package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +71 -0
  57. package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +64 -0
  58. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +57 -0
  59. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +23 -0
  60. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
  61. package/esm2022/lib/components/navigation/header/header.component.mjs +58 -0
  62. package/esm2022/lib/components/utils/error-page/error-page.component.mjs +81 -0
  63. package/esm2022/lib/components/utils/icon/icon.component.mjs +55 -0
  64. package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +47 -0
  65. package/esm2022/lib/design-angular-kit-config.mjs +15 -0
  66. package/esm2022/lib/design-angular-kit.module.mjs +68 -0
  67. package/esm2022/lib/interfaces/core.mjs +16 -0
  68. package/esm2022/lib/interfaces/design-angular-kit-init.mjs +2 -0
  69. package/esm2022/lib/interfaces/form.mjs +2 -0
  70. package/esm2022/lib/interfaces/icon.mjs +165 -0
  71. package/esm2022/lib/interfaces/utils.mjs +2 -0
  72. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +37 -0
  73. package/esm2022/lib/services/notification/notification.service.mjs +120 -0
  74. package/esm2022/lib/utils/file-utils.mjs +73 -0
  75. package/esm2022/lib/utils/regex.mjs +31 -0
  76. package/esm2022/lib/validators/it-validators.mjs +153 -0
  77. package/esm2022/public_api.mjs +85 -0
  78. package/fesm2022/design-angular-kit.mjs +4649 -0
  79. package/fesm2022/design-angular-kit.mjs.map +1 -0
  80. package/lib/abstracts/{abstract-form-component.d.ts → abstract-form.component.d.ts} +12 -10
  81. package/lib/abstracts/abstract.component.d.ts +24 -8
  82. package/lib/components/components.module.d.ts +40 -0
  83. package/lib/components/core/accordion/accordion.component.d.ts +11 -9
  84. package/lib/components/core/alert/alert.component.d.ts +32 -5
  85. package/lib/components/core/badge/badge.directive.d.ts +12 -6
  86. package/lib/components/core/button/button.directive.d.ts +24 -17
  87. package/lib/components/core/callout/callout.component.d.ts +26 -17
  88. package/lib/components/core/card/card.component.d.ts +23 -13
  89. package/lib/components/core/carousel/carousel/carousel.component.d.ts +34 -15
  90. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +8 -3
  91. package/lib/components/core/carousel/carousel.module.d.ts +8 -0
  92. package/lib/components/core/chip/chip.component.d.ts +8 -5
  93. package/lib/components/core/collapse/collapse.component.d.ts +16 -15
  94. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +3 -3
  95. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +3 -3
  96. package/lib/components/core/dimmer/dimmer.component.d.ts +4 -4
  97. package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
  98. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +53 -10
  99. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +8 -13
  100. package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
  101. package/lib/components/core/forward/forward.directive.d.ts +3 -3
  102. package/lib/components/core/link/link.component.d.ts +9 -10
  103. package/lib/components/core/list/list/list.component.d.ts +6 -5
  104. package/lib/components/core/list/list-item/list-item.component.d.ts +12 -8
  105. package/lib/components/core/list/list.module.d.ts +8 -0
  106. package/lib/components/core/modal/modal.component.d.ts +83 -14
  107. package/lib/components/core/notifications/notifications.component.d.ts +25 -11
  108. package/lib/components/core/pagination/pagination.component.d.ts +71 -10
  109. package/lib/components/core/popover/popover.directive.d.ts +15 -14
  110. package/lib/components/core/progress-bar/progress-bar.component.d.ts +6 -6
  111. package/lib/components/core/progress-button/progress-button.component.d.ts +5 -5
  112. package/lib/components/core/spinner/spinner.component.d.ts +6 -6
  113. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +128 -0
  114. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +20 -0
  115. package/lib/components/core/steppers/steppers.module.d.ts +8 -0
  116. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +14 -12
  117. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +11 -11
  118. package/lib/components/core/tab/tab.module.d.ts +8 -0
  119. package/lib/components/core/table/table.component.d.ts +14 -14
  120. package/lib/components/core/tooltip/tooltip.directive.d.ts +12 -11
  121. package/lib/components/form/checkbox/checkbox.component.d.ts +13 -10
  122. package/lib/components/form/form.module.d.ts +16 -0
  123. package/lib/components/form/input/input.component.d.ts +59 -13
  124. package/lib/components/form/password-input/password-input.component.d.ts +33 -8
  125. package/lib/components/form/radio-button/radio-button.component.d.ts +7 -6
  126. package/lib/components/form/range/range.component.d.ts +42 -0
  127. package/lib/components/form/rating/rating.component.d.ts +24 -0
  128. package/lib/components/form/select/select.component.d.ts +12 -6
  129. package/lib/components/form/textarea/textarea.component.d.ts +5 -5
  130. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +8 -7
  131. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +11 -9
  132. package/lib/components/navigation/back-button/back-button.component.d.ts +4 -4
  133. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +28 -13
  134. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +11 -9
  135. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +6 -6
  136. package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
  137. package/lib/components/navigation/header/header.component.d.ts +9 -13
  138. package/lib/components/utils/error-page/error-page.component.d.ts +44 -0
  139. package/lib/components/utils/icon/icon.component.d.ts +14 -16
  140. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +27 -0
  141. package/lib/design-angular-kit-config.d.ts +16 -0
  142. package/lib/design-angular-kit.module.d.ts +9 -4
  143. package/lib/interfaces/core.d.ts +40 -16
  144. package/lib/interfaces/design-angular-kit-init.d.ts +7 -0
  145. package/lib/interfaces/form.d.ts +32 -8
  146. package/lib/interfaces/icon.d.ts +4 -3
  147. package/lib/interfaces/utils.d.ts +10 -0
  148. package/lib/pipes/mark-matching-text.pipe.d.ts +10 -0
  149. package/lib/services/{notifications/notifications.service.d.ts → notification/notification.service.d.ts} +20 -20
  150. package/lib/utils/boolean-input.d.ts +1 -1
  151. package/lib/utils/file-utils.d.ts +5 -0
  152. package/lib/utils/regex.d.ts +5 -0
  153. package/lib/validators/it-validators.d.ts +16 -9
  154. package/package.json +13 -17
  155. package/public_api.d.ts +21 -4
  156. package/esm2020/lib/abstracts/abstract-form-component.mjs +0 -165
  157. package/esm2020/lib/abstracts/abstract.component.mjs +0 -20
  158. package/esm2020/lib/components/core/accordion/accordion.component.mjs +0 -20
  159. package/esm2020/lib/components/core/alert/alert.component.mjs +0 -29
  160. package/esm2020/lib/components/core/badge/badge.directive.mjs +0 -34
  161. package/esm2020/lib/components/core/button/button.directive.mjs +0 -78
  162. package/esm2020/lib/components/core/callout/callout.component.mjs +0 -59
  163. package/esm2020/lib/components/core/card/card.component.mjs +0 -58
  164. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +0 -66
  165. package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +0 -14
  166. package/esm2020/lib/components/core/chip/chip.component.mjs +0 -89
  167. package/esm2020/lib/components/core/collapse/collapse.component.mjs +0 -96
  168. package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +0 -24
  169. package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +0 -11
  170. package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +0 -59
  171. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +0 -60
  172. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +0 -71
  173. package/esm2020/lib/components/core/forward/forward.directive.mjs +0 -51
  174. package/esm2020/lib/components/core/link/link.component.mjs +0 -39
  175. package/esm2020/lib/components/core/list/list/list.component.mjs +0 -13
  176. package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +0 -36
  177. package/esm2020/lib/components/core/modal/modal.component.mjs +0 -98
  178. package/esm2020/lib/components/core/notifications/notifications.component.mjs +0 -66
  179. package/esm2020/lib/components/core/pagination/pagination.component.mjs +0 -51
  180. package/esm2020/lib/components/core/popover/popover.directive.mjs +0 -176
  181. package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +0 -34
  182. package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +0 -27
  183. package/esm2020/lib/components/core/spinner/spinner.component.mjs +0 -35
  184. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +0 -33
  185. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +0 -36
  186. package/esm2020/lib/components/core/table/table.component.mjs +0 -57
  187. package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +0 -140
  188. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -40
  189. package/esm2020/lib/components/form/input/input.component.mjs +0 -159
  190. package/esm2020/lib/components/form/password-input/password-input.component.mjs +0 -112
  191. package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +0 -53
  192. package/esm2020/lib/components/form/select/select.component.mjs +0 -62
  193. package/esm2020/lib/components/form/textarea/textarea.component.mjs +0 -46
  194. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +0 -134
  195. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +0 -99
  196. package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +0 -69
  197. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +0 -39
  198. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -45
  199. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +0 -23
  200. package/esm2020/lib/components/navigation/header/header.component.mjs +0 -61
  201. package/esm2020/lib/components/utils/icon/icon.component.mjs +0 -54
  202. package/esm2020/lib/components/utils/not-found-page/not-found-page.component.mjs +0 -13
  203. package/esm2020/lib/design-angular-kit.module.mjs +0 -42
  204. package/esm2020/lib/interfaces/core.mjs +0 -16
  205. package/esm2020/lib/interfaces/form.mjs +0 -2
  206. package/esm2020/lib/interfaces/icon.mjs +0 -2
  207. package/esm2020/lib/modules/components.module.mjs +0 -241
  208. package/esm2020/lib/services/notifications/notifications.service.mjs +0 -122
  209. package/esm2020/lib/utils/file-utils.mjs +0 -65
  210. package/esm2020/lib/utils/regex.mjs +0 -26
  211. package/esm2020/lib/validators/it-validators.mjs +0 -131
  212. package/esm2020/public_api.mjs +0 -64
  213. package/fesm2015/design-angular-kit.mjs +0 -3271
  214. package/fesm2015/design-angular-kit.mjs.map +0 -1
  215. package/fesm2020/design-angular-kit.mjs +0 -3231
  216. package/fesm2020/design-angular-kit.mjs.map +0 -1
  217. package/lib/components/utils/not-found-page/not-found-page.component.d.ts +0 -5
  218. package/lib/modules/components.module.d.ts +0 -57
  219. /package/{esm2020 → esm2022}/design-angular-kit.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/utils/boolean-input.mjs +0 -0
@@ -1,3271 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component, Input, Self, Optional, Directive, HostBinding, ChangeDetectionStrategy, ContentChildren, HostListener, TemplateRef, ViewChild, EventEmitter, Output, Injectable, Inject, NgModule } from '@angular/core';
3
- import * as i2$1 from '@ngx-translate/core';
4
- import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
5
- import { HttpClientModule, HttpClient } from '@angular/common/http';
6
- import { TranslateHttpLoader } from '@ngx-translate/http-loader';
7
- import * as i1 from '@angular/common';
8
- import { DOCUMENT, CommonModule, NgIf, NgForOf } from '@angular/common';
9
- import * as i2 from '@angular/forms';
10
- import { FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
11
- import * as i2$2 from '@angular/router';
12
- import { RouterLink } from '@angular/router';
13
- import { CarouselBI, Collapse, Modal, Notification, Popover, Tooltip, InputPassword, ProgressDonut } from 'bootstrap-italia';
14
- import { Subject, filter, Observable, take } from 'rxjs';
15
- import { trigger, transition, style, animate } from '@angular/animations';
16
-
17
- class AbstractComponent {
18
- constructor(_renderer, _elementRef) {
19
- this._renderer = _renderer;
20
- this._elementRef = _elementRef;
21
- }
22
- ngAfterViewInit() {
23
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'id');
24
- }
25
- }
26
- AbstractComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
27
- AbstractComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AbstractComponent, selector: "ng-component", inputs: { id: "id" }, ngImport: i0, template: '', isInline: true });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractComponent, decorators: [{
29
- type: Component,
30
- args: [{ template: '' }]
31
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { id: [{
32
- type: Input
33
- }] } });
34
-
35
- /**
36
- * Check if boolean input has true value and not is `undefined`
37
- * @param booleanInput the boolean input
38
- */
39
- function isTrueBooleanInput(booleanInput) {
40
- return booleanInput !== undefined && (booleanInput === true || booleanInput === 'true');
41
- }
42
- /**
43
- * Check if boolean input has false value or is `undefined`
44
- * @param booleanInput the boolean input
45
- */
46
- function isFalseBooleanInput(booleanInput) {
47
- return booleanInput === undefined || booleanInput === false || booleanInput === 'false';
48
- }
49
-
50
- class AbstractFormComponent extends AbstractComponent {
51
- constructor(_ngControl, _translateService, _renderer, _elementRef) {
52
- super(_renderer, _elementRef);
53
- this._ngControl = _ngControl;
54
- this._translateService = _translateService;
55
- this._renderer = _renderer;
56
- this._elementRef = _elementRef;
57
- /**
58
- * Validation color display mode (validation triggered if field is touched or not pristine)
59
- * - <b>true</b>: Always show the validation color
60
- * - <b>false</b>: Never show validation color
61
- * - <b>only-valid</b>: Show only valid validation color
62
- * - <b>only-invalid</b>: Show only invalid validation color
63
- * @default <b>only-invalid</b>: Show only invalid validation color
64
- */
65
- this.validationMode = 'only-invalid';
66
- this.onChange = (_) => {
67
- };
68
- this.onTouched = () => {
69
- };
70
- this.control = new FormControl();
71
- this._ngControl && (this._ngControl.valueAccessor = this);
72
- }
73
- /**
74
- * Check if field is invalid (Validation failed)
75
- */
76
- get isInvalid() {
77
- if (this.validationMode === 'only-valid' || (this.validationMode !== 'only-invalid' && isFalseBooleanInput(this.validationMode))) {
78
- return undefined;
79
- }
80
- if (this._ngControl) {
81
- return this._ngControl.invalid === true && (!this._ngControl.pristine || this._ngControl.touched === true);
82
- }
83
- return this.control.invalid && (!this.control.pristine || this.control.touched);
84
- }
85
- /**
86
- * Check if field is valid (Validation successful)
87
- */
88
- get isValid() {
89
- if (this.validationMode === 'only-invalid' || (this.validationMode !== 'only-valid' && isFalseBooleanInput(this.validationMode))) {
90
- return undefined;
91
- }
92
- if (this._ngControl) {
93
- return this._ngControl.valid === true && (!this._ngControl.pristine || this._ngControl.touched === true);
94
- }
95
- return this.control.valid && (!this.control.pristine || this.control.touched);
96
- }
97
- /**
98
- * Return the invalid message string from TranslateService
99
- */
100
- get invalidMessage() {
101
- if (this.control.hasError('required')) {
102
- return this._translateService.get('it.errors.required-field');
103
- }
104
- return this._translateService.get('it.errors.invalid-field');
105
- }
106
- ngOnInit() {
107
- if (this._ngControl) {
108
- this.control.setValidators(this._ngControl.control.validator);
109
- }
110
- }
111
- registerOnChange(fn) {
112
- this.control.valueChanges.subscribe(fn);
113
- this.onChange = fn;
114
- }
115
- registerOnTouched(fn) {
116
- this.onTouched = fn;
117
- }
118
- setDisabledState(isDisabled) {
119
- if (isDisabled) {
120
- return this.control.disable();
121
- }
122
- this.control.enable();
123
- }
124
- writeValue(value) {
125
- this.control.setValue(value, { emitEvent: false });
126
- }
127
- /**
128
- * Mark the control as touched
129
- */
130
- markAsTouched() {
131
- if (!this.control.touched) {
132
- this.onTouched();
133
- }
134
- }
135
- /**
136
- * Fired to check if form control is touched
137
- */
138
- ngDoCheck() {
139
- var _a, _b;
140
- if (this.control.touched) {
141
- return;
142
- }
143
- if ((_b = (_a = this._ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.touched) {
144
- this.control.markAsTouched();
145
- }
146
- }
147
- /**
148
- * Add the validators in control and parent control
149
- * @param validators the validators
150
- * @protected
151
- */
152
- addValidators(validators) {
153
- if (!Array.isArray(validators)) {
154
- validators = [validators];
155
- }
156
- validators.forEach(validator => {
157
- var _a;
158
- if (!this.control.hasValidator(validator)) {
159
- this.control.addValidators(validator);
160
- }
161
- if (((_a = this._ngControl) === null || _a === void 0 ? void 0 : _a.control) && !this._ngControl.control.hasValidator(validator)) {
162
- this._ngControl.control.addValidators(validator);
163
- }
164
- });
165
- }
166
- /**
167
- * Reports whether the control with the given path has the error specified. <br/>
168
- * If the control is not present, false is returned.
169
- * @param errorCode The code of the error to check
170
- * @param path A list of control names that designates how to move from the current control
171
- * to the control that should be queried for errors.
172
- * @returns whether the given error is present in the control at the given path.
173
- */
174
- hasError(errorCode, path) {
175
- if (this._ngControl) {
176
- return this._ngControl.hasError(errorCode, path);
177
- }
178
- return this.control.hasError(errorCode, path);
179
- }
180
- /**
181
- * Reports error data for the control with the given path.
182
- * @param errorCode The code of the error to check
183
- * @param path A list of control names that designates how to move from the current control
184
- * to the control that should be queried for errors.
185
- * @returns error data for that particular error. If the control or error is not present,
186
- * null is returned.
187
- */
188
- getError(errorCode, path) {
189
- if (this._ngControl) {
190
- return this._ngControl.getError(errorCode, path);
191
- }
192
- return this.control.getError(errorCode, path);
193
- }
194
- }
195
- AbstractFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractFormComponent, deps: [{ token: i2.NgControl, optional: true, self: true }, { token: i2$1.TranslateService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
196
- AbstractFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AbstractFormComponent, selector: "ng-component", inputs: { label: "label", validationMode: "validationMode" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AbstractFormComponent, decorators: [{
198
- type: Component,
199
- args: [{ template: '' }]
200
- }], ctorParameters: function () {
201
- return [{ type: i2.NgControl, decorators: [{
202
- type: Self
203
- }, {
204
- type: Optional
205
- }] }, { type: i2$1.TranslateService }, { type: i0.Renderer2 }, { type: i0.ElementRef }];
206
- }, propDecorators: { label: [{
207
- type: Input
208
- }], validationMode: [{
209
- type: Input
210
- }] } });
211
-
212
- class AccordionComponent extends AbstractComponent {
213
- ngAfterViewInit() {
214
- super.ngAfterViewInit();
215
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');
216
- }
217
- }
218
- AccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
219
- AccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AccordionComponent, selector: "it-accordion[id][title]", inputs: { title: "title", opened: "opened" }, usesInheritance: true, ngImport: i0, template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button px-0\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"!opened\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"opened ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div id=\"collapse-{{id}}\"\n class=\"accordion-collapse collapse\"\n role=\"region\"\n [class.show]=\"opened\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n", styles: [""] });
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AccordionComponent, decorators: [{
221
- type: Component,
222
- args: [{ selector: 'it-accordion[id][title]', template: "<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button px-0\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"!opened\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"opened ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div id=\"collapse-{{id}}\"\n class=\"accordion-collapse collapse\"\n role=\"region\"\n [class.show]=\"opened\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body p-0\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n" }]
223
- }], propDecorators: { title: [{
224
- type: Input
225
- }], opened: [{
226
- type: Input
227
- }] } });
228
-
229
- class IconComponent {
230
- constructor(_renderer, _elementRef) {
231
- this._renderer = _renderer;
232
- this._elementRef = _elementRef;
233
- /**
234
- * Custom class
235
- */
236
- this.class = '';
237
- }
238
- /**
239
- * Return the icon href
240
- */
241
- get iconHref() {
242
- return `/bootstrap-italia/dist/svg/sprites.svg#it-${this.name}`;
243
- }
244
- /**
245
- * Return the icon class
246
- */
247
- get iconClass() {
248
- let iconClass = 'icon';
249
- if (this.size) {
250
- iconClass += ` icon-${this.size}`;
251
- }
252
- if (this.color) {
253
- iconClass += ` icon-${this.color}`;
254
- }
255
- if (this.class) {
256
- iconClass += ` ${this.class}`;
257
- }
258
- return iconClass;
259
- }
260
- ngAfterViewInit() {
261
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
262
- }
263
- }
264
- IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IconComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
265
- IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: IconComponent, selector: "it-icon[name]", inputs: { name: "name", size: "size", color: "color", padded: "padded", class: "class" }, ngImport: i0, template: "<svg [class]=\"iconClass\" [class.icon-padded]=\"padded\">\n <use [attr.href]=\"iconHref\" [attr.xlink:href]=\"iconHref\"></use>\n</svg>\n", styles: [""] });
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: IconComponent, decorators: [{
267
- type: Component,
268
- args: [{ selector: 'it-icon[name]', template: "<svg [class]=\"iconClass\" [class.icon-padded]=\"padded\">\n <use [attr.href]=\"iconHref\" [attr.xlink:href]=\"iconHref\"></use>\n</svg>\n" }]
269
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { name: [{
270
- type: Input
271
- }], size: [{
272
- type: Input
273
- }], color: [{
274
- type: Input
275
- }], padded: [{
276
- type: Input
277
- }], class: [{
278
- type: Input
279
- }] } });
280
-
281
- class AlertComponent {
282
- constructor() {
283
- /**
284
- * The alert color
285
- * @default info
286
- */
287
- this.color = 'info';
288
- }
289
- get isDismissible() {
290
- return isTrueBooleanInput(this.dismissible);
291
- }
292
- }
293
- AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
294
- AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AlertComponent, selector: "it-alert", inputs: { color: "color", dismissible: "dismissible" }, ngImport: i0, template: "<div class=\"alert alert-{{color}}\"\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", styles: [".alert-heading:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AlertComponent, decorators: [{
296
- type: Component,
297
- args: [{ selector: 'it-alert', template: "<div class=\"alert alert-{{color}}\"\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", styles: [".alert-heading:empty{display:none}\n"] }]
298
- }], propDecorators: { color: [{
299
- type: Input
300
- }], dismissible: [{
301
- type: Input
302
- }] } });
303
-
304
- class BadgeDirective {
305
- get badgeClass() {
306
- let badgeClass = 'badge';
307
- if (isTrueBooleanInput(this.rounded)) {
308
- badgeClass += ` rounded-pill`;
309
- }
310
- if (this.color) {
311
- badgeClass += ` bg-${this.color}`;
312
- }
313
- return badgeClass;
314
- }
315
- }
316
- BadgeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
317
- BadgeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: BadgeDirective, selector: "[itBadge]", inputs: { color: ["itBadge", "color"], rounded: "rounded" }, host: { properties: { "class": "this.badgeClass" } }, exportAs: ["itBadge"], ngImport: i0 });
318
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BadgeDirective, decorators: [{
319
- type: Directive,
320
- args: [{
321
- selector: '[itBadge]',
322
- exportAs: 'itBadge'
323
- }]
324
- }], propDecorators: { color: [{
325
- type: Input,
326
- args: ['itBadge']
327
- }], rounded: [{
328
- type: Input,
329
- args: ['rounded']
330
- }], badgeClass: [{
331
- type: HostBinding,
332
- args: ['class']
333
- }] } });
334
-
335
- class ProgressBarComponent {
336
- /**
337
- * Return the background color
338
- */
339
- get bgColor() {
340
- if (!this.color) {
341
- return '';
342
- }
343
- return ` bg-${this.color}`;
344
- }
345
- get isIndeterminate() {
346
- return isTrueBooleanInput(this.indeterminate);
347
- }
348
- }
349
- ProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
350
- ProgressBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressBarComponent, selector: "it-progress-bar[value]", inputs: { value: "value", showLabel: "showLabel", indeterminate: "indeterminate", color: "color" }, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressBarComponent, decorators: [{
352
- type: Component,
353
- args: [{ selector: 'it-progress-bar[value]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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" }]
354
- }], propDecorators: { value: [{
355
- type: Input
356
- }], showLabel: [{
357
- type: Input
358
- }], indeterminate: [{
359
- type: Input
360
- }], color: [{
361
- type: Input
362
- }] } });
363
-
364
- class ButtonDirective {
365
- constructor() {
366
- this.isFocus = false;
367
- }
368
- onFocus() {
369
- this.isFocus = true;
370
- }
371
- onBlur() {
372
- this.isFocus = false;
373
- }
374
- get hostClasses() {
375
- var _a;
376
- let cssClass = 'btn';
377
- if (this.color) {
378
- cssClass += ` btn-${this.color}`;
379
- }
380
- if (this.size) {
381
- cssClass += ` btn-${this.size}`;
382
- }
383
- if (this.block) {
384
- cssClass += ' btn-block';
385
- }
386
- if (isTrueBooleanInput(this.disabled)) {
387
- cssClass += ' disabled';
388
- }
389
- if (this.isFocus) {
390
- cssClass += ' focus--mouse';
391
- }
392
- if (((_a = this.icons) === null || _a === void 0 ? void 0 : _a.length) && !this.progressBar) {
393
- cssClass += ' btn-icon';
394
- }
395
- if (this.progressBar) {
396
- cssClass += ' btn-progress';
397
- }
398
- return cssClass;
399
- }
400
- }
401
- ButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
402
- ButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ButtonDirective, selector: "[itButton]", inputs: { color: ["itButton", "color"], size: "size", block: "block", disabled: "disabled" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" }, properties: { "disabled": "this.disabled", "class": "this.hostClasses" } }, queries: [{ propertyName: "icons", predicate: IconComponent }, { propertyName: "progressBar", predicate: ProgressBarComponent }], exportAs: ["itButton"], ngImport: i0 });
403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ButtonDirective, decorators: [{
404
- type: Directive,
405
- args: [{
406
- selector: '[itButton]',
407
- exportAs: 'itButton'
408
- }]
409
- }], propDecorators: { color: [{
410
- type: Input,
411
- args: ['itButton']
412
- }], size: [{
413
- type: Input
414
- }], block: [{
415
- type: Input
416
- }], disabled: [{
417
- type: Input
418
- }, {
419
- type: HostBinding,
420
- args: ['disabled']
421
- }], icons: [{
422
- type: ContentChildren,
423
- args: [IconComponent]
424
- }], progressBar: [{
425
- type: ContentChildren,
426
- args: [ProgressBarComponent]
427
- }], onFocus: [{
428
- type: HostListener,
429
- args: ['focus']
430
- }], onBlur: [{
431
- type: HostListener,
432
- args: ['blur']
433
- }], hostClasses: [{
434
- type: HostBinding,
435
- args: ['class']
436
- }] } });
437
-
438
- class CalloutComponent {
439
- constructor(_renderer, _elementRef) {
440
- this._renderer = _renderer;
441
- this._elementRef = _elementRef;
442
- /**
443
- * Callout appearance
444
- * - <b>default</b>
445
- * - <b>highlight</b>: Callout version with border only on the left side
446
- * - <b>more</b>: It looks radically different from the other styles available and is suitable for more extensive texts
447
- * @default default
448
- */
449
- this.appearance = 'default';
450
- }
451
- /**
452
- * Retrieve the current icon to show
453
- */
454
- get iconName() {
455
- if (this.icon) {
456
- return this.icon;
457
- }
458
- if (this.appearance === 'more') {
459
- return 'zoom-in';
460
- }
461
- switch (this.color) {
462
- case 'success':
463
- return 'check-circle';
464
- case 'warning':
465
- return 'help-circle';
466
- case 'danger':
467
- return 'close-circle';
468
- case 'important':
469
- case 'note':
470
- default:
471
- return 'info-circle';
472
- }
473
- }
474
- ngAfterViewInit() {
475
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');
476
- }
477
- }
478
- CalloutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CalloutComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
479
- CalloutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CalloutComponent, selector: "it-callout", inputs: { title: "title", icon: "icon", color: "color", appearance: "appearance" }, ngImport: i0, template: "<div class=\"callout {{color}}\"\n [class.callout-highlight]=\"appearance === 'highlight'\"\n [class.callout-more]=\"appearance === 'more'\">\n\n <div class=\"callout-title\" *ngIf=\"title\">\n <it-icon [name]=\"iconName\"></it-icon>\n <span class=\"visually-hidden\">{{title}}</span>\n {{title}}\n </div>\n <p class=\"callout-big-text\">\n <ng-content select=\"[bigText]\"></ng-content>\n </p>\n <ng-content></ng-content>\n</div>\n", styles: [".callout-big-text:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }] });
480
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CalloutComponent, decorators: [{
481
- type: Component,
482
- args: [{ selector: 'it-callout', template: "<div class=\"callout {{color}}\"\n [class.callout-highlight]=\"appearance === 'highlight'\"\n [class.callout-more]=\"appearance === 'more'\">\n\n <div class=\"callout-title\" *ngIf=\"title\">\n <it-icon [name]=\"iconName\"></it-icon>\n <span class=\"visually-hidden\">{{title}}</span>\n {{title}}\n </div>\n <p class=\"callout-big-text\">\n <ng-content select=\"[bigText]\"></ng-content>\n </p>\n <ng-content></ng-content>\n</div>\n", styles: [".callout-big-text:empty{display:none}\n"] }]
483
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { title: [{
484
- type: Input
485
- }], icon: [{
486
- type: Input
487
- }], color: [{
488
- type: Input
489
- }], appearance: [{
490
- type: Input
491
- }] } });
492
-
493
- class CardComponent extends AbstractComponent {
494
- constructor() {
495
- super(...arguments);
496
- /**
497
- * It serves to space the cards in their mobile version.
498
- * @default true
499
- */
500
- this.space = true;
501
- /**
502
- * Custom card class
503
- */
504
- this.cardClass = '';
505
- /**
506
- * Custom card body class
507
- */
508
- this.bodyClass = '';
509
- }
510
- get isSpace() {
511
- return isTrueBooleanInput(this.space);
512
- }
513
- get isTeaser() {
514
- return isTrueBooleanInput(this.teaser);
515
- }
516
- get isHasImage() {
517
- return isTrueBooleanInput(this.hasImage);
518
- }
519
- get isRounded() {
520
- return isTrueBooleanInput(this.rounded);
521
- }
522
- get isShadow() {
523
- return isTrueBooleanInput(this.shadow);
524
- }
525
- }
526
- CardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
527
- CardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CardComponent, selector: "it-card", inputs: { space: "space", teaser: "teaser", hasImage: "hasImage", rounded: "rounded", shadow: "shadow", cardClass: "cardClass", bodyClass: "bodyClass" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".card-body:empty{display:none}\n"] });
528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CardComponent, decorators: [{
529
- type: Component,
530
- args: [{ selector: 'it-card', template: "<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", styles: [".card-body:empty{display:none}\n"] }]
531
- }], propDecorators: { space: [{
532
- type: Input
533
- }], teaser: [{
534
- type: Input
535
- }], hasImage: [{
536
- type: Input
537
- }], rounded: [{
538
- type: Input
539
- }], shadow: [{
540
- type: Input
541
- }], cardClass: [{
542
- type: Input
543
- }], bodyClass: [{
544
- type: Input
545
- }] } });
546
-
547
- class CarouselItemComponent {
548
- }
549
- CarouselItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
550
- CarouselItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CarouselItemComponent, selector: "it-carousel-item", viewQueries: [{ propertyName: "htmlContent", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", styles: [""] });
551
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselItemComponent, decorators: [{
552
- type: Component,
553
- args: [{ selector: 'it-carousel-item', template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }]
554
- }], propDecorators: { htmlContent: [{
555
- type: ViewChild,
556
- args: [TemplateRef]
557
- }] } });
558
-
559
- class CarouselComponent {
560
- constructor() {
561
- /**
562
- * The carousel type
563
- * @default default
564
- */
565
- this.type = 'default';
566
- /**
567
- * Custom class in splide__track element
568
- */
569
- this.trackClass = '';
570
- }
571
- get typeClass() {
572
- const typeClass = 'it-carousel-landscape-abstract';
573
- return this.type === 'default' ? typeClass : typeClass + `-${this.type}`;
574
- }
575
- get isFullCarousel() {
576
- return isTrueBooleanInput(this.fullCarousel);
577
- }
578
- get isBigImg() {
579
- return isTrueBooleanInput(this.bigImg);
580
- }
581
- get isLined() {
582
- return isTrueBooleanInput(this.lined);
583
- }
584
- ngAfterViewInit() {
585
- this.carousel = CarouselBI.getOrCreateInstance(this.carouselDiv.nativeElement);
586
- }
587
- /**
588
- * Removes CarouselBI features
589
- */
590
- dispose() {
591
- var _a;
592
- (_a = this.carousel) === null || _a === void 0 ? void 0 : _a.dispose();
593
- }
594
- }
595
- CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
596
- CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CarouselComponent, selector: "it-carousel", inputs: { title: "title", type: "type", trackClass: "trackClass", fullCarousel: "fullCarousel", bigImg: "bigImg", lined: "lined" }, queries: [{ propertyName: "items", predicate: CarouselItemComponent }], viewQueries: [{ propertyName: "carouselDiv", first: true, predicate: ["carousel"], descendants: true }], exportAs: ["itCarousel"], ngImport: i0, template: "<div class=\"it-carousel-wrapper splide {{typeClass}}\"\n [class.it-full-carousel]=\"isFullCarousel\"\n [class.it-big-img]=\"isBigImg\"\n data-bs-carousel-splide #carousel>\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", styles: [".splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important;transform-style:preserve-3d}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{outline:none;position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;outline:none;position:relative}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;contain:strict;display:inline-block;height:20px;inset:0;margin:auto;position:absolute;width:20px}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide--draggable>.splide__slider>.splide__track,.splide--draggable>.splide__track{-webkit-user-select:none;user-select:none}.splide--fade>.splide__slider>.splide__track>.splide__list,.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--fade>.splide__track>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}.splide--rtl{direction:rtl}.splide--ttb.is-active>.splide__slider>.splide__track>.splide__list,.splide--ttb.is-active>.splide__track>.splide__list{display:block}.splide__arrow{align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:flex;height:2em;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover{opacity:.9}.splide__arrow:focus{outline:none}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4)}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus{outline:none}.splide__progress__bar{background:#ccc;height:3px}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--nav>.splide__track>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--nav>.splide__track>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide:focus,.splide--nav>.splide__track>.splide__list>.splide__slide:focus{outline:none}.splide--rtl>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev{left:auto;right:1em}.splide--rtl>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:scaleX(1)}.splide--rtl>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next{left:1em;right:auto}.splide--rtl>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next svg{transform:scaleX(-1)}.splide--ttb>.splide__arrows .splide__arrow,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow,.splide--ttb>.splide__track>.splide__arrows .splide__arrow{left:50%;transform:translate(-50%)}.splide--ttb>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev{top:1em}.splide--ttb>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:rotate(-90deg)}.splide--ttb>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next{bottom:1em;top:auto}.splide--ttb>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next svg{transform:rotate(90deg)}.splide--ttb>.splide__pagination,.splide--ttb>.splide__slider>.splide__pagination{display:flex;flex-direction:column;inset:0 .5em 0 auto;padding:1em 0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
597
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CarouselComponent, decorators: [{
598
- type: Component,
599
- args: [{ selector: 'it-carousel', exportAs: 'itCarousel', template: "<div class=\"it-carousel-wrapper splide {{typeClass}}\"\n [class.it-full-carousel]=\"isFullCarousel\"\n [class.it-big-img]=\"isBigImg\"\n data-bs-carousel-splide #carousel>\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", styles: [".splide__container{box-sizing:border-box;position:relative}.splide__list{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important;transform-style:preserve-3d}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide__progress__bar{width:0}.splide{outline:none;position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;outline:none;position:relative}.splide__slide img{vertical-align:bottom}.splide__slider{position:relative}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;contain:strict;display:inline-block;height:20px;inset:0;margin:auto;position:absolute;width:20px}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide--draggable>.splide__slider>.splide__track,.splide--draggable>.splide__track{-webkit-user-select:none;user-select:none}.splide--fade>.splide__slider>.splide__track>.splide__list,.splide--fade>.splide__track>.splide__list{display:block}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--fade>.splide__track>.splide__list>.splide__slide{left:0;opacity:0;position:absolute;top:0;z-index:0}.splide--fade>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--fade>.splide__track>.splide__list>.splide__slide.is-active{opacity:1;position:relative;z-index:1}.splide--rtl{direction:rtl}.splide--ttb.is-active>.splide__slider>.splide__track>.splide__list,.splide--ttb.is-active>.splide__track>.splide__list{display:block}.splide__arrow{align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:flex;height:2em;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover{opacity:.9}.splide__arrow:focus{outline:none}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4)}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus{outline:none}.splide__progress__bar{background:#ccc;height:3px}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide,.splide--nav>.splide__track>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide.is-active,.splide--nav>.splide__track>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide--nav>.splide__slider>.splide__track>.splide__list>.splide__slide:focus,.splide--nav>.splide__track>.splide__list>.splide__slide:focus{outline:none}.splide--rtl>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev{left:auto;right:1em}.splide--rtl>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:scaleX(1)}.splide--rtl>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next{left:1em;right:auto}.splide--rtl>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--rtl>.splide__track>.splide__arrows .splide__arrow--next svg{transform:scaleX(-1)}.splide--ttb>.splide__arrows .splide__arrow,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow,.splide--ttb>.splide__track>.splide__arrows .splide__arrow{left:50%;transform:translate(-50%)}.splide--ttb>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev{top:1em}.splide--ttb>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--prev svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--prev svg{transform:rotate(-90deg)}.splide--ttb>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next{bottom:1em;top:auto}.splide--ttb>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__slider>.splide__track>.splide__arrows .splide__arrow--next svg,.splide--ttb>.splide__track>.splide__arrows .splide__arrow--next svg{transform:rotate(90deg)}.splide--ttb>.splide__pagination,.splide--ttb>.splide__slider>.splide__pagination{display:flex;flex-direction:column;inset:0 .5em 0 auto;padding:1em 0}\n"] }]
600
- }], propDecorators: { title: [{
601
- type: Input
602
- }], type: [{
603
- type: Input
604
- }], trackClass: [{
605
- type: Input
606
- }], fullCarousel: [{
607
- type: Input
608
- }], bigImg: [{
609
- type: Input
610
- }], lined: [{
611
- type: Input
612
- }], items: [{
613
- type: ContentChildren,
614
- args: [CarouselItemComponent]
615
- }], carouselDiv: [{
616
- type: ViewChild,
617
- args: ['carousel']
618
- }] } });
619
-
620
- class CollapseComponent extends AbstractComponent {
621
- constructor(_renderer, _elementRef) {
622
- super(_renderer, _elementRef);
623
- this._renderer = _renderer;
624
- this._elementRef = _elementRef;
625
- /**
626
- * Custom class
627
- */
628
- this.class = '';
629
- /**
630
- * This event fires immediately when the show method is called.
631
- */
632
- this.onShow = new EventEmitter();
633
- /**
634
- * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).
635
- */
636
- this.onShown = new EventEmitter();
637
- /**
638
- * This event fires immediately when the hide method is called.
639
- */
640
- this.onHide = new EventEmitter();
641
- /**
642
- * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).
643
- */
644
- this.onHidden = new EventEmitter();
645
- this.element = this._elementRef.nativeElement;
646
- }
647
- get isMulti() {
648
- return isTrueBooleanInput(this.multi);
649
- }
650
- ngAfterViewInit() {
651
- super.ngAfterViewInit();
652
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
653
- this.collapse = Collapse.getOrCreateInstance(this.collapseDiv.nativeElement, {
654
- toggle: false
655
- });
656
- this.element.addEventListener('show.bs.collapse', event => this.onShow.emit(event));
657
- this.element.addEventListener('shown.bs.collapse', event => this.onShown.emit(event));
658
- this.element.addEventListener('hide.bs.collapse', event => this.onHide.emit(event));
659
- this.element.addEventListener('hidden.bs.collapse', event => this.onHidden.emit(event));
660
- }
661
- /**
662
- * Shows a resealable item
663
- * NOTE: Returns to the caller before the collapsable element has actually been shown (onShown event).
664
- */
665
- show() {
666
- var _a;
667
- (_a = this.collapse) === null || _a === void 0 ? void 0 : _a.show();
668
- }
669
- /**
670
- * Hides a resealable item
671
- * NOTE: Returns to the caller before the collapsable element has actually been hidden (onHidden Event)
672
- */
673
- hide() {
674
- var _a;
675
- (_a = this.collapse) === null || _a === void 0 ? void 0 : _a.hide();
676
- }
677
- /**
678
- * Toggle a collapsible item to show or hide it.
679
- * NOTE: Returns to the caller before the collapsable element has actually been shown or hidden (onShown and onHidden events)
680
- */
681
- toggle() {
682
- var _a;
683
- (_a = this.collapse) === null || _a === void 0 ? void 0 : _a.toggle();
684
- }
685
- /**
686
- * Eliminates the possibility of an item being resealable
687
- */
688
- dispose() {
689
- var _a;
690
- (_a = this.collapse) === null || _a === void 0 ? void 0 : _a.dispose();
691
- }
692
- }
693
- CollapseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CollapseComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
694
- CollapseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CollapseComponent, selector: "it-collapse[id]", inputs: { multi: "multi", class: "class" }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden" }, viewQueries: [{ propertyName: "collapseDiv", first: true, predicate: ["collapse"], descendants: true }], exportAs: ["itCollapse"], usesInheritance: true, ngImport: i0, template: "<div [id]=\"id\" class=\"collapse {{class}}\" [class.multi-collapse]=\"isMulti\" #collapse>\n <ng-content></ng-content>\n</div>\n", styles: [""] });
695
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CollapseComponent, decorators: [{
696
- type: Component,
697
- args: [{ selector: 'it-collapse[id]', exportAs: 'itCollapse', template: "<div [id]=\"id\" class=\"collapse {{class}}\" [class.multi-collapse]=\"isMulti\" #collapse>\n <ng-content></ng-content>\n</div>\n" }]
698
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { multi: [{
699
- type: Input
700
- }], class: [{
701
- type: Input
702
- }], onShow: [{
703
- type: Output
704
- }], onShown: [{
705
- type: Output
706
- }], onHide: [{
707
- type: Output
708
- }], onHidden: [{
709
- type: Output
710
- }], collapseDiv: [{
711
- type: ViewChild,
712
- args: ['collapse']
713
- }] } });
714
-
715
- class LinkComponent {
716
- constructor(_renderer, _elementRef) {
717
- this._renderer = _renderer;
718
- this._elementRef = _elementRef;
719
- /**
720
- * Custom class
721
- */
722
- this.class = '';
723
- }
724
- get isExternalLink() {
725
- return isTrueBooleanInput(this.externalLink);
726
- }
727
- get isDisabled() {
728
- return isTrueBooleanInput(this.disabled);
729
- }
730
- ngAfterViewInit() {
731
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
732
- }
733
- }
734
- LinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LinkComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
735
- LinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LinkComponent, selector: "it-link", inputs: { href: "href", externalLink: "externalLink", disabled: "disabled", class: "class" }, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
736
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LinkComponent, decorators: [{
737
- type: Component,
738
- args: [{ selector: 'it-link', template: "<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" }]
739
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { href: [{
740
- type: Input
741
- }], externalLink: [{
742
- type: Input
743
- }], disabled: [{
744
- type: Input
745
- }], class: [{
746
- type: Input
747
- }] } });
748
-
749
- class DropdownItemComponent extends LinkComponent {
750
- constructor(_renderer, _elementRef, _changeDetectorRef) {
751
- super(_renderer, _elementRef);
752
- this._renderer = _renderer;
753
- this._elementRef = _elementRef;
754
- this._changeDetectorRef = _changeDetectorRef;
755
- /**
756
- * The icon position
757
- * @default right
758
- */
759
- this.iconPosition = 'right';
760
- /**
761
- * Change icon color if menu is dark
762
- * @default false
763
- */
764
- this.isDark = false;
765
- }
766
- get isDivider() {
767
- return isTrueBooleanInput(this.divider);
768
- }
769
- get isActive() {
770
- return isTrueBooleanInput(this.active);
771
- }
772
- get isLarge() {
773
- return isTrueBooleanInput(this.large);
774
- }
775
- get linkClass() {
776
- let linkClass = `list-item ${this.isActive ? 'active' : 'dropdown-item'}`;
777
- if (this.isDisabled) {
778
- linkClass += ' disabled';
779
- }
780
- if (this.isLarge) {
781
- linkClass += ' large';
782
- }
783
- if (this.iconName) {
784
- linkClass += ` ${this.iconPosition === 'right' ? 'right-icon' : 'left-icon'}`;
785
- }
786
- return linkClass;
787
- }
788
- setDark(dark) {
789
- if (this.isDark !== dark) {
790
- this.isDark = dark;
791
- this._changeDetectorRef.detectChanges();
792
- }
793
- }
794
- }
795
- DropdownItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownItemComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
796
- DropdownItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownItemComponent, selector: "it-dropdown-item", inputs: { divider: "divider", active: "active", large: "large", iconName: "iconName", iconPosition: "iconPosition" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".list-item.disabled{pointer-events:none;cursor:default}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LinkComponent, selector: "it-link", inputs: ["href", "externalLink", "disabled", "class"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
797
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownItemComponent, decorators: [{
798
- type: Component,
799
- args: [{ selector: 'it-dropdown-item', template: "<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", styles: [".list-item.disabled{pointer-events:none;cursor:default}\n"] }]
800
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { divider: [{
801
- type: Input
802
- }], active: [{
803
- type: Input
804
- }], large: [{
805
- type: Input
806
- }], iconName: [{
807
- type: Input
808
- }], iconPosition: [{
809
- type: Input
810
- }] } });
811
-
812
- class DropdownComponent extends AbstractComponent {
813
- get buttonClass() {
814
- let btnClass = 'btn dropdown-toggle';
815
- if (this.color) {
816
- btnClass += ` btn-${this.color}`;
817
- }
818
- else {
819
- btnClass += ` btn-dropdown`;
820
- }
821
- return btnClass;
822
- }
823
- get isFullWidth() {
824
- return isTrueBooleanInput(this.fullWidth);
825
- }
826
- get isDark() {
827
- return isTrueBooleanInput(this.dark);
828
- }
829
- ngOnChanges(changes) {
830
- if (changes['dark'] && !changes['dark'].firstChange) {
831
- this.setDarkItems();
832
- }
833
- }
834
- ngAfterViewInit() {
835
- super.ngAfterViewInit();
836
- this.setDarkItems();
837
- }
838
- /**
839
- * Set child items dark mode
840
- * @private
841
- */
842
- setDarkItems() {
843
- var _a;
844
- (_a = this.items) === null || _a === void 0 ? void 0 : _a.forEach(item => {
845
- item.setDark(this.isDark);
846
- });
847
- }
848
- }
849
- DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
850
- DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownComponent, selector: "it-dropdown[id]", inputs: { color: "color", direction: "direction", fullWidth: "fullWidth", dark: "dark" }, queries: [{ propertyName: "items", predicate: DropdownItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown {{direction}}\">\n <button [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", styles: [".link-list-heading:empty{display:none}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }] });
851
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownComponent, decorators: [{
852
- type: Component,
853
- args: [{ selector: 'it-dropdown[id]', template: "<div class=\"dropdown {{direction}}\">\n <button [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", styles: [".link-list-heading:empty{display:none}\n"] }]
854
- }], propDecorators: { color: [{
855
- type: Input
856
- }], direction: [{
857
- type: Input
858
- }], fullWidth: [{
859
- type: Input
860
- }], dark: [{
861
- type: Input
862
- }], items: [{
863
- type: ContentChildren,
864
- args: [DropdownItemComponent]
865
- }] } });
866
-
867
- class ListComponent {
868
- }
869
- ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
870
- ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ListComponent, selector: "it-list", inputs: { linkList: "linkList" }, ngImport: i0, template: "<div class=\"it-list-wrapper\">\n <ul class=\"it-list\">\n <ng-content></ng-content>\n </ul>\n</div>\n", styles: [""] });
871
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ListComponent, decorators: [{
872
- type: Component,
873
- args: [{ selector: 'it-list', template: "<div class=\"it-list-wrapper\">\n <ul class=\"it-list\">\n <ng-content></ng-content>\n </ul>\n</div>\n" }]
874
- }], propDecorators: { linkList: [{
875
- type: Input
876
- }] } });
877
-
878
- class ListItemComponent extends LinkComponent {
879
- get itemClass() {
880
- let itemClass = 'list-item';
881
- if (isTrueBooleanInput(this.active)) {
882
- itemClass += ` active`;
883
- }
884
- if (isTrueBooleanInput(this.large)) {
885
- itemClass += ` large`;
886
- }
887
- if (this.class) {
888
- itemClass += ` ${this.class}`;
889
- }
890
- return itemClass;
891
- }
892
- }
893
- ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
894
- ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ListItemComponent, selector: "it-list-item", inputs: { active: "active", large: "large", avatar: "avatar", image: "image" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".metadata:empty,.it-rounded-icon:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LinkComponent, selector: "it-link", inputs: ["href", "externalLink", "disabled", "class"] }] });
895
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ListItemComponent, decorators: [{
896
- type: Component,
897
- args: [{ selector: 'it-list-item', template: "<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", styles: [".metadata:empty,.it-rounded-icon:empty{display:none}\n"] }]
898
- }], propDecorators: { active: [{
899
- type: Input
900
- }], large: [{
901
- type: Input
902
- }], avatar: [{
903
- type: Input
904
- }], image: [{
905
- type: Input
906
- }] } });
907
-
908
- class ModalComponent extends AbstractComponent {
909
- constructor() {
910
- super(...arguments);
911
- /**
912
- * This event fires immediately when the instance method show is called.
913
- */
914
- this.onShow = new EventEmitter();
915
- /**
916
- * This event fires when the modal has been made visible to the user (it will wait for CSS transitions to complete).
917
- */
918
- this.onShown = new EventEmitter();
919
- /**
920
- * This event is raised immediately when the instance method hide has been called.
921
- */
922
- this.onHide = new EventEmitter();
923
- /**
924
- * This event fires when the modal has finished hiding from the user (it will wait for CSS transitions to complete).
925
- */
926
- this.onHidden = new EventEmitter();
927
- /**
928
- * This event is fired when the modal is displayed, its background is static and a click outside the modal or a press
929
- * of the esc key occurs and data-bs-keyboard is set to false.
930
- */
931
- this.onHidePrevented = new EventEmitter();
932
- }
933
- ngAfterViewInit() {
934
- super.ngAfterViewInit();
935
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');
936
- if (this.modalElement) {
937
- const element = this.modalElement.nativeElement;
938
- this.modal = Modal.getOrCreateInstance(element);
939
- element.addEventListener('show.bs.modal', event => this.onShow.emit(event));
940
- element.addEventListener('shown.bs.modal', event => this.onShown.emit(event));
941
- element.addEventListener('hide.bs.modal', event => this.onHide.emit(event));
942
- element.addEventListener('hidden.bs.modal', event => this.onHidden.emit(event));
943
- element.addEventListener('hidePrevented.bs.modal', event => this.onHidePrevented.emit(event));
944
- }
945
- }
946
- /**
947
- * Manually activate/deactivate a modal. Returns to the caller before the modal has actually been shown or hidden
948
- */
949
- toggle() {
950
- var _a;
951
- (_a = this.modal) === null || _a === void 0 ? void 0 : _a.toggle();
952
- }
953
- /**
954
- * Manually open a modal. Returns to the caller before the modal has actually been displayed
955
- */
956
- show() {
957
- var _a;
958
- (_a = this.modal) === null || _a === void 0 ? void 0 : _a.show();
959
- }
960
- /**
961
- * Manually hide a modal. Returns to the caller before the modal has actually been hidden
962
- */
963
- hide() {
964
- var _a;
965
- (_a = this.modal) === null || _a === void 0 ? void 0 : _a.hide();
966
- }
967
- /**
968
- * Manually reposition the modal if the height of the modal changes when it is opened (in case a scroll bar appears).
969
- */
970
- handleUpdate() {
971
- var _a;
972
- (_a = this.modal) === null || _a === void 0 ? void 0 : _a.handleUpdate();
973
- }
974
- /**
975
- * Destroys the modal of an element.
976
- */
977
- dispose() {
978
- var _a;
979
- (_a = this.modal) === null || _a === void 0 ? void 0 : _a.dispose();
980
- }
981
- }
982
- ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
983
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalComponent, selector: "it-modal[id][title]", inputs: { title: "title", size: "size" }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden", onHidePrevented: "onHidePrevented" }, viewQueries: [{ propertyName: "modalElement", first: true, predicate: ["modalElement"], descendants: true }], exportAs: ["itModal"], usesInheritance: true, ngImport: i0, template: "<div [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\" #modalElement>\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\" [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", styles: [".modal-footer:empty{display:none}\n"], dependencies: [{ kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
984
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalComponent, decorators: [{
985
- type: Component,
986
- args: [{ selector: 'it-modal[id][title]', exportAs: 'itModal', template: "<div [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\" #modalElement>\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\" [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", styles: [".modal-footer:empty{display:none}\n"] }]
987
- }], propDecorators: { title: [{
988
- type: Input
989
- }], size: [{
990
- type: Input
991
- }], onShow: [{
992
- type: Output
993
- }], onShown: [{
994
- type: Output
995
- }], onHide: [{
996
- type: Output
997
- }], onHidden: [{
998
- type: Output
999
- }], onHidePrevented: [{
1000
- type: Output
1001
- }], modalElement: [{
1002
- type: ViewChild,
1003
- args: ['modalElement', { static: false }]
1004
- }] } });
1005
-
1006
- var NotificationType;
1007
- (function (NotificationType) {
1008
- NotificationType["Standard"] = "standard";
1009
- NotificationType["Success"] = "success";
1010
- NotificationType["Error"] = "error";
1011
- NotificationType["Info"] = "info";
1012
- NotificationType["Warning"] = "warning";
1013
- })(NotificationType || (NotificationType = {}));
1014
- var NotificationPosition;
1015
- (function (NotificationPosition) {
1016
- NotificationPosition["Top"] = "top-fix mt-3";
1017
- NotificationPosition["Bottom"] = "bottom-fix mb-3";
1018
- NotificationPosition["Left"] = "left-fix ms-3";
1019
- NotificationPosition["Right"] = "right-fix me-3";
1020
- })(NotificationPosition || (NotificationPosition = {}));
1021
-
1022
- class NotificationsService {
1023
- constructor() {
1024
- this.subject = new Subject();
1025
- }
1026
- /**
1027
- * Listen on notification arrived
1028
- * @param filterType filter type of notification
1029
- */
1030
- onNotification(filterType) {
1031
- return this.subject.asObservable().pipe(filter(n => n && (!filterType || (n.type === filterType))));
1032
- }
1033
- /**
1034
- * Show new notification
1035
- * @param notification notification
1036
- */
1037
- addNotification(notification) {
1038
- this.subject.next(notification);
1039
- }
1040
- /**
1041
- * Create new Standard notification
1042
- * @param title notification title
1043
- * @param message notification message
1044
- * @param dismissable notification dismissable
1045
- * @param duration notification duration (millis)
1046
- * @param position notification position
1047
- */
1048
- standard(title, message, dismissable = true, duration, position) {
1049
- this.addNotification({
1050
- type: NotificationType.Standard,
1051
- message,
1052
- title,
1053
- duration,
1054
- dismissable,
1055
- position
1056
- });
1057
- }
1058
- /**
1059
- * Create new Success notification
1060
- * @param title notification title
1061
- * @param message notification message
1062
- * @param dismissable notification dismissable
1063
- * @param duration notification duration (millis)
1064
- * @param position notification position
1065
- */
1066
- success(title, message, dismissable = true, duration, position) {
1067
- this.addNotification({
1068
- type: NotificationType.Success,
1069
- message,
1070
- title,
1071
- duration,
1072
- dismissable,
1073
- position
1074
- });
1075
- }
1076
- /**
1077
- * Create new Error notification
1078
- * @param title notification title
1079
- * @param message notification message
1080
- * @param dismissable notification dismissable
1081
- * @param duration notification duration (millis)
1082
- * @param position notification position
1083
- */
1084
- error(title, message, dismissable = true, duration, position) {
1085
- this.addNotification({
1086
- type: NotificationType.Error,
1087
- message,
1088
- title,
1089
- duration,
1090
- dismissable,
1091
- position
1092
- });
1093
- }
1094
- /**
1095
- * Create new Warning notification
1096
- * @param title notification title
1097
- * @param message notification message
1098
- * @param dismissable notification dismissable
1099
- * @param duration notification duration (millis)
1100
- * @param position notification position
1101
- */
1102
- warning(title, message, dismissable = true, duration, position) {
1103
- this.addNotification({
1104
- type: NotificationType.Warning,
1105
- message,
1106
- title,
1107
- duration,
1108
- dismissable,
1109
- position
1110
- });
1111
- }
1112
- /**
1113
- * Create new Info notification
1114
- * @param title notification title
1115
- * @param message notification message
1116
- * @param dismissable notification dismissable
1117
- * @param duration notification duration (millis)
1118
- * @param position notification position
1119
- */
1120
- info(title, message, dismissable = true, duration, position) {
1121
- this.addNotification({
1122
- type: NotificationType.Info,
1123
- message,
1124
- title,
1125
- duration,
1126
- dismissable,
1127
- position
1128
- });
1129
- }
1130
- }
1131
- NotificationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1132
- NotificationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationsService, providedIn: 'root' });
1133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationsService, decorators: [{
1134
- type: Injectable,
1135
- args: [{
1136
- providedIn: 'root'
1137
- }]
1138
- }] });
1139
-
1140
- class NotificationsComponent {
1141
- constructor(_notificationService) {
1142
- this._notificationService = _notificationService;
1143
- /**
1144
- * Default notifications duration
1145
- * @default 8000
1146
- */
1147
- this.duration = 8000;
1148
- this.notifications = [];
1149
- this.subscription = this._notificationService.onNotification().subscribe(notification => {
1150
- if (!notification.duration) {
1151
- notification.duration = this.duration; // Add duration if not is set
1152
- }
1153
- if (!notification.position && this.position) {
1154
- notification.position = this.position; // Add position if not is set
1155
- }
1156
- const newNotification = Object.assign(Object.assign({}, notification), { id: `${notification.type}-${this.notifications.length}-notification` });
1157
- const index = this.notifications.push(newNotification);
1158
- setTimeout(() => {
1159
- // Show the notification
1160
- new Notification(document.getElementById(newNotification.id), {
1161
- timeout: notification.duration
1162
- }).show();
1163
- // Clear notification after the duration
1164
- setTimeout(() => {
1165
- this.notifications = this.notifications.splice(index, 1);
1166
- }, notification.duration);
1167
- }, 200);
1168
- });
1169
- }
1170
- ngOnDestroy() {
1171
- this.subscription.unsubscribe();
1172
- }
1173
- get NotificationType() {
1174
- return NotificationType;
1175
- }
1176
- /**
1177
- * Hide the notification
1178
- * @param id
1179
- */
1180
- hideNotification(id) {
1181
- var _a;
1182
- (_a = Notification.getInstance(document.getElementById(id))) === null || _a === void 0 ? void 0 : _a.hide();
1183
- }
1184
- }
1185
- NotificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationsComponent, deps: [{ token: NotificationsService }], target: i0.ɵɵFactoryTarget.Component });
1186
- NotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotificationsComponent, selector: "it-notifications", inputs: { duration: "duration", position: "position" }, ngImport: i0, template: "<div *ngFor=\"let notification of notifications; let i = index\"\n [id]=\"notification.id\"\n class=\"notification {{notification.position}} {{notification.type}}\"\n [class.with-icon]=\"notification.type !== NotificationType.Standard\"\n [class.dismissable]=\"notification.dismissable\"\n role=\"alert\" [attr.aria-labelledby]=\"notification.id+'-title'\">\n\n <h2 [id]=\"notification.id+'-title'\" class=\"h5\">\n <ng-container>{{notification.title}}</ng-container>\n </h2>\n <p *ngIf=\"notification.message\">{{notification.message}}</p>\n\n <button *ngIf=\"notification.dismissable\" 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", styles: [".notification{z-index:10000}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
1187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationsComponent, decorators: [{
1188
- type: Component,
1189
- args: [{ selector: 'it-notifications', template: "<div *ngFor=\"let notification of notifications; let i = index\"\n [id]=\"notification.id\"\n class=\"notification {{notification.position}} {{notification.type}}\"\n [class.with-icon]=\"notification.type !== NotificationType.Standard\"\n [class.dismissable]=\"notification.dismissable\"\n role=\"alert\" [attr.aria-labelledby]=\"notification.id+'-title'\">\n\n <h2 [id]=\"notification.id+'-title'\" class=\"h5\">\n <ng-container>{{notification.title}}</ng-container>\n </h2>\n <p *ngIf=\"notification.message\">{{notification.message}}</p>\n\n <button *ngIf=\"notification.dismissable\" 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", styles: [".notification{z-index:10000}\n"] }]
1190
- }], ctorParameters: function () { return [{ type: NotificationsService }]; }, propDecorators: { duration: [{
1191
- type: Input
1192
- }], position: [{
1193
- type: Input
1194
- }] } });
1195
-
1196
- class PaginationComponent {
1197
- constructor() {
1198
- /**
1199
- * Fired when page is changed
1200
- */
1201
- this.newPageEvent = new EventEmitter();
1202
- }
1203
- /**
1204
- * Create array to generate pagination of 5 element
1205
- */
1206
- get pages() {
1207
- const length = this.pageNumbers > 5 ? 5 : this.pageNumbers;
1208
- let start = (this.currentPage > 1 && this.pageNumbers > 5) ? this.currentPage - 1 : 1;
1209
- if (this.pageNumbers > 5) {
1210
- if ((this.currentPage + 1) >= this.pageNumbers) {
1211
- start -= 2;
1212
- }
1213
- else if (this.currentPage >= (this.pageNumbers - 2)) {
1214
- start -= (this.pageNumbers - (this.currentPage + 1));
1215
- }
1216
- }
1217
- return Array.from({ length }, (_, i) => i + start);
1218
- }
1219
- /**
1220
- * On click page change
1221
- * @param newPage the new page of table
1222
- */
1223
- pageChange(newPage) {
1224
- this.newPageEvent.emit(newPage - 1); // emit new page
1225
- }
1226
- }
1227
- PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1228
- PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PaginationComponent, selector: "it-pagination[currentPage][pageNumbers]", inputs: { currentPage: "currentPage", pageNumbers: "pageNumbers", alignment: "alignment" }, outputs: { newPageEvent: "newPageEvent" }, ngImport: i0, template: "<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", styles: [".page-item:not(.disabled)>a.page-link{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
1229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PaginationComponent, decorators: [{
1230
- type: Component,
1231
- args: [{ selector: 'it-pagination[currentPage][pageNumbers]', template: "<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", styles: [".page-item:not(.disabled)>a.page-link{cursor:pointer}\n"] }]
1232
- }], propDecorators: { currentPage: [{
1233
- type: Input
1234
- }], pageNumbers: [{
1235
- type: Input
1236
- }], alignment: [{
1237
- type: Input
1238
- }], newPageEvent: [{
1239
- type: Output
1240
- }] } });
1241
-
1242
- class PopoverDirective {
1243
- constructor(_elementRef) {
1244
- this._elementRef = _elementRef;
1245
- /**
1246
- * This event fires immediately when the show method is called.
1247
- */
1248
- this.onShow = new EventEmitter();
1249
- /**
1250
- * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).
1251
- */
1252
- this.onShown = new EventEmitter();
1253
- /**
1254
- * This event fires immediately when the hide method is called.
1255
- */
1256
- this.onHide = new EventEmitter();
1257
- /**
1258
- * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).
1259
- */
1260
- this.onHidden = new EventEmitter();
1261
- /**
1262
- * This event fires after the show event when the tooltip template has been added to the DOM.
1263
- */
1264
- this.onInserted = new EventEmitter();
1265
- this.element = this._elementRef.nativeElement;
1266
- }
1267
- /**
1268
- * Define the popover content
1269
- * @param content the popover content
1270
- */
1271
- set content(content) {
1272
- this.element.setAttribute('data-bs-content', content);
1273
- }
1274
- /**
1275
- * Define the popover title
1276
- * @param title the popover title
1277
- */
1278
- set title(title) {
1279
- if (title) {
1280
- // this.element.setAttribute("title", title);
1281
- this.element.setAttribute('data-bs-original-title', title);
1282
- }
1283
- }
1284
- /**
1285
- * Define the popover placement
1286
- * @param placement
1287
- */
1288
- set placement(placement) {
1289
- this.element.setAttribute('data-bs-placement', placement);
1290
- }
1291
- /**
1292
- * Appends the popover to a specific element.
1293
- * @param container
1294
- */
1295
- set container(container) {
1296
- if (container) {
1297
- this.element.setAttribute('data-container', container);
1298
- }
1299
- }
1300
- /**
1301
- * Indicates whether the title contains html
1302
- * @param html true if contain html
1303
- */
1304
- set html(html) {
1305
- this.element.setAttribute('data-bs-html', isTrueBooleanInput(html) ? 'true' : 'false');
1306
- }
1307
- /**
1308
- * How popover is triggered
1309
- * - 'hover': To open the Popover on hover of the mouse over the element
1310
- * - 'focus': To ignore popovers on the user's next click of an element other than the toggle element.
1311
- * @param trigger
1312
- */
1313
- set hover(trigger) {
1314
- if (trigger) {
1315
- this.element.setAttribute('data-bs-trigger', trigger);
1316
- }
1317
- }
1318
- ngAfterViewInit() {
1319
- this.element.setAttribute('data-bs-toggle', 'popover');
1320
- this.popover = Popover.getOrCreateInstance(this.element);
1321
- this.element.addEventListener('show.bs.popover', event => this.onShow.emit(event));
1322
- this.element.addEventListener('shown.bs.popover', event => this.onShown.emit(event));
1323
- this.element.addEventListener('hide.bs.popover', event => this.onHide.emit(event));
1324
- this.element.addEventListener('hidden.bs.popover', event => this.onHidden.emit(event));
1325
- this.element.addEventListener('inserted.bs.popover', event => this.onInserted.emit(event));
1326
- }
1327
- /**
1328
- * Shows the popover of an item.
1329
- */
1330
- show() {
1331
- var _a;
1332
- (_a = this.popover) === null || _a === void 0 ? void 0 : _a.show();
1333
- }
1334
- /**
1335
- * Hide the popover of an element.
1336
- */
1337
- hide() {
1338
- var _a;
1339
- (_a = this.popover) === null || _a === void 0 ? void 0 : _a.hide();
1340
- }
1341
- /**
1342
- * Activate / Deactivate the popover of an element
1343
- */
1344
- toggle() {
1345
- var _a;
1346
- (_a = this.popover) === null || _a === void 0 ? void 0 : _a.toggle();
1347
- }
1348
- /**
1349
- * Hides and destroys the popover of an element.
1350
- */
1351
- dispose() {
1352
- var _a;
1353
- (_a = this.popover) === null || _a === void 0 ? void 0 : _a.dispose();
1354
- }
1355
- /**
1356
- * Gives the popover of an element a chance to be shown.
1357
- */
1358
- enable() {
1359
- var _a;
1360
- (_a = this.popover) === null || _a === void 0 ? void 0 : _a.enable();
1361
- }
1362
- /**
1363
- * Removes the ability to show the popover of an element.
1364
- */
1365
- disable() {
1366
- var _a;
1367
- (_a = this.popover) === null || _a === void 0 ? void 0 : _a.disable();
1368
- }
1369
- /**
1370
- * Toggles the possibility that the popover of an element is shown or hidden.
1371
- */
1372
- toggleEnabled() {
1373
- var _a;
1374
- (_a = this.popover) === null || _a === void 0 ? void 0 : _a.disable();
1375
- }
1376
- /**
1377
- * Updates the position of an element's popover.
1378
- */
1379
- update() {
1380
- var _a;
1381
- (_a = this.popover) === null || _a === void 0 ? void 0 : _a.disable();
1382
- }
1383
- }
1384
- PopoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PopoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1385
- PopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: PopoverDirective, selector: "[itPopover]", inputs: { content: ["itPopover", "content"], title: ["popoverTitle", "title"], placement: ["popoverPlacement", "placement"], container: ["popoverContainer", "container"], html: ["popoverHtml", "html"], hover: ["popoverTrigger", "hover"] }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden", onInserted: "onInserted" }, exportAs: ["itPopover"], ngImport: i0 });
1386
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PopoverDirective, decorators: [{
1387
- type: Directive,
1388
- args: [{
1389
- selector: '[itPopover]',
1390
- exportAs: 'itPopover'
1391
- }]
1392
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { content: [{
1393
- type: Input,
1394
- args: ['itPopover']
1395
- }], title: [{
1396
- type: Input,
1397
- args: ['popoverTitle']
1398
- }], placement: [{
1399
- type: Input,
1400
- args: ['popoverPlacement']
1401
- }], container: [{
1402
- type: Input,
1403
- args: ['popoverContainer']
1404
- }], html: [{
1405
- type: Input,
1406
- args: ['popoverHtml']
1407
- }], hover: [{
1408
- type: Input,
1409
- args: ['popoverTrigger']
1410
- }], onShow: [{
1411
- type: Output
1412
- }], onShown: [{
1413
- type: Output
1414
- }], onHide: [{
1415
- type: Output
1416
- }], onHidden: [{
1417
- type: Output
1418
- }], onInserted: [{
1419
- type: Output
1420
- }] } });
1421
-
1422
- class ProgressButtonComponent {
1423
- get isProgress() {
1424
- return typeof this.progress === 'number' || isTrueBooleanInput(this.progress);
1425
- }
1426
- get progressValue() {
1427
- return typeof this.progress === 'number' ? this.progress : 0;
1428
- }
1429
- get isIndeterminate() {
1430
- return typeof this.progress !== 'number' && isTrueBooleanInput(this.progress);
1431
- }
1432
- }
1433
- ProgressButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1434
- ProgressButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ProgressButtonComponent, selector: "button[itButton][progress]", inputs: { progress: "progress", progressColor: "progressColor" }, ngImport: i0, template: "<ng-content></ng-content>\n\n<it-progress-bar *ngIf=\"isProgress\"\n [value]=\"progressValue\"\n [indeterminate]=\"isIndeterminate\"\n [color]=\"progressColor\"></it-progress-bar>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1435
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ProgressButtonComponent, decorators: [{
1436
- type: Component,
1437
- args: [{ selector: 'button[itButton][progress]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n\n<it-progress-bar *ngIf=\"isProgress\"\n [value]=\"progressValue\"\n [indeterminate]=\"isIndeterminate\"\n [color]=\"progressColor\"></it-progress-bar>\n" }]
1438
- }], propDecorators: { progress: [{
1439
- type: Input
1440
- }], progressColor: [{
1441
- type: Input
1442
- }] } });
1443
-
1444
- class SpinnerComponent {
1445
- constructor() {
1446
- /**
1447
- * The spinner is active
1448
- */
1449
- this.active = true;
1450
- }
1451
- get isActive() {
1452
- return isTrueBooleanInput(this.active);
1453
- }
1454
- get isSmall() {
1455
- return isTrueBooleanInput(this.small);
1456
- }
1457
- get isDouble() {
1458
- return isTrueBooleanInput(this.double);
1459
- }
1460
- }
1461
- SpinnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1462
- SpinnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SpinnerComponent, selector: "it-spinner", inputs: { active: "active", small: "small", double: "double" }, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
1463
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SpinnerComponent, decorators: [{
1464
- type: Component,
1465
- args: [{ selector: 'it-spinner', template: "<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" }]
1466
- }], propDecorators: { active: [{
1467
- type: Input
1468
- }], small: [{
1469
- type: Input
1470
- }], double: [{
1471
- type: Input
1472
- }] } });
1473
-
1474
- class TabItemComponent extends AbstractComponent {
1475
- constructor() {
1476
- super(...arguments);
1477
- /**
1478
- * Custom class
1479
- */
1480
- this.class = '';
1481
- }
1482
- ngAfterViewInit() {
1483
- super.ngAfterViewInit();
1484
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
1485
- }
1486
- }
1487
- TabItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1488
- TabItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabItemComponent, selector: "it-tab-item[id]", inputs: { label: "label", icon: "icon", active: "active", disabled: "disabled", class: "class" }, viewQueries: [{ propertyName: "htmlContent", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", styles: [""] });
1489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabItemComponent, decorators: [{
1490
- type: Component,
1491
- args: [{ selector: 'it-tab-item[id]', template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }]
1492
- }], propDecorators: { label: [{
1493
- type: Input
1494
- }], icon: [{
1495
- type: Input
1496
- }], active: [{
1497
- type: Input
1498
- }], disabled: [{
1499
- type: Input
1500
- }], class: [{
1501
- type: Input
1502
- }], htmlContent: [{
1503
- type: ViewChild,
1504
- args: [TemplateRef]
1505
- }] } });
1506
-
1507
- class TabContainerComponent {
1508
- constructor(_changeDetectorRef) {
1509
- this._changeDetectorRef = _changeDetectorRef;
1510
- }
1511
- isTrueBooleanInput(booleanInput) {
1512
- return isTrueBooleanInput(booleanInput);
1513
- }
1514
- ngAfterViewInit() {
1515
- this._changeDetectorRef.detectChanges();
1516
- }
1517
- }
1518
- TabContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabContainerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1519
- TabContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TabContainerComponent, selector: "it-tab-container", inputs: { auto: "auto", iconText: "iconText", dark: "dark" }, queries: [{ propertyName: "tabs", predicate: TabItemComponent }], ngImport: i0, template: "<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 [id]=\"tab.id+'-tab-link'\"\n role=\"tab\"\n data-bs-toggle=\"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\"></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 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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }] });
1520
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TabContainerComponent, decorators: [{
1521
- type: Component,
1522
- args: [{ selector: 'it-tab-container', template: "<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 [id]=\"tab.id+'-tab-link'\"\n role=\"tab\"\n data-bs-toggle=\"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\"></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 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" }]
1523
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { auto: [{
1524
- type: Input
1525
- }], iconText: [{
1526
- type: Input
1527
- }], dark: [{
1528
- type: Input
1529
- }], tabs: [{
1530
- type: ContentChildren,
1531
- args: [TabItemComponent]
1532
- }] } });
1533
-
1534
- class TableComponent {
1535
- constructor() {
1536
- /**
1537
- * Responsive tables allow you to scroll tables horizontally with ease.
1538
- * @default responsive
1539
- */
1540
- this.responsive = 'responsive';
1541
- }
1542
- get isStriped() {
1543
- return isTrueBooleanInput(this.striped);
1544
- }
1545
- get isHover() {
1546
- return isTrueBooleanInput(this.hover);
1547
- }
1548
- get isBordered() {
1549
- return isTrueBooleanInput(this.bordered);
1550
- }
1551
- get isBorderless() {
1552
- return isTrueBooleanInput(this.borderless);
1553
- }
1554
- get isCompact() {
1555
- return isTrueBooleanInput(this.compact);
1556
- }
1557
- get isCaptionTop() {
1558
- return isTrueBooleanInput(this.captionTop);
1559
- }
1560
- }
1561
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1562
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TableComponent, selector: "it-table", inputs: { color: "color", headColor: "headColor", alignment: "alignment", striped: "striped", hover: "hover", bordered: "bordered", borderless: "borderless", compact: "compact", captionTop: "captionTop", responsive: "responsive" }, ngImport: i0, template: "<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", styles: ["caption:empty{display:none}caption:empty~thead{border-top:none!important}\n"] });
1563
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TableComponent, decorators: [{
1564
- type: Component,
1565
- args: [{ selector: 'it-table', template: "<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", styles: ["caption:empty{display:none}caption:empty~thead{border-top:none!important}\n"] }]
1566
- }], propDecorators: { color: [{
1567
- type: Input
1568
- }], headColor: [{
1569
- type: Input
1570
- }], alignment: [{
1571
- type: Input
1572
- }], striped: [{
1573
- type: Input
1574
- }], hover: [{
1575
- type: Input
1576
- }], bordered: [{
1577
- type: Input
1578
- }], borderless: [{
1579
- type: Input
1580
- }], compact: [{
1581
- type: Input
1582
- }], captionTop: [{
1583
- type: Input
1584
- }], responsive: [{
1585
- type: Input
1586
- }] } });
1587
-
1588
- class TooltipDirective {
1589
- constructor(_elementRef) {
1590
- this._elementRef = _elementRef;
1591
- /**
1592
- * This event fires immediately when the show method is called.
1593
- */
1594
- this.onShow = new EventEmitter();
1595
- /**
1596
- * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).
1597
- */
1598
- this.onShown = new EventEmitter();
1599
- /**
1600
- * This event fires immediately when the hide method is called.
1601
- */
1602
- this.onHide = new EventEmitter();
1603
- /**
1604
- * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).
1605
- */
1606
- this.onHidden = new EventEmitter();
1607
- /**
1608
- * This event fires after the show event when the tooltip template has been added to the DOM.
1609
- */
1610
- this.onInserted = new EventEmitter();
1611
- this.element = this._elementRef.nativeElement;
1612
- }
1613
- /**
1614
- * Define the tooltip title
1615
- * @param title the tooltip title
1616
- */
1617
- set title(title) {
1618
- if (title) {
1619
- // this.element.setAttribute("title", title);
1620
- this.element.setAttribute('data-bs-original-title', title);
1621
- }
1622
- }
1623
- /**
1624
- * Define the tooltip placement
1625
- * @param placement
1626
- */
1627
- set placement(placement) {
1628
- this.element.setAttribute('data-bs-placement', placement);
1629
- }
1630
- /**
1631
- * Indicates whether the title contains html
1632
- * @param html true if contain html
1633
- */
1634
- set html(html) {
1635
- this.element.setAttribute('data-bs-html', isTrueBooleanInput(html) ? 'true' : 'false');
1636
- }
1637
- ngAfterViewInit() {
1638
- this.element.setAttribute('data-bs-toggle', 'tooltip');
1639
- this.tooltip = Tooltip.getOrCreateInstance(this.element);
1640
- this.element.addEventListener('show.bs.tooltip', event => this.onShow.emit(event));
1641
- this.element.addEventListener('shown.bs.tooltip', event => this.onShown.emit(event));
1642
- this.element.addEventListener('hide.bs.tooltip', event => this.onHide.emit(event));
1643
- this.element.addEventListener('hidden.bs.tooltip', event => this.onHidden.emit(event));
1644
- this.element.addEventListener('inserted.bs.tooltip', event => this.onInserted.emit(event));
1645
- }
1646
- /**
1647
- * Shows the tooltip of an item.
1648
- */
1649
- show() {
1650
- var _a;
1651
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.show();
1652
- }
1653
- /**
1654
- * Hide the tooltip of an element.
1655
- */
1656
- hide() {
1657
- var _a;
1658
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.hide();
1659
- }
1660
- /**
1661
- * Activate / Deactivate the tooltip of an element
1662
- */
1663
- toggle() {
1664
- var _a;
1665
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.toggle();
1666
- }
1667
- /**
1668
- * Hides and destroys the tooltip of an element.
1669
- */
1670
- dispose() {
1671
- var _a;
1672
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.dispose();
1673
- }
1674
- /**
1675
- * Gives the tooltip of an element a chance to be shown.
1676
- */
1677
- enable() {
1678
- var _a;
1679
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.enable();
1680
- }
1681
- /**
1682
- * Removes the ability to show the tooltip of an element.
1683
- */
1684
- disable() {
1685
- var _a;
1686
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.disable();
1687
- }
1688
- /**
1689
- * Toggles the possibility that the tooltip of an element is shown or hidden.
1690
- */
1691
- toggleEnabled() {
1692
- var _a;
1693
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.disable();
1694
- }
1695
- /**
1696
- * Updates the position of an element's tooltip.
1697
- */
1698
- update() {
1699
- var _a;
1700
- (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.disable();
1701
- }
1702
- }
1703
- TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
1704
- TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: TooltipDirective, selector: "[itTooltip]", inputs: { title: ["itTooltip", "title"], placement: ["tooltipPlacement", "placement"], html: ["tooltipHtml", "html"] }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden", onInserted: "onInserted" }, exportAs: ["itTooltip"], ngImport: i0 });
1705
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TooltipDirective, decorators: [{
1706
- type: Directive,
1707
- args: [{
1708
- selector: '[itTooltip]',
1709
- exportAs: 'itTooltip'
1710
- }]
1711
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { title: [{
1712
- type: Input,
1713
- args: ['itTooltip']
1714
- }], placement: [{
1715
- type: Input,
1716
- args: ['tooltipPlacement']
1717
- }], html: [{
1718
- type: Input,
1719
- args: ['tooltipHtml']
1720
- }], onShow: [{
1721
- type: Output
1722
- }], onShown: [{
1723
- type: Output
1724
- }], onHide: [{
1725
- type: Output
1726
- }], onHidden: [{
1727
- type: Output
1728
- }], onInserted: [{
1729
- type: Output
1730
- }] } });
1731
-
1732
- class CheckboxComponent extends AbstractFormComponent {
1733
- get isIndeterminate() {
1734
- return isTrueBooleanInput(this.indeterminate);
1735
- }
1736
- get isGroup() {
1737
- return isTrueBooleanInput(this.group);
1738
- }
1739
- ngOnInit() {
1740
- super.ngOnInit();
1741
- if (this.control.value || this.checked === undefined) {
1742
- return;
1743
- }
1744
- const value = isTrueBooleanInput(this.checked);
1745
- this.writeValue(value);
1746
- return this.onChange(value);
1747
- }
1748
- }
1749
- CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1750
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: CheckboxComponent, selector: "it-checkbox[id][label]", inputs: { toggle: "toggle", inline: "inline", group: "group", checked: "checked", indeterminate: "indeterminate" }, usesInheritance: true, ngImport: i0, template: "<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 {{label}}\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\">{{label}}</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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1751
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: CheckboxComponent, decorators: [{
1752
- type: Component,
1753
- args: [{ selector: 'it-checkbox[id][label]', template: "<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 {{label}}\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\">{{label}}</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" }]
1754
- }], propDecorators: { toggle: [{
1755
- type: Input
1756
- }], inline: [{
1757
- type: Input
1758
- }], group: [{
1759
- type: Input
1760
- }], checked: [{
1761
- type: Input
1762
- }], indeterminate: [{
1763
- type: Input
1764
- }] } });
1765
-
1766
- /**
1767
- * General Email Regex (RFC 5322 Official Standard)
1768
- * http://emailregex.com/
1769
- */
1770
- 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])+)\])/;
1771
- /**
1772
- * Phone number Regex
1773
- */
1774
- const PHONE_NUMBER_REGEX = /^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{3})(?: *x(\d+))?\s*$/;
1775
- /**
1776
- * URL Regex
1777
- */
1778
- 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,})/;
1779
- /**
1780
- * The italian tax code Regex (Codice Fiscale)
1781
- */
1782
- const ITALIAN_TAX_CODE_REGEX = /^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z][0-9]{3}[a-z]$/;
1783
- /**
1784
- * The VAT number Regex (Partita iva)
1785
- */
1786
- const VAT_NUMBER_REGEX = /^[0-9]{11}$/;
1787
- /**
1788
- * Italian CAP Regex
1789
- */
1790
- const CAP_REGEX = /^[0-9]{5}$/;
1791
-
1792
- class ItValidators {
1793
- /**
1794
- * Static pattern validator with custom error
1795
- * @param regex
1796
- * @param error
1797
- */
1798
- static customPattern(regex, error) {
1799
- return (control) => {
1800
- if (!control.value) {
1801
- // if control is empty return no error
1802
- return null;
1803
- }
1804
- // test the value of the control against the regexp supplied
1805
- const valid = regex.test(control.value);
1806
- // if true, return no error (no error), else return error passed in the second parameter
1807
- return valid ? null : error;
1808
- };
1809
- }
1810
- /**
1811
- * Set Validator if the condition is satisfied
1812
- * @param validator the validator to apply if the condition is true
1813
- * @param condition the condition
1814
- */
1815
- static conditional(validator, condition) {
1816
- return formControl => {
1817
- if (!formControl.parent) {
1818
- return null;
1819
- }
1820
- if (condition(formControl)) {
1821
- return validator(formControl);
1822
- }
1823
- return null;
1824
- };
1825
- }
1826
- /**
1827
- * Check whether our password and confirm password are a match
1828
- * @param control
1829
- */
1830
- static passwordMatch(control) {
1831
- var _a;
1832
- const confirmControl = control.get('passwordConfirm'); //confirmPassword form control
1833
- if (!confirmControl) {
1834
- return null;
1835
- }
1836
- const password = (_a = control.get('password')) === null || _a === void 0 ? void 0 : _a.value; // get password from our password form control
1837
- // compare is the password match
1838
- if ((password && !confirmControl.value) || (confirmControl.value && password !== confirmControl.value)) {
1839
- // if they don't match, set an error in our confirmPassword form control
1840
- confirmControl === null || confirmControl === void 0 ? void 0 : confirmControl.setErrors({ noPasswordMatch: true });
1841
- confirmControl === null || confirmControl === void 0 ? void 0 : confirmControl.markAsTouched();
1842
- return control;
1843
- }
1844
- if (password) {
1845
- confirmControl === null || confirmControl === void 0 ? void 0 : confirmControl.markAsTouched();
1846
- }
1847
- return null;
1848
- }
1849
- /**
1850
- * Password validator
1851
- * @param minLength minimum password length - default 10
1852
- * @param hasNumber check whether the entered password has a number - default true
1853
- * @param hasCapitalCase check whether the entered password has upper case letter - default true
1854
- * @param hasSmallCase check whether the entered password has a lower-case letter - default true
1855
- * @param hasSpecialCharacters check whether the entered password has a special character - default true
1856
- */
1857
- static password(minLength = 10, hasNumber = true, hasCapitalCase = true, hasSmallCase = true, hasSpecialCharacters = true) {
1858
- return Validators.compose([
1859
- Validators.required,
1860
- ItValidators.customPattern(/\d/, { hasNumber: hasNumber }),
1861
- ItValidators.customPattern(/[A-Z]/, { hasCapitalCase: hasCapitalCase }),
1862
- ItValidators.customPattern(/[a-z]/, { hasSmallCase: hasSmallCase }),
1863
- ItValidators.customPattern(new RegExp(`[${ItValidators.SpecialCharacterPattern}]`), { hasSpecialCharacters: hasSpecialCharacters }),
1864
- Validators.minLength(minLength)
1865
- ]);
1866
- }
1867
- /**
1868
- * Email validator
1869
- */
1870
- static email() {
1871
- return [Validators.email, ItValidators.customPattern(EMAIL_REGEX, { invalidEmail: true })];
1872
- }
1873
- /**
1874
- * Phone number validator
1875
- */
1876
- static tel() {
1877
- return ItValidators.customPattern(PHONE_NUMBER_REGEX, { invalidTel: true });
1878
- }
1879
- /**
1880
- * URL validator
1881
- */
1882
- static url() {
1883
- return ItValidators.customPattern(URL_REGEX, { invalidUrl: true });
1884
- }
1885
- /**
1886
- * Italian Tax Code validator
1887
- */
1888
- static taxCode() {
1889
- return ItValidators.customPattern(ITALIAN_TAX_CODE_REGEX, { invalidTaxCode: true });
1890
- }
1891
- /**
1892
- * VAT Number validator
1893
- */
1894
- static vatNumber() {
1895
- return ItValidators.customPattern(VAT_NUMBER_REGEX, { invalidVatNumber: true });
1896
- }
1897
- /**
1898
- * Italian Postal Code validator (CAP)
1899
- */
1900
- static cap() {
1901
- return ItValidators.customPattern(CAP_REGEX, { invalidCap: true });
1902
- }
1903
- /**
1904
- * Check if value is a valid RegExp
1905
- */
1906
- static regExp() {
1907
- return (control) => {
1908
- try {
1909
- if (control === null || control === void 0 ? void 0 : control.value) {
1910
- new RegExp(control.value);
1911
- }
1912
- }
1913
- catch (e) {
1914
- return { invalidRegex: true };
1915
- }
1916
- return null;
1917
- };
1918
- }
1919
- }
1920
- ItValidators.SpecialCharacterPattern = '!@#$%&*_+=;:|,.';
1921
-
1922
- class InputComponent extends AbstractFormComponent {
1923
- constructor() {
1924
- super(...arguments);
1925
- /**
1926
- * The input type
1927
- * @default text
1928
- */
1929
- this.type = 'text';
1930
- /**
1931
- * The input placeholder
1932
- */
1933
- this.placeholder = '';
1934
- }
1935
- get isActiveLabel() {
1936
- const value = this.control.value;
1937
- if ((!!value && value !== 0) || value === 0 || !!this.placeholder) {
1938
- return true;
1939
- }
1940
- if (this.type === 'number' && (isTrueBooleanInput(this.currency) || isTrueBooleanInput(this.percentage))) {
1941
- return true;
1942
- }
1943
- return this.type === 'date' || this.type === 'time';
1944
- }
1945
- /**
1946
- * Check is readonly field
1947
- */
1948
- get isReadonly() {
1949
- return this.readonly === 'plaintext' || isTrueBooleanInput(this.readonly);
1950
- }
1951
- /**
1952
- * Return the invalid message string from TranslateService
1953
- */
1954
- get invalidMessage() {
1955
- if (this.hasError('min') && this.min) {
1956
- return this._translateService.get('it.errors.min-invalid', {
1957
- min: this.min
1958
- });
1959
- }
1960
- if (this.hasError('max') && this.max) {
1961
- return this._translateService.get('it.errors.max-invalid', {
1962
- max: this.max
1963
- });
1964
- }
1965
- if (this.hasError('minlength')) {
1966
- const error = this.getError('minlength');
1967
- return this._translateService.get('it.errors.min-length-invalid', { min: error.requiredLength });
1968
- }
1969
- if (this.hasError('maxlength')) {
1970
- const error = this.getError('maxlength');
1971
- return this._translateService.get('it.errors.max-length-invalid', { max: error.requiredLength });
1972
- }
1973
- if (this.hasError('email') || this.hasError('invalidEmail')) {
1974
- return this._translateService.get('it.errors.email-invalid');
1975
- }
1976
- if (this.hasError('invalidTel')) {
1977
- return this._translateService.get('it.errors.tel-invalid');
1978
- }
1979
- if (this.hasError('invalidUrl')) {
1980
- return this._translateService.get('it.errors.url-invalid');
1981
- }
1982
- if (this.hasError('invalidTaxCode')) {
1983
- return this._translateService.get('it.errors.tax-code-invalid');
1984
- }
1985
- if (this.hasError('invalidVatNumber')) {
1986
- return this._translateService.get('it.errors.vat-number-invalid');
1987
- }
1988
- if (this.hasError('invalidCap')) {
1989
- return this._translateService.get('it.errors.cap-invalid');
1990
- }
1991
- if (this.hasError('invalidRegex')) {
1992
- return this._translateService.get('it.errors.regex-invalid');
1993
- }
1994
- if (this.hasError('pattern')) {
1995
- const error = this.getError('pattern');
1996
- return this._translateService.get('it.errors.pattern-invalid', { pattern: error.requiredPattern });
1997
- }
1998
- return super.invalidMessage;
1999
- }
2000
- ngOnInit() {
2001
- super.ngOnInit();
2002
- const validators = [];
2003
- switch (this.type) {
2004
- case 'number':
2005
- if (isTrueBooleanInput(this.percentage)) {
2006
- this.min = this.min || 0;
2007
- this.max = this.max || 100;
2008
- }
2009
- // Dynamic min/max validators
2010
- validators.push((control) => this.min ? Validators.min(this.min)(control) : null);
2011
- validators.push((control) => this.max ? Validators.max(this.max)(control) : null);
2012
- break;
2013
- case 'email':
2014
- validators.push(ItValidators.email);
2015
- break;
2016
- case 'tel':
2017
- validators.push(ItValidators.tel);
2018
- break;
2019
- case 'url':
2020
- validators.push(ItValidators.url);
2021
- break;
2022
- }
2023
- this.addValidators(validators);
2024
- }
2025
- /**
2026
- * Increment or decrease the input number value of step
2027
- * @param decrease true to decrease value
2028
- */
2029
- incrementNumber(decrease = false) {
2030
- var _a;
2031
- if (this.type !== 'number') {
2032
- return;
2033
- }
2034
- const step = (this.step === 'any' ? 1 : ((_a = this.step) !== null && _a !== void 0 ? _a : 1));
2035
- let value = Number(this.control.value);
2036
- value = (isNaN(value) ? 0 : value) + (decrease ? -step : step);
2037
- value = Math.round(value * 1e12) / 1e12; // prevent js decimal error
2038
- if (this.min !== undefined && value < this.min) {
2039
- value = this.min;
2040
- }
2041
- else if (this.max !== undefined && value > this.max) {
2042
- value = this.max;
2043
- }
2044
- this.control.setValue(value);
2045
- }
2046
- }
2047
- InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2048
- InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: InputComponent, selector: "it-input[id]", inputs: { type: "type", placeholder: "placeholder", description: "description", readonly: "readonly", max: "max", min: "min", step: "step", currency: "currency", percentage: "percentage", adaptive: "adaptive" }, usesInheritance: true, ngImport: i0, template: "<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 [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 <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", styles: [".form-group label{z-index:1000}.form-group input:focus:not(.focus--mouse){box-shadow:inherit!important;border-color:inherit!important}.form-group .input-number button.input-number-add{top:0}.form-group .input-number button.input-number-sub{bottom:0}.form-group .input-group-text:empty{display:none}.form-group label.empty-prepend-label{left:auto!important;max-width:100%!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2049
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputComponent, decorators: [{
2050
- type: Component,
2051
- args: [{ selector: 'it-input[id]', template: "<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 [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 <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", styles: [".form-group label{z-index:1000}.form-group input:focus:not(.focus--mouse){box-shadow:inherit!important;border-color:inherit!important}.form-group .input-number button.input-number-add{top:0}.form-group .input-number button.input-number-sub{bottom:0}.form-group .input-group-text:empty{display:none}.form-group label.empty-prepend-label{left:auto!important;max-width:100%!important}\n"] }]
2052
- }], propDecorators: { type: [{
2053
- type: Input
2054
- }], placeholder: [{
2055
- type: Input
2056
- }], description: [{
2057
- type: Input
2058
- }], readonly: [{
2059
- type: Input
2060
- }], max: [{
2061
- type: Input
2062
- }], min: [{
2063
- type: Input
2064
- }], step: [{
2065
- type: Input
2066
- }], currency: [{
2067
- type: Input
2068
- }], percentage: [{
2069
- type: Input
2070
- }], adaptive: [{
2071
- type: Input
2072
- }] } });
2073
-
2074
- class PasswordInputComponent extends AbstractFormComponent {
2075
- constructor() {
2076
- super(...arguments);
2077
- /**
2078
- * The password minimum length
2079
- * @default 10
2080
- */
2081
- this.minLength = 10;
2082
- /**
2083
- * The password must contain at least one number
2084
- * @default true
2085
- */
2086
- this.useNumber = true;
2087
- /**
2088
- * The password must contain at least one uppercase character
2089
- * @default true
2090
- */
2091
- this.useCapitalCase = true;
2092
- /**
2093
- * The password must contain at least one lowercase character
2094
- * @default true
2095
- */
2096
- this.useSmallCase = true;
2097
- /**
2098
- * The password must contain at least one special character
2099
- * @default true
2100
- */
2101
- this.useSpecialCharacters = true;
2102
- /**
2103
- * The input placeholder
2104
- */
2105
- this.placeholder = '';
2106
- }
2107
- ngOnInit() {
2108
- super.ngOnInit();
2109
- this.addValidators(ItValidators.password(this.minLength, this.useNumber, this.useCapitalCase, this.useSmallCase, this.useSpecialCharacters));
2110
- }
2111
- ngAfterViewInit() {
2112
- super.ngAfterViewInit();
2113
- if (this.inputElement) {
2114
- this.inputPasswordBs = new InputPassword(this.inputElement.nativeElement, Object.assign(Object.assign({}, this.description && { enterPass: this.description }), { showText: this.isStrengthMeter, minimumLength: this.minLength }));
2115
- }
2116
- }
2117
- get isStrengthMeter() {
2118
- return isTrueBooleanInput(this.showStrengthMeter);
2119
- }
2120
- /**
2121
- * Return the invalid message string from TranslateService
2122
- */
2123
- get invalidMessage() {
2124
- if (this.hasError('noPasswordMatch')) {
2125
- return this._translateService.get('it.errors.password-no-match');
2126
- }
2127
- if (this.hasError('minlength')) {
2128
- return this._translateService.get('it.errors.password-min-length', {
2129
- minLength: this.minLength
2130
- });
2131
- }
2132
- if (this.hasError('hasNumber')) {
2133
- return this._translateService.get('it.errors.password-number');
2134
- }
2135
- if (this.hasError('hasCapitalCase')) {
2136
- return this._translateService.get('it.errors.password-capital-case');
2137
- }
2138
- if (this.hasError('hasSmallCase')) {
2139
- return this._translateService.get('it.errors.password-capital-case');
2140
- }
2141
- if (this.hasError('hasSpecialCharacters')) {
2142
- return this._translateService.get('it.errors.password-special-character');
2143
- }
2144
- return super.invalidMessage;
2145
- }
2146
- }
2147
- PasswordInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PasswordInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2148
- PasswordInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: PasswordInputComponent, selector: "it-password-input[id]", inputs: { minLength: "minLength", useNumber: "useNumber", useCapitalCase: "useCapitalCase", useSmallCase: "useSmallCase", useSpecialCharacters: "useSpecialCharacters", placeholder: "placeholder", description: "description", showStrengthMeter: "showStrengthMeter" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<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", styles: [".form-group input:focus:not(.focus--mouse){box-shadow:inherit!important;border-color:inherit!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: PasswordInputComponent, decorators: [{
2150
- type: Component,
2151
- args: [{ selector: 'it-password-input[id]', template: "<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", styles: [".form-group input:focus:not(.focus--mouse){box-shadow:inherit!important;border-color:inherit!important}\n"] }]
2152
- }], propDecorators: { minLength: [{
2153
- type: Input
2154
- }], useNumber: [{
2155
- type: Input
2156
- }], useCapitalCase: [{
2157
- type: Input
2158
- }], useSmallCase: [{
2159
- type: Input
2160
- }], useSpecialCharacters: [{
2161
- type: Input
2162
- }], placeholder: [{
2163
- type: Input
2164
- }], description: [{
2165
- type: Input
2166
- }], showStrengthMeter: [{
2167
- type: Input
2168
- }], inputElement: [{
2169
- type: ViewChild,
2170
- args: ['input']
2171
- }] } });
2172
-
2173
- class RadioButtonComponent extends AbstractFormComponent {
2174
- constructor() {
2175
- super(...arguments);
2176
- /**
2177
- * If show radio inline
2178
- * @default false
2179
- */
2180
- this.inline = false;
2181
- /**
2182
- * If is radio group
2183
- * @default false
2184
- */
2185
- this.group = false;
2186
- }
2187
- get isInline() {
2188
- return isTrueBooleanInput(this.inline);
2189
- }
2190
- get isGroup() {
2191
- return isTrueBooleanInput(this.group);
2192
- }
2193
- get name() {
2194
- var _a, _b;
2195
- return ((_b = (_a = this._ngControl) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toString()) || '';
2196
- }
2197
- ngOnInit() {
2198
- super.ngOnInit();
2199
- if (this.control.value || !this.value || isFalseBooleanInput(this.checked)) {
2200
- return;
2201
- }
2202
- this.writeValue(this.value);
2203
- return this.onChange(this.value);
2204
- }
2205
- }
2206
- RadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RadioButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2207
- RadioButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: RadioButtonComponent, selector: "it-radio-button[id][label][value]", inputs: { value: "value", inline: "inline", group: "group", checked: "checked" }, usesInheritance: true, ngImport: i0, template: "<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\">{{label}}</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><ng-content select=\"[error]\"></ng-content></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><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RadioButtonComponent, decorators: [{
2209
- type: Component,
2210
- args: [{ selector: 'it-radio-button[id][label][value]', template: "<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\">{{label}}</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><ng-content select=\"[error]\"></ng-content></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><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</ng-container>\n" }]
2211
- }], propDecorators: { value: [{
2212
- type: Input
2213
- }], inline: [{
2214
- type: Input
2215
- }], group: [{
2216
- type: Input
2217
- }], checked: [{
2218
- type: Input
2219
- }] } });
2220
-
2221
- class SelectComponent extends AbstractFormComponent {
2222
- ngOnInit() {
2223
- var _a;
2224
- super.ngOnInit();
2225
- if (this.control.value) {
2226
- return;
2227
- }
2228
- const selectedOption = this.options.find(this.optionIsSelected);
2229
- if (selectedOption) {
2230
- this.writeValue(selectedOption.value);
2231
- return this.onChange(selectedOption.value);
2232
- }
2233
- const selectedGroupOption = (_a = this.groups) === null || _a === void 0 ? void 0 : _a.flatMap(g => g.options).find(this.optionIsSelected);
2234
- if (selectedGroupOption) {
2235
- this.writeValue(selectedGroupOption.value);
2236
- this.onChange(selectedGroupOption.value);
2237
- }
2238
- }
2239
- /**
2240
- * Check if the option is selected
2241
- * @param option the option
2242
- */
2243
- optionIsSelected(option) {
2244
- if (option.selected === true) {
2245
- return true;
2246
- }
2247
- if (typeof option.selected === 'function') {
2248
- return option.selected(this.control.value);
2249
- }
2250
- return false;
2251
- }
2252
- /**
2253
- * Check if the option is disabled
2254
- * @param option the option
2255
- */
2256
- optionIsDisabled(option) {
2257
- if (option.disabled === true) {
2258
- return true;
2259
- }
2260
- if (typeof option.disabled === 'function') {
2261
- return option.disabled(this.control.value);
2262
- }
2263
- return false;
2264
- }
2265
- }
2266
- SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2267
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SelectComponent, selector: "it-select[id][options]", inputs: { options: "options", groups: "groups", description: "description" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".select-wrapper{margin-bottom:1.7rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SelectComponent, decorators: [{
2269
- type: Component,
2270
- args: [{ selector: 'it-select[id][options]', template: "<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", styles: [".select-wrapper{margin-bottom:1.7rem}\n"] }]
2271
- }], propDecorators: { options: [{
2272
- type: Input
2273
- }], groups: [{
2274
- type: Input
2275
- }], description: [{
2276
- type: Input
2277
- }] } });
2278
-
2279
- class TextareaComponent extends AbstractFormComponent {
2280
- constructor() {
2281
- super(...arguments);
2282
- /**
2283
- * Textarea Rows
2284
- * @default 3
2285
- */
2286
- this.rows = 3;
2287
- /**
2288
- * The textarea placeholder
2289
- */
2290
- this.placeholder = '';
2291
- }
2292
- /**
2293
- * Return the invalid message string from TranslateService
2294
- */
2295
- get invalidMessage() {
2296
- if (this.control.hasError('maxlength')) {
2297
- const error = this.getError('maxlength');
2298
- return this._translateService.get('it.errors.max-length-invalid', { max: error.requiredLength });
2299
- }
2300
- if (this.control.hasError('pattern')) {
2301
- const error = this.getError('pattern');
2302
- return this._translateService.get('it.errors.pattern-invalid', { pattern: error.requiredPattern });
2303
- }
2304
- return super.invalidMessage;
2305
- }
2306
- }
2307
- TextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2308
- TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TextareaComponent, selector: "it-textarea[id]", inputs: { rows: "rows", placeholder: "placeholder", description: "description" }, usesInheritance: true, ngImport: i0, template: "<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", styles: ["textarea.is-invalid{border-color:#d9364f}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TextareaComponent, decorators: [{
2310
- type: Component,
2311
- args: [{ selector: 'it-textarea[id]', template: "<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", styles: ["textarea.is-invalid{border-color:#d9364f}\n"] }]
2312
- }], propDecorators: { rows: [{
2313
- type: Input
2314
- }], placeholder: [{
2315
- type: Input
2316
- }], description: [{
2317
- type: Input
2318
- }] } });
2319
-
2320
- class FileUtils {
2321
- /**
2322
- * Return the file size string
2323
- * @param file the file
2324
- * @param decimals decimal to show
2325
- */
2326
- static getFileSizeString(file, decimals = 2) {
2327
- const bytes = file.size;
2328
- if (!+bytes) {
2329
- return '0 Bytes';
2330
- }
2331
- const k = 1024;
2332
- const dm = decimals < 0 ? 0 : decimals;
2333
- const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
2334
- const i = Math.floor(Math.log(bytes) / Math.log(k));
2335
- return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
2336
- }
2337
- /**
2338
- * Convert a file to base64 string
2339
- * @param file the base64 string
2340
- */
2341
- static fileToBase64(file) {
2342
- const reader = new FileReader();
2343
- reader.readAsDataURL(file);
2344
- return new Observable(observer => {
2345
- reader.onload = (e) => {
2346
- const target = e.target;
2347
- if (!target || !target.result || target.result instanceof ArrayBuffer) {
2348
- return observer.error('Error on parse');
2349
- }
2350
- observer.next(target.result);
2351
- observer.complete();
2352
- };
2353
- reader.onerror = error => {
2354
- observer.error(error);
2355
- };
2356
- });
2357
- }
2358
- /**
2359
- * Convert base64 to Blob
2360
- * @param base64 the base64 string
2361
- * @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')
2362
- */
2363
- static base64ToBlob(base64, mimeType) {
2364
- const byteString = window.atob(base64);
2365
- const arrayBuffer = new ArrayBuffer(byteString.length);
2366
- const int8Array = new Uint8Array(arrayBuffer);
2367
- for (let i = 0; i < byteString.length; i++) {
2368
- int8Array[i] = byteString.charCodeAt(i);
2369
- }
2370
- return new Blob([int8Array], { type: mimeType });
2371
- }
2372
- /**
2373
- * Convert base64 to File
2374
- * @param base64 the base64 string
2375
- * @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')
2376
- * @param filename the file name
2377
- */
2378
- static base64ToFile(base64, mimeType, filename) {
2379
- const fileBlob = FileUtils.base64ToBlob(base64, mimeType);
2380
- return new File([fileBlob], filename, { type: mimeType });
2381
- }
2382
- }
2383
-
2384
- class UploadDragDropComponent extends AbstractComponent {
2385
- constructor() {
2386
- super(...arguments);
2387
- /**
2388
- * The accepted file type to upload <br>
2389
- * 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
2390
- * @example application/pdf,image/png
2391
- * @default *
2392
- */
2393
- this.accept = '*';
2394
- /**
2395
- * Fired when file start to upload
2396
- */
2397
- this.fileStartUpload = new EventEmitter();
2398
- this.isDragover = false;
2399
- this.isLoading = false;
2400
- this.isSuccess = false;
2401
- }
2402
- ngAfterViewInit() {
2403
- super.ngAfterViewInit();
2404
- if (this.donutElement) {
2405
- this.donut = ProgressDonut.getOrCreateInstance(this.donutElement.nativeElement);
2406
- }
2407
- }
2408
- // Dragover listener
2409
- onDragOver(evt) {
2410
- evt.preventDefault();
2411
- evt.stopPropagation();
2412
- this.isDragover = !this.isLoading;
2413
- }
2414
- // Dragleave listener
2415
- onDragLeave(evt) {
2416
- evt.preventDefault();
2417
- evt.stopPropagation();
2418
- this.isDragover = false;
2419
- }
2420
- // Drop leave listener
2421
- onDrop(evt) {
2422
- var _a;
2423
- evt.preventDefault();
2424
- evt.stopPropagation();
2425
- this.isDragover = false;
2426
- const files = (_a = evt.dataTransfer) === null || _a === void 0 ? void 0 : _a.files;
2427
- if (this.isLoading || !(files === null || files === void 0 ? void 0 : files.length)) {
2428
- return;
2429
- }
2430
- this.start(files[0]);
2431
- }
2432
- /**
2433
- * On load file from input
2434
- * @param event
2435
- */
2436
- onLoadFile(event) {
2437
- var _a;
2438
- const files = (_a = event.target) === null || _a === void 0 ? void 0 : _a.files;
2439
- if (!(files === null || files === void 0 ? void 0 : files.length)) {
2440
- return;
2441
- }
2442
- this.start(files[0]);
2443
- }
2444
- /**
2445
- * Start the upload file
2446
- * @param file
2447
- */
2448
- start(file) {
2449
- var _a, _b;
2450
- if (this.accept !== '*' && !this.accept.includes(file.type)) {
2451
- return;
2452
- }
2453
- (_a = this.donut) === null || _a === void 0 ? void 0 : _a.set(0);
2454
- this.isLoading = true;
2455
- const splitName = file.name.split('.');
2456
- this.filename = splitName[0];
2457
- this.extension = (_b = splitName[1]) === null || _b === void 0 ? void 0 : _b.toUpperCase();
2458
- this.fileSize = FileUtils.getFileSizeString(file);
2459
- this.fileStartUpload.emit(file);
2460
- }
2461
- /**
2462
- * Percentage of upload
2463
- * @param value the percentage
2464
- */
2465
- progress(value) {
2466
- var _a;
2467
- if (value >= 100) {
2468
- this.success();
2469
- }
2470
- else {
2471
- (_a = this.donut) === null || _a === void 0 ? void 0 : _a.set(((value < 0) ? 0 : value) / 100);
2472
- }
2473
- }
2474
- /**
2475
- * Upload success
2476
- */
2477
- success() {
2478
- this.isLoading = false;
2479
- this.isSuccess = true;
2480
- }
2481
- /**
2482
- * Reset file uploader
2483
- */
2484
- reset() {
2485
- var _a;
2486
- this.isLoading = false;
2487
- this.isSuccess = false;
2488
- this.filename = this.extension = this.fileSize = undefined;
2489
- (_a = this.donut) === null || _a === void 0 ? void 0 : _a.set(0);
2490
- }
2491
- }
2492
- UploadDragDropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadDragDropComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2493
- UploadDragDropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadDragDropComponent, selector: "it-upload-drag-drop[id]", inputs: { accept: "accept" }, outputs: { fileStartUpload: "fileStartUpload" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, viewQueries: [{ propertyName: "donutElement", first: true, predicate: ["donutElement"], descendants: true }], exportAs: ["itUploadDragDrop"], usesInheritance: true, ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
2494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadDragDropComponent, decorators: [{
2495
- type: Component,
2496
- args: [{ selector: 'it-upload-drag-drop[id]', exportAs: 'itUploadDragDrop', template: "<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" }]
2497
- }], propDecorators: { accept: [{
2498
- type: Input
2499
- }], fileStartUpload: [{
2500
- type: Output
2501
- }], donutElement: [{
2502
- type: ViewChild,
2503
- args: ['donutElement']
2504
- }], onDragOver: [{
2505
- type: HostListener,
2506
- args: ['dragover', ['$event']]
2507
- }], onDragLeave: [{
2508
- type: HostListener,
2509
- args: ['dragleave', ['$event']]
2510
- }], onDrop: [{
2511
- type: HostListener,
2512
- args: ['drop', ['$event']]
2513
- }] } });
2514
-
2515
- class UploadFileListComponent extends AbstractComponent {
2516
- constructor() {
2517
- super(...arguments);
2518
- /**
2519
- * The accepted file type to upload
2520
- * @default *
2521
- */
2522
- this.accept = "*";
2523
- /**
2524
- * If upload multiple files
2525
- */
2526
- this.multiple = true;
2527
- /**
2528
- * Fired when upload new files
2529
- */
2530
- this.uploadFiles = new EventEmitter();
2531
- /**
2532
- * Fired on delete item button click
2533
- */
2534
- this.deleteItem = new EventEmitter();
2535
- /**
2536
- * Cache to preview image
2537
- */
2538
- this.previewImages = new Map();
2539
- }
2540
- ngOnInit() {
2541
- if (this.isImageList && this.accept === '*') {
2542
- this.accept = 'image/*';
2543
- }
2544
- }
2545
- ngOnChanges(changes) {
2546
- if (changes['fileList'] && this.isImageList) {
2547
- this.fileList.forEach(item => {
2548
- FileUtils.fileToBase64(item.file).pipe(take(1)).subscribe(base64 => {
2549
- this.previewImages.set(item.id, base64);
2550
- });
2551
- });
2552
- }
2553
- }
2554
- get isMultipleInput() {
2555
- return isTrueBooleanInput(this.multiple);
2556
- }
2557
- get isImageList() {
2558
- return isTrueBooleanInput(this.images);
2559
- }
2560
- get isHideLoadButton() {
2561
- return isTrueBooleanInput(this.hideLoadButton);
2562
- }
2563
- /**
2564
- * On load file from input
2565
- * @param event
2566
- */
2567
- onLoadFiles(event) {
2568
- var _a;
2569
- const files = (_a = event.target) === null || _a === void 0 ? void 0 : _a.files;
2570
- if (!files || !files.length) {
2571
- return;
2572
- }
2573
- this.uploadFiles.emit(files);
2574
- }
2575
- /**
2576
- * Get the file size string
2577
- * @param file
2578
- */
2579
- getFileSize(file) {
2580
- return FileUtils.getFileSizeString(file);
2581
- }
2582
- }
2583
- UploadFileListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadFileListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2584
- UploadFileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadFileListComponent, selector: "it-upload-file-list[id][fileList]", inputs: { fileList: "fileList", accept: "accept", multiple: "multiple", images: "images", hideLoadButton: "hideLoadButton" }, outputs: { uploadFiles: "uploadFiles", deleteItem: "deleteItem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<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 ? '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)\" (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 disabled *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\">\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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }, { kind: "directive", type: TooltipDirective, selector: "[itTooltip]", inputs: ["itTooltip", "tooltipPlacement", "tooltipHtml"], outputs: ["onShow", "onShown", "onHide", "onHidden", "onInserted"], exportAs: ["itTooltip"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
2585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadFileListComponent, decorators: [{
2586
- type: Component,
2587
- args: [{ selector: 'it-upload-file-list[id][fileList]', template: "<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 ? '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)\" (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 disabled *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\">\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" }]
2588
- }], propDecorators: { fileList: [{
2589
- type: Input
2590
- }], accept: [{
2591
- type: Input
2592
- }], multiple: [{
2593
- type: Input
2594
- }], images: [{
2595
- type: Input
2596
- }], hideLoadButton: [{
2597
- type: Input
2598
- }], uploadFiles: [{
2599
- type: Output
2600
- }], deleteItem: [{
2601
- type: Output
2602
- }] } });
2603
-
2604
- class BackButtonComponent {
2605
- constructor(_location) {
2606
- this._location = _location;
2607
- /**
2608
- * Back button style
2609
- * - <b>link</b>: use a link with icon and text
2610
- * - <b>button</b>: use a button with icon and text
2611
- * @default button
2612
- */
2613
- this.buttonStyle = 'button';
2614
- /**
2615
- * Button direction
2616
- * - <b>left</b>: Back direction
2617
- * - <b>up</b>: Upper direction
2618
- * @default left
2619
- */
2620
- this.direction = 'left';
2621
- /**
2622
- * Show/Hide icon
2623
- * @default true
2624
- */
2625
- this.showIcon = true;
2626
- /**
2627
- * Show/Hide text
2628
- * @default true
2629
- */
2630
- this.showText = true;
2631
- }
2632
- get isShowIcon() {
2633
- return isTrueBooleanInput(this.showIcon);
2634
- }
2635
- get isShowText() {
2636
- return isTrueBooleanInput(this.showText);
2637
- }
2638
- /**
2639
- * Go back function
2640
- */
2641
- goBack() {
2642
- if (this.backFn) {
2643
- return this.backFn(this._location);
2644
- }
2645
- this._location.back();
2646
- }
2647
- }
2648
- BackButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BackButtonComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
2649
- BackButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BackButtonComponent, selector: "it-back-button", inputs: { buttonStyle: "buttonStyle", direction: "direction", showIcon: "showIcon", showText: "showText", backFn: "backFn" }, exportAs: ["itBackButton"], ngImport: i0, template: "<a *ngIf=\"buttonStyle === 'link'\" class=\"go-back\" data-bs-toggle=\"historyback\" (click)=\"goBack()\" [routerLink]=\"null\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<button *ngIf=\"buttonStyle === 'button'\"\n itButton=\"primary\"\n class=\"go-back\"\n data-bs-toggle=\"historyback\"\n (click)=\"goBack()\">\n\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", styles: ["a.go-back{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ButtonDirective, selector: "[itButton]", inputs: ["itButton", "size", "block", "disabled"], exportAs: ["itButton"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
2650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BackButtonComponent, decorators: [{
2651
- type: Component,
2652
- args: [{ selector: 'it-back-button', exportAs: 'itBackButton', template: "<a *ngIf=\"buttonStyle === 'link'\" class=\"go-back\" data-bs-toggle=\"historyback\" (click)=\"goBack()\" [routerLink]=\"null\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<button *ngIf=\"buttonStyle === 'button'\"\n itButton=\"primary\"\n class=\"go-back\"\n data-bs-toggle=\"historyback\"\n (click)=\"goBack()\">\n\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", styles: ["a.go-back{cursor:pointer}\n"] }]
2653
- }], ctorParameters: function () { return [{ type: i1.Location }]; }, propDecorators: { buttonStyle: [{
2654
- type: Input
2655
- }], direction: [{
2656
- type: Input
2657
- }], showIcon: [{
2658
- type: Input
2659
- }], showText: [{
2660
- type: Input
2661
- }], backFn: [{
2662
- type: Input
2663
- }] } });
2664
-
2665
- class BackToTopComponent extends AbstractComponent {
2666
- constructor() {
2667
- super(...arguments);
2668
- /**
2669
- * The back to top ID
2670
- * @default 'back-to-top-button'
2671
- */
2672
- this.id = 'back-to-top-button';
2673
- }
2674
- get isSmall() {
2675
- return isTrueBooleanInput(this.small);
2676
- }
2677
- get isShadow() {
2678
- return isTrueBooleanInput(this.shadow);
2679
- }
2680
- get isDark() {
2681
- return isTrueBooleanInput(this.dark);
2682
- }
2683
- }
2684
- BackToTopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BackToTopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2685
- BackToTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BackToTopComponent, selector: "it-back-to-top", inputs: { id: "id", small: "small", shadow: "shadow", dark: "dark" }, usesInheritance: true, ngImport: i0, template: "<a [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n data-bs-toggle=\"backtotop\"\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", styles: [""], dependencies: [{ kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }] });
2686
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BackToTopComponent, decorators: [{
2687
- type: Component,
2688
- args: [{ selector: 'it-back-to-top', template: "<a [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n data-bs-toggle=\"backtotop\"\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" }]
2689
- }], propDecorators: { id: [{
2690
- type: Input
2691
- }], small: [{
2692
- type: Input
2693
- }], shadow: [{
2694
- type: Input
2695
- }], dark: [{
2696
- type: Input
2697
- }] } });
2698
-
2699
- class BreadcrumbItemComponent extends LinkComponent {
2700
- get isActive() {
2701
- return isTrueBooleanInput(this.active);
2702
- }
2703
- }
2704
- BreadcrumbItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BreadcrumbItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2705
- BreadcrumbItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BreadcrumbItemComponent, selector: "it-breadcrumb-item", inputs: { active: "active", iconName: "iconName" }, viewQueries: [{ propertyName: "htmlContent", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", styles: [""] });
2706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BreadcrumbItemComponent, decorators: [{
2707
- type: Component,
2708
- args: [{ selector: 'it-breadcrumb-item', template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }]
2709
- }], propDecorators: { active: [{
2710
- type: Input
2711
- }], iconName: [{
2712
- type: Input
2713
- }], htmlContent: [{
2714
- type: ViewChild,
2715
- args: [TemplateRef]
2716
- }] } });
2717
-
2718
- class BreadcrumbComponent {
2719
- constructor(_changeDetectorRef) {
2720
- this._changeDetectorRef = _changeDetectorRef;
2721
- /**
2722
- * The character to use as separator
2723
- * @default /
2724
- */
2725
- this.separator = '/';
2726
- }
2727
- get isDark() {
2728
- return isTrueBooleanInput(this.dark);
2729
- }
2730
- ngAfterViewInit() {
2731
- this._changeDetectorRef.detectChanges();
2732
- }
2733
- /**
2734
- * Check if index is last item
2735
- * @param index
2736
- */
2737
- isLastItem(index) {
2738
- return !!this.items && index >= (this.items.length - 1);
2739
- }
2740
- }
2741
- BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2742
- BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: BreadcrumbComponent, selector: "it-breadcrumb", inputs: { separator: "separator", dark: "dark" }, queries: [{ propertyName: "items", predicate: BreadcrumbItemComponent }], ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LinkComponent, selector: "it-link", inputs: ["href", "externalLink", "disabled", "class"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
2743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: BreadcrumbComponent, decorators: [{
2744
- type: Component,
2745
- args: [{ selector: 'it-breadcrumb', template: "<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" }]
2746
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { separator: [{
2747
- type: Input
2748
- }], dark: [{
2749
- type: Input
2750
- }], items: [{
2751
- type: ContentChildren,
2752
- args: [BreadcrumbItemComponent]
2753
- }] } });
2754
-
2755
- class HeaderComponent extends AbstractComponent {
2756
- /**
2757
- * TODO: complete header
2758
- * @param _renderer
2759
- * @param _elementRef
2760
- */
2761
- constructor(_renderer, _elementRef) {
2762
- super(_renderer, _elementRef);
2763
- this._renderer = _renderer;
2764
- this._elementRef = _elementRef;
2765
- this.showSlim = true;
2766
- this.loginStyle = 'full';
2767
- this.smallHeader = true;
2768
- this.showSearch = true;
2769
- this.loginClick = new EventEmitter();
2770
- this.searchClick = new EventEmitter();
2771
- }
2772
- get isLight() {
2773
- return isTrueBooleanInput(this.light);
2774
- }
2775
- get isShowSlim() {
2776
- return isTrueBooleanInput(this.showSlim);
2777
- }
2778
- get isSmallHeader() {
2779
- return isTrueBooleanInput(this.smallHeader);
2780
- }
2781
- get isShowSearch() {
2782
- return isTrueBooleanInput(this.showSearch);
2783
- }
2784
- }
2785
- HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2786
- HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: HeaderComponent, selector: "it-header", inputs: { light: "light", showSlim: "showSlim", slimTitle: "slimTitle", loginStyle: "loginStyle", smallHeader: "smallHeader", showSearch: "showSearch" }, outputs: { loginClick: "loginClick", searchClick: "searchClick" }, usesInheritance: true, ngImport: i0, template: "<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", styles: [".nav-mobile:has(.link-list-wrapper:empty){display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ButtonDirective, selector: "[itButton]", inputs: ["itButton", "size", "block", "disabled"], exportAs: ["itButton"] }, { kind: "component", type: IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
2787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, decorators: [{
2788
- type: Component,
2789
- args: [{ selector: 'it-header', template: "<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", styles: [".nav-mobile:has(.link-list-wrapper:empty){display:none}\n"] }]
2790
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { light: [{
2791
- type: Input
2792
- }], showSlim: [{
2793
- type: Input
2794
- }], slimTitle: [{
2795
- type: Input
2796
- }], loginStyle: [{
2797
- type: Input
2798
- }], smallHeader: [{
2799
- type: Input
2800
- }], showSearch: [{
2801
- type: Input
2802
- }], loginClick: [{
2803
- type: Output
2804
- }], searchClick: [{
2805
- type: Output
2806
- }] } });
2807
-
2808
- class NotFoundPageComponent {
2809
- }
2810
- NotFoundPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotFoundPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2811
- NotFoundPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotFoundPageComponent, selector: "it-not-found-page", ngImport: i0, template: "<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", styles: [""], dependencies: [{ kind: "component", type: BackButtonComponent, selector: "it-back-button", inputs: ["buttonStyle", "direction", "showIcon", "showText", "backFn"], exportAs: ["itBackButton"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
2812
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotFoundPageComponent, decorators: [{
2813
- type: Component,
2814
- args: [{ selector: 'it-not-found-page', template: "<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" }]
2815
- }] });
2816
-
2817
- class ChipComponent {
2818
- constructor() {
2819
- this._label = '';
2820
- this._showCloseButton = false;
2821
- this._size = '';
2822
- this._color = undefined;
2823
- this._disabled = false;
2824
- this._icon = undefined;
2825
- this._avatar = undefined;
2826
- this._altAvatar = '';
2827
- /**
2828
- * Evento emesso al click sul bottone di chiusura
2829
- */
2830
- this.close = new EventEmitter();
2831
- this.iconClose = 'close';
2832
- }
2833
- /**
2834
- * Indica la label
2835
- */
2836
- set label(value) { this._label = value; }
2837
- get label() { return this._label; }
2838
- /**
2839
- * Indica se mostrate il pulante di chisura
2840
- */
2841
- set showCloseButton(value) { this._showCloseButton = value; }
2842
- get showCloseButton() { return this._showCloseButton; }
2843
- /**
2844
- * Indica il size
2845
- */
2846
- set size(value) { this._size = value; }
2847
- get size() { return this._size; }
2848
- /**
2849
- * Indica il colore della chip
2850
- */
2851
- set color(value) { this._color = value; }
2852
- get color() { return this._color; }
2853
- /**
2854
- * Indica se la chip è disabilitata
2855
- */
2856
- set disabled(value) { this._disabled = value; }
2857
- get disabled() { return this._disabled; }
2858
- /**
2859
- * Indica il nome dell'icona, se valorizzata viene mostrata
2860
- */
2861
- set icon(value) { this._icon = value; }
2862
- get icon() { return this._icon; }
2863
- /**
2864
- * Indica l'url dell'avatar, se valorizzata viene mostrata
2865
- */
2866
- set avatar(value) { this._avatar = value; }
2867
- get avatar() { return this._avatar; }
2868
- /**
2869
- * Indica il valore da aggiungere al parametro alt, di default ''
2870
- */
2871
- set altAvatar(value) { this._altAvatar = value; }
2872
- get altAvatar() { return this._altAvatar; }
2873
- clickToClose() {
2874
- this.close.emit();
2875
- }
2876
- }
2877
- ChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2878
- ChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ChipComponent, selector: "it-chip", inputs: { label: "label", showCloseButton: "showCloseButton", size: "size", color: "color", disabled: "disabled", icon: "icon", avatar: "avatar", altAvatar: "altAvatar" }, outputs: { close: "close" }, ngImport: i0, template: "<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>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2879
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChipComponent, decorators: [{
2880
- type: Component,
2881
- args: [{ selector: 'it-chip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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>" }]
2882
- }], propDecorators: { label: [{
2883
- type: Input
2884
- }], showCloseButton: [{
2885
- type: Input
2886
- }], size: [{
2887
- type: Input
2888
- }], color: [{
2889
- type: Input
2890
- }], disabled: [{
2891
- type: Input
2892
- }], icon: [{
2893
- type: Input
2894
- }], avatar: [{
2895
- type: Input
2896
- }], altAvatar: [{
2897
- type: Input
2898
- }], close: [{
2899
- type: Output
2900
- }] } });
2901
-
2902
- class ForwardDirective {
2903
- constructor(document) {
2904
- this.document = document;
2905
- this._itForward = undefined;
2906
- }
2907
- /**
2908
- * Indica, se HTMLElement, l'elemento a cui navigare, o se stringa, il selettore che selezionerà l'elemento a cui navigare.
2909
- */
2910
- set itForward(value) { this._itForward = value; }
2911
- get itForward() { return this._itForward; }
2912
- onClick(event) {
2913
- var _a, _b;
2914
- event.preventDefault();
2915
- if (this.itForward) {
2916
- if (typeof this.itForward === 'string') {
2917
- (_b = (_a = this.document) === null || _a === void 0 ? void 0 : _a.querySelector(this.itForward)) === null || _b === void 0 ? void 0 : _b.scrollIntoView({
2918
- behavior: 'smooth',
2919
- block: 'start',
2920
- inline: "nearest"
2921
- });
2922
- }
2923
- else if (this.itForward instanceof HTMLElement) {
2924
- this.itForward.scrollIntoView({
2925
- behavior: 'smooth',
2926
- block: 'start',
2927
- inline: "nearest"
2928
- });
2929
- }
2930
- }
2931
- }
2932
- }
2933
- ForwardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ForwardDirective, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
2934
- ForwardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ForwardDirective, selector: "[itForward]", inputs: { itForward: "itForward" }, host: { listeners: { "click": "onClick($event)" }, classAttribute: "forward" }, ngImport: i0 });
2935
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ForwardDirective, decorators: [{
2936
- type: Directive,
2937
- args: [{
2938
- selector: '[itForward]',
2939
- host: { 'class': 'forward' }
2940
- }]
2941
- }], ctorParameters: function () {
2942
- return [{ type: Document, decorators: [{
2943
- type: Inject,
2944
- args: [DOCUMENT]
2945
- }] }];
2946
- }, propDecorators: { itForward: [{
2947
- type: Input
2948
- }], onClick: [{
2949
- type: HostListener,
2950
- args: ['click', ['$event']]
2951
- }] } });
2952
-
2953
- class DimmerComponent {
2954
- constructor(elementRef) {
2955
- this.elementRef = elementRef;
2956
- this._active = false;
2957
- this._color = '';
2958
- }
2959
- /**
2960
- * Dimmer status
2961
- * @default false
2962
- */
2963
- set active(value) { this._active = value; }
2964
- ;
2965
- get active() { return this._active; }
2966
- /**
2967
- * Colore del dimmer
2968
- * @default ''
2969
- */
2970
- set color(value) { this._color = value; }
2971
- ;
2972
- get color() { return this._color; }
2973
- ngOnInit() {
2974
- var _a, _b, _c, _d;
2975
- (_d = (_c = (_b = (_a = this.elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.parentElement) === null || _c === void 0 ? void 0 : _c.classList) === null || _d === void 0 ? void 0 : _d.add('dimmable');
2976
- }
2977
- }
2978
- DimmerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DimmerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2979
- DimmerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DimmerComponent, selector: "it-dimmer", inputs: { active: "active", color: "color" }, ngImport: i0, template: "<div class=\"dimmer\" *ngIf=\"active\" @fade [ngClass]=\"[color]\">\n <div class=\"dimmer-inner\">\n <ng-content></ng-content>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
2980
- trigger('fade', [
2981
- transition(':enter', [
2982
- style({ opacity: 0 }),
2983
- animate('150ms', style({ opacity: 0.92 })),
2984
- ]),
2985
- transition(':leave', [
2986
- animate('150ms', style({ opacity: 0 })),
2987
- ]),
2988
- ])
2989
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2990
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DimmerComponent, decorators: [{
2991
- type: Component,
2992
- args: [{ selector: 'it-dimmer', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
2993
- trigger('fade', [
2994
- transition(':enter', [
2995
- style({ opacity: 0 }),
2996
- animate('150ms', style({ opacity: 0.92 })),
2997
- ]),
2998
- transition(':leave', [
2999
- animate('150ms', style({ opacity: 0 })),
3000
- ]),
3001
- ])
3002
- ], template: "<div class=\"dimmer\" *ngIf=\"active\" @fade [ngClass]=\"[color]\">\n <div class=\"dimmer-inner\">\n <ng-content></ng-content>\n </div>\n</div>" }]
3003
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { active: [{
3004
- type: Input
3005
- }], color: [{
3006
- type: Input
3007
- }] } });
3008
-
3009
- class DimmerButtonsComponent {
3010
- constructor() {
3011
- this._hasOneButton = false;
3012
- }
3013
- /**
3014
- * Indica se abbiamo 1 solo bottone
3015
- * @default false
3016
- */
3017
- set hasOneButton(value) { this._hasOneButton = value; }
3018
- ;
3019
- get hasOneButton() { return this._hasOneButton; }
3020
- }
3021
- DimmerButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DimmerButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3022
- DimmerButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DimmerButtonsComponent, selector: "it-dimmer-buttons", inputs: { hasOneButton: "hasOneButton" }, ngImport: i0, template: "<div class=\"dimmer-buttons bg-dark\" [ngClass]=\"{'single-button': hasOneButton}\">\n <ng-content></ng-content>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3023
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DimmerButtonsComponent, decorators: [{
3024
- type: Component,
3025
- args: [{ selector: 'it-dimmer-buttons', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dimmer-buttons bg-dark\" [ngClass]=\"{'single-button': hasOneButton}\">\n <ng-content></ng-content>\n</div>" }]
3026
- }], propDecorators: { hasOneButton: [{
3027
- type: Input
3028
- }] } });
3029
-
3030
- class DimmerIconComponent {
3031
- }
3032
- DimmerIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DimmerIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3033
- DimmerIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DimmerIconComponent, selector: "it-dimmer-icon", ngImport: i0, template: "<div class=\"dimmer-icon\">\n <ng-content></ng-content>\n</div>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
3034
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DimmerIconComponent, decorators: [{
3035
- type: Component,
3036
- args: [{ selector: 'it-dimmer-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dimmer-icon\">\n <ng-content></ng-content>\n</div>" }]
3037
- }] });
3038
-
3039
- /**
3040
- * Core components
3041
- */
3042
- const core = [
3043
- AccordionComponent,
3044
- AlertComponent,
3045
- BadgeDirective,
3046
- ButtonDirective,
3047
- CalloutComponent,
3048
- CardComponent,
3049
- CarouselComponent,
3050
- CarouselItemComponent,
3051
- ChipComponent,
3052
- CollapseComponent,
3053
- DimmerButtonsComponent,
3054
- DimmerComponent,
3055
- DimmerIconComponent,
3056
- DropdownComponent,
3057
- DropdownItemComponent,
3058
- ForwardDirective,
3059
- LinkComponent,
3060
- ListComponent,
3061
- ListItemComponent,
3062
- ModalComponent,
3063
- NotificationsComponent,
3064
- PaginationComponent,
3065
- PopoverDirective,
3066
- ProgressBarComponent,
3067
- ProgressButtonComponent,
3068
- SpinnerComponent,
3069
- TabContainerComponent,
3070
- TabItemComponent,
3071
- TableComponent,
3072
- TooltipDirective
3073
- ];
3074
- /**
3075
- * Form components
3076
- */
3077
- const form = [
3078
- CheckboxComponent,
3079
- InputComponent,
3080
- PasswordInputComponent,
3081
- RadioButtonComponent,
3082
- SelectComponent,
3083
- TextareaComponent,
3084
- UploadDragDropComponent,
3085
- UploadFileListComponent
3086
- ];
3087
- /**
3088
- * Navigation Components
3089
- */
3090
- const navigation = [
3091
- BackButtonComponent,
3092
- BackToTopComponent,
3093
- BreadcrumbComponent,
3094
- BreadcrumbItemComponent,
3095
- HeaderComponent
3096
- ];
3097
- /**
3098
- * Utils components
3099
- */
3100
- const utils = [
3101
- IconComponent,
3102
- NotFoundPageComponent
3103
- ];
3104
- class ComponentsModule {
3105
- }
3106
- ComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3107
- ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ComponentsModule, declarations: [AbstractComponent,
3108
- AbstractFormComponent, AccordionComponent,
3109
- AlertComponent,
3110
- BadgeDirective,
3111
- ButtonDirective,
3112
- CalloutComponent,
3113
- CardComponent,
3114
- CarouselComponent,
3115
- CarouselItemComponent,
3116
- ChipComponent,
3117
- CollapseComponent,
3118
- DimmerButtonsComponent,
3119
- DimmerComponent,
3120
- DimmerIconComponent,
3121
- DropdownComponent,
3122
- DropdownItemComponent,
3123
- ForwardDirective,
3124
- LinkComponent,
3125
- ListComponent,
3126
- ListItemComponent,
3127
- ModalComponent,
3128
- NotificationsComponent,
3129
- PaginationComponent,
3130
- PopoverDirective,
3131
- ProgressBarComponent,
3132
- ProgressButtonComponent,
3133
- SpinnerComponent,
3134
- TabContainerComponent,
3135
- TabItemComponent,
3136
- TableComponent,
3137
- TooltipDirective, CheckboxComponent,
3138
- InputComponent,
3139
- PasswordInputComponent,
3140
- RadioButtonComponent,
3141
- SelectComponent,
3142
- TextareaComponent,
3143
- UploadDragDropComponent,
3144
- UploadFileListComponent, BackButtonComponent,
3145
- BackToTopComponent,
3146
- BreadcrumbComponent,
3147
- BreadcrumbItemComponent,
3148
- HeaderComponent, IconComponent,
3149
- NotFoundPageComponent], imports: [CommonModule,
3150
- TranslateModule,
3151
- ReactiveFormsModule,
3152
- NgIf,
3153
- NgForOf,
3154
- RouterLink], exports: [AccordionComponent,
3155
- AlertComponent,
3156
- BadgeDirective,
3157
- ButtonDirective,
3158
- CalloutComponent,
3159
- CardComponent,
3160
- CarouselComponent,
3161
- CarouselItemComponent,
3162
- ChipComponent,
3163
- CollapseComponent,
3164
- DimmerButtonsComponent,
3165
- DimmerComponent,
3166
- DimmerIconComponent,
3167
- DropdownComponent,
3168
- DropdownItemComponent,
3169
- ForwardDirective,
3170
- LinkComponent,
3171
- ListComponent,
3172
- ListItemComponent,
3173
- ModalComponent,
3174
- NotificationsComponent,
3175
- PaginationComponent,
3176
- PopoverDirective,
3177
- ProgressBarComponent,
3178
- ProgressButtonComponent,
3179
- SpinnerComponent,
3180
- TabContainerComponent,
3181
- TabItemComponent,
3182
- TableComponent,
3183
- TooltipDirective, CheckboxComponent,
3184
- InputComponent,
3185
- PasswordInputComponent,
3186
- RadioButtonComponent,
3187
- SelectComponent,
3188
- TextareaComponent,
3189
- UploadDragDropComponent,
3190
- UploadFileListComponent, BackButtonComponent,
3191
- BackToTopComponent,
3192
- BreadcrumbComponent,
3193
- BreadcrumbItemComponent,
3194
- HeaderComponent, IconComponent,
3195
- NotFoundPageComponent] });
3196
- ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ComponentsModule, imports: [CommonModule,
3197
- TranslateModule,
3198
- ReactiveFormsModule] });
3199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ComponentsModule, decorators: [{
3200
- type: NgModule,
3201
- args: [{
3202
- declarations: [
3203
- AbstractComponent,
3204
- AbstractFormComponent,
3205
- ...core,
3206
- ...form,
3207
- ...navigation,
3208
- ...utils
3209
- ],
3210
- imports: [
3211
- CommonModule,
3212
- TranslateModule,
3213
- ReactiveFormsModule,
3214
- NgIf,
3215
- NgForOf,
3216
- RouterLink
3217
- ],
3218
- exports: [
3219
- ...core,
3220
- ...form,
3221
- ...navigation,
3222
- ...utils
3223
- ]
3224
- }]
3225
- }] });
3226
-
3227
- class DesignAngularKitModule {
3228
- }
3229
- DesignAngularKitModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DesignAngularKitModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3230
- DesignAngularKitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: DesignAngularKitModule, imports: [ComponentsModule,
3231
- HttpClientModule, i2$1.TranslateModule], exports: [ComponentsModule] });
3232
- DesignAngularKitModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DesignAngularKitModule, imports: [ComponentsModule,
3233
- HttpClientModule,
3234
- TranslateModule.forChild({
3235
- loader: {
3236
- provide: TranslateLoader,
3237
- useFactory: (http) => new TranslateHttpLoader(http, '/bootstrap-italia/i18n/'),
3238
- deps: [HttpClient]
3239
- },
3240
- defaultLanguage: 'it'
3241
- }), ComponentsModule] });
3242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DesignAngularKitModule, decorators: [{
3243
- type: NgModule,
3244
- args: [{
3245
- declarations: [],
3246
- imports: [
3247
- ComponentsModule,
3248
- HttpClientModule,
3249
- TranslateModule.forChild({
3250
- loader: {
3251
- provide: TranslateLoader,
3252
- useFactory: (http) => new TranslateHttpLoader(http, '/bootstrap-italia/i18n/'),
3253
- deps: [HttpClient]
3254
- },
3255
- defaultLanguage: 'it'
3256
- })
3257
- ],
3258
- exports: [ComponentsModule]
3259
- }]
3260
- }] });
3261
-
3262
- /*
3263
- * Public API Surface of design-angular-kit
3264
- */
3265
-
3266
- /**
3267
- * Generated bundle index. Do not edit.
3268
- */
3269
-
3270
- export { AccordionComponent, AlertComponent, BackButtonComponent, BackToTopComponent, BadgeDirective, BreadcrumbComponent, BreadcrumbItemComponent, ButtonDirective, CAP_REGEX, CalloutComponent, CardComponent, CarouselComponent, CarouselItemComponent, CheckboxComponent, ChipComponent, CollapseComponent, ComponentsModule, DesignAngularKitModule, DimmerButtonsComponent, DimmerComponent, DimmerIconComponent, DropdownComponent, DropdownItemComponent, EMAIL_REGEX, FileUtils, ForwardDirective, HeaderComponent, ITALIAN_TAX_CODE_REGEX, IconComponent, InputComponent, ItValidators, LinkComponent, ListComponent, ListItemComponent, ModalComponent, NotFoundPageComponent, NotificationPosition, NotificationType, NotificationsComponent, NotificationsService, PHONE_NUMBER_REGEX, PaginationComponent, PasswordInputComponent, PopoverDirective, ProgressBarComponent, ProgressButtonComponent, RadioButtonComponent, SelectComponent, SpinnerComponent, TabContainerComponent, TabItemComponent, TableComponent, TextareaComponent, TooltipDirective, URL_REGEX, UploadDragDropComponent, UploadFileListComponent, VAT_NUMBER_REGEX };
3271
- //# sourceMappingURL=design-angular-kit.mjs.map