design-angular-kit 1.0.0-2 → 1.0.0-21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/README.md +102 -26
  2. package/assets/i18n/en.json +122 -0
  3. package/assets/i18n/it.json +52 -11
  4. package/esm2022/lib/abstracts/abstract-form.component.mjs +186 -0
  5. package/esm2022/lib/abstracts/abstract.component.mjs +45 -0
  6. package/esm2022/lib/components/components.module.mjs +188 -0
  7. package/esm2022/lib/components/core/accordion/accordion.component.mjs +38 -0
  8. package/esm2022/lib/components/core/alert/alert.component.mjs +74 -0
  9. package/esm2022/lib/components/core/badge/badge.directive.mjs +38 -0
  10. package/esm2022/lib/components/core/button/button.directive.mjs +85 -0
  11. package/esm2022/lib/components/core/callout/callout.component.mjs +57 -0
  12. package/esm2022/lib/components/core/card/card.component.mjs +64 -0
  13. package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +89 -0
  14. package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +19 -0
  15. package/esm2022/lib/components/core/carousel/carousel.module.mjs +23 -0
  16. package/esm2022/lib/components/core/chip/chip.component.mjs +96 -0
  17. package/esm2022/lib/components/core/collapse/collapse.component.mjs +101 -0
  18. package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +24 -0
  19. package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
  20. package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +59 -0
  21. package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +27 -0
  22. package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +143 -0
  23. package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +68 -0
  24. package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +18 -0
  25. package/esm2022/lib/components/core/forward/forward.directive.mjs +53 -0
  26. package/esm2022/lib/components/core/link/link.component.mjs +46 -0
  27. package/esm2022/lib/components/core/list/list/list.component.mjs +17 -0
  28. package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +40 -0
  29. package/esm2022/lib/components/core/list/list.module.mjs +23 -0
  30. package/esm2022/lib/components/core/modal/modal.component.mjs +192 -0
  31. package/esm2022/lib/components/core/notifications/notifications.component.mjs +111 -0
  32. package/esm2022/lib/components/core/pagination/pagination.component.mjs +133 -0
  33. package/esm2022/lib/components/core/popover/popover.directive.mjs +175 -0
  34. package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +35 -0
  35. package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +27 -0
  36. package/esm2022/lib/components/core/spinner/spinner.component.mjs +36 -0
  37. package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +138 -0
  38. package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +19 -0
  39. package/esm2022/lib/components/core/steppers/steppers.module.mjs +23 -0
  40. package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +60 -0
  41. package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +36 -0
  42. package/esm2022/lib/components/core/tab/tab.module.mjs +23 -0
  43. package/esm2022/lib/components/core/table/table.component.mjs +57 -0
  44. package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +142 -0
  45. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +49 -0
  46. package/esm2022/lib/components/form/form.module.mjs +55 -0
  47. package/esm2022/lib/components/form/input/input.component.mjs +239 -0
  48. package/esm2022/lib/components/form/password-input/password-input.component.mjs +155 -0
  49. package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +69 -0
  50. package/esm2022/lib/components/form/range/range.component.mjs +64 -0
  51. package/esm2022/lib/components/form/rating/rating.component.mjs +51 -0
  52. package/esm2022/lib/components/form/select/select.component.mjs +70 -0
  53. package/esm2022/lib/components/form/textarea/textarea.component.mjs +47 -0
  54. package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +140 -0
  55. package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +112 -0
  56. package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +71 -0
  57. package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +64 -0
  58. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +57 -0
  59. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +23 -0
  60. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
  61. package/esm2022/lib/components/navigation/header/header.component.mjs +58 -0
  62. package/esm2022/lib/components/utils/error-page/error-page.component.mjs +81 -0
  63. package/esm2022/lib/components/utils/icon/icon.component.mjs +55 -0
  64. package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +47 -0
  65. package/esm2022/lib/design-angular-kit-config.mjs +15 -0
  66. package/esm2022/lib/design-angular-kit.module.mjs +68 -0
  67. package/esm2022/lib/interfaces/core.mjs +16 -0
  68. package/esm2022/lib/interfaces/design-angular-kit-init.mjs +2 -0
  69. package/esm2022/lib/interfaces/form.mjs +2 -0
  70. package/esm2022/lib/interfaces/icon.mjs +165 -0
  71. package/esm2022/lib/interfaces/utils.mjs +2 -0
  72. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +37 -0
  73. package/esm2022/lib/services/notification/notification.service.mjs +120 -0
  74. package/esm2022/lib/utils/file-utils.mjs +73 -0
  75. package/esm2022/lib/utils/regex.mjs +31 -0
  76. package/esm2022/lib/validators/it-validators.mjs +153 -0
  77. package/esm2022/public_api.mjs +85 -0
  78. package/fesm2022/design-angular-kit.mjs +4649 -0
  79. package/fesm2022/design-angular-kit.mjs.map +1 -0
  80. package/lib/abstracts/{abstract-form-component.d.ts → abstract-form.component.d.ts} +12 -10
  81. package/lib/abstracts/abstract.component.d.ts +24 -8
  82. package/lib/components/components.module.d.ts +40 -0
  83. package/lib/components/core/accordion/accordion.component.d.ts +11 -9
  84. package/lib/components/core/alert/alert.component.d.ts +32 -5
  85. package/lib/components/core/badge/badge.directive.d.ts +12 -6
  86. package/lib/components/core/button/button.directive.d.ts +24 -17
  87. package/lib/components/core/callout/callout.component.d.ts +26 -17
  88. package/lib/components/core/card/card.component.d.ts +23 -13
  89. package/lib/components/core/carousel/carousel/carousel.component.d.ts +34 -15
  90. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +8 -3
  91. package/lib/components/core/carousel/carousel.module.d.ts +8 -0
  92. package/lib/components/core/chip/chip.component.d.ts +8 -5
  93. package/lib/components/core/collapse/collapse.component.d.ts +16 -15
  94. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +3 -3
  95. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +3 -3
  96. package/lib/components/core/dimmer/dimmer.component.d.ts +4 -4
  97. package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
  98. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +53 -10
  99. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +8 -13
  100. package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
  101. package/lib/components/core/forward/forward.directive.d.ts +3 -3
  102. package/lib/components/core/link/link.component.d.ts +9 -10
  103. package/lib/components/core/list/list/list.component.d.ts +6 -5
  104. package/lib/components/core/list/list-item/list-item.component.d.ts +12 -8
  105. package/lib/components/core/list/list.module.d.ts +8 -0
  106. package/lib/components/core/modal/modal.component.d.ts +83 -14
  107. package/lib/components/core/notifications/notifications.component.d.ts +25 -11
  108. package/lib/components/core/pagination/pagination.component.d.ts +71 -10
  109. package/lib/components/core/popover/popover.directive.d.ts +15 -14
  110. package/lib/components/core/progress-bar/progress-bar.component.d.ts +6 -6
  111. package/lib/components/core/progress-button/progress-button.component.d.ts +5 -5
  112. package/lib/components/core/spinner/spinner.component.d.ts +6 -6
  113. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +128 -0
  114. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +20 -0
  115. package/lib/components/core/steppers/steppers.module.d.ts +8 -0
  116. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +14 -12
  117. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +11 -11
  118. package/lib/components/core/tab/tab.module.d.ts +8 -0
  119. package/lib/components/core/table/table.component.d.ts +14 -14
  120. package/lib/components/core/tooltip/tooltip.directive.d.ts +12 -11
  121. package/lib/components/form/checkbox/checkbox.component.d.ts +13 -10
  122. package/lib/components/form/form.module.d.ts +16 -0
  123. package/lib/components/form/input/input.component.d.ts +59 -13
  124. package/lib/components/form/password-input/password-input.component.d.ts +33 -8
  125. package/lib/components/form/radio-button/radio-button.component.d.ts +7 -6
  126. package/lib/components/form/range/range.component.d.ts +42 -0
  127. package/lib/components/form/rating/rating.component.d.ts +24 -0
  128. package/lib/components/form/select/select.component.d.ts +12 -6
  129. package/lib/components/form/textarea/textarea.component.d.ts +5 -5
  130. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +8 -7
  131. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +11 -9
  132. package/lib/components/navigation/back-button/back-button.component.d.ts +4 -4
  133. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +28 -13
  134. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +11 -9
  135. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +6 -6
  136. package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
  137. package/lib/components/navigation/header/header.component.d.ts +9 -13
  138. package/lib/components/utils/error-page/error-page.component.d.ts +44 -0
  139. package/lib/components/utils/icon/icon.component.d.ts +14 -16
  140. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +27 -0
  141. package/lib/design-angular-kit-config.d.ts +16 -0
  142. package/lib/design-angular-kit.module.d.ts +9 -4
  143. package/lib/interfaces/core.d.ts +40 -16
  144. package/lib/interfaces/design-angular-kit-init.d.ts +7 -0
  145. package/lib/interfaces/form.d.ts +32 -8
  146. package/lib/interfaces/icon.d.ts +4 -3
  147. package/lib/interfaces/utils.d.ts +10 -0
  148. package/lib/pipes/mark-matching-text.pipe.d.ts +10 -0
  149. package/lib/services/{notifications/notifications.service.d.ts → notification/notification.service.d.ts} +20 -20
  150. package/lib/utils/boolean-input.d.ts +1 -1
  151. package/lib/utils/file-utils.d.ts +5 -0
  152. package/lib/utils/regex.d.ts +5 -0
  153. package/lib/validators/it-validators.d.ts +16 -9
  154. package/package.json +13 -17
  155. package/public_api.d.ts +21 -4
  156. package/esm2020/lib/abstracts/abstract-form-component.mjs +0 -165
  157. package/esm2020/lib/abstracts/abstract.component.mjs +0 -20
  158. package/esm2020/lib/components/core/accordion/accordion.component.mjs +0 -20
  159. package/esm2020/lib/components/core/alert/alert.component.mjs +0 -29
  160. package/esm2020/lib/components/core/badge/badge.directive.mjs +0 -34
  161. package/esm2020/lib/components/core/button/button.directive.mjs +0 -78
  162. package/esm2020/lib/components/core/callout/callout.component.mjs +0 -59
  163. package/esm2020/lib/components/core/card/card.component.mjs +0 -58
  164. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +0 -66
  165. package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +0 -14
  166. package/esm2020/lib/components/core/chip/chip.component.mjs +0 -89
  167. package/esm2020/lib/components/core/collapse/collapse.component.mjs +0 -96
  168. package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +0 -24
  169. package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +0 -11
  170. package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +0 -59
  171. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +0 -60
  172. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +0 -71
  173. package/esm2020/lib/components/core/forward/forward.directive.mjs +0 -51
  174. package/esm2020/lib/components/core/link/link.component.mjs +0 -39
  175. package/esm2020/lib/components/core/list/list/list.component.mjs +0 -13
  176. package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +0 -36
  177. package/esm2020/lib/components/core/modal/modal.component.mjs +0 -98
  178. package/esm2020/lib/components/core/notifications/notifications.component.mjs +0 -66
  179. package/esm2020/lib/components/core/pagination/pagination.component.mjs +0 -51
  180. package/esm2020/lib/components/core/popover/popover.directive.mjs +0 -176
  181. package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +0 -34
  182. package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +0 -27
  183. package/esm2020/lib/components/core/spinner/spinner.component.mjs +0 -35
  184. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +0 -33
  185. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +0 -36
  186. package/esm2020/lib/components/core/table/table.component.mjs +0 -57
  187. package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +0 -140
  188. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -40
  189. package/esm2020/lib/components/form/input/input.component.mjs +0 -159
  190. package/esm2020/lib/components/form/password-input/password-input.component.mjs +0 -112
  191. package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +0 -53
  192. package/esm2020/lib/components/form/select/select.component.mjs +0 -62
  193. package/esm2020/lib/components/form/textarea/textarea.component.mjs +0 -46
  194. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +0 -134
  195. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +0 -99
  196. package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +0 -69
  197. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +0 -39
  198. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -45
  199. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +0 -23
  200. package/esm2020/lib/components/navigation/header/header.component.mjs +0 -61
  201. package/esm2020/lib/components/utils/icon/icon.component.mjs +0 -54
  202. package/esm2020/lib/components/utils/not-found-page/not-found-page.component.mjs +0 -13
  203. package/esm2020/lib/design-angular-kit.module.mjs +0 -42
  204. package/esm2020/lib/interfaces/core.mjs +0 -16
  205. package/esm2020/lib/interfaces/form.mjs +0 -2
  206. package/esm2020/lib/interfaces/icon.mjs +0 -2
  207. package/esm2020/lib/modules/components.module.mjs +0 -241
  208. package/esm2020/lib/services/notifications/notifications.service.mjs +0 -122
  209. package/esm2020/lib/utils/file-utils.mjs +0 -65
  210. package/esm2020/lib/utils/regex.mjs +0 -26
  211. package/esm2020/lib/validators/it-validators.mjs +0 -131
  212. package/esm2020/public_api.mjs +0 -64
  213. package/fesm2015/design-angular-kit.mjs +0 -3271
  214. package/fesm2015/design-angular-kit.mjs.map +0 -1
  215. package/fesm2020/design-angular-kit.mjs +0 -3231
  216. package/fesm2020/design-angular-kit.mjs.map +0 -1
  217. package/lib/components/utils/not-found-page/not-found-page.component.d.ts +0 -5
  218. package/lib/modules/components.module.d.ts +0 -57
  219. /package/{esm2020 → esm2022}/design-angular-kit.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/utils/boolean-input.mjs +0 -0
