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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-angular-kit.mjs","sources":["../../../projects/design-angular-kit/src/lib/design-angular-kit-config.ts","../../../projects/design-angular-kit/src/lib/design-angular-kit.module.ts","../../../projects/design-angular-kit/src/lib/abstracts/abstract.component.ts","../../../projects/design-angular-kit/src/lib/utils/boolean-input.ts","../../../projects/design-angular-kit/src/lib/components/core/collapse/collapse.component.ts","../../../projects/design-angular-kit/src/lib/components/core/collapse/collapse.component.html","../../../projects/design-angular-kit/src/lib/components/core/accordion/accordion.component.ts","../../../projects/design-angular-kit/src/lib/components/core/accordion/accordion.component.html","../../../projects/design-angular-kit/src/lib/components/utils/icon/icon.component.ts","../../../projects/design-angular-kit/src/lib/components/utils/icon/icon.component.html","../../../projects/design-angular-kit/src/lib/components/core/alert/alert.component.ts","../../../projects/design-angular-kit/src/lib/components/core/alert/alert.component.html","../../../projects/design-angular-kit/src/lib/components/core/badge/badge.directive.ts","../../../projects/design-angular-kit/src/lib/components/core/progress-bar/progress-bar.component.ts","../../../projects/design-angular-kit/src/lib/components/core/progress-bar/progress-bar.component.html","../../../projects/design-angular-kit/src/lib/components/core/progress-button/progress-button.component.ts","../../../projects/design-angular-kit/src/lib/components/core/progress-button/progress-button.component.html","../../../projects/design-angular-kit/src/lib/components/core/button/button.directive.ts","../../../projects/design-angular-kit/src/lib/components/core/callout/callout.component.ts","../../../projects/design-angular-kit/src/lib/components/core/callout/callout.component.html","../../../projects/design-angular-kit/src/lib/components/core/card/card.component.ts","../../../projects/design-angular-kit/src/lib/components/core/card/card.component.html","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel-item/carousel-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel-item/carousel-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel/carousel.component.ts","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel/carousel.component.html","../../../projects/design-angular-kit/src/lib/components/core/carousel/carousel.module.ts","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer.component.html","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.html","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.html","../../../projects/design-angular-kit/src/lib/components/core/dimmer/dimmer.module.ts","../../../projects/design-angular-kit/src/lib/components/core/link/link.component.ts","../../../projects/design-angular-kit/src/lib/components/core/link/link.component.html","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown-item/dropdown-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown-item/dropdown-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown/dropdown.component.ts","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown/dropdown.component.html","../../../projects/design-angular-kit/src/lib/components/core/dropdown/dropdown.module.ts","../../../projects/design-angular-kit/src/lib/components/core/list/list/list.component.ts","../../../projects/design-angular-kit/src/lib/components/core/list/list/list.component.html","../../../projects/design-angular-kit/src/lib/components/core/list/list-item/list-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/list/list-item/list-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/list/list.module.ts","../../../projects/design-angular-kit/src/lib/components/core/modal/modal.component.ts","../../../projects/design-angular-kit/src/lib/components/core/modal/modal.component.html","../../../projects/design-angular-kit/src/lib/interfaces/core.ts","../../../projects/design-angular-kit/src/lib/services/notification/notification.service.ts","../../../projects/design-angular-kit/src/lib/components/core/notifications/notifications.component.ts","../../../projects/design-angular-kit/src/lib/components/core/notifications/notifications.component.html","../../../projects/design-angular-kit/src/lib/abstracts/abstract-form.component.ts","../../../projects/design-angular-kit/src/lib/utils/regex.ts","../../../projects/design-angular-kit/src/lib/validators/it-validators.ts","../../../projects/design-angular-kit/src/lib/pipes/mark-matching-text.pipe.ts","../../../projects/design-angular-kit/src/lib/components/form/input/input.component.ts","../../../projects/design-angular-kit/src/lib/components/form/input/input.component.html","../../../projects/design-angular-kit/src/lib/components/core/pagination/pagination.component.ts","../../../projects/design-angular-kit/src/lib/components/core/pagination/pagination.component.html","../../../projects/design-angular-kit/src/lib/components/core/popover/popover.directive.ts","../../../projects/design-angular-kit/src/lib/components/core/spinner/spinner.component.ts","../../../projects/design-angular-kit/src/lib/components/core/spinner/spinner.component.html","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers-item/steppers-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers-item/steppers-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers-container/steppers-container.component.ts","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers-container/steppers-container.component.html","../../../projects/design-angular-kit/src/lib/components/core/steppers/steppers.module.ts","../../../projects/design-angular-kit/src/lib/components/core/tab/tab-item/tab-item.component.ts","../../../projects/design-angular-kit/src/lib/components/core/tab/tab-item/tab-item.component.html","../../../projects/design-angular-kit/src/lib/components/core/tab/tab-container/tab-container.component.ts","../../../projects/design-angular-kit/src/lib/components/core/tab/tab-container/tab-container.component.html","../../../projects/design-angular-kit/src/lib/components/core/tab/tab.module.ts","../../../projects/design-angular-kit/src/lib/components/core/table/table.component.ts","../../../projects/design-angular-kit/src/lib/components/core/table/table.component.html","../../../projects/design-angular-kit/src/lib/components/core/tooltip/tooltip.directive.ts","../../../projects/design-angular-kit/src/lib/components/form/checkbox/checkbox.component.ts","../../../projects/design-angular-kit/src/lib/components/form/checkbox/checkbox.component.html","../../../projects/design-angular-kit/src/lib/components/form/password-input/password-input.component.ts","../../../projects/design-angular-kit/src/lib/components/form/password-input/password-input.component.html","../../../projects/design-angular-kit/src/lib/components/form/radio-button/radio-button.component.ts","../../../projects/design-angular-kit/src/lib/components/form/radio-button/radio-button.component.html","../../../projects/design-angular-kit/src/lib/components/form/range/range.component.ts","../../../projects/design-angular-kit/src/lib/components/form/range/range.component.html","../../../projects/design-angular-kit/src/lib/components/form/rating/rating.component.ts","../../../projects/design-angular-kit/src/lib/components/form/rating/rating.component.html","../../../projects/design-angular-kit/src/lib/components/form/select/select.component.ts","../../../projects/design-angular-kit/src/lib/components/form/select/select.component.html","../../../projects/design-angular-kit/src/lib/components/form/textarea/textarea.component.ts","../../../projects/design-angular-kit/src/lib/components/form/textarea/textarea.component.html","../../../projects/design-angular-kit/src/lib/utils/file-utils.ts","../../../projects/design-angular-kit/src/lib/components/form/upload-drag-drop/upload-drag-drop.component.ts","../../../projects/design-angular-kit/src/lib/components/form/upload-drag-drop/upload-drag-drop.component.html","../../../projects/design-angular-kit/src/lib/components/form/upload-file-list/upload-file-list.component.ts","../../../projects/design-angular-kit/src/lib/components/form/upload-file-list/upload-file-list.component.html","../../../projects/design-angular-kit/src/lib/components/form/form.module.ts","../../../projects/design-angular-kit/src/lib/components/navigation/back-button/back-button.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/back-button/back-button.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/back-to-top/back-to-top.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/back-to-top/back-to-top.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.html","../../../projects/design-angular-kit/src/lib/components/navigation/breadcrumbs/breadcrumbs.module.ts","../../../projects/design-angular-kit/src/lib/components/navigation/header/header.component.ts","../../../projects/design-angular-kit/src/lib/components/navigation/header/header.component.html","../../../projects/design-angular-kit/src/lib/components/utils/language-switcher/language-switcher.component.ts","../../../projects/design-angular-kit/src/lib/components/utils/language-switcher/language-switcher.component.html","../../../projects/design-angular-kit/src/lib/components/utils/error-page/error-page.component.ts","../../../projects/design-angular-kit/src/lib/components/utils/error-page/error-page.component.html","../../../projects/design-angular-kit/src/lib/components/core/chip/chip.component.ts","../../../projects/design-angular-kit/src/lib/components/core/chip/chip.component.html","../../../projects/design-angular-kit/src/lib/components/core/forward/forward.directive.ts","../../../projects/design-angular-kit/src/lib/components/components.module.ts","../../../projects/design-angular-kit/src/lib/interfaces/icon.ts","../../../projects/design-angular-kit/src/public_api.ts","../../../projects/design-angular-kit/src/design-angular-kit.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { DesignAngularKitInit } from './interfaces/design-angular-kit-init';\n\nexport const DESIGN_ANGULAR_KIT_CONFIG = new InjectionToken<DesignAngularKitConfig>('DesignAngularKitConfig');\n\nexport class DesignAngularKitConfig {\n\n /**\n * The init config\n * @private\n */\n private readonly initConfig?: DesignAngularKitInit;\n\n constructor(nextInit?: DesignAngularKitInit) {\n this.initConfig = nextInit;\n }\n\n /**\n * The initial path in the `href` attribute in the `IconComponent` component\n * @default './bootstrap-italia/dist/svg/sprites.svg'\n */\n get iconHref(): string {\n return this.initConfig?.iconHref || './bootstrap-italia/dist/svg/sprites.svg';\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { DESIGN_ANGULAR_KIT_CONFIG, DesignAngularKitConfig } from './design-angular-kit-config';\nimport { DesignAngularKitInit } from './interfaces/design-angular-kit-init';\n\n@NgModule({\n imports: [\n HttpClientModule,\n TranslateModule.forChild({\n loader: {\n provide: TranslateLoader,\n useFactory: (http: HttpClient) => new TranslateHttpLoader(http, '/bootstrap-italia/i18n/'),\n deps: [HttpClient]\n },\n extend: true,\n isolate: false,\n defaultLanguage: 'it'\n })\n ],\n providers: [\n {\n provide: DESIGN_ANGULAR_KIT_CONFIG,\n useValue: new DesignAngularKitConfig()\n }\n ]\n})\nexport class DesignAngularKitModule {\n\n static forRoot(initConfig?: DesignAngularKitInit): ModuleWithProviders<DesignAngularKitModule> {\n return {\n ngModule: DesignAngularKitModule,\n providers: [\n {\n provide: DESIGN_ANGULAR_KIT_CONFIG,\n useValue: new DesignAngularKitConfig(initConfig)\n }\n ]\n };\n }\n\n constructor(\n private readonly translateService: TranslateService\n ) {\n translateService.addLangs(['it', 'en']); // Adds 'it' and 'eng' as available languages.\n translateService.use(translateService.defaultLang);\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\n\n@Component({ template: '' })\nexport abstract class ItAbstractComponent implements AfterViewInit, OnChanges {\n\n /**\n * The element ID\n */\n @Input() id: string = this.getDefaultId();\n\n /**\n * Fired when component input attributes was changed\n */\n @Output() public valueChanges: EventEmitter<void>;\n\n /**\n * Counter of active instances\n * @private\n */\n private static instances = 0;\n\n\n protected readonly _renderer: Renderer2; // Injected\n protected readonly _elementRef: ElementRef; // Injected\n protected readonly _changeDetectorRef: ChangeDetectorRef; // Injected\n\n constructor() {\n this._renderer = inject(Renderer2);\n this._elementRef = inject(ElementRef);\n this._changeDetectorRef = inject(ChangeDetectorRef);\n\n this.valueChanges = new EventEmitter<void>();\n }\n\n ngAfterViewInit(): void {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'id');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.valueChanges.next(); // The inputs were changed\n }\n\n /**\n * Generate unique id for components\n * @private\n */\n private getDefaultId(): string {\n const name = this.constructor.name.replace('Component', '');\n const kebabName = name.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\n return `${kebabName}-${ItAbstractComponent.instances++}`;\n }\n}\n","export type BooleanInput = boolean | 'true' | 'false'\n\n/**\n * Check if boolean input has true value and not is `undefined`\n * @param booleanInput the boolean input\n */\nexport function isTrueBooleanInput(booleanInput?: BooleanInput): boolean {\n return booleanInput !== undefined && (booleanInput === true || booleanInput === 'true');\n}\n\n/**\n * Check if boolean input has false value or is `undefined`\n * @param booleanInput the boolean input\n */\nexport function isFalseBooleanInput(booleanInput?: BooleanInput): boolean {\n return booleanInput === undefined || booleanInput === false || booleanInput === 'false'\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { Collapse } from 'bootstrap-italia';\n\n@Component({\n standalone: true,\n selector: 'it-collapse',\n templateUrl: './collapse.component.html',\n exportAs: 'itCollapse',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItCollapseComponent extends ItAbstractComponent implements AfterViewInit {\n\n /**\n * Enable multiple collapse\n */\n @Input() multi: BooleanInput | undefined;\n\n /**\n * Toggles the collapsible element on invocation\n */\n @Input() opened: BooleanInput | undefined;\n\n /**\n * Custom class\n */\n @Input() class: string = '';\n\n /**\n * This event fires immediately when the show method is called.\n */\n @Output() showEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).\n */\n @Output() shownEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires immediately when the hide method is called.\n */\n @Output() hideEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).\n */\n @Output() hiddenEvent: EventEmitter<Event> = new EventEmitter();\n\n\n private collapse?: Collapse;\n\n @ViewChild('collapse') protected collapseDiv?: ElementRef<HTMLDivElement>;\n\n get isMulti(): boolean {\n return isTrueBooleanInput(this.multi);\n }\n\n get isOpenedOnStart(): boolean {\n return isTrueBooleanInput(this.opened);\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');\n\n if (this.collapseDiv) {\n const element = this.collapseDiv.nativeElement;\n this.collapse = Collapse.getOrCreateInstance(element, {\n toggle: this.isOpenedOnStart\n });\n\n element.addEventListener('show.bs.collapse', event => this.showEvent.emit(event));\n element.addEventListener('shown.bs.collapse', event => this.shownEvent.emit(event));\n element.addEventListener('hide.bs.collapse', event => this.hideEvent.emit(event));\n element.addEventListener('hidden.bs.collapse', event => this.hiddenEvent.emit(event));\n }\n }\n\n /**\n * Shows a resealable item\n * NOTE: Returns to the caller before the collapsable element has actually been shown (onShown event).\n */\n public show(): void {\n this.collapse?.show();\n }\n\n /**\n * Hides a resealable item\n * NOTE: Returns to the caller before the collapsable element has actually been hidden (onHidden Event)\n */\n public hide(): void {\n this.collapse?.hide();\n }\n\n /**\n * Toggle a collapsible item to show or hide it.\n * NOTE: Returns to the caller before the collapsable element has actually been shown or hidden (onShown and onHidden events)\n */\n public toggle(): void {\n this.collapse?.toggle();\n }\n\n /**\n * Eliminates the possibility of an item being resealable\n */\n public dispose(): void {\n this.collapse?.dispose();\n }\n}\n","<div [id]=\"id\" class=\"collapse {{class}}\" [class.multi-collapse]=\"isMulti\" #collapse>\n <ng-content></ng-content>\n</div>\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { ItCollapseComponent } from '../collapse/collapse.component';\n\n/**\n * Accordion\n * @description Build vertically collapsible accordions based on Collapse.\n */\n@Component({\n standalone: true,\n selector: 'it-accordion[title]',\n templateUrl: './accordion.component.html',\n exportAs: 'itAccordion',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItAccordionComponent extends ItCollapseComponent implements AfterViewInit {\n\n /**\n * Accordion Title\n */\n @Input() title!: string;\n\n @ViewChild('collapse') protected override collapseDiv?: ElementRef<HTMLDivElement>;\n\n protected isCollapsed: boolean = true;\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');\n\n this.isCollapsed = !this.isOpenedOnStart;\n this.hideEvent.subscribe(() => {\n this.isCollapsed = true;\n this._changeDetectorRef.detectChanges();\n });\n this.showEvent.subscribe(() => {\n this.isCollapsed = false;\n this._changeDetectorRef.detectChanges();\n });\n }\n\n}\n","<div class=\"accordion\">\n <div class=\"accordion-item\">\n\n <h2 class=\"accordion-header\" id=\"collapse-{{id}}-heading\">\n <button\n class=\"accordion-button\"\n type=\"button\"\n data-bs-toggle=\"collapse\"\n [class.collapsed]=\"isCollapsed\"\n [attr.data-bs-target]=\"'#collapse-' + id\"\n [attr.aria-controls]=\"'collapse-' + id\"\n [attr.aria-expanded]=\"isOpenedOnStart ? 'true' : 'false'\">\n {{title}}\n </button>\n </h2>\n\n <div #collapse id=\"collapse-{{id}}\" role=\"region\"\n class=\"accordion-collapse collapse {{class}}\"\n [attr.aria-labelledby]=\"'collapse-' + id + '-heading'\">\n\n <div class=\"accordion-body\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n\n","import { ChangeDetectionStrategy, Component, Inject, Input } from '@angular/core';\nimport { IconColor, IconName, IconSize } from '../../../interfaces/icon';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { DESIGN_ANGULAR_KIT_CONFIG, DesignAngularKitConfig } from '../../../design-angular-kit-config';\n\n@Component({\n standalone: true,\n selector: 'it-icon[name]',\n templateUrl: './icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItIconComponent {\n\n /**\n * The icon name\n */\n @Input() name!: IconName;\n\n /**\n * The icon size\n */\n @Input() size: IconSize | undefined;\n\n /**\n * The icon color\n */\n @Input() color: IconColor | undefined;\n\n /**\n * Create a padding proportional to the size of the surrounding icon.\n */\n @Input() padded: BooleanInput | undefined;\n\n /**\n * Custom class of svg\n */\n @Input() svgClass: string | undefined;\n\n /**\n * Return the icon href\n */\n get iconHref(): string {\n return `${this.config.iconHref}#it-${this.name}`;\n }\n\n /**\n * Return the icon class\n */\n get iconClass(): string {\n let iconClass = 'icon';\n if (this.size) {\n iconClass += ` icon-${this.size}`;\n }\n if (this.color) {\n iconClass += ` icon-${this.color}`;\n }\n if (isTrueBooleanInput(this.padded)) {\n iconClass += ` icon-padded`;\n }\n if (this.svgClass) {\n iconClass += ` ${this.svgClass}`;\n }\n return iconClass;\n }\n\n constructor(\n @Inject(DESIGN_ANGULAR_KIT_CONFIG) private readonly config: DesignAngularKitConfig\n ) {\n }\n}\n","<svg [class]=\"iconClass\">\n <use [attr.href]=\"iconHref\" [attr.xlink:href]=\"iconHref\"></use>\n</svg>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild\n} from '@angular/core';\nimport { AlertColor } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { Alert } from 'bootstrap-italia';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { NgIf } from '@angular/common';\n\n/**\n * Alert\n * @description You can provide feedback to the user via alert messages.\n */\n@Component({\n standalone: true,\n selector: 'it-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n exportAs: 'itAlert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, TranslateModule, ItIconComponent]\n})\nexport class ItAlertComponent extends ItAbstractComponent implements AfterViewInit {\n\n /**\n * The alert color\n * @default info\n */\n @Input() color: AlertColor = 'info';\n\n /**\n * Inserts the close button\n * @default false\n */\n @Input() dismissible: BooleanInput | undefined;\n\n /**\n * This event fires immediately when the instance's close method is called.\n */\n @Output() public closeEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires when the alert has been closed (it will wait for CSS transitions to complete).\n */\n @Output() public closedEvent: EventEmitter<Event> = new EventEmitter();\n\n private alert?: Alert;\n\n @ViewChild('alertElement') private alertElement?: ElementRef<HTMLDivElement>;\n\n\n protected get isDismissible(): boolean {\n return isTrueBooleanInput(this.dismissible);\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (this.alertElement) {\n const element = this.alertElement.nativeElement;\n this.alert = Alert.getOrCreateInstance(element);\n\n element.addEventListener('close.bs.alert', event => this.closeEvent.emit(event));\n element.addEventListener('closed.bs.alert', event => this.closedEvent.emit(event));\n }\n }\n\n /**\n * Close an alert by removing it from the DOM.\n * If the `.fade` and `.show` classes are present in the element, the alert will be closed with a disappearing effect.\n */\n public close(): void {\n this.alert?.close();\n }\n\n /**\n * The alert is removed\n */\n public dispose(): void {\n this.alert?.dispose();\n }\n}\n","<div class=\"alert alert-{{color}}\" #alertElement\n [class.alert-dismissible]=\"isDismissible\"\n [class.fade]=\"isDismissible\"\n [class.show]=\"isDismissible\"\n role=\"alert\">\n <h4 class=\"alert-heading\">\n <ng-content select=\"[heading]\"></ng-content>\n </h4>\n\n <ng-content></ng-content>\n\n <button *ngIf=\"isDismissible\"\n type=\"button\"\n class=\"btn-close\"\n data-bs-dismiss=\"alert\"\n [attr.aria-label]=\"'it.core.close-alert'|translate\">\n <it-icon name=\"close\"></it-icon>\n </button>\n</div>\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { BadgeColor } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n/**\n * Badge\n * @description Useful for small counters and labels\n */\n@Directive({\n standalone: true,\n selector: '[itBadge]',\n exportAs: 'itBadge'\n})\nexport class ItBadgeDirective {\n\n /**\n * Define the badge color\n * @default undefined\n */\n @Input('itBadge') color: BadgeColor | undefined;\n\n /**\n * Show rounded badge\n * @default false\n */\n @Input() rounded: BooleanInput | undefined;\n\n @HostBinding('class')\n protected get badgeClass(): string {\n let badgeClass = 'badge';\n if (isTrueBooleanInput(this.rounded)) {\n badgeClass += ` rounded-pill`;\n }\n if (this.color) {\n badgeClass += ` bg-${this.color}`;\n }\n\n return badgeClass;\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ProgressBarColor } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'it-progress-bar[value]',\n templateUrl: './progress-bar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, TranslateModule]\n})\nexport class ItProgressBarComponent {\n\n /**\n * The progress bar value [0, 100]\n */\n @Input() value!: number;\n\n /**\n * Show the progress label\n */\n @Input() showLabel: BooleanInput | undefined;\n\n /**\n * Show the progress as indeterminate\n */\n @Input() indeterminate: BooleanInput | undefined;\n\n /**\n * The progress bar color\n */\n @Input() color: ProgressBarColor | undefined;\n\n /**\n * Return the background color\n */\n get bgColor(): string {\n if (!this.color) {\n return '';\n }\n\n return ` bg-${this.color}`;\n }\n\n get isIndeterminate(): boolean {\n return isTrueBooleanInput(this.indeterminate);\n }\n}\n","<div class=\"progress-bar-wrapper\">\n <div *ngIf=\"showLabel\" class=\"progress-bar-label\">\n <span class=\"visually-hidden\">{{'it.core.progress'|translate}} </span>{{value}}%\n </div>\n <div class=\"progress\"\n [class.progress-color]=\"!!color\"\n [class.progress-indeterminate]=\"isIndeterminate\">\n\n <div *ngIf=\"isIndeterminate; else determinate\" class=\"progress-bar{{bgColor}}\" role=\"progressbar\"></div>\n <ng-template #determinate>\n <div class=\"progress-bar{{bgColor}}\" role=\"progressbar\" [style.width.%]=\"value\"\n [attr.aria-valuenow]=\"value\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n </ng-template>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ProgressBarColor } from '../../../interfaces/core';\nimport { ItProgressBarComponent } from '../progress-bar/progress-bar.component';\nimport { NgIf } from '@angular/common';\n\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[itButton][progress]',\n templateUrl: './progress-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, ItProgressBarComponent]\n})\nexport class ItProgressButtonComponent {\n\n /**\n * Behavior of the progress bar\n * - <b>true</b>: Show indeterminate progress bar\n * - <b>false</b> or <b>undefined</b>: Hide progress bar\n * - <b>number</b> [0, 100]: Assign a specific value to the progress bar\n * @default undefined\n */\n @Input() progress: number | BooleanInput | undefined;\n\n /**\n * The progress bar color\n */\n @Input() progressColor: ProgressBarColor | undefined;\n\n get isProgress(): boolean {\n return typeof this.progress === 'number' || isTrueBooleanInput(this.progress);\n }\n\n get progressValue(): number {\n return typeof this.progress === 'number' ? this.progress : 0;\n }\n\n get isIndeterminate(): boolean {\n return typeof this.progress !== 'number' && isTrueBooleanInput(this.progress);\n }\n\n}\n","<ng-content></ng-content>\n\n<it-progress-bar *ngIf=\"isProgress\"\n [value]=\"progressValue\"\n [indeterminate]=\"isIndeterminate\"\n [color]=\"progressColor\"></it-progress-bar>\n","import { ContentChildren, Directive, Host, HostBinding, HostListener, Input, Optional, QueryList } from '@angular/core';\nimport { ButtonColor, ButtonSize } from '../../../interfaces/core';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ItProgressButtonComponent } from '../progress-button/progress-button.component';\n\n/**\n * Button\n * @description Bootstrap italia custom button styles\n */\n@Directive({\n standalone: true,\n selector: '[itButton]',\n exportAs: 'itButton'\n})\nexport class ItButtonDirective {\n\n /**\n * Button color\n * @default undefined\n */\n @Input('itButton') color: ButtonColor | undefined;\n\n /**\n * Button size\n * @default undefined\n */\n @Input() size: ButtonSize | undefined;\n\n /**\n * Indicates whether the button occupies all the width available to it.\n * @default undefined\n */\n @Input() block: ButtonSize | undefined;\n\n /**\n * If button is disabled\n * @default false\n */\n @Input() @HostBinding('disabled') disabled: BooleanInput | undefined;\n\n /**\n * The icon children\n * @default undefined\n */\n @ContentChildren(ItIconComponent) protected icons?: QueryList<ItIconComponent>;\n\n private isFocus = false;\n\n constructor(\n @Optional() @Host() private progressButtonComponent: ItProgressButtonComponent\n ) {\n }\n\n @HostListener('focus')\n protected onFocus() {\n this.isFocus = true;\n }\n\n @HostListener('blur')\n protected onBlur() {\n this.isFocus = false;\n }\n\n @HostBinding('class')\n protected get hostClasses(): string {\n let cssClass = 'btn';\n\n if (this.color) {\n cssClass += ` btn-${this.color}`;\n }\n\n if (this.size) {\n cssClass += ` btn-${this.size}`;\n }\n\n if (this.block) {\n cssClass += ' btn-block';\n }\n\n if (isTrueBooleanInput(this.disabled)) {\n cssClass += ' disabled';\n }\n\n if (this.isFocus) {\n cssClass += ' focus--mouse';\n }\n\n if (this.icons?.length && !this.progressButtonComponent) {\n cssClass += ' btn-icon';\n }\n\n if (this.progressButtonComponent) {\n cssClass += ' btn-progress';\n }\n\n return cssClass;\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CalloutAppearance, CalloutColor } from '../../../interfaces/core';\nimport { IconName } from '../../../interfaces/icon';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\n\n/**\n * Callout\n * @description Callouts can be used to highlight certain parts of the text that require particular attention. They may contain error messages, warnings, hints, etc.\n */\n@Component({\n standalone: true,\n selector: 'it-callout',\n templateUrl: './callout.component.html',\n styles: [`\n .callout-big-text:empty {\n display: none;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, NgTemplateOutlet, ItIconComponent]\n})\nexport class ItCalloutComponent {\n\n /**\n * Callout label\n * @default undefined\n */\n @Input() label: string | undefined;\n\n /**\n * Callout hiddenLabel\n * @default undefined\n */\n @Input() hiddenLabel: string | undefined;\n\n /**\n * Callout color\n * - <b>success</b>\n * - <b>danger</b>\n * - <b>warning</b>\n * - <b>important</b>\n * - <b>note</b>\n * @default undefined\n */\n @Input() color: CalloutColor | undefined;\n\n /**\n * Callout appearance\n * - <b>default</b>\n * - <b>highlight</b>: Callout version with border only on the left side\n * - <b>more</b>: It looks radically different from the other styles available and is suitable for more extensive texts\n * @default default\n */\n @Input() appearance: CalloutAppearance = 'default';\n\n /**\n * Custom icon\n * @default undefined\n */\n @Input() icon: IconName | undefined;\n\n protected get iconName(): IconName {\n if (this.icon) {\n return this.icon;\n }\n\n if (this.appearance === 'more') {\n return 'zoom-in';\n }\n\n switch (this.color) {\n case 'success':\n return 'check-circle';\n case 'warning':\n return 'help-circle';\n case 'danger':\n return 'close-circle';\n case 'important':\n case 'note':\n default:\n return 'info-circle';\n }\n }\n\n}\n","<div class=\"callout {{color}}\" [class.callout-highlight]=\"appearance === 'highlight'\"\n [class.callout-more]=\"appearance === 'more'\">\n\n <div *ngIf=\"appearance === 'default'; else inner\" class=\"callout-inner\">\n <ng-container *ngTemplateOutlet=\"inner\"></ng-container>\n </div>\n</div>\n\n<ng-template #inner>\n <div class=\"callout-title\" *ngIf=\"label\">\n <it-icon [name]=\"iconName\"></it-icon>\n <span *ngIf=\"hiddenLabel\" class=\"visually-hidden\">{{ hiddenLabel }}</span>\n <span class=\"text\">{{ label }}</span>\n </div>\n <p class=\"callout-big-text\">\n <ng-content select=\"[bigText]\"></ng-content>\n </p>\n <ng-content></ng-content>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n/**\n * Card\n * @description A container of texts and images with many options and variations.\n */\n@Component({\n standalone: true,\n selector: 'it-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItCardComponent extends ItAbstractComponent {\n\n /**\n * It serves to space the cards in their mobile version.\n * @default true\n */\n @Input() space: BooleanInput = true;\n\n /**\n * To create cards with short or \"preview\" content\n * @default false\n */\n @Input() teaser: BooleanInput | undefined;\n\n /**\n * Card with image\n * @default false\n */\n @Input() hasImage: BooleanInput | undefined;\n\n /**\n * To add rounding effects\n * @default false\n */\n @Input() rounded: BooleanInput | undefined;\n\n /**\n * To add shadow effects\n * @default false\n */\n @Input() shadow: BooleanInput | undefined;\n\n /**\n * Custom card class\n * @default ''\n */\n @Input() cardClass: string = '';\n\n /**\n * Custom card body class\n * @default ''\n */\n @Input() bodyClass: string = '';\n\n protected get isSpace(): boolean {\n return isTrueBooleanInput(this.space);\n }\n\n protected get isTeaser(): boolean {\n return isTrueBooleanInput(this.teaser);\n }\n\n protected get isHasImage(): boolean {\n return isTrueBooleanInput(this.hasImage);\n }\n\n protected get isRounded(): boolean {\n return isTrueBooleanInput(this.rounded);\n }\n\n protected get isShadow(): boolean {\n return isTrueBooleanInput(this.shadow);\n }\n\n}\n","<div class=\"card-wrapper\" [class.card-space]=\"isSpace\">\n <div class=\"card {{cardClass}}\"\n [class.card-teaser]=\"isTeaser\"\n [class.card-img.no-after]=\"isHasImage\"\n [class.shadow]=\"isShadow\"\n [class.rounded]=\"isRounded\">\n\n <ng-content select=\"[beforeBody]\"></ng-content>\n\n <div class=\"card-body {{bodyClass}}\">\n <ng-content></ng-content>\n </div>\n\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@angular/core';\nimport { ItAbstractComponent } from '../../../../abstracts/abstract.component';\n\n/**\n * Carousel Item\n * @description element, image or text slide of carousel\n */\n@Component({\n standalone: true,\n selector: 'it-carousel-item',\n templateUrl: './carousel-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItCarouselItemComponent extends ItAbstractComponent {\n\n /**\n * The content of item\n */\n @ViewChild(TemplateRef) public htmlContent!: TemplateRef<any>;\n\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n ViewChild\n} from '@angular/core';\nimport { CarouselType } from '../../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { ItCarouselItemComponent } from '../carousel-item/carousel-item.component';\nimport { CarouselBI } from 'bootstrap-italia';\nimport { startWith, Subscription } from 'rxjs';\nimport { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\n\n/**\n * Carousel\n * @description A presentation component for scrolling through elements, images or text slides.\n */\n@Component({\n standalone: true,\n selector: 'it-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n exportAs: 'itCarousel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgForOf, NgTemplateOutlet, NgIf]\n})\nexport class ItCarouselComponent implements AfterViewInit, OnDestroy {\n\n /**\n * The callout title\n * @default undefined\n */\n @Input() title: string | undefined;\n\n /**\n * The carousel type\n * @default default\n */\n @Input() type: CarouselType = 'default';\n\n /**\n * Custom class in splide__track element\n * @default ''\n */\n @Input() trackClass: string = '';\n\n /**\n * True for full screen (landscape) viewing\n * @default undefined\n */\n @Input() fullCarousel: BooleanInput | undefined;\n\n /**\n * To indicate that the contained image is of a large type\n * @default undefined\n */\n @Input() bigImg: BooleanInput | undefined;\n\n /**\n * To indicate that the contained image is of a standard type\n * @default undefined\n */\n @Input() standardImage: BooleanInput | undefined;\n\n /**\n * Card line style\n * @default undefined\n */\n @Input() lined: BooleanInput | undefined;\n\n @ContentChildren(ItCarouselItemComponent) protected items?: QueryList<ItCarouselItemComponent>;\n\n private carousel?: CarouselBI;\n\n @ViewChild('carousel') private carouselDiv!: ElementRef<HTMLDivElement>;\n\n private itemSubscriptions?: Array<Subscription>;\n\n protected get typeClass(): string {\n const typeClass = 'it-carousel-landscape-abstract';\n return this.type === 'default' ? typeClass : typeClass + `-${this.type}`;\n }\n\n protected get isFullCarousel(): boolean {\n return isTrueBooleanInput(this.fullCarousel);\n }\n\n protected get isBigImg(): boolean {\n return isTrueBooleanInput(this.bigImg);\n }\n\n protected get isStandardImage(): boolean {\n return isTrueBooleanInput(this.standardImage);\n }\n\n protected get isLined(): boolean {\n return isTrueBooleanInput(this.lined);\n }\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef\n ) {\n }\n\n ngAfterViewInit(): void {\n this.carousel = CarouselBI.getOrCreateInstance(this.carouselDiv.nativeElement);\n this.items?.changes.pipe( // When carousel items changes (dynamic add/remove)\n startWith(undefined)\n ).subscribe(() => {\n this.itemSubscriptions?.forEach(sub => sub.unsubscribe()); // Remove old subscriptions\n this.itemSubscriptions = this.items?.map(item => item.valueChanges.subscribe(() => {\n this._changeDetectorRef.detectChanges(); // DetectChanges when carousel item attributes changes\n }));\n this._changeDetectorRef.detectChanges(); // Force update html render\n });\n }\n\n ngOnDestroy(): void {\n this.itemSubscriptions?.forEach(item => item.unsubscribe());\n }\n\n /**\n * Removes CarouselBI features\n */\n public dispose(): void {\n this.carousel?.dispose();\n }\n}\n","<div #carousel class=\"it-carousel-wrapper splide {{typeClass}}\"\n [class.it-full-carousel]=\"isFullCarousel\"\n [class.it-big-img]=\"isBigImg\"\n [class.it-standard-image]=\"isStandardImage\"\n data-bs-carousel-splide>\n\n <div class=\"it-header-block\" *ngIf=\"title\">\n <div class=\"it-header-block-title\">\n <h2>{{title}}</h2>\n </div>\n </div>\n\n <div class=\"splide__track {{trackClass}}\">\n <ul *ngIf=\"items\" class=\"splide__list\">\n <li *ngFor=\"let item of items\" class=\"splide__slide\" [class.lined_slide]=\"isLined\">\n <div class=\"it-single-slide-wrapper\">\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </div>\n </li>\n </ul>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ItCarouselComponent } from './carousel/carousel.component';\nimport { ItCarouselItemComponent } from './carousel-item/carousel-item.component';\n\nconst carouselComponents = [\n ItCarouselComponent,\n ItCarouselItemComponent\n];\n\n@NgModule({\n imports: carouselComponents,\n exports: carouselComponents\n})\nexport class ItCarouselModule {\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { NgClass, NgIf } from '@angular/common';\n\nexport type DimmerColor = '' | 'dimmer-primary';\n\n@Component({\n standalone: true,\n selector: 'it-dimmer',\n templateUrl: './dimmer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('fade', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('150ms', style({ opacity: 0.92 })),\n ]),\n transition(':leave', [\n animate('150ms', style({ opacity: 0 })),\n ]),\n ])\n ],\n imports: [NgIf, NgClass]\n})\nexport class ItDimmerComponent implements OnInit {\n\n /**\n * Dimmer status\n * @default false\n */\n @Input() set active (value: boolean) {this._active = value};\n get active() {return this._active; }\n private _active = false;\n\n /**\n * Colore del dimmer\n * @default ''\n */\n @Input() set color (value: DimmerColor) {this._color = value};\n get color() {return this._color; }\n private _color: DimmerColor = '';\n\n constructor(\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n this.elementRef?.nativeElement?.parentElement?.classList?.add('dimmable');\n }\n}\n","<div class=\"dimmer\" *ngIf=\"active\" @fade [ngClass]=\"[color]\">\n <div class=\"dimmer-inner\">\n <ng-content></ng-content>\n </div>\n</div>","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'it-dimmer-icon',\n templateUrl: './dimmer-icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItDimmerIconComponent {\n\n}\n","<div class=\"dimmer-icon\">\n <ng-content></ng-content>\n</div>","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'it-dimmer-buttons',\n templateUrl: './dimmer-buttons.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass]\n})\nexport class ItDimmerButtonsComponent {\n\n /**\n * Indica se abbiamo 1 solo bottone\n * @default false\n */\n @Input() set hasOneButton (value: boolean) {this._hasOneButton = value};\n get hasOneButton() {return this._hasOneButton; }\n private _hasOneButton = false;\n\n}\n","<div class=\"dimmer-buttons bg-dark\" [ngClass]=\"{'single-button': hasOneButton}\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { ItDimmerComponent } from './dimmer.component';\nimport { ItDimmerIconComponent } from './dimmer-icon/dimmer-icon.component';\nimport { ItDimmerButtonsComponent } from './dimmer-buttons/dimmer-buttons.component';\n\nconst dimmerComponents = [\n ItDimmerComponent,\n ItDimmerIconComponent,\n ItDimmerButtonsComponent\n];\n\n@NgModule({\n imports: dimmerComponents,\n exports: dimmerComponents\n})\nexport class ItDimmerModule {\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n standalone: true,\n selector: 'it-link',\n templateUrl: './link.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, RouterLink, NgTemplateOutlet]\n})\nexport class ItLinkComponent extends ItAbstractComponent implements AfterViewInit, OnChanges {\n\n /**\n * The router link action\n *\n * Commands to pass to Router#createUrlTree.\n * - array: commands to pass to Router#createUrlTree.\n * - string: shorthand for array of commands with just the string, i.e. ['/route']\n * - null|undefined: Disables the link by removing the href\n */\n @Input() href: any[] | string | null | undefined;\n\n /**\n * Is an external link (false to not use Angular router link)\n */\n @Input() externalLink: BooleanInput | undefined;\n\n /**\n * Is disabled link\n */\n @Input() disabled: BooleanInput | undefined;\n\n /**\n * Custom class\n */\n @Input() class: string = '';\n\n get isExternalLink(): boolean {\n return isTrueBooleanInput(this.externalLink);\n }\n\n get isDisabled(): boolean {\n return isTrueBooleanInput(this.disabled);\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');\n }\n\n override ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n if (changes['class']) {\n this._changeDetectorRef.markForCheck();\n }\n }\n}\n","<a *ngIf=\"!isExternalLink; else externalLink\" [id]=\"id\" [class]=\"class\" [routerLink]=\"(isDisabled ? null : href)!\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n</a>\n<ng-template #externalLink>\n <a [id]=\"id\" [class]=\"class\" [attr.href]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #linkContent>\n <ng-content></ng-content>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { IconName } from '../../../../interfaces/icon';\nimport { ItLinkComponent } from '../../link/link.component';\nimport { ItIconComponent } from '../../../utils/icon/icon.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'it-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, ItIconComponent, TranslateModule, ItLinkComponent]\n})\nexport class ItDropdownItemComponent extends ItLinkComponent {\n\n /**\n * Show divider\n */\n @Input() divider: BooleanInput | undefined;\n\n /**\n * Active item\n */\n @Input() active: BooleanInput | undefined;\n\n /**\n * To increase the size of links\n */\n @Input() large: BooleanInput | undefined;\n\n /**\n * The name of icon to show\n */\n @Input() iconName: IconName | undefined;\n\n /**\n * The icon position\n * @default right\n */\n @Input() iconPosition: 'left' | 'right' = 'right';\n\n /**\n * Change icon color if menu is dark\n * @default false\n */\n isDark: boolean = false;\n\n get isDivider(): boolean {\n return isTrueBooleanInput(this.divider);\n }\n\n get isActive(): boolean {\n return isTrueBooleanInput(this.active);\n }\n\n get isLarge(): boolean {\n return isTrueBooleanInput(this.large);\n }\n\n get linkClass(): string {\n let linkClass = `list-item ${this.isActive ? 'active' : 'dropdown-item'}`;\n if (this.isDisabled) {\n linkClass += ' disabled';\n }\n if (this.isLarge) {\n linkClass += ' large';\n }\n if (this.iconName) {\n linkClass += ` ${this.iconPosition === 'right' ? 'right-icon' : 'left-icon'}`;\n }\n\n return linkClass;\n }\n\n setDark(dark: boolean): void {\n if (this.isDark !== dark) {\n this.isDark = dark;\n this._changeDetectorRef.detectChanges();\n }\n }\n}\n","<li>\n <span *ngIf=\"isDivider; else item\" class=\"divider\"></span>\n\n <ng-template #item>\n <it-link [class]=\"linkClass\" [id]=\"id\" [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 [svgClass]=\"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 [svgClass]=\"iconPosition\"></it-icon>\n\n <span *ngIf=\"isActive\" class=\"visually-hidden\">{{'it.core.active'|translate}}</span>\n </it-link>\n </ng-template>\n</li>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ItAbstractComponent } from '../../../../abstracts/abstract.component';\nimport { ButtonColor, DropdownDirection } from '../../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { ItDropdownItemComponent } from '../dropdown-item/dropdown-item.component';\nimport { Dropdown } from 'bootstrap-italia';\nimport { ItIconComponent } from '../../../utils/icon/icon.component';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'it-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n exportAs: 'itDropdown',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ItIconComponent, NgTemplateOutlet, NgIf]\n})\nexport class ItDropdownComponent extends ItAbstractComponent implements AfterViewInit, OnChanges {\n\n /**\n * Dropdown mode\n */\n @Input() mode: 'button' | 'link' = 'button';\n\n /**\n * Button color\n */\n @Input() color?: ButtonColor;\n\n /**\n * To open menu items to:\n * - <strong>dropup</strong>: up\n * - <strong>dropend</strong>: right\n * - <strong>dropstart</strong>: left\n */\n @Input() direction: DropdownDirection | undefined;\n\n /**\n * To get a dropdown menu as wide as the element containing the dropdown button\n */\n @Input() fullWidth: BooleanInput | undefined;\n\n /**\n * Dark menu style\n */\n @Input() dark: BooleanInput | undefined;\n\n /**\n * The dropdown items\n */\n @ContentChildren(ItDropdownItemComponent) items?: QueryList<ItDropdownItemComponent>;\n\n /**\n * Fires immediately when the show instance method is called.\n */\n @Output() showEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * Fired when the dropdown has been made visible to the user and CSS transitions have completed.\n */\n @Output() shownEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * Fires immediately when the hide instance method has been called.\n */\n @Output() hideEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * Fired when the dropdown has finished being hidden from the user and CSS transitions have completed.\n */\n @Output() hiddenEvent: EventEmitter<Event> = new EventEmitter();\n\n\n private dropdown?: Dropdown;\n\n @ViewChild('dropdownButton') private dropdownButton?: ElementRef<HTMLButtonElement>;\n\n get buttonClass(): string {\n let btnClass = 'btn dropdown-toggle';\n if (this.color) {\n btnClass += ` btn-${this.color}`;\n } else {\n btnClass += ` btn-dropdown`;\n }\n\n return btnClass;\n }\n\n get isFullWidth(): boolean {\n return isTrueBooleanInput(this.fullWidth);\n }\n\n get isDark(): boolean {\n return isTrueBooleanInput(this.dark);\n }\n\n override ngOnChanges(changes: SimpleChanges): void {\n if (changes['dark'] && !changes['dark'].firstChange) {\n this.setDarkItems();\n }\n if (changes['mode'] && !changes['mode'].firstChange) {\n this.updateListeners();\n }\n super.ngOnChanges(changes);\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n this.setDarkItems();\n this.updateListeners();\n }\n\n /**\n * Set child items dark mode\n * @private\n */\n private setDarkItems(): void {\n this.items?.forEach(item => {\n item.setDark(this.isDark);\n });\n }\n\n private updateListeners(): void {\n if (this.dropdownButton) {\n const element = this.dropdownButton.nativeElement;\n this.dropdown = Dropdown.getOrCreateInstance(element);\n\n element.addEventListener('show.bs.dropdown', event => this.showEvent.emit(event));\n element.addEventListener('shown.bs.dropdown', event => this.shownEvent.emit(event));\n element.addEventListener('hide.bs.dropdown', event => this.hideEvent.emit(event));\n element.addEventListener('hidden.bs.dropdown', event => this.hiddenEvent.emit(event));\n }\n }\n\n /**\n * Toggles the dropdown menu of a given navbar or tabbed navigation.\n */\n public toggle(): void {\n this.dropdown?.toggle();\n }\n\n /**\n * Shows the dropdown menu of a given navbar or tabbed navigation.\n */\n public show(): void {\n this.dropdown?.show();\n }\n\n /**\n * Hides the dropdown menu of a given navbar or tabbed navigation.\n */\n public hide(): void {\n this.dropdown?.hide();\n }\n\n /**\n * Updates the position of an element's dropdown.\n */\n public update(): void {\n this.dropdown?.update();\n }\n\n /**\n * Destroys an element's dropdown. (Removes stored data on the DOM element)\n */\n public dispose(): void {\n this.dropdown?.dispose();\n }\n}\n","<div class=\"dropdown {{direction}}\">\n <button #dropdownButton\n *ngIf=\"mode === 'button'; else linkButton\"\n [id]=\"id\"\n [class]=\"buttonClass\"\n type=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\n <it-icon svgClass=\"icon-expand\" name=\"expand\" size=\"sm\" [color]=\"this.color ? 'light' : 'primary'\"></it-icon>\n </button>\n\n <ng-template #linkButton>\n <a #dropdownButton\n [id]=\"id\"\n class=\"btn btn-dropdown dropdown-toggle\"\n role=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-container *ngTemplateOutlet=\"buttonContent\"></ng-container>\n <it-icon svgClass=\"icon-expand\" name=\"expand\" size=\"sm\" color=\"primary\"></it-icon>\n </a>\n </ng-template>\n\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\n<ng-template #buttonContent>\n <ng-content select=\"[button]\"></ng-content>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ItDropdownComponent } from './dropdown/dropdown.component';\nimport { ItDropdownItemComponent } from './dropdown-item/dropdown-item.component';\n\nconst dropdownComponents = [ItDropdownComponent, ItDropdownItemComponent];\n\n@NgModule({\n imports: dropdownComponents,\n exports: dropdownComponents\n})\nexport class ItDropdownModule { }\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\n\n@Component({\n standalone: true,\n selector: 'it-list',\n templateUrl: './list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItListComponent {\n\n /**\n * Add 'link-list' class for navigation menu\n */\n @Input() linkList: BooleanInput | undefined;\n\n\n protected get isLinkList(): boolean {\n return isTrueBooleanInput(this.linkList);\n }\n}\n","<div [class]=\"isLinkList ? 'link-list-wrapper' : 'it-list-wrapper'\">\n <ul [class]=\"isLinkList ? 'link-list' : 'it-list'\">\n <ng-content></ng-content>\n </ul>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { ItLinkComponent } from '../../link/link.component';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'it-list-item',\n templateUrl: './list-item.component.html',\n styleUrls: ['./list-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, NgTemplateOutlet, ItLinkComponent]\n})\nexport class ItListItemComponent extends ItLinkComponent {\n\n /**\n * Add active class\n */\n @Input() active: BooleanInput | undefined;\n\n /**\n * Add large class\n */\n @Input() large: BooleanInput | undefined;\n\n /**\n * Add icon-left class\n */\n @Input() iconLeft: BooleanInput | undefined;\n\n /**\n * The avatar url\n */\n @Input() avatar: URL | undefined;\n\n /**\n * The thumb image url\n */\n @Input() image: URL | undefined;\n\n\n get itemClass(): string {\n let itemClass = 'list-item';\n if (isTrueBooleanInput(this.active)) {\n itemClass += ` active`;\n }\n if (isTrueBooleanInput(this.large)) {\n itemClass += ` large`;\n }\n if (isTrueBooleanInput(this.iconLeft)) {\n itemClass += ` icon-left`;\n }\n if (this.class) {\n itemClass += ` ${this.class}`;\n }\n return itemClass;\n }\n\n}\n","<li>\n <ng-template #content>\n <div class=\"it-rounded-icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n\n <div *ngIf=\"avatar\" class=\"avatar size-lg\">\n <img [attr.src]=\"avatar\" alt=\"avatar\">\n </div>\n\n <div *ngIf=\"image\" class=\"it-thumb\">\n <img [attr.src]=\"image\" alt=\"thumb\">\n </div>\n\n <div class=\"it-right-zone\">\n <span class=\"text\">\n <ng-content></ng-content>\n </span>\n <ng-content select=\"[action]\"></ng-content>\n\n <span class=\"it-multiple\">\n <span class=\"metadata\">\n <ng-content select=\"[metadata]\"></ng-content>\n </span>\n\n <ng-content select=\"[multiple]\"></ng-content>\n </span>\n </div>\n </ng-template>\n\n\n <div *ngIf=\"!href; else link\" [class]=\"itemClass\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n\n <ng-template #link>\n <it-link [class]=\"itemClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </it-link>\n </ng-template>\n</li>\n","import { NgModule } from '@angular/core';\nimport { ItListComponent } from './list/list.component';\nimport { ItListItemComponent } from './list-item/list-item.component';\n\nconst listComponents = [\n ItListComponent,\n ItListItemComponent\n];\n\n@NgModule({\n imports: listComponents,\n exports: listComponents\n})\nexport class ItListModule {\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { Modal } from 'bootstrap-italia';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Modal as BSModal } from 'bootstrap'\n\n/**\n * Modal windows\n * @description To show featured content, notifications to users, or personalized content.\n */\n@Component({\n standalone: true,\n selector: 'it-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n exportAs: 'itModal',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, TranslateModule]\n})\nexport class ItModalComponent extends ItAbstractComponent implements AfterViewInit {\n\n /**\n * Show/Hide close button on header\n * @default true\n */\n @Input() closeButton: BooleanInput = true;\n\n /**\n * To correctly format the contents of the modal with icon\n * @default false\n */\n @Input() alertModal: BooleanInput | undefined;\n\n /**\n * To correctly format the contents of the modal with Link List\n * @default false\n */\n @Input() dialogLinkList: BooleanInput | undefined;\n\n /**\n * Modal type Popconfirm can be used for short confirmation messages.\n * @default false\n */\n @Input() popconfirm: BooleanInput | undefined;\n\n /**\n * You can choose to use a scroll inside the modal, keeping the header and footer of the modal always visible\n * @default false\n */\n @Input() scrollable: BooleanInput | undefined;\n\n /**\n * To have modals that appear with fades\n * @default true\n */\n @Input() fade?: BooleanInput = true;\n\n /**\n * Modal alignment\n * - <b>centered</b>: to vertically center the modal\n * - <b>left</b>: to left-align the modal\n * - <b>right</b>: to right-align the modal\n * @default undefined\n */\n @Input() alignment: 'centered' | 'left' | 'right' | undefined;\n\n /**\n * The modal size\n * @default undefined\n */\n @Input() size: 'sm' | 'lg' | 'xl' | undefined;\n\n /**\n * Includes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn’t close the modal when clicked.\n * @default true\n */\n @Input() backdrop: 'static' | BooleanInput = true;\n\n /**\n * Puts the focus on the modal when initialized.\n * @default true\n */\n @Input() focus: BooleanInput = true;\n\n /**\n * Closes the modal when escape key is pressed.\n * @default true\n */\n @Input() keyboard: BooleanInput = true;\n\n /**\n * To better distinguish the footer element with a shadow\n * @default false\n */\n @Input() footerShadow: BooleanInput | undefined;\n\n /**\n * Modal options\n */\n @Input() options?: Partial<BSModal.Options>\n\n /**\n * This event fires immediately when the instance method show is called.\n */\n @Output() public showEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires when the modal has been made visible to the user (it will wait for CSS transitions to complete).\n */\n @Output() public shownEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is raised immediately when the instance method hide has been called.\n */\n @Output() public hideEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires when the modal has finished hiding from the user (it will wait for CSS transitions to complete).\n */\n @Output() public hiddenEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is fired when the modal is displayed, its background is static and a click outside the modal or a press\n * of the esc key occurs and data-bs-keyboard is set to false.\n */\n @Output() public hidePreventedEvent: EventEmitter<Event> = new EventEmitter();\n\n private modal?: Modal;\n\n @ViewChild('modalElement', { static: false }) private modalElement?: ElementRef<HTMLDivElement>;\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');\n\n if (this.modalElement) {\n const element = this.modalElement.nativeElement;\n this.modal = Modal.getOrCreateInstance(element, {\n ...this.options,\n backdrop: this.backdrop === 'static' ? 'static' : isTrueBooleanInput(this.backdrop),\n focus: isTrueBooleanInput(this.focus),\n keyboard: isTrueBooleanInput(this.keyboard)\n });\n\n element.addEventListener('show.bs.modal', event => this.showEvent.emit(event));\n element.addEventListener('shown.bs.modal', event => this.shownEvent.emit(event));\n element.addEventListener('hide.bs.modal', event => this.hideEvent.emit(event));\n element.addEventListener('hidden.bs.modal', event => this.hiddenEvent.emit(event));\n element.addEventListener('hidePrevented.bs.modal', event => this.hidePreventedEvent.emit(event));\n }\n }\n\n protected get isCloseButton(): boolean {\n return isTrueBooleanInput(this.closeButton);\n }\n\n protected get isFooterShadow(): boolean {\n return isTrueBooleanInput(this.footerShadow);\n }\n\n protected get modalClass(): string {\n let modalClass = 'modal';\n if (isTrueBooleanInput(this.fade)) {\n modalClass += ` fade`;\n }\n if (isTrueBooleanInput(this.alertModal)) {\n modalClass += ` alert-modal`;\n }\n if (isTrueBooleanInput(this.dialogLinkList)) {\n modalClass += ` it-dialog-link-list`;\n }\n if (isTrueBooleanInput(this.popconfirm)) {\n modalClass += ` popconfirm-modal`;\n }\n if (isTrueBooleanInput(this.scrollable)) {\n modalClass += ` it-dialog-scrollable`;\n }\n return modalClass;\n }\n\n protected get dialogClass(): string {\n let dialogClass = 'modal-dialog';\n if (this.alignment) {\n dialogClass += ` modal-dialog-${this.alignment}`;\n }\n if (this.size) {\n dialogClass += ` modal-${this.size}`;\n }\n return dialogClass;\n }\n\n /**\n * Manually activate/deactivate a modal. Returns to the caller before the modal has actually been shown or hidden\n */\n public toggle(): void {\n this.modal?.toggle();\n }\n\n /**\n * Manually open a modal. Returns to the caller before the modal has actually been displayed\n */\n public show(): void {\n this.modal?.show();\n }\n\n /**\n * Manually hide a modal. Returns to the caller before the modal has actually been hidden\n */\n public hide(): void {\n this.modal?.hide();\n }\n\n /**\n * Manually reposition the modal if the height of the modal changes when it is opened (in case a scroll bar appears).\n */\n public handleUpdate(): void {\n this.modal?.handleUpdate();\n }\n\n /**\n * Destroys the modal of an element.\n */\n public dispose(): void {\n this.modal?.dispose();\n }\n\n}\n","<div #modalElement [id]=\"id\"\n [class]=\"modalClass\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-title'\"\n [attr.aria-describedby]=\"id+'-description'\">\n\n <div [class]=\"dialogClass\">\n <div class=\"modal-content\" role=\"document\">\n <div class=\"modal-header\">\n <ng-content select=\"[beforeTitle]\"></ng-content>\n\n <h2 class=\"modal-title h5\" id=\"{{id}}-title\">\n <ng-content select=\"[modalTitle]\"></ng-content>\n </h2>\n\n <button *ngIf=\"isCloseButton\" type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"\n [attr.aria-label]=\"'it.core.close-modal'|translate\"></button>\n </div>\n\n <div class=\"modal-body\">\n <div id=\"{{id}}-description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"modal-footer\" [class.modal-footer-shadow]=\"isFooterShadow\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n\n</div>\n","import { IconName } from './icon';\n\nexport type AlertColor = 'primary' | 'info' | 'success' | 'warning' | 'danger';\n\nexport type ButtonColor =\n 'primary'\n | 'outline-primary'\n | 'secondary'\n | 'outline-secondary'\n | 'success'\n | 'outline-success'\n | 'danger'\n | 'outline-danger'\n | 'warning'\n | 'outline-warning'\n | 'info'\n | 'outline-info'\n | 'light'\n | 'outline-light'\n | 'dark'\n | 'outline-dark'\n | 'link';\n\nexport type ButtonSize = 'lg' | 'sm' | 'xs';\nexport type ButtonType = 'submit' | 'button';\n\nexport type CalloutColor = 'success' | 'warning' | 'danger' | 'important' | 'note';\nexport type CalloutAppearance = 'default' | 'highlight' | 'more';\n\nexport type ChipColor = 'primary' | 'secondary' | 'success' | 'danger' | 'warning';\n\nexport type ElementPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport type ProgressBarColor = 'primary' | 'success' | 'warning' | 'danger' | 'info';\n\nexport type BadgeColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger';\n\nexport type TableColor = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';\n\nexport type TableHeadColor = 'light' | 'dark';\n\nexport type TableResponsive =\n 'responsive'\n | 'responsive-sm'\n | 'responsive-md'\n | 'responsive-lg'\n | 'responsive-xl'\n | 'responsive-xxl';\n\nexport type VerticalAlignment =\n 'align-baseline'\n | 'align-top'\n | 'align-middle'\n | 'align-bottom'\n | 'align-text-bottom'\n | 'align-text-top';\n\nexport type DropdownDirection = 'dropup' | 'dropend' | 'dropstart';\n\nexport type CarouselType = 'default' | 'three-cols' | 'three-cols-arrow-visible';\n\nexport interface Notification {\n\n /**\n * Notification type\n */\n type: NotificationType;\n\n /**\n * Notification title\n */\n title: string;\n\n /**\n * Notification message / text\n */\n message?: string;\n\n /**\n * Custom duration of notification\n */\n duration?: number;\n\n /**\n * The close notification button appears\n */\n dismissible?: boolean;\n\n /**\n * Custom position of notification\n */\n position?: NotificationPosition;\n\n /**\n * Custom icon of notification\n */\n icon?: IconName;\n}\n\nexport enum NotificationType {\n Standard = 'standard',\n Success = 'success',\n Error = 'error',\n Info = 'info',\n Warning = 'warning'\n}\n\nexport enum NotificationPosition {\n Top = 'top-fix mt-3',\n Bottom = 'bottom-fix mb-3',\n Left = 'left-fix ms-3',\n Right = 'right-fix me-3'\n}\n","import { Injectable } from '@angular/core';\nimport { filter, Observable, Subject } from 'rxjs';\nimport { Notification, NotificationPosition, NotificationType } from '../../interfaces/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ItNotificationService {\n private subject = new Subject<Notification>();\n\n /**\n * Listen on notification arrived\n * @param filterType filter type of notification\n */\n public onNotification(filterType?: NotificationType): Observable<Notification> {\n return this.subject.asObservable().pipe(\n filter(n => n && (!filterType || (n.type === filterType)))\n );\n }\n\n /**\n * Show new notification\n * @param notification notification\n */\n public addNotification(notification: Notification): void {\n this.subject.next(notification);\n }\n\n /**\n * Create new Standard notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public standard(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Standard,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n\n /**\n * Create new Success notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public success(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Success,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n\n /**\n * Create new Error notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public error(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Error,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n\n /**\n * Create new Warning notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public warning(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Warning,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n\n /**\n * Create new Info notification\n * @param title notification title\n * @param message notification message\n * @param dismissible notification dismissible\n * @param duration notification duration (milliseconds)\n * @param position notification position\n */\n public info(title: string, message?: string, dismissible?:boolean, duration?: number, position?: NotificationPosition): void {\n this.addNotification({\n type: NotificationType.Info,\n message,\n title,\n duration,\n dismissible,\n position\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ItNotificationService } from '../../../services/notification/notification.service';\nimport { Notification, NotificationPosition, NotificationType } from '../../../interfaces/core';\nimport { Notification as BSNotification } from 'bootstrap-italia';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { IconName } from '../../../interfaces/icon';\nimport { NgForOf, NgIf } from '@angular/common';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'it-notifications',\n templateUrl: './notifications.component.html',\n styleUrls: ['./notifications.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgForOf, NgIf, ItIconComponent, TranslateModule]\n})\nexport class ItNotificationsComponent implements OnDestroy {\n\n /**\n * Default notifications duration (milliseconds)\n * @default 8000\n */\n @Input() duration: number = 8000;\n\n /**\n * Default notifications position\n */\n @Input() position: NotificationPosition | undefined;\n\n /**\n * Default notifications is dismissible\n * @default true\n */\n @Input() dismissible?: BooleanInput = true;\n\n private subscription: Subscription;\n private notificationCount: number = 0;\n protected notifications: Array<Notification & { id: string }> = [];\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _notificationService: ItNotificationService\n ) {\n this.subscription = this._notificationService.onNotification().subscribe(notification => {\n if (!notification.duration) {\n notification.duration = this.duration; // Add duration if not is set\n }\n if (!notification.position && this.position) {\n notification.position = this.position; // Add position if not is set\n }\n if (notification.dismissible === undefined && isTrueBooleanInput(this.dismissible)) {\n notification.dismissible = true; // Add dismissible if not is set\n }\n if (!notification.icon) {\n notification.icon = this.getNotificationIcon(notification);\n }\n\n const newNotification = {\n ...notification,\n id: `${notification.type}-${this.notificationCount++}-notification`\n };\n this.notifications.push(newNotification);\n this._changeDetectorRef.detectChanges();\n\n setTimeout(() => {\n // Show the notification\n new BSNotification(document.getElementById(newNotification.id)!, {\n timeout: notification.duration\n }).show();\n\n // Clear notification after the duration\n setTimeout(() => {\n const index = this.notifications.findIndex(n => n.id === newNotification.id);\n if (index > -1) {\n this.notifications.splice(index, 1);\n if (!this.notifications.length) {\n this.notificationCount = 0;\n }\n this._changeDetectorRef.detectChanges();\n }\n }, notification.duration);\n }, 200);\n });\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n protected get NotificationType(): typeof NotificationType {\n return NotificationType;\n }\n\n /**\n * Hide the notification\n * @param id\n */\n protected hideNotification(id: string): void {\n BSNotification.getInstance(document.getElementById(id)!)?.hide();\n }\n\n /**\n * Retrieve the icon name by notification type\n * @param notification the notification\n * @protected\n */\n private getNotificationIcon(notification: Notification): IconName | undefined {\n switch (notification.type) {\n case NotificationType.Success:\n return 'check-circle';\n case NotificationType.Error:\n return 'close-circle';\n case NotificationType.Warning:\n return 'error';\n case NotificationType.Info:\n return 'info-circle';\n case NotificationType.Standard:\n default:\n return undefined;\n }\n }\n}\n","<div *ngFor=\"let notification of notifications\"\n [id]=\"notification.id\"\n class=\"notification {{notification.position}} {{notification.type}}\"\n [class.with-icon]=\"!!notification.icon\"\n [class.dismissable]=\"notification.dismissible\"\n role=\"alert\" [attr.aria-labelledby]=\"notification.id+'-title'\">\n\n <h2 [id]=\"notification.id+'-title'\" class=\"h5\">\n <it-icon *ngIf=\"notification.icon\" [name]=\"notification.icon\"></it-icon>\n <ng-container>{{notification.title}}</ng-container>\n </h2>\n <p *ngIf=\"notification.message\">{{notification.message}}</p>\n\n <button *ngIf=\"notification.dismissible\" type=\"button\" class=\"btn notification-close\"\n (click)=\"hideNotification(notification.id)\">\n <it-icon name=\"close\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.close-notification'|translate:{ title: notification.title } }}</span>\n </button>\n</div>\n","import { ControlValueAccessor, FormControl, NgControl, ValidatorFn } from '@angular/forms';\nimport { Component, DoCheck, Input, OnInit, Optional, Self } from '@angular/core';\nimport { ItAbstractComponent } from './abstract.component';\nimport { BooleanInput, isFalseBooleanInput, isTrueBooleanInput } from '../utils/boolean-input';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({ template: '' })\nexport abstract class ItAbstractFormComponent<T = any> extends ItAbstractComponent implements OnInit, ControlValueAccessor, DoCheck {\n\n /**\n * The label of form control\n */\n @Input() label?: string;\n\n /**\n * Validation color display mode (validation triggered if field is touched or not pristine)\n * - <b>true</b>: Always show the validation color\n * - <b>false</b>: Never show validation color\n * - <b>only-valid</b>: Show only valid validation color\n * - <b>only-invalid</b>: Show only invalid validation color\n * @default <b>only-invalid</b>: Show only invalid validation color\n */\n @Input() validationMode: BooleanInput | 'only-valid' | 'only-invalid' = 'only-invalid';\n\n /**\n * Set the disabled state\n */\n @Input() set disabled(isDisabled: BooleanInput) {\n this.setDisabledState(isTrueBooleanInput(isDisabled));\n }\n\n /**\n * Internal form control\n */\n protected control: FormControl<T>;\n\n constructor(\n protected readonly _translateService: TranslateService,\n @Self() @Optional() protected readonly _ngControl: NgControl\n ) {\n super();\n this.control = new FormControl();\n this._ngControl && (this._ngControl.valueAccessor = this);\n }\n\n /**\n * Check if field is invalid (Validation failed)\n */\n get isInvalid(): boolean | undefined {\n if (this.validationMode === 'only-valid' || (this.validationMode !== 'only-invalid' && isFalseBooleanInput(this.validationMode))) {\n return undefined;\n }\n\n if (this._ngControl) {\n return this._ngControl.invalid === true && (!this._ngControl.pristine || this._ngControl.touched === true);\n }\n return this.control.invalid && (!this.control.pristine || this.control.touched);\n }\n\n /**\n * Check if field is valid (Validation successful)\n */\n get isValid(): boolean | undefined {\n if (this.validationMode === 'only-invalid' || (this.validationMode !== 'only-valid' && isFalseBooleanInput(this.validationMode))) {\n return undefined;\n }\n\n if (this._ngControl) {\n return this._ngControl.valid === true && (!this._ngControl.pristine || this._ngControl.touched === true);\n }\n return this.control.valid && (!this.control.pristine || this.control.touched);\n }\n\n /**\n * Return the invalid message string from TranslateService\n */\n get invalidMessage(): Observable<string> {\n if (this.hasError('required')) {\n return this._translateService.get('it.errors.required-field');\n }\n\n return this._translateService.get('it.errors.invalid-field');\n }\n\n ngOnInit(): void {\n if (this._ngControl?.control) {\n this.control.setValidators((this._ngControl.control as FormControl).validator);\n }\n }\n\n onChange = (_: T) => {\n };\n\n onTouched = () => {\n };\n\n registerOnChange(fn: any): void {\n this.control.valueChanges.subscribe(fn);\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n return this.control.disable();\n }\n this.control.enable();\n }\n\n writeValue(value: T): void {\n this.control.setValue(value, { emitEvent: false });\n this._changeDetectorRef.detectChanges();\n }\n\n /**\n * Mark the control as touched\n */\n markAsTouched(): void {\n if (!this.control.touched) {\n this.onTouched();\n }\n }\n\n /**\n * Fired to check if form control is touched\n */\n ngDoCheck() {\n if (this._ngControl?.control) {\n const ngControl = this._ngControl.control;\n if (this.control.touched !== ngControl.touched) {\n if (ngControl.touched) {\n this.control.markAsTouched();\n } else {\n this.control.markAsUntouched();\n }\n }\n if (this.control.pristine !== ngControl.pristine) {\n if (ngControl.pristine) {\n this.control.markAsPristine();\n } else {\n this.control.markAsDirty();\n }\n }\n }\n this._changeDetectorRef.detectChanges();\n }\n\n /**\n * Add the validators in control and parent control\n * @param validators the validators\n * @protected\n */\n protected addValidators(validators: ValidatorFn | ValidatorFn[]): void {\n if (!Array.isArray(validators)) {\n validators = [validators];\n }\n\n validators.forEach(validator => {\n if (!this.control.hasValidator(validator)) {\n this.control.addValidators(validator);\n }\n\n if (this._ngControl?.control && !this._ngControl.control.hasValidator(validator)) {\n this._ngControl.control.addValidators(validator);\n }\n });\n }\n\n /**\n * Reports whether the control with the given path has the error specified. <br/>\n * If the control is not present, false is returned.\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n * @returns whether the given error is present in the control at the given path.\n */\n public hasError(errorCode: string, path?: Array<string | number> | string): boolean {\n if (this._ngControl) {\n return this._ngControl.hasError(errorCode, path);\n }\n return this.control.hasError(errorCode, path);\n }\n\n /**\n * Reports error data for the control with the given path.\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n * @returns error data for that particular error. If the control or error is not present,\n * null is returned.\n */\n public getError(errorCode: string, path?: Array<string | number> | string): any {\n if (this._ngControl) {\n return this._ngControl.getError(errorCode, path);\n }\n return this.control.getError(errorCode, path);\n }\n}\n","/**\n * General Email Regex (RFC 5322 Official Standard)\n * http://emailregex.com/\n */\nexport const EMAIL_REGEX = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/;\n\n/**\n * Phone number Regex\n */\nexport const PHONE_NUMBER_REGEX = /^\\s*(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{3})(?: *x(\\d+))?\\s*$/;\n\n/**\n * URL Regex\n */\nexport const URL_REGEX = /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})/;\n\n/**\n * The italian tax code Regex (Codice Fiscale)\n */\nexport const ITALIAN_TAX_CODE_REGEX = /^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$/i;\n\n/**\n * The VAT number Regex (Partita iva)\n */\nexport const VAT_NUMBER_REGEX = /^[0-9]{11}$/;\n\n/**\n * Italian CAP Regex\n */\nexport const CAP_REGEX = /^[0-9]{5}$/;\n\n/**\n * IBAN Regex\n * https://blog.marketto.it/en/2018/06/validate-any-country-iban/\n */\nexport const IBAN_REGEX = /^(?:(?:IT|SM)\\d{2}[A-Z]\\d{22}|CY\\d{2}[A-Z]\\d{23}|NL\\d{2}[A-Z]{4}\\d{10}|LV\\d{2}[A-Z]{4}\\d{13}|(?:BG|BH|GB|IE)\\d{2}[A-Z]{4}\\d{14}|GI\\d{2}[A-Z]{4}\\d{15}|RO\\d{2}[A-Z]{4}\\d{16}|KW\\d{2}[A-Z]{4}\\d{22}|MT\\d{2}[A-Z]{4}\\d{23}|NO\\d{13}|(?:DK|FI|GL|FO)\\d{16}|MK\\d{17}|(?:AT|EE|KZ|LU|XK)\\d{18}|(?:BA|HR|LI|CH|CR)\\d{19}|(?:GE|DE|LT|ME|RS)\\d{20}|IL\\d{21}|(?:AD|CZ|ES|MD|SA)\\d{22}|PT\\d{23}|(?:BE|IS)\\d{24}|(?:FR|MR|MC)\\d{25}|(?:AL|DO|LB|PL)\\d{26}|(?:AZ|HU)\\d{27}|(?:GR|MU)\\d{28})$/i;\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport {\n CAP_REGEX,\n EMAIL_REGEX,\n IBAN_REGEX,\n ITALIAN_TAX_CODE_REGEX,\n PHONE_NUMBER_REGEX,\n URL_REGEX,\n VAT_NUMBER_REGEX\n} from '../utils/regex';\n\nexport class ItValidators {\n public static SpecialCharacterPattern = '!@#$%&*_+=;:|,.';\n\n /**\n * Static pattern validator with custom error\n * @param regex\n * @param error\n */\n public static customPattern(regex: RegExp, error: ValidationErrors): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n // if control is empty return no error\n return null;\n }\n\n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value);\n\n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null : error;\n };\n }\n\n /**\n * Set Validator if the condition is satisfied\n * @param validator the validator to apply if the condition is true\n * @param condition the condition\n */\n public static conditional(validator: ValidatorFn, condition: (control: AbstractControl) => boolean): ValidatorFn {\n return formControl => {\n if (!formControl.parent) {\n return null;\n }\n if (condition(formControl)) {\n return validator(formControl);\n }\n return null;\n };\n }\n\n /**\n * Check whether our password and confirm password are a match\n * @param control\n * @param passwordControlName the password formControlName\n * @param confirmControlName the confirmPassword formControlName\n */\n public static passwordMatch(control: AbstractControl, passwordControlName = 'password', confirmControlName = 'confirmPassword'): AbstractControl | null {\n const confirmControl = control.get(confirmControlName); // confirmPassword form control\n if (!confirmControl) {\n return null;\n }\n\n const passwordControl = control.get(passwordControlName); // password form control\n const password = passwordControl?.value; // get password from our password form control\n\n // compare is the password match\n if ((password && !confirmControl.value) || (confirmControl.value && password !== confirmControl.value)) {\n // if they don't match, set an error in our confirmPassword form control\n confirmControl?.setErrors({ noPasswordMatch: true });\n confirmControl?.markAsTouched();\n return control;\n }\n\n if (password && passwordControl?.touched) {\n confirmControl?.markAsTouched();\n }\n return null;\n }\n\n /**\n * Password validator\n * @param minLength minimum password length - default 10\n * @param hasNumber check whether the entered password has a number - default true\n * @param hasCapitalCase check whether the entered password has upper case letter - default true\n * @param hasSmallCase check whether the entered password has a lower-case letter - default true\n * @param hasSpecialCharacters check whether the entered password has a special character - default true\n * @param required the field is required - default true\n */\n public static password(minLength = 10, hasNumber = true, hasCapitalCase = true, hasSmallCase = true, hasSpecialCharacters = true, required = true): ValidatorFn {\n const validators: Array<ValidatorFn> = [Validators.minLength(minLength)];\n if (hasNumber) {\n validators.push(ItValidators.customPattern(/\\d/, { hasNumber }));\n }\n if (hasCapitalCase) {\n validators.push(ItValidators.customPattern(/[A-Z]/, { hasCapitalCase }));\n }\n if (hasSmallCase) {\n validators.push(ItValidators.customPattern(/[a-z]/, { hasSmallCase }));\n }\n if (hasSpecialCharacters) {\n validators.push(ItValidators.customPattern(new RegExp(`[${ItValidators.SpecialCharacterPattern}]`), { hasSpecialCharacters }));\n }\n if (required) {\n validators.push(Validators.required);\n }\n return <ValidatorFn>Validators.compose(validators);\n }\n\n /**\n * Email validator\n */\n public static get email(): ValidatorFn {\n return <ValidatorFn>Validators.compose([\n Validators.email,\n ItValidators.customPattern(EMAIL_REGEX, { invalidEmail: true })\n ]);\n }\n\n /**\n * Phone number validator\n */\n public static get tel(): ValidatorFn {\n return ItValidators.customPattern(PHONE_NUMBER_REGEX, { invalidTel: true });\n }\n\n /**\n * URL validator\n */\n public static get url(): ValidatorFn {\n return ItValidators.customPattern(URL_REGEX, { invalidUrl: true });\n }\n\n /**\n * Italian Tax Code validator\n */\n public static get taxCode(): ValidatorFn {\n return ItValidators.customPattern(ITALIAN_TAX_CODE_REGEX, { invalidTaxCode: true });\n }\n\n /**\n * VAT Number validator\n */\n public static get vatNumber(): ValidatorFn {\n return ItValidators.customPattern(VAT_NUMBER_REGEX, { invalidVatNumber: true });\n }\n\n /**\n * Italian Postal Code validator (CAP)\n */\n public static get cap(): ValidatorFn {\n return ItValidators.customPattern(CAP_REGEX, { invalidCap: true });\n }\n\n /**\n * IBAN validator\n */\n public static get iban(): ValidatorFn {\n return ItValidators.customPattern(IBAN_REGEX, { invalidIban: true });\n }\n\n /**\n * Check if value is a valid RegExp\n */\n public static get regExp(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n try {\n if (control?.value) {\n new RegExp(control.value);\n }\n } catch (e) {\n return { invalidRegex: true };\n }\n return null;\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n standalone: true,\n name: 'markMatchingText'\n})\nexport class MarkMatchingTextPipe implements PipeTransform {\n constructor(\n private readonly domSanitizer: DomSanitizer\n ) {\n }\n\n transform(allString: string, searchString: string): any {\n if (!searchString) {\n return allString;\n } else if (!allString) {\n return '';\n }\n // Check if search string is a substring of pivot string (no case-sensitive)\n const idxOfMatchString = allString.toLowerCase().indexOf(searchString.toLowerCase());\n if (idxOfMatchString !== -1) {\n // retrieve the exactly substring\n const matchingString = allString.substring(idxOfMatchString, idxOfMatchString + searchString.length);\n // Replace original string marking as <strong> (bold) the matchinng substring\n const regEx = new RegExp('(' + matchingString + ')', 'gi');\n const res = allString.replace(regEx, '<mark>$1</mark>');\n return this.domSanitizer.bypassSecurityTrustHtml(res);\n }\n\n return allString;\n }\n\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';\nimport { AutocompleteItem, InputControlType } from '../../../interfaces/form';\nimport { AbstractControl, ReactiveFormsModule, ValidatorFn, Validators } from '@angular/forms';\nimport { ItValidators } from '../../../validators/it-validators';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { debounceTime, distinctUntilChanged, map, Observable, of, switchMap } from 'rxjs';\nimport { AsyncPipe, NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { MarkMatchingTextPipe } from '../../../pipes/mark-matching-text.pipe';\n\n@Component({\n standalone: true,\n selector: 'it-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, ReactiveFormsModule, TranslateModule, AsyncPipe, ItIconComponent, MarkMatchingTextPipe, NgTemplateOutlet, NgForOf]\n})\nexport class ItInputComponent extends ItAbstractFormComponent<string | number | null | undefined> implements OnInit {\n\n /**\n * The input type\n * @default text\n */\n @Input() type: InputControlType = 'text';\n\n /**\n * The input placeholder\n */\n @Input() placeholder: string = '';\n\n /**\n * The input description\n */\n @Input() description: string | undefined;\n\n /**\n * To prevent modification of the contained value.\n * - <b>plaintext</b>: Readonly field in the form stylized as plain text\n */\n @Input() readonly: BooleanInput | 'plaintext' | undefined;\n\n /**\n * The max date value [Used only in type = 'date']\n * @default '9999-12-31'\n * @example 'yyyy-mm-dd'\n */\n @Input() maxDate?: string = '9999-12-31';\n\n /**\n * The min date value [Used only in type = 'date']\n * @example 'yyyy-mm-dd'\n */\n @Input() minDate: string | undefined;\n\n /**\n * The max value [Used only in type = 'number']\n */\n @Input() max: number | undefined;\n\n /**\n * The min value [Used only in type = 'number']\n */\n @Input() min: number | undefined;\n\n /**\n * The step value [Used only in type = 'number']\n */\n @Input() step: number | 'any' | undefined;\n\n /**\n * If is a currency number [Used only in type = 'number']\n */\n @Input() currency: BooleanInput | undefined;\n\n /**\n * If is a percentage number [Used only in type = 'number']\n */\n @Input() percentage: BooleanInput | undefined;\n\n /**\n * To make the numeric field automatically resize according to the value contained in it. [Used only in type = 'number']\n */\n @Input() adaptive: BooleanInput | undefined;\n\n /**\n * Input autocomplete attribute (Browser autocomplete)\n * @default undefined\n */\n @Input() autocomplete: string | undefined;\n\n /**\n * Indicates the list of searchable elements on which to base the input autocomplete system [Optional. Used only in type = 'search']\n * If you need to retrieve items via API, can pass a function of Observable\n * @default undefined\n */\n @Input() autocompleteData?: Array<AutocompleteItem> | ((search?: string | number | null) => Observable<Array<AutocompleteItem>>);\n\n /**\n * Time span [ms] has passed without another source emission, to delay data filtering.\n * Useful when the user is typing multiple letters\n * @default 300 [ms]\n */\n @Input() autocompleteDebounceTime: number = 300;\n\n /**\n * Fired when the Autocomplete Item has been selected\n */\n @Output() autocompleteSelectedEvent: EventEmitter<AutocompleteItem> = new EventEmitter();\n\n protected showAutocompletion = false;\n\n\n get isActiveLabel(): boolean {\n const value = this.control.value;\n if ((!!value && value !== 0) || value === 0 || !!this.placeholder) {\n return true;\n }\n\n if (this.type === 'number' && (isTrueBooleanInput(this.currency) || isTrueBooleanInput(this.percentage))) {\n return true;\n }\n\n return this.type === 'date' || this.type === 'time' || this.type === 'color';\n }\n\n /**\n * Check is readonly field\n */\n get isReadonly(): boolean {\n return this.readonly === 'plaintext' || isTrueBooleanInput(this.readonly);\n }\n\n /**\n * Return the invalid message string from TranslateService\n */\n override get invalidMessage(): Observable<string> {\n if (this.hasError('min') && this.min) {\n return this._translateService.get('it.errors.min-invalid', {\n min: this.min\n });\n }\n if (this.hasError('max') && this.max) {\n return this._translateService.get('it.errors.max-invalid', {\n max: this.max\n });\n }\n if (this.hasError('minlength')) {\n const error = this.getError('minlength');\n return this._translateService.get('it.errors.min-length-invalid', { min: error.requiredLength });\n }\n if (this.hasError('maxlength')) {\n const error = this.getError('maxlength');\n return this._translateService.get('it.errors.max-length-invalid', { max: error.requiredLength });\n }\n if (this.hasError('email') || this.hasError('invalidEmail')) {\n return this._translateService.get('it.errors.email-invalid');\n }\n if (this.hasError('invalidTel')) {\n return this._translateService.get('it.errors.tel-invalid');\n }\n if (this.hasError('invalidUrl')) {\n return this._translateService.get('it.errors.url-invalid');\n }\n if (this.hasError('invalidTaxCode')) {\n return this._translateService.get('it.errors.tax-code-invalid');\n }\n if (this.hasError('invalidVatNumber')) {\n return this._translateService.get('it.errors.vat-number-invalid');\n }\n if (this.hasError('invalidCap')) {\n return this._translateService.get('it.errors.cap-invalid');\n }\n if (this.hasError('invalidIban')) {\n return this._translateService.get('it.errors.iban-invalid');\n }\n if (this.hasError('invalidRegex')) {\n return this._translateService.get('it.errors.regex-invalid');\n }\n if (this.hasError('pattern')) {\n const error = this.getError('pattern');\n return this._translateService.get('it.errors.pattern-invalid', { pattern: error.requiredPattern });\n }\n\n return super.invalidMessage;\n }\n\n /** Observable da cui vengono emessi i risultati dell'auto completamento */\n autocompleteResults$: Observable<{\n searchedValue: string | number | null | undefined,\n relatedEntries: Array<AutocompleteItem>\n }> = new Observable();\n\n\n override ngOnInit() {\n super.ngOnInit();\n\n const validators: Array<ValidatorFn> = [];\n switch (this.type) {\n case 'number':\n if (isTrueBooleanInput(this.percentage)) {\n this.min = this.min || 0;\n this.max = this.max || 100;\n }\n\n // Dynamic min/max validators\n validators.push((control: AbstractControl) => this.min ? Validators.min(this.min)(control) : null);\n validators.push((control: AbstractControl) => this.max ? Validators.max(this.max)(control) : null);\n break;\n case 'email':\n validators.push(ItValidators.email);\n break;\n case 'tel':\n validators.push(ItValidators.tel);\n break;\n case 'url':\n validators.push(ItValidators.url);\n break;\n }\n\n this.addValidators(validators);\n this.autocompleteResults$ = this.getAutocompleteResults$();\n }\n\n /**\n * Increment or decrease the input number value of step\n * @param decrease true to decrease value\n */\n incrementNumber(decrease: boolean = false): void {\n if (this.type !== 'number') {\n return;\n }\n const step = (this.step === 'any' ? 1 : (this.step ?? 1));\n let value = Number(this.control.value);\n value = (isNaN(value) ? 0 : value) + (decrease ? -step : step);\n value = Math.round(value * 1e12) / 1e12; // prevent js decimal error\n\n if (this.min !== undefined && value < this.min) {\n value = this.min;\n } else if (this.max !== undefined && value > this.max) {\n value = this.max;\n }\n\n this.control.setValue(value);\n }\n\n\n /**\n * Create the autocomplete list\n */\n private getAutocompleteResults$(): Observable<{ searchedValue: string | number | null | undefined, relatedEntries: Array<AutocompleteItem> }> {\n if (this.type !== 'search') {\n return of({ searchedValue: '', relatedEntries: [] });\n }\n return this.control.valueChanges.pipe(\n debounceTime(this.autocompleteDebounceTime), // Delay filter data after time span has passed without another source emission, useful when the user is typing multiple letters\n distinctUntilChanged(), // Only if searchValue is distinct in comparison to the last value\n switchMap(searchedValue => {\n if (!this.autocompleteData) {\n return of({ searchedValue, relatedEntries: <Array<AutocompleteItem>>[] });\n }\n\n const autoCompleteData$ = Array.isArray(this.autocompleteData) ? of(this.autocompleteData) : this.autocompleteData(searchedValue);\n return autoCompleteData$.pipe(\n map(autocompleteData => {\n if (!searchedValue || typeof searchedValue === 'number') {\n return { searchedValue, relatedEntries: [] };\n }\n\n const lowercaseValue = searchedValue.toLowerCase();\n const relatedEntries = autocompleteData.filter(item => item.value?.toLowerCase().includes(lowercaseValue));\n\n return { searchedValue, relatedEntries };\n })\n );\n })\n );\n }\n\n onEntryClick(entry: AutocompleteItem, event: Event) {\n // Se non è stato definito un link associato all'elemento dell'autocomplete, probabilmente il desiderata\n // non è effettuare la navigazione al default '#', pertanto in tal caso meglio annullare la navigazione.\n if (!entry.link) {\n event.preventDefault();\n }\n\n this.autocompleteSelectedEvent.next(entry);\n this.control.setValue(entry.value);\n this.showAutocompletion = false;\n }\n\n autocompleteItemTrackByValueFn(index: number, item: AutocompleteItem) {\n return item.value;\n }\n\n onKeyDown() {\n this.showAutocompletion = this.type === 'search';\n }\n}\n","<div class=\"form-group\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\" [class.d-none]=\"!prependText.hasChildNodes() && !prepend.hasChildNodes()\">\n <div #prepend>\n <ng-content select=\"[prepend]\"></ng-content>\n </div>\n <div class=\"input-group-text\" #prependText>\n <ng-content select=\"[prependText]\"></ng-content>\n </div>\n </div>\n\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"isActiveLabel\"\n [class.empty-prepend-label]=\"!prependText.hasChildNodes() && !prepend.hasChildNodes()\">\n {{label}}\n </label>\n\n <span *ngIf=\"type === 'number'\"\n class=\"input-number\"\n [class.input-number-currency]=\"currency\"\n [class.input-number-percentage]=\"percentage\"\n [class.input-number-adaptive]=\"adaptive\">\n\n <input type=\"number\"\n [id]=\"id\"\n [step]=\"step ?? null\"\n [min]=\"min ?? null\"\n [max]=\"max ?? null\"\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 [autocomplete]=\"autocomplete\"\n [attr.aria-describedby]=\"id + '-description'\"\n (blur)=\"markAsTouched()\" />\n\n <button type=\"button\" class=\"input-number-add\" [disabled]=\"!control.enabled\" (click)=\"incrementNumber()\">\n <span class=\"visually-hidden\">{{'it.form.increase-value' | translate}}</span>\n </button>\n <button type=\"button\" class=\"input-number-sub\" [disabled]=\"!control.enabled\" (click)=\"incrementNumber(true)\">\n <span class=\"visually-hidden\">{{'it.form.decrease-value' | translate}}</span>\n </button>\n </span>\n\n <input *ngIf=\"type !== 'number'\"\n [id]=\"id\"\n [type]=\"type\"\n [max]=\"type === 'date' ? maxDate : undefined\"\n [min]=\"type === 'date' ? minDate : undefined\"\n [class.form-control]=\"readonly !== 'plaintext'\"\n [class.form-control-plaintext]=\"readonly === 'plaintext'\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n (keydown)=\"onKeyDown()\"\n [autocomplete]=\"autocomplete\"\n [attr.aria-describedby]=\"id + '-description'\"\n (blur)=\"markAsTouched()\">\n\n <div class=\"input-group-append\">\n <ng-content select=\"[append]\"></ng-content>\n\n <div class=\"input-group-text\">\n <ng-content select=\"[appendText]\"></ng-content>\n </div>\n </div>\n </div>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n\n <!-- INIZIO gestione AUTOCOMPLETAMENTO -->\n <ng-container *ngIf=\"type === 'search'\">\n <!-- Icona lente per autocompletamento -->\n <span class=\"autocomplete-icon\" aria-hidden=\"true\">\n <it-icon name=\"search\" size=\"sm\"></it-icon>\n </span>\n\n <ng-container *ngIf=\"autocompleteResults$ | async as autocomplete\">\n <!-- Lista di autocompletamento -->\n <ul class=\"autocomplete-list\" [class.autocomplete-list-show]=\"autocomplete.relatedEntries?.length && showAutocompletion\">\n <li *ngFor=\"let entry of autocomplete.relatedEntries; trackBy: autocompleteItemTrackByValueFn\"\n (click)=\"onEntryClick(entry, $event)\">\n <a [href]=\"entry.link\">\n <ng-container *ngTemplateOutlet=\"autocompleteItemTemplate\"></ng-container>\n </a>\n <ng-template #autocompleteItemTemplate>\n <div class=\"avatar size-sm\" *ngIf=\"entry.avatarSrcPath\">\n <img [src]=\"entry.avatarSrcPath\" [alt]=\"entry.avatarAltText\">\n </div>\n <it-icon *ngIf=\"entry.icon\" [name]=\"entry.icon\" size=\"sm\"></it-icon>\n <span class=\"autocomplete-list-text\">\n <span [innerHTML]=\"entry.value | markMatchingText: autocomplete.searchedValue\"></span>\n <em *ngIf=\"entry.label\">{{entry.label}}</em>\n </span>\n </ng-template>\n </li>\n </ul>\n </ng-container>\n </ng-container>\n <!-- FINE gestione AUTOCOMPLETAMENTO -->\n\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, filter } from 'rxjs';\nimport { LowerCasePipe, NgForOf, NgIf } from '@angular/common';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ItDropdownModule } from '../dropdown/dropdown.module';\nimport { ItInputComponent } from '../../form/input/input.component';\n\n@Component({\n standalone: true,\n selector: 'it-pagination[currentPage][pageNumbers]',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, NgForOf, ItIconComponent, TranslateModule, LowerCasePipe, ItDropdownModule, ItInputComponent, ReactiveFormsModule]\n})\nexport class ItPaginationComponent implements OnChanges {\n\n /**\n * Index of page (start 0)\n */\n @Input() currentPage!: number;\n\n /**\n * Max number of page (counter)\n */\n @Input() pageNumbers!: number;\n\n /**\n * Number of pages closest to the current one to display\n * @default 5\n */\n @Input() visiblePages: number = 5;\n\n /**\n * Pagination alignment (justify-content)\n */\n @Input() alignment: 'center' | 'end' | undefined;\n\n /**\n * Enable/Disable simple mode\n * Pagination in the \"Simple mode\" version is optimized for mobile devices.\n * @default undefined - disabled\n */\n @Input() simpleMode: BooleanInput | undefined;\n\n /**\n * Enable/Disable text links\n * Chevron icons used as navigation links are replaced by text links such as “previous” and “next”.\n * @default undefined - disabled\n */\n @Input() textLinks: BooleanInput | undefined;\n\n /**\n * Current value of Changer\n * If is set show the Changer\n * @default undefined - hide the Changer\n */\n @Input() currentChanger: number | undefined;\n\n /**\n * Available Changer values\n * @default [10, 25, 50, 100]\n */\n @Input() changerValues: Array<number> = [10, 25, 50, 100];\n\n /**\n * Hide/Show \"Jump to page\" input\n * @default undefined - hidden\n */\n @Input() showJumpToPage: BooleanInput | undefined;\n\n /**\n * Fired when page is changed. Emit the new index of page\n */\n @Output() pageEvent = new EventEmitter<number>();\n\n /**\n * Fired when changer is changed. Emit the new changer value\n */\n @Output() changerEvent = new EventEmitter<number>();\n\n /**\n * The pages\n * @protected\n */\n protected pages: Array<number> = [];\n\n /**\n * Jump to page input\n * @protected\n */\n protected jumpToPage: FormControl<number | null> = new FormControl<number | null>(null);\n\n get isSimpleMode(): boolean {\n return isTrueBooleanInput(this.simpleMode);\n }\n\n get isTextLinks(): boolean {\n return isTrueBooleanInput(this.textLinks);\n }\n\n get isShowJumpToPage(): boolean {\n return isTrueBooleanInput(this.showJumpToPage);\n }\n\n constructor() {\n this.jumpToPage.valueChanges.pipe(\n debounceTime(300), // Delay filter data after time span has passed without another source emission\n distinctUntilChanged(),\n filter(value => !!value && this.jumpToPage.valid)\n ).subscribe(value => {\n this.pageEvent.emit(value! - 1);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.pages = this.calculatePages();\n if (changes['currentPage']) {\n this.jumpToPage.setValue(null, { emitEvent: false });\n }\n }\n\n /**\n * Create array to generate pagination of `visiblePages` element\n */\n private calculatePages(): Array<number> {\n if (this.isSimpleMode) {\n return [this.currentPage];\n }\n\n const length = this.pageNumbers > this.visiblePages ? this.visiblePages : this.pageNumbers;\n\n const halfVisiblePages = Math.floor(this.visiblePages / 2);\n let start = (this.currentPage > halfVisiblePages && this.pageNumbers > this.visiblePages) ?\n this.currentPage - halfVisiblePages + 1 : 1;\n\n if (this.pageNumbers > this.visiblePages) {\n if ((this.currentPage + 1) >= this.pageNumbers) {\n start -= halfVisiblePages;\n } else if (this.currentPage >= (this.pageNumbers - halfVisiblePages)) {\n start -= (this.pageNumbers - (this.currentPage + 1));\n }\n }\n\n return Array.from({ length }, (_, i) => i + start);\n }\n\n /**\n * On click page change\n * @param event click event\n * @param newPage the new page of table\n */\n protected pageChange(event: Event, newPage: number): void {\n event.preventDefault();\n this.pageEvent.emit(newPage - 1); // emit new page index\n }\n\n /**\n * On click changer\n * @param event click event\n * @param value the new changer value\n */\n protected changerChange(event: Event, value: number): void {\n event.preventDefault();\n this.changerEvent.emit(value); // emit new changer value\n }\n\n}\n","<nav class=\"pagination-wrapper\"\n [class.justify-content-center]=\"alignment==='center'\"\n [class.justify-content-end]=\"alignment==='end'\"\n [class.pagination-total]=\"totalNumberText.hasChildNodes()\">\n\n <ul *ngIf=\"pages.length\" class=\"pagination\">\n <li class=\"page-item\" [class.disabled]=\"currentPage < 1\">\n <a class=\"page-link\" [class.text]=\"isTextLinks\" href=\"#\" (click)=\"pageChange($event, currentPage)\">\n <it-icon *ngIf=\"!isTextLinks\" name=\"chevron-left\" color=\"primary\"></it-icon>\n <span class=\"visually-hidden\">\n {{(isTextLinks ? 'it.core.page' : 'it.core.previous-page') | translate}}\n </span>\n <ng-container *ngIf=\"isTextLinks\">{{'it.core.previous' | translate}}</ng-container>\n </a>\n </li>\n\n <ng-container *ngIf=\"isSimpleMode; else defaultView\">\n <li class=\"page-item\"><span class=\"page-link\" aria-current=\"page\">{{currentPage + 1}}</span></li>\n <li class=\"page-item\"><span class=\"page-link\">/</span></li>\n <li class=\"page-item\"><span class=\"page-link\">{{pageNumbers}}</span></li>\n <li class=\"page-item visually-hidden\">\n <a class=\"page-link\" href=\"#\" aria-current=\"page\">\n {{'it.core.page-of-total'|translate : {page: (currentPage + 1), total: pageNumbers} }}\n </a>\n </li>\n </ng-container>\n <ng-template #defaultView>\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[0] >= 2\">\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, 1)\">1</a>\n </li>\n <li class=\"page-item\" *ngIf=\"pages[0] >= 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\" href=\"#\" (click)=\"pageChange($event, page)\">{{page}}</a>\n </ng-template>\n </li>\n\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[pages.length - 1] < pageNumbers\">\n <li class=\"page-item\" *ngIf=\"pages[pages.length - 1] < (pageNumbers - 1)\">\n <span class=\"page-link\">...</span>\n </li>\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, pageNumbers)\">{{pageNumbers}}</a>\n </li>\n </ng-container>\n </ng-template>\n\n <li class=\"page-item\" [class.disabled]=\"currentPage >= pageNumbers - 1\">\n <a class=\"page-link\" [class.text]=\"isTextLinks\" href=\"#\" (click)=\"pageChange($event, currentPage + 2)\">\n <span class=\"visually-hidden\">\n {{(isTextLinks ? 'it.core.page' : 'it.core.next-page') | translate}}\n </span>\n <ng-container *ngIf=\"isTextLinks\">{{'it.core.next' | translate}}</ng-container>\n <it-icon *ngIf=\"!isTextLinks\" name=\"chevron-right\" color=\"primary\"></it-icon>\n </a>\n </li>\n </ul>\n\n <it-dropdown *ngIf=\"currentChanger !== undefined\">\n <span button>{{currentChanger}} / {{'it.core.page' | translate | lowercase}}</span>\n <ng-container list>\n <it-dropdown-item *ngFor=\"let value of changerValues\" href=\"#\" externalLink=\"true\"\n (click)=\"changerChange($event, value)\">\n {{value}} / {{'it.core.page' | translate | lowercase}}\n </it-dropdown-item>\n </ng-container>\n </it-dropdown>\n\n <it-input *ngIf=\"isShowJumpToPage\" type=\"number\" [min]=\"1\" [max]=\"pageNumbers\"\n [label]=\"('it.core.go-to' | translate) + '...'\" [formControl]=\"jumpToPage\"></it-input>\n\n <p [class.d-none]=\"!totalNumberText.hasChildNodes()\" #totalNumberText>\n <ng-content></ng-content>\n </p>\n</nav>\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ElementPlacement } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { Popover } from 'bootstrap-italia';\n\n@Directive({\n standalone: true,\n selector: '[itPopover]',\n exportAs: 'itPopover'\n})\nexport class ItPopoverDirective implements AfterViewInit, OnDestroy {\n\n /**\n * Define the popover content\n * @param content the popover content\n */\n @Input('itPopover') set content(content: string) {\n this.element.setAttribute('data-bs-content', content);\n }\n\n /**\n * Define the popover title\n * @param title the popover title\n */\n @Input() set popoverTitle(title: string | undefined) {\n if (title) {\n this.element.setAttribute('title', title);\n this.element.setAttribute('data-bs-original-title', title);\n }\n }\n\n\n /**\n * Define the popover placement\n * @param placement\n */\n @Input() set popoverPlacement(placement: ElementPlacement) {\n this.element.setAttribute('data-bs-placement', placement);\n }\n\n /**\n * Appends the popover to a specific element.\n * @param container\n */\n @Input() set popoverContainer(container: 'body' | string | undefined) {\n if (container) {\n this.element.setAttribute('data-container', container);\n }\n }\n\n /**\n * Indicates whether the title contains html\n * @param html true if contain html\n */\n @Input() set popoverHtml(html: BooleanInput) {\n this.element.setAttribute('data-bs-html', isTrueBooleanInput(html) ? 'true' : 'false');\n }\n\n /**\n * How popover is triggered\n * - 'hover': To open the Popover on hover of the mouse over the element\n * - 'focus': To ignore popovers on the user's next click of an element other than the toggle element.\n * @param trigger\n */\n @Input() set popoverTrigger(trigger: 'click' | 'hover' | 'focus' | 'manual' | undefined) {\n if (trigger) {\n this.element.setAttribute('data-bs-trigger', trigger);\n }\n }\n\n /**\n * This event fires immediately when the show method is called.\n */\n @Output() showEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).\n */\n @Output() shownEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires immediately when the hide method is called.\n */\n @Output() hideEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).\n */\n @Output() hiddenEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires after the show event when the tooltip template has been added to the DOM.\n */\n @Output() insertedEvent: EventEmitter<Event> = new EventEmitter();\n\n private readonly element: HTMLElement;\n private popover?: Popover;\n\n constructor(\n private readonly _elementRef: ElementRef\n ) {\n this.element = this._elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n this.element.setAttribute('data-bs-toggle', 'popover');\n this.popover = Popover.getOrCreateInstance(this.element);\n\n this.element.addEventListener('show.bs.popover', event => this.showEvent.emit(event));\n this.element.addEventListener('shown.bs.popover', event => this.shownEvent.emit(event));\n this.element.addEventListener('hide.bs.popover', event => this.hideEvent.emit(event));\n this.element.addEventListener('hidden.bs.popover', event => this.hiddenEvent.emit(event));\n this.element.addEventListener('inserted.bs.popover', event => this.insertedEvent.emit(event));\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n /**\n * Shows the popover of an item.\n */\n public show(): void {\n this.popover?.show();\n }\n\n /**\n * Hide the popover of an element.\n */\n public hide(): void {\n this.popover?.hide();\n }\n\n /**\n * Activate / Deactivate the popover of an element\n */\n public toggle(): void {\n this.popover?.toggle();\n }\n\n /**\n * Hides and destroys the popover of an element.\n */\n public dispose(): void {\n this.popover?.dispose();\n }\n\n /**\n * Gives the popover of an element a chance to be shown.\n */\n public enable(): void {\n this.popover?.enable();\n }\n\n /**\n * Removes the ability to show the popover of an element.\n */\n public disable(): void {\n this.popover?.disable();\n }\n\n /**\n * Toggles the possibility that the popover of an element is shown or hidden.\n */\n public toggleEnabled(): void {\n this.popover?.disable();\n }\n\n /**\n * Updates the position of an element's popover.\n */\n public update(): void {\n this.popover?.disable();\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'it-spinner',\n templateUrl: './spinner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, TranslateModule]\n})\nexport class ItSpinnerComponent {\n\n /**\n * The spinner is active\n */\n @Input() active: BooleanInput = true;\n\n /**\n * Show a small spinner\n */\n @Input() small: BooleanInput | undefined;\n\n /**\n * Show the double animation\n */\n @Input() double: BooleanInput | undefined;\n\n get isActive(): boolean {\n return isTrueBooleanInput(this.active);\n }\n\n get isSmall(): boolean {\n return isTrueBooleanInput(this.small);\n }\n\n get isDouble(): boolean {\n return isTrueBooleanInput(this.double);\n }\n\n}\n","<div class=\"progress-spinner\"\n [class.progress-spinner-double]=\"isDouble\"\n [class.progress-spinner-active]=\"isActive\"\n [class.size-sm]=\"isSmall\">\n <div *ngIf=\"isDouble\" class=\"progress-spinner-inner\"></div>\n <div *ngIf=\"isDouble\" class=\"progress-spinner-inner\"></div>\n <span class=\"visually-hidden\">{{'it.core.loading'|translate}}...</span>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { IconName } from '../../../../interfaces/icon';\nimport { ItAbstractComponent } from '../../../../abstracts/abstract.component';\n\n@Component({\n standalone: true,\n selector: 'it-steppers-item[label]',\n templateUrl: './steppers-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItSteppersItemComponent extends ItAbstractComponent {\n\n /**\n * The labels present in the header steps\n */\n @Input() label!: string;\n\n /**\n * The labels present in the header steps can be preceded by an icon.\n */\n @Input() icon: IconName | undefined;\n\n /**\n * The content of step\n */\n @ViewChild(TemplateRef) public htmlContent!: TemplateRef<any>;\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList\n} from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { ItSteppersItemComponent } from '../steppers-item/steppers-item.component';\nimport { ProgressBarColor } from '../../../../interfaces/core';\nimport { startWith, Subscription } from 'rxjs';\nimport { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ItIconComponent } from '../../../utils/icon/icon.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ItButtonDirective } from '../../button/button.directive';\nimport { ItProgressBarComponent } from '../../progress-bar/progress-bar.component';\nimport { ItProgressButtonComponent } from '../../progress-button/progress-button.component';\n\n@Component({\n standalone: true,\n selector: 'it-steppers-container[activeStep]',\n templateUrl: './steppers-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, NgForOf, ItIconComponent, NgTemplateOutlet, TranslateModule, ItButtonDirective, ItProgressBarComponent, ItProgressButtonComponent]\n})\nexport class ItSteppersContainerComponent implements AfterViewInit, OnDestroy {\n\n /**\n * The active step index\n * @param index the step index\n */\n @Input() activeStep!: number;\n\n /**\n * Show the stepper header\n * @default true\n */\n @Input() showHeader: BooleanInput = true;\n\n /**\n * Dark style\n */\n @Input() dark: BooleanInput | undefined;\n\n /**\n * The labels present in the header steps can be anticipated by the relative ordinal number.\n */\n @Input() steppersNumber: BooleanInput | undefined;\n\n /**\n * The progress style\n * -<b>progress</b>: Show progress bar - You can change the color with the `progressColor` attribute\n * -<b>dots</b>: Show progress dots\n * @default undefined - don't show progress\n */\n @Input() progressStyle: 'progress' | 'dots' | undefined;\n\n /**\n * Customize progress color\n */\n @Input() progressColor: ProgressBarColor | undefined;\n\n /**\n * Show the back button\n * @default true\n */\n @Input() showBackButton: BooleanInput = true;\n\n /**\n * Disable the back button\n * @default false\n */\n @Input() disableBackButton: BooleanInput | undefined;\n\n /**\n * Show the forward button\n * @default true\n */\n @Input() showForwardButton: BooleanInput = true;\n\n /**\n * Disable the forward button\n * @default false\n */\n @Input() disableForwardButton: BooleanInput | undefined;\n\n /**\n * Show the confirm button\n * @default false\n */\n @Input() showConfirmButton: BooleanInput | undefined;\n\n /**\n * Disable the confirm button\n * @default false\n */\n @Input() disableConfirmButton: BooleanInput | undefined;\n\n /**\n * Show the confirm button as indeterminate progress button\n */\n @Input() confirmLoading: BooleanInput | undefined;\n\n /**\n * Show the save button\n * @default false\n */\n @Input() showSaveButton: BooleanInput | undefined;\n\n /**\n * Disable the save button\n * @default false\n */\n @Input() disableSaveButton: BooleanInput | undefined;\n\n /**\n * Show the save button as indeterminate progress button\n */\n @Input() saveLoading: BooleanInput | undefined;\n\n /**\n * The stepper items\n */\n @ContentChildren(ItSteppersItemComponent) steps?: QueryList<ItSteppersItemComponent>;\n\n /**\n * On back button click\n * @event activeStep the current step index\n */\n @Output() backClick: EventEmitter<number>;\n\n /**\n * On forward button click\n * @event activeStep the current step index\n */\n @Output() forwardClick: EventEmitter<number>;\n\n /**\n * On confirm button click\n * @event activeStep the current step index\n */\n @Output() confirmClick: EventEmitter<number>;\n\n /**\n * On save button click\n * @event activeStep the current step index\n */\n @Output() saveClick: EventEmitter<number>;\n\n get isShowHeader(): boolean {\n return isTrueBooleanInput(this.showHeader);\n }\n\n get isSteppersNumber(): boolean {\n return isTrueBooleanInput(this.steppersNumber);\n }\n\n get isDark(): boolean {\n return isTrueBooleanInput(this.dark);\n }\n\n get isShowBackButton(): boolean {\n return isTrueBooleanInput(this.showBackButton);\n }\n\n get isDisableBackButton(): boolean {\n return isTrueBooleanInput(this.disableBackButton);\n }\n\n get isShowForwardButton(): boolean {\n return isTrueBooleanInput(this.showForwardButton);\n }\n\n get isDisableForwardButton(): boolean {\n return isTrueBooleanInput(this.disableForwardButton);\n }\n\n get isShowConfirmButton(): boolean {\n return isTrueBooleanInput(this.showConfirmButton);\n }\n\n get isDisableConfirmButton(): boolean {\n return isTrueBooleanInput(this.disableConfirmButton);\n }\n\n get isConfirmLoading(): boolean {\n return isTrueBooleanInput(this.confirmLoading);\n }\n\n get isShowSaveButton(): boolean {\n return isTrueBooleanInput(this.showSaveButton);\n }\n\n get isDisableSaveButton(): boolean {\n return isTrueBooleanInput(this.disableSaveButton);\n }\n\n get isSaveLoading(): boolean {\n return isTrueBooleanInput(this.saveLoading);\n }\n\n private stepsSubscriptions?: Array<Subscription>;\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef\n ) {\n this.backClick = new EventEmitter<number>();\n this.forwardClick = new EventEmitter<number>();\n this.confirmClick = new EventEmitter<number>();\n this.saveClick = new EventEmitter<number>();\n }\n\n ngAfterViewInit(): void {\n this.steps?.changes.pipe( // When steps changes (dynamic add/remove)\n startWith(undefined)\n ).subscribe(() => {\n this.stepsSubscriptions?.forEach(sub => sub.unsubscribe()); // Remove old subscriptions\n this.stepsSubscriptions = this.steps?.map(step => step.valueChanges.subscribe(() => {\n this._changeDetectorRef.detectChanges(); // DetectChanges when step attributes changes\n }));\n this._changeDetectorRef.detectChanges(); // Force update html render\n });\n }\n\n ngOnDestroy(): void {\n this.stepsSubscriptions?.forEach(step => step.unsubscribe());\n }\n}\n","<div class=\"steppers\" [class.bg-dark]=\"isDark\">\n <div *ngIf=\"isShowHeader\" class=\"steppers-header\">\n <ul *ngIf=\"steps\">\n <li *ngFor=\"let step of steps; let i = index\"\n [class.confirmed]=\"i < activeStep\"\n [class.active]=\"i === activeStep\"\n [class.no-line]=\"i === activeStep && isSteppersNumber\">\n\n <it-icon *ngIf=\"step.icon && !isSteppersNumber\" [name]=\"step.icon\"></it-icon>\n <span *ngIf=\"isSteppersNumber\" class=\"steppers-number\">\n <ng-container *ngIf=\"i < activeStep; else showNumber\">\n <ng-container *ngTemplateOutlet=\"checkIcon\"></ng-container>\n </ng-container>\n <ng-template #showNumber>\n <span class=\"visually-hidden\">{{'it.core.step' | translate}} </span>{{i + 1}}\n </ng-template>\n </span>\n\n {{step.label}}\n\n <ng-container *ngIf=\"i < activeStep && !isSteppersNumber\">\n <ng-container *ngTemplateOutlet=\"checkIcon\"></ng-container>\n </ng-container>\n <span *ngIf=\"i === activeStep\" class=\"visually-hidden\">{{'it.core.active' | translate}}</span>\n </li>\n </ul>\n <span *ngIf=\"steps\" class=\"steppers-index\" aria-hidden=\"true\">\n <ng-container *ngIf=\"!isSteppersNumber; else showNumbers\">\n {{(activeStep + 1) + '/' + steps.length}}\n </ng-container>\n <ng-template #showNumbers>\n <span *ngFor=\"let step of steps; let i = index\" [class.active]=\"i === activeStep\">{{i + 1}}</span>\n </ng-template>\n </span>\n </div>\n\n <div *ngIf=\"steps?.get(activeStep) as step\" class=\"steppers-content\" aria-live=\"polite\">\n <ng-container *ngTemplateOutlet=\"step.htmlContent\"></ng-container>\n </div>\n\n <nav *ngIf=\"isShowBackButton || isShowSaveButton || isShowForwardButton || isShowConfirmButton || !!progressStyle\"\n class=\"steppers-nav\">\n <button *ngIf=\"isShowBackButton\" type=\"button\" itButton=\"outline-primary\" size=\"sm\" class=\"steppers-btn-prev\"\n [disabled]=\"isDisableBackButton\"\n (click)=\"backClick.emit(activeStep)\">\n <it-icon name=\"chevron-left\" color=\"primary\"></it-icon>\n {{'it.core.back' | translate}}\n </button>\n\n <ng-container *ngIf=\"!!progressStyle && steps\">\n <ul *ngIf=\"progressStyle === 'dots'; else progressBar\" class=\"steppers-dots\">\n <li *ngFor=\"let step of steps; let i = index\" [class.done]=\"i < activeStep\">\n <span class=\"visually-hidden\">\n {{'it.core.step-of' | translate: { current: activeStep + 1, available: steps?.length } }}\n {{i < activeStep ? ('- ' + ('it.core.confirmed' | translate)) : ''}}\n </span>\n </li>\n </ul>\n\n <ng-template #progressBar>\n <div class=\"steppers-progress\">\n <it-progress-bar [color]=\"progressColor\" [value]=\"(activeStep/(steps?.length||1)) * 100\"></it-progress-bar>\n </div>\n </ng-template>\n </ng-container>\n\n <button *ngIf=\"isShowSaveButton\" type=\"button\" itButton=\"primary\" size=\"sm\" class=\"steppers-btn-save\"\n [progress]=\"isSaveLoading\" [disabled]=\"isSaveLoading || isDisableSaveButton\"\n (click)=\"saveClick.emit(activeStep)\">\n {{'it.general.save' | translate}}\n </button>\n\n <button *ngIf=\"isShowForwardButton\" type=\"button\" itButton=\"outline-primary\" size=\"sm\" class=\"steppers-btn-next\"\n [disabled]=\"isDisableForwardButton\"\n (click)=\"forwardClick.emit(activeStep)\">\n {{'it.core.forward' | translate}}\n <it-icon name=\"chevron-right\" color=\"primary\"></it-icon>\n </button>\n\n <button *ngIf=\"isShowConfirmButton\" type=\"button\" itButton=\"primary\" size=\"sm\"\n class=\"steppers-btn-confirm d-lg-block\"\n [progress]=\"isConfirmLoading\" [disabled]=\"isConfirmLoading || isDisableConfirmButton\"\n (click)=\"confirmClick.emit(activeStep)\">\n {{'it.core.confirm' | translate}}\n </button>\n </nav>\n</div>\n\n<ng-template #checkIcon>\n <it-icon name=\"check\" class=\"steppers-success\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.confirmed' | translate}}</span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ItSteppersContainerComponent } from './steppers-container/steppers-container.component';\nimport { ItSteppersItemComponent } from './steppers-item/steppers-item.component';\n\nconst steppersComponents = [\n ItSteppersContainerComponent,\n ItSteppersItemComponent\n];\n\n@NgModule({\n imports: steppersComponents,\n exports: steppersComponents\n})\nexport class ItSteppersModule {\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { ItAbstractComponent } from '../../../../abstracts/abstract.component';\nimport { BooleanInput } from '../../../../utils/boolean-input';\nimport { IconName } from '../../../../interfaces/icon';\n\n@Component({\n standalone: true,\n selector: 'it-tab-item',\n templateUrl: './tab-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItTabItemComponent extends ItAbstractComponent implements AfterViewInit {\n\n /**\n * The tab label\n */\n @Input() label: string | undefined;\n\n /**\n * The icon name\n */\n @Input() icon: IconName | undefined;\n\n /**\n * Default active tab\n */\n @Input() active: BooleanInput | undefined;\n\n /**\n * Default disabled tab\n */\n @Input() disabled: BooleanInput | undefined;\n\n /**\n * Custom class\n */\n @Input() class: string = '';\n\n /**\n * The content of tab\n */\n @ViewChild(TemplateRef) public htmlContent!: TemplateRef<any>;\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n ViewChildren\n} from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { ItTabItemComponent } from '../tab-item/tab-item.component';\nimport { of, startWith, Subscription, switchMap, tap } from 'rxjs';\nimport { Tab } from 'bootstrap-italia';\nimport { ItAbstractComponent } from '../../../../abstracts/abstract.component';\nimport { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ItIconComponent } from '../../../utils/icon/icon.component';\n\n@Component({\n standalone: true,\n selector: 'it-tab-container',\n templateUrl: './tab-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgForOf, NgIf, ItIconComponent, NgTemplateOutlet]\n})\nexport class ItTabContainerComponent extends ItAbstractComponent implements OnDestroy, AfterViewInit {\n\n /**\n * Tabs automatically occupy the entire available width\n */\n @Input() auto: BooleanInput | undefined;\n\n /**\n * To obtain the correct margin between text and icon in the horizontally developed tab\n */\n @Input() iconText: BooleanInput | undefined;\n\n /**\n * Dark style\n */\n @Input() dark: BooleanInput | undefined;\n\n /**\n * The tab items\n */\n @ContentChildren(ItTabItemComponent) tabs?: QueryList<ItTabItemComponent>;\n\n @ViewChildren('tabNavLinks') private tabNavLinks?: QueryList<ElementRef<HTMLAnchorElement>>;\n\n private tabSubscriptions?: Array<Subscription>;\n\n isTrueBooleanInput(booleanInput?: BooleanInput): boolean {\n return isTrueBooleanInput(booleanInput);\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n this.tabs?.changes.pipe( // When tabs changes (dynamic add/remove)\n startWith(undefined),\n tap(() => {\n this.tabSubscriptions?.forEach(sub => sub.unsubscribe()); // Remove old subscriptions\n this.tabSubscriptions = this.tabs?.map(tab => tab.valueChanges.subscribe(() => {\n this._changeDetectorRef.detectChanges(); // DetectChanges when tab-item attributes changes\n }));\n this._changeDetectorRef.detectChanges(); // Force update html render\n }),\n switchMap(() => this.tabNavLinks?.changes.pipe(startWith(undefined)) || of(undefined))\n ).subscribe(() => {\n // Init tabs from bootstrap-italia\n this.tabNavLinks?.forEach(tabNavLink => {\n const triggerEl = tabNavLink.nativeElement,\n tabTrigger = Tab.getOrCreateInstance(triggerEl);\n\n if (triggerEl.getAttribute('tab-listener') !== 'true') {\n triggerEl.addEventListener('click', event => {\n event.preventDefault();\n tabTrigger.show();\n this._changeDetectorRef.detectChanges();\n });\n triggerEl.setAttribute('tab-listener', 'true'); // Prevents multiple insertion of the listener\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.tabSubscriptions?.forEach(sub => sub.unsubscribe());\n }\n}\n","<ul *ngIf=\"tabs\"\n class=\"nav nav-tabs\"\n [class.auto]=\"isTrueBooleanInput(auto)\"\n [class.nav-tabs-icon-text]=\"isTrueBooleanInput(iconText)\"\n [class.nav-dark]=\"isTrueBooleanInput(dark)\"\n role=\"tablist\">\n\n <li class=\"nav-item\" *ngFor=\"let tab of tabs\">\n <a #tabNavLinks [id]=\"tab.id+'-tab-link'\"\n role=\"tab\"\n class=\"nav-link\"\n [class.active]=\"isTrueBooleanInput(tab.active)\"\n [class.disabled]=\"isTrueBooleanInput(tab.disabled)\"\n [attr.href]=\"'#'+tab.id+'-tab'\"\n [attr.aria-controls]=\"tab.id+'-tab'\">\n <it-icon *ngIf=\"tab.icon\" [name]=\"tab.icon\" class=\"me-2\"></it-icon>\n {{tab.label}}\n </a>\n </li>\n</ul>\n\n<div *ngIf=\"tabs\" class=\"tab-content\">\n <div *ngFor=\"let tab of tabs\"\n [id]=\"tab.id+'-tab'\"\n class=\"tab-pane p-4 fade {{tab.class ?? ''}}\"\n [class.active]=\"isTrueBooleanInput(tab.active)\"\n [class.show]=\"isTrueBooleanInput(tab.active)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tab.id+'-tab-link'\">\n <ng-container *ngTemplateOutlet=\"tab.htmlContent\"></ng-container>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ItTabContainerComponent } from './tab-container/tab-container.component';\nimport { ItTabItemComponent } from './tab-item/tab-item.component';\n\nconst tabComponents = [\n ItTabContainerComponent,\n ItTabItemComponent\n];\n\n@NgModule({\n imports: tabComponents,\n exports: tabComponents\n})\nexport class ItTabModule {\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TableColor, TableHeadColor, TableResponsive, VerticalAlignment } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\n\n@Component({\n standalone: true,\n selector: 'it-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItTableComponent {\n\n /**\n * Table color\n */\n @Input() color: TableColor | undefined;\n\n /**\n * Head table color\n */\n @Input() headColor: TableHeadColor | undefined;\n\n /**\n * Use vertical alignment classes to realign where needed.\n */\n @Input() alignment: VerticalAlignment | undefined;\n\n /**\n * Use .table-striped to add zebra stripes to each table row contained in <tbody>.\n */\n @Input() striped: BooleanInput | undefined;\n\n /**\n * Add .table-hover to enable hover state on table rows contained in <tbody>.\n */\n @Input() hover: BooleanInput | undefined;\n\n /**\n * Add .table-bordered to have borders on all sides of the table and on all cells.\n */\n @Input() bordered: BooleanInput | undefined;\n\n /**\n * Add the .table-borderless class for a borderless table.\n */\n @Input() borderless: BooleanInput | undefined;\n\n /**\n * Add .table-sm to make tables more compact by halving the cell padding.\n */\n @Input() compact: BooleanInput | undefined;\n\n /**\n * To render the <caption> on top of the table\n */\n @Input() captionTop: BooleanInput | undefined;\n\n /**\n * Responsive tables allow you to scroll tables horizontally with ease.\n * @default responsive\n */\n @Input() responsive: TableResponsive = 'responsive';\n\n\n get isStriped(): boolean {\n return isTrueBooleanInput(this.striped);\n }\n\n get isHover(): boolean {\n return isTrueBooleanInput(this.hover);\n }\n\n get isBordered(): boolean {\n return isTrueBooleanInput(this.bordered);\n }\n\n get isBorderless(): boolean {\n return isTrueBooleanInput(this.borderless);\n }\n\n get isCompact(): boolean {\n return isTrueBooleanInput(this.compact);\n }\n\n get isCaptionTop(): boolean {\n return isTrueBooleanInput(this.captionTop);\n }\n}\n","<div [class]=\"responsive ? 'table-' + responsive : undefined\">\n <table class=\"table{{color ? ' table-' + color : '' }}{{alignment ? ' ' + alignment : '' }}\"\n [class.table-striped]=\"isStriped\"\n [class.table-hover]=\"isHover\"\n [class.table-bordered]=\"isBordered\"\n [class.table-borderless]=\"isBorderless\"\n [class.table-sm]=\"isCompact\"\n [class.caption-top]=\"isCaptionTop\">\n <caption>\n <ng-content select=\"[caption]\"></ng-content>\n </caption>\n <thead [class]=\"headColor ? 'table-' + headColor : undefined\">\n <ng-content select=\"[thead]\"></ng-content>\n </thead>\n <tbody>\n <ng-content select=\"[tbody]\"></ng-content>\n </tbody>\n <tfoot>\n <ng-content select=\"[tfoot]\"></ng-content>\n </tfoot>\n </table>\n</div>\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ElementPlacement } from '../../../interfaces/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { Tooltip } from 'bootstrap-italia';\n\n@Directive({\n standalone: true,\n selector: '[itTooltip]',\n exportAs: 'itTooltip'\n})\nexport class ItTooltipDirective implements AfterViewInit, OnDestroy {\n\n /**\n * Define the tooltip title\n * @param title the tooltip title\n */\n @Input('itTooltip') set title(title: string | undefined) {\n if (title) {\n // this.element.setAttribute(\"title\", title);\n this.element.setAttribute('data-bs-original-title', title);\n }\n }\n\n /**\n * Define the tooltip placement\n * @param placement\n */\n @Input() set tooltipPlacement(placement: ElementPlacement) {\n this.element.setAttribute('data-bs-placement', placement);\n }\n\n /**\n * Indicates whether the title contains html\n * @param html true if contain html\n */\n @Input() set tooltipHtml(html: BooleanInput) {\n this.element.setAttribute('data-bs-html', isTrueBooleanInput(html) ? 'true' : 'false');\n }\n\n /**\n * This event fires immediately when the show method is called.\n */\n @Output() showEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).\n */\n @Output() shownEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires immediately when the hide method is called.\n */\n @Output() hideEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).\n */\n @Output() hiddenEvent: EventEmitter<Event> = new EventEmitter();\n\n /**\n * This event fires after the show event when the tooltip template has been added to the DOM.\n */\n @Output() insertedEvent: EventEmitter<Event> = new EventEmitter();\n\n private readonly element: HTMLElement;\n private tooltip?: Tooltip;\n\n constructor(\n private readonly _elementRef: ElementRef\n ) {\n this.element = this._elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n this.element.setAttribute('data-bs-toggle', 'tooltip');\n this.tooltip = Tooltip.getOrCreateInstance(this.element);\n\n this.element.addEventListener('show.bs.tooltip', event => this.showEvent.emit(event));\n this.element.addEventListener('shown.bs.tooltip', event => this.shownEvent.emit(event));\n this.element.addEventListener('hide.bs.tooltip', event => this.hideEvent.emit(event));\n this.element.addEventListener('hidden.bs.tooltip', event => this.hiddenEvent.emit(event));\n this.element.addEventListener('inserted.bs.tooltip', event => this.insertedEvent.emit(event));\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n /**\n * Shows the tooltip of an item.\n */\n public show(): void {\n this.tooltip?.show();\n }\n\n /**\n * Hide the tooltip of an element.\n */\n public hide(): void {\n this.tooltip?.hide();\n }\n\n /**\n * Activate / Deactivate the tooltip of an element\n */\n public toggle(): void {\n this.tooltip?.toggle();\n }\n\n /**\n * Hides and destroys the tooltip of an element.\n */\n public dispose(): void {\n this.tooltip?.dispose();\n }\n\n /**\n * Gives the tooltip of an element a chance to be shown.\n */\n public enable(): void {\n this.tooltip?.enable();\n }\n\n /**\n * Removes the ability to show the tooltip of an element.\n */\n public disable(): void {\n this.tooltip?.disable();\n }\n\n /**\n * Toggles the possibility that the tooltip of an element is shown or hidden.\n */\n public toggleEnabled(): void {\n this.tooltip?.disable();\n }\n\n /**\n * Updates the position of an element's tooltip.\n */\n public update(): void {\n this.tooltip?.disable();\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n standalone: true,\n selector: 'it-checkbox',\n templateUrl: './checkbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, NgTemplateOutlet, ReactiveFormsModule, AsyncPipe]\n})\nexport class ItCheckboxComponent extends ItAbstractFormComponent<boolean | null | undefined> implements OnInit, OnChanges {\n\n /**\n * If show checkbox as toggle\n */\n @Input() toggle: BooleanInput | undefined;\n\n /**\n * If show checkbox inline\n */\n @Input() inline: BooleanInput | undefined;\n\n /**\n * If is checkbox group\n */\n @Input() group: BooleanInput | undefined;\n\n /**\n * If checkbox is checked\n */\n @Input() checked: BooleanInput | undefined;\n\n /**\n * If checkbox is indeterminate\n */\n @Input() indeterminate: BooleanInput | undefined;\n\n get isIndeterminate(): boolean {\n return isTrueBooleanInput(this.indeterminate);\n }\n\n get isGroup(): boolean {\n return isTrueBooleanInput(this.group);\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this.markAsChecked();\n }\n\n override ngOnChanges(changes: SimpleChanges) {\n if (changes['checked']) {\n this.markAsChecked();\n }\n }\n\n private markAsChecked(): void {\n if (this.control.value || this.checked === undefined) {\n return;\n }\n\n const value = isTrueBooleanInput(this.checked);\n this.writeValue(value);\n return this.onChange(value);\n }\n}\n","<ng-container>\n <div class=\"form-check\"\n [class.form-check-group]=\"isGroup\"\n [class.form-check-inline]=\"inline\">\n\n <div *ngIf=\"toggle; else defaultStyle\" class=\"toggles\">\n <label [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n <input [id]=\"id\"\n type=\"checkbox\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n <span class=\"lever\"></span>\n </label>\n </div>\n\n <ng-template #defaultStyle>\n <input [id]=\"id\"\n type=\"checkbox\"\n class=\"form-check-input\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [class.semi-checked]=\"isIndeterminate\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n <label class=\"form-check-label\" [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n </label>\n </ng-template>\n\n <small *ngIf=\"isGroup\" [id]=\"id + '-help'\" class=\"form-text\">\n <ng-content></ng-content>\n </small>\n\n <div *ngIf=\"isInvalid && isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n </div>\n\n <div *ngIf=\"isInvalid && !isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n</ng-template>\n\n<ng-template #htmlLabel>\n <div #customLabel>\n <ng-content select=\"[label]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customLabel.hasChildNodes()\">{{label}}</ng-container>\n</ng-template>\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';\nimport { ItValidators } from '../../../validators/it-validators';\nimport { map, Observable } from 'rxjs';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { InputPassword } from 'bootstrap-italia';\nimport { ReactiveFormsModule, Validators } from '@angular/forms';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'it-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, ReactiveFormsModule, ItIconComponent, AsyncPipe, TranslateModule]\n})\nexport class ItPasswordInputComponent extends ItAbstractFormComponent<string | null | undefined> implements OnInit, AfterViewInit {\n\n /**\n * The field is required\n * @default true\n */\n @Input() required: boolean = true;\n\n /**\n * The password minimum length\n * @default 10\n */\n @Input() minLength: number = 10;\n\n /**\n * The password must contain at least one number\n * @default true\n */\n @Input() useNumber: boolean = true;\n\n /**\n * The password must contain at least one uppercase character\n * @default true\n */\n @Input() useCapitalCase: boolean = true;\n\n /**\n * The password must contain at least one lowercase character\n * @default true\n */\n @Input() useSmallCase: boolean = true;\n\n /**\n * The password must contain at least one special character\n * @default true\n */\n @Input() useSpecialCharacters: boolean = true;\n\n /**\n * The input placeholder\n */\n @Input() placeholder: string = '';\n\n /**\n * The input description\n * - <b>true</b>: show the StrengthMeter description message\n * - <b>string</b>: show custom description\n * @default true for StrengthMeter mode else is undefined\n */\n @Input() description: string | true | undefined;\n\n /**\n * Enable to show the strength meter\n * @default false\n */\n @Input() showStrengthMeter: BooleanInput | undefined;\n\n /**\n * Is the confirmation password field\n * @default false\n */\n @Input() confirmPasswordField: BooleanInput = false;\n\n /**\n * Input autocomplete attribute (Browser autocomplete)\n * @default undefined\n */\n @Input() autocomplete: string | undefined;\n\n private inputPasswordBs?: InputPassword;\n\n @ViewChild('input') private inputElement?: ElementRef<HTMLInputElement>;\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (!this.isConfirmPasswordField) {\n this.addValidators(ItValidators.password(\n this.minLength,\n this.useNumber,\n this.useCapitalCase,\n this.useSmallCase,\n this.useSpecialCharacters,\n this.required\n ));\n } else if (this.required) {\n this.addValidators(Validators.required);\n }\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (this.inputElement) {\n this.inputPasswordBs = InputPassword.getOrCreateInstance(this.inputElement.nativeElement, {\n showText: this.isStrengthMeter,\n minimumLength: this.minLength\n });\n }\n }\n\n protected get isStrengthMeter(): boolean {\n return !this.isConfirmPasswordField && isTrueBooleanInput(this.showStrengthMeter);\n }\n\n protected get isConfirmPasswordField(): boolean {\n return isTrueBooleanInput(this.confirmPasswordField);\n }\n\n /**\n * Return the invalid message string from TranslateService\n */\n override get invalidMessage(): Observable<string> {\n if (this.hasError('noPasswordMatch')) {\n return this._translateService.get('it.errors.password-no-match');\n }\n if (this.hasError('minlength')) {\n return this._translateService.get('it.errors.password-min-length', {\n minLength: this.minLength\n });\n }\n if (this.hasError('hasNumber')) {\n return this._translateService.get('it.errors.password-number');\n }\n if (this.hasError('hasCapitalCase')) {\n return this._translateService.get('it.errors.password-capital-case');\n }\n if (this.hasError('hasSmallCase')) {\n return this._translateService.get('it.errors.password-capital-case');\n }\n if (this.hasError('hasSpecialCharacters')) {\n return this._translateService.get('it.errors.password-special-character');\n }\n\n return super.invalidMessage;\n }\n\n /**\n * Retrieve the default StrengthMeter description message from TranslateService\n */\n protected get strengthMeterDescription(): Observable<string> {\n const keys = ['it.form.password-strength-meter.description.default'];\n if (this.useNumber) {\n keys.push('it.form.password-strength-meter.description.number');\n }\n if (this.useCapitalCase) {\n keys.push('it.form.password-strength-meter.description.capital-case');\n }\n if (this.useSpecialCharacters) {\n keys.push('it.form.password-strength-meter.description.special-character');\n }\n\n return this._translateService.get(keys, { minLength: this.minLength }).pipe(\n map(labels => Object.values(labels).join(', '))\n );\n }\n}\n","<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <input [id]=\"id\" #input\n type=\"password\"\n class=\"form-control input-password\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [attr.aria-describedby]=\"id + '-description'\"\n [autocomplete]=\"isConfirmPasswordField ? 'off' : autocomplete\">\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 <div *ngIf=\"isInvalid\" [id]=\"id + '-error'\" class=\"form-feedback just-validate-error-label\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n\n <small *ngIf=\"description !== undefined && !isStrengthMeter\" [id]=\"id + '-description'\" class=\"form-text\">\n {{description !== true ? description : (strengthMeterDescription | async)}}\n </small>\n\n <small class=\"password-caps form-text text-warning position-absolute bg-white w-100\">\n {{'it.form.caps-inserted' | translate}}\n </small>\n\n <div *ngIf=\"isStrengthMeter\" class=\"password-strength-meter\">\n <small [id]=\"id + '-description'\" class=\"form-text text-muted\"\n [attr.data-bs-short-pass]=\"'it.form.password-strength-meter.password-short' | translate\"\n [attr.data-bs-bad-pas]=\"'it.form.password-strength-meter.password-bad' | translate\"\n [attr.data-bs-good-pass]=\"'it.form.password-strength-meter.password-good' | translate\"\n [attr.data-bs-strong-pass]=\"'it.form.password-strength-meter.password-strong' | translate\">\n {{description !== undefined && description !== true ? description : (strengthMeterDescription | async)}}\n </small>\n\n <div class=\"password-meter progress rounded-0 position-absolute\">\n <div class=\"row position-absolute w-100 m-0\">\n <div class=\"col-3 border-start border-end border-white\"></div>\n <div class=\"col-3 border-start border-end border-white\"></div>\n <div class=\"col-3 border-start border-end border-white\"></div>\n <div class=\"col-3 border-start border-end border-white\"></div>\n </div>\n <div class=\"progress-bar bg-muted\" role=\"progressbar\" aria-valuenow=\"0\" aria-valuemin=\"0\"\n aria-valuemax=\"100\"></div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';\nimport { BooleanInput, isFalseBooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AsyncPipe, NgIf } from '@angular/common';\n\n@Component({\n standalone: true,\n selector: 'it-radio-button[value]',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ReactiveFormsModule, NgIf, AsyncPipe]\n})\nexport class ItRadioButtonComponent extends ItAbstractFormComponent<string | number | null | undefined> implements OnInit {\n\n /**\n * The radio value\n */\n @Input() value: string | number | undefined | null;\n\n /**\n * If show radio inline\n * @default false\n */\n @Input() inline: BooleanInput = false;\n\n /**\n * If is radio group\n * @default false\n */\n @Input() group: BooleanInput = false;\n\n /**\n * If is radio is checked\n */\n @Input() checked: BooleanInput | undefined;\n\n get isInline(): boolean {\n return isTrueBooleanInput(this.inline);\n }\n\n get isGroup(): boolean {\n return isTrueBooleanInput(this.group);\n }\n\n get name(): string {\n let name = '';\n if (this._ngControl) {\n name = this._ngControl.name?.toString() || '';\n\n // Retrieve parent name, prevent duplicate name inside FormArray or nested FormGroup\n let control = this._ngControl.control?.parent;\n while (control?.parent) {\n const controls: { [key: string]: any } = control?.parent?.controls || {};\n const parentName = Object.keys(controls).find(name => control === controls[name]) || null;\n if (!parentName) {\n break;\n }\n name = `${parentName}.${name}`; // parent.0.radioName\n control = control.parent;\n }\n }\n\n return name;\n }\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (this.control.value || !this.value || isFalseBooleanInput(this.checked)) {\n return;\n }\n\n this.writeValue(this.value);\n return this.onChange(this.value);\n }\n}\n","<ng-container>\n <div class=\"form-check\"\n [class.form-check-group]=\"isGroup\"\n [class.form-check-inline]=\"isInline\">\n\n <input\n [id]=\"id\"\n type=\"radio\"\n [value]=\"value\"\n class=\"form-check-input\"\n [name]=\"name\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\">\n\n <label class=\"form-check-label\" [for]=\"id\">\n <div #customLabel>\n <ng-content select=\"[label]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customLabel.hasChildNodes()\">{{label}}</ng-container>\n </label>\n\n <small *ngIf=\"isGroup\" [id]=\"id + '-help'\" class=\"form-text\">\n <ng-content></ng-content>\n </small>\n\n <div *ngIf=\"isInvalid && isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n\n </div>\n\n <div *ngIf=\"isInvalid && !isGroup\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</ng-container>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { distinctUntilChanged, startWith, Subscription } from 'rxjs';\n\n@Component({\n selector: 'it-range',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule],\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ItRangeComponent extends ItAbstractFormComponent<number | null | undefined> implements OnInit, OnChanges, OnDestroy {\n\n /**\n * The max value\n */\n @Input() max?: number;\n\n /**\n * The min value\n */\n @Input() min?: number;\n\n /**\n * The step value\n */\n @Input() step?: number | 'any';\n\n /**\n * The color on left of thumb [Require rightColor]\n * @example '#0d6efd' or 'var(--bs-primary)'\n * @default undefined ('var(--bs-gray-300)')\n */\n @Input() leftColor?: string;\n\n /**\n * The color on right of thumb [Require leftColor]\n * @example '#0d6efd' or 'var(--bs-primary)'\n * @default undefined ('var(--bs-gray-300)')\n */\n @Input() rightColor?: string;\n\n @ViewChild('slider', { static: true }) slider!: ElementRef<HTMLInputElement>;\n\n private subscription?: Subscription;\n\n override ngOnInit() {\n super.ngOnInit();\n this.subscription = this.control.valueChanges.pipe(\n distinctUntilChanged(),\n startWith(undefined)\n ).subscribe(() => this.updateSliderColor());\n }\n\n override ngOnChanges(changes: SimpleChanges) {\n if (changes['leftColor']) {\n this.slider.nativeElement.style.setProperty('--range-left-color', this.leftColor ?? null);\n }\n if (changes['rightColor']) {\n this.slider.nativeElement.style.setProperty('--range-right-color', this.rightColor ?? null);\n }\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n override writeValue(value: number | null | undefined) {\n super.writeValue(value);\n this.updateSliderColor();\n }\n\n /**\n * Update the percentage of slider color\n * @private\n */\n private updateSliderColor(): void {\n if (!this.leftColor || !this.rightColor) {\n return;\n }\n\n const max = Number(this.slider.nativeElement.max) || 100;\n const min = Number(this.slider.nativeElement.min) || 0;\n\n // Calculate visible width\n const diff = max - min;\n const val = (((this.control.value ?? (diff / 2)) - min) * 100) / diff;\n this.slider.nativeElement.style.setProperty('--range-percentage', `${val}%`);\n }\n}\n","<div class=\"d-flex justify-content-between align-items-center\">\n <label *ngIf=\"label\" [for]=\"id\" class=\"form-label\">{{label}}</label>\n <ng-content></ng-content>\n</div>\n\n<input #slider\n [id]=\"id\"\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n class=\"form-range\"\n [class.double-color]=\"!!leftColor && !!rightColor\"\n [formControl]=\"control\">\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgForOf } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\n\n@Component({\n standalone: true,\n selector: 'it-rating',\n templateUrl: './rating.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslateModule, NgForOf, ReactiveFormsModule, ItIconComponent]\n})\nexport class ItRatingComponent extends ItAbstractFormComponent<number | null | undefined> implements OnInit, OnChanges {\n\n /**\n * The rating value\n */\n @Input() value: number | undefined;\n\n /**\n * Number of stars to show\n * @default 5\n */\n @Input() starCount: number = 5;\n\n protected stars: Array<number> = this.generateStars();\n\n override ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n\n if (changes['starCount'] || !this.stars.length) {\n this.stars = this.generateStars();\n }\n }\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (!this.control.value && !!this.value) {\n this.writeValue(this.value);\n this.onChange(this.value);\n }\n }\n\n /**\n * Generate the array of stars\n * @private\n */\n private generateStars(): Array<number> {\n return Array.from({ length: this.starCount }, (_, i) => i + 1).reverse();\n }\n}\n","<fieldset class=\"rating\"\n [class.rating-label]=\"!!label\"\n [class.rating-read-only]=\"control.disabled\">\n <legend>\n <span>{{label}}</span>\n <span class=\"visually-hidden\">\n {{'it.core.rating-star'|translate : { current: control.value || 0, total: stars.length } }}\n </span>\n </legend>\n\n <ng-container *ngFor=\"let starValue of stars\">\n <input [id]=\"id + '-' + starValue\"\n type=\"radio\"\n [name]=\"id\"\n [value]=\"starValue\"\n [attr.aria-hidden]=\"control.disabled\"\n [formControl]=\"control\" />\n\n <label class=\"full\" [for]=\"id + '-' + starValue\">\n <it-icon name=\"star-full\" size=\"sm\"></it-icon>\n <span class=\"visually-hidden\">\n {{'it.core.rate-star'|translate : { current: starValue, total: stars.length } }}\n </span>\n </label>\n </ng-container>\n\n</fieldset>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';\nimport { SelectControlGroup, SelectControlOption } from '../../../interfaces/form';\nimport { AsyncPipe, NgForOf, NgIf } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n standalone: true,\n selector: 'it-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n imports: [NgIf, NgForOf, ReactiveFormsModule, AsyncPipe]\n})\nexport class ItSelectComponent extends ItAbstractFormComponent implements OnInit {\n\n /**\n * The select options\n */\n @Input() options: Array<SelectControlOption> | undefined;\n\n /**\n * The select group options\n */\n @Input() groups: Array<SelectControlGroup> | undefined;\n\n /**\n * The select description\n */\n @Input() description?: string;\n\n /**\n * If set, add a `disabled selected` option with value `null` and as text the value of the attribute\n * @example 'Select an option'\n */\n @Input() defaultOption?: string;\n\n override ngOnInit() {\n super.ngOnInit();\n\n if (this.control.value) {\n return;\n }\n const selectedOption = this.options?.find(this.optionIsSelected);\n if (selectedOption) {\n this.writeValue(selectedOption.value);\n if (this._ngControl?.control && selectedOption.value !== this._ngControl.control.value) {\n this.onChange(selectedOption.value);\n }\n return;\n }\n\n const selectedGroupOption = this.groups?.flatMap(g => g.options).find(this.optionIsSelected);\n if (selectedGroupOption) {\n this.writeValue(selectedGroupOption.value);\n if (this._ngControl?.control && selectedGroupOption.value !== this._ngControl.control.value) {\n this.onChange(selectedGroupOption.value);\n }\n }\n }\n\n /**\n * Check if the option is selected\n * @param option the option\n */\n optionIsSelected(option: SelectControlOption): boolean {\n if (option.selected === true) {\n return true;\n }\n\n if (typeof option.selected === 'function') {\n return option.selected(this.control.value);\n }\n\n return false;\n }\n\n /**\n * Check if the option is disabled\n * @param option the option\n */\n optionIsDisabled(option: SelectControlOption): boolean {\n if (option.disabled === true) {\n return true;\n }\n\n if (typeof option.disabled === 'function') {\n return option.disabled(this.control.value);\n }\n\n return false;\n }\n}\n","<div class=\"select-wrapper\">\n <label *ngIf=\"label\" [for]=\"id\">{{label}}</label>\n <select [id]=\"id\" [formControl]=\"control\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n (blur)=\"markAsTouched()\"\n [attr.aria-describedby]=\"id + '-description'\">\n\n <option *ngIf=\"defaultOption\" [ngValue]=\"null\" disabled selected>\n {{defaultOption}}\n </option>\n\n <ng-content></ng-content>\n\n <ng-container *ngIf=\"options\">\n <option *ngFor=\"let option of options\" [disabled]=\"optionIsDisabled(option)\" [ngValue]=\"option.value\">\n {{option.text ?? option.value}}\n </option>\n </ng-container>\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)\" [ngValue]=\"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\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';\nimport { Observable } from 'rxjs';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n standalone: true,\n selector: 'it-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, ReactiveFormsModule, AsyncPipe]\n})\nexport class ItTextareaComponent extends ItAbstractFormComponent<string | null | undefined> {\n\n /**\n * Textarea Rows\n * @default 3\n */\n @Input() rows?: number = 3;\n\n /**\n * The textarea placeholder\n */\n @Input() placeholder: string = '';\n\n /**\n * The input description\n */\n @Input() description: string | undefined;\n\n /**\n * Return the invalid message string from TranslateService\n */\n override get invalidMessage(): Observable<string> {\n if (this.hasError('maxlength')) {\n const error = this.getError('maxlength');\n return this._translateService.get('it.errors.max-length-invalid', { max: error.requiredLength });\n }\n if (this.hasError('pattern')) {\n const error = this.getError('pattern');\n return this._translateService.get('it.errors.pattern-invalid', { pattern: error.requiredPattern });\n }\n\n return super.invalidMessage;\n }\n}\n","<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"markAsTouched()\"></textarea>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n","import { Observable } from 'rxjs';\n\nexport class FileUtils {\n\n /**\n * Return the file size string\n * @param file the file\n * @param decimals decimal to show\n */\n public static getFileSizeString(file: File, decimals = 2): string {\n const bytes = file.size;\n if (!+bytes) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n }\n\n /**\n * Convert a file to base64 string\n * @param file the base64 string\n */\n public static fileToBase64(file: File): Observable<string> {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n return new Observable<string>(observer => {\n reader.onload = (e) => {\n const target = e.target;\n if (!target?.result || target.result instanceof ArrayBuffer) {\n return observer.error('Error on parse');\n }\n observer.next(target.result);\n observer.complete();\n };\n reader.onerror = error => {\n observer.error(error);\n };\n });\n }\n\n /**\n * Convert base64 to Blob\n * @param base64 the base64 string\n * @param mimeType the <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\">MIME type</a> (example 'application/pdf')\n */\n public static base64ToBlob(base64: string, mimeType: string): Blob {\n const byteString = window.atob(base64);\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const int8Array = new Uint8Array(arrayBuffer);\n for (let i = 0; i < byteString.length; i++) {\n int8Array[i] = byteString.charCodeAt(i);\n }\n return new Blob([int8Array], { type: mimeType });\n }\n\n /**\n * Convert base64 to File\n * @param base64 the base64 string\n * @param mimeType the <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\">MIME type</a> (example 'application/pdf')\n * @param filename the file name\n */\n public static base64ToFile(base64: string, mimeType: string, filename: string): File {\n const fileBlob = FileUtils.base64ToBlob(base64, mimeType);\n return new File([fileBlob], filename, { type: mimeType });\n }\n\n /**\n * Extract the MIME type from base64 string\n * @param base64 the base64 string\n */\n public static getMimeTypeFromBase64(base64: string): string|undefined {\n const mime = base64.match(/data:([a-zA-Z0-9]+\\/[a-zA-Z0-9-.+]+).*,.*/);\n return mime?.length ? mime[1] : undefined;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild\n} from '@angular/core';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { FileUtils } from '../../../utils/file-utils';\nimport { ProgressDonut } from 'bootstrap-italia';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { NgIf, NgOptimizedImage } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'it-upload-drag-drop',\n templateUrl: './upload-drag-drop.component.html',\n exportAs: 'itUploadDragDrop',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ItIconComponent, NgIf, TranslateModule, NgOptimizedImage]\n})\nexport class ItUploadDragDropComponent extends ItAbstractComponent implements AfterViewInit {\n\n /**\n * The accepted file type to upload <br>\n * Possible values: <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\">MIME Types</a> separated by comma\n * @example application/pdf,image/png\n * @default *\n */\n @Input() accept: string = '*';\n\n /**\n * Fired when file start to upload\n */\n @Output() fileStartUpload = new EventEmitter<File>();\n\n isDragover: boolean = false;\n isLoading: boolean = false;\n isSuccess: boolean = false;\n\n donut?: ProgressDonut;\n\n @ViewChild('donutElement') private donutElement?: ElementRef<HTMLDivElement>;\n\n filename?: string;\n extension?: string;\n fileSize?: string;\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n if (this.donutElement) {\n this.donut = ProgressDonut.getOrCreateInstance(this.donutElement.nativeElement);\n }\n }\n\n // Dragover listener\n @HostListener('dragover', ['$event'])\n public onDragOver(evt: DragEvent): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.isDragover = !this.isLoading;\n }\n\n\n // Dragleave listener\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt: DragEvent): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.isDragover = false;\n }\n\n // Drop leave listener\n @HostListener('drop', ['$event'])\n public onDrop(evt: DragEvent): void {\n evt.preventDefault();\n evt.stopPropagation();\n\n this.isDragover = false;\n const files = evt.dataTransfer?.files;\n if (this.isLoading || !files?.length) {\n return;\n }\n this.start(files[0]);\n }\n\n /**\n * On load file from input\n * @param event\n */\n onLoadFile(event: Event): void {\n const files = (event.target as HTMLInputElement)?.files;\n if (!files?.length) {\n return;\n }\n this.start(files[0]);\n }\n\n /**\n * Start the upload file\n * @param file\n */\n public start(file: File): void {\n if (this.accept !== '*' && !this.accept.includes(file.type)) {\n return;\n }\n\n this.reset();\n this.isLoading = true;\n\n const splitName = file.name.split('.');\n this.filename = splitName[0];\n this.extension = splitName[1]?.toUpperCase();\n this.fileSize = FileUtils.getFileSizeString(file);\n\n this.fileStartUpload.emit(file);\n }\n\n /**\n * Percentage of upload\n * @param value the percentage [0 - 100]\n */\n public progress(value: number) {\n if (!this.isLoading) {\n return;\n }\n\n if (value >= 100) {\n this.success();\n } else {\n this.donut?.set(((value < 0) ? 0 : value) / 100);\n }\n }\n\n /**\n * Upload success\n */\n public success(): void {\n this.isLoading = false;\n this.isSuccess = true;\n this._changeDetectorRef.detectChanges();\n }\n\n /**\n * Reset file uploader\n */\n public reset(): void {\n this.isLoading = false;\n this.isSuccess = false;\n this.filename = this.extension = this.fileSize = undefined;\n this.donut?.set(0);\n this._changeDetectorRef.detectChanges();\n }\n\n}\n","<div class=\"upload-dragdrop\" [class.dragover]=\"isDragover\" [class.loading]=\"isLoading\" [class.success]=\"isSuccess\">\n <div class=\"upload-dragdrop-image\">\n <img ngSrc=\"/bootstrap-italia/dist/assets/upload-drag-drop-icon.svg\"\n alt=\"drag-drop-icon\" aria-hidden=\"true\" [width]=\"180\" [height]=\"180\">\n <div class=\"upload-dragdrop-loading\">\n <div class=\"progress-donut\" #donutElement></div>\n </div>\n <div class=\"upload-dragdrop-success\">\n <it-icon name=\"check\"></it-icon>\n </div>\n </div>\n <div class=\"upload-dragdrop-text\">\n <p class=\"upload-dragdrop-weight\">\n <it-icon name=\"file\" size=\"xs\"></it-icon>\n {{extension}} ({{fileSize}})\n </p>\n <h5>{{filename || ('it.form.upload-drag-file'|translate)}}</h5>\n <p *ngIf=\"isLoading\">{{'it.form.upload-loading'|translate}}</p>\n <p *ngIf=\"isSuccess\">{{'it.form.upload-complete'|translate}}</p>\n <p *ngIf=\"!isLoading && !isSuccess\">{{'it.form.upload-or'|translate}}\n <input type=\"file\" [id]=\"id\" class=\"upload-dragdrop-input\" [accept]=\"accept\" (change)=\"onLoadFile($event)\"/>\n <label [for]=\"id\">{{'it.form.upload-select-device'|translate}}</label>\n </p>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { UploadFileListItem } from '../../../interfaces/form';\nimport { FileUtils } from '../../../utils/file-utils';\nimport { forkJoin, take, tap } from 'rxjs';\nimport { NgForOf, NgIf } from '@angular/common';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ItTooltipDirective } from '../../core/tooltip/tooltip.directive';\nimport { ItProgressBarComponent } from '../../core/progress-bar/progress-bar.component';\n\n@Component({\n standalone: true,\n selector: 'it-upload-file-list[fileList]',\n templateUrl: './upload-file-list.component.html',\n imports: [NgIf, NgForOf, ItIconComponent, TranslateModule, ItTooltipDirective, ItProgressBarComponent]\n})\nexport class ItUploadFileListComponent extends ItAbstractComponent implements OnInit, OnChanges {\n\n /**\n * The list of files to show in list\n */\n @Input() fileList!: Array<UploadFileListItem>;\n\n /**\n * The accepted file type to upload <br>\n * Possible values: <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\">MIME Types</a> separated by comma\n * @example application/pdf,image/png\n * @default *\n */\n @Input() accept: string = '*';\n\n /**\n * If upload multiple files\n */\n @Input() multiple: BooleanInput = true;\n\n /**\n * If is file list image\n */\n @Input() images: BooleanInput | undefined;\n\n /**\n * Hide the load button\n */\n @Input() hideLoadButton: BooleanInput | undefined;\n\n /**\n * Fired when upload new files\n */\n @Output() uploadFiles: EventEmitter<FileList> = new EventEmitter<FileList>();\n\n /**\n * Fired on delete item button click\n */\n @Output() deleteItem: EventEmitter<UploadFileListItem> = new EventEmitter<UploadFileListItem>();\n\n /**\n * Cache to preview image\n */\n previewImages: Map<number, string> = new Map<number, string>();\n\n ngOnInit(): void {\n if (this.isImageList && this.accept === '*') {\n this.accept = 'image/*';\n }\n }\n\n override ngOnChanges(changes: SimpleChanges): void {\n if (changes['fileList'] && this.isImageList) {\n const images$ = this.fileList.map(item => FileUtils.fileToBase64(item.file).pipe(\n take(1),\n tap(base64 => this.previewImages.set(item.id, base64))\n ));\n forkJoin(images$).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n super.ngOnChanges(changes);\n });\n } else {\n super.ngOnChanges(changes);\n }\n }\n\n get isMultipleInput(): boolean {\n return isTrueBooleanInput(this.multiple);\n }\n\n get isImageList(): boolean {\n return isTrueBooleanInput(this.images);\n }\n\n get isHideLoadButton(): boolean {\n return isTrueBooleanInput(this.hideLoadButton);\n }\n\n /**\n * On load file from input\n * @param event\n */\n onLoadFiles(event: Event): void {\n const input = event.target as HTMLInputElement;\n const files = input?.files;\n if (!files?.length) {\n return;\n }\n\n const newFiles = Array.from(files).filter(file => !this.fileList.some(item => {\n return item.file.name === file.name && item.file.size === file.size && item.file.type === file.type\n }));\n\n const fileList = new DataTransfer();\n newFiles.forEach(file => fileList.items.add(file));\n\n this.uploadFiles.emit(fileList.files);\n input.value = '';\n }\n\n /**\n * Get the file size string\n * @param file\n */\n getFileSize(file: File): string {\n return FileUtils.getFileSizeString(file);\n }\n\n}\n","<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? (item.progress ? 'secondary' : 'primary') : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" type=\"button\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\" type=\"button\" disabled>\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress!\"></it-progress-bar>\n </li>\n</ul>\n","import { NgModule } from '@angular/core';\nimport { ItCheckboxComponent } from './checkbox/checkbox.component';\nimport { ItInputComponent } from './input/input.component';\nimport { ItPasswordInputComponent } from './password-input/password-input.component';\nimport { ItRadioButtonComponent } from './radio-button/radio-button.component';\nimport { ItRangeComponent } from './range/range.component';\nimport { ItRatingComponent } from './rating/rating.component';\nimport { ItSelectComponent } from './select/select.component';\nimport { ItTextareaComponent } from './textarea/textarea.component';\nimport { ItUploadDragDropComponent } from './upload-drag-drop/upload-drag-drop.component';\nimport { ItUploadFileListComponent } from './upload-file-list/upload-file-list.component';\n\n\nconst formComponents = [\n ItCheckboxComponent,\n ItInputComponent,\n ItPasswordInputComponent,\n ItRadioButtonComponent,\n ItRangeComponent,\n ItRatingComponent,\n ItSelectComponent,\n ItTextareaComponent,\n ItUploadDragDropComponent,\n ItUploadFileListComponent\n];\n\n@NgModule({\n imports: formComponents,\n exports: formComponents\n})\nexport class ItFormModule { }\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Location, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ItButtonDirective } from '../../core/button/button.directive';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'it-back-button',\n templateUrl: './back-button.component.html',\n exportAs: 'itBackButton',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, NgTemplateOutlet, ItButtonDirective, ItIconComponent, TranslateModule]\n})\nexport class ItBackButtonComponent {\n\n /**\n * Back button style\n * - <b>link</b>: use a link with icon and text\n * - <b>button</b>: use a button with icon and text\n * @default button\n */\n @Input() buttonStyle: 'link' | 'button' = 'button';\n\n /**\n * Button direction\n * - <b>left</b>: Back direction\n * - <b>up</b>: Upper direction\n * @default left\n */\n @Input() direction: 'left' | 'up' = 'left';\n\n /**\n * Show/Hide icon\n * @default true\n */\n @Input() showIcon: BooleanInput = true;\n\n /**\n * Show/Hide text\n * @default true\n */\n @Input() showText: BooleanInput = true;\n\n /**\n * Custom back logic <br/>\n *\n * NOTE: to use 'this' need bind function <br/>\n * @example backCbFn = this.errorCallback.bind(this);\n * (errorCallback is your function, pass backCbFn to the component)\n */\n @Input() backFn?: (location: Location) => void;\n\n get isShowIcon(): boolean {\n return isTrueBooleanInput(this.showIcon);\n }\n\n get isShowText(): boolean {\n return isTrueBooleanInput(this.showText);\n }\n\n constructor(\n public readonly _location: Location\n ) {\n }\n\n /**\n * Go back function\n */\n public goBack(event: Event): void {\n event.preventDefault();\n if (this.backFn) {\n return this.backFn(this._location);\n }\n\n this._location.back();\n }\n}\n","<a *ngIf=\"buttonStyle === 'link'\" href=\"#\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<button *ngIf=\"buttonStyle === 'button'\" itButton=\"primary\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<ng-template #content>\n <it-icon *ngIf=\"isShowIcon\"\n size=\"sm\"\n [name]=\"direction === 'left' ? 'arrow-left' : 'arrow-up'\"\n [color]=\"buttonStyle === 'link' ? 'primary' : 'white'\"\n [class.me-2]=\"isShowText\"></it-icon>\n\n <span [class.visually-hidden]=\"!isShowText\">\n {{(direction === 'left' ? 'it.navigation.go-back' : 'it.navigation.upper-level') | translate}}\n </span>\n</ng-template>\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { BackToTop } from 'bootstrap-italia';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\n\n@Component({\n standalone: true,\n selector: 'it-back-to-top',\n templateUrl: './back-to-top.component.html',\n exportAs: 'itBackToTop',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ItIconComponent]\n})\nexport class ItBackToTopComponent extends ItAbstractComponent implements AfterViewInit {\n\n /**\n * Show small button\n */\n @Input() small: BooleanInput | undefined;\n\n /**\n * Show shadow\n */\n @Input() shadow: BooleanInput | undefined;\n\n /**\n * Button usable button on a dark background\n */\n @Input() dark: BooleanInput | undefined;\n\n private backToTop?: BackToTop;\n\n @ViewChild('backToTop') private backToTopElement?: ElementRef<HTMLAnchorElement>;\n\n get isSmall(): boolean {\n return isTrueBooleanInput(this.small);\n }\n\n get isShadow(): boolean {\n return isTrueBooleanInput(this.shadow);\n }\n\n get isDark(): boolean {\n return isTrueBooleanInput(this.dark);\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (this.backToTopElement) {\n const element = this.backToTopElement.nativeElement;\n this.backToTop = BackToTop.getOrCreateInstance(element);\n }\n }\n\n /**\n * Show button\n */\n public show(): void {\n this.backToTop?.show();\n }\n\n /**\n * Hide the button\n */\n public hide(): void {\n this.backToTop?.hide();\n }\n\n /**\n * Activates the scroll animation towards the Y coordinate indicated by the positionTop option\n */\n public scrollToTop(): void {\n this.backToTop?.scrollToTop();\n }\n\n /**\n * Eliminate component features\n */\n public dispose(): void {\n this.backToTop?.dispose();\n }\n}\n","<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { IconName } from '../../../../interfaces/icon';\nimport { ItLinkComponent } from '../../../core/link/link.component';\n\n@Component({\n standalone: true,\n selector: 'it-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n})\nexport class ItBreadcrumbItemComponent extends ItLinkComponent {\n\n /**\n * Is active breadcrumb item\n */\n @Input() active: BooleanInput | undefined;\n\n /**\n * The name of icon to show\n */\n @Input() iconName: IconName | undefined;\n\n /**\n * The content of item\n */\n @ViewChild(TemplateRef) public htmlContent!: TemplateRef<any>;\n\n public get isActive(): boolean {\n return isTrueBooleanInput(this.active);\n }\n\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n OnDestroy,\n QueryList\n} from '@angular/core';\nimport { ItBreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\nimport { BooleanInput, isTrueBooleanInput } from '../../../../utils/boolean-input';\nimport { startWith, Subscription } from 'rxjs';\nimport { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ItIconComponent } from '../../../utils/icon/icon.component';\nimport { ItLinkComponent } from '../../../core/link/link.component';\n\n@Component({\n standalone: true,\n selector: 'it-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgForOf, NgIf, TranslateModule, ItIconComponent, ItLinkComponent, NgTemplateOutlet]\n})\nexport class ItBreadcrumbComponent implements AfterViewInit, OnDestroy {\n\n /**\n * The character to use as separator\n * @default /\n */\n @Input() separator: string = '/';\n\n /**\n * Dark style\n */\n @Input() dark: BooleanInput | undefined;\n\n /**\n * The tab items\n */\n @ContentChildren(ItBreadcrumbItemComponent) items?: QueryList<ItBreadcrumbItemComponent>;\n\n get isDark(): boolean {\n return isTrueBooleanInput(this.dark);\n }\n\n private itemSubscriptions?: Array<Subscription>;\n\n constructor(\n private readonly _changeDetectorRef: ChangeDetectorRef\n ) {\n }\n\n ngAfterViewInit(): void {\n this.items?.changes.pipe( // When breadcrumb items changes (dynamic add/remove)\n startWith(undefined)\n ).subscribe(() => {\n this.itemSubscriptions?.forEach(sub => sub.unsubscribe()); // Remove old subscriptions\n this.itemSubscriptions = this.items?.map(item => item.valueChanges.subscribe(() => {\n this._changeDetectorRef.detectChanges(); // DetectChanges when breadcrumb item attributes changes\n }));\n this._changeDetectorRef.detectChanges(); // Force update html render\n });\n }\n\n ngOnDestroy(): void {\n this.itemSubscriptions?.forEach(item => item.unsubscribe());\n }\n\n /**\n * Check if index is last item\n * @param index\n */\n protected isLastItem(index: number): boolean {\n return !!this.items && index >= (this.items.length - 1);\n }\n\n}\n","<nav class=\"breadcrumb-container\" [attr.aria-label]=\"'it.navigation.navigation-path'|translate\">\n <ol *ngIf=\"items\" 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 svgClass=\"align-top me-1\"></it-icon>\n\n <it-link *ngIf=\"!item.isActive && !isLastItem(i); else activeContent\"\n [href]=\"item.href\" [class]=\"item.class\" [externalLink]=\"item.externalLink\" [disabled]=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </it-link>\n\n <ng-template #activeContent>\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </ng-template>\n\n <span *ngIf=\"!isLastItem(i)\" class=\"separator\">{{separator}}</span>\n </li>\n </ol>\n</nav>\n","import { NgModule } from '@angular/core';\nimport { ItBreadcrumbComponent } from './breadcrumb/breadcrumb.component';\nimport { ItBreadcrumbItemComponent } from './breadcrumb-item/breadcrumb-item.component';\n\n\nconst breadcrumb = [ItBreadcrumbComponent, ItBreadcrumbItemComponent];\n\n@NgModule({\n imports: breadcrumb,\n exports: breadcrumb\n})\nexport class ItBreadcrumbsModule {\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { ItAbstractComponent } from '../../../abstracts/abstract.component';\nimport { NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ItIconComponent } from '../../utils/icon/icon.component';\nimport { ItButtonDirective } from '../../core/button/button.directive';\n\n@Component({\n standalone: true,\n selector: 'it-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, TranslateModule, ItIconComponent, ItButtonDirective]\n})\nexport class ItHeaderComponent extends ItAbstractComponent {\n\n @Input() light: BooleanInput | undefined;\n\n @Input() showSlim?: BooleanInput = true;\n\n @Input() slimTitle: string | undefined;\n\n @Input() loginStyle: 'none' | 'default' | 'full' = 'full';\n\n @Input() smallHeader?: BooleanInput = true;\n\n @Input() showSearch?: BooleanInput = true;\n\n @Output() loginClick: EventEmitter<Event>;\n\n @Output() searchClick: EventEmitter<Event>;\n\n /**\n * TODO: complete header\n */\n constructor() {\n super();\n\n this.loginClick = new EventEmitter<Event>();\n this.searchClick = new EventEmitter<Event>();\n }\n\n get isLight(): boolean {\n return isTrueBooleanInput(this.light);\n }\n\n get isShowSlim(): boolean {\n return isTrueBooleanInput(this.showSlim);\n }\n\n get isSmallHeader(): boolean {\n return isTrueBooleanInput(this.smallHeader);\n }\n\n get isShowSearch(): boolean {\n return isTrueBooleanInput(this.showSearch);\n }\n\n}\n","<header class=\"it-header-wrapper\">\n <div *ngIf=\"isShowSlim\" class=\"it-header-slim-wrapper\" [class.theme-light]=\"isLight\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-slim-wrapper-content\">\n <a class=\"d-none d-lg-block navbar-brand\" href=\"#\">{{slimTitle}}</a>\n <div class=\"nav-mobile\">\n <nav [attr.aria-label]=\"'it.navigation.secondary-navigation'|translate\">\n <a class=\"it-opener d-lg-none\" data-bs-toggle=\"collapse\" href=\"#menuC1\" role=\"button\"\n aria-expanded=\"false\" aria-controls=\"menuC1\">\n <span>{{slimTitle}}</span>\n <it-icon name=\"expand\"></it-icon>\n </a>\n <div class=\"link-list-wrapper collapse\" id=\"menuC1\">\n <ng-content select=\"[slimLinkList]\"></ng-content>\n </div>\n </nav>\n </div>\n <div class=\"it-header-slim-right-zone\">\n <!-- TODO: add language dropdown -->\n <ng-content select=\"[slimRightZone]\"></ng-content>\n <div *ngIf=\"loginStyle === 'default'\" class=\"it-access-top-wrapper\">\n <a class=\"btn btn-primary btn-sm\" (click)=\"loginClick.emit($event)\">\n {{'it.navigation.login'|translate}}\n </a>\n </div>\n </div>\n <button *ngIf=\"loginStyle === 'full'\" itButton=\"primary\" class=\"btn-full\" (click)=\"loginClick.emit($event)\">\n <span class=\"rounded-icon\">\n <it-icon name=\"user\" color=\"primary\"></it-icon>\n <span class=\"d-none d-lg-block\">{{'it.navigation.full-login'|translate}}</span>\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"it-nav-wrapper\">\n <div class=\"it-header-center-wrapper\" [class.it-small-header]=\"isSmallHeader\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-center-content-wrapper\">\n <div class=\"it-brand-wrapper\">\n <ng-content select=\"[brand]\"></ng-content>\n </div>\n <div class=\"it-right-zone\">\n <ng-content select=\"[rightZone]\"></ng-content>\n\n <div class=\"it-search-wrapper\" *ngIf=\"isShowSearch\">\n <span class=\"d-none d-md-block\">{{'it.navigation.search'|translate}}</span>\n <a class=\"search-link rounded-icon\" [attr.aria-label]=\"'it.navigation.website-search'|translate\" (click)=\"searchClick.emit($event)\">\n <it-icon name=\"search\"></it-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- TODO: complete header -->\n </div>\n</header>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { map, Observable, startWith } from 'rxjs';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { AvailableLanguage } from '../../../interfaces/utils';\nimport { AsyncPipe, NgFor, NgIf } from '@angular/common';\nimport { ItDropdownModule } from '../../core/dropdown/dropdown.module';\n\n@Component({\n standalone: true,\n selector: 'it-language-switcher',\n templateUrl: './language-switcher.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgFor, NgIf, AsyncPipe, TranslateModule, ItDropdownModule]\n})\nexport class ItLanguageSwitcherComponent implements OnInit {\n\n /**\n * The available languages\n * @default The languages available through TranslateService (ngx-translate)\n */\n @Input() availableLanguages: Array<AvailableLanguage> | undefined;\n\n /**\n * Dropdown mode\n */\n @Input() mode: 'button' | 'link' = 'link';\n\n protected currentLang$: Observable<AvailableLanguage | undefined>;\n\n constructor(\n private readonly translateService: TranslateService\n ) {\n this.currentLang$ = translateService.onLangChange.pipe(\n startWith({ lang: translateService.currentLang }),\n map(event => this.availableLanguages?.find(l => l.code === event.lang))\n );\n }\n\n ngOnInit(): void {\n if (!this.availableLanguages) {\n this.availableLanguages = this.translateService.getLangs().map(lang => ({\n code: lang,\n label: lang,\n ...(lang === 'it' && { label: 'ITA' }),\n ...(lang === 'en' && { label: 'ENG' })\n }));\n }\n }\n\n /**\n * Change the current language\n * @param lang the language code\n */\n public changeLanguage(lang: string): void {\n this.translateService.use(lang);\n }\n\n}\n","<it-dropdown [mode]=\"mode\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container *ngIf=\"availableLanguages\" list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ActivatedRoute, RouterLink } from '@angular/router';\nimport { BooleanInput, isTrueBooleanInput } from '../../../utils/boolean-input';\nimport { NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ItBackButtonComponent } from '../../navigation/back-button/back-button.component';\nimport { ItButtonDirective } from '../../core/button/button.directive';\n\n@Component({\n standalone: true,\n selector: 'it-error-page',\n templateUrl: './error-page.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgIf, TranslateModule, RouterLink, ItBackButtonComponent, ItButtonDirective]\n})\nexport class ItErrorPageComponent {\n\n /**\n * The error code to show\n */\n @Input() errorCode: number | 404 | 403 | 500 | undefined;\n\n /**\n * Show/Hide error code\n * @default true - show\n */\n @Input() showErrorCode?: BooleanInput = true;\n\n /**\n * Custom error title\n * - If set it will be displayed instead of the default title.\n * - It is possible to use i18n keys\n */\n @Input() errorTitle: string | undefined;\n\n /**\n * Custom error description\n * - If set it will be displayed instead of the default description.\n * - It is possible to use i18n keys\n */\n @Input() errorDescription: string | undefined;\n\n /**\n * Show/Hide back button\n * @default true - show\n */\n @Input() showBackButton?: BooleanInput = true;\n\n /**\n * Show/Hide home button\n * @default true - show\n */\n @Input() showHomeButton?: BooleanInput = true;\n\n constructor(\n private readonly route: ActivatedRoute\n ) {\n this.route.data.subscribe(data => {\n if (!this.errorCode && data['errorCode']) {\n this.errorCode = data['errorCode']; // Get errorCode from route data\n }\n if (data['showErrorCode'] !== undefined) {\n this.showErrorCode = data['showErrorCode']; // Get showErrorCode from route data\n }\n if (!this.errorTitle && data['errorTitle']) {\n this.errorTitle = data['errorTitle']; // Get errorTitle from route data\n }\n if (!this.errorDescription && data['errorDescription']) {\n this.errorDescription = data['errorDescription']; // Get errorDescription from route data\n }\n if (data['showBackButton'] !== undefined) {\n this.showBackButton = data['showBackButton']; // Get showBackButton from route data\n }\n if (data['showHomeButton'] !== undefined) {\n this.showHomeButton = data['showHomeButton']; // Get showHomeButton from route data\n }\n });\n }\n\n get isDefaultErrorCode(): boolean {\n return this.errorCode === 404 || this.errorCode === 403 || this.errorCode === 500;\n }\n\n get isShowErrorCode(): boolean {\n return isTrueBooleanInput(this.showErrorCode);\n }\n\n get isShowBackButton(): boolean {\n return isTrueBooleanInput(this.showBackButton);\n }\n\n get isShowHomeButton(): boolean {\n return isTrueBooleanInput(this.showHomeButton);\n }\n\n}\n","<div class=\"container text-center mt-5\">\n <h1 *ngIf=\"errorCode && isShowErrorCode\">{{errorCode}}</h1>\n <h2>\n <ng-container *ngIf=\"!errorTitle && isDefaultErrorCode; else customTitle\">\n {{'it.utils.error-page.' + errorCode + '.title' | translate}}\n </ng-container>\n <ng-template #customTitle>{{(errorTitle || 'it.errors.generic') | translate}}</ng-template>\n </h2>\n\n <p class=\"mt-3 w-75 mx-auto\">\n <ng-container\n *ngIf=\"!errorDescription && isDefaultErrorCode; else customDescription\">\n {{'it.utils.error-page.' + errorCode + '.description' | translate}}\n </ng-container>\n <ng-template #customDescription>\n {{(errorDescription || 'it.errors.generic-support-message') | translate}}\n </ng-template>\n </p>\n\n <div class=\"mt-5\" *ngIf=\"isShowBackButton || isShowHomeButton\">\n <it-back-button *ngIf=\"isShowBackButton\"></it-back-button>\n <a *ngIf=\"isShowHomeButton\" itButton=\"outline-primary\" class=\"ms-3\" routerLink=\"/\"\n title=\"{{'it.utils.error-page.go-to-homepage' | translate}}\">\n {{'it.utils.error-page.go-to-homepage' | translate}}\n </a>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { IconName } from '../../../interfaces/icon';\nimport { ChipColor } from '../../../interfaces/core';\nimport { NgClass, NgIf } from '@angular/common';\nimport { DESIGN_ANGULAR_KIT_CONFIG, DesignAngularKitConfig } from '../../../design-angular-kit-config';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'it-chip',\n templateUrl: './chip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, NgIf, TranslateModule]\n})\nexport class ItChipComponent {\n\n /**\n * Indica la label\n */\n @Input() set label (value: string) { this._label = value; }\n get label (): string { return this._label; }\n private _label = '';\n\n /**\n * Indica se mostrate il pulante di chisura\n */\n @Input() set showCloseButton (value: boolean) { this._showCloseButton = value; }\n get showCloseButton (): boolean { return this._showCloseButton; }\n private _showCloseButton = false;\n\n /**\n * Indica il size\n */\n @Input() set size (value: '' | 'lg') { this._size = value; }\n get size (): '' | 'lg' { return this._size; }\n private _size: '' | 'lg' = '';\n\n /**\n * Indica il colore della chip\n */\n @Input() set color (value: ChipColor | undefined) { this._color = value; }\n get color (): ChipColor | undefined { return this._color; }\n private _color: ChipColor | undefined = undefined;\n\n /**\n * Indica se la chip è disabilitata\n */\n @Input() set disabled (value: boolean) { this._disabled = value; }\n get disabled (): boolean { return this._disabled; }\n private _disabled: boolean = false;\n\n /**\n * Indica il nome dell'icona, se valorizzata viene mostrata\n */\n @Input() set icon (value: IconName | undefined) { this._icon = value; }\n get icon (): IconName | undefined { return this._icon; }\n private _icon: IconName | undefined = undefined;\n\n /**\n * Indica l'url dell'avatar, se valorizzata viene mostrata\n */\n @Input() set avatar (value: string | undefined) { this._avatar = value; }\n get avatar (): string | undefined { return this._avatar; }\n private _avatar: string | undefined = undefined;\n\n /**\n * Indica il valore da aggiungere al parametro alt, di default ''\n */\n @Input() set altAvatar (value: string) { this._altAvatar = value; }\n get altAvatar (): string { return this._altAvatar; }\n private _altAvatar: string = '';\n\n /**\n * Evento emesso al click sul bottone di chiusura\n */\n @Output() closeEvent = new EventEmitter();\n\n iconClose: IconName = 'close';\n\n constructor(\n @Inject(DESIGN_ANGULAR_KIT_CONFIG) protected readonly config: DesignAngularKitConfig\n ) {\n }\n\n clickToClose(): void {\n this.closeEvent.emit();\n }\n}\n","<div class=\"chip\" [ngClass]=\"[!showCloseButton ? 'chip-simple': 'alert', size === 'lg' ? 'chip-lg': '', color ? 'chip-' + color : '', disabled ? 'chip-disabled' : '']\">\n <svg *ngIf=\"icon\" class=\"icon icon-xs\">\n <use [attr.href]=\"this.config.iconHref + '#it-' + icon\" [attr.xlink:href]=\"this.config.iconHref + '#it-' + icon\"></use>\n </svg>\n <div *ngIf=\"avatar\" class=\"avatar size-xs\"><img [src]=\"avatar\" [alt]=\"altAvatar\"></div>\n <span class=\"chip-label\">{{ label }}</span>\n <button *ngIf=\"showCloseButton\" (click)=\"clickToClose()\" [disabled]=\"disabled\">\n <svg class=\"icon\"><use [attr.href]=\"this.config.iconHref + '#it-close'\" [attr.xlink:href]=\"this.config.iconHref + '#it-close'\"></use></svg>\n <span class=\"visually-hidden\">{{ 'it.core.remove' | translate }} {{ label }}</span>\n </button>\n</div>\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, HostListener, Inject, Input } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[itForward]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {'class': 'forward'}\n})\nexport class ItForwardDirective {\n\n /**\n * Indica, se HTMLElement, l'elemento a cui navigare, o se stringa, il selettore che selezionerà l'elemento a cui navigare.\n */\n @Input() set itForward(value: HTMLElement | string | undefined) { this._itForward = value; }\n get itForward(): HTMLElement | string | undefined { return this._itForward; }\n private _itForward: HTMLElement | string | undefined = undefined;\n\n constructor(\n @Inject(DOCUMENT) private document?: Document\n ) { }\n\n @HostListener('click', ['$event'])\n onClick(event: any) {\n event.preventDefault();\n if (this.itForward) {\n if (typeof this.itForward === 'string') {\n this.document?.querySelector(this.itForward)?.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: \"nearest\"\n })\n } else if (this.itForward instanceof HTMLElement) {\n this.itForward.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: \"nearest\"\n });\n }\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { ItAccordionComponent } from './core/accordion/accordion.component';\nimport { ItAlertComponent } from './core/alert/alert.component';\nimport { ItBadgeDirective } from './core/badge/badge.directive';\nimport { ItButtonDirective } from './core/button/button.directive';\nimport { ItCalloutComponent } from './core/callout/callout.component';\nimport { ItCardComponent } from './core/card/card.component';\nimport { ItCarouselModule } from './core/carousel/carousel.module';\nimport { ItCollapseComponent } from './core/collapse/collapse.component';\nimport { ItDimmerModule } from './core/dimmer/dimmer.module';\nimport { ItDropdownModule } from './core/dropdown/dropdown.module';\nimport { ItLinkComponent } from './core/link/link.component';\nimport { ItListModule } from './core/list/list.module';\nimport { ItModalComponent } from './core/modal/modal.component';\nimport { ItNotificationsComponent } from './core/notifications/notifications.component';\nimport { ItPaginationComponent } from './core/pagination/pagination.component';\nimport { ItPopoverDirective } from './core/popover/popover.directive';\nimport { ItProgressBarComponent } from './core/progress-bar/progress-bar.component';\nimport { ItProgressButtonComponent } from './core/progress-button/progress-button.component';\nimport { ItSpinnerComponent } from './core/spinner/spinner.component';\nimport { ItSteppersModule } from './core/steppers/steppers.module';\nimport { ItTabModule } from './core/tab/tab.module';\nimport { ItTableComponent } from './core/table/table.component';\nimport { ItTooltipDirective } from './core/tooltip/tooltip.directive';\nimport { ItFormModule } from './form/form.module';\nimport { ItBackButtonComponent } from './navigation/back-button/back-button.component';\nimport { ItBackToTopComponent } from './navigation/back-to-top/back-to-top.component';\nimport { ItBreadcrumbsModule } from './navigation/breadcrumbs/breadcrumbs.module';\nimport { ItHeaderComponent } from './navigation/header/header.component';\nimport { ItIconComponent } from './utils/icon/icon.component';\nimport { ItLanguageSwitcherComponent } from './utils/language-switcher/language-switcher.component';\nimport { ItErrorPageComponent } from './utils/error-page/error-page.component';\nimport { ItChipComponent } from './core/chip/chip.component';\nimport { ItForwardDirective } from './core/forward/forward.directive';\nimport { MarkMatchingTextPipe } from '../pipes/mark-matching-text.pipe';\n\n\n/**\n * Core components\n */\nconst core = [\n ItAccordionComponent,\n ItAlertComponent,\n ItBadgeDirective,\n ItButtonDirective,\n ItCalloutComponent,\n ItCardComponent,\n ItCarouselModule,\n ItChipComponent,\n ItCollapseComponent,\n ItDimmerModule,\n ItDropdownModule,\n ItForwardDirective,\n ItLinkComponent,\n ItListModule,\n ItModalComponent,\n ItNotificationsComponent,\n ItPaginationComponent,\n ItPopoverDirective,\n ItProgressBarComponent,\n ItProgressButtonComponent,\n ItSpinnerComponent,\n ItSteppersModule,\n ItTabModule,\n ItTableComponent,\n ItTooltipDirective\n];\n\n/**\n * Navigation Components\n */\nconst navigation = [\n ItBackButtonComponent,\n ItBackToTopComponent,\n ItBreadcrumbsModule,\n ItHeaderComponent\n];\n\n/**\n * Utils components\n */\nconst utils = [\n ItErrorPageComponent,\n ItIconComponent,\n ItLanguageSwitcherComponent,\n MarkMatchingTextPipe\n];\n\n@NgModule({\n imports: [\n ...core,\n ItFormModule, // Form components\n ...navigation,\n ...utils\n ],\n exports: [\n ...core,\n ItFormModule, // Form components\n ...navigation,\n ...utils\n ]\n})\nexport class ItComponentsModule {\n}\n","export type IconSize = 'xs' | 'sm' | 'lg' | 'xl';\n\nexport type IconColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'light' | 'white';\n\nexport type IconName = typeof IconNameArray[number];\n\nexport const IconNameArray = [\n 'arrow-down',\n 'arrow-down-circle',\n 'arrow-down-triangle',\n 'arrow-left',\n 'arrow-left-circle',\n 'arrow-left-triangle',\n 'arrow-right',\n 'arrow-right-circle',\n 'arrow-right-triangle',\n 'arrow-up',\n 'arrow-up-circle',\n 'arrow-up-triangle',\n 'ban',\n 'bookmark',\n 'box',\n 'burger',\n 'calendar',\n 'camera',\n 'card',\n 'chart-line',\n 'check',\n 'check-circle',\n 'chevron-left',\n 'chevron-right',\n 'clip',\n 'clock',\n 'close',\n 'close-big',\n 'close-circle',\n 'comment',\n 'copy',\n 'delete',\n 'download',\n 'error',\n 'exchange-circle',\n 'expand',\n 'external-link',\n 'flag',\n 'folder',\n 'fullscreen',\n 'funnel',\n 'hearing',\n 'help',\n 'help-circle',\n 'horn',\n 'inbox',\n 'info-circle',\n 'key',\n 'link',\n 'list',\n 'locked',\n 'logout',\n 'mail',\n 'mail-open',\n 'map-marker',\n 'map-marker-circle',\n 'map-marker-minus',\n 'map-marker-plus',\n 'maximize',\n 'maximize-alt',\n 'minimize',\n 'minus',\n 'minus-circle',\n 'more-actions',\n 'more-items',\n 'note',\n 'pa',\n 'password-invisible',\n 'password-visible',\n 'pencil',\n 'piattaforme',\n 'pin',\n 'plug',\n 'plus',\n 'plus-circle',\n 'presentation',\n 'print',\n 'refresh',\n 'restore',\n 'rss',\n 'rss-square',\n 'search',\n 'settings',\n 'share',\n 'software',\n 'star-full',\n 'star-outline',\n 'telephone',\n 'tool',\n 'unlocked',\n 'upload',\n 'user',\n 'video',\n 'warning',\n 'warning-circle',\n 'wifi',\n 'zoom-in',\n 'zoom-out',\n\n // Files\n 'file',\n 'files',\n 'file-audio',\n 'file-compressed',\n 'file-csv',\n 'file-json',\n 'file-odp',\n 'file-ods',\n 'file-odt',\n 'file-pdf',\n 'file-pdf-ext',\n 'file-sheet',\n 'file-slides',\n 'file-ppt',\n 'file-txt',\n 'file-video',\n 'file-xml',\n\n // Platforms\n 'behance',\n 'facebook',\n 'facebook-square',\n 'figma',\n 'figma-square',\n 'flickr',\n 'flickr-square',\n 'github',\n 'instagram',\n 'linkedin',\n 'linkedin-square',\n 'mastodon',\n 'mastodon-square',\n 'medium',\n 'medium-square',\n 'moodle',\n 'moodle-square',\n 'pinterest',\n 'pinterest-square',\n 'quora',\n 'quora-square',\n 'reddit',\n 'reddit-square',\n 'slack',\n 'slack-square',\n 'snapchat',\n 'snapchat-square',\n 'stackexchange',\n 'stackexchange-square',\n 'stackoverflow',\n 'stackoverflow-square',\n 'telegram',\n 'tiktok',\n 'tiktok-square',\n 'twitter',\n 'twitter-square',\n 'vimeo',\n 'vimeo-square',\n 'whatsapp',\n 'whatsapp-square',\n 'youtube',\n 'google',\n\n // Extra\n 'designers-italia',\n 'team-digitale'\n] as const;\n\n","/*\n * Public API Surface of design-angular-kit\n */\n\nexport * from './lib/design-angular-kit.module';\nexport * from './lib/components/components.module';\n\n// Config\nexport * from './lib/design-angular-kit-config';\n\n// Core components\nexport * from './lib/components/core/accordion/accordion.component';\nexport * from './lib/components/core/alert/alert.component';\nexport * from './lib/components/core/badge/badge.directive';\nexport * from './lib/components/core/button/button.directive';\nexport * from './lib/components/core/callout/callout.component';\nexport * from './lib/components/core/card/card.component';\n\nexport * from './lib/components/core/carousel/carousel.module';\nexport * from './lib/components/core/carousel/carousel/carousel.component';\nexport * from './lib/components/core/carousel/carousel-item/carousel-item.component';\n\nexport * from './lib/components/core/chip/chip.component';\nexport * from './lib/components/core/collapse/collapse.component';\n\nexport * from './lib/components/core/dimmer/dimmer.module';\nexport * from './lib/components/core/dimmer/dimmer.component';\nexport * from './lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component';\nexport * from './lib/components/core/dimmer/dimmer-icon/dimmer-icon.component';\n\nexport * from './lib/components/core/dropdown/dropdown.module';\nexport * from './lib/components/core/dropdown/dropdown/dropdown.component';\nexport * from './lib/components/core/dropdown/dropdown-item/dropdown-item.component';\n\nexport * from './lib/components/core/forward/forward.directive';\nexport * from './lib/components/core/link/link.component';\n\nexport * from './lib/components/core/list/list.module';\nexport * from './lib/components/core/list/list/list.component';\nexport * from './lib/components/core/list/list-item/list-item.component';\n\nexport * from './lib/components/core/modal/modal.component';\nexport * from './lib/components/core/notifications/notifications.component';\nexport * from './lib/components/core/pagination/pagination.component';\nexport * from './lib/components/core/popover/popover.directive';\nexport * from './lib/components/core/progress-bar/progress-bar.component';\nexport * from './lib/components/core/progress-button/progress-button.component';\nexport * from './lib/components/core/spinner/spinner.component';\n\nexport * from './lib/components/core/steppers/steppers.module';\nexport * from './lib/components/core/steppers/steppers-container/steppers-container.component';\nexport * from './lib/components/core/steppers/steppers-item/steppers-item.component';\n\nexport * from './lib/components/core/tab/tab.module';\nexport * from './lib/components/core/tab/tab-container/tab-container.component';\nexport * from './lib/components/core/tab/tab-item/tab-item.component';\n\nexport * from './lib/components/core/table/table.component';\nexport * from './lib/components/core/tooltip/tooltip.directive';\n\n// Forms components\nexport * from './lib/components/form/form.module';\nexport * from './lib/components/form/checkbox/checkbox.component';\nexport * from './lib/components/form/input/input.component';\nexport * from './lib/components/form/password-input/password-input.component';\nexport * from './lib/components/form/radio-button/radio-button.component';\nexport * from './lib/components/form/range/range.component';\nexport * from './lib/components/form/rating/rating.component';\nexport * from './lib/components/form/select/select.component';\nexport * from './lib/components/form/textarea/textarea.component';\nexport * from './lib/components/form/upload-drag-drop/upload-drag-drop.component';\nexport * from './lib/components/form/upload-file-list/upload-file-list.component';\n\n// Navigation components\nexport * from './lib/components/navigation/back-button/back-button.component';\nexport * from './lib/components/navigation/back-to-top/back-to-top.component';\n\nexport * from './lib/components/navigation/breadcrumbs/breadcrumbs.module';\nexport * from './lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component';\nexport * from './lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component';\n\nexport * from './lib/components/navigation/header/header.component';\n\n// Utils components\nexport * from './lib/components/utils/error-page/error-page.component';\nexport * from './lib/components/utils/icon/icon.component';\nexport * from './lib/components/utils/language-switcher/language-switcher.component';\n\n// Services\nexport * from './lib/services/notification/notification.service';\n\n// Pipes\nexport * from './lib/pipes/mark-matching-text.pipe';\n\n// Interfaces\nexport * from './lib/interfaces/design-angular-kit-init';\n\nexport * from './lib/interfaces/core';\nexport * from './lib/interfaces/form';\nexport * from './lib/interfaces/icon';\nexport * from './lib/interfaces/utils';\n\n// Utils\nexport * from './lib/utils/regex';\nexport * from './lib/utils/file-utils';\n\n// Validators\nexport * from './lib/validators/it-validators';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ItProgressButtonComponent","BSNotification","i1.ItNotificationService","i2","i1","i2.ItDropdownComponent","i3.ItDropdownItemComponent","i4"],"mappings":"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"}