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

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