@@ -0,0 +1,112 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ItAbstractComponent } from '../../../abstracts/abstract.component';
3
+ import { isTrueBooleanInput } from '../../../utils/boolean-input';
4
+ import { FileUtils } from '../../../utils/file-utils';
5
+ import { forkJoin, take, tap } from 'rxjs';
6
+ import { NgForOf, NgIf } from '@angular/common';
7
+ import { ItIconComponent } from '../../utils/icon/icon.component';
8
+ import { TranslateModule } from '@ngx-translate/core';
9
+ import { ItTooltipDirective } from '../../core/tooltip/tooltip.directive';
10
+ import { ItProgressBarComponent } from '../../core/progress-bar/progress-bar.component';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@ngx-translate/core";
13
+ export class ItUploadFileListComponent extends ItAbstractComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+ /**
17
+ * The accepted file type to upload <br>
18
+ * Possible values: <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME Types</a> separated by comma
19
+ * @example application/pdf,image/png
20
+ * @default *
21
+ */
22
+ this.accept = '*';
23
+ /**
24
+ * If upload multiple files
25
+ */
26
+ this.multiple = true;
27
+ /**
28
+ * Fired when upload new files
29
+ */
30
+ this.uploadFiles = new EventEmitter();
31
+ /**
32
+ * Fired on delete item button click
33
+ */
34
+ this.deleteItem = new EventEmitter();
35
+ /**
36
+ * Cache to preview image
37
+ */
38
+ this.previewImages = new Map();
39
+ }
40
+ ngOnInit() {
41
+ if (this.isImageList && this.accept === '*') {
42
+ this.accept = 'image/*';
43
+ }
44
+ }
45
+ ngOnChanges(changes) {
46
+ if (changes['fileList'] && this.isImageList) {
47
+ const images$ = this.fileList.map(item => FileUtils.fileToBase64(item.file).pipe(take(1), tap(base64 => this.previewImages.set(item.id, base64))));
48
+ forkJoin(images$).subscribe(() => {
49
+ this._changeDetectorRef.detectChanges();
50
+ super.ngOnChanges(changes);
51
+ });
52
+ }
53
+ else {
54
+ super.ngOnChanges(changes);
55
+ }
56
+ }
57
+ get isMultipleInput() {
58
+ return isTrueBooleanInput(this.multiple);
59
+ }
60
+ get isImageList() {
61
+ return isTrueBooleanInput(this.images);
62
+ }
63
+ get isHideLoadButton() {
64
+ return isTrueBooleanInput(this.hideLoadButton);
65
+ }
66
+ /**
67
+ * On load file from input
68
+ * @param event
69
+ */
70
+ onLoadFiles(event) {
71
+ const input = event.target;
72
+ const files = input?.files;
73
+ if (!files?.length) {
74
+ return;
75
+ }
76
+ const newFiles = Array.from(files).filter(file => !this.fileList.some(item => {
77
+ return item.file.name === file.name && item.file.size === file.size && item.file.type === file.type;
78
+ }));
79
+ const fileList = new DataTransfer();
80
+ newFiles.forEach(file => fileList.items.add(file));
81
+ this.uploadFiles.emit(fileList.files);
82
+ input.value = '';
83
+ }
84
+ /**
85
+ * Get the file size string
86
+ * @param file
87
+ */
88
+ getFileSize(file) {
89
+ return FileUtils.getFileSizeString(file);
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItUploadFileListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItUploadFileListComponent, isStandalone: true, selector: "it-upload-file-list[fileList]", inputs: { fileList: "fileList", accept: "accept", multiple: "multiple", images: "images", hideLoadButton: "hideLoadButton" }, outputs: { uploadFiles: "uploadFiles", deleteItem: "deleteItem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? (item.progress ? 'secondary' : 'primary') : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" type=\"button\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\" type=\"button\" disabled>\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress!\"></it-progress-bar>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ItIconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: ItTooltipDirective, selector: "[itTooltip]", inputs: ["itTooltip", "tooltipPlacement", "tooltipHtml"], outputs: ["showEvent", "shownEvent", "hideEvent", "hiddenEvent", "insertedEvent"], exportAs: ["itTooltip"] }, { kind: "component", type: ItProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }] }); }
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItUploadFileListComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ standalone: true, selector: 'it-upload-file-list[fileList]', imports: [NgIf, NgForOf, ItIconComponent, TranslateModule, ItTooltipDirective, ItProgressBarComponent], template: "<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? (item.progress ? 'secondary' : 'primary') : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" type=\"button\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\" type=\"button\" disabled>\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress!\"></it-progress-bar>\n </li>\n</ul>\n" }]
97
+ }], propDecorators: { fileList: [{
98
+ type: Input
99
+ }], accept: [{
100
+ type: Input
101
+ }], multiple: [{
102
+ type: Input
103
+ }], images: [{
104
+ type: Input
105
+ }], hideLoadButton: [{
106
+ type: Input
107
+ }], uploadFiles: [{
108
+ type: Output
109
+ }], deleteItem: [{
110
+ type: Output
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdXBsb2FkLWZpbGUtbGlzdC91cGxvYWQtZmlsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZmlsZS1saXN0L3VwbG9hZC1maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7O0FBUXhGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxtQkFBbUI7SUFObEU7O1FBYUU7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBRTlCOztXQUVHO1FBQ00sYUFBUSxHQUFpQixJQUFJLENBQUM7UUFZdkM7O1dBRUc7UUFDTyxnQkFBVyxHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBRTdFOztXQUVHO1FBQ08sZUFBVSxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUVoRzs7V0FFRztRQUNILGtCQUFhLEdBQXdCLElBQUksR0FBRyxFQUFrQixDQUFDO0tBaUVoRTtJQS9EQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVRLFdBQVcsQ0FBQyxPQUFzQjtRQUN6QyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUM5RSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUN2RCxDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFZO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQy9DLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDbEIsT0FBTztTQUNSO1FBRUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDckcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLE1BQU0sUUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsSUFBVTtRQUNwQixPQUFPLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQTFHVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixzVUNsQnRDLGltRUF3Q0EsNENEeEJZLElBQUksNkZBQUUsT0FBTyxtSEFBRSxlQUFlLGtIQUFFLGVBQWUsNEZBQUUsa0JBQWtCLDhOQUFFLHNCQUFzQjs7MkZBRTFGLHlCQUF5QjtrQkFOckMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sK0JBQStCLFdBRWhDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixDQUFDOzhCQU83RixRQUFRO3NCQUFoQixLQUFLO2dCQVFHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBpc1RydWVCb29sZWFuSW5wdXQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ib29sZWFuLWlucHV0JztcbmltcG9ydCB7IFVwbG9hZEZpbGVMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZm9ybSc7XG5pbXBvcnQgeyBGaWxlVXRpbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9maWxlLXV0aWxzJztcbmltcG9ydCB7IGZvcmtKb2luLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSXRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEl0VG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2NvcmUvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJdFByb2dyZXNzQmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2l0LXVwbG9hZC1maWxlLWxpc3RbZmlsZUxpc3RdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbTmdJZiwgTmdGb3JPZiwgSXRJY29uQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGUsIEl0VG9vbHRpcERpcmVjdGl2ZSwgSXRQcm9ncmVzc0JhckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSXRVcGxvYWRGaWxlTGlzdENvbXBvbmVudCBleHRlbmRzIEl0QWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGZpbGVzIHRvIHNob3cgaW4gbGlzdFxuICAgKi9cbiAgQElucHV0KCkgZmlsZUxpc3QhOiBBcnJheTxVcGxvYWRGaWxlTGlzdEl0ZW0+O1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjZXB0ZWQgZmlsZSB0eXBlIHRvIHVwbG9hZCA8YnI+XG4gICAqIFBvc3NpYmxlIHZhbHVlczogPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQmFzaWNzX29mX0hUVFAvTUlNRV90eXBlcy9Db21tb25fdHlwZXNcIj5NSU1FIFR5cGVzPC9hPiBzZXBhcmF0ZWQgYnkgY29tbWFcbiAgICogQGV4YW1wbGUgYXBwbGljYXRpb24vcGRmLGltYWdlL3BuZ1xuICAgKiBAZGVmYXVsdCAqXG4gICAqL1xuICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZyA9ICcqJztcblxuICAvKipcbiAgICogSWYgdXBsb2FkIG11bHRpcGxlIGZpbGVzXG4gICAqL1xuICBASW5wdXQoKSBtdWx0aXBsZTogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogSWYgaXMgZmlsZSBsaXN0IGltYWdlXG4gICAqL1xuICBASW5wdXQoKSBpbWFnZXM6IEJvb2xlYW5JbnB1dCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSGlkZSB0aGUgbG9hZCBidXR0b25cbiAgICovXG4gIEBJbnB1dCgpIGhpZGVMb2FkQnV0dG9uOiBCb29sZWFuSW5wdXQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdXBsb2FkIG5ldyBmaWxlc1xuICAgKi9cbiAgQE91dHB1dCgpIHVwbG9hZEZpbGVzOiBFdmVudEVtaXR0ZXI8RmlsZUxpc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTGlzdD4oKTtcblxuICAvKipcbiAgICogRmlyZWQgb24gZGVsZXRlIGl0ZW0gYnV0dG9uIGNsaWNrXG4gICAqL1xuICBAT3V0cHV0KCkgZGVsZXRlSXRlbTogRXZlbnRFbWl0dGVyPFVwbG9hZEZpbGVMaXN0SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFVwbG9hZEZpbGVMaXN0SXRlbT4oKTtcblxuICAvKipcbiAgICogQ2FjaGUgdG8gcHJldmlldyBpbWFnZVxuICAgKi9cbiAgcHJldmlld0ltYWdlczogTWFwPG51bWJlciwgc3RyaW5nPiA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJbWFnZUxpc3QgJiYgdGhpcy5hY2NlcHQgPT09ICcqJykge1xuICAgICAgdGhpcy5hY2NlcHQgPSAnaW1hZ2UvKic7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydmaWxlTGlzdCddICYmIHRoaXMuaXNJbWFnZUxpc3QpIHtcbiAgICAgIGNvbnN0IGltYWdlcyQgPSB0aGlzLmZpbGVMaXN0Lm1hcChpdGVtID0+IEZpbGVVdGlscy5maWxlVG9CYXNlNjQoaXRlbS5maWxlKS5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICB0YXAoYmFzZTY0ID0+IHRoaXMucHJldmlld0ltYWdlcy5zZXQoaXRlbS5pZCwgYmFzZTY0KSlcbiAgICAgICkpO1xuICAgICAgZm9ya0pvaW4oaW1hZ2VzJCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNNdWx0aXBsZUlucHV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5tdWx0aXBsZSk7XG4gIH1cblxuICBnZXQgaXNJbWFnZUxpc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmltYWdlcyk7XG4gIH1cblxuICBnZXQgaXNIaWRlTG9hZEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuaGlkZUxvYWRCdXR0b24pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIGxvYWQgZmlsZSBmcm9tIGlucHV0XG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgb25Mb2FkRmlsZXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBmaWxlcyA9IGlucHV0Py5maWxlcztcbiAgICBpZiAoIWZpbGVzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdGaWxlcyA9IEFycmF5LmZyb20oZmlsZXMpLmZpbHRlcihmaWxlID0+ICF0aGlzLmZpbGVMaXN0LnNvbWUoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5maWxlLm5hbWUgPT09IGZpbGUubmFtZSAmJiBpdGVtLmZpbGUuc2l6ZSA9PT0gZmlsZS5zaXplICYmIGl0ZW0uZmlsZS50eXBlID09PSBmaWxlLnR5cGVcbiAgICB9KSk7XG5cbiAgICBjb25zdCBmaWxlTGlzdCA9IG5ldyBEYXRhVHJhbnNmZXIoKTtcbiAgICBuZXdGaWxlcy5mb3JFYWNoKGZpbGUgPT4gZmlsZUxpc3QuaXRlbXMuYWRkKGZpbGUpKTtcblxuICAgIHRoaXMudXBsb2FkRmlsZXMuZW1pdChmaWxlTGlzdC5maWxlcyk7XG4gICAgaW5wdXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZpbGUgc2l6ZSBzdHJpbmdcbiAgICogQHBhcmFtIGZpbGVcbiAgICovXG4gIGdldEZpbGVTaXplKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBGaWxlVXRpbHMuZ2V0RmlsZVNpemVTdHJpbmcoZmlsZSk7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0hpZGVMb2FkQnV0dG9uXCI+XG4gIDxpbnB1dCB0eXBlPVwiZmlsZVwiIFtpZF09XCJpZFwiIGNsYXNzPVwidXBsb2FkXCIgW2FjY2VwdF09XCJhY2NlcHRcIiBbbXVsdGlwbGVdPVwiaXNNdWx0aXBsZUlucHV0XCJcbiAgICAgICAgIChjaGFuZ2UpPVwib25Mb2FkRmlsZXMoJGV2ZW50KVwiIC8+XG4gIDxsYWJlbCBbZm9yXT1cImlkXCI+XG4gICAgPGl0LWljb24gbmFtZT1cInVwbG9hZFwiIHNpemU9XCJzbVwiPjwvaXQtaWNvbj5cbiAgICA8c3Bhbj57eydpdC5mb3JtLnVwbG9hZCd8dHJhbnNsYXRlfX08L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLWNvbnRhaW5lcj5cblxuPHVsIGNsYXNzPVwidXBsb2FkLWZpbGUtbGlzdFwiIFtjbGFzcy51cGxvYWQtZmlsZS1saXN0LWltYWdlXT1cImlzSW1hZ2VMaXN0XCIgKm5nSWY9XCJmaWxlTGlzdC5sZW5ndGhcIj5cbiAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbGVMaXN0XCIgY2xhc3M9XCJ1cGxvYWQtZmlsZVwiXG4gICAgICBbY2xhc3MuZXJyb3JdPVwiaXRlbS5lcnJvclwiXG4gICAgICBbY2xhc3MudXBsb2FkaW5nXT1cIiFpdGVtLmVycm9yICYmIGl0ZW0ucHJvZ3Jlc3MgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnByb2dyZXNzID4gMCAmJiBpdGVtLnByb2dyZXNzIDwgMTAwXCJcbiAgICAgIFtjbGFzcy5zdWNjZXNzXT1cIiFpdGVtLmVycm9yICYmICghaXRlbS5wcm9ncmVzcyB8fCBpdGVtLnByb2dyZXNzID49IDEwMClcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaW1hZ2VcIiAqbmdJZj1cImlzSW1hZ2VMaXN0OyBlbHNlIGljb25cIj5cbiAgICAgIDxpbWcgW2F0dHIuc3JjXT1cInByZXZpZXdJbWFnZXMuZ2V0KGl0ZW0uaWQpXCIgW2FsdF09XCJpdGVtLmZpbGUubmFtZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgPGl0LWljb24gbmFtZT1cImZpbGVcIiBzaXplPVwic21cIiBbY29sb3JdPVwiIWl0ZW0uZXJyb3IgPyAoaXRlbS5wcm9ncmVzcyA/ICdzZWNvbmRhcnknIDogJ3ByaW1hcnknKSA6ICdkYW5nZXInXCI+PC9pdC1pY29uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8cCBbaXRUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydpdC5mb3JtLnVwbG9hZGVkLWZpbGUnfHRyYW5zbGF0ZSA6IHsgbmFtZTogaXRlbS5maWxlLm5hbWUgfSB9fTwvc3Bhbj5cbiAgICAgIHt7aXRlbS5maWxlLm5hbWV9fSA8c3BhbiBjbGFzcz1cInVwbG9hZC1maWxlLXdlaWdodFwiPnt7Z2V0RmlsZVNpemUoaXRlbS5maWxlKX19PC9zcGFuPlxuICAgIDwvcD5cblxuICAgIDxidXR0b24gKm5nSWY9XCJpdGVtLnJlbW92YWJsZSAmJiAoIWl0ZW0ucHJvZ3Jlc3MgfHwgaXRlbS5wcm9ncmVzcyA8IDEwMClcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0uZW1pdChpdGVtKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydpdC5mb3JtLmRlbGV0ZS1maWxlJ3x0cmFuc2xhdGUgOiB7IG5hbWU6IGl0ZW0uZmlsZS5uYW1lIH0gfX08L3NwYW4+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiY2xvc2VcIj48L2l0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cIighaXRlbS5yZW1vdmFibGUgJiYgIWl0ZW0ucHJvZ3Jlc3MpIHx8IChpdGVtLnByb2dyZXNzICE9PSB1bmRlZmluZWQgJiYgaXRlbS5wcm9ncmVzcyA+PSAxMDApXCIgdHlwZT1cImJ1dHRvblwiIGRpc2FibGVkPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydpdC5mb3JtLnVwbG9hZC1jb21wbGV0ZSd8dHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiY2hlY2tcIj48L2l0LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8aXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiIWl0ZW0uZXJyb3IgJiYgaXRlbS5wcm9ncmVzcyAhPT0gdW5kZWZpbmVkICYmIGl0ZW0ucHJvZ3Jlc3MgPiAwICYmIGl0ZW0ucHJvZ3Jlc3MgPCAxMDBcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLnByb2dyZXNzIVwiPjwvaXQtcHJvZ3Jlc3MtYmFyPlxuICA8L2xpPlxuPC91bD5cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
3
+ import { isTrueBooleanInput } from '../../../utils/boolean-input';
4
+ import { ItButtonDirective } from '../../core/button/button.directive';
5
+ import { ItIconComponent } from '../../utils/icon/icon.component';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@ngx-translate/core";
10
+ export class ItBackButtonComponent {
11
+ get isShowIcon() {
12
+ return isTrueBooleanInput(this.showIcon);
13
+ }
14
+ get isShowText() {
15
+ return isTrueBooleanInput(this.showText);
16
+ }
17
+ constructor(_location) {
18
+ this._location = _location;
19
+ /**
20
+ * Back button style
21
+ * - <b>link</b>: use a link with icon and text
22
+ * - <b>button</b>: use a button with icon and text
23
+ * @default button
24
+ */
25
+ this.buttonStyle = 'button';
26
+ /**
27
+ * Button direction
28
+ * - <b>left</b>: Back direction
29
+ * - <b>up</b>: Upper direction
30
+ * @default left
31
+ */
32
+ this.direction = 'left';
33
+ /**
34
+ * Show/Hide icon
35
+ * @default true
36
+ */
37
+ this.showIcon = true;
38
+ /**
39
+ * Show/Hide text
40
+ * @default true
41
+ */
42
+ this.showText = true;
43
+ }
44
+ /**
45
+ * Go back function
46
+ */
47
+ goBack(event) {
48
+ event.preventDefault();
49
+ if (this.backFn) {
50
+ return this.backFn(this._location);
51
+ }
52
+ this._location.back();
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBackButtonComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItBackButtonComponent, isStandalone: true, selector: "it-back-button", inputs: { buttonStyle: "buttonStyle", direction: "direction", showIcon: "showIcon", showText: "showText", backFn: "backFn" }, exportAs: ["itBackButton"], ngImport: i0, template: "<a *ngIf=\"buttonStyle === 'link'\" href=\"#\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<button *ngIf=\"buttonStyle === 'button'\" itButton=\"primary\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<ng-template #content>\n <it-icon *ngIf=\"isShowIcon\"\n size=\"sm\"\n [name]=\"direction === 'left' ? 'arrow-left' : 'arrow-up'\"\n [color]=\"buttonStyle === 'link' ? 'primary' : 'white'\"\n [class.me-2]=\"isShowText\"></it-icon>\n\n <span [class.visually-hidden]=\"!isShowText\">\n {{(direction === 'left' ? 'it.navigation.go-back' : 'it.navigation.upper-level') | translate}}\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ItButtonDirective, selector: "[itButton]", inputs: ["itButton", "size", "block", "disabled"], exportAs: ["itButton"] }, { kind: "component", type: ItIconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBackButtonComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ standalone: true, selector: 'it-back-button', exportAs: 'itBackButton', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIf, NgTemplateOutlet, ItButtonDirective, ItIconComponent, TranslateModule], template: "<a *ngIf=\"buttonStyle === 'link'\" href=\"#\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<button *ngIf=\"buttonStyle === 'button'\" itButton=\"primary\" class=\"go-back\" (click)=\"goBack($event)\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<ng-template #content>\n <it-icon *ngIf=\"isShowIcon\"\n size=\"sm\"\n [name]=\"direction === 'left' ? 'arrow-left' : 'arrow-up'\"\n [color]=\"buttonStyle === 'link' ? 'primary' : 'white'\"\n [class.me-2]=\"isShowText\"></it-icon>\n\n <span [class.visually-hidden]=\"!isShowText\">\n {{(direction === 'left' ? 'it.navigation.go-back' : 'it.navigation.upper-level') | translate}}\n </span>\n</ng-template>\n" }]
60
+ }], ctorParameters: function () { return [{ type: i1.Location }]; }, propDecorators: { buttonStyle: [{
61
+ type: Input
62
+ }], direction: [{
63
+ type: Input
64
+ }], showIcon: [{
65
+ type: Input
66
+ }], showText: [{
67
+ type: Input
68
+ }], backFn: [{
69
+ type: Input
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JhY2stYnV0dG9uL2JhY2stYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9iYWNrLWJ1dHRvbi9iYWNrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQVksSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFVdEQsTUFBTSxPQUFPLHFCQUFxQjtJQXVDaEMsSUFBSSxVQUFVO1FBQ1osT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUNrQixTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBOUNyQzs7Ozs7V0FLRztRQUNNLGdCQUFXLEdBQXNCLFFBQVEsQ0FBQztRQUVuRDs7Ozs7V0FLRztRQUNNLGNBQVMsR0FBa0IsTUFBTSxDQUFDO1FBRTNDOzs7V0FHRztRQUNNLGFBQVEsR0FBaUIsSUFBSSxDQUFDO1FBRXZDOzs7V0FHRztRQUNNLGFBQVEsR0FBaUIsSUFBSSxDQUFDO0lBc0J2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBWTtRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0E5RFUscUJBQXFCO2tHQUFyQixxQkFBcUIsb09DZmxDLHN5QkFtQkEsNENETlksSUFBSSw2RkFBRSxnQkFBZ0Isb0pBQUUsaUJBQWlCLGtJQUFFLGVBQWUsa0hBQUUsZUFBZTs7MkZBRTFFLHFCQUFxQjtrQkFSakMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZ0JBQWdCLFlBRWhCLGNBQWMsbUJBQ1AsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDOytGQVU3RSxXQUFXO3NCQUFuQixLQUFLO2dCQVFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGlzVHJ1ZUJvb2xlYW5JbnB1dCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXQnO1xuaW1wb3J0IHsgSXRCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9jb3JlL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEl0SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2l0LWJhY2stYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhY2stYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdpdEJhY2tCdXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEl0QnV0dG9uRGlyZWN0aXZlLCBJdEljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgSXRCYWNrQnV0dG9uQ29tcG9uZW50IHtcblxuICAvKipcbiAgICogQmFjayBidXR0b24gc3R5bGVcbiAgICogLSA8Yj5saW5rPC9iPjogdXNlIGEgbGluayB3aXRoIGljb24gYW5kIHRleHRcbiAgICogLSA8Yj5idXR0b248L2I+OiB1c2UgYSBidXR0b24gd2l0aCBpY29uIGFuZCB0ZXh0XG4gICAqIEBkZWZhdWx0IGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgYnV0dG9uU3R5bGU6ICdsaW5rJyB8ICdidXR0b24nID0gJ2J1dHRvbic7XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiBkaXJlY3Rpb25cbiAgICogLSA8Yj5sZWZ0PC9iPjogQmFjayBkaXJlY3Rpb25cbiAgICogLSA8Yj51cDwvYj46IFVwcGVyIGRpcmVjdGlvblxuICAgKiBAZGVmYXVsdCBsZWZ0XG4gICAqL1xuICBASW5wdXQoKSBkaXJlY3Rpb246ICdsZWZ0JyB8ICd1cCcgPSAnbGVmdCc7XG5cbiAgLyoqXG4gICAqIFNob3cvSGlkZSBpY29uXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIHNob3dJY29uOiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTaG93L0hpZGUgdGV4dFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKSBzaG93VGV4dDogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ3VzdG9tIGJhY2sgbG9naWMgPGJyLz5cbiAgICpcbiAgICogTk9URTogdG8gdXNlICd0aGlzJyBuZWVkIGJpbmQgZnVuY3Rpb24gIDxici8+XG4gICAqIEBleGFtcGxlIGJhY2tDYkZuID0gdGhpcy5lcnJvckNhbGxiYWNrLmJpbmQodGhpcyk7XG4gICAqIChlcnJvckNhbGxiYWNrIGlzIHlvdXIgZnVuY3Rpb24sIHBhc3MgYmFja0NiRm4gdG8gdGhlIGNvbXBvbmVudClcbiAgICovXG4gIEBJbnB1dCgpIGJhY2tGbj86IChsb2NhdGlvbjogTG9jYXRpb24pID0+IHZvaWQ7XG5cbiAgZ2V0IGlzU2hvd0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNob3dJY29uKTtcbiAgfVxuXG4gIGdldCBpc1Nob3dUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5zaG93VGV4dCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgX2xvY2F0aW9uOiBMb2NhdGlvblxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHbyBiYWNrIGZ1bmN0aW9uXG4gICAqL1xuICBwdWJsaWMgZ29CYWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMuYmFja0ZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5iYWNrRm4odGhpcy5fbG9jYXRpb24pO1xuICAgIH1cblxuICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKTtcbiAgfVxufVxuIiwiPGEgKm5nSWY9XCJidXR0b25TdHlsZSA9PT0gJ2xpbmsnXCIgaHJlZj1cIiNcIiBjbGFzcz1cImdvLWJhY2tcIiAoY2xpY2spPVwiZ29CYWNrKCRldmVudClcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPGJ1dHRvbiAqbmdJZj1cImJ1dHRvblN0eWxlID09PSAnYnV0dG9uJ1wiIGl0QnV0dG9uPVwicHJpbWFyeVwiIGNsYXNzPVwiZ28tYmFja1wiIChjbGljayk9XCJnb0JhY2soJGV2ZW50KVwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9idXR0b24+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPGl0LWljb24gKm5nSWY9XCJpc1Nob3dJY29uXCJcbiAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgW25hbWVdPVwiZGlyZWN0aW9uID09PSAnbGVmdCcgPyAnYXJyb3ctbGVmdCcgOiAnYXJyb3ctdXAnXCJcbiAgICAgICAgICAgW2NvbG9yXT1cImJ1dHRvblN0eWxlID09PSAnbGluaycgPyAncHJpbWFyeScgOiAnd2hpdGUnXCJcbiAgICAgICAgICAgW2NsYXNzLm1lLTJdPVwiaXNTaG93VGV4dFwiPjwvaXQtaWNvbj5cblxuICA8c3BhbiBbY2xhc3MudmlzdWFsbHktaGlkZGVuXT1cIiFpc1Nob3dUZXh0XCI+XG4gICAge3soZGlyZWN0aW9uID09PSAnbGVmdCcgPyAnaXQubmF2aWdhdGlvbi5nby1iYWNrJyA6ICdpdC5uYXZpZ2F0aW9uLnVwcGVyLWxldmVsJykgfCB0cmFuc2xhdGV9fVxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,64 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
2
+ import { isTrueBooleanInput } from '../../../utils/boolean-input';
3
+ import { ItAbstractComponent } from '../../../abstracts/abstract.component';
4
+ import { BackToTop } from 'bootstrap-italia';
5
+ import { ItIconComponent } from '../../utils/icon/icon.component';
6
+ import * as i0 from "@angular/core";
7
+ export class ItBackToTopComponent extends ItAbstractComponent {
8
+ get isSmall() {
9
+ return isTrueBooleanInput(this.small);
10
+ }
11
+ get isShadow() {
12
+ return isTrueBooleanInput(this.shadow);
13
+ }
14
+ get isDark() {
15
+ return isTrueBooleanInput(this.dark);
16
+ }
17
+ ngAfterViewInit() {
18
+ super.ngAfterViewInit();
19
+ if (this.backToTopElement) {
20
+ const element = this.backToTopElement.nativeElement;
21
+ this.backToTop = BackToTop.getOrCreateInstance(element);
22
+ }
23
+ }
24
+ /**
25
+ * Show button
26
+ */
27
+ show() {
28
+ this.backToTop?.show();
29
+ }
30
+ /**
31
+ * Hide the button
32
+ */
33
+ hide() {
34
+ this.backToTop?.hide();
35
+ }
36
+ /**
37
+ * Activates the scroll animation towards the Y coordinate indicated by the positionTop option
38
+ */
39
+ scrollToTop() {
40
+ this.backToTop?.scrollToTop();
41
+ }
42
+ /**
43
+ * Eliminate component features
44
+ */
45
+ dispose() {
46
+ this.backToTop?.dispose();
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBackToTopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItBackToTopComponent, isStandalone: true, selector: "it-back-to-top", inputs: { small: "small", shadow: "shadow", dark: "dark" }, viewQueries: [{ propertyName: "backToTopElement", first: true, predicate: ["backToTop"], descendants: true }], exportAs: ["itBackToTop"], usesInheritance: true, ngImport: i0, template: "<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n", dependencies: [{ kind: "component", type: ItIconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBackToTopComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ standalone: true, selector: 'it-back-to-top', exportAs: 'itBackToTop', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ItIconComponent], template: "<a #backToTop [id]=\"id\"\n href=\"#\"\n aria-hidden=\"true\"\n class=\"back-to-top\"\n [class.back-to-top-small]=\"isSmall\"\n [class.shadow]=\"isShadow\"\n [class.dark]=\"isDark\">\n\n <it-icon name=\"arrow-up\" [color]=\"isDark ? 'secondary' : 'light'\"></it-icon>\n</a>\n" }]
54
+ }], propDecorators: { small: [{
55
+ type: Input
56
+ }], shadow: [{
57
+ type: Input
58
+ }], dark: [{
59
+ type: Input
60
+ }], backToTopElement: [{
61
+ type: ViewChild,
62
+ args: ['backToTop']
63
+ }] } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10by10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9iYWNrLXRvLXRvcC9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQVVsRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBcUIzRCxJQUFJLE9BQU87UUFDVCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFUSxlQUFlO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBcEVVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHVTQ2RqQyxrU0FVQSw0Q0RFWSxlQUFlOzsyRkFFZCxvQkFBb0I7a0JBUmhDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGdCQUFnQixZQUVoQixhQUFhLG1CQUNOLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxlQUFlLENBQUM7OEJBT2pCLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUkwQixnQkFBZ0I7c0JBQS9DLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5pbXBvcnQgeyBJdEFic3RyYWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWNrVG9Ub3AgfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcbmltcG9ydCB7IEl0SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpdC1iYWNrLXRvLXRvcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCcsXG4gIGV4cG9ydEFzOiAnaXRCYWNrVG9Ub3AnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0l0SWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSXRCYWNrVG9Ub3BDb21wb25lbnQgZXh0ZW5kcyBJdEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqXG4gICAqIFNob3cgc21hbGwgYnV0dG9uXG4gICAqL1xuICBASW5wdXQoKSBzbWFsbDogQm9vbGVhbklucHV0IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTaG93IHNoYWRvd1xuICAgKi9cbiAgQElucHV0KCkgc2hhZG93OiBCb29sZWFuSW5wdXQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiB1c2FibGUgYnV0dG9uIG9uIGEgZGFyayBiYWNrZ3JvdW5kXG4gICAqL1xuICBASW5wdXQoKSBkYXJrOiBCb29sZWFuSW5wdXQgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBiYWNrVG9Ub3A/OiBCYWNrVG9Ub3A7XG5cbiAgQFZpZXdDaGlsZCgnYmFja1RvVG9wJykgcHJpdmF0ZSBiYWNrVG9Ub3BFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD47XG5cbiAgZ2V0IGlzU21hbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNtYWxsKTtcbiAgfVxuXG4gIGdldCBpc1NoYWRvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc2hhZG93KTtcbiAgfVxuXG4gIGdldCBpc0RhcmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmRhcmspO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4gICAgaWYgKHRoaXMuYmFja1RvVG9wRWxlbWVudCkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuYmFja1RvVG9wRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgdGhpcy5iYWNrVG9Ub3AgPSBCYWNrVG9Ub3AuZ2V0T3JDcmVhdGVJbnN0YW5jZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBidXR0b25cbiAgICovXG4gIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMuYmFja1RvVG9wPy5zaG93KCk7XG4gIH1cblxuICAvKipcbiAgICogSGlkZSB0aGUgYnV0dG9uXG4gICAqL1xuICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tUb1RvcD8uaGlkZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgc2Nyb2xsIGFuaW1hdGlvbiB0b3dhcmRzIHRoZSBZIGNvb3JkaW5hdGUgaW5kaWNhdGVkIGJ5IHRoZSBwb3NpdGlvblRvcCBvcHRpb25cbiAgICovXG4gIHB1YmxpYyBzY3JvbGxUb1RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tUb1RvcD8uc2Nyb2xsVG9Ub3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hdGUgY29tcG9uZW50IGZlYXR1cmVzXG4gICAqL1xuICBwdWJsaWMgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tUb1RvcD8uZGlzcG9zZSgpO1xuICB9XG59XG4iLCI8YSAjYmFja1RvVG9wIFtpZF09XCJpZFwiXG4gICBocmVmPVwiI1wiXG4gICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgY2xhc3M9XCJiYWNrLXRvLXRvcFwiXG4gICBbY2xhc3MuYmFjay10by10b3Atc21hbGxdPVwiaXNTbWFsbFwiXG4gICBbY2xhc3Muc2hhZG93XT1cImlzU2hhZG93XCJcbiAgIFtjbGFzcy5kYXJrXT1cImlzRGFya1wiPlxuXG4gIDxpdC1pY29uIG5hbWU9XCJhcnJvdy11cFwiIFtjb2xvcl09XCJpc0RhcmsgPyAnc2Vjb25kYXJ5JyA6ICdsaWdodCdcIj48L2l0LWljb24+XG48L2E+XG4iXX0=
@@ -0,0 +1,57 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChildren, Input } from '@angular/core';
2
+ import { ItBreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';
3
+ import { isTrueBooleanInput } from '../../../../utils/boolean-input';
4
+ import { startWith } from 'rxjs';
5
+ import { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+ import { ItIconComponent } from '../../../utils/icon/icon.component';
8
+ import { ItLinkComponent } from '../../../core/link/link.component';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@ngx-translate/core";
11
+ export class ItBreadcrumbComponent {
12
+ get isDark() {
13
+ return isTrueBooleanInput(this.dark);
14
+ }
15
+ constructor(_changeDetectorRef) {
16
+ this._changeDetectorRef = _changeDetectorRef;
17
+ /**
18
+ * The character to use as separator
19
+ * @default /
20
+ */
21
+ this.separator = '/';
22
+ }
23
+ ngAfterViewInit() {
24
+ this.items?.changes.pipe(// When breadcrumb items changes (dynamic add/remove)
25
+ startWith(undefined)).subscribe(() => {
26
+ this.itemSubscriptions?.forEach(sub => sub.unsubscribe()); // Remove old subscriptions
27
+ this.itemSubscriptions = this.items?.map(item => item.valueChanges.subscribe(() => {
28
+ this._changeDetectorRef.detectChanges(); // DetectChanges when breadcrumb item attributes changes
29
+ }));
30
+ this._changeDetectorRef.detectChanges(); // Force update html render
31
+ });
32
+ }
33
+ ngOnDestroy() {
34
+ this.itemSubscriptions?.forEach(item => item.unsubscribe());
35
+ }
36
+ /**
37
+ * Check if index is last item
38
+ * @param index
39
+ */
40
+ isLastItem(index) {
41
+ return !!this.items && index >= (this.items.length - 1);
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBreadcrumbComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItBreadcrumbComponent, isStandalone: true, selector: "it-breadcrumb", inputs: { separator: "separator", dark: "dark" }, queries: [{ propertyName: "items", predicate: ItBreadcrumbItemComponent }], ngImport: i0, template: "<nav class=\"breadcrumb-container\" [attr.aria-label]=\"'it.navigation.navigation-path'|translate\">\n <ol *ngIf=\"items\" class=\"breadcrumb\" [class.dark]=\"isDark\" [class.px-3]=\"isDark\">\n <li *ngFor=\"let item of items; let i = index\"\n class=\"breadcrumb-item\"\n [class.active]=\"item.isActive\"\n [attr.aria-current]=\"item.isActive ? 'page' : null\">\n\n <it-icon *ngIf=\"item.iconName\"\n [name]=\"item.iconName\"\n [color]=\"isDark ? 'white' : 'secondary'\"\n size=\"sm\"\n svgClass=\"align-top me-1\"></it-icon>\n\n <it-link *ngIf=\"!item.isActive && !isLastItem(i); else activeContent\"\n [href]=\"item.href\" [class]=\"item.class\" [externalLink]=\"item.externalLink\" [disabled]=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </it-link>\n\n <ng-template #activeContent>\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </ng-template>\n\n <span *ngIf=\"!isLastItem(i)\" class=\"separator\">{{separator}}</span>\n </li>\n </ol>\n</nav>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ItIconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "component", type: ItLinkComponent, selector: "it-link", inputs: ["href", "externalLink", "disabled", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBreadcrumbComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ standalone: true, selector: 'it-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgForOf, NgIf, TranslateModule, ItIconComponent, ItLinkComponent, NgTemplateOutlet], template: "<nav class=\"breadcrumb-container\" [attr.aria-label]=\"'it.navigation.navigation-path'|translate\">\n <ol *ngIf=\"items\" class=\"breadcrumb\" [class.dark]=\"isDark\" [class.px-3]=\"isDark\">\n <li *ngFor=\"let item of items; let i = index\"\n class=\"breadcrumb-item\"\n [class.active]=\"item.isActive\"\n [attr.aria-current]=\"item.isActive ? 'page' : null\">\n\n <it-icon *ngIf=\"item.iconName\"\n [name]=\"item.iconName\"\n [color]=\"isDark ? 'white' : 'secondary'\"\n size=\"sm\"\n svgClass=\"align-top me-1\"></it-icon>\n\n <it-link *ngIf=\"!item.isActive && !isLastItem(i); else activeContent\"\n [href]=\"item.href\" [class]=\"item.class\" [externalLink]=\"item.externalLink\" [disabled]=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </it-link>\n\n <ng-template #activeContent>\n <ng-container *ngTemplateOutlet=\"item.htmlContent\"></ng-container>\n </ng-template>\n\n <span *ngIf=\"!isLastItem(i)\" class=\"separator\">{{separator}}</span>\n </li>\n </ol>\n</nav>\n" }]
49
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { separator: [{
50
+ type: Input
51
+ }], dark: [{
52
+ type: Input
53
+ }], items: [{
54
+ type: ContentChildren,
55
+ args: [ItBreadcrumbItemComponent]
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vYnJlYWRjcnVtYnMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZGNydW1icy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBU3BFLE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDLElBQUksTUFBTTtRQUNSLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFJRCxZQUNtQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQXZCeEQ7OztXQUdHO1FBQ00sY0FBUyxHQUFXLEdBQUcsQ0FBQztJQXFCakMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUUscURBQXFEO1FBQzdFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FDckIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsMkJBQTJCO1lBQ3RGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDaEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsd0RBQXdEO1lBQ25HLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQywyQkFBMkI7UUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVSxDQUFDLEtBQWE7UUFDaEMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDOzhHQW5EVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixpSkFnQmYseUJBQXlCLDZCQ3pDNUMsb3BDQTBCQSw0Q0RIWSxPQUFPLG1IQUFFLElBQUksNEZBQUUsZUFBZSw0RkFBRSxlQUFlLG1IQUFFLGVBQWUsMkdBQUUsZ0JBQWdCOzsyRkFFakYscUJBQXFCO2tCQVBqQyxTQUFTO2lDQUNJLElBQUksWUFDTixlQUFlLG1CQUVSLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDO3dHQVFwRixTQUFTO3NCQUFqQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLc0MsS0FBSztzQkFBaEQsZUFBZTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJdEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJlYWRjcnVtYi1pdGVtL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBpc1RydWVCb29sZWFuSW5wdXQgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9ib29sZWFuLWlucHV0JztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSXRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJdExpbmtDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2xpbmsvbGluay5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpdC1icmVhZGNydW1iJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nRm9yT2YsIE5nSWYsIFRyYW5zbGF0ZU1vZHVsZSwgSXRJY29uQ29tcG9uZW50LCBJdExpbmtDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIEl0QnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFyYWN0ZXIgdG8gdXNlIGFzIHNlcGFyYXRvclxuICAgKiBAZGVmYXVsdCAvXG4gICAqL1xuICBASW5wdXQoKSBzZXBhcmF0b3I6IHN0cmluZyA9ICcvJztcblxuICAvKipcbiAgICogRGFyayBzdHlsZVxuICAgKi9cbiAgQElucHV0KCkgZGFyazogQm9vbGVhbklucHV0IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFiIGl0ZW1zXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEl0QnJlYWRjcnVtYkl0ZW1Db21wb25lbnQpIGl0ZW1zPzogUXVlcnlMaXN0PEl0QnJlYWRjcnVtYkl0ZW1Db21wb25lbnQ+O1xuXG4gIGdldCBpc0RhcmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmRhcmspO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtU3Vic2NyaXB0aW9ucz86IEFycmF5PFN1YnNjcmlwdGlvbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXM/LmNoYW5nZXMucGlwZSggLy8gV2hlbiBicmVhZGNydW1iIGl0ZW1zIGNoYW5nZXMgKGR5bmFtaWMgYWRkL3JlbW92ZSlcbiAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtU3Vic2NyaXB0aW9ucz8uZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpOyAvLyBSZW1vdmUgb2xkIHN1YnNjcmlwdGlvbnNcbiAgICAgIHRoaXMuaXRlbVN1YnNjcmlwdGlvbnMgPSB0aGlzLml0ZW1zPy5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7IC8vIERldGVjdENoYW5nZXMgd2hlbiBicmVhZGNydW1iIGl0ZW0gYXR0cmlidXRlcyBjaGFuZ2VzXG4gICAgICB9KSk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7IC8vIEZvcmNlIHVwZGF0ZSBodG1sIHJlbmRlclxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtU3Vic2NyaXB0aW9ucz8uZm9yRWFjaChpdGVtID0+IGl0ZW0udW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgaW5kZXggaXMgbGFzdCBpdGVtXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgcHJvdGVjdGVkIGlzTGFzdEl0ZW0oaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMgJiYgaW5kZXggPj0gKHRoaXMuaXRlbXMubGVuZ3RoIC0gMSk7XG4gIH1cblxufVxuIiwiPG5hdiBjbGFzcz1cImJyZWFkY3J1bWItY29udGFpbmVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInaXQubmF2aWdhdGlvbi5uYXZpZ2F0aW9uLXBhdGgnfHRyYW5zbGF0ZVwiPlxuICA8b2wgKm5nSWY9XCJpdGVtc1wiIGNsYXNzPVwiYnJlYWRjcnVtYlwiIFtjbGFzcy5kYXJrXT1cImlzRGFya1wiIFtjbGFzcy5weC0zXT1cImlzRGFya1wiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmlzQWN0aXZlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIml0ZW0uaXNBY3RpdmUgPyAncGFnZScgOiBudWxsXCI+XG5cbiAgICAgIDxpdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uTmFtZVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS5pY29uTmFtZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImlzRGFyayA/ICd3aGl0ZScgOiAnc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICBzdmdDbGFzcz1cImFsaWduLXRvcCBtZS0xXCI+PC9pdC1pY29uPlxuXG4gICAgICA8aXQtbGluayAqbmdJZj1cIiFpdGVtLmlzQWN0aXZlICYmICFpc0xhc3RJdGVtKGkpOyBlbHNlIGFjdGl2ZUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0uaHJlZlwiIFtjbGFzc109XCJpdGVtLmNsYXNzXCIgW2V4dGVybmFsTGlua109XCJpdGVtLmV4dGVybmFsTGlua1wiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtLmh0bWxDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2l0LWxpbms+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjYWN0aXZlQ29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0uaHRtbENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIWlzTGFzdEl0ZW0oaSlcIiBjbGFzcz1cInNlcGFyYXRvclwiPnt7c2VwYXJhdG9yfX08L3NwYW4+XG4gICAgPC9saT5cbiAgPC9vbD5cbjwvbmF2PlxuIl19
@@ -0,0 +1,23 @@
1
+ import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';
2
+ import { isTrueBooleanInput } from '../../../../utils/boolean-input';
3
+ import { ItLinkComponent } from '../../../core/link/link.component';
4
+ import * as i0 from "@angular/core";
5
+ export class ItBreadcrumbItemComponent extends ItLinkComponent {
6
+ get isActive() {
7
+ return isTrueBooleanInput(this.active);
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBreadcrumbItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItBreadcrumbItemComponent, isStandalone: true, selector: "it-breadcrumb-item", inputs: { active: "active", iconName: "iconName" }, viewQueries: [{ propertyName: "htmlContent", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBreadcrumbItemComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ standalone: true, selector: 'it-breadcrumb-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], template: "<ng-template>\n <ng-content></ng-content>\n</ng-template>\n" }]
15
+ }], propDecorators: { active: [{
16
+ type: Input
17
+ }], iconName: [{
18
+ type: Input
19
+ }], htmlContent: [{
20
+ type: ViewChild,
21
+ args: [TemplateRef]
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZGNydW1icy9icmVhZGNydW1iLWl0ZW0vYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZGNydW1icy9icmVhZGNydW1iLWl0ZW0vYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFTcEUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGVBQWU7SUFpQjVELElBQVcsUUFBUTtRQUNqQixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQW5CVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrS0FlekIsV0FBVyx1RUMzQnhCLDhEQUdBOzsyRkRTYSx5QkFBeUI7a0JBUHJDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLEVBQUU7OEJBT0YsTUFBTTtzQkFBZCxLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS3lCLFdBQVc7c0JBQXpDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGlzVHJ1ZUJvb2xlYW5JbnB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXQnO1xuaW1wb3J0IHsgSWNvbk5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2ljb24nO1xuaW1wb3J0IHsgSXRMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9saW5rL2xpbmsuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtYnJlYWRjcnVtYi1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBJdEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50IGV4dGVuZHMgSXRMaW5rQ29tcG9uZW50IHtcblxuICAvKipcbiAgICogSXMgYWN0aXZlIGJyZWFkY3J1bWIgaXRlbVxuICAgKi9cbiAgQElucHV0KCkgYWN0aXZlOiBCb29sZWFuSW5wdXQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGljb24gdG8gc2hvd1xuICAgKi9cbiAgQElucHV0KCkgaWNvbk5hbWU6IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiBpdGVtXG4gICAqL1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSBwdWJsaWMgaHRtbENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHB1YmxpYyBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLmFjdGl2ZSk7XG4gIH1cblxufVxuIiwiPG5nLXRlbXBsYXRlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ItBreadcrumbComponent } from './breadcrumb/breadcrumb.component';
3
+ import { ItBreadcrumbItemComponent } from './breadcrumb-item/breadcrumb-item.component';
4
+ import * as i0 from "@angular/core";
5
+ const breadcrumb = [ItBreadcrumbComponent, ItBreadcrumbItemComponent];
6
+ export class ItBreadcrumbsModule {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBreadcrumbsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: ItBreadcrumbsModule, imports: [ItBreadcrumbComponent, ItBreadcrumbItemComponent], exports: [ItBreadcrumbComponent, ItBreadcrumbItemComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBreadcrumbsModule, imports: [ItBreadcrumbComponent] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItBreadcrumbsModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: breadcrumb,
15
+ exports: breadcrumb
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUd4RixNQUFNLFVBQVUsR0FBRyxDQUFDLHFCQUFxQixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFNdEUsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsWUFOWixxQkFBcUIsRUFBRSx5QkFBeUIsYUFBaEQscUJBQXFCLEVBQUUseUJBQXlCOytHQU12RCxtQkFBbUIsWUFOWixxQkFBcUI7OzJGQU01QixtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLE9BQU8sRUFBRSxVQUFVO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJdEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXRCcmVhZGNydW1iSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYnJlYWRjcnVtYi1pdGVtL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuXG5cbmNvbnN0IGJyZWFkY3J1bWIgPSBbSXRCcmVhZGNydW1iQ29tcG9uZW50LCBJdEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogYnJlYWRjcnVtYixcbiAgZXhwb3J0czogYnJlYWRjcnVtYlxufSlcbmV4cG9ydCBjbGFzcyBJdEJyZWFkY3J1bWJzTW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { isTrueBooleanInput } from '../../../utils/boolean-input';
3
+ import { ItAbstractComponent } from '../../../abstracts/abstract.component';
4
+ import { NgIf } from '@angular/common';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { ItIconComponent } from '../../utils/icon/icon.component';
7
+ import { ItButtonDirective } from '../../core/button/button.directive';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@ngx-translate/core";
10
+ export class ItHeaderComponent extends ItAbstractComponent {
11
+ /**
12
+ * TODO: complete header
13
+ */
14
+ constructor() {
15
+ super();
16
+ this.showSlim = true;
17
+ this.loginStyle = 'full';
18
+ this.smallHeader = true;
19
+ this.showSearch = true;
20
+ this.loginClick = new EventEmitter();
21
+ this.searchClick = new EventEmitter();
22
+ }
23
+ get isLight() {
24
+ return isTrueBooleanInput(this.light);
25
+ }
26
+ get isShowSlim() {
27
+ return isTrueBooleanInput(this.showSlim);
28
+ }
29
+ get isSmallHeader() {
30
+ return isTrueBooleanInput(this.smallHeader);
31
+ }
32
+ get isShowSearch() {
33
+ return isTrueBooleanInput(this.showSearch);
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ItHeaderComponent, isStandalone: true, selector: "it-header", inputs: { light: "light", showSlim: "showSlim", slimTitle: "slimTitle", loginStyle: "loginStyle", smallHeader: "smallHeader", showSearch: "showSearch" }, outputs: { loginClick: "loginClick", searchClick: "searchClick" }, usesInheritance: true, ngImport: i0, template: "<header class=\"it-header-wrapper\">\n <div *ngIf=\"isShowSlim\" class=\"it-header-slim-wrapper\" [class.theme-light]=\"isLight\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-slim-wrapper-content\">\n <a class=\"d-none d-lg-block navbar-brand\" href=\"#\">{{slimTitle}}</a>\n <div class=\"nav-mobile\">\n <nav [attr.aria-label]=\"'it.navigation.secondary-navigation'|translate\">\n <a class=\"it-opener d-lg-none\" data-bs-toggle=\"collapse\" href=\"#menuC1\" role=\"button\"\n aria-expanded=\"false\" aria-controls=\"menuC1\">\n <span>{{slimTitle}}</span>\n <it-icon name=\"expand\"></it-icon>\n </a>\n <div class=\"link-list-wrapper collapse\" id=\"menuC1\">\n <ng-content select=\"[slimLinkList]\"></ng-content>\n </div>\n </nav>\n </div>\n <div class=\"it-header-slim-right-zone\">\n <!-- TODO: add language dropdown -->\n <ng-content select=\"[slimRightZone]\"></ng-content>\n <div *ngIf=\"loginStyle === 'default'\" class=\"it-access-top-wrapper\">\n <a class=\"btn btn-primary btn-sm\" (click)=\"loginClick.emit($event)\">\n {{'it.navigation.login'|translate}}\n </a>\n </div>\n </div>\n <button *ngIf=\"loginStyle === 'full'\" itButton=\"primary\" class=\"btn-full\" (click)=\"loginClick.emit($event)\">\n <span class=\"rounded-icon\">\n <it-icon name=\"user\" color=\"primary\"></it-icon>\n <span class=\"d-none d-lg-block\">{{'it.navigation.full-login'|translate}}</span>\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"it-nav-wrapper\">\n <div class=\"it-header-center-wrapper\" [class.it-small-header]=\"isSmallHeader\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-center-content-wrapper\">\n <div class=\"it-brand-wrapper\">\n <ng-content select=\"[brand]\"></ng-content>\n </div>\n <div class=\"it-right-zone\">\n <ng-content select=\"[rightZone]\"></ng-content>\n\n <div class=\"it-search-wrapper\" *ngIf=\"isShowSearch\">\n <span class=\"d-none d-md-block\">{{'it.navigation.search'|translate}}</span>\n <a class=\"search-link rounded-icon\" [attr.aria-label]=\"'it.navigation.website-search'|translate\" (click)=\"searchClick.emit($event)\">\n <it-icon name=\"search\"></it-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- TODO: complete header -->\n </div>\n</header>\n", styles: [".nav-mobile:has(.link-list-wrapper:empty){display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ItIconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "directive", type: ItButtonDirective, selector: "[itButton]", inputs: ["itButton", "size", "block", "disabled"], exportAs: ["itButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ItHeaderComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ standalone: true, selector: 'it-header', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIf, TranslateModule, ItIconComponent, ItButtonDirective], template: "<header class=\"it-header-wrapper\">\n <div *ngIf=\"isShowSlim\" class=\"it-header-slim-wrapper\" [class.theme-light]=\"isLight\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-slim-wrapper-content\">\n <a class=\"d-none d-lg-block navbar-brand\" href=\"#\">{{slimTitle}}</a>\n <div class=\"nav-mobile\">\n <nav [attr.aria-label]=\"'it.navigation.secondary-navigation'|translate\">\n <a class=\"it-opener d-lg-none\" data-bs-toggle=\"collapse\" href=\"#menuC1\" role=\"button\"\n aria-expanded=\"false\" aria-controls=\"menuC1\">\n <span>{{slimTitle}}</span>\n <it-icon name=\"expand\"></it-icon>\n </a>\n <div class=\"link-list-wrapper collapse\" id=\"menuC1\">\n <ng-content select=\"[slimLinkList]\"></ng-content>\n </div>\n </nav>\n </div>\n <div class=\"it-header-slim-right-zone\">\n <!-- TODO: add language dropdown -->\n <ng-content select=\"[slimRightZone]\"></ng-content>\n <div *ngIf=\"loginStyle === 'default'\" class=\"it-access-top-wrapper\">\n <a class=\"btn btn-primary btn-sm\" (click)=\"loginClick.emit($event)\">\n {{'it.navigation.login'|translate}}\n </a>\n </div>\n </div>\n <button *ngIf=\"loginStyle === 'full'\" itButton=\"primary\" class=\"btn-full\" (click)=\"loginClick.emit($event)\">\n <span class=\"rounded-icon\">\n <it-icon name=\"user\" color=\"primary\"></it-icon>\n <span class=\"d-none d-lg-block\">{{'it.navigation.full-login'|translate}}</span>\n </span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"it-nav-wrapper\">\n <div class=\"it-header-center-wrapper\" [class.it-small-header]=\"isSmallHeader\">\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"it-header-center-content-wrapper\">\n <div class=\"it-brand-wrapper\">\n <ng-content select=\"[brand]\"></ng-content>\n </div>\n <div class=\"it-right-zone\">\n <ng-content select=\"[rightZone]\"></ng-content>\n\n <div class=\"it-search-wrapper\" *ngIf=\"isShowSearch\">\n <span class=\"d-none d-md-block\">{{'it.navigation.search'|translate}}</span>\n <a class=\"search-link rounded-icon\" [attr.aria-label]=\"'it.navigation.website-search'|translate\" (click)=\"searchClick.emit($event)\">\n <it-icon name=\"search\"></it-icon>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- TODO: complete header -->\n </div>\n</header>\n", styles: [".nav-mobile:has(.link-list-wrapper:empty){display:none}\n"] }]
41
+ }], ctorParameters: function () { return []; }, propDecorators: { light: [{
42
+ type: Input
43
+ }], showSlim: [{
44
+ type: Input
45
+ }], slimTitle: [{
46
+ type: Input
47
+ }], loginStyle: [{
48
+ type: Input
49
+ }], smallHeader: [{
50
+ type: Input
51
+ }], showSearch: [{
52
+ type: Input
53
+ }], loginClick: [{
54
+ type: Output
55
+ }], searchClick: [{
56
+ type: Output
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFVdkUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG1CQUFtQjtJQWtCeEQ7O09BRUc7SUFDSDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBbEJELGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBSS9CLGVBQVUsR0FBZ0MsTUFBTSxDQUFDO1FBRWpELGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUVsQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQVl4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQTFDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix5VENoQjlCLCsvRkFtRUEsbUhEckRZLElBQUksNEZBQUUsZUFBZSw0RkFBRSxlQUFlLG1IQUFFLGlCQUFpQjs7MkZBRXhELGlCQUFpQjtrQkFSN0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUM7MEVBSTNELEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGlzVHJ1ZUJvb2xlYW5JbnB1dCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXQnO1xuaW1wb3J0IHsgSXRBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEl0SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXRCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9jb3JlL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW05nSWYsIFRyYW5zbGF0ZU1vZHVsZSwgSXRJY29uQ29tcG9uZW50LCBJdEJ1dHRvbkRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgSXRIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBJdEFic3RyYWN0Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBsaWdodDogQm9vbGVhbklucHV0IHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpIHNob3dTbGltPzogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzbGltVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKSBsb2dpblN0eWxlOiAnbm9uZScgfCAnZGVmYXVsdCcgfCAnZnVsbCcgPSAnZnVsbCc7XG5cbiAgQElucHV0KCkgc21hbGxIZWFkZXI/OiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHNob3dTZWFyY2g/OiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBsb2dpbkNsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnQ+O1xuXG4gIEBPdXRwdXQoKSBzZWFyY2hDbGljazogRXZlbnRFbWl0dGVyPEV2ZW50PjtcblxuICAvKipcbiAgICogVE9ETzogY29tcGxldGUgaGVhZGVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5sb2dpbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICB0aGlzLnNlYXJjaENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgfVxuXG4gIGdldCBpc0xpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5saWdodCk7XG4gIH1cblxuICBnZXQgaXNTaG93U2xpbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc2hvd1NsaW0pO1xuICB9XG5cbiAgZ2V0IGlzU21hbGxIZWFkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNtYWxsSGVhZGVyKTtcbiAgfVxuXG4gIGdldCBpc1Nob3dTZWFyY2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnNob3dTZWFyY2gpO1xuICB9XG5cbn1cbiIsIjxoZWFkZXIgY2xhc3M9XCJpdC1oZWFkZXItd3JhcHBlclwiPlxuICA8ZGl2ICpuZ0lmPVwiaXNTaG93U2xpbVwiIGNsYXNzPVwiaXQtaGVhZGVyLXNsaW0td3JhcHBlclwiIFtjbGFzcy50aGVtZS1saWdodF09XCJpc0xpZ2h0XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0LWhlYWRlci1zbGltLXdyYXBwZXItY29udGVudFwiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJkLW5vbmUgZC1sZy1ibG9jayBuYXZiYXItYnJhbmRcIiBocmVmPVwiI1wiPnt7c2xpbVRpdGxlfX08L2E+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LW1vYmlsZVwiPlxuICAgICAgICAgICAgICA8bmF2IFthdHRyLmFyaWEtbGFiZWxdPVwiJ2l0Lm5hdmlnYXRpb24uc2Vjb25kYXJ5LW5hdmlnYXRpb24nfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiaXQtb3BlbmVyIGQtbGctbm9uZVwiIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIiBocmVmPVwiI21lbnVDMVwiIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIGFyaWEtY29udHJvbHM9XCJtZW51QzFcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7c2xpbVRpdGxlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aXQtaWNvbiBuYW1lPVwiZXhwYW5kXCI+PC9pdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1saXN0LXdyYXBwZXIgY29sbGFwc2VcIiBpZD1cIm1lbnVDMVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NsaW1MaW5rTGlzdF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXQtaGVhZGVyLXNsaW0tcmlnaHQtem9uZVwiPlxuICAgICAgICAgICAgICA8IS0tIFRPRE86IGFkZCBsYW5ndWFnZSBkcm9wZG93biAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NsaW1SaWdodFpvbmVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9naW5TdHlsZSA9PT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJpdC1hY2Nlc3MtdG9wLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiAoY2xpY2spPVwibG9naW5DbGljay5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIHt7J2l0Lm5hdmlnYXRpb24ubG9naW4nfHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImxvZ2luU3R5bGUgPT09ICdmdWxsJ1wiIGl0QnV0dG9uPVwicHJpbWFyeVwiIGNsYXNzPVwiYnRuLWZ1bGxcIiAoY2xpY2spPVwibG9naW5DbGljay5lbWl0KCRldmVudClcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3VuZGVkLWljb25cIj5cbiAgICAgICAgICAgICAgICA8aXQtaWNvbiBuYW1lPVwidXNlclwiIGNvbG9yPVwicHJpbWFyeVwiPjwvaXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtbm9uZSBkLWxnLWJsb2NrXCI+e3snaXQubmF2aWdhdGlvbi5mdWxsLWxvZ2luJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaXQtbmF2LXdyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaXQtaGVhZGVyLWNlbnRlci13cmFwcGVyXCIgW2NsYXNzLml0LXNtYWxsLWhlYWRlcl09XCJpc1NtYWxsSGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXQtaGVhZGVyLWNlbnRlci1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0LWJyYW5kLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYnJhbmRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0LXJpZ2h0LXpvbmVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmlnaHRab25lXVwiPjwvbmctY29udGVudD5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdC1zZWFyY2gtd3JhcHBlclwiICpuZ0lmPVwiaXNTaG93U2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtbm9uZSBkLW1kLWJsb2NrXCI+e3snaXQubmF2aWdhdGlvbi5zZWFyY2gnfHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJzZWFyY2gtbGluayByb3VuZGVkLWljb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidpdC5uYXZpZ2F0aW9uLndlYnNpdGUtc2VhcmNoJ3x0cmFuc2xhdGVcIiAoY2xpY2spPVwic2VhcmNoQ2xpY2suZW1pdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpdC1pY29uIG5hbWU9XCJzZWFyY2hcIj48L2l0LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFRPRE86IGNvbXBsZXRlIGhlYWRlciAtLT5cbiAgPC9kaXY+XG48L2hlYWRlcj5cbiJdfQ==