design-angular-kit 1.0.0-9 → 1.0.0-prerelease.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +212 -64
  2. package/assets/i18n/en.json +81 -12
  3. package/assets/i18n/it.json +80 -11
  4. package/esm2022/lib/abstracts/abstract-form.component.mjs +187 -0
  5. package/esm2022/lib/abstracts/abstract.component.mjs +45 -0
  6. package/esm2022/lib/components/core/accordion/accordion.component.mjs +39 -0
  7. package/esm2022/lib/components/core/alert/alert.component.mjs +71 -0
  8. package/esm2022/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.mjs +43 -0
  9. package/esm2022/lib/components/core/avatar/avatar-group/avatar-group.component.mjs +38 -0
  10. package/esm2022/lib/components/core/avatar/avatar.directive.mjs +78 -0
  11. package/esm2022/lib/components/core/avatar/avatar.module.mjs +33 -0
  12. package/esm2022/lib/components/core/badge/badge.directive.mjs +39 -0
  13. package/esm2022/lib/components/core/button/button.directive.mjs +86 -0
  14. package/esm2022/lib/components/core/callout/callout.component.mjs +57 -0
  15. package/esm2022/lib/components/core/card/card.component.mjs +59 -0
  16. package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +84 -0
  17. package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +19 -0
  18. package/esm2022/lib/components/core/carousel/carousel.module.mjs +18 -0
  19. package/esm2022/lib/components/core/chip/chip.component.mjs +136 -0
  20. package/esm2022/lib/components/core/collapse/collapse.component.mjs +104 -0
  21. package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
  22. package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
  23. package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +55 -0
  24. package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +19 -0
  25. package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +144 -0
  26. package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +61 -0
  27. package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +18 -0
  28. package/esm2022/lib/components/core/forward/forward.directive.mjs +53 -0
  29. package/esm2022/lib/components/core/link/link.component.mjs +42 -0
  30. package/esm2022/lib/components/core/list/list/list.component.mjs +22 -0
  31. package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +51 -0
  32. package/esm2022/lib/components/core/list/list.module.mjs +18 -0
  33. package/esm2022/lib/components/core/modal/modal.component.mjs +194 -0
  34. package/esm2022/lib/components/core/notifications/notifications.component.mjs +111 -0
  35. package/esm2022/lib/components/core/pagination/pagination.component.mjs +130 -0
  36. package/esm2022/lib/components/core/popover/popover.directive.mjs +176 -0
  37. package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +34 -0
  38. package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +25 -0
  39. package/esm2022/lib/components/core/spinner/spinner.component.mjs +30 -0
  40. package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +116 -0
  41. package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +20 -0
  42. package/esm2022/lib/components/core/steppers/steppers.module.mjs +18 -0
  43. package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +63 -0
  44. package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +39 -0
  45. package/esm2022/lib/components/core/tab/tab.module.mjs +18 -0
  46. package/esm2022/lib/components/core/table/sort/sort-header/sort-header.component.mjs +134 -0
  47. package/esm2022/lib/components/core/table/sort/sort.directive.mjs +123 -0
  48. package/esm2022/lib/components/core/table/table.component.mjs +45 -0
  49. package/esm2022/lib/components/core/table/table.module.mjs +19 -0
  50. package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +143 -0
  51. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +106 -0
  52. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +48 -0
  53. package/esm2022/lib/components/form/form.module.mjs +59 -0
  54. package/esm2022/lib/components/form/input/input.component.mjs +187 -0
  55. package/esm2022/lib/components/form/password-input/password-input.component.mjs +149 -0
  56. package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +60 -0
  57. package/esm2022/lib/components/form/range/range.component.mjs +64 -0
  58. package/esm2022/lib/components/form/rating/rating.component.mjs +50 -0
  59. package/esm2022/lib/components/form/select/select.component.mjs +70 -0
  60. package/esm2022/lib/components/form/textarea/textarea.component.mjs +55 -0
  61. package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +142 -0
  62. package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +107 -0
  63. package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +67 -0
  64. package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +58 -0
  65. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +51 -0
  66. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +21 -0
  67. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
  68. package/esm2022/lib/components/navigation/header/header.component.mjs +87 -0
  69. package/esm2022/lib/components/navigation/megamenu/megamenu.component.mjs +27 -0
  70. package/esm2022/lib/components/navigation/navbar/navbar/navbar.component.mjs +40 -0
  71. package/esm2022/lib/components/navigation/navbar/navbar-item/navbar-item.component.mjs +11 -0
  72. package/esm2022/lib/components/navigation/navbar/navbar.module.mjs +18 -0
  73. package/esm2022/lib/components/utils/error-page/error-page.component.mjs +74 -0
  74. package/esm2022/lib/components/utils/icon/icon.component.mjs +58 -0
  75. package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +50 -0
  76. package/esm2022/lib/design-angular-kit.module.mjs +213 -0
  77. package/esm2022/lib/enums/colors.enums.mjs +12 -0
  78. package/esm2022/lib/enums/sizes.enum.mjs +9 -0
  79. package/esm2022/lib/interfaces/core.mjs +16 -0
  80. package/esm2022/lib/interfaces/design-angular-kit-config.mjs +7 -0
  81. package/esm2022/lib/interfaces/form.mjs +2 -0
  82. package/esm2022/lib/interfaces/icon.mjs +165 -0
  83. package/esm2022/lib/interfaces/sortable-table.mjs +6 -0
  84. package/esm2022/lib/pipes/date-ago.pipe.mjs +56 -0
  85. package/esm2022/lib/pipes/duration.pipe.mjs +110 -0
  86. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +48 -0
  87. package/esm2022/lib/provide-design-angular-kit.mjs +61 -0
  88. package/esm2022/lib/services/notification/notification.service.mjs +120 -0
  89. package/esm2022/lib/utils/coercion.mjs +18 -0
  90. package/esm2022/lib/utils/date-utils.mjs +160 -0
  91. package/esm2022/lib/utils/file-utils.mjs +73 -0
  92. package/esm2022/lib/utils/regex.mjs +31 -0
  93. package/esm2022/lib/validators/it-validators.mjs +153 -0
  94. package/esm2022/public_api.mjs +99 -0
  95. package/fesm2022/design-angular-kit.mjs +5556 -0
  96. package/fesm2022/design-angular-kit.mjs.map +1 -0
  97. package/lib/abstracts/{abstract-form-component.d.ts → abstract-form.component.d.ts} +12 -14
  98. package/lib/abstracts/abstract.component.d.ts +18 -8
  99. package/lib/components/core/accordion/accordion.component.d.ts +11 -5
  100. package/lib/components/core/alert/alert.component.d.ts +15 -10
  101. package/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.d.ts +29 -0
  102. package/lib/components/core/avatar/avatar-group/avatar-group.component.d.ts +13 -0
  103. package/lib/components/core/avatar/avatar.directive.d.ts +33 -0
  104. package/lib/components/core/avatar/avatar.module.d.ts +9 -0
  105. package/lib/components/core/badge/badge.directive.d.ts +14 -7
  106. package/lib/components/core/button/button.directive.d.ts +25 -15
  107. package/lib/components/core/callout/callout.component.d.ts +18 -20
  108. package/lib/components/core/card/card.component.d.ts +46 -18
  109. package/lib/components/core/carousel/carousel/carousel.component.d.ts +34 -15
  110. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +8 -3
  111. package/lib/components/core/carousel/carousel.module.d.ts +8 -0
  112. package/lib/components/core/chip/chip.component.d.ts +29 -15
  113. package/lib/components/core/collapse/collapse.component.d.ts +22 -15
  114. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +3 -3
  115. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +3 -3
  116. package/lib/components/core/dimmer/dimmer.component.d.ts +6 -6
  117. package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
  118. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +30 -17
  119. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +15 -12
  120. package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
  121. package/lib/components/core/forward/forward.directive.d.ts +3 -3
  122. package/lib/components/core/link/link.component.d.ts +14 -10
  123. package/lib/components/core/list/list/list.component.d.ts +20 -6
  124. package/lib/components/core/list/list-item/list-item.component.d.ts +23 -9
  125. package/lib/components/core/list/list.module.d.ts +8 -0
  126. package/lib/components/core/modal/modal.component.d.ts +89 -13
  127. package/lib/components/core/notifications/notifications.component.d.ts +9 -8
  128. package/lib/components/core/pagination/pagination.component.d.ts +71 -10
  129. package/lib/components/core/popover/popover.directive.d.ts +15 -14
  130. package/lib/components/core/progress-bar/progress-bar.component.d.ts +11 -8
  131. package/lib/components/core/progress-button/progress-button.component.d.ts +5 -6
  132. package/lib/components/core/spinner/spinner.component.d.ts +13 -10
  133. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +55 -27
  134. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +5 -4
  135. package/lib/components/core/steppers/steppers.module.d.ts +8 -0
  136. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +15 -12
  137. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +14 -10
  138. package/lib/components/core/tab/tab.module.d.ts +8 -0
  139. package/lib/components/core/table/sort/sort-header/sort-header.component.d.ts +72 -0
  140. package/lib/components/core/table/sort/sort.directive.d.ts +53 -0
  141. package/lib/components/core/table/table.component.d.ts +26 -20
  142. package/lib/components/core/table/table.module.d.ts +9 -0
  143. package/lib/components/core/tooltip/tooltip.directive.d.ts +12 -11
  144. package/lib/components/form/autocomplete/autocomplete.component.d.ts +55 -0
  145. package/lib/components/form/checkbox/checkbox.component.d.ts +23 -12
  146. package/lib/components/form/form.module.d.ts +17 -0
  147. package/lib/components/form/input/input.component.d.ts +42 -43
  148. package/lib/components/form/password-input/password-input.component.d.ts +35 -10
  149. package/lib/components/form/radio-button/radio-button.component.d.ts +20 -11
  150. package/lib/components/form/range/range.component.d.ts +42 -0
  151. package/lib/components/form/rating/rating.component.d.ts +24 -0
  152. package/lib/components/form/select/select.component.d.ts +12 -6
  153. package/lib/components/form/textarea/textarea.component.d.ts +15 -5
  154. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +18 -12
  155. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +14 -11
  156. package/lib/components/navigation/back-button/back-button.component.d.ts +8 -8
  157. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +15 -16
  158. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +12 -14
  159. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +9 -8
  160. package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
  161. package/lib/components/navigation/header/header.component.d.ts +28 -25
  162. package/lib/components/navigation/megamenu/megamenu.component.d.ts +22 -0
  163. package/lib/components/navigation/navbar/navbar/navbar.component.d.ts +16 -0
  164. package/lib/components/navigation/navbar/navbar-item/navbar-item.component.d.ts +5 -0
  165. package/lib/components/navigation/navbar/navbar.module.d.ts +8 -0
  166. package/lib/components/utils/error-page/error-page.component.d.ts +44 -0
  167. package/lib/components/utils/icon/icon.component.d.ts +25 -17
  168. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +9 -5
  169. package/lib/design-angular-kit.module.d.ts +44 -7
  170. package/lib/enums/colors.enums.d.ts +10 -0
  171. package/lib/enums/sizes.enum.d.ts +7 -0
  172. package/lib/interfaces/core.d.ts +16 -15
  173. package/lib/interfaces/design-angular-kit-config.d.ts +30 -0
  174. package/lib/interfaces/form.d.ts +9 -9
  175. package/lib/interfaces/icon.d.ts +4 -3
  176. package/lib/interfaces/sortable-table.d.ts +33 -0
  177. package/lib/pipes/date-ago.pipe.d.ts +17 -0
  178. package/lib/pipes/duration.pipe.d.ts +35 -0
  179. package/lib/pipes/mark-matching-text.pipe.d.ts +15 -7
  180. package/lib/provide-design-angular-kit.d.ts +7 -0
  181. package/lib/services/{notifications/notifications.service.d.ts → notification/notification.service.d.ts} +3 -3
  182. package/lib/utils/coercion.d.ts +14 -0
  183. package/lib/utils/date-utils.d.ts +78 -0
  184. package/lib/utils/file-utils.d.ts +1 -1
  185. package/lib/utils/regex.d.ts +5 -0
  186. package/lib/validators/it-validators.d.ts +9 -2
  187. package/package.json +17 -22
  188. package/public_api.d.ts +31 -4
  189. package/esm2020/lib/abstracts/abstract-form-component.mjs +0 -174
  190. package/esm2020/lib/abstracts/abstract.component.mjs +0 -27
  191. package/esm2020/lib/components/core/accordion/accordion.component.mjs +0 -31
  192. package/esm2020/lib/components/core/alert/alert.component.mjs +0 -69
  193. package/esm2020/lib/components/core/badge/badge.directive.mjs +0 -34
  194. package/esm2020/lib/components/core/button/button.directive.mjs +0 -80
  195. package/esm2020/lib/components/core/callout/callout.component.mjs +0 -84
  196. package/esm2020/lib/components/core/card/card.component.mjs +0 -58
  197. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +0 -66
  198. package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +0 -14
  199. package/esm2020/lib/components/core/chip/chip.component.mjs +0 -89
  200. package/esm2020/lib/components/core/collapse/collapse.component.mjs +0 -101
  201. package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +0 -24
  202. package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +0 -11
  203. package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +0 -59
  204. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +0 -130
  205. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +0 -68
  206. package/esm2020/lib/components/core/forward/forward.directive.mjs +0 -51
  207. package/esm2020/lib/components/core/link/link.component.mjs +0 -40
  208. package/esm2020/lib/components/core/list/list/list.component.mjs +0 -13
  209. package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +0 -36
  210. package/esm2020/lib/components/core/modal/modal.component.mjs +0 -98
  211. package/esm2020/lib/components/core/notifications/notifications.component.mjs +0 -110
  212. package/esm2020/lib/components/core/pagination/pagination.component.mjs +0 -51
  213. package/esm2020/lib/components/core/popover/popover.directive.mjs +0 -179
  214. package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +0 -34
  215. package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +0 -27
  216. package/esm2020/lib/components/core/spinner/spinner.component.mjs +0 -35
  217. package/esm2020/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +0 -119
  218. package/esm2020/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +0 -18
  219. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +0 -59
  220. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +0 -36
  221. package/esm2020/lib/components/core/table/table.component.mjs +0 -57
  222. package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +0 -143
  223. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -40
  224. package/esm2020/lib/components/form/input/input.component.mjs +0 -222
  225. package/esm2020/lib/components/form/password-input/password-input.component.mjs +0 -112
  226. package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +0 -53
  227. package/esm2020/lib/components/form/select/select.component.mjs +0 -62
  228. package/esm2020/lib/components/form/textarea/textarea.component.mjs +0 -46
  229. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +0 -137
  230. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +0 -104
  231. package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +0 -69
  232. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +0 -74
  233. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -45
  234. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +0 -23
  235. package/esm2020/lib/components/navigation/header/header.component.mjs +0 -63
  236. package/esm2020/lib/components/utils/icon/icon.component.mjs +0 -54
  237. package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +0 -39
  238. package/esm2020/lib/components/utils/not-found-page/not-found-page.component.mjs +0 -13
  239. package/esm2020/lib/design-angular-kit.module.mjs +0 -56
  240. package/esm2020/lib/interfaces/core.mjs +0 -16
  241. package/esm2020/lib/interfaces/form.mjs +0 -2
  242. package/esm2020/lib/interfaces/icon.mjs +0 -2
  243. package/esm2020/lib/modules/components.module.mjs +0 -257
  244. package/esm2020/lib/pipes/mark-matching-text.pipe.mjs +0 -36
  245. package/esm2020/lib/services/notifications/notifications.service.mjs +0 -120
  246. package/esm2020/lib/utils/boolean-input.mjs +0 -15
  247. package/esm2020/lib/utils/file-utils.mjs +0 -73
  248. package/esm2020/lib/utils/regex.mjs +0 -26
  249. package/esm2020/lib/validators/it-validators.mjs +0 -134
  250. package/esm2020/public_api.mjs +0 -70
  251. package/fesm2015/design-angular-kit.mjs +0 -3850
  252. package/fesm2015/design-angular-kit.mjs.map +0 -1
  253. package/fesm2020/design-angular-kit.mjs +0 -3797
  254. package/fesm2020/design-angular-kit.mjs.map +0 -1
  255. package/lib/components/utils/not-found-page/not-found-page.component.d.ts +0 -5
  256. package/lib/modules/components.module.d.ts +0 -61
  257. package/lib/utils/boolean-input.d.ts +0 -11
  258. /package/{esm2020 → esm2022}/design-angular-kit.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/interfaces/utils.mjs +0 -0
