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

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 (255) hide show
  1. package/README.md +77 -7
  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/components.module.mjs +218 -0
  7. package/esm2022/lib/components/core/accordion/accordion.component.mjs +38 -0
  8. package/esm2022/lib/components/core/alert/alert.component.mjs +72 -0
  9. package/esm2022/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.mjs +43 -0
  10. package/esm2022/lib/components/core/avatar/avatar-group/avatar-group.component.mjs +38 -0
  11. package/esm2022/lib/components/core/avatar/avatar.directive.mjs +78 -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 +81 -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 +23 -0
  19. package/esm2022/lib/components/core/chip/chip.component.mjs +96 -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 +59 -0
  24. package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +27 -0
  25. package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +141 -0
  26. package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +62 -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 +23 -0
  33. package/esm2022/lib/components/core/modal/modal.component.mjs +195 -0
  34. package/esm2022/lib/components/core/notifications/notifications.component.mjs +112 -0
  35. package/esm2022/lib/components/core/pagination/pagination.component.mjs +127 -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 +26 -0
  39. package/esm2022/lib/components/core/spinner/spinner.component.mjs +31 -0
  40. package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +112 -0
  41. package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +19 -0
  42. package/esm2022/lib/components/core/steppers/steppers.module.mjs +23 -0
  43. package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +60 -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 +23 -0
  46. package/esm2022/lib/components/core/table/sort/sort-header/sort-header.component.mjs +136 -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/tooltip/tooltip.directive.mjs +143 -0
  50. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +95 -0
  51. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +48 -0
  52. package/esm2022/lib/components/form/form.module.mjs +59 -0
  53. package/esm2022/lib/components/form/input/input.component.mjs +187 -0
  54. package/esm2022/lib/components/form/password-input/password-input.component.mjs +149 -0
  55. package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +58 -0
  56. package/esm2022/lib/components/form/range/range.component.mjs +64 -0
  57. package/esm2022/lib/components/form/rating/rating.component.mjs +51 -0
  58. package/esm2022/lib/components/form/select/select.component.mjs +70 -0
  59. package/esm2022/lib/components/form/textarea/textarea.component.mjs +55 -0
  60. package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +140 -0
  61. package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +107 -0
  62. package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +67 -0
  63. package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +58 -0
  64. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +55 -0
  65. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +21 -0
  66. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
  67. package/esm2022/lib/components/navigation/header/header.component.mjs +73 -0
  68. package/esm2022/lib/components/navigation/navbar/navbar/navbar.component.mjs +41 -0
  69. package/esm2022/lib/components/navigation/navbar/navbar-item/navbar-item.component.mjs +13 -0
  70. package/esm2022/lib/components/navigation/navbar/navbar.module.mjs +18 -0
  71. package/esm2022/lib/components/utils/error-page/error-page.component.mjs +75 -0
  72. package/esm2022/lib/components/utils/icon/icon.component.mjs +56 -0
  73. package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +47 -0
  74. package/esm2022/lib/design-angular-kit-config.mjs +15 -0
  75. package/esm2022/lib/design-angular-kit.module.mjs +68 -0
  76. package/esm2022/lib/enums/colors.enums.mjs +12 -0
  77. package/esm2022/lib/enums/sizes.enum.mjs +9 -0
  78. package/esm2022/lib/interfaces/core.mjs +16 -0
  79. package/esm2022/lib/interfaces/design-angular-kit-init.mjs +2 -0
  80. package/esm2022/lib/interfaces/form.mjs +2 -0
  81. package/esm2022/lib/interfaces/icon.mjs +165 -0
  82. package/esm2022/lib/interfaces/sortable-table.mjs +6 -0
  83. package/esm2022/lib/pipes/date-ago.pipe.mjs +56 -0
  84. package/esm2022/lib/pipes/duration.pipe.mjs +110 -0
  85. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +48 -0
  86. package/esm2022/lib/services/notification/notification.service.mjs +120 -0
  87. package/esm2022/lib/utils/coercion.mjs +18 -0
  88. package/esm2022/lib/utils/date-utils.mjs +160 -0
  89. package/esm2022/lib/utils/file-utils.mjs +73 -0
  90. package/esm2022/lib/utils/regex.mjs +31 -0
  91. package/esm2022/lib/validators/it-validators.mjs +153 -0
  92. package/esm2022/public_api.mjs +98 -0
  93. package/fesm2022/design-angular-kit.mjs +5450 -0
  94. package/fesm2022/design-angular-kit.mjs.map +1 -0
  95. package/lib/abstracts/{abstract-form-component.d.ts → abstract-form.component.d.ts} +12 -14
  96. package/lib/abstracts/abstract.component.d.ts +18 -8
  97. package/lib/components/components.module.d.ts +45 -0
  98. package/lib/components/core/accordion/accordion.component.d.ts +11 -5
  99. package/lib/components/core/alert/alert.component.d.ts +15 -10
  100. package/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.d.ts +29 -0
  101. package/lib/components/core/avatar/avatar-group/avatar-group.component.d.ts +13 -0
  102. package/lib/components/core/avatar/avatar.directive.d.ts +33 -0
  103. package/lib/components/core/badge/badge.directive.d.ts +14 -7
  104. package/lib/components/core/button/button.directive.d.ts +25 -15
  105. package/lib/components/core/callout/callout.component.d.ts +18 -20
  106. package/lib/components/core/card/card.component.d.ts +46 -18
  107. package/lib/components/core/carousel/carousel/carousel.component.d.ts +34 -15
  108. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +8 -3
  109. package/lib/components/core/carousel/carousel.module.d.ts +8 -0
  110. package/lib/components/core/chip/chip.component.d.ts +8 -5
  111. package/lib/components/core/collapse/collapse.component.d.ts +22 -15
  112. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +3 -3
  113. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +3 -3
  114. package/lib/components/core/dimmer/dimmer.component.d.ts +4 -4
  115. package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
  116. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +24 -17
  117. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +15 -12
  118. package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
  119. package/lib/components/core/forward/forward.directive.d.ts +3 -3
  120. package/lib/components/core/link/link.component.d.ts +14 -10
  121. package/lib/components/core/list/list/list.component.d.ts +20 -6
  122. package/lib/components/core/list/list-item/list-item.component.d.ts +23 -9
  123. package/lib/components/core/list/list.module.d.ts +8 -0
  124. package/lib/components/core/modal/modal.component.d.ts +89 -13
  125. package/lib/components/core/notifications/notifications.component.d.ts +9 -8
  126. package/lib/components/core/pagination/pagination.component.d.ts +71 -10
  127. package/lib/components/core/popover/popover.directive.d.ts +15 -14
  128. package/lib/components/core/progress-bar/progress-bar.component.d.ts +11 -8
  129. package/lib/components/core/progress-button/progress-button.component.d.ts +5 -6
  130. package/lib/components/core/spinner/spinner.component.d.ts +13 -10
  131. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +55 -27
  132. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +5 -4
  133. package/lib/components/core/steppers/steppers.module.d.ts +8 -0
  134. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +15 -12
  135. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +14 -10
  136. package/lib/components/core/tab/tab.module.d.ts +8 -0
  137. package/lib/components/core/table/sort/sort-header/sort-header.component.d.ts +72 -0
  138. package/lib/components/core/table/sort/sort.directive.d.ts +53 -0
  139. package/lib/components/core/table/table.component.d.ts +26 -20
  140. package/lib/components/core/tooltip/tooltip.directive.d.ts +12 -11
  141. package/lib/components/form/autocomplete/autocomplete.component.d.ts +49 -0
  142. package/lib/components/form/checkbox/checkbox.component.d.ts +23 -12
  143. package/lib/components/form/form.module.d.ts +17 -0
  144. package/lib/components/form/input/input.component.d.ts +42 -43
  145. package/lib/components/form/password-input/password-input.component.d.ts +35 -10
  146. package/lib/components/form/radio-button/radio-button.component.d.ts +20 -11
  147. package/lib/components/form/range/range.component.d.ts +42 -0
  148. package/lib/components/form/rating/rating.component.d.ts +24 -0
  149. package/lib/components/form/select/select.component.d.ts +12 -6
  150. package/lib/components/form/textarea/textarea.component.d.ts +15 -5
  151. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +5 -5
  152. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +14 -11
  153. package/lib/components/navigation/back-button/back-button.component.d.ts +8 -8
  154. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +15 -16
  155. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +13 -10
  156. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +9 -8
  157. package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
  158. package/lib/components/navigation/header/header.component.d.ts +22 -25
  159. package/lib/components/navigation/navbar/navbar/navbar.component.d.ts +16 -0
  160. package/lib/components/navigation/navbar/navbar-item/navbar-item.component.d.ts +5 -0
  161. package/lib/components/navigation/navbar/navbar.module.d.ts +8 -0
  162. package/lib/components/utils/error-page/error-page.component.d.ts +44 -0
  163. package/lib/components/utils/icon/icon.component.d.ts +15 -15
  164. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +9 -5
  165. package/lib/design-angular-kit-config.d.ts +16 -0
  166. package/lib/design-angular-kit.module.d.ts +6 -4
  167. package/lib/enums/colors.enums.d.ts +10 -0
  168. package/lib/enums/sizes.enum.d.ts +7 -0
  169. package/lib/interfaces/core.d.ts +16 -15
  170. package/lib/interfaces/design-angular-kit-init.d.ts +7 -0
  171. package/lib/interfaces/form.d.ts +9 -9
  172. package/lib/interfaces/icon.d.ts +4 -3
  173. package/lib/interfaces/sortable-table.d.ts +33 -0
  174. package/lib/pipes/date-ago.pipe.d.ts +17 -0
  175. package/lib/pipes/duration.pipe.d.ts +35 -0
  176. package/lib/pipes/mark-matching-text.pipe.d.ts +15 -7
  177. package/lib/services/{notifications/notifications.service.d.ts → notification/notification.service.d.ts} +3 -3
  178. package/lib/utils/coercion.d.ts +14 -0
  179. package/lib/utils/date-utils.d.ts +78 -0
  180. package/lib/utils/file-utils.d.ts +1 -1
  181. package/lib/utils/regex.d.ts +5 -0
  182. package/lib/validators/it-validators.d.ts +9 -2
  183. package/package.json +14 -20
  184. package/public_api.d.ts +29 -4
  185. package/esm2020/lib/abstracts/abstract-form-component.mjs +0 -174
  186. package/esm2020/lib/abstracts/abstract.component.mjs +0 -27
  187. package/esm2020/lib/components/core/accordion/accordion.component.mjs +0 -31
  188. package/esm2020/lib/components/core/alert/alert.component.mjs +0 -69
  189. package/esm2020/lib/components/core/badge/badge.directive.mjs +0 -34
  190. package/esm2020/lib/components/core/button/button.directive.mjs +0 -80
  191. package/esm2020/lib/components/core/callout/callout.component.mjs +0 -84
  192. package/esm2020/lib/components/core/card/card.component.mjs +0 -58
  193. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +0 -66
  194. package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +0 -14
  195. package/esm2020/lib/components/core/chip/chip.component.mjs +0 -89
  196. package/esm2020/lib/components/core/collapse/collapse.component.mjs +0 -101
  197. package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +0 -24
  198. package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +0 -11
  199. package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +0 -59
  200. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +0 -130
  201. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +0 -68
  202. package/esm2020/lib/components/core/forward/forward.directive.mjs +0 -51
  203. package/esm2020/lib/components/core/link/link.component.mjs +0 -40
  204. package/esm2020/lib/components/core/list/list/list.component.mjs +0 -13
  205. package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +0 -36
  206. package/esm2020/lib/components/core/modal/modal.component.mjs +0 -98
  207. package/esm2020/lib/components/core/notifications/notifications.component.mjs +0 -110
  208. package/esm2020/lib/components/core/pagination/pagination.component.mjs +0 -51
  209. package/esm2020/lib/components/core/popover/popover.directive.mjs +0 -179
  210. package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +0 -34
  211. package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +0 -27
  212. package/esm2020/lib/components/core/spinner/spinner.component.mjs +0 -35
  213. package/esm2020/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +0 -119
  214. package/esm2020/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +0 -18
  215. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +0 -59
  216. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +0 -36
  217. package/esm2020/lib/components/core/table/table.component.mjs +0 -57
  218. package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +0 -143
  219. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -40
  220. package/esm2020/lib/components/form/input/input.component.mjs +0 -222
  221. package/esm2020/lib/components/form/password-input/password-input.component.mjs +0 -112
  222. package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +0 -53
  223. package/esm2020/lib/components/form/select/select.component.mjs +0 -62
  224. package/esm2020/lib/components/form/textarea/textarea.component.mjs +0 -46
  225. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +0 -137
  226. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +0 -104
  227. package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +0 -69
  228. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +0 -74
  229. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -45
  230. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +0 -23
  231. package/esm2020/lib/components/navigation/header/header.component.mjs +0 -63
  232. package/esm2020/lib/components/utils/icon/icon.component.mjs +0 -54
  233. package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +0 -39
  234. package/esm2020/lib/components/utils/not-found-page/not-found-page.component.mjs +0 -13
  235. package/esm2020/lib/design-angular-kit.module.mjs +0 -56
  236. package/esm2020/lib/interfaces/core.mjs +0 -16
  237. package/esm2020/lib/interfaces/form.mjs +0 -2
  238. package/esm2020/lib/interfaces/icon.mjs +0 -2
  239. package/esm2020/lib/modules/components.module.mjs +0 -257
  240. package/esm2020/lib/pipes/mark-matching-text.pipe.mjs +0 -36
  241. package/esm2020/lib/services/notifications/notifications.service.mjs +0 -120
  242. package/esm2020/lib/utils/boolean-input.mjs +0 -15
  243. package/esm2020/lib/utils/file-utils.mjs +0 -73
  244. package/esm2020/lib/utils/regex.mjs +0 -26
  245. package/esm2020/lib/validators/it-validators.mjs +0 -134
  246. package/esm2020/public_api.mjs +0 -70
  247. package/fesm2015/design-angular-kit.mjs +0 -3850
  248. package/fesm2015/design-angular-kit.mjs.map +0 -1
  249. package/fesm2020/design-angular-kit.mjs +0 -3797
  250. package/fesm2020/design-angular-kit.mjs.map +0 -1
  251. package/lib/components/utils/not-found-page/not-found-page.component.d.ts +0 -5
  252. package/lib/modules/components.module.d.ts +0 -61
  253. package/lib/utils/boolean-input.d.ts +0 -11
  254. /package/{esm2020 → esm2022}/design-angular-kit.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/interfaces/utils.mjs +0 -0
