design-angular-kit 1.0.0-0 → 1.0.0-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 (217) hide show
  1. package/README.md +152 -18
  2. package/assets/i18n/it.json +81 -0
  3. package/esm2020/lib/abstracts/abstract-form-component.mjs +165 -0
  4. package/esm2020/lib/abstracts/abstract.component.mjs +20 -0
  5. package/esm2020/lib/components/core/accordion/accordion.component.mjs +20 -0
  6. package/esm2020/lib/components/core/alert/alert.component.mjs +29 -0
  7. package/esm2020/lib/components/core/badge/badge.directive.mjs +34 -0
  8. package/esm2020/lib/components/core/button/button.directive.mjs +78 -0
  9. package/esm2020/lib/components/core/callout/callout.component.mjs +59 -0
  10. package/esm2020/lib/components/core/card/card.component.mjs +58 -0
  11. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +66 -0
  12. package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +14 -0
  13. package/esm2020/lib/components/core/chip/chip.component.mjs +89 -0
  14. package/esm2020/lib/components/core/collapse/collapse.component.mjs +96 -0
  15. package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
  16. package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
  17. package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +59 -0
  18. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +60 -0
  19. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +71 -0
  20. package/esm2020/lib/components/core/forward/forward.directive.mjs +51 -0
  21. package/esm2020/lib/components/core/link/link.component.mjs +39 -0
  22. package/esm2020/lib/components/core/list/list/list.component.mjs +13 -0
  23. package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +36 -0
  24. package/esm2020/lib/components/core/modal/modal.component.mjs +98 -0
  25. package/esm2020/lib/components/core/notifications/notifications.component.mjs +66 -0
  26. package/esm2020/lib/components/core/pagination/pagination.component.mjs +51 -0
  27. package/esm2020/lib/components/core/popover/popover.directive.mjs +176 -0
  28. package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +34 -0
  29. package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +27 -0
  30. package/esm2020/lib/components/core/spinner/spinner.component.mjs +35 -0
  31. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +33 -0
  32. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +36 -0
  33. package/esm2020/lib/components/core/table/table.component.mjs +57 -0
  34. package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +140 -0
  35. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +40 -0
  36. package/esm2020/lib/components/form/input/input.component.mjs +159 -0
  37. package/esm2020/lib/components/form/password-input/password-input.component.mjs +112 -0
  38. package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +53 -0
  39. package/esm2020/lib/components/form/select/select.component.mjs +62 -0
  40. package/esm2020/lib/components/form/textarea/textarea.component.mjs +46 -0
  41. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +134 -0
  42. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +99 -0
  43. package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +69 -0
  44. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +39 -0
  45. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +45 -0
  46. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +23 -0
  47. package/esm2020/lib/components/navigation/header/header.component.mjs +61 -0
  48. package/esm2020/lib/components/utils/icon/icon.component.mjs +54 -0
  49. package/esm2020/lib/components/utils/not-found-page/not-found-page.component.mjs +13 -0
  50. package/esm2020/lib/design-angular-kit.module.mjs +32 -132
  51. package/esm2020/lib/interfaces/core.mjs +16 -0
  52. package/esm2020/lib/interfaces/form.mjs +2 -0
  53. package/esm2020/lib/interfaces/icon.mjs +2 -0
  54. package/esm2020/lib/modules/components.module.mjs +241 -0
  55. package/esm2020/lib/services/notifications/notifications.service.mjs +122 -0
  56. package/esm2020/lib/utils/boolean-input.mjs +15 -0
  57. package/esm2020/lib/utils/file-utils.mjs +65 -0
  58. package/esm2020/lib/utils/regex.mjs +26 -0
  59. package/esm2020/lib/validators/it-validators.mjs +131 -0
  60. package/esm2020/public_api.mjs +60 -36
  61. package/fesm2015/design-angular-kit.mjs +2750 -2660
  62. package/fesm2015/design-angular-kit.mjs.map +1 -1
  63. package/fesm2020/design-angular-kit.mjs +2726 -2655
  64. package/fesm2020/design-angular-kit.mjs.map +1 -1
  65. package/lib/abstracts/abstract-form-component.d.ts +84 -0
  66. package/lib/abstracts/abstract.component.d.ts +14 -0
  67. package/lib/components/core/accordion/accordion.component.d.ts +16 -0
  68. package/lib/components/core/alert/alert.component.d.ts +17 -0
  69. package/lib/components/core/badge/badge.directive.d.ts +16 -0
  70. package/lib/components/core/button/button.directive.d.ts +38 -0
  71. package/lib/components/core/callout/callout.component.d.ts +36 -0
  72. package/lib/components/core/card/card.component.d.ts +41 -0
  73. package/lib/components/core/carousel/carousel/carousel.component.d.ts +46 -0
  74. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +10 -0
  75. package/lib/components/core/chip/chip.component.d.ts +62 -0
  76. package/lib/components/core/collapse/collapse.component.d.ts +59 -0
  77. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +12 -0
  78. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +5 -0
  79. package/lib/components/core/dimmer/dimmer.component.d.ts +24 -0
  80. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +43 -0
  81. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +44 -0
  82. package/lib/components/core/forward/forward.directive.d.ts +14 -0
  83. package/lib/components/core/link/link.component.d.ts +34 -0
  84. package/lib/components/core/list/list/list.component.d.ts +10 -0
  85. package/lib/components/core/list/list-item/list-item.component.d.ts +24 -0
  86. package/lib/components/core/modal/modal.component.d.ts +59 -0
  87. package/lib/components/core/notifications/notifications.component.d.ts +30 -0
  88. package/lib/components/core/pagination/pagination.component.d.ts +31 -0
  89. package/lib/components/core/popover/popover.directive.d.ts +97 -0
  90. package/lib/components/core/progress-bar/progress-bar.component.d.ts +28 -0
  91. package/lib/components/core/progress-button/progress-button.component.d.ts +22 -0
  92. package/lib/components/core/spinner/spinner.component.d.ts +21 -0
  93. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +28 -0
  94. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +34 -0
  95. package/lib/components/core/table/table.component.d.ts +54 -0
  96. package/lib/components/core/tooltip/tooltip.directive.d.ts +80 -0
  97. package/lib/components/form/checkbox/checkbox.component.d.ts +30 -0
  98. package/lib/components/form/input/input.component.d.ts +66 -0
  99. package/lib/components/form/password-input/password-input.component.d.ts +54 -0
  100. package/lib/components/form/radio-button/radio-button.component.d.ts +29 -0
  101. package/lib/components/form/select/select.component.d.ts +30 -0
  102. package/lib/components/form/textarea/textarea.component.d.ts +24 -0
  103. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +53 -0
  104. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +57 -0
  105. package/lib/components/navigation/back-button/back-button.component.d.ts +47 -0
  106. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +27 -0
  107. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +30 -0
  108. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +22 -0
  109. package/lib/components/navigation/header/header.component.d.ts +28 -0
  110. package/lib/components/utils/icon/icon.component.d.ts +40 -0
  111. package/lib/components/utils/not-found-page/not-found-page.component.d.ts +5 -0
  112. package/lib/design-angular-kit.module.d.ts +4 -24
  113. package/lib/interfaces/core.d.ts +36 -0
  114. package/lib/interfaces/form.d.ts +43 -0
  115. package/lib/interfaces/icon.d.ts +3 -0
  116. package/lib/modules/components.module.d.ts +57 -0
  117. package/lib/services/notifications/notifications.service.d.ts +63 -0
  118. package/lib/utils/boolean-input.d.ts +11 -0
  119. package/lib/utils/file-utils.d.ts +27 -0
  120. package/lib/utils/regex.d.ts +25 -0
  121. package/lib/validators/it-validators.d.ts +58 -0
  122. package/package.json +20 -12
  123. package/public_api.d.ts +53 -35
  124. package/esm2020/lib/badge/badge.directive.mjs +0 -83
  125. package/esm2020/lib/breadcrumb/breadcrumb-item.component.mjs +0 -66
  126. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -89
  127. package/esm2020/lib/button/button.directive.mjs +0 -185
  128. package/esm2020/lib/button/button.module.mjs +0 -18
  129. package/esm2020/lib/checkbox/checkbox.component.mjs +0 -138
  130. package/esm2020/lib/collapse/collapse-group.component.mjs +0 -57
  131. package/esm2020/lib/collapse/collapse-item.component.mjs +0 -79
  132. package/esm2020/lib/collapse/collapse.config.mjs +0 -12
  133. package/esm2020/lib/collapse/collapse.directive.mjs +0 -55
  134. package/esm2020/lib/collapse/collapse.module.mjs +0 -22
  135. package/esm2020/lib/dropdown/dropdown-divider.component.mjs +0 -11
  136. package/esm2020/lib/dropdown/dropdown-item.component.mjs +0 -97
  137. package/esm2020/lib/dropdown/dropdown.component.mjs +0 -143
  138. package/esm2020/lib/dropdown/dropdown.config.mjs +0 -12
  139. package/esm2020/lib/dropdown/dropdown.directive.mjs +0 -156
  140. package/esm2020/lib/dropdown/dropdown.module.mjs +0 -25
  141. package/esm2020/lib/enums/icons.enum.mjs +0 -27
  142. package/esm2020/lib/form-input/form-input-password.utils.mjs +0 -154
  143. package/esm2020/lib/form-input/form-input.component.mjs +0 -495
  144. package/esm2020/lib/form-input/it-prefix.directive.mjs +0 -13
  145. package/esm2020/lib/form-input/it-suffix.directive.mjs +0 -13
  146. package/esm2020/lib/form-input/it-text-prefix.directive.mjs +0 -13
  147. package/esm2020/lib/form-input/it-text-suffix.directive.mjs +0 -13
  148. package/esm2020/lib/form-input/mark-matching-text.pipe.mjs +0 -36
  149. package/esm2020/lib/icon/icon.component.mjs +0 -87
  150. package/esm2020/lib/icon/icon.module.mjs +0 -18
  151. package/esm2020/lib/models/Alignment.mjs +0 -15
  152. package/esm2020/lib/models/ButtonSize.mjs +0 -15
  153. package/esm2020/lib/models/InputType.mjs +0 -44
  154. package/esm2020/lib/models/ThemeColor.mjs +0 -30
  155. package/esm2020/lib/popover/popover.config.mjs +0 -17
  156. package/esm2020/lib/popover/popover.directive.mjs +0 -33
  157. package/esm2020/lib/popover/popover.module.mjs +0 -19
  158. package/esm2020/lib/progress-bar/progress-bar.component.mjs +0 -98
  159. package/esm2020/lib/radio/radio.component.mjs +0 -287
  160. package/esm2020/lib/radio/unique-selection-dispatcher.mjs +0 -55
  161. package/esm2020/lib/tabs/tab-group.component.mjs +0 -177
  162. package/esm2020/lib/tabs/tab.component.mjs +0 -73
  163. package/esm2020/lib/tabs/tabs.module.mjs +0 -20
  164. package/esm2020/lib/toggle/toggle.component.mjs +0 -86
  165. package/esm2020/lib/tooltip/tooltip.config.mjs +0 -17
  166. package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -43
  167. package/esm2020/lib/tooltip/tooltip.module.mjs +0 -19
  168. package/esm2020/lib/util/focus-mouse.directive.mjs +0 -32
  169. package/esm2020/lib/util/util.mjs +0 -12
  170. package/esm2020/lib/util/utils.module.mjs +0 -16
  171. package/lib/badge/badge.directive.d.ts +0 -33
  172. package/lib/breadcrumb/breadcrumb-item.component.d.ts +0 -33
  173. package/lib/breadcrumb/breadcrumb.component.d.ts +0 -33
  174. package/lib/button/button.directive.d.ts +0 -72
  175. package/lib/button/button.module.d.ts +0 -8
  176. package/lib/checkbox/checkbox.component.d.ts +0 -61
  177. package/lib/collapse/collapse-group.component.d.ts +0 -16
  178. package/lib/collapse/collapse-item.component.d.ts +0 -46
  179. package/lib/collapse/collapse.config.d.ts +0 -6
  180. package/lib/collapse/collapse.directive.d.ts +0 -25
  181. package/lib/collapse/collapse.module.d.ts +0 -12
  182. package/lib/dropdown/dropdown-divider.component.d.ts +0 -5
  183. package/lib/dropdown/dropdown-item.component.d.ts +0 -56
  184. package/lib/dropdown/dropdown.component.d.ts +0 -65
  185. package/lib/dropdown/dropdown.config.d.ts +0 -6
  186. package/lib/dropdown/dropdown.directive.d.ts +0 -77
  187. package/lib/dropdown/dropdown.module.d.ts +0 -15
  188. package/lib/enums/icons.enum.d.ts +0 -23
  189. package/lib/form-input/form-input-password.utils.d.ts +0 -45
  190. package/lib/form-input/form-input.component.d.ts +0 -283
  191. package/lib/form-input/it-prefix.directive.d.ts +0 -5
  192. package/lib/form-input/it-suffix.directive.d.ts +0 -5
  193. package/lib/form-input/it-text-prefix.directive.d.ts +0 -5
  194. package/lib/form-input/it-text-suffix.directive.d.ts +0 -5
  195. package/lib/form-input/mark-matching-text.pipe.d.ts +0 -10
  196. package/lib/icon/icon.component.d.ts +0 -34
  197. package/lib/icon/icon.module.d.ts +0 -8
  198. package/lib/models/Alignment.d.ts +0 -12
  199. package/lib/models/ButtonSize.d.ts +0 -11
  200. package/lib/models/InputType.d.ts +0 -36
  201. package/lib/models/ThemeColor.d.ts +0 -21
  202. package/lib/popover/popover.config.d.ts +0 -11
  203. package/lib/popover/popover.directive.d.ts +0 -20
  204. package/lib/popover/popover.module.d.ts +0 -9
  205. package/lib/progress-bar/progress-bar.component.d.ts +0 -55
  206. package/lib/radio/radio.component.d.ts +0 -116
  207. package/lib/radio/unique-selection-dispatcher.d.ts +0 -36
  208. package/lib/tabs/tab-group.component.d.ts +0 -71
  209. package/lib/tabs/tab.component.d.ts +0 -44
  210. package/lib/tabs/tabs.module.d.ts +0 -10
  211. package/lib/toggle/toggle.component.d.ts +0 -46
  212. package/lib/tooltip/tooltip.config.d.ts +0 -11
  213. package/lib/tooltip/tooltip.directive.d.ts +0 -27
  214. package/lib/tooltip/tooltip.module.d.ts +0 -9
  215. package/lib/util/focus-mouse.directive.d.ts +0 -13
  216. package/lib/util/util.d.ts +0 -5
  217. package/lib/util/utils.module.d.ts +0 -7