@@ -0,0 +1,187 @@
1
+ import { FormControl } from '@angular/forms';
2
+ import { Component, Input, Optional, Self } from '@angular/core';
3
+ import { ItAbstractComponent } from './abstract.component';
4
+ import { inputToBoolean } from '../utils/coercion';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ import * as i2 from "@angular/forms";
8
+ export class ItAbstractFormComponent extends ItAbstractComponent {
9
+ /**
10
+ * Set the disabled state
11
+ */
12
+ set disabled(isDisabled) {
13
+ this.setDisabledState(isDisabled);
14
+ }
15
+ constructor(_translateService, _ngControl) {
16
+ super();
17
+ this._translateService = _translateService;
18
+ this._ngControl = _ngControl;
19
+ /**
20
+ * Validation color display mode (validation triggered if field is touched or not pristine)
21
+ * - <b>true</b>: Always show the validation color
22
+ * - <b>false</b>: Never show validation color
23
+ * - <b>only-valid</b>: Show only valid validation color
24
+ * - <b>only-invalid</b>: Show only invalid validation color
25
+ * @default <b>only-invalid</b>: Show only invalid validation color
26
+ */
27
+ this.validationMode = 'only-invalid';
28
+ this.onChange = (_) => {
29
+ };
30
+ this.onTouched = () => {
31
+ };
32
+ this.control = new FormControl();
33
+ this._ngControl && (this._ngControl.valueAccessor = this);
34
+ }
35
+ /**
36
+ * Check if field is invalid (Validation failed)
37
+ */
38
+ get isInvalid() {
39
+ if (this.validationMode === 'only-valid' || (this.validationMode !== 'only-invalid' && !this.validationMode)) {
40
+ return undefined;
41
+ }
42
+ if (this._ngControl) {
43
+ return this._ngControl.invalid === true && (!this._ngControl.pristine || this._ngControl.touched === true);
44
+ }
45
+ return this.control.invalid && (!this.control.pristine || this.control.touched);
46
+ }
47
+ /**
48
+ * Check if field is valid (Validation successful)
49
+ */
50
+ get isValid() {
51
+ if (this.validationMode === 'only-invalid' || (this.validationMode !== 'only-valid' && !this.validationMode)) {
52
+ return undefined;
53
+ }
54
+ if (this._ngControl) {
55
+ return this._ngControl.valid === true && (!this._ngControl.pristine || this._ngControl.touched === true);
56
+ }
57
+ return this.control.valid && (!this.control.pristine || this.control.touched);
58
+ }
59
+ /**
60
+ * Return the invalid message string from TranslateService
61
+ */
62
+ get invalidMessage() {
63
+ if (this.hasError('required')) {
64
+ return this._translateService.get('it.errors.required-field');
65
+ }
66
+ return this._translateService.get('it.errors.invalid-field');
67
+ }
68
+ ngOnInit() {
69
+ if (this._ngControl?.control) {
70
+ this.control.setValidators(this._ngControl.control.validator);
71
+ }
72
+ }
73
+ registerOnChange(fn) {
74
+ this.control.valueChanges.subscribe(fn);
75
+ this.onChange = fn;
76
+ }
77
+ registerOnTouched(fn) {
78
+ this.onTouched = fn;
79
+ }
80
+ setDisabledState(isDisabled) {
81
+ if (isDisabled) {
82
+ return this.control.disable();
83
+ }
84
+ this.control.enable();
85
+ }
86
+ writeValue(value) {
87
+ this.control.setValue(value, { emitEvent: false });
88
+ this._changeDetectorRef.detectChanges();
89
+ }
90
+ /**
91
+ * Mark the control as touched
92
+ */
93
+ markAsTouched() {
94
+ if (!this.control.touched) {
95
+ this.onTouched();
96
+ }
97
+ }
98
+ /**
99
+ * Fired to check if form control is touched
100
+ */
101
+ ngDoCheck() {
102
+ if (this._ngControl?.control) {
103
+ const ngControl = this._ngControl.control;
104
+ if (this.control.touched !== ngControl.touched) {
105
+ if (ngControl.touched) {
106
+ this.control.markAsTouched();
107
+ }
108
+ else {
109
+ this.control.markAsUntouched();
110
+ }
111
+ }
112
+ if (this.control.pristine !== ngControl.pristine) {
113
+ if (ngControl.pristine) {
114
+ this.control.markAsPristine();
115
+ }
116
+ else {
117
+ this.control.markAsDirty();
118
+ }
119
+ }
120
+ }
121
+ this._changeDetectorRef.detectChanges();
122
+ }
123
+ /**
124
+ * Add the validators in control and parent control
125
+ * @param validators the validators
126
+ * @protected
127
+ */
128
+ addValidators(validators) {
129
+ if (!Array.isArray(validators)) {
130
+ validators = [validators];
131
+ }
132
+ validators.forEach(validator => {
133
+ if (!this.control.hasValidator(validator)) {
134
+ this.control.addValidators(validator);
135
+ }
136
+ if (this._ngControl?.control && !this._ngControl.control.hasValidator(validator)) {
137
+ this._ngControl.control.addValidators(validator);
138
+ }
139
+ });
140
+ }
141
+ /**
142
+ * Reports whether the control with the given path has the error specified. <br/>
143
+ * If the control is not present, false is returned.
144
+ * @param errorCode The code of the error to check
145
+ * @param path A list of control names that designates how to move from the current control
146
+ * to the control that should be queried for errors.
147
+ * @returns whether the given error is present in the control at the given path.
148
+ */
149
+ hasError(errorCode, path) {
150
+ if (this._ngControl) {
151
+ return this._ngControl.hasError(errorCode, path);
152
+ }
153
+ return this.control.hasError(errorCode, path);
154
+ }
155
+ /**
156
+ * Reports error data for the control with the given path.
157
+ * @param errorCode The code of the error to check
158
+ * @param path A list of control names that designates how to move from the current control
159
+ * to the control that should be queried for errors.
160
+ * @returns error data for that particular error. If the control or error is not present,
161
+ * null is returned.
162
+ */
163
+ getError(errorCode, path) {
164
+ if (this._ngControl) {
165
+ return this._ngControl.getError(errorCode, path);
166
+ }
167
+ return this.control.getError(errorCode, path);
168
+ }
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAbstractFormComponent, deps: [{ token: i1.TranslateService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.1.2", type: ItAbstractFormComponent, selector: "ng-component", inputs: { label: "label", validationMode: "validationMode", disabled: ["disabled", "disabled", inputToBoolean] }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
171
+ }
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAbstractFormComponent, decorators: [{
173
+ type: Component,
174
+ args: [{ template: '' }]
175
+ }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.NgControl, decorators: [{
176
+ type: Self
177
+ }, {
178
+ type: Optional
179
+ }] }], propDecorators: { label: [{
180
+ type: Input
181
+ }], validationMode: [{
182
+ type: Input
183
+ }], disabled: [{
184
+ type: Input,
185
+ args: [{ transform: inputToBoolean }]
186
+ }] } });
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9hYnN0cmFjdHMvYWJzdHJhY3QtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixXQUFXLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQVUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFHbkQsTUFBTSxPQUFnQix1QkFBaUMsU0FBUSxtQkFBbUI7SUFpQmhGOztPQUVHO0lBQ0gsSUFBMEMsUUFBUSxDQUFDLFVBQW1CO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBT0QsWUFDcUIsaUJBQW1DLEVBQ2YsVUFBcUI7UUFFNUQsS0FBSyxFQUFFLENBQUM7UUFIVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQXhCOUQ7Ozs7Ozs7V0FPRztRQUNNLG1CQUFjLEdBQTRDLGNBQWMsQ0FBQztRQW9FbEYsYUFBUSxHQUFHLENBQUMsQ0FBSSxFQUFFLEVBQUU7UUFDcEIsQ0FBQyxDQUFDO1FBRUYsY0FBUyxHQUFHLEdBQUcsRUFBRTtRQUNqQixDQUFDLENBQUM7UUFyREEsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM1RCxD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Qix1QkFBdUI7a0dBQXZCLHVCQUF1QiwySEFvQnZCLGNBQWMsb0RBckJiLEVBQUU7OzJGQUNILHVCQUF1QjtrQkFENUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OzBCQWdDdEIsSUFBSTs7MEJBQUksUUFBUTt5Q0ExQlYsS0FBSztzQkFBYixLQUFLO2dCQVVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS29DLFFBQVE7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEb0NoZWNrLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGlucHV0VG9Cb29sZWFuIH0gZnJvbSAnLi4vdXRpbHMvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSXRBYnN0cmFjdEZvcm1Db21wb25lbnQ8VCA9IGFueT4gZXh0ZW5kcyBJdEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRG9DaGVjayB7XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCBvZiBmb3JtIGNvbnRyb2xcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0aW9uIGNvbG9yIGRpc3BsYXkgbW9kZSAodmFsaWRhdGlvbiB0cmlnZ2VyZWQgaWYgZmllbGQgaXMgdG91Y2hlZCBvciBub3QgcHJpc3RpbmUpXG4gICAqIC0gPGI+dHJ1ZTwvYj46IEFsd2F5cyBzaG93IHRoZSB2YWxpZGF0aW9uIGNvbG9yXG4gICAqIC0gPGI+ZmFsc2U8L2I+OiBOZXZlciBzaG93IHZhbGlkYXRpb24gY29sb3JcbiAgICogLSA8Yj5vbmx5LXZhbGlkPC9iPjogU2hvdyBvbmx5IHZhbGlkIHZhbGlkYXRpb24gY29sb3JcbiAgICogLSA8Yj5vbmx5LWludmFsaWQ8L2I+OiBTaG93IG9ubHkgaW52YWxpZCB2YWxpZGF0aW9uIGNvbG9yXG4gICAqIEBkZWZhdWx0IDxiPm9ubHktaW52YWxpZDwvYj46IFNob3cgb25seSBpbnZhbGlkIHZhbGlkYXRpb24gY29sb3JcbiAgICovXG4gIEBJbnB1dCgpIHZhbGlkYXRpb25Nb2RlOiBib29sZWFuIHwgJ29ubHktdmFsaWQnIHwgJ29ubHktaW52YWxpZCcgPSAnb25seS1pbnZhbGlkJztcblxuICAvKipcbiAgICogU2V0IHRoZSBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBzZXQgZGlzYWJsZWQoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBmb3JtIGNvbnRyb2xcbiAgICovXG4gIHByb3RlY3RlZCBjb250cm9sOiBGb3JtQ29udHJvbDxUPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcmVhZG9ubHkgX25nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5fbmdDb250cm9sICYmICh0aGlzLl9uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGZpZWxkIGlzIGludmFsaWQgKFZhbGlkYXRpb24gZmFpbGVkKVxuICAgKi9cbiAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy52YWxpZGF0aW9uTW9kZSA9PT0gJ29ubHktdmFsaWQnIHx8ICh0aGlzLnZhbGlkYXRpb25Nb2RlICE9PSAnb25seS1pbnZhbGlkJyAmJiAhdGhpcy52YWxpZGF0aW9uTW9kZSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5pbnZhbGlkID09PSB0cnVlICYmICghdGhpcy5fbmdDb250cm9sLnByaXN0aW5lIHx8IHRoaXMuX25nQ29udHJvbC50b3VjaGVkID09PSB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkICYmICghdGhpcy5jb250cm9sLnByaXN0aW5lIHx8IHRoaXMuY29udHJvbC50b3VjaGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBmaWVsZCBpcyB2YWxpZCAoVmFsaWRhdGlvbiBzdWNjZXNzZnVsKVxuICAgKi9cbiAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvbk1vZGUgPT09ICdvbmx5LWludmFsaWQnIHx8ICh0aGlzLnZhbGlkYXRpb25Nb2RlICE9PSAnb25seS12YWxpZCcgJiYgIXRoaXMudmFsaWRhdGlvbk1vZGUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wudmFsaWQgPT09IHRydWUgJiYgKCF0aGlzLl9uZ0NvbnRyb2wucHJpc3RpbmUgfHwgdGhpcy5fbmdDb250cm9sLnRvdWNoZWQgPT09IHRydWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbGlkICYmICghdGhpcy5jb250cm9sLnByaXN0aW5lIHx8IHRoaXMuY29udHJvbC50b3VjaGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGludmFsaWQgbWVzc2FnZSBzdHJpbmcgZnJvbSBUcmFuc2xhdGVTZXJ2aWNlXG4gICAqL1xuICBnZXQgaW52YWxpZE1lc3NhZ2UoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMucmVxdWlyZWQtZmllbGQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5pbnZhbGlkLWZpZWxkJyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fbmdDb250cm9sPy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycygodGhpcy5fbmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2wpLnZhbGlkYXRvcik7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogVCkgPT4ge1xuICB9O1xuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHtcbiAgfTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShmbik7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgfVxuICAgIHRoaXMuY29udHJvbC5lbmFibGUoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkXG4gICAqL1xuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250cm9sLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHRvIGNoZWNrIGlmIGZvcm0gY29udHJvbCBpcyB0b3VjaGVkXG4gICAqL1xuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCkge1xuICAgICAgY29uc3QgbmdDb250cm9sID0gdGhpcy5fbmdDb250cm9sLmNvbnRyb2w7XG4gICAgICBpZiAodGhpcy5jb250cm9sLnRvdWNoZWQgIT09IG5nQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICAgIGlmIChuZ0NvbnRyb2wudG91Y2hlZCkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb250cm9sLnByaXN0aW5lICE9PSBuZ0NvbnRyb2wucHJpc3RpbmUpIHtcbiAgICAgICAgaWYgKG5nQ29udHJvbC5wcmlzdGluZSkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIHZhbGlkYXRvcnMgaW4gY29udHJvbCBhbmQgcGFyZW50IGNvbnRyb2xcbiAgICogQHBhcmFtIHZhbGlkYXRvcnMgdGhlIHZhbGlkYXRvcnNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZFZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdKTogdm9pZCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbGlkYXRvcnMpKSB7XG4gICAgICB2YWxpZGF0b3JzID0gW3ZhbGlkYXRvcnNdO1xuICAgIH1cblxuICAgIHZhbGlkYXRvcnMuZm9yRWFjaCh2YWxpZGF0b3IgPT4ge1xuICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGFzVmFsaWRhdG9yKHZhbGlkYXRvcikpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLmFkZFZhbGlkYXRvcnModmFsaWRhdG9yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCAmJiAhdGhpcy5fbmdDb250cm9sLmNvbnRyb2wuaGFzVmFsaWRhdG9yKHZhbGlkYXRvcikpIHtcbiAgICAgICAgdGhpcy5fbmdDb250cm9sLmNvbnRyb2wuYWRkVmFsaWRhdG9ycyh2YWxpZGF0b3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgd2hldGhlciB0aGUgY29udHJvbCB3aXRoIHRoZSBnaXZlbiBwYXRoIGhhcyB0aGUgZXJyb3Igc3BlY2lmaWVkLiA8YnIvPlxuICAgKiBJZiB0aGUgY29udHJvbCBpcyBub3QgcHJlc2VudCwgZmFsc2UgaXMgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSBlcnJvckNvZGUgVGhlIGNvZGUgb2YgdGhlIGVycm9yIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBwYXRoIEEgbGlzdCBvZiBjb250cm9sIG5hbWVzIHRoYXQgZGVzaWduYXRlcyBob3cgdG8gbW92ZSBmcm9tIHRoZSBjdXJyZW50IGNvbnRyb2xcbiAgICogdG8gdGhlIGNvbnRyb2wgdGhhdCBzaG91bGQgYmUgcXVlcmllZCBmb3IgZXJyb3JzLlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBlcnJvciBpcyBwcmVzZW50IGluIHRoZSBjb250cm9sIGF0IHRoZSBnaXZlbiBwYXRoLlxuICAgKi9cbiAgcHVibGljIGhhc0Vycm9yKGVycm9yQ29kZTogc3RyaW5nLCBwYXRoPzogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2wuaGFzRXJyb3IoZXJyb3JDb2RlLCBwYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5oYXNFcnJvcihlcnJvckNvZGUsIHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgZXJyb3IgZGF0YSBmb3IgdGhlIGNvbnRyb2wgd2l0aCB0aGUgZ2l2ZW4gcGF0aC5cbiAgICogQHBhcmFtIGVycm9yQ29kZSBUaGUgY29kZSBvZiB0aGUgZXJyb3IgdG8gY2hlY2tcbiAgICogQHBhcmFtIHBhdGggQSBsaXN0IG9mIGNvbnRyb2wgbmFtZXMgdGhhdCBkZXNpZ25hdGVzIGhvdyB0byBtb3ZlIGZyb20gdGhlIGN1cnJlbnQgY29udHJvbFxuICAgKiB0byB0aGUgY29udHJvbCB0aGF0IHNob3VsZCBiZSBxdWVyaWVkIGZvciBlcnJvcnMuXG4gICAqIEByZXR1cm5zIGVycm9yIGRhdGEgZm9yIHRoYXQgcGFydGljdWxhciBlcnJvci4gSWYgdGhlIGNvbnRyb2wgb3IgZXJyb3IgaXMgbm90IHByZXNlbnQsXG4gICAqIG51bGwgaXMgcmV0dXJuZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0RXJyb3IoZXJyb3JDb2RlOiBzdHJpbmcsIHBhdGg/OiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nKTogYW55IHtcbiAgICBpZiAodGhpcy5fbmdDb250cm9sKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbmdDb250cm9sLmdldEVycm9yKGVycm9yQ29kZSwgcGF0aCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZ2V0RXJyb3IoZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, Renderer2 } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ItAbstractComponent {
4
+ /**
5
+ * Counter of active instances
6
+ * @private
7
+ */
8
+ static { this.instances = 0; }
9
+ constructor() {
10
+ /**
11
+ * The element ID
12
+ */
13
+ this.id = this.getDefaultId();
14
+ this._renderer = inject(Renderer2);
15
+ this._elementRef = inject(ElementRef);
16
+ this._changeDetectorRef = inject(ChangeDetectorRef);
17
+ this.valueChanges = new EventEmitter();
18
+ }
19
+ ngAfterViewInit() {
20
+ this._renderer.removeAttribute(this._elementRef.nativeElement, 'id');
21
+ }
22
+ ngOnChanges(changes) {
23
+ this.valueChanges.next(); // The inputs were changed
24
+ }
25
+ /**
26
+ * Generate unique id for components
27
+ * @private
28
+ */
29
+ getDefaultId() {
30
+ const name = this.constructor.name.replace('Component', '');
31
+ const kebabName = name.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());
32
+ return `${kebabName}-${ItAbstractComponent.instances++}`;
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAbstractComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ItAbstractComponent, selector: "ng-component", inputs: { id: "id" }, outputs: { valueChanges: "valueChanges" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAbstractComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ template: '' }]
40
+ }], ctorParameters: () => [], propDecorators: { id: [{
41
+ type: Input
42
+ }], valueChanges: [{
43
+ type: Output
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQzs7QUFHdkIsTUFBTSxPQUFnQixtQkFBbUI7SUFZdkM7OztPQUdHO2FBQ1ksY0FBUyxHQUFHLENBQUMsQUFBSixDQUFLO0lBTzdCO1FBckJBOztXQUVHO1FBQ00sT0FBRSxHQUFXLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQW1CeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RyxPQUFPLEdBQUcsU0FBUyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDM0QsQ0FBQzs4R0EvQ21CLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBJQURsQixFQUFFOzsyRkFDSCxtQkFBbUI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO3dEQU1oQixFQUFFO3NCQUFWLEtBQUs7Z0JBS1csWUFBWTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEl0QWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCBJRFxuICAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IHRoaXMuZ2V0RGVmYXVsdElkKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gY29tcG9uZW50IGlucHV0IGF0dHJpYnV0ZXMgd2FzIGNoYW5nZWRcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgdmFsdWVDaGFuZ2VzOiBFdmVudEVtaXR0ZXI8dm9pZD47XG5cbiAgLyoqXG4gICAqIENvdW50ZXIgb2YgYWN0aXZlIGluc3RhbmNlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5zdGFuY2VzID0gMDtcblxuXG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMjsgLy8gSW5qZWN0ZWRcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmOyAvLyBJbmplY3RlZFxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjsgLy8gSW5qZWN0ZWRcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgdGhpcy52YWx1ZUNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2lkJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dCgpOyAvLyBUaGUgaW5wdXRzIHdlcmUgY2hhbmdlZFxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgY29tcG9uZW50c1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXREZWZhdWx0SWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnJlcGxhY2UoJ0NvbXBvbmVudCcsICcnKTtcbiAgICBjb25zdCBrZWJhYk5hbWUgPSBuYW1lLnJlcGxhY2UoL1tBLVpdKyg/IVthLXpdKXxbQS1aXS9nLCAoJCwgb2ZzKSA9PiAob2ZzID8gJy0nIDogJycpICsgJC50b0xvd2VyQ2FzZSgpKTtcbiAgICByZXR1cm4gYCR7a2ViYWJOYW1lfS0ke0l0QWJzdHJhY3RDb21wb25lbnQuaW5zdGFuY2VzKyt9YDtcbiAgfVxufVxuIl19
@@ -0,0 +1,39 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
2
+ import { ItCollapseComponent } from '../collapse/collapse.component';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Accordion
6
+ * @description Build vertically collapsible accordions based on Collapse.
7
+ */
8
+ export class ItAccordionComponent extends ItCollapseComponent {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.isCollapsed = true;
12
+ }
13
+ ngAfterViewInit() {
14
+ super.ngAfterViewInit();
15
+ this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');
16
+ this.isCollapsed = !this.opened;
17
+ this.hideEvent.subscribe(() => {
18
+ this.isCollapsed = true;
19
+ this._changeDetectorRef.detectChanges();
20
+ });
21
+ this.showEvent.subscribe(() => {
22
+ this.isCollapsed = false;
23
+ this._changeDetectorRef.detectChanges();
24
+ });
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ItAccordionComponent, isStandalone: true, selector: "it-accordion", inputs: { title: "title" }, viewQueries: [{ propertyName: "collapseDiv", first: true, predicate: ["collapse"], descendants: true }], exportAs: ["itAccordion"], 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\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"opened ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAccordionComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ standalone: true, selector: 'it-accordion', exportAs: 'itAccordion', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], 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\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"opened ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n" }]
32
+ }], propDecorators: { title: [{
33
+ type: Input,
34
+ args: [{ required: true }]
35
+ }], collapseDiv: [{
36
+ type: ViewChild,
37
+ args: ['collapse']
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXJFOzs7R0FHRztBQVNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFSN0Q7O1FBZ0JZLGdCQUFXLEdBQVksSUFBSSxDQUFDO0tBZ0J2QztJQWRVLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F2QlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsK1BDZmpDLHl5QkEyQkE7OzJGRFphLG9CQUFvQjtrQkFSaEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sY0FBYyxZQUVkLGFBQWEsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxFQUFFOzhCQU1nQixLQUFLO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaUIsV0FBVztzQkFBcEQsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRDb2xsYXBzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbGxhcHNlL2NvbGxhcHNlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQWNjb3JkaW9uXG4gKiBAZGVzY3JpcHRpb24gQnVpbGQgdmVydGljYWxseSBjb2xsYXBzaWJsZSBhY2NvcmRpb25zIGJhc2VkIG9uIENvbGxhcHNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpdC1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdpdEFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgSXRBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBJdENvbGxhcHNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBBY2NvcmRpb24gVGl0bGVcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRpdGxlITogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbGxhcHNlJykgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbGxhcHNlRGl2PzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIGlzQ29sbGFwc2VkOiBib29sZWFuID0gdHJ1ZTtcblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RpdGxlJyk7XG5cbiAgICB0aGlzLmlzQ29sbGFwc2VkID0gIXRoaXMub3BlbmVkO1xuICAgIHRoaXMuaGlkZUV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICB0aGlzLnNob3dFdmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJhY2NvcmRpb24taXRlbVwiPlxuXG4gICAgPGgyIGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlclwiIGlkPVwiY29sbGFwc2Ute3tpZH19LWhlYWRpbmdcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJhY2NvcmRpb24tYnV0dG9uXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIlxuICAgICAgICBbY2xhc3MuY29sbGFwc2VkXT1cImlzQ29sbGFwc2VkXCJcbiAgICAgICAgW2F0dHIuZGF0YS1icy10YXJnZXRdPVwiJyNjb2xsYXBzZS0nICsgaWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIidjb2xsYXBzZS0nICsgaWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5lZCA/ICd0cnVlJyA6ICdmYWxzZSdcIj5cbiAgICAgICAge3t0aXRsZX19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2gyPlxuXG4gICAgPGRpdiAjY29sbGFwc2UgaWQ9XCJjb2xsYXBzZS17e2lkfX1cIiByb2xlPVwicmVnaW9uXCJcbiAgICAgICAgIGNsYXNzPVwiYWNjb3JkaW9uLWNvbGxhcHNlIGNvbGxhcHNlIHt7Y2xhc3N9fVwiXG4gICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2NvbGxhcHNlLScgKyBpZCArICctaGVhZGluZydcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFjY29yZGlvbi1ib2R5XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
@@ -0,0 +1,71 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { ItAbstractComponent } from '../../../abstracts/abstract.component';
3
+ import { Alert } from 'bootstrap-italia';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { ItIconComponent } from '../../utils/icon/icon.component';
6
+ import { inputToBoolean } from '../../../utils/coercion';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngx-translate/core";
9
+ /**
10
+ * Alert
11
+ * @description You can provide feedback to the user via alert messages.
12
+ */
13
+ export class ItAlertComponent extends ItAbstractComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+ /**
17
+ * The alert color
18
+ * @default info
19
+ */
20
+ this.color = 'info';
21
+ /**
22
+ * This event fires immediately when the instance's close method is called.
23
+ */
24
+ this.closeEvent = new EventEmitter();
25
+ /**
26
+ * This event fires when the alert has been closed (it will wait for CSS transitions to complete).
27
+ */
28
+ this.closedEvent = new EventEmitter();
29
+ }
30
+ ngAfterViewInit() {
31
+ super.ngAfterViewInit();
32
+ if (this.alertElement) {
33
+ const element = this.alertElement.nativeElement;
34
+ this.alert = Alert.getOrCreateInstance(element);
35
+ element.addEventListener('close.bs.alert', event => this.closeEvent.emit(event));
36
+ element.addEventListener('closed.bs.alert', event => this.closedEvent.emit(event));
37
+ }
38
+ }
39
+ /**
40
+ * Close an alert by removing it from the DOM.
41
+ * If the `.fade` and `.show` classes are present in the element, the alert will be closed with a disappearing effect.
42
+ */
43
+ close() {
44
+ this.alert?.close();
45
+ }
46
+ /**
47
+ * The alert is removed
48
+ */
49
+ dispose() {
50
+ this.alert?.dispose();
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAlertComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ItAlertComponent, isStandalone: true, selector: "it-alert", inputs: { color: "color", dismissible: ["dismissible", "dismissible", inputToBoolean] }, outputs: { closeEvent: "closeEvent", closedEvent: "closedEvent" }, viewQueries: [{ propertyName: "alertElement", first: true, predicate: ["alertElement"], descendants: true }], exportAs: ["itAlert"], usesInheritance: true, ngImport: i0, template: "<div\n #alertElement\n class=\"alert alert-{{ color }}\"\n [class.alert-dismissible]=\"dismissible\"\n [class.fade]=\"dismissible\"\n [class.show]=\"dismissible\"\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 @if (dismissible) {\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" [attr.aria-label]=\"'it.core.close-alert' | translate\">\n <it-icon name=\"close\"></it-icon>\n </button>\n }\n</div>\n", styles: [".alert-heading:empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ItIconComponent, selector: "it-icon", inputs: ["name", "size", "color", "padded", "svgClass", "labelWaria"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAlertComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ standalone: true, selector: 'it-alert', exportAs: 'itAlert', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, ItIconComponent], template: "<div\n #alertElement\n class=\"alert alert-{{ color }}\"\n [class.alert-dismissible]=\"dismissible\"\n [class.fade]=\"dismissible\"\n [class.show]=\"dismissible\"\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 @if (dismissible) {\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" [attr.aria-label]=\"'it.core.close-alert' | translate\">\n <it-icon name=\"close\"></it-icon>\n </button>\n }\n</div>\n", styles: [".alert-heading:empty{display:none}\n"] }]
58
+ }], propDecorators: { color: [{
59
+ type: Input
60
+ }], dismissible: [{
61
+ type: Input,
62
+ args: [{ transform: inputToBoolean }]
63
+ }], closeEvent: [{
64
+ type: Output
65
+ }], closedEvent: [{
66
+ type: Output
67
+ }], alertElement: [{
68
+ type: ViewChild,
69
+ args: ['alertElement']
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hbGVydC9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFFekQ7OztHQUdHO0FBVUgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLG1CQUFtQjtJQVR6RDs7UUFVRTs7O1dBR0c7UUFDTSxVQUFLLEdBQWUsTUFBTSxDQUFDO1FBUXBDOztXQUVHO1FBQ2MsZUFBVSxHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRFOztXQUVHO1FBQ2MsZ0JBQVcsR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQWdDeEU7SUExQlUsZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7WUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFaEQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqRixPQUFPLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0FwRFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isa0hBV1AsY0FBYyw0UENoQ3BDLDZoQkFtQkEsNkZEQVksZUFBZSw0RkFBRSxlQUFlOzsyRkFFL0IsZ0JBQWdCO2tCQVQ1QixTQUFTO2lDQUNJLElBQUksWUFDTixVQUFVLFlBR1YsU0FBUyxtQkFDRix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQzs4QkFPbEMsS0FBSztzQkFBYixLQUFLO2dCQU1nQyxXQUFXO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTtnQkFLbkIsVUFBVTtzQkFBMUIsTUFBTTtnQkFLVSxXQUFXO3NCQUEzQixNQUFNO2dCQUk0QixZQUFZO3NCQUE5QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRDb2xvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvY29yZSc7XG5pbXBvcnQgeyBJdEFic3RyYWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJ2Jvb3RzdHJhcC1pdGFsaWEnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJdEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi91dGlscy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IGlucHV0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29lcmNpb24nO1xuXG4vKipcbiAqIEFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gWW91IGNhbiBwcm92aWRlIGZlZWRiYWNrIHRvIHRoZSB1c2VyIHZpYSBhbGVydCBtZXNzYWdlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbGVydC5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ2l0QWxlcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgSXRJY29uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgSXRBbGVydENvbXBvbmVudCBleHRlbmRzIEl0QWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBhbGVydCBjb2xvclxuICAgKiBAZGVmYXVsdCBpbmZvXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcjogQWxlcnRDb2xvciA9ICdpbmZvJztcblxuICAvKipcbiAgICogSW5zZXJ0cyB0aGUgY2xvc2UgYnV0dG9uXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIGRpc21pc3NpYmxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBmaXJlcyBpbW1lZGlhdGVseSB3aGVuIHRoZSBpbnN0YW5jZSdzIGNsb3NlIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIGNsb3NlRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZmlyZXMgd2hlbiB0aGUgYWxlcnQgaGFzIGJlZW4gY2xvc2VkIChpdCB3aWxsIHdhaXQgZm9yIENTUyB0cmFuc2l0aW9ucyB0byBjb21wbGV0ZSkuXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIGNsb3NlZEV2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgYWxlcnQ/OiBBbGVydDtcblxuICBAVmlld0NoaWxkKCdhbGVydEVsZW1lbnQnKSBwcml2YXRlIGFsZXJ0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgIGlmICh0aGlzLmFsZXJ0RWxlbWVudCkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuYWxlcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICB0aGlzLmFsZXJ0ID0gQWxlcnQuZ2V0T3JDcmVhdGVJbnN0YW5jZShlbGVtZW50KTtcblxuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbG9zZS5icy5hbGVydCcsIGV2ZW50ID0+IHRoaXMuY2xvc2VFdmVudC5lbWl0KGV2ZW50KSk7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlZC5icy5hbGVydCcsIGV2ZW50ID0+IHRoaXMuY2xvc2VkRXZlbnQuZW1pdChldmVudCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSBhbiBhbGVydCBieSByZW1vdmluZyBpdCBmcm9tIHRoZSBET00uXG4gICAqIElmIHRoZSBgLmZhZGVgIGFuZCBgLnNob3dgIGNsYXNzZXMgYXJlIHByZXNlbnQgaW4gdGhlIGVsZW1lbnQsIHRoZSBhbGVydCB3aWxsIGJlIGNsb3NlZCB3aXRoIGEgZGlzYXBwZWFyaW5nIGVmZmVjdC5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmFsZXJ0Py5jbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhbGVydCBpcyByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmFsZXJ0Py5kaXNwb3NlKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2FsZXJ0RWxlbWVudFxuICBjbGFzcz1cImFsZXJ0IGFsZXJ0LXt7IGNvbG9yIH19XCJcbiAgW2NsYXNzLmFsZXJ0LWRpc21pc3NpYmxlXT1cImRpc21pc3NpYmxlXCJcbiAgW2NsYXNzLmZhZGVdPVwiZGlzbWlzc2libGVcIlxuICBbY2xhc3Muc2hvd109XCJkaXNtaXNzaWJsZVwiXG4gIHJvbGU9XCJhbGVydFwiPlxuICA8aDQgY2xhc3M9XCJhbGVydC1oZWFkaW5nXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRpbmddXCI+PC9uZy1jb250ZW50PlxuICA8L2g0PlxuXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICBAaWYgKGRpc21pc3NpYmxlKSB7XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBkYXRhLWJzLWRpc21pc3M9XCJhbGVydFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2l0LmNvcmUuY2xvc2UtYWxlcnQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiY2xvc2VcIj48L2l0LWljb24+XG4gICAgPC9idXR0b24+XG4gIH1cbjwvZGl2PlxuIl19
@@ -0,0 +1,43 @@
1
+ import { Component, ContentChildren, HostBinding, Input, TemplateRef, ViewChild } from '@angular/core';
2
+ import { ItDropdownModule } from '../../dropdown/dropdown.module';
3
+ import { NgTemplateOutlet } from '@angular/common';
4
+ import { RouterLink } from '@angular/router';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../dropdown/dropdown/dropdown.component";
7
+ export class ItAvatarDropdownItemComponent {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarDropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ItAvatarDropdownItemComponent, isStandalone: true, selector: "it-avatar-dropdown-item", inputs: { link: "link", title: "title", accesskey: "accesskey", tabindex: "tabindex" }, viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true, styles: [".link-list-wrapper{z-index:2;position:relative}a{cursor:pointer}:host ::ng-deep .dropdown-toggle{width:100%;height:100%}:host ::ng-deep .dropdown-toggle .icon{display:none}\n"] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarDropdownItemComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ standalone: true, selector: 'it-avatar-dropdown-item', template: '<ng-template><ng-content></ng-content></ng-template>', imports: [NgTemplateOutlet], styles: [".link-list-wrapper{z-index:2;position:relative}a{cursor:pointer}:host ::ng-deep .dropdown-toggle{width:100%;height:100%}:host ::ng-deep .dropdown-toggle .icon{display:none}\n"] }]
14
+ }], propDecorators: { _implicitContent: [{
15
+ type: ViewChild,
16
+ args: [TemplateRef, { static: true }]
17
+ }], link: [{
18
+ type: Input
19
+ }], title: [{
20
+ type: Input
21
+ }], accesskey: [{
22
+ type: Input
23
+ }], tabindex: [{
24
+ type: Input
25
+ }] } });
26
+ export class ItAvatarDropdownComponent {
27
+ constructor() {
28
+ this.componentClass = 'avatar avatar-dropdown';
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ItAvatarDropdownComponent, isStandalone: true, selector: "it-avatar-dropdown", host: { properties: { "class": "this.componentClass" } }, queries: [{ propertyName: "items", predicate: ItAvatarDropdownItemComponent }], ngImport: i0, template: "<it-dropdown id=\"dropdown\" class=\"dropdown\">\n <ng-content button select=\"[it-avatar-dropdown-toggle]\"></ng-content>\n <ng-container list class=\"dropdown-menu\">\n @for (item of items; track item) {\n <li>\n @if (item.link) {\n <a\n [routerLink]=\"item.link\"\n class=\"dropdown-item list-item\"\n title=\"item.title\"\n accesskey=\"item.accesskey\"\n tabindex=\"item.tabindex\">\n <ng-template *ngTemplateOutlet=\"item._implicitContent\"></ng-template>\n </a>\n } @else {\n <div class=\"dropdown-item list-item\">\n <ng-template *ngTemplateOutlet=\"item._implicitContent\"></ng-template>\n </div>\n }\n </li>\n }\n </ng-container>\n</it-dropdown>\n", styles: [".link-list-wrapper{z-index:2;position:relative}a{cursor:pointer}:host ::ng-deep .dropdown-toggle{width:100%;height:100%}:host ::ng-deep .dropdown-toggle .icon{display:none}\n"], dependencies: [{ kind: "ngmodule", type: ItDropdownModule }, { kind: "component", type: i1.ItDropdownComponent, selector: "it-dropdown", inputs: ["mode", "color", "direction", "fullWidth", "megamenu", "dark"], outputs: ["showEvent", "shownEvent", "hideEvent", "hiddenEvent"], exportAs: ["itDropdown"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarDropdownComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ standalone: true, selector: 'it-avatar-dropdown', imports: [ItDropdownModule, NgTemplateOutlet, RouterLink], template: "<it-dropdown id=\"dropdown\" class=\"dropdown\">\n <ng-content button select=\"[it-avatar-dropdown-toggle]\"></ng-content>\n <ng-container list class=\"dropdown-menu\">\n @for (item of items; track item) {\n <li>\n @if (item.link) {\n <a\n [routerLink]=\"item.link\"\n class=\"dropdown-item list-item\"\n title=\"item.title\"\n accesskey=\"item.accesskey\"\n tabindex=\"item.tabindex\">\n <ng-template *ngTemplateOutlet=\"item._implicitContent\"></ng-template>\n </a>\n } @else {\n <div class=\"dropdown-item list-item\">\n <ng-template *ngTemplateOutlet=\"item._implicitContent\"></ng-template>\n </div>\n }\n </li>\n }\n </ng-container>\n</it-dropdown>\n", styles: [".link-list-wrapper{z-index:2;position:relative}a{cursor:pointer}:host ::ng-deep .dropdown-toggle{width:100%;height:100%}:host ::ng-deep .dropdown-toggle .icon{display:none}\n"] }]
36
+ }], propDecorators: { componentClass: [{
37
+ type: HostBinding,
38
+ args: ['class']
39
+ }], items: [{
40
+ type: ContentChildren,
41
+ args: [ItAvatarDropdownItemComponent]
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hdmF0YXIvYXZhdGFyLWRyb3Bkb3duL2F2YXRhci1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvYXZhdGFyL2F2YXRhci1kcm9wZG93bi9hdmF0YXItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUzdDLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDZOQUU3QixXQUFXLDhEQU5aLHNEQUFzRDs7MkZBSXJELDZCQUE2QjtrQkFQekMsU0FBUztpQ0FDSSxJQUFJLFlBQ04seUJBQXlCLFlBQ3pCLHNEQUFzRCxXQUV2RCxDQUFDLGdCQUFnQixDQUFDOzhCQUllLGdCQUFnQjtzQkFBekQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU0vQixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSzs7QUFVUixNQUFNLE9BQU8seUJBQXlCO0lBUHRDO1FBUXdCLG1CQUFjLEdBQUcsd0JBQXdCLENBQUM7S0FHakU7OEdBSlkseUJBQXlCO2tHQUF6Qix5QkFBeUIsOEpBR25CLDZCQUE2Qiw2QkNoRGhELDJ5QkF1QkEsdU9Eb0JZLGdCQUFnQixrUkFBRSxnQkFBZ0Isb0pBQUUsVUFBVTs7MkZBRTdDLHlCQUF5QjtrQkFQckMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sb0JBQW9CLFdBR3JCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDOzhCQUduQyxjQUFjO3NCQUFuQyxXQUFXO3VCQUFDLE9BQU87Z0JBRTRCLEtBQUs7c0JBQXBELGVBQWU7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEhvc3RCaW5kaW5nLCBJbnB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJdERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnLi4vLi4vZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2l0LWF2YXRhci1kcm9wZG93bi1pdGVtJyxcbiAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+JyxcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgSXRBdmF0YXJEcm9wZG93bkl0ZW1Db21wb25lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KSBfaW1wbGljaXRDb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogSW5kaWNhIGlsIGxpbmsgY2hlIHBvc3NpYW1vIHBhc3NhcmUgYWxsJ2VsZW1lbnRvXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBASW5wdXQoKSBsaW5rOiBzdHJpbmcgfCBhbnlbXSB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFBlcm1ldHRlIGRpIHV0aWxpenphcmUgbCdhdHRyaWJ1dG8gaHRtbCB0aXRsZVxuICAgKi9cbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBlcm1ldHRlIGRpIHV0aWxpenphcmUgbCdhdHRyaWJ1dG8gaHRtbCBhY2Nlc3NrZXlcbiAgICovXG4gIEBJbnB1dCgpIGFjY2Vzc2tleT86IHN0cmluZztcblxuICAvKipcbiAgICogUGVybWV0dGUgZGkgdXRpbGl6emFyZSBsJ2F0dHJpYnV0byBodG1sIHRhYmluZGV4XG4gICAqL1xuICBASW5wdXQoKSB0YWJpbmRleD86IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtYXZhdGFyLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbSXREcm9wZG93bk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgUm91dGVyTGlua10sXG59KVxuZXhwb3J0IGNsYXNzIEl0QXZhdGFyRHJvcGRvd25Db21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY29tcG9uZW50Q2xhc3MgPSAnYXZhdGFyIGF2YXRhci1kcm9wZG93bic7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihJdEF2YXRhckRyb3Bkb3duSXRlbUNvbXBvbmVudCkgaXRlbXMhOiBRdWVyeUxpc3Q8SXRBdmF0YXJEcm9wZG93bkl0ZW1Db21wb25lbnQ+O1xufVxuIiwiPGl0LWRyb3Bkb3duIGlkPVwiZHJvcGRvd25cIiBjbGFzcz1cImRyb3Bkb3duXCI+XG4gIDxuZy1jb250ZW50IGJ1dHRvbiBzZWxlY3Q9XCJbaXQtYXZhdGFyLWRyb3Bkb3duLXRvZ2dsZV1cIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250YWluZXIgbGlzdCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cbiAgICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICA8bGk+XG4gICAgICAgIEBpZiAoaXRlbS5saW5rKSB7XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ubGlua1wiXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gbGlzdC1pdGVtXCJcbiAgICAgICAgICAgIHRpdGxlPVwiaXRlbS50aXRsZVwiXG4gICAgICAgICAgICBhY2Nlc3NrZXk9XCJpdGVtLmFjY2Vzc2tleVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIml0ZW0udGFiaW5kZXhcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0uX2ltcGxpY2l0Q29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24taXRlbSBsaXN0LWl0ZW1cIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0uX2ltcGxpY2l0Q29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvbGk+XG4gICAgfVxuICA8L25nLWNvbnRhaW5lcj5cbjwvaXQtZHJvcGRvd24+XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { Component, ContentChildren, HostBinding, Input, TemplateRef, ViewChild } from '@angular/core';
2
+ import { NgTemplateOutlet } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class ItAvatarGroupItemComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarGroupItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ItAvatarGroupItemComponent, isStandalone: true, selector: "it-avatar-item", viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarGroupItemComponent, decorators: [{
9
+ type: Component,
10
+ args: [{
11
+ standalone: true,
12
+ selector: 'it-avatar-item',
13
+ template: '<ng-template><ng-content></ng-content></ng-template>',
14
+ }]
15
+ }], propDecorators: { _implicitContent: [{
16
+ type: ViewChild,
17
+ args: [TemplateRef, { static: true }]
18
+ }] } });
19
+ export class ItAvatarGroupComponent {
20
+ constructor() {
21
+ this.linkList = false;
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ItAvatarGroupComponent, isStandalone: true, selector: "it-avatar-group", inputs: { linkList: "linkList" }, host: { properties: { "class.link-list-wrapper": "this.linkList" } }, queries: [{ propertyName: "avatars", predicate: ItAvatarGroupItemComponent }], ngImport: i0, template: "<ul [class]=\"linkList ? 'link-list avatar-group' : 'avatar-group-stacked'\">\n @for (avatar of avatars; track avatar) {\n <li>\n <ng-container *ngTemplateOutlet=\"avatar._implicitContent\"></ng-container>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarGroupComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ standalone: true, selector: 'it-avatar-group', imports: [NgTemplateOutlet], template: "<ul [class]=\"linkList ? 'link-list avatar-group' : 'avatar-group-stacked'\">\n @for (avatar of avatars; track avatar) {\n <li>\n <ng-container *ngTemplateOutlet=\"avatar._implicitContent\"></ng-container>\n </li>\n }\n</ul>\n" }]
29
+ }], propDecorators: { linkList: [{
30
+ type: Input
31
+ }, {
32
+ type: HostBinding,
33
+ args: ['class.link-list-wrapper']
34
+ }], avatars: [{
35
+ type: ContentChildren,
36
+ args: [ItAvatarGroupItemComponent]
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hdmF0YXIvYXZhdGFyLWdyb3VwL2F2YXRhci1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvYXZhdGFyL2F2YXRhci1ncm91cC9hdmF0YXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU9uRCxNQUFNLE9BQU8sMEJBQTBCOzhHQUExQiwwQkFBMEI7a0dBQTFCLDBCQUEwQiw0SEFFMUIsV0FBVyw4REFKWixzREFBc0Q7OzJGQUVyRCwwQkFBMEI7a0JBTHRDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxzREFBc0Q7aUJBQ2pFOzhCQUcyQyxnQkFBZ0I7c0JBQXpELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7QUFTMUMsTUFBTSxPQUFPLHNCQUFzQjtJQU5uQztRQU9tRCxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBR25FOzhHQUpZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJNQUdoQiwwQkFBMEIsNkJDdEI3QyxpUEFPQSw0Q0RVWSxnQkFBZ0I7OzJGQUVmLHNCQUFzQjtrQkFObEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04saUJBQWlCLFdBRWxCLENBQUMsZ0JBQWdCLENBQUM7OEJBR3NCLFFBQVE7c0JBQXhELEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMseUJBQXlCO2dCQUVGLE9BQU87c0JBQW5ELGVBQWU7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEhvc3RCaW5kaW5nLCBJbnB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtYXZhdGFyLWl0ZW0nLFxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT4nLFxufSlcbmV4cG9ydCBjbGFzcyBJdEF2YXRhckdyb3VwSXRlbUNvbXBvbmVudCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pIF9pbXBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpdC1hdmF0YXItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBJdEF2YXRhckdyb3VwQ29tcG9uZW50IHtcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5saW5rLWxpc3Qtd3JhcHBlcicpIGxpbmtMaXN0ID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihJdEF2YXRhckdyb3VwSXRlbUNvbXBvbmVudCkgYXZhdGFycyE6IFF1ZXJ5TGlzdDxJdEF2YXRhckdyb3VwSXRlbUNvbXBvbmVudD47XG59XG4iLCI8dWwgW2NsYXNzXT1cImxpbmtMaXN0ID8gJ2xpbmstbGlzdCBhdmF0YXItZ3JvdXAnIDogJ2F2YXRhci1ncm91cC1zdGFja2VkJ1wiPlxuICBAZm9yIChhdmF0YXIgb2YgYXZhdGFyczsgdHJhY2sgYXZhdGFyKSB7XG4gICAgPGxpPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF2YXRhci5faW1wbGljaXRDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9saT5cbiAgfVxuPC91bD5cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { ColorsEnum } from '../../../enums/colors.enums';
2
+ import { SizesEnum } from '../../../enums/sizes.enum';
3
+ import { Directive, HostBinding, Input } from "@angular/core";
4
+ import * as i0 from "@angular/core";
5
+ export class ItAvatarDirective {
6
+ /**
7
+ * Indica il colore dell'avatar. Può assumere i valori:
8
+ * <ul>
9
+ * <li> primary
10
+ * <li> secondary
11
+ * <li> green
12
+ * <li> orange
13
+ * <li> red
14
+ * </ul>
15
+ */
16
+ get color() {
17
+ return this._color;
18
+ }
19
+ set color(value) {
20
+ const colorsKey = value;
21
+ if (ColorsEnum[colorsKey]) {
22
+ this._color = ColorsEnum[colorsKey];
23
+ }
24
+ else {
25
+ this._color = undefined;
26
+ }
27
+ }
28
+ /**
29
+ * Indica la grandezza dell'avatar. Può assumere i valori:
30
+ * <ul>
31
+ * <li> xs
32
+ * <li> sm
33
+ * <li> lg
34
+ * <li> xl
35
+ * <li> xxl
36
+ * </ul>
37
+ */
38
+ get size() {
39
+ return this._size;
40
+ }
41
+ set size(value) {
42
+ const sizesKey = value;
43
+ if (SizesEnum[sizesKey]) {
44
+ this._size = SizesEnum[sizesKey];
45
+ }
46
+ else {
47
+ this._size = undefined;
48
+ }
49
+ }
50
+ get hostClasses() {
51
+ let cssClass = 'avatar';
52
+ if (this.size) {
53
+ cssClass += ` ${this.size}`;
54
+ }
55
+ if (this.color) {
56
+ cssClass += ` avatar-${this.color}`;
57
+ }
58
+ return cssClass;
59
+ }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
61
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: ItAvatarDirective, isStandalone: true, selector: "[itAvatar]", inputs: { color: "color", size: "size" }, host: { properties: { "class": "this.hostClasses" } }, exportAs: ["itAvatar"], ngImport: i0 }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ItAvatarDirective, decorators: [{
64
+ type: Directive,
65
+ args: [{
66
+ standalone: true,
67
+ selector: '[itAvatar]',
68
+ exportAs: 'itAvatar'
69
+ }]
70
+ }], propDecorators: { color: [{
71
+ type: Input
72
+ }], size: [{
73
+ type: Input
74
+ }], hostClasses: [{
75
+ type: HostBinding,
76
+ args: ['class']
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9hdmF0YXIvYXZhdGFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7Ozs7Ozs7O09BU0c7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDcEIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQXlCO1FBQ2pDLE1BQU0sU0FBUyxHQUFHLEtBQWdDLENBQUM7UUFDbkQsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNyQyxDQUFDO2FBQUksQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsSUFDSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUF5QjtRQUNoQyxNQUFNLFFBQVEsR0FBRyxLQUErQixDQUFDO1FBQ2pELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQTtRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUlELElBQ0ksV0FBVztRQUNiLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUV2QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLFFBQVEsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUM3QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixRQUFRLElBQUksV0FBVyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDckMsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7OEdBL0RVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUw3QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCOzhCQWFLLEtBQUs7c0JBRFIsS0FBSztnQkF3QkYsSUFBSTtzQkFEUCxLQUFLO2dCQWlCRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yc0VudW0gfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9jb2xvcnMuZW51bXMnO1xuaW1wb3J0IHsgU2l6ZXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvc2l6ZXMuZW51bSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tpdEF2YXRhcl0nLFxuICBleHBvcnRBczogJ2l0QXZhdGFyJ1xufSlcbmV4cG9ydCBjbGFzcyBJdEF2YXRhckRpcmVjdGl2ZSB7XG4gIC8qKlxuICAgKiBJbmRpY2EgaWwgY29sb3JlIGRlbGwnYXZhdGFyLiBQdcOyIGFzc3VtZXJlIGkgdmFsb3JpOlxuICAgKiA8dWw+XG4gICAqIDxsaT4gcHJpbWFyeVxuICAgKiA8bGk+IHNlY29uZGFyeVxuICAgKiA8bGk+IGdyZWVuXG4gICAqIDxsaT4gb3JhbmdlXG4gICAqIDxsaT4gcmVkXG4gICAqIDwvdWw+XG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgY29sb3IoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3JcbiAgfVxuICBzZXQgY29sb3IodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNvbG9yc0tleSA9IHZhbHVlIGFzIGtleW9mIHR5cGVvZiBDb2xvcnNFbnVtO1xuICAgIGlmIChDb2xvcnNFbnVtW2NvbG9yc0tleV0pe1xuICAgICAgdGhpcy5fY29sb3IgPSBDb2xvcnNFbnVtW2NvbG9yc0tleV0gXG4gICAgfWVsc2V7XG4gICAgICB0aGlzLl9jb2xvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfY29sb3I/OiBDb2xvcnNFbnVtO1xuICAvKipcbiAgICogSW5kaWNhIGxhIGdyYW5kZXp6YSBkZWxsJ2F2YXRhci4gUHXDsiBhc3N1bWVyZSBpIHZhbG9yaTpcbiAgICogPHVsPlxuICAgKiA8bGk+IHhzXG4gICAqIDxsaT4gc21cbiAgICogPGxpPiBsZ1xuICAgKiA8bGk+IHhsXG4gICAqIDxsaT4geHhsXG4gICAqIDwvdWw+XG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2l6ZSgpOiBTaXplc0VudW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zaXplXG4gIH1cbiAgc2V0IHNpemUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IHNpemVzS2V5ID0gdmFsdWUgYXMga2V5b2YgdHlwZW9mIFNpemVzRW51bTtcbiAgICBpZiAoU2l6ZXNFbnVtW3NpemVzS2V5XSkge1xuICAgICAgdGhpcy5fc2l6ZSA9IFNpemVzRW51bVtzaXplc0tleV07XG4gICAgfSBcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX3NpemUgPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zaXplPzogU2l6ZXNFbnVtO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBsZXQgY3NzQ2xhc3MgPSAnYXZhdGFyJ1xuXG4gICAgaWYgKHRoaXMuc2l6ZSkge1xuICAgICAgY3NzQ2xhc3MgKz0gYCAke3RoaXMuc2l6ZX1gXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29sb3IpIHtcbiAgICAgIGNzc0NsYXNzICs9IGAgYXZhdGFyLSR7dGhpcy5jb2xvcn1gXG4gICAgfVxuXG4gICAgcmV0dXJuIGNzc0NsYXNzXG4gIH1cblxuXG59XG4iXX0=