@@ -0,0 +1,127 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
3
+ import { debounceTime, distinctUntilChanged, filter } from 'rxjs';
4
+ import { LowerCasePipe, NgForOf, NgIf } from '@angular/common';
5
+ import { ItIconComponent } from '../../utils/icon/icon.component';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+ import { ItDropdownModule } from '../dropdown/dropdown.module';
8
+ import { ItInputComponent } from '../../form/input/input.component';
9
+ import { inputToBoolean } from '../../../utils/coercion';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ngx-translate/core";
12
+ import * as i2 from "../dropdown/dropdown/dropdown.component";
13
+ import * as i3 from "../dropdown/dropdown-item/dropdown-item.component";
14
+ import * as i4 from "@angular/forms";
15
+ export class ItPaginationComponent {
16
+ constructor() {
17
+ /**
18
+ * Number of pages closest to the current one to display
19
+ * @default 5
20
+ */
21
+ this.visiblePages = 5;
22
+ /**
23
+ * Available Changer values
24
+ * @default [10, 25, 50, 100]
25
+ */
26
+ this.changerValues = [10, 25, 50, 100];
27
+ /**
28
+ * Fired when page is changed. Emit the new index of page
29
+ */
30
+ this.pageEvent = new EventEmitter();
31
+ /**
32
+ * Fired when changer is changed. Emit the new changer value
33
+ */
34
+ this.changerEvent = new EventEmitter();
35
+ /**
36
+ * The pages
37
+ * @protected
38
+ */
39
+ this.pages = [];
40
+ /**
41
+ * Jump to page input
42
+ * @protected
43
+ */
44
+ this.jumpToPage = new FormControl(null);
45
+ this.jumpToPage.valueChanges.pipe(debounceTime(300), // Delay filter data after time span has passed without another source emission
46
+ distinctUntilChanged(), filter(value => !!value && this.jumpToPage.valid)).subscribe(value => {
47
+ this.pageEvent.emit(value - 1);
48
+ });
49
+ }
50
+ ngOnChanges(changes) {
51
+ this.pages = this.calculatePages();
52
+ if (changes['currentPage']) {
53
+ this.jumpToPage.setValue(null, { emitEvent: false });
54
+ }
55
+ }
56
+ /**
57
+ * Create array to generate pagination of `visiblePages` element
58
+ */
59
+ calculatePages() {
60
+ if (this.simpleMode) {
61
+ return [this.currentPage];
62
+ }
63
+ const length = this.pageNumbers > this.visiblePages ? this.visiblePages : this.pageNumbers;
64
+ const halfVisiblePages = Math.floor(this.visiblePages / 2);
65
+ let start = (this.currentPage > halfVisiblePages && this.pageNumbers > this.visiblePages) ?
66
+ this.currentPage - halfVisiblePages + 1 : 1;
67
+ if (this.pageNumbers > this.visiblePages) {
68
+ if ((this.currentPage + 1) >= this.pageNumbers) {
69
+ start -= halfVisiblePages;
70
+ }
71
+ else if (this.currentPage >= (this.pageNumbers - halfVisiblePages)) {
72
+ start -= (this.pageNumbers - (this.currentPage + 1));
73
+ }
74
+ }
75
+ return Array.from({ length }, (_, i) => i + start);
76
+ }
77
+ /**
78
+ * On click page change
79
+ * @param event click event
80
+ * @param newPage the new page of table
81
+ */
82
+ pageChange(event, newPage) {
83
+ event.preventDefault();
84
+ this.pageEvent.emit(newPage - 1); // emit new page index
85
+ }
86
+ /**
87
+ * On click changer
88
+ * @param event click event
89
+ * @param value the new changer value
90
+ */
91
+ changerChange(event, value) {
92
+ event.preventDefault();
93
+ this.changerEvent.emit(value); // emit new changer value
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.7", type: ItPaginationComponent, isStandalone: true, selector: "it-pagination[currentPage][pageNumbers]", inputs: { currentPage: "currentPage", pageNumbers: "pageNumbers", visiblePages: "visiblePages", alignment: "alignment", simpleMode: ["simpleMode", "simpleMode", inputToBoolean], textLinks: ["textLinks", "textLinks", inputToBoolean], currentChanger: "currentChanger", changerValues: "changerValues", showJumpToPage: ["showJumpToPage", "showJumpToPage", inputToBoolean] }, outputs: { pageEvent: "pageEvent", changerEvent: "changerEvent" }, usesOnChanges: true, ngImport: i0, template: "<nav class=\"pagination-wrapper\"\n [class.justify-content-center]=\"alignment==='center'\"\n [class.justify-content-end]=\"alignment==='end'\"\n [class.pagination-total]=\"totalNumberText.hasChildNodes()\">\n\n <ul *ngIf=\"pages.length\" class=\"pagination\">\n <li class=\"page-item\" [class.disabled]=\"currentPage < 1\">\n <a class=\"page-link\" [class.text]=\"textLinks\" href=\"#\" (click)=\"pageChange($event, currentPage)\">\n <it-icon *ngIf=\"!textLinks\" name=\"chevron-left\" color=\"primary\"></it-icon>\n <span class=\"visually-hidden\">\n {{(textLinks ? 'it.core.page' : 'it.core.previous-page') | translate}}\n </span>\n <ng-container *ngIf=\"textLinks\">{{'it.core.previous' | translate}}</ng-container>\n </a>\n </li>\n\n <ng-container *ngIf=\"simpleMode; else defaultView\">\n <li class=\"page-item\"><span class=\"page-link\" aria-current=\"page\">{{currentPage + 1}}</span></li>\n <li class=\"page-item\"><span class=\"page-link\">/</span></li>\n <li class=\"page-item\"><span class=\"page-link\">{{pageNumbers}}</span></li>\n <li class=\"page-item visually-hidden\">\n <a class=\"page-link\" href=\"#\" aria-current=\"page\">\n {{'it.core.page-of-total'|translate : {page: (currentPage + 1), total: pageNumbers} }}\n </a>\n </li>\n </ng-container>\n <ng-template #defaultView>\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[0] >= 2\">\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, 1)\">1</a>\n </li>\n <li class=\"page-item\" *ngIf=\"pages[0] >= 3\">\n <span class=\"page-link\">...</span>\n </li>\n </ng-container>\n\n <li class=\"page-item\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" aria-current=\"page\" *ngIf=\"page === (currentPage + 1); else inactivePage\">\n <span class=\"d-inline-block d-sm-none\">{{'it.core.page'|translate}}</span> {{page}}\n </a>\n <ng-template #inactivePage>\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, page)\">{{page}}</a>\n </ng-template>\n </li>\n\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[pages.length - 1] < pageNumbers\">\n <li class=\"page-item\" *ngIf=\"pages[pages.length - 1] < (pageNumbers - 1)\">\n <span class=\"page-link\">...</span>\n </li>\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, pageNumbers)\">{{pageNumbers}}</a>\n </li>\n </ng-container>\n </ng-template>\n\n <li class=\"page-item\" [class.disabled]=\"currentPage >= pageNumbers - 1\">\n <a class=\"page-link\" [class.text]=\"textLinks\" href=\"#\" (click)=\"pageChange($event, currentPage + 2)\">\n <span class=\"visually-hidden\">\n {{(textLinks ? 'it.core.page' : 'it.core.next-page') | translate}}\n </span>\n <ng-container *ngIf=\"textLinks\">{{'it.core.next' | translate}}</ng-container>\n <it-icon *ngIf=\"!textLinks\" name=\"chevron-right\" color=\"primary\"></it-icon>\n </a>\n </li>\n </ul>\n\n <it-dropdown *ngIf=\"currentChanger !== undefined\">\n <span button>{{currentChanger}} / {{'it.core.page' | translate | lowercase}}</span>\n <ng-container list>\n <it-dropdown-item *ngFor=\"let value of changerValues\" href=\"#\" externalLink=\"true\"\n (click)=\"changerChange($event, value)\">\n {{value}} / {{'it.core.page' | translate | lowercase}}\n </it-dropdown-item>\n </ng-container>\n </it-dropdown>\n\n <it-input *ngIf=\"showJumpToPage\" type=\"number\" [min]=\"1\" [max]=\"pageNumbers\"\n [label]=\"('it.core.go-to' | translate) + '...'\" [formControl]=\"jumpToPage\"></it-input>\n\n <p [class.d-none]=\"!totalNumberText.hasChildNodes()\" #totalNumberText>\n <ng-content></ng-content>\n </p>\n</nav>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ItIconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }, { kind: "ngmodule", type: ItDropdownModule }, { kind: "component", type: i2.ItDropdownComponent, selector: "it-dropdown", inputs: ["mode", "color", "direction", "fullWidth", "dark"], outputs: ["showEvent", "shownEvent", "hideEvent", "hiddenEvent"], exportAs: ["itDropdown"] }, { kind: "component", type: i3.ItDropdownItemComponent, selector: "it-dropdown-item", inputs: ["divider", "active", "large", "iconName", "iconPosition"] }, { kind: "component", type: ItInputComponent, selector: "it-input", inputs: ["type", "placeholder", "description", "readonly", "maxDate", "minDate", "max", "min", "step", "currency", "percentage", "symbol", "adaptive", "autocomplete"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItPaginationComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ standalone: true, selector: 'it-pagination[currentPage][pageNumbers]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIf, NgForOf, ItIconComponent, TranslateModule, LowerCasePipe, ItDropdownModule, ItInputComponent, ReactiveFormsModule], template: "<nav class=\"pagination-wrapper\"\n [class.justify-content-center]=\"alignment==='center'\"\n [class.justify-content-end]=\"alignment==='end'\"\n [class.pagination-total]=\"totalNumberText.hasChildNodes()\">\n\n <ul *ngIf=\"pages.length\" class=\"pagination\">\n <li class=\"page-item\" [class.disabled]=\"currentPage < 1\">\n <a class=\"page-link\" [class.text]=\"textLinks\" href=\"#\" (click)=\"pageChange($event, currentPage)\">\n <it-icon *ngIf=\"!textLinks\" name=\"chevron-left\" color=\"primary\"></it-icon>\n <span class=\"visually-hidden\">\n {{(textLinks ? 'it.core.page' : 'it.core.previous-page') | translate}}\n </span>\n <ng-container *ngIf=\"textLinks\">{{'it.core.previous' | translate}}</ng-container>\n </a>\n </li>\n\n <ng-container *ngIf=\"simpleMode; else defaultView\">\n <li class=\"page-item\"><span class=\"page-link\" aria-current=\"page\">{{currentPage + 1}}</span></li>\n <li class=\"page-item\"><span class=\"page-link\">/</span></li>\n <li class=\"page-item\"><span class=\"page-link\">{{pageNumbers}}</span></li>\n <li class=\"page-item visually-hidden\">\n <a class=\"page-link\" href=\"#\" aria-current=\"page\">\n {{'it.core.page-of-total'|translate : {page: (currentPage + 1), total: pageNumbers} }}\n </a>\n </li>\n </ng-container>\n <ng-template #defaultView>\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[0] >= 2\">\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, 1)\">1</a>\n </li>\n <li class=\"page-item\" *ngIf=\"pages[0] >= 3\">\n <span class=\"page-link\">...</span>\n </li>\n </ng-container>\n\n <li class=\"page-item\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" aria-current=\"page\" *ngIf=\"page === (currentPage + 1); else inactivePage\">\n <span class=\"d-inline-block d-sm-none\">{{'it.core.page'|translate}}</span> {{page}}\n </a>\n <ng-template #inactivePage>\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, page)\">{{page}}</a>\n </ng-template>\n </li>\n\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[pages.length - 1] < pageNumbers\">\n <li class=\"page-item\" *ngIf=\"pages[pages.length - 1] < (pageNumbers - 1)\">\n <span class=\"page-link\">...</span>\n </li>\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, pageNumbers)\">{{pageNumbers}}</a>\n </li>\n </ng-container>\n </ng-template>\n\n <li class=\"page-item\" [class.disabled]=\"currentPage >= pageNumbers - 1\">\n <a class=\"page-link\" [class.text]=\"textLinks\" href=\"#\" (click)=\"pageChange($event, currentPage + 2)\">\n <span class=\"visually-hidden\">\n {{(textLinks ? 'it.core.page' : 'it.core.next-page') | translate}}\n </span>\n <ng-container *ngIf=\"textLinks\">{{'it.core.next' | translate}}</ng-container>\n <it-icon *ngIf=\"!textLinks\" name=\"chevron-right\" color=\"primary\"></it-icon>\n </a>\n </li>\n </ul>\n\n <it-dropdown *ngIf=\"currentChanger !== undefined\">\n <span button>{{currentChanger}} / {{'it.core.page' | translate | lowercase}}</span>\n <ng-container list>\n <it-dropdown-item *ngFor=\"let value of changerValues\" href=\"#\" externalLink=\"true\"\n (click)=\"changerChange($event, value)\">\n {{value}} / {{'it.core.page' | translate | lowercase}}\n </it-dropdown-item>\n </ng-container>\n </it-dropdown>\n\n <it-input *ngIf=\"showJumpToPage\" type=\"number\" [min]=\"1\" [max]=\"pageNumbers\"\n [label]=\"('it.core.go-to' | translate) + '...'\" [formControl]=\"jumpToPage\"></it-input>\n\n <p [class.d-none]=\"!totalNumberText.hasChildNodes()\" #totalNumberText>\n <ng-content></ng-content>\n </p>\n</nav>\n" }]
101
+ }], ctorParameters: function () { return []; }, propDecorators: { currentPage: [{
102
+ type: Input
103
+ }], pageNumbers: [{
104
+ type: Input
105
+ }], visiblePages: [{
106
+ type: Input
107
+ }], alignment: [{
108
+ type: Input
109
+ }], simpleMode: [{
110
+ type: Input,
111
+ args: [{ transform: inputToBoolean }]
112
+ }], textLinks: [{
113
+ type: Input,
114
+ args: [{ transform: inputToBoolean }]
115
+ }], currentChanger: [{
116
+ type: Input
117
+ }], changerValues: [{
118
+ type: Input
119
+ }], showJumpToPage: [{
120
+ type: Input,
121
+ args: [{ transform: inputToBoolean }]
122
+ }], pageEvent: [{
123
+ type: Output
124
+ }], changerEvent: [{
125
+ type: Output
126
+ }] } });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFTekQsTUFBTSxPQUFPLHFCQUFxQjtJQThFaEM7UUFsRUE7OztXQUdHO1FBQ00saUJBQVksR0FBVyxDQUFDLENBQUM7UUE0QmxDOzs7V0FHRztRQUNNLGtCQUFh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Q29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb3dlckNhc2VQaXBlLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEl0SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJdERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlJztcbmltcG9ydCB7IEl0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbnB1dFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtcGFnaW5hdGlvbltjdXJyZW50UGFnZV1bcGFnZU51bWJlcnNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nSWYsIE5nRm9yT2YsIEl0SWNvbkNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlLCBMb3dlckNhc2VQaXBlLCBJdERyb3Bkb3duTW9kdWxlLCBJdElucHV0Q29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBJdFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIC8qKlxuICAgKiBJbmRleCBvZiBwYWdlIChzdGFydCAwKVxuICAgKi9cbiAgQElucHV0KCkgY3VycmVudFBhZ2UhOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heCBudW1iZXIgb2YgcGFnZSAoY291bnRlcilcbiAgICovXG4gIEBJbnB1dCgpIHBhZ2VOdW1iZXJzITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcGFnZXMgY2xvc2VzdCB0byB0aGUgY3VycmVudCBvbmUgdG8gZGlzcGxheVxuICAgKiBAZGVmYXVsdCA1XG4gICAqL1xuICBASW5wdXQoKSB2aXNpYmxlUGFnZXM6IG51bWJlciA9IDU7XG5cbiAgLyoqXG4gICAqIFBhZ2luYXRpb24gYWxpZ25tZW50IChqdXN0aWZ5LWNvbnRlbnQpXG4gICAqL1xuICBASW5wdXQoKSBhbGlnbm1lbnQ6ICdjZW50ZXInIHwgJ2VuZCcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEVuYWJsZS9EaXNhYmxlIHNpbXBsZSBtb2RlXG4gICAqIFBhZ2luYXRpb24gaW4gdGhlIFwiU2ltcGxlIG1vZGVcIiB2ZXJzaW9uIGlzIG9wdGltaXplZCBmb3IgbW9iaWxlIGRldmljZXMuXG4gICAqIEBkZWZhdWx0IGZhbHNlIC0gZGlzYWJsZWRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogaW5wdXRUb0Jvb2xlYW4gfSkgc2ltcGxlTW9kZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZS9EaXNhYmxlIHRleHQgbGlua3NcbiAgICogQ2hldnJvbiBpY29ucyB1c2VkIGFzIG5hdmlnYXRpb24gbGlua3MgYXJlIHJlcGxhY2VkIGJ5IHRleHQgbGlua3Mgc3VjaCBhcyDigJxwcmV2aW91c+KAnSBhbmQg4oCcbmV4dOKAnS5cbiAgICogQGRlZmF1bHQgZmFsc2UgLSBkaXNhYmxlZFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSB0ZXh0TGlua3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHZhbHVlIG9mIENoYW5nZXJcbiAgICogSWYgaXMgc2V0IHNob3cgdGhlIENoYW5nZXJcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gaGlkZSB0aGUgQ2hhbmdlclxuICAgKi9cbiAgQElucHV0KCkgY3VycmVudENoYW5nZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQXZhaWxhYmxlIENoYW5nZXIgdmFsdWVzXG4gICAqIEBkZWZhdWx0IFsxMCwgMjUsIDUwLCAxMDBdXG4gICAqL1xuICBASW5wdXQoKSBjaGFuZ2VyVmFsdWVzOiBBcnJheTxudW1iZXI+ID0gWzEwLCAyNSwgNTAsIDEwMF07XG5cbiAgLyoqXG4gICAqIEhpZGUvU2hvdyBcIkp1bXAgdG8gcGFnZVwiIGlucHV0XG4gICAqIEBkZWZhdWx0IGZhbHNlIC0gaGlkZGVuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIHNob3dKdW1wVG9QYWdlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmlyZWQgd2hlbiBwYWdlIGlzIGNoYW5nZWQuIEVtaXQgdGhlIG5ldyBpbmRleCBvZiBwYWdlXG4gICAqL1xuICBAT3V0cHV0KCkgcGFnZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gY2hhbmdlciBpcyBjaGFuZ2VkLiBFbWl0IHRoZSBuZXcgY2hhbmdlciB2YWx1ZVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFnZXNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHBhZ2VzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgLyoqXG4gICAqIEp1bXAgdG8gcGFnZSBpbnB1dFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQganVtcFRvUGFnZTogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4gPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5qdW1wVG9QYWdlLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksIC8vIERlbGF5IGZpbHRlciBkYXRhIGFmdGVyIHRpbWUgc3BhbiBoYXMgcGFzc2VkIHdpdGhvdXQgYW5vdGhlciBzb3VyY2UgZW1pc3Npb25cbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSAmJiB0aGlzLmp1bXBUb1BhZ2UudmFsaWQpXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5wYWdlRXZlbnQuZW1pdCh2YWx1ZSEgLSAxKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2VzID0gdGhpcy5jYWxjdWxhdGVQYWdlcygpO1xuICAgIGlmIChjaGFuZ2VzWydjdXJyZW50UGFnZSddKSB7XG4gICAgICB0aGlzLmp1bXBUb1BhZ2Uuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYXJyYXkgdG8gZ2VuZXJhdGUgcGFnaW5hdGlvbiBvZiBgdmlzaWJsZVBhZ2VzYCBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZVBhZ2VzKCk6IEFycmF5PG51bWJlcj4ge1xuICAgIGlmICh0aGlzLnNpbXBsZU1vZGUpIHtcbiAgICAgIHJldHVybiBbdGhpcy5jdXJyZW50UGFnZV07XG4gICAgfVxuXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5wYWdlTnVtYmVycyA+IHRoaXMudmlzaWJsZVBhZ2VzID8gdGhpcy52aXNpYmxlUGFnZXMgOiB0aGlzLnBhZ2VOdW1iZXJzO1xuXG4gICAgY29uc3QgaGFsZlZpc2libGVQYWdlcyA9IE1hdGguZmxvb3IodGhpcy52aXNpYmxlUGFnZXMgLyAyKTtcbiAgICBsZXQgc3RhcnQgPSAodGhpcy5jdXJyZW50UGFnZSA+IGhhbGZWaXNpYmxlUGFnZXMgJiYgdGhpcy5wYWdlTnVtYmVycyA+IHRoaXMudmlzaWJsZVBhZ2VzKSA/XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlIC0gaGFsZlZpc2libGVQYWdlcyArIDEgOiAxO1xuXG4gICAgaWYgKHRoaXMucGFnZU51bWJlcnMgPiB0aGlzLnZpc2libGVQYWdlcykge1xuICAgICAgaWYgKCh0aGlzLmN1cnJlbnRQYWdlICsgMSkgPj0gdGhpcy5wYWdlTnVtYmVycykge1xuICAgICAgICBzdGFydCAtPSBoYWxmVmlzaWJsZVBhZ2VzO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRQYWdlID49ICh0aGlzLnBhZ2VOdW1iZXJzIC0gaGFsZlZpc2libGVQYWdlcykpIHtcbiAgICAgICAgc3RhcnQgLT0gKHRoaXMucGFnZU51bWJlcnMgLSAodGhpcy5jdXJyZW50UGFnZSArIDEpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoXywgaSkgPT4gaSArIHN0YXJ0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjbGljayBwYWdlIGNoYW5nZVxuICAgKiBAcGFyYW0gZXZlbnQgY2xpY2sgZXZlbnRcbiAgICogQHBhcmFtIG5ld1BhZ2UgdGhlIG5ldyBwYWdlIG9mIHRhYmxlXG4gICAqL1xuICBwcm90ZWN0ZWQgcGFnZUNoYW5nZShldmVudDogRXZlbnQsIG5ld1BhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5wYWdlRXZlbnQuZW1pdChuZXdQYWdlIC0gMSk7IC8vIGVtaXQgbmV3IHBhZ2UgaW5kZXhcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjbGljayBjaGFuZ2VyXG4gICAqIEBwYXJhbSBldmVudCBjbGljayBldmVudFxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIG5ldyBjaGFuZ2VyIHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgY2hhbmdlckNoYW5nZShldmVudDogRXZlbnQsIHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuY2hhbmdlckV2ZW50LmVtaXQodmFsdWUpOyAvLyBlbWl0IG5ldyBjaGFuZ2VyIHZhbHVlXG4gIH1cblxufVxuIiwiPG5hdiBjbGFzcz1cInBhZ2luYXRpb24td3JhcHBlclwiXG4gICAgIFtjbGFzcy5qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXT1cImFsaWdubWVudD09PSdjZW50ZXInXCJcbiAgICAgW2NsYXNzLmp1c3RpZnktY29udGVudC1lbmRdPVwiYWxpZ25tZW50PT09J2VuZCdcIlxuICAgICBbY2xhc3MucGFnaW5hdGlvbi10b3RhbF09XCJ0b3RhbE51bWJlclRleHQuaGFzQ2hpbGROb2RlcygpXCI+XG5cbiAgPHVsICpuZ0lmPVwicGFnZXMubGVuZ3RoXCIgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XG4gICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlIDwgMVwiPlxuICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBbY2xhc3MudGV4dF09XCJ0ZXh0TGlua3NcIiBocmVmPVwiI1wiIChjbGljayk9XCJwYWdlQ2hhbmdlKCRldmVudCwgY3VycmVudFBhZ2UpXCI+XG4gICAgICAgIDxpdC1pY29uICpuZ0lmPVwiIXRleHRMaW5rc1wiIG5hbWU9XCJjaGV2cm9uLWxlZnRcIiBjb2xvcj1cInByaW1hcnlcIj48L2l0LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgICAge3sodGV4dExpbmtzID8gJ2l0LmNvcmUucGFnZScgOiAnaXQuY29yZS5wcmV2aW91cy1wYWdlJykgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZXh0TGlua3NcIj57eydpdC5jb3JlLnByZXZpb3VzJyB8IHRyYW5zbGF0ZX19PC9uZy1jb250YWluZXI+XG4gICAgICA8L2E+XG4gICAgPC9saT5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaW1wbGVNb2RlOyBlbHNlIGRlZmF1bHRWaWV3XCI+XG4gICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj48c3BhbiBjbGFzcz1cInBhZ2UtbGlua1wiIGFyaWEtY3VycmVudD1cInBhZ2VcIj57e2N1cnJlbnRQYWdlICsgMX19PC9zcGFuPjwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj48c3BhbiBjbGFzcz1cInBhZ2UtbGlua1wiPi88L3NwYW4+PC9saT5cbiAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiPjxzcGFuIGNsYXNzPVwicGFnZS1saW5rXCI+e3twYWdlTnVtYmVyc319PC9zcGFuPjwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW0gdmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cIiNcIiBhcmlhLWN1cnJlbnQ9XCJwYWdlXCI+XG4gICAgICAgICAge3snaXQuY29yZS5wYWdlLW9mLXRvdGFsJ3x0cmFuc2xhdGUgOiB7cGFnZTogKGN1cnJlbnRQYWdlICsgMSksIHRvdGFsOiBwYWdlTnVtYmVyc30gfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRWaWV3PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VOdW1iZXJzID4gdmlzaWJsZVBhZ2VzICYmIHBhZ2VzWzBdID49IDJcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmPVwiI1wiIChjbGljayk9XCJwYWdlQ2hhbmdlKCRldmVudCwgMSlcIj4xPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiAqbmdJZj1cInBhZ2VzWzBdID49IDNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2UtbGlua1wiPi4uLjwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGFyaWEtY3VycmVudD1cInBhZ2VcIiAqbmdJZj1cInBhZ2UgPT09IChjdXJyZW50UGFnZSArIDEpOyBlbHNlIGluYWN0aXZlUGFnZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2sgZC1zbS1ub25lXCI+e3snaXQuY29yZS5wYWdlJ3x0cmFuc2xhdGV9fTwvc3Bhbj4ge3twYWdlfX1cbiAgICAgICAgPC9hPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2luYWN0aXZlUGFnZT5cbiAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCIjXCIgKGNsaWNrKT1cInBhZ2VDaGFuZ2UoJGV2ZW50LCBwYWdlKVwiPnt7cGFnZX19PC9hPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9saT5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VOdW1iZXJzID4gdmlzaWJsZVBhZ2VzICYmIHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdIDwgcGFnZU51bWJlcnNcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgKm5nSWY9XCJwYWdlc1twYWdlcy5sZW5ndGggLSAxXSA8IChwYWdlTnVtYmVycyAtIDEpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWxpbmtcIj4uLi48L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cIiNcIiAoY2xpY2spPVwicGFnZUNoYW5nZSgkZXZlbnQsIHBhZ2VOdW1iZXJzKVwiPnt7cGFnZU51bWJlcnN9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPj0gcGFnZU51bWJlcnMgLSAxXCI+XG4gICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtjbGFzcy50ZXh0XT1cInRleHRMaW5rc1wiIGhyZWY9XCIjXCIgKGNsaWNrKT1cInBhZ2VDaGFuZ2UoJGV2ZW50LCBjdXJyZW50UGFnZSArIDIpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgICAge3sodGV4dExpbmtzID8gJ2l0LmNvcmUucGFnZScgOiAnaXQuY29yZS5uZXh0LXBhZ2UnKSB8IHRyYW5zbGF0ZX19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRMaW5rc1wiPnt7J2l0LmNvcmUubmV4dCcgfCB0cmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8aXQtaWNvbiAqbmdJZj1cIiF0ZXh0TGlua3NcIiBuYW1lPVwiY2hldnJvbi1yaWdodFwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaXQtaWNvbj5cbiAgICAgIDwvYT5cbiAgICA8L2xpPlxuICA8L3VsPlxuXG4gIDxpdC1kcm9wZG93biAqbmdJZj1cImN1cnJlbnRDaGFuZ2VyICE9PSB1bmRlZmluZWRcIj5cbiAgICA8c3BhbiBidXR0b24+e3tjdXJyZW50Q2hhbmdlcn19IC8ge3snaXQuY29yZS5wYWdlJyB8IHRyYW5zbGF0ZSB8IGxvd2VyY2FzZX19PC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgbGlzdD5cbiAgICAgIDxpdC1kcm9wZG93bi1pdGVtICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBjaGFuZ2VyVmFsdWVzXCIgaHJlZj1cIiNcIiBleHRlcm5hbExpbms9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VyQ2hhbmdlKCRldmVudCwgdmFsdWUpXCI+XG4gICAgICAgIHt7dmFsdWV9fSAvIHt7J2l0LmNvcmUucGFnZScgfCB0cmFuc2xhdGUgfCBsb3dlcmNhc2V9fVxuICAgICAgPC9pdC1kcm9wZG93bi1pdGVtPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2l0LWRyb3Bkb3duPlxuXG4gIDxpdC1pbnB1dCAqbmdJZj1cInNob3dKdW1wVG9QYWdlXCIgdHlwZT1cIm51bWJlclwiIFttaW5dPVwiMVwiIFttYXhdPVwicGFnZU51bWJlcnNcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIignaXQuY29yZS5nby10bycgfCB0cmFuc2xhdGUpICsgJy4uLidcIiBbZm9ybUNvbnRyb2xdPVwianVtcFRvUGFnZVwiPjwvaXQtaW5wdXQ+XG5cbiAgPHAgW2NsYXNzLmQtbm9uZV09XCIhdG90YWxOdW1iZXJUZXh0Lmhhc0NoaWxkTm9kZXMoKVwiICN0b3RhbE51bWJlclRleHQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3A+XG48L25hdj5cbiJdfQ==
@@ -0,0 +1,176 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Popover } from 'bootstrap-italia';
3
+ import { inputToBoolean } from '../../../utils/coercion';
4
+ import * as i0 from "@angular/core";
5
+ export class ItPopoverDirective {
6
+ /**
7
+ * Define the popover content
8
+ * @param content the popover content
9
+ */
10
+ set content(content) {
11
+ this.element.setAttribute('data-bs-content', content);
12
+ }
13
+ /**
14
+ * Define the popover title
15
+ * @param title the popover title
16
+ */
17
+ set popoverTitle(title) {
18
+ if (title) {
19
+ this.element.setAttribute('title', title);
20
+ this.element.setAttribute('data-bs-original-title', title);
21
+ }
22
+ }
23
+ /**
24
+ * Define the popover placement
25
+ * @param placement
26
+ */
27
+ set popoverPlacement(placement) {
28
+ this.element.setAttribute('data-bs-placement', placement);
29
+ }
30
+ /**
31
+ * Appends the popover to a specific element.
32
+ * @param container
33
+ */
34
+ set popoverContainer(container) {
35
+ if (container) {
36
+ this.element.setAttribute('data-container', container);
37
+ }
38
+ }
39
+ /**
40
+ * Indicates whether the title contains html
41
+ * @param html true if contain html
42
+ */
43
+ set popoverHtml(html) {
44
+ this.element.setAttribute('data-bs-html', html ? 'true' : 'false');
45
+ }
46
+ /**
47
+ * How popover is triggered
48
+ * - 'hover': To open the Popover on hover of the mouse over the element
49
+ * - 'focus': To ignore popovers on the user's next click of an element other than the toggle element.
50
+ * @param trigger
51
+ */
52
+ set popoverTrigger(trigger) {
53
+ if (trigger) {
54
+ this.element.setAttribute('data-bs-trigger', trigger);
55
+ }
56
+ }
57
+ constructor(_elementRef) {
58
+ this._elementRef = _elementRef;
59
+ /**
60
+ * This event fires immediately when the show method is called.
61
+ */
62
+ this.showEvent = new EventEmitter();
63
+ /**
64
+ * This event is triggered when the tooltip has been made visible to the user (it will wait for the CSS transitions to complete).
65
+ */
66
+ this.shownEvent = new EventEmitter();
67
+ /**
68
+ * This event fires immediately when the hide method is called.
69
+ */
70
+ this.hideEvent = new EventEmitter();
71
+ /**
72
+ * This event is raised when the tooltip has finished being hidden from the user (it will wait for the CSS transitions to complete).
73
+ */
74
+ this.hiddenEvent = new EventEmitter();
75
+ /**
76
+ * This event fires after the show event when the tooltip template has been added to the DOM.
77
+ */
78
+ this.insertedEvent = new EventEmitter();
79
+ this.element = this._elementRef.nativeElement;
80
+ }
81
+ ngAfterViewInit() {
82
+ this.element.setAttribute('data-bs-toggle', 'popover');
83
+ this.popover = Popover.getOrCreateInstance(this.element);
84
+ this.element.addEventListener('show.bs.popover', event => this.showEvent.emit(event));
85
+ this.element.addEventListener('shown.bs.popover', event => this.shownEvent.emit(event));
86
+ this.element.addEventListener('hide.bs.popover', event => this.hideEvent.emit(event));
87
+ this.element.addEventListener('hidden.bs.popover', event => this.hiddenEvent.emit(event));
88
+ this.element.addEventListener('inserted.bs.popover', event => this.insertedEvent.emit(event));
89
+ }
90
+ ngOnDestroy() {
91
+ this.dispose();
92
+ }
93
+ /**
94
+ * Shows the popover of an item.
95
+ */
96
+ show() {
97
+ this.popover?.show();
98
+ }
99
+ /**
100
+ * Hide the popover of an element.
101
+ */
102
+ hide() {
103
+ this.popover?.hide();
104
+ }
105
+ /**
106
+ * Activate / Deactivate the popover of an element
107
+ */
108
+ toggle() {
109
+ this.popover?.toggle();
110
+ }
111
+ /**
112
+ * Hides and destroys the popover of an element.
113
+ */
114
+ dispose() {
115
+ this.popover?.dispose();
116
+ }
117
+ /**
118
+ * Gives the popover of an element a chance to be shown.
119
+ */
120
+ enable() {
121
+ this.popover?.enable();
122
+ }
123
+ /**
124
+ * Removes the ability to show the popover of an element.
125
+ */
126
+ disable() {
127
+ this.popover?.disable();
128
+ }
129
+ /**
130
+ * Toggles the possibility that the popover of an element is shown or hidden.
131
+ */
132
+ toggleEnabled() {
133
+ this.popover?.disable();
134
+ }
135
+ /**
136
+ * Updates the position of an element's popover.
137
+ */
138
+ update() {
139
+ this.popover?.disable();
140
+ }
141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItPopoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
142
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.7", type: ItPopoverDirective, isStandalone: true, selector: "[itPopover]", inputs: { content: ["itPopover", "content"], popoverTitle: "popoverTitle", popoverPlacement: "popoverPlacement", popoverContainer: "popoverContainer", popoverHtml: ["popoverHtml", "popoverHtml", inputToBoolean], popoverTrigger: "popoverTrigger" }, outputs: { showEvent: "showEvent", shownEvent: "shownEvent", hideEvent: "hideEvent", hiddenEvent: "hiddenEvent", insertedEvent: "insertedEvent" }, exportAs: ["itPopover"], ngImport: i0 }); }
143
+ }
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItPopoverDirective, decorators: [{
145
+ type: Directive,
146
+ args: [{
147
+ standalone: true,
148
+ selector: '[itPopover]',
149
+ exportAs: 'itPopover'
150
+ }]
151
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { content: [{
152
+ type: Input,
153
+ args: ['itPopover']
154
+ }], popoverTitle: [{
155
+ type: Input
156
+ }], popoverPlacement: [{
157
+ type: Input
158
+ }], popoverContainer: [{
159
+ type: Input
160
+ }], popoverHtml: [{
161
+ type: Input,
162
+ args: [{ transform: inputToBoolean }]
163
+ }], popoverTrigger: [{
164
+ type: Input
165
+ }], showEvent: [{
166
+ type: Output
167
+ }], shownEvent: [{
168
+ type: Output
169
+ }], hideEvent: [{
170
+ type: Output
171
+ }], hiddenEvent: [{
172
+ type: Output
173
+ }], insertedEvent: [{
174
+ type: Output
175
+ }] } });
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvcG9wb3Zlci9wb3BvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU96RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCOzs7T0FHRztJQUNILElBQXdCLE9BQU8sQ0FBQyxPQUFlO1FBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFlBQVksQ0FBQyxLQUF5QjtRQUNqRCxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFHRDs7O09BR0c7SUFDSCxJQUFhLGdCQUFnQixDQUFDLFNBQTJCO1FBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLGdCQUFnQixDQUFDLFNBQXNDO1FBQ2xFLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMs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QU07UUFDWCxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLGFBQWE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQW5LVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixrUEE0Q1QsY0FBYzs7MkZBNUN2QixrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztpQkFDdEI7aUdBT3lCLE9BQU87c0JBQTlCLEtBQUs7dUJBQUMsV0FBVztnQkFRTCxZQUFZO3NCQUF4QixLQUFLO2dCQVlPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFRTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBVW9DLFdBQVc7c0JBQXBELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQVV2QixjQUFjO3NCQUExQixLQUFLO2dCQVNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxTQUFTO3NCQUFsQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVsZW1lbnRQbGFjZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NvcmUnO1xuaW1wb3J0IHsgUG9wb3ZlciB9IGZyb20gJ2Jvb3RzdHJhcC1pdGFsaWEnO1xuaW1wb3J0IHsgaW5wdXRUb0Jvb2xlYW4gfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb2VyY2lvbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tpdFBvcG92ZXJdJyxcbiAgZXhwb3J0QXM6ICdpdFBvcG92ZXInXG59KVxuZXhwb3J0IGNsYXNzIEl0UG9wb3ZlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgcG9wb3ZlciBjb250ZW50XG4gICAqIEBwYXJhbSBjb250ZW50IHRoZSBwb3BvdmVyIGNvbnRlbnRcbiAgICovXG4gIEBJbnB1dCgnaXRQb3BvdmVyJykgc2V0IGNvbnRlbnQoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1icy1jb250ZW50JywgY29udGVudCk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBwb3BvdmVyIHRpdGxlXG4gICAqIEBwYXJhbSB0aXRsZSB0aGUgcG9wb3ZlciB0aXRsZVxuICAgKi9cbiAgQElucHV0KCkgc2V0IHBvcG92ZXJUaXRsZSh0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRpdGxlKSB7XG4gICAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsIHRpdGxlKTtcbiAgICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtb3JpZ2luYWwtdGl0bGUnLCB0aXRsZSk7XG4gICAgfVxuICB9XG5cblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBwb3BvdmVyIHBsYWNlbWVudFxuICAgKiBAcGFyYW0gcGxhY2VtZW50XG4gICAqL1xuICBASW5wdXQoKSBzZXQgcG9wb3ZlclBsYWNlbWVudChwbGFjZW1lbnQ6IEVsZW1lbnRQbGFjZW1lbnQpIHtcbiAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXBsYWNlbWVudCcsIHBsYWNlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kcyB0aGUgcG9wb3ZlciB0byBhIHNwZWNpZmljIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBjb250YWluZXJcbiAgICovXG4gIEBJbnB1dCgpIHNldCBwb3BvdmVyQ29udGFpbmVyKGNvbnRhaW5lcjogJ2JvZHknIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1jb250YWluZXInLCBjb250YWluZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGl0bGUgY29udGFpbnMgaHRtbFxuICAgKiBAcGFyYW0gaHRtbCB0cnVlIGlmIGNvbnRhaW4gaHRtbFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBzZXQgcG9wb3Zlckh0bWwoaHRtbDogYm9vbGVhbikge1xuICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtaHRtbCcsIGh0bWwgPyAndHJ1ZScgOiAnZmFsc2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIb3cgcG9wb3ZlciBpcyB0cmlnZ2VyZWRcbiAgICogLSAnaG92ZXInOiBUbyBvcGVuIHRoZSBQb3BvdmVyIG9uIGhvdmVyIG9mIHRoZSBtb3VzZSBvdmVyIHRoZSBlbGVtZW50XG4gICAqIC0gJ2ZvY3VzJzogVG8gaWdub3JlIHBvcG92ZXJzIG9uIHRoZSB1c2VyJ3MgbmV4dCBjbGljayBvZiBhbiBlbGVtZW50IG90aGVyIHRoYW4gdGhlIHRvZ2dsZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gdHJpZ2dlclxuICAgKi9cbiAgQElucHV0KCkgc2V0IHBvcG92ZXJUcmlnZ2VyKHRyaWdnZXI6ICdjbGljaycgfCAnaG92ZXInIHwgJ2ZvY3VzJyB8ICdtYW51YWwnIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtdHJpZ2dlcicsIHRyaWdnZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGZpcmVzIGltbWVkaWF0ZWx5IHdoZW4gdGhlIHNob3cgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBzaG93RXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHRvb2x0aXAgaGFzIGJlZW4gbWFkZSB2aXNpYmxlIHRvIHRoZSB1c2VyIChpdCB3aWxsIHdhaXQgZm9yIHRoZSBDU1MgdHJhbnNpdGlvbnMgdG8gY29tcGxldGUpLlxuICAgKi9cbiAgQE91dHB1dCgpIHNob3duRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZmlyZXMgaW1tZWRpYXRlbHkgd2hlbiB0aGUgaGlkZSBtZXRob2QgaXMgY2FsbGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIGhpZGVFdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyByYWlzZWQgd2hlbiB0aGUgdG9vbHRpcCBoYXMgZmluaXNoZWQgYmVpbmcgaGlkZGVuIGZyb20gdGhlIHVzZXIgKGl0IHdpbGwgd2FpdCBmb3IgdGhlIENTUyB0cmFuc2l0aW9ucyB0byBjb21wbGV0ZSkuXG4gICAqL1xuICBAT3V0cHV0KCkgaGlkZGVuRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZmlyZXMgYWZ0ZXIgdGhlIHNob3cgZXZlbnQgd2hlbiB0aGUgdG9vbHRpcCB0ZW1wbGF0ZSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRE9NLlxuICAgKi9cbiAgQE91dHB1dCgpIGluc2VydGVkRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBwb3BvdmVyPzogUG9wb3ZlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICAgIHRoaXMuZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLXRvZ2dsZScsICdwb3BvdmVyJyk7XG4gICAgdGhpcy5wb3BvdmVyID0gUG9wb3Zlci5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMuZWxlbWVudCk7XG5cbiAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2hvdy5icy5wb3BvdmVyJywgZXZlbnQgPT4gdGhpcy5zaG93RXZlbnQuZW1pdChldmVudCkpO1xuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzaG93bi5icy5wb3BvdmVyJywgZXZlbnQgPT4gdGhpcy5zaG93bkV2ZW50LmVtaXQoZXZlbnQpKTtcbiAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaGlkZS5icy5wb3BvdmVyJywgZXZlbnQgPT4gdGhpcy5oaWRlRXZlbnQuZW1pdChldmVudCkpO1xuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdoaWRkZW4uYnMucG9wb3ZlcicsIGV2ZW50ID0+IHRoaXMuaGlkZGVuRXZlbnQuZW1pdChldmVudCkpO1xuICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnNlcnRlZC5icy5wb3BvdmVyJywgZXZlbnQgPT4gdGhpcy5pbnNlcnRlZEV2ZW50LmVtaXQoZXZlbnQpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIHRoZSBwb3BvdmVyIG9mIGFuIGl0ZW0uXG4gICAqL1xuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXI/LnNob3coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlIHRoZSBwb3BvdmVyIG9mIGFuIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXI/LmhpZGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZSAvIERlYWN0aXZhdGUgdGhlIHBvcG92ZXIgb2YgYW4gZWxlbWVudFxuICAgKi9cbiAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXI/LnRvZ2dsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIGFuZCBkZXN0cm95cyB0aGUgcG9wb3ZlciBvZiBhbiBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyPy5kaXNwb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZXMgdGhlIHBvcG92ZXIgb2YgYW4gZWxlbWVudCBhIGNoYW5jZSB0byBiZSBzaG93bi5cbiAgICovXG4gIHB1YmxpYyBlbmFibGUoKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyPy5lbmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBhYmlsaXR5IHRvIHNob3cgdGhlIHBvcG92ZXIgb2YgYW4gZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMucG9wb3Zlcj8uZGlzYWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHBvcG92ZXIgb2YgYW4gZWxlbWVudCBpcyBzaG93biBvciBoaWRkZW4uXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlRW5hYmxlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXI/LmRpc2FibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50J3MgcG9wb3Zlci5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyPy5kaXNhYmxlKCk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,34 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { NgIf } from '@angular/common';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { inputToBoolean } from '../../../utils/coercion';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ export class ItProgressBarComponent {
8
+ /**
9
+ * Return the background color
10
+ */
11
+ get bgColor() {
12
+ if (!this.color) {
13
+ return '';
14
+ }
15
+ return ` bg-${this.color}`;
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.7", type: ItProgressBarComponent, isStandalone: true, selector: "it-progress-bar[value]", inputs: { value: "value", showLabel: ["showLabel", "showLabel", inputToBoolean], indeterminate: ["indeterminate", "indeterminate", inputToBoolean], 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]=\"indeterminate\">\n\n <div *ngIf=\"indeterminate; 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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItProgressBarComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ standalone: true, selector: 'it-progress-bar[value]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIf, TranslateModule], 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]=\"indeterminate\">\n\n <div *ngIf=\"indeterminate; 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" }]
23
+ }], propDecorators: { value: [{
24
+ type: Input
25
+ }], showLabel: [{
26
+ type: Input,
27
+ args: [{ transform: inputToBoolean }]
28
+ }], indeterminate: [{
29
+ type: Input,
30
+ args: [{ transform: inputToBoolean }]
31
+ }], color: [{
32
+ type: Input
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFTekQsTUFBTSxPQUFPLHNCQUFzQjtJQXdCakM7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxPQUFPLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBakNVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDBIQVdiLGNBQWMscURBTWQsY0FBYyw2Q0M5QnBDLHVyQkFlQSw0Q0RKWSxJQUFJLDRGQUFFLGVBQWU7OzJGQUVwQixzQkFBc0I7a0JBUGxDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLHdCQUF3QixtQkFFakIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUM7OEJBT3ZCLEtBQUs7c0JBQWIsS0FBSztnQkFNZ0MsU0FBUztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7Z0JBTUUsYUFBYTtzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUU7Z0JBSzNCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9ncmVzc0JhckNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9jb3JlJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpbnB1dFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtcHJvZ3Jlc3MtYmFyW3ZhbHVlXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nSWYsIFRyYW5zbGF0ZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgSXRQcm9ncmVzc0JhckNvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9ncmVzcyBiYXIgdmFsdWUgWzAsIDEwMF1cbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBwcm9ncmVzcyBsYWJlbFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBzaG93TGFiZWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBwcm9ncmVzcyBhcyBpbmRldGVybWluYXRlXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvZ3Jlc3MgYmFyIGNvbG9yXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcjogUHJvZ3Jlc3NCYXJDb2xvciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4gICAqL1xuICBnZXQgYmdDb2xvcigpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jb2xvcikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBgIGJnLSR7dGhpcy5jb2xvcn1gO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXItd3JhcHBlclwiPlxuICA8ZGl2ICpuZ0lmPVwic2hvd0xhYmVsXCIgY2xhc3M9XCJwcm9ncmVzcy1iYXItbGFiZWxcIj5cbiAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmNvcmUucHJvZ3Jlc3MnfHRyYW5zbGF0ZX19IDwvc3Bhbj57e3ZhbHVlfX0lXG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIlxuICAgICAgIFtjbGFzcy5wcm9ncmVzcy1jb2xvcl09XCIhIWNvbG9yXCJcbiAgICAgICBbY2xhc3MucHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaW5kZXRlcm1pbmF0ZTsgZWxzZSBkZXRlcm1pbmF0ZVwiIGNsYXNzPVwicHJvZ3Jlc3MtYmFye3tiZ0NvbG9yfX1cIiByb2xlPVwicHJvZ3Jlc3NiYXJcIj48L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI2RldGVybWluYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhcnt7YmdDb2xvcn19XCIgcm9sZT1cInByb2dyZXNzYmFyXCIgW3N0eWxlLndpZHRoLiVdPVwidmFsdWVcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cInZhbHVlXCIgYXJpYS12YWx1ZW1pbj1cIjBcIiBhcmlhLXZhbHVlbWF4PVwiMTAwXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { ItProgressBarComponent } from '../progress-bar/progress-bar.component';
3
+ import { NgIf } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ export class ItProgressButtonComponent {
6
+ get isProgress() {
7
+ return typeof this.progress === 'number' || !!this.progress;
8
+ }
9
+ get progressValue() {
10
+ return typeof this.progress === 'number' ? this.progress : 0;
11
+ }
12
+ get isIndeterminate() {
13
+ return typeof this.progress !== 'number' && !!this.progress;
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItProgressButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItProgressButtonComponent, isStandalone: true, 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", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ItProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItProgressButtonComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ standalone: true, selector: 'button[itButton][progress]', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIf, ItProgressBarComponent], 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" }]
21
+ }], propDecorators: { progress: [{
22
+ type: Input
23
+ }], progressColor: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9wcm9ncmVzcy1idXR0b24vcHJvZ3Jlc3MtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9wcm9ncmVzcy1idXR0b24vcHJvZ3Jlc3MtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVdkMsTUFBTSxPQUFPLHlCQUF5QjtJQWdCcEMsSUFBSSxVQUFVO1FBQ1osT0FBTyxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM5RCxDQUFDOzhHQTFCVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qix3SkNidEMsdU9BTUEsNENES1ksSUFBSSw2RkFBRSxzQkFBc0I7OzJGQUUzQix5QkFBeUI7a0JBUnJDLFNBQVM7aUNBQ0ksSUFBSSxZQUVOLDRCQUE0QixtQkFFckIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQzs4QkFXOUIsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2dyZXNzQmFyQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NvcmUnO1xuaW1wb3J0IHsgSXRQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdidXR0b25baXRCdXR0b25dW3Byb2dyZXNzXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nSWYsIEl0UHJvZ3Jlc3NCYXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEl0UHJvZ3Jlc3NCdXR0b25Db21wb25lbnQge1xuXG4gIC8qKlxuICAgKiBCZWhhdmlvciBvZiB0aGUgcHJvZ3Jlc3MgYmFyXG4gICAqIC0gPGI+dHJ1ZTwvYj46IFNob3cgaW5kZXRlcm1pbmF0ZSBwcm9ncmVzcyBiYXJcbiAgICogLSA8Yj5mYWxzZTwvYj4gb3IgPGI+dW5kZWZpbmVkPC9iPjogSGlkZSBwcm9ncmVzcyBiYXJcbiAgICogLSA8Yj5udW1iZXI8L2I+IFswLCAxMDBdOiBBc3NpZ24gYSBzcGVjaWZpYyB2YWx1ZSB0byB0aGUgcHJvZ3Jlc3MgYmFyXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgcHJvZ3Jlc3M6IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9ncmVzcyBiYXIgY29sb3JcbiAgICovXG4gIEBJbnB1dCgpIHByb2dyZXNzQ29sb3I6IFByb2dyZXNzQmFyQ29sb3IgfCB1bmRlZmluZWQ7XG5cbiAgZ2V0IGlzUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnByb2dyZXNzID09PSAnbnVtYmVyJyB8fCAhIXRoaXMucHJvZ3Jlc3M7XG4gIH1cblxuICBnZXQgcHJvZ3Jlc3NWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wcm9ncmVzcyA9PT0gJ251bWJlcicgPyB0aGlzLnByb2dyZXNzIDogMDtcbiAgfVxuXG4gIGdldCBpc0luZGV0ZXJtaW5hdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnByb2dyZXNzICE9PSAnbnVtYmVyJyAmJiAhIXRoaXMucHJvZ3Jlc3M7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48aXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiaXNQcm9ncmVzc1wiXG4gICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJwcm9ncmVzc1ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInByb2dyZXNzQ29sb3JcIj48L2l0LXByb2dyZXNzLWJhcj5cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { NgIf } from '@angular/common';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { inputToBoolean } from '../../../utils/coercion';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ngx-translate/core";
7
+ export class ItSpinnerComponent {
8
+ constructor() {
9
+ /**
10
+ * The spinner is active
11
+ * @default true
12
+ */
13
+ this.active = true;
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.7", type: ItSpinnerComponent, isStandalone: true, selector: "it-spinner", inputs: { active: ["active", "active", inputToBoolean], small: ["small", "small", inputToBoolean], double: ["double", "double", inputToBoolean] }, ngImport: i0, template: "<div class=\"progress-spinner\"\n [class.progress-spinner-double]=\"double\"\n [class.progress-spinner-active]=\"active\"\n [class.size-sm]=\"small\">\n <div *ngIf=\"double\" class=\"progress-spinner-inner\"></div>\n <div *ngIf=\"double\" class=\"progress-spinner-inner\"></div>\n <span class=\"visually-hidden\">{{'it.core.loading'|translate}}...</span>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItSpinnerComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ standalone: true, selector: 'it-spinner', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIf, TranslateModule], template: "<div class=\"progress-spinner\"\n [class.progress-spinner-double]=\"double\"\n [class.progress-spinner-active]=\"active\"\n [class.size-sm]=\"small\">\n <div *ngIf=\"double\" class=\"progress-spinner-inner\"></div>\n <div *ngIf=\"double\" class=\"progress-spinner-inner\"></div>\n <span class=\"visually-hidden\">{{'it.core.loading'|translate}}...</span>\n</div>\n" }]
21
+ }], propDecorators: { active: [{
22
+ type: Input,
23
+ args: [{ transform: inputToBoolean }]
24
+ }], small: [{
25
+ type: Input,
26
+ args: [{ transform: inputToBoolean }]
27
+ }], double: [{
28
+ type: Input,
29
+ args: [{ transform: inputToBoolean }]
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVN6RCxNQUFNLE9BQU8sa0JBQWtCO0lBUC9CO1FBU0U7OztXQUdHO1FBQ21DLFdBQU0sR0FBWSxJQUFJLENBQUM7S0FjOUQ7OEdBcEJZLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHFGQU1ULGNBQWMsNkJBTWQsY0FBYyxnQ0FNZCxjQUFjLDZCQzlCcEMsNlhBUUEsNENERVksSUFBSSw0RkFBRSxlQUFlOzsyRkFFcEIsa0JBQWtCO2tCQVA5QixTQUFTO2lDQUNJLElBQUksWUFDTixZQUFZLG1CQUVMLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDOzhCQVFNLE1BQU07c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQU1FLEtBQUs7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQU1FLE1BQU07c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpbnB1dFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtc3Bpbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGlubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtOZ0lmLCBUcmFuc2xhdGVNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEl0U3Bpbm5lckNvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFRoZSBzcGlubmVyIGlzIGFjdGl2ZVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIGFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNob3cgYSBzbWFsbCBzcGlubmVyXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIHNtYWxsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdyB0aGUgZG91YmxlIGFuaW1hdGlvblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBkb3VibGU/OiBib29sZWFuO1xuXG59XG4iLCI8ZGl2IGNsYXNzPVwicHJvZ3Jlc3Mtc3Bpbm5lclwiXG4gICAgIFtjbGFzcy5wcm9ncmVzcy1zcGlubmVyLWRvdWJsZV09XCJkb3VibGVcIlxuICAgICBbY2xhc3MucHJvZ3Jlc3Mtc3Bpbm5lci1hY3RpdmVdPVwiYWN0aXZlXCJcbiAgICAgW2NsYXNzLnNpemUtc21dPVwic21hbGxcIj5cbiAgPGRpdiAqbmdJZj1cImRvdWJsZVwiIGNsYXNzPVwicHJvZ3Jlc3Mtc3Bpbm5lci1pbm5lclwiPjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZG91YmxlXCIgY2xhc3M9XCJwcm9ncmVzcy1zcGlubmVyLWlubmVyXCI+PC9kaXY+XG4gIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snaXQuY29yZS5sb2FkaW5nJ3x0cmFuc2xhdGV9fS4uLjwvc3Bhbj5cbjwvZGl2PlxuIl19