@@ -0,0 +1,59 @@
1
+ import { animate, style, transition, trigger } from '@angular/animations';
2
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class DimmerComponent {
6
+ constructor(elementRef) {
7
+ this.elementRef = elementRef;
8
+ this._active = false;
9
+ this._color = '';
10
+ }
11
+ /**
12
+ * Dimmer status
13
+ * @default false
14
+ */
15
+ set active(value) { this._active = value; }
16
+ ;
17
+ get active() { return this._active; }
18
+ /**
19
+ * Colore del dimmer
20
+ * @default ''
21
+ */
22
+ set color(value) { this._color = value; }
23
+ ;
24
+ get color() { return this._color; }
25
+ ngOnInit() {
26
+ this.elementRef?.nativeElement?.parentElement?.classList?.add('dimmable');
27
+ }
28
+ }
29
+ DimmerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DimmerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
30
+ DimmerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DimmerComponent, selector: "it-dimmer", inputs: { active: "active", color: "color" }, ngImport: i0, template: "<div class=\"dimmer\" *ngIf=\"active\" @fade [ngClass]=\"[color]\">\n <div class=\"dimmer-inner\">\n <ng-content></ng-content>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
31
+ trigger('fade', [
32
+ transition(':enter', [
33
+ style({ opacity: 0 }),
34
+ animate('150ms', style({ opacity: 0.92 })),
35
+ ]),
36
+ transition(':leave', [
37
+ animate('150ms', style({ opacity: 0 })),
38
+ ]),
39
+ ])
40
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DimmerComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'it-dimmer', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
44
+ trigger('fade', [
45
+ transition(':enter', [
46
+ style({ opacity: 0 }),
47
+ animate('150ms', style({ opacity: 0.92 })),
48
+ ]),
49
+ transition(':leave', [
50
+ animate('150ms', style({ opacity: 0 })),
51
+ ]),
52
+ ])
53
+ ], template: "<div class=\"dimmer\" *ngIf=\"active\" @fade [ngClass]=\"[color]\">\n <div class=\"dimmer-inner\">\n <ng-content></ng-content>\n </div>\n</div>" }]
54
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { active: [{
55
+ type: Input
56
+ }], color: [{
57
+ type: Input
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltbWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9kaW1tZXIvZGltbWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9kaW1tZXIvZGltbWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBb0I5RixNQUFNLE9BQU8sZUFBZTtJQWtCMUIsWUFDVSxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBWHhCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFRaEIsV0FBTSxHQUFnQixFQUFFLENBQUM7SUFJOUIsQ0FBQztJQWxCSjs7O01BR0U7SUFDRixJQUFhLE1BQU0sQ0FBRSxLQUFjLElBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUEsQ0FBQSxDQUFDO0lBQUEsQ0FBQztJQUM1RCxJQUFJLE1BQU0sS0FBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBR3BDOzs7TUFHRTtJQUNGLElBQWEsS0FBSyxDQUFFLEtBQWtCLElBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUEsQ0FBQSxDQUFDO0lBQUEsQ0FBQztJQUM5RCxJQUFJLEtBQUssS0FBSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBT2xDLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1RSxDQUFDOzs0R0F4QlUsZUFBZTtnR0FBZixlQUFlLCtGQ3JCNUIsc0pBSU0sZ09ES1E7UUFDVixPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ1osVUFBVSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNyQixPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQzdDLENBQUM7WUFDRixVQUFVLENBQUMsUUFBUSxFQUFFO2dCQUNqQixPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzFDLENBQUM7U0FDTCxDQUFDO0tBQ0w7MkZBRVksZUFBZTtrQkFoQjNCLFNBQVM7K0JBQ0UsV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DO3dCQUNWLE9BQU8sQ0FBQyxNQUFNLEVBQUU7NEJBQ1osVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2dDQUNyQixPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDOzZCQUM3QyxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ2pCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQzFDLENBQUM7eUJBQ0wsQ0FBQztxQkFDTDtpR0FRYyxNQUFNO3NCQUFsQixLQUFLO2dCQVFPLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBEaW1tZXJDb2xvciA9ICcnIHwgJ2RpbW1lci1wcmltYXJ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtZGltbWVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpbW1lci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmFkZScsIFtcbiAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZSgnMTUwbXMnLCBzdHlsZSh7IG9wYWNpdHk6IDAuOTIgfSkpLFxuICAgICAgICBdKSxcbiAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICAgICAgYW5pbWF0ZSgnMTUwbXMnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICBdKSxcbiAgICBdKVxuXVxufSlcbmV4cG9ydCBjbGFzcyBEaW1tZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBEaW1tZXIgc3RhdHVzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICovXG4gIEBJbnB1dCgpIHNldCBhY3RpdmUgKHZhbHVlOiBib29sZWFuKSB7dGhpcy5fYWN0aXZlID0gdmFsdWV9O1xuICBnZXQgYWN0aXZlKCkge3JldHVybiB0aGlzLl9hY3RpdmU7IH1cbiAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIENvbG9yZSBkZWwgZGltbWVyXG4gICAqIEBkZWZhdWx0ICcnXG4gICovXG4gIEBJbnB1dCgpIHNldCBjb2xvciAodmFsdWU6IERpbW1lckNvbG9yKSB7dGhpcy5fY29sb3IgPSB2YWx1ZX07XG4gIGdldCBjb2xvcigpIHtyZXR1cm4gdGhpcy5fY29sb3I7IH1cbiAgcHJpdmF0ZSBfY29sb3I6IERpbW1lckNvbG9yID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LmNsYXNzTGlzdD8uYWRkKCdkaW1tYWJsZScpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGltbWVyXCIgKm5nSWY9XCJhY3RpdmVcIiBAZmFkZSBbbmdDbGFzc109XCJbY29sb3JdXCI+XG4gIDxkaXYgY2xhc3M9XCJkaW1tZXItaW5uZXJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,60 @@
1
+ import { Component, ContentChildren, Input } from '@angular/core';
2
+ import { AbstractComponent } from '../../../../abstracts/abstract.component';
3
+ import { isTrueBooleanInput } from '../../../../utils/boolean-input';
4
+ import { DropdownItemComponent } from '../dropdown-item/dropdown-item.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../utils/icon/icon.component";
7
+ export class DropdownComponent extends AbstractComponent {
8
+ get buttonClass() {
9
+ let btnClass = 'btn dropdown-toggle';
10
+ if (this.color) {
11
+ btnClass += ` btn-${this.color}`;
12
+ }
13
+ else {
14
+ btnClass += ` btn-dropdown`;
15
+ }
16
+ return btnClass;
17
+ }
18
+ get isFullWidth() {
19
+ return isTrueBooleanInput(this.fullWidth);
20
+ }
21
+ get isDark() {
22
+ return isTrueBooleanInput(this.dark);
23
+ }
24
+ ngOnChanges(changes) {
25
+ if (changes['dark'] && !changes['dark'].firstChange) {
26
+ this.setDarkItems();
27
+ }
28
+ }
29
+ ngAfterViewInit() {
30
+ super.ngAfterViewInit();
31
+ this.setDarkItems();
32
+ }
33
+ /**
34
+ * Set child items dark mode
35
+ * @private
36
+ */
37
+ setDarkItems() {
38
+ this.items?.forEach(item => {
39
+ item.setDark(this.isDark);
40
+ });
41
+ }
42
+ }
43
+ DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
44
+ DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownComponent, selector: "it-dropdown[id]", inputs: { color: "color", direction: "direction", fullWidth: "fullWidth", dark: "dark" }, queries: [{ propertyName: "items", predicate: DropdownItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown {{direction}}\">\n <button [id]=\"id\"\n [class]=\"buttonClass\"\n type=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-content select=\"[button]\"></ng-content>\n <it-icon class=\"icon-expand\" name=\"expand\" size=\"sm\" [color]=\"this.color ? 'light' : 'primary'\"></it-icon>\n </button>\n\n <div class=\"dropdown-menu\" [class.full-width]=\"isFullWidth\" [class.dark]=\"isDark\" [attr.aria-labelledby]=\"id\">\n <div class=\"link-list-wrapper\">\n <div class=\"link-list-heading\">\n <ng-content select=\"[listHeading]\"></ng-content>\n </div>\n <ul class=\"link-list\">\n <ng-content select=\"[list]\"></ng-content>\n </ul>\n </div>\n </div>\n</div>\n", styles: [".link-list-heading:empty{display:none}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }] });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'it-dropdown[id]', template: "<div class=\"dropdown {{direction}}\">\n <button [id]=\"id\"\n [class]=\"buttonClass\"\n type=\"button\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <ng-content select=\"[button]\"></ng-content>\n <it-icon class=\"icon-expand\" name=\"expand\" size=\"sm\" [color]=\"this.color ? 'light' : 'primary'\"></it-icon>\n </button>\n\n <div class=\"dropdown-menu\" [class.full-width]=\"isFullWidth\" [class.dark]=\"isDark\" [attr.aria-labelledby]=\"id\">\n <div class=\"link-list-wrapper\">\n <div class=\"link-list-heading\">\n <ng-content select=\"[listHeading]\"></ng-content>\n </div>\n <ul class=\"link-list\">\n <ng-content select=\"[list]\"></ng-content>\n </ul>\n </div>\n </div>\n</div>\n", styles: [".link-list-heading:empty{display:none}\n"] }]
48
+ }], propDecorators: { color: [{
49
+ type: Input
50
+ }], direction: [{
51
+ type: Input
52
+ }], fullWidth: [{
53
+ type: Input
54
+ }], dark: [{
55
+ type: Input
56
+ }], items: [{
57
+ type: ContentChildren,
58
+ args: [DropdownItemComponent]
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2Ryb3Bkb3duL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTdFLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBT2pGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxpQkFBaUI7SUE4QnRELElBQUksV0FBVztRQUNiLElBQUksUUFBUSxHQUFHLHFCQUFxQixDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNsQzthQUFNO1lBQ0wsUUFBUSxJQUFJLGVBQWUsQ0FBQztTQUM3QjtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVRLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQXBFVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1S0E0QlgscUJBQXFCLHlFQ3ZDeEMsMHpCQXNCQTsyRkRYYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQVNsQixLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsU0FBUztzQkFBakIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLa0MsS0FBSztzQkFBNUMsZUFBZTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29sb3IsIERyb3Bkb3duRGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBEcm9wZG93bkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi1pdGVtL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtZHJvcGRvd25baWRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAvKipcbiAgICogQnV0dG9uIGNvbG9yXG4gICAqL1xuICBASW5wdXQoKSBjb2xvcj86IEJ1dHRvbkNvbG9yO1xuXG4gIC8qKlxuICAgKiBUbyBvcGVuIG1lbnUgaXRlbXMgdG86XG4gICAqIC0gPHN0cm9uZz5kcm9wdXA8L3N0cm9uZz46IHVwXG4gICAqIC0gPHN0cm9uZz5kcm9wZW5kPC9zdHJvbmc+OiByaWdodFxuICAgKiAtIDxzdHJvbmc+ZHJvcHN0YXJ0PC9zdHJvbmc+OiBsZWZ0XG4gICAqL1xuICBASW5wdXQoKSBkaXJlY3Rpb24/OiBEcm9wZG93bkRpcmVjdGlvbjtcblxuICAvKipcbiAgICogVG8gZ2V0IGEgZHJvcGRvd24gbWVudSBhcyB3aWRlIGFzIHRoZSBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIGRyb3Bkb3duIGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgZnVsbFdpZHRoPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBEYXJrIG1lbnUgc3R5bGVcbiAgICovXG4gIEBJbnB1dCgpIGRhcms/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBkcm9wZG93biBpdGVtc1xuICAgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihEcm9wZG93bkl0ZW1Db21wb25lbnQpIGl0ZW1zPzogUXVlcnlMaXN0PERyb3Bkb3duSXRlbUNvbXBvbmVudD47XG5cbiAgZ2V0IGJ1dHRvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgbGV0IGJ0bkNsYXNzID0gJ2J0biBkcm9wZG93bi10b2dnbGUnO1xuICAgIGlmICh0aGlzLmNvbG9yKSB7XG4gICAgICBidG5DbGFzcyArPSBgIGJ0bi0ke3RoaXMuY29sb3J9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgYnRuQ2xhc3MgKz0gYCBidG4tZHJvcGRvd25gO1xuICAgIH1cblxuICAgIHJldHVybiBidG5DbGFzcztcbiAgfVxuXG4gIGdldCBpc0Z1bGxXaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuZnVsbFdpZHRoKTtcbiAgfVxuXG4gIGdldCBpc0RhcmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmRhcmspO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkYXJrJ10gJiYgIWNoYW5nZXNbJ2RhcmsnXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5zZXREYXJrSXRlbXMoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5zZXREYXJrSXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY2hpbGQgaXRlbXMgZGFyayBtb2RlXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldERhcmtJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1zPy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaXRlbS5zZXREYXJrKHRoaXMuaXNEYXJrKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJvcGRvd24ge3tkaXJlY3Rpb259fVwiPlxuICA8YnV0dG9uIFtpZF09XCJpZFwiXG4gICAgICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J1dHRvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPGl0LWljb24gY2xhc3M9XCJpY29uLWV4cGFuZFwiIG5hbWU9XCJleHBhbmRcIiBzaXplPVwic21cIiBbY29sb3JdPVwidGhpcy5jb2xvciA/ICdsaWdodCcgOiAncHJpbWFyeSdcIj48L2l0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgW2NsYXNzLmZ1bGwtd2lkdGhdPVwiaXNGdWxsV2lkdGhcIiBbY2xhc3MuZGFya109XCJpc0RhcmtcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGluay1saXN0LXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLWxpc3QtaGVhZGluZ1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGlzdEhlYWRpbmddXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8dWwgY2xhc3M9XCJsaW5rLWxpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xpc3RdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { isTrueBooleanInput } from '../../../../utils/boolean-input';
3
+ import { LinkComponent } from '../../link/link.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "../../link/link.component";
7
+ import * as i3 from "../../../utils/icon/icon.component";
8
+ import * as i4 from "@ngx-translate/core";
9
+ export class DropdownItemComponent extends LinkComponent {
10
+ constructor(_renderer, _elementRef, _changeDetectorRef) {
11
+ super(_renderer, _elementRef);
12
+ this._renderer = _renderer;
13
+ this._elementRef = _elementRef;
14
+ this._changeDetectorRef = _changeDetectorRef;
15
+ /**
16
+ * The icon position
17
+ * @default right
18
+ */
19
+ this.iconPosition = 'right';
20
+ /**
21
+ * Change icon color if menu is dark
22
+ * @default false
23
+ */
24
+ this.isDark = false;
25
+ }
26
+ get isDivider() {
27
+ return isTrueBooleanInput(this.divider);
28
+ }
29
+ get isActive() {
30
+ return isTrueBooleanInput(this.active);
31
+ }
32
+ get isLarge() {
33
+ return isTrueBooleanInput(this.large);
34
+ }
35
+ get linkClass() {
36
+ let linkClass = `list-item ${this.isActive ? 'active' : 'dropdown-item'}`;
37
+ if (this.isDisabled) {
38
+ linkClass += ' disabled';
39
+ }
40
+ if (this.isLarge) {
41
+ linkClass += ' large';
42
+ }
43
+ if (this.iconName) {
44
+ linkClass += ` ${this.iconPosition === 'right' ? 'right-icon' : 'left-icon'}`;
45
+ }
46
+ return linkClass;
47
+ }
48
+ setDark(dark) {
49
+ if (this.isDark !== dark) {
50
+ this.isDark = dark;
51
+ this._changeDetectorRef.detectChanges();
52
+ }
53
+ }
54
+ }
55
+ DropdownItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownItemComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
56
+ DropdownItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: DropdownItemComponent, selector: "it-dropdown-item", inputs: { divider: "divider", active: "active", large: "large", iconName: "iconName", iconPosition: "iconPosition" }, usesInheritance: true, ngImport: i0, template: "<li>\n <span *ngIf=\"isDivider; else item\" class=\"divider\"></span>\n\n <ng-template #item>\n <it-link [class]=\"linkClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <it-icon *ngIf=\"iconName && iconPosition === 'left'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span><ng-content></ng-content></span>\n\n <it-icon *ngIf=\"iconName && iconPosition === 'right'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span *ngIf=\"isActive\" class=\"visually-hidden\">{{'it.core.active'|translate}}</span>\n </it-link>\n </ng-template>\n</li>\n", styles: [".list-item.disabled{pointer-events:none;cursor:default}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.LinkComponent, selector: "it-link", inputs: ["href", "externalLink", "disabled", "class"] }, { kind: "component", type: i3.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DropdownItemComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'it-dropdown-item', template: "<li>\n <span *ngIf=\"isDivider; else item\" class=\"divider\"></span>\n\n <ng-template #item>\n <it-link [class]=\"linkClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <it-icon *ngIf=\"iconName && iconPosition === 'left'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span><ng-content></ng-content></span>\n\n <it-icon *ngIf=\"iconName && iconPosition === 'right'\"\n size=\"sm\"\n [name]=\"iconName\"\n [color]=\"isDark ? 'light' : 'primary'\"\n [class]=\"iconPosition\"></it-icon>\n\n <span *ngIf=\"isActive\" class=\"visually-hidden\">{{'it.core.active'|translate}}</span>\n </it-link>\n </ng-template>\n</li>\n", styles: [".list-item.disabled{pointer-events:none;cursor:default}\n"] }]
60
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { divider: [{
61
+ type: Input
62
+ }], active: [{
63
+ type: Input
64
+ }], large: [{
65
+ type: Input
66
+ }], iconName: [{
67
+ type: Input
68
+ }], iconPosition: [{
69
+ type: Input
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvZHJvcGRvd24vZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9kcm9wZG93bi9kcm9wZG93bi1pdGVtL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7OztBQU8xRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQTZEdEQsWUFDOEIsU0FBb0IsRUFDcEIsV0FBdUIsRUFDbEMsa0JBQXFDO1FBRXRELEtBQUssQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKRixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ2xDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUExQ3hEOzs7V0FHRztRQUNNLGlCQUFZLEdBQXFCLE9BQU8sQ0FBQztRQUVsRDs7O1dBR0c7UUFDSCxXQUFNLEdBQVksS0FBSyxDQUFDO0lBbUN4QixDQUFDO0lBakNELElBQUksU0FBUztRQUNYLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLElBQUksU0FBUyxHQUFHLGFBQWEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsU0FBUyxJQUFJLFdBQVcsQ0FBQztTQUMxQjtRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixTQUFTLElBQUksUUFBUSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLFNBQVMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9FO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQVVELE9BQU8sQ0FBQyxJQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7a0hBMUVVLHFCQUFxQjtzR0FBckIscUJBQXFCLHFNQ1ZsQyw0MkJBdUJBOzJGRGJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7eUpBU25CLE9BQU87c0JBQWYsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBJY29uTmFtZSB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaWNvbic7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGluay9saW5rLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LWRyb3Bkb3duLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkl0ZW1Db21wb25lbnQgZXh0ZW5kcyBMaW5rQ29tcG9uZW50IHtcblxuICAvKipcbiAgICogU2hvdyBkaXZpZGVyXG4gICAqL1xuICBASW5wdXQoKSBkaXZpZGVyPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBBY3RpdmUgaXRlbVxuICAgKi9cbiAgQElucHV0KCkgYWN0aXZlPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBUbyBpbmNyZWFzZSB0aGUgc2l6ZSBvZiBsaW5rc1xuICAgKi9cbiAgQElucHV0KCkgbGFyZ2U/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGljb24gdG8gc2hvd1xuICAgKi9cbiAgQElucHV0KCkgaWNvbk5hbWU/OiBJY29uTmFtZTtcblxuICAvKipcbiAgICogVGhlIGljb24gcG9zaXRpb25cbiAgICogQGRlZmF1bHQgcmlnaHRcbiAgICovXG4gIEBJbnB1dCgpIGljb25Qb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG5cbiAgLyoqXG4gICAqIENoYW5nZSBpY29uIGNvbG9yIGlmIG1lbnUgaXMgZGFya1xuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaXNEYXJrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGlzRGl2aWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuZGl2aWRlcik7XG4gIH1cblxuICBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmFjdGl2ZSk7XG4gIH1cblxuICBnZXQgaXNMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMubGFyZ2UpO1xuICB9XG5cbiAgZ2V0IGxpbmtDbGFzcygpOiBzdHJpbmcge1xuICAgIGxldCBsaW5rQ2xhc3MgPSBgbGlzdC1pdGVtICR7dGhpcy5pc0FjdGl2ZSA/ICdhY3RpdmUnIDogJ2Ryb3Bkb3duLWl0ZW0nfWA7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgbGlua0NsYXNzICs9ICcgZGlzYWJsZWQnO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0xhcmdlKSB7XG4gICAgICBsaW5rQ2xhc3MgKz0gJyBsYXJnZSc7XG4gICAgfVxuICAgIGlmICh0aGlzLmljb25OYW1lKSB7XG4gICAgICBsaW5rQ2xhc3MgKz0gYCAke3RoaXMuaWNvblBvc2l0aW9uID09PSAncmlnaHQnID8gJ3JpZ2h0LWljb24nIDogJ2xlZnQtaWNvbid9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gbGlua0NsYXNzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoX3JlbmRlcmVyLCBfZWxlbWVudFJlZik7XG4gIH1cblxuICBzZXREYXJrKGRhcms6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0RhcmsgIT09IGRhcmspIHtcbiAgICAgIHRoaXMuaXNEYXJrID0gZGFyaztcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsaT5cbiAgPHNwYW4gKm5nSWY9XCJpc0RpdmlkZXI7IGVsc2UgaXRlbVwiIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cblxuICA8bmctdGVtcGxhdGUgI2l0ZW0+XG4gICAgPGl0LWxpbmsgW2NsYXNzXT1cImxpbmtDbGFzc1wiIFtocmVmXT1cImhyZWZcIiBbZXh0ZXJuYWxMaW5rXT1cImV4dGVybmFsTGlua1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgPGl0LWljb24gKm5nSWY9XCJpY29uTmFtZSAmJiBpY29uUG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJpY29uTmFtZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImlzRGFyayA/ICdsaWdodCcgOiAncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJpY29uUG9zaXRpb25cIj48L2l0LWljb24+XG5cbiAgICAgIDxzcGFuPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG5cbiAgICAgIDxpdC1pY29uICpuZ0lmPVwiaWNvbk5hbWUgJiYgaWNvblBvc2l0aW9uID09PSAncmlnaHQnXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25OYW1lXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiaXNEYXJrID8gJ2xpZ2h0JyA6ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImljb25Qb3NpdGlvblwiPjwvaXQtaWNvbj5cblxuICAgICAgPHNwYW4gKm5nSWY9XCJpc0FjdGl2ZVwiIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snaXQuY29yZS5hY3RpdmUnfHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvaXQtbGluaz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbGk+XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Directive, HostListener, Inject, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class ForwardDirective {
5
+ constructor(document) {
6
+ this.document = document;
7
+ this._itForward = undefined;
8
+ }
9
+ /**
10
+ * Indica, se HTMLElement, l'elemento a cui navigare, o se stringa, il selettore che selezionerà l'elemento a cui navigare.
11
+ */
12
+ set itForward(value) { this._itForward = value; }
13
+ get itForward() { return this._itForward; }
14
+ onClick(event) {
15
+ event.preventDefault();
16
+ if (this.itForward) {
17
+ if (typeof this.itForward === 'string') {
18
+ this.document?.querySelector(this.itForward)?.scrollIntoView({
19
+ behavior: 'smooth',
20
+ block: 'start',
21
+ inline: "nearest"
22
+ });
23
+ }
24
+ else if (this.itForward instanceof HTMLElement) {
25
+ this.itForward.scrollIntoView({
26
+ behavior: 'smooth',
27
+ block: 'start',
28
+ inline: "nearest"
29
+ });
30
+ }
31
+ }
32
+ }
33
+ }
34
+ ForwardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ForwardDirective, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
35
+ 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 });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ForwardDirective, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ selector: '[itForward]',
40
+ host: { 'class': 'forward' }
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
43
+ type: Inject,
44
+ args: [DOCUMENT]
45
+ }] }]; }, propDecorators: { itForward: [{
46
+ type: Input
47
+ }], onClick: [{
48
+ type: HostListener,
49
+ args: ['click', ['$event']]
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvZm9yd2FyZC9mb3J3YXJkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNdkUsTUFBTSxPQUFPLGdCQUFnQjtJQVMzQixZQUM0QixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSHZDLGVBQVUsR0FBcUMsU0FBUyxDQUFDO0lBSTdELENBQUM7SUFUTDs7TUFFRTtJQUNGLElBQWEsU0FBUyxDQUFDLEtBQXVDLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVGLElBQUksU0FBUyxLQUF1QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBUTdFLE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxDQUFDO29CQUMzRCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsS0FBSyxFQUFFLE9BQU87b0JBQ2QsTUFBTSxFQUFFLFNBQVM7aUJBQ2xCLENBQUMsQ0FBQTthQUNIO2lCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSxXQUFXLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO29CQUM1QixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsS0FBSyxFQUFFLE9BQU87b0JBQ2QsTUFBTSxFQUFFLFNBQVM7aUJBQ2xCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOzs2R0EvQlUsZ0JBQWdCLGtCQVVqQixRQUFRO2lHQVZQLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixJQUFJLEVBQUUsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFDO2lCQUMzQjs7MEJBV0ksTUFBTTsyQkFBQyxRQUFROzRDQUxMLFNBQVM7c0JBQXJCLEtBQUs7Z0JBU04sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpdEZvcndhcmRdJyxcbiAgaG9zdDogeydjbGFzcyc6ICdmb3J3YXJkJ31cbn0pXG5leHBvcnQgY2xhc3MgRm9yd2FyZERpcmVjdGl2ZSB7XG5cbiAgLyoqXG4gICAqIEluZGljYSwgc2UgSFRNTEVsZW1lbnQsIGwnZWxlbWVudG8gYSBjdWkgbmF2aWdhcmUsIG8gc2Ugc3RyaW5nYSwgaWwgc2VsZXR0b3JlIGNoZSBzZWxlemlvbmVyw6AgbCdlbGVtZW50byBhIGN1aSBuYXZpZ2FyZS5cbiAgKi9cbiAgQElucHV0KCkgc2V0IGl0Rm9yd2FyZCh2YWx1ZTogSFRNTEVsZW1lbnQgfCBzdHJpbmcgfCB1bmRlZmluZWQpIHsgdGhpcy5faXRGb3J3YXJkID0gdmFsdWU7IH1cbiAgZ2V0IGl0Rm9yd2FyZCgpOiBIVE1MRWxlbWVudCB8IHN0cmluZyB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9pdEZvcndhcmQ7IH1cbiAgcHJpdmF0ZSBfaXRGb3J3YXJkOiBIVE1MRWxlbWVudCB8IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50PzogRG9jdW1lbnRcbiAgKSB7IH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMuaXRGb3J3YXJkKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuaXRGb3J3YXJkID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5xdWVyeVNlbGVjdG9yKHRoaXMuaXRGb3J3YXJkKT8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgICAgICBpbmxpbmU6IFwibmVhcmVzdFwiXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXRGb3J3YXJkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5pdEZvcndhcmQuc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgICAgICBpbmxpbmU6IFwibmVhcmVzdFwiXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { isTrueBooleanInput } from '../../../utils/boolean-input';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/router";
6
+ export class LinkComponent {
7
+ constructor(_renderer, _elementRef) {
8
+ this._renderer = _renderer;
9
+ this._elementRef = _elementRef;
10
+ /**
11
+ * Custom class
12
+ */
13
+ this.class = '';
14
+ }
15
+ get isExternalLink() {
16
+ return isTrueBooleanInput(this.externalLink);
17
+ }
18
+ get isDisabled() {
19
+ return isTrueBooleanInput(this.disabled);
20
+ }
21
+ ngAfterViewInit() {
22
+ this._renderer.removeAttribute(this._elementRef.nativeElement, 'class');
23
+ }
24
+ }
25
+ LinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LinkComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
26
+ LinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LinkComponent, selector: "it-link", inputs: { href: "href", externalLink: "externalLink", disabled: "disabled", class: "class" }, ngImport: i0, template: "<a *ngIf=\"!isExternalLink; else externalLink\" [class]=\"class\" [routerLink]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n</a>\n<ng-template #externalLink>\n <a [class]=\"class\" [attr.href]=\"isDisabled ? null : href\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #linkContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LinkComponent, decorators: [{
28
+ type: Component,
29
+ 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" }]
30
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { href: [{
31
+ type: Input
32
+ }], externalLink: [{
33
+ type: Input
34
+ }], disabled: [{
35
+ type: Input
36
+ }], class: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbGluay9saW5rLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9saW5rL2xpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQU9oRixNQUFNLE9BQU8sYUFBYTtJQW1DeEIsWUFDcUIsU0FBb0IsRUFDcEIsV0FBdUI7UUFEdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWY1Qzs7V0FFRztRQUNNLFVBQUssR0FBVyxFQUFFLENBQUM7SUFjNUIsQ0FBQztJQVpELElBQUksY0FBYztRQUNoQixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQVFELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDOzswR0EzQ1UsYUFBYTs4RkFBYixhQUFhLDZJQ1IxQixnY0FZQTsyRkRKYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7eUhBY1YsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LWxpbmsnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmsuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMaW5rQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqXG4gICAqIFRoZSByb3V0ZXIgbGluayBhY3Rpb25cbiAgICpcbiAgICogQ29tbWFuZHMgdG8gcGFzcyB0byBSb3V0ZXIjY3JlYXRlVXJsVHJlZS5cbiAgICogLSBhcnJheTogY29tbWFuZHMgdG8gcGFzcyB0byBSb3V0ZXIjY3JlYXRlVXJsVHJlZS5cbiAgICogLSBzdHJpbmc6IHNob3J0aGFuZCBmb3IgYXJyYXkgb2YgY29tbWFuZHMgd2l0aCBqdXN0IHRoZSBzdHJpbmcsIGkuZS4gWycvcm91dGUnXVxuICAgKiAtIG51bGx8dW5kZWZpbmVkOiBEaXNhYmxlcyB0aGUgbGluayBieSByZW1vdmluZyB0aGUgaHJlZlxuICAgKi9cbiAgQElucHV0KCkgaHJlZj86IGFueVtdIHwgc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogSXMgYW4gZXh0ZXJuYWwgbGluayAoZmFsc2UgdG8gbm90IHVzZSBBbmd1bGFyIHJvdXRlciBsaW5rKVxuICAgKi9cbiAgQElucHV0KCkgZXh0ZXJuYWxMaW5rPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBJcyBkaXNhYmxlZCBsaW5rXG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlZD86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogQ3VzdG9tIGNsYXNzXG4gICAqL1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgZ2V0IGlzRXh0ZXJuYWxMaW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5leHRlcm5hbExpbmspO1xuICB9XG5cbiAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmRpc2FibGVkKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsYXNzJyk7XG4gIH1cbn1cbiIsIjxhICpuZ0lmPVwiIWlzRXh0ZXJuYWxMaW5rOyBlbHNlIGV4dGVybmFsTGlua1wiIFtjbGFzc109XCJjbGFzc1wiIFtyb3V0ZXJMaW5rXT1cImlzRGlzYWJsZWQgPyBudWxsIDogaHJlZlwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGlua0NvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cbjxuZy10ZW1wbGF0ZSAjZXh0ZXJuYWxMaW5rPlxuICA8YSBbY2xhc3NdPVwiY2xhc3NcIiBbYXR0ci5ocmVmXT1cImlzRGlzYWJsZWQgPyBudWxsIDogaHJlZlwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaW5rQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2E+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xpbmtDb250ZW50PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,13 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ListComponent {
4
+ }
5
+ ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ 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: [""] });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ListComponent, decorators: [{
8
+ type: Component,
9
+ 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" }]
10
+ }], propDecorators: { linkList: [{
11
+ type: Input
12
+ }] } });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbGlzdC9saXN0L2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2xpc3QvbGlzdC9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFqRCxNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTs4RkFBYixhQUFhLGlGQ1IxQiw2R0FLQTsyRkRHYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7OEJBU1YsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIEFkZCAnbGluay1saXN0JyBjbGFzcyBmb3IgbmF2aWdhdGlvbiBtZW7DuVxuICAgKi9cbiAgQElucHV0KCkgbGlua0xpc3Q/OiBCb29sZWFuSW5wdXQ7XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJpdC1saXN0LXdyYXBwZXJcIj5cbiAgPHVsIGNsYXNzPVwiaXQtbGlzdFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC91bD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,36 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { isTrueBooleanInput } from '../../../../utils/boolean-input';
3
+ import { LinkComponent } from '../../link/link.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "../../link/link.component";
7
+ export class ListItemComponent extends LinkComponent {
8
+ get itemClass() {
9
+ let itemClass = 'list-item';
10
+ if (isTrueBooleanInput(this.active)) {
11
+ itemClass += ` active`;
12
+ }
13
+ if (isTrueBooleanInput(this.large)) {
14
+ itemClass += ` large`;
15
+ }
16
+ if (this.class) {
17
+ itemClass += ` ${this.class}`;
18
+ }
19
+ return itemClass;
20
+ }
21
+ }
22
+ ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
23
+ ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ListItemComponent, selector: "it-list-item", inputs: { active: "active", large: "large", avatar: "avatar", image: "image" }, usesInheritance: true, ngImport: i0, template: "<li>\n <ng-template #content>\n <div class=\"it-rounded-icon\">\n <ng-content select=\"[icon]\"></ng-content>\n </div>\n\n <div *ngIf=\"avatar\" class=\"avatar size-lg\">\n <img [attr.src]=\"avatar\" alt=\"avatar\">\n </div>\n\n <div *ngIf=\"image\" class=\"it-thumb\">\n <img [attr.src]=\"image\" alt=\"thumb\">\n </div>\n\n <div class=\"it-right-zone\">\n <span class=\"text\">\n <ng-content></ng-content>\n </span>\n <ng-content select=\"[action]\"></ng-content>\n\n <span class=\"it-multiple\">\n <span class=\"metadata\">\n <ng-content select=\"[metadata]\"></ng-content>\n </span>\n\n <ng-content select=\"[multiple]\"></ng-content>\n </span>\n </div>\n </ng-template>\n\n\n <div *ngIf=\"!href; else link\" [class]=\"itemClass\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n\n <ng-template #link>\n <it-link [class]=\"itemClass\" [href]=\"href\" [externalLink]=\"externalLink\" [disabled]=\"disabled\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </it-link>\n </ng-template>\n</li>\n", styles: [".metadata:empty,.it-rounded-icon:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.LinkComponent, selector: "it-link", inputs: ["href", "externalLink", "disabled", "class"] }] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ListItemComponent, decorators: [{
25
+ type: Component,
26
+ 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"] }]
27
+ }], propDecorators: { active: [{
28
+ type: Input
29
+ }], large: [{
30
+ type: Input
31
+ }], avatar: [{
32
+ type: Input
33
+ }], image: [{
34
+ type: Input
35
+ }] } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBTzFELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBdUJsRCxJQUFJLFNBQVM7UUFDWCxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDNUIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsU0FBUyxJQUFJLFNBQVMsQ0FBQztTQUN4QjtRQUNELElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLFNBQVMsSUFBSSxRQUFRLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxTQUFTLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDL0I7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzs4R0FuQ1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkpDVDlCLHdvQ0F5Q0E7MkZEaENhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjOzhCQVNmLE1BQU07c0JBQWQsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGluay9saW5rLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LWxpc3QtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbUNvbXBvbmVudCBleHRlbmRzIExpbmtDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKiBBZGQgYWN0aXZlIGNsYXNzXG4gICAqL1xuICBASW5wdXQoKSBhY3RpdmU/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIEFkZCBsYXJnZSBjbGFzc1xuICAgKi9cbiAgQElucHV0KCkgbGFyZ2U/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBhdmF0YXIgdXJsXG4gICAqL1xuICBASW5wdXQoKSBhdmF0YXI/OiBVUkw7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHVtYiBpbWFnZSB1cmxcbiAgICovXG4gIEBJbnB1dCgpIGltYWdlPzogVVJMO1xuXG5cbiAgZ2V0IGl0ZW1DbGFzcygpOiBzdHJpbmcge1xuICAgIGxldCBpdGVtQ2xhc3MgPSAnbGlzdC1pdGVtJztcbiAgICBpZiAoaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuYWN0aXZlKSkge1xuICAgICAgaXRlbUNsYXNzICs9IGAgYWN0aXZlYDtcbiAgICB9XG4gICAgaWYgKGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmxhcmdlKSkge1xuICAgICAgaXRlbUNsYXNzICs9IGAgbGFyZ2VgO1xuICAgIH1cbiAgICBpZiAodGhpcy5jbGFzcykge1xuICAgICAgaXRlbUNsYXNzICs9IGAgJHt0aGlzLmNsYXNzfWA7XG4gICAgfVxuICAgIHJldHVybiBpdGVtQ2xhc3M7XG4gIH1cblxufVxuIiwiPGxpPlxuICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cIml0LXJvdW5kZWQtaWNvblwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ljb25dXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImF2YXRhclwiIGNsYXNzPVwiYXZhdGFyIHNpemUtbGdcIj5cbiAgICAgIDxpbWcgW2F0dHIuc3JjXT1cImF2YXRhclwiIGFsdD1cImF2YXRhclwiPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImltYWdlXCIgY2xhc3M9XCJpdC10aHVtYlwiPlxuICAgICAgPGltZyBbYXR0ci5zcmNdPVwiaW1hZ2VcIiBhbHQ9XCJ0aHVtYlwiPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIml0LXJpZ2h0LXpvbmVcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYWN0aW9uXVwiPjwvbmctY29udGVudD5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJpdC1tdWx0aXBsZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGFkYXRhXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21ldGFkYXRhXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttdWx0aXBsZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cblxuICA8ZGl2ICpuZ0lmPVwiIWhyZWY7IGVsc2UgbGlua1wiIFtjbGFzc109XCJpdGVtQ2xhc3NcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI2xpbms+XG4gICAgPGl0LWxpbmsgW2NsYXNzXT1cIml0ZW1DbGFzc1wiIFtocmVmXT1cImhyZWZcIiBbZXh0ZXJuYWxMaW5rXT1cImV4dGVybmFsTGlua1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2l0LWxpbms+XG4gIDwvbmctdGVtcGxhdGU+XG48L2xpPlxuIl19
@@ -0,0 +1,98 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { AbstractComponent } from "../../../abstracts/abstract.component";
3
+ import { Modal } from 'bootstrap-italia';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ngx-translate/core";
6
+ export class ModalComponent extends AbstractComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ /**
10
+ * This event fires immediately when the instance method show is called.
11
+ */
12
+ this.onShow = new EventEmitter();
13
+ /**
14
+ * This event fires when the modal has been made visible to the user (it will wait for CSS transitions to complete).
15
+ */
16
+ this.onShown = new EventEmitter();
17
+ /**
18
+ * This event is raised immediately when the instance method hide has been called.
19
+ */
20
+ this.onHide = new EventEmitter();
21
+ /**
22
+ * This event fires when the modal has finished hiding from the user (it will wait for CSS transitions to complete).
23
+ */
24
+ this.onHidden = new EventEmitter();
25
+ /**
26
+ * This event is fired when the modal is displayed, its background is static and a click outside the modal or a press
27
+ * of the esc key occurs and data-bs-keyboard is set to false.
28
+ */
29
+ this.onHidePrevented = new EventEmitter();
30
+ }
31
+ ngAfterViewInit() {
32
+ super.ngAfterViewInit();
33
+ this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');
34
+ if (this.modalElement) {
35
+ const element = this.modalElement.nativeElement;
36
+ this.modal = Modal.getOrCreateInstance(element);
37
+ element.addEventListener('show.bs.modal', event => this.onShow.emit(event));
38
+ element.addEventListener('shown.bs.modal', event => this.onShown.emit(event));
39
+ element.addEventListener('hide.bs.modal', event => this.onHide.emit(event));
40
+ element.addEventListener('hidden.bs.modal', event => this.onHidden.emit(event));
41
+ element.addEventListener('hidePrevented.bs.modal', event => this.onHidePrevented.emit(event));
42
+ }
43
+ }
44
+ /**
45
+ * Manually activate/deactivate a modal. Returns to the caller before the modal has actually been shown or hidden
46
+ */
47
+ toggle() {
48
+ this.modal?.toggle();
49
+ }
50
+ /**
51
+ * Manually open a modal. Returns to the caller before the modal has actually been displayed
52
+ */
53
+ show() {
54
+ this.modal?.show();
55
+ }
56
+ /**
57
+ * Manually hide a modal. Returns to the caller before the modal has actually been hidden
58
+ */
59
+ hide() {
60
+ this.modal?.hide();
61
+ }
62
+ /**
63
+ * Manually reposition the modal if the height of the modal changes when it is opened (in case a scroll bar appears).
64
+ */
65
+ handleUpdate() {
66
+ this.modal?.handleUpdate();
67
+ }
68
+ /**
69
+ * Destroys the modal of an element.
70
+ */
71
+ dispose() {
72
+ this.modal?.dispose();
73
+ }
74
+ }
75
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
76
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModalComponent, selector: "it-modal[id][title]", inputs: { title: "title", size: "size" }, outputs: { onShow: "onShow", onShown: "onShown", onHide: "onHide", onHidden: "onHidden", onHidePrevented: "onHidePrevented" }, viewQueries: [{ propertyName: "modalElement", first: true, predicate: ["modalElement"], descendants: true }], exportAs: ["itModal"], usesInheritance: true, ngImport: i0, template: "<div [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\" #modalElement>\n <div class=\"modal-dialog {{size}}\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title h5 no_toc\" id=\"{{id}}-label\">{{title}}</h2>\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" [attr.aria-label]=\"'it.core.close-modal'|translate\"></button>\n </div>\n <div class=\"modal-body mb-3\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer modal-footer-shadow\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal-footer:empty{display:none}\n"], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModalComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: 'it-modal[id][title]', exportAs: 'itModal', template: "<div [id]=\"id\" class=\"modal fade\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-label'\" #modalElement>\n <div class=\"modal-dialog {{size}}\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title h5 no_toc\" id=\"{{id}}-label\">{{title}}</h2>\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" [attr.aria-label]=\"'it.core.close-modal'|translate\"></button>\n </div>\n <div class=\"modal-body mb-3\">\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer modal-footer-shadow\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal-footer:empty{display:none}\n"] }]
80
+ }], propDecorators: { title: [{
81
+ type: Input
82
+ }], size: [{
83
+ type: Input
84
+ }], onShow: [{
85
+ type: Output
86
+ }], onShown: [{
87
+ type: Output
88
+ }], onHide: [{
89
+ type: Output
90
+ }], onHidden: [{
91
+ type: Output
92
+ }], onHidePrevented: [{
93
+ type: Output
94
+ }], modalElement: [{
95
+ type: ViewChild,
96
+ args: ['modalElement', { static: false }]
97
+ }] } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVF6QyxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjtJQU5yRDs7UUFrQkU7O1dBRUc7UUFDTyxXQUFNLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0Q7O1dBRUc7UUFDTyxZQUFPLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUQ7O1dBRUc7UUFDTyxXQUFNLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0Q7O1dBRUc7UUFDTyxhQUFRLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0Q7OztXQUdHO1FBQ08sb0JBQWUsR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQTJEckU7SUFuRFUsZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO1lBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWhELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzVFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNoRixPQUFPLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQy9GO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUNqQixJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFBO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFBO0lBQ3ZCLENBQUM7OzJHQTdGVSxjQUFjOytGQUFkLGNBQWMsZ1lDWDNCLDR2QkFvQkE7MkZEVGEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxxQkFBcUIsWUFHckIsU0FBUzs4QkFPVixLQUFLO3NCQUFiLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUtJLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxPQUFPO3NCQUFoQixNQUFNO2dCQUtHLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQU1HLGVBQWU7c0JBQXhCLE1BQU07Z0JBTUMsWUFBWTtzQkFEbkIsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtbW9kYWxbaWRdW3RpdGxlXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnaXRNb2RhbCdcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RhbCBUaXRsZVxuICAgKi9cbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RhbCBzaXplXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ21vZGFsLXNtJyB8ICdtb2RhbC1sZycgfCAnbW9kYWwteGwnO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGZpcmVzIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGluc3RhbmNlIG1ldGhvZCBzaG93IGlzIGNhbGxlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvblNob3c6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZmlyZXMgd2hlbiB0aGUgbW9kYWwgaGFzIGJlZW4gbWFkZSB2aXNpYmxlIHRvIHRoZSB1c2VyIChpdCB3aWxsIHdhaXQgZm9yIENTUyB0cmFuc2l0aW9ucyB0byBjb21wbGV0ZSkuXG4gICAqL1xuICBAT3V0cHV0KCkgb25TaG93bjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyByYWlzZWQgaW1tZWRpYXRlbHkgd2hlbiB0aGUgaW5zdGFuY2UgbWV0aG9kIGhpZGUgaGFzIGJlZW4gY2FsbGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uSGlkZTogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBmaXJlcyB3aGVuIHRoZSBtb2RhbCBoYXMgZmluaXNoZWQgaGlkaW5nIGZyb20gdGhlIHVzZXIgKGl0IHdpbGwgd2FpdCBmb3IgQ1NTIHRyYW5zaXRpb25zIHRvIGNvbXBsZXRlKS5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSBtb2RhbCBpcyBkaXNwbGF5ZWQsIGl0cyBiYWNrZ3JvdW5kIGlzIHN0YXRpYyBhbmQgYSBjbGljayBvdXRzaWRlIHRoZSBtb2RhbCBvciBhIHByZXNzXG4gICAqIG9mIHRoZSBlc2Mga2V5IG9jY3VycyBhbmQgZGF0YS1icy1rZXlib2FyZCBpcyBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBAT3V0cHV0KCkgb25IaWRlUHJldmVudGVkOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgcHJpdmF0ZSBtb2RhbDogYW55O1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsRWxlbWVudCcsIHtzdGF0aWM6IGZhbHNlfSlcbiAgcHJpdmF0ZSBtb2RhbEVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RpdGxlJyk7XG5cbiAgICBpZiAodGhpcy5tb2RhbEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm1vZGFsRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgdGhpcy5tb2RhbCA9IE1vZGFsLmdldE9yQ3JlYXRlSW5zdGFuY2UoZWxlbWVudCk7XG5cbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2hvdy5icy5tb2RhbCcsIGV2ZW50ID0+IHRoaXMub25TaG93LmVtaXQoZXZlbnQpKTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2hvd24uYnMubW9kYWwnLCBldmVudCA9PiB0aGlzLm9uU2hvd24uZW1pdChldmVudCkpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdoaWRlLmJzLm1vZGFsJywgZXZlbnQgPT4gdGhpcy5vbkhpZGUuZW1pdChldmVudCkpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdoaWRkZW4uYnMubW9kYWwnLCBldmVudCA9PiB0aGlzLm9uSGlkZGVuLmVtaXQoZXZlbnQpKTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaGlkZVByZXZlbnRlZC5icy5tb2RhbCcsIGV2ZW50ID0+IHRoaXMub25IaWRlUHJldmVudGVkLmVtaXQoZXZlbnQpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFudWFsbHkgYWN0aXZhdGUvZGVhY3RpdmF0ZSBhIG1vZGFsLiBSZXR1cm5zIHRvIHRoZSBjYWxsZXIgYmVmb3JlIHRoZSBtb2RhbCBoYXMgYWN0dWFsbHkgYmVlbiBzaG93biBvciBoaWRkZW5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbD8udG9nZ2xlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW51YWxseSBvcGVuIGEgbW9kYWwuIFJldHVybnMgdG8gdGhlIGNhbGxlciBiZWZvcmUgdGhlIG1vZGFsIGhhcyBhY3R1YWxseSBiZWVuIGRpc3BsYXllZFxuICAgKi9cbiAgcHVibGljIHNob3coKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbD8uc2hvdygpXG4gIH1cblxuICAvKipcbiAgICogTWFudWFsbHkgaGlkZSBhIG1vZGFsLiBSZXR1cm5zIHRvIHRoZSBjYWxsZXIgYmVmb3JlIHRoZSBtb2RhbCBoYXMgYWN0dWFsbHkgYmVlbiBoaWRkZW5cbiAgICovXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWw/LmhpZGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIE1hbnVhbGx5IHJlcG9zaXRpb24gdGhlIG1vZGFsIGlmIHRoZSBoZWlnaHQgb2YgdGhlIG1vZGFsIGNoYW5nZXMgd2hlbiBpdCBpcyBvcGVuZWQgKGluIGNhc2UgYSBzY3JvbGwgYmFyIGFwcGVhcnMpLlxuICAgKi9cbiAgcHVibGljIGhhbmRsZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsPy5oYW5kbGVVcGRhdGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBtb2RhbCBvZiBhbiBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbD8uZGlzcG9zZSgpXG4gIH1cblxufVxuIiwiPGRpdiBbaWRdPVwiaWRcIiBjbGFzcz1cIm1vZGFsIGZhZGVcIlxuICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCsnLWxhYmVsJ1wiICNtb2RhbEVsZW1lbnQ+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cge3tzaXplfX1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJtb2RhbC10aXRsZSBoNSBub190b2NcIiBpZD1cInt7aWR9fS1sYWJlbFwiPnt7dGl0bGV9fTwvaDI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgZGF0YS1icy1kaXNtaXNzPVwibW9kYWxcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidpdC5jb3JlLmNsb3NlLW1vZGFsJ3x0cmFuc2xhdGVcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgbWItM1wiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXIgbW9kYWwtZm9vdGVyLXNoYWRvd1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,66 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { NotificationType } from '../../../interfaces/core';
3
+ import { Notification as BSNotification } from 'bootstrap-italia';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../services/notifications/notifications.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../../utils/icon/icon.component";
8
+ import * as i4 from "@ngx-translate/core";
9
+ export class NotificationsComponent {
10
+ constructor(_notificationService) {
11
+ this._notificationService = _notificationService;
12
+ /**
13
+ * Default notifications duration
14
+ * @default 8000
15
+ */
16
+ this.duration = 8000;
17
+ this.notifications = [];
18
+ this.subscription = this._notificationService.onNotification().subscribe(notification => {
19
+ if (!notification.duration) {
20
+ notification.duration = this.duration; // Add duration if not is set
21
+ }
22
+ if (!notification.position && this.position) {
23
+ notification.position = this.position; // Add position if not is set
24
+ }
25
+ const newNotification = {
26
+ ...notification,
27
+ id: `${notification.type}-${this.notifications.length}-notification`
28
+ };
29
+ const index = this.notifications.push(newNotification);
30
+ setTimeout(() => {
31
+ // Show the notification
32
+ new BSNotification(document.getElementById(newNotification.id), {
33
+ timeout: notification.duration
34
+ }).show();
35
+ // Clear notification after the duration
36
+ setTimeout(() => {
37
+ this.notifications = this.notifications.splice(index, 1);
38
+ }, notification.duration);
39
+ }, 200);
40
+ });
41
+ }
42
+ ngOnDestroy() {
43
+ this.subscription.unsubscribe();
44
+ }
45
+ get NotificationType() {
46
+ return NotificationType;
47
+ }
48
+ /**
49
+ * Hide the notification
50
+ * @param id
51
+ */
52
+ hideNotification(id) {
53
+ BSNotification.getInstance(document.getElementById(id))?.hide();
54
+ }
55
+ }
56
+ NotificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationsComponent, deps: [{ token: i1.NotificationsService }], target: i0.ɵɵFactoryTarget.Component });
57
+ NotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NotificationsComponent, selector: "it-notifications", inputs: { duration: "duration", position: "position" }, ngImport: i0, template: "<div *ngFor=\"let notification of notifications; let i = index\"\n [id]=\"notification.id\"\n class=\"notification {{notification.position}} {{notification.type}}\"\n [class.with-icon]=\"notification.type !== NotificationType.Standard\"\n [class.dismissable]=\"notification.dismissable\"\n role=\"alert\" [attr.aria-labelledby]=\"notification.id+'-title'\">\n\n <h2 [id]=\"notification.id+'-title'\" class=\"h5\">\n <ng-container>{{notification.title}}</ng-container>\n </h2>\n <p *ngIf=\"notification.message\">{{notification.message}}</p>\n\n <button *ngIf=\"notification.dismissable\" type=\"button\" class=\"btn notification-close\"\n (click)=\"hideNotification(notification.id)\">\n <it-icon name=\"close\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.close-notification'|translate:{title: notification.title} }}</span>\n </button>\n</div>\n", styles: [".notification{z-index:10000}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NotificationsComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'it-notifications', template: "<div *ngFor=\"let notification of notifications; let i = index\"\n [id]=\"notification.id\"\n class=\"notification {{notification.position}} {{notification.type}}\"\n [class.with-icon]=\"notification.type !== NotificationType.Standard\"\n [class.dismissable]=\"notification.dismissable\"\n role=\"alert\" [attr.aria-labelledby]=\"notification.id+'-title'\">\n\n <h2 [id]=\"notification.id+'-title'\" class=\"h5\">\n <ng-container>{{notification.title}}</ng-container>\n </h2>\n <p *ngIf=\"notification.message\">{{notification.message}}</p>\n\n <button *ngIf=\"notification.dismissable\" type=\"button\" class=\"btn notification-close\"\n (click)=\"hideNotification(notification.id)\">\n <it-icon name=\"close\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.close-notification'|translate:{title: notification.title} }}</span>\n </button>\n</div>\n", styles: [".notification{z-index:10000}\n"] }]
61
+ }], ctorParameters: function () { return [{ type: i1.NotificationsService }]; }, propDecorators: { duration: [{
62
+ type: Input
63
+ }], position: [{
64
+ type: Input
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFzQyxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxZQUFZLElBQUksY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQU9sRSxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxZQUNtQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQWY3RDs7O1dBR0c7UUFDTSxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBUWpDLGtCQUFhLEdBQXlDLEVBQUUsQ0FBQztRQUt2RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7Z0JBQzFCLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLDZCQUE2QjthQUNyRTtZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzNDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLDZCQUE2QjthQUNyRTtZQUVELE1BQU0sZUFBZSxHQUFHO2dCQUN0QixHQUFHLFlBQVk7Z0JBQ2YsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sZUFBZTthQUNyRSxDQUFDO1lBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFdkQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCx3QkFBd0I7Z0JBQ3hCLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUM5RCxPQUFPLEVBQUUsWUFBWSxDQUFDLFFBQVE7aUJBQy9CLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFVix3Q0FBd0M7Z0JBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELENBQUMsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEVBQVU7UUFDekIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEUsQ0FBQzs7bUhBN0RVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGdIQ1puQyxzNEJBa0JBOzJGRE5hLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxrQkFBa0I7MkdBVW5CLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uUG9zaXRpb24sIE5vdGlmaWNhdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NvcmUnO1xuXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gYXMgQlNOb3RpZmljYXRpb24gfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtbm90aWZpY2F0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9ucy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG5vdGlmaWNhdGlvbnMgZHVyYXRpb25cbiAgICogQGRlZmF1bHQgODAwMFxuICAgKi9cbiAgQElucHV0KCkgZHVyYXRpb246IG51bWJlciA9IDgwMDA7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbm90aWZpY2F0aW9ucyBwb3NpdGlvblxuICAgKi9cbiAgQElucHV0KCkgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBub3RpZmljYXRpb25zOiBBcnJheTxOb3RpZmljYXRpb24gJiB7IGlkOiBzdHJpbmcgfT4gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZVxuICApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uub25Ob3RpZmljYXRpb24oKS5zdWJzY3JpYmUobm90aWZpY2F0aW9uID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmR1cmF0aW9uKSB7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5kdXJhdGlvbiA9IHRoaXMuZHVyYXRpb247IC8vIEFkZCBkdXJhdGlvbiBpZiBub3QgaXMgc2V0XG4gICAgICB9XG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5wb3NpdGlvbiAmJiB0aGlzLnBvc2l0aW9uKSB7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb247IC8vIEFkZCBwb3NpdGlvbiBpZiBub3QgaXMgc2V0XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld05vdGlmaWNhdGlvbiA9IHtcbiAgICAgICAgLi4ubm90aWZpY2F0aW9uLFxuICAgICAgICBpZDogYCR7bm90aWZpY2F0aW9uLnR5cGV9LSR7dGhpcy5ub3RpZmljYXRpb25zLmxlbmd0aH0tbm90aWZpY2F0aW9uYFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5ub3RpZmljYXRpb25zLnB1c2gobmV3Tm90aWZpY2F0aW9uKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIFNob3cgdGhlIG5vdGlmaWNhdGlvblxuICAgICAgICBuZXcgQlNOb3RpZmljYXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmV3Tm90aWZpY2F0aW9uLmlkKSwge1xuICAgICAgICAgIHRpbWVvdXQ6IG5vdGlmaWNhdGlvbi5kdXJhdGlvblxuICAgICAgICB9KS5zaG93KCk7XG5cbiAgICAgICAgLy8gQ2xlYXIgbm90aWZpY2F0aW9uIGFmdGVyIHRoZSBkdXJhdGlvblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSB0aGlzLm5vdGlmaWNhdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSwgbm90aWZpY2F0aW9uLmR1cmF0aW9uKTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IE5vdGlmaWNhdGlvblR5cGUoKTogdHlwZW9mIE5vdGlmaWNhdGlvblR5cGUge1xuICAgIHJldHVybiBOb3RpZmljYXRpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGUgdGhlIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIGhpZGVOb3RpZmljYXRpb24oaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIEJTTm90aWZpY2F0aW9uLmdldEluc3RhbmNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSk/LmhpZGUoKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnM7IGxldCBpID0gaW5kZXhcIlxuICAgICBbaWRdPVwibm90aWZpY2F0aW9uLmlkXCJcbiAgICAgY2xhc3M9XCJub3RpZmljYXRpb24ge3tub3RpZmljYXRpb24ucG9zaXRpb259fSB7e25vdGlmaWNhdGlvbi50eXBlfX1cIlxuICAgICBbY2xhc3Mud2l0aC1pY29uXT1cIm5vdGlmaWNhdGlvbi50eXBlICE9PSBOb3RpZmljYXRpb25UeXBlLlN0YW5kYXJkXCJcbiAgICAgW2NsYXNzLmRpc21pc3NhYmxlXT1cIm5vdGlmaWNhdGlvbi5kaXNtaXNzYWJsZVwiXG4gICAgIHJvbGU9XCJhbGVydFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJub3RpZmljYXRpb24uaWQrJy10aXRsZSdcIj5cblxuICA8aDIgW2lkXT1cIm5vdGlmaWNhdGlvbi5pZCsnLXRpdGxlJ1wiIGNsYXNzPVwiaDVcIj5cbiAgICA8bmctY29udGFpbmVyPnt7bm90aWZpY2F0aW9uLnRpdGxlfX08L25nLWNvbnRhaW5lcj5cbiAgPC9oMj5cbiAgPHAgKm5nSWY9XCJub3RpZmljYXRpb24ubWVzc2FnZVwiPnt7bm90aWZpY2F0aW9uLm1lc3NhZ2V9fTwvcD5cblxuICA8YnV0dG9uICpuZ0lmPVwibm90aWZpY2F0aW9uLmRpc21pc3NhYmxlXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIG5vdGlmaWNhdGlvbi1jbG9zZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhpZGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLmlkKVwiPlxuICAgIDxpdC1pY29uIG5hbWU9XCJjbG9zZVwiPjwvaXQtaWNvbj5cbiAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmNvcmUuY2xvc2Utbm90aWZpY2F0aW9uJ3x0cmFuc2xhdGU6e3RpdGxlOiBub3RpZmljYXRpb24udGl0bGV9IH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19