design-angular-kit 1.0.0-16 → 1.0.0-18

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 (218) hide show
  1. package/README.md +31 -6
  2. package/assets/i18n/en.json +4 -1
  3. package/assets/i18n/it.json +4 -1
  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 +164 -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 +41 -0
  65. package/esm2022/lib/design-angular-kit.module.mjs +68 -0
  66. package/{esm2020 → esm2022}/lib/interfaces/form.mjs +1 -1
  67. package/esm2022/lib/interfaces/icon.mjs +165 -0
  68. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +37 -0
  69. package/esm2022/lib/services/notification/notification.service.mjs +120 -0
  70. package/esm2022/lib/utils/file-utils.mjs +73 -0
  71. package/esm2022/lib/utils/regex.mjs +31 -0
  72. package/esm2022/lib/validators/it-validators.mjs +153 -0
  73. package/esm2022/public_api.mjs +85 -0
  74. package/fesm2022/design-angular-kit.mjs +4615 -0
  75. package/fesm2022/design-angular-kit.mjs.map +1 -0
  76. package/lib/abstracts/abstract-form.component.d.ts +4 -4
  77. package/lib/abstracts/abstract.component.d.ts +3 -3
  78. package/lib/components/components.module.d.ts +32 -52
  79. package/lib/components/core/accordion/accordion.component.d.ts +6 -5
  80. package/lib/components/core/alert/alert.component.d.ts +5 -5
  81. package/lib/components/core/badge/badge.directive.d.ts +5 -5
  82. package/lib/components/core/button/button.directive.d.ts +11 -11
  83. package/lib/components/core/callout/callout.component.d.ts +7 -7
  84. package/lib/components/core/card/card.component.d.ts +8 -8
  85. package/lib/components/core/carousel/carousel/carousel.component.d.ts +10 -10
  86. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +4 -4
  87. package/lib/components/core/carousel/carousel.module.d.ts +8 -0
  88. package/lib/components/core/chip/chip.component.d.ts +6 -3
  89. package/lib/components/core/collapse/collapse.component.d.ts +8 -8
  90. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +3 -3
  91. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +3 -3
  92. package/lib/components/core/dimmer/dimmer.component.d.ts +4 -4
  93. package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
  94. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +14 -9
  95. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +8 -8
  96. package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
  97. package/lib/components/core/forward/forward.directive.d.ts +3 -3
  98. package/lib/components/core/link/link.component.d.ts +9 -8
  99. package/lib/components/core/list/list/list.component.d.ts +4 -4
  100. package/lib/components/core/list/list-item/list-item.component.d.ts +9 -9
  101. package/lib/components/core/list/list.module.d.ts +8 -0
  102. package/lib/components/core/modal/modal.component.d.ts +11 -11
  103. package/lib/components/core/notifications/notifications.component.d.ts +6 -6
  104. package/lib/components/core/pagination/pagination.component.d.ts +8 -8
  105. package/lib/components/core/popover/popover.directive.d.ts +3 -3
  106. package/lib/components/core/progress-bar/progress-bar.component.d.ts +6 -6
  107. package/lib/components/core/progress-button/progress-button.component.d.ts +5 -5
  108. package/lib/components/core/spinner/spinner.component.d.ts +5 -5
  109. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +37 -13
  110. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +5 -5
  111. package/lib/components/core/steppers/steppers.module.d.ts +8 -0
  112. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +9 -9
  113. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +8 -8
  114. package/lib/components/core/tab/tab.module.d.ts +8 -0
  115. package/lib/components/core/table/table.component.d.ts +12 -12
  116. package/lib/components/core/tooltip/tooltip.directive.d.ts +3 -3
  117. package/lib/components/form/checkbox/checkbox.component.d.ts +12 -10
  118. package/lib/components/form/form.module.d.ts +16 -0
  119. package/lib/components/form/input/input.component.d.ts +18 -13
  120. package/lib/components/form/password-input/password-input.component.d.ts +11 -6
  121. package/lib/components/form/radio-button/radio-button.component.d.ts +6 -6
  122. package/lib/components/form/range/range.component.d.ts +42 -0
  123. package/lib/components/form/rating/rating.component.d.ts +24 -0
  124. package/lib/components/form/select/select.component.d.ts +11 -6
  125. package/lib/components/form/textarea/textarea.component.d.ts +5 -5
  126. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +4 -4
  127. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +6 -6
  128. package/lib/components/navigation/back-button/back-button.component.d.ts +3 -3
  129. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +7 -7
  130. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +6 -6
  131. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +6 -6
  132. package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
  133. package/lib/components/navigation/header/header.component.d.ts +6 -6
  134. package/lib/components/utils/error-page/error-page.component.d.ts +6 -6
  135. package/lib/components/utils/icon/icon.component.d.ts +7 -7
  136. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +4 -4
  137. package/lib/design-angular-kit.module.d.ts +3 -4
  138. package/lib/interfaces/core.d.ts +16 -16
  139. package/lib/interfaces/form.d.ts +3 -3
  140. package/lib/interfaces/icon.d.ts +4 -4
  141. package/lib/pipes/mark-matching-text.pipe.d.ts +4 -4
  142. package/lib/services/{notifications/notifications.service.d.ts → notification/notification.service.d.ts} +3 -3
  143. package/lib/utils/boolean-input.d.ts +1 -1
  144. package/lib/utils/regex.d.ts +5 -0
  145. package/lib/validators/it-validators.d.ts +4 -0
  146. package/package.json +13 -19
  147. package/public_api.d.ts +13 -4
  148. package/esm2020/lib/abstracts/abstract-form.component.mjs +0 -188
  149. package/esm2020/lib/abstracts/abstract.component.mjs +0 -45
  150. package/esm2020/lib/components/components.module.mjs +0 -256
  151. package/esm2020/lib/components/core/accordion/accordion.component.mjs +0 -35
  152. package/esm2020/lib/components/core/alert/alert.component.mjs +0 -73
  153. package/esm2020/lib/components/core/badge/badge.directive.mjs +0 -37
  154. package/esm2020/lib/components/core/button/button.directive.mjs +0 -84
  155. package/esm2020/lib/components/core/callout/callout.component.mjs +0 -57
  156. package/esm2020/lib/components/core/card/card.component.mjs +0 -64
  157. package/esm2020/lib/components/core/carousel/carousel/carousel.component.mjs +0 -89
  158. package/esm2020/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +0 -19
  159. package/esm2020/lib/components/core/chip/chip.component.mjs +0 -89
  160. package/esm2020/lib/components/core/collapse/collapse.component.mjs +0 -101
  161. package/esm2020/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +0 -24
  162. package/esm2020/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +0 -11
  163. package/esm2020/lib/components/core/dimmer/dimmer.component.mjs +0 -59
  164. package/esm2020/lib/components/core/dropdown/dropdown/dropdown.component.mjs +0 -130
  165. package/esm2020/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +0 -68
  166. package/esm2020/lib/components/core/forward/forward.directive.mjs +0 -52
  167. package/esm2020/lib/components/core/link/link.component.mjs +0 -40
  168. package/esm2020/lib/components/core/list/list/list.component.mjs +0 -17
  169. package/esm2020/lib/components/core/list/list-item/list-item.component.mjs +0 -41
  170. package/esm2020/lib/components/core/modal/modal.component.mjs +0 -163
  171. package/esm2020/lib/components/core/notifications/notifications.component.mjs +0 -110
  172. package/esm2020/lib/components/core/pagination/pagination.component.mjs +0 -131
  173. package/esm2020/lib/components/core/popover/popover.directive.mjs +0 -174
  174. package/esm2020/lib/components/core/progress-bar/progress-bar.component.mjs +0 -34
  175. package/esm2020/lib/components/core/progress-button/progress-button.component.mjs +0 -27
  176. package/esm2020/lib/components/core/rating/rating.component.mjs +0 -49
  177. package/esm2020/lib/components/core/spinner/spinner.component.mjs +0 -35
  178. package/esm2020/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +0 -127
  179. package/esm2020/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +0 -19
  180. package/esm2020/lib/components/core/tab/tab-container/tab-container.component.mjs +0 -59
  181. package/esm2020/lib/components/core/tab/tab-item/tab-item.component.mjs +0 -36
  182. package/esm2020/lib/components/core/table/table.component.mjs +0 -57
  183. package/esm2020/lib/components/core/tooltip/tooltip.directive.mjs +0 -141
  184. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +0 -40
  185. package/esm2020/lib/components/form/input/input.component.mjs +0 -232
  186. package/esm2020/lib/components/form/password-input/password-input.component.mjs +0 -152
  187. package/esm2020/lib/components/form/radio-button/radio-button.component.mjs +0 -68
  188. package/esm2020/lib/components/form/select/select.component.mjs +0 -62
  189. package/esm2020/lib/components/form/textarea/textarea.component.mjs +0 -46
  190. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +0 -139
  191. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +0 -104
  192. package/esm2020/lib/components/navigation/back-button/back-button.component.mjs +0 -69
  193. package/esm2020/lib/components/navigation/back-to-top/back-to-top.component.mjs +0 -64
  194. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -56
  195. package/esm2020/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +0 -23
  196. package/esm2020/lib/components/navigation/header/header.component.mjs +0 -57
  197. package/esm2020/lib/components/utils/error-page/error-page.component.mjs +0 -79
  198. package/esm2020/lib/components/utils/icon/icon.component.mjs +0 -55
  199. package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +0 -39
  200. package/esm2020/lib/design-angular-kit.module.mjs +0 -68
  201. package/esm2020/lib/interfaces/icon.mjs +0 -162
  202. package/esm2020/lib/pipes/mark-matching-text.pipe.mjs +0 -36
  203. package/esm2020/lib/services/notifications/notifications.service.mjs +0 -120
  204. package/esm2020/lib/utils/file-utils.mjs +0 -73
  205. package/esm2020/lib/utils/regex.mjs +0 -26
  206. package/esm2020/lib/validators/it-validators.mjs +0 -147
  207. package/esm2020/public_api.mjs +0 -74
  208. package/fesm2015/design-angular-kit.mjs +0 -4422
  209. package/fesm2015/design-angular-kit.mjs.map +0 -1
  210. package/fesm2020/design-angular-kit.mjs +0 -4354
  211. package/fesm2020/design-angular-kit.mjs.map +0 -1
  212. package/lib/components/core/rating/rating.component.d.ts +0 -24
  213. /package/{esm2020 → esm2022}/design-angular-kit.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/design-angular-kit-config.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/interfaces/core.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/interfaces/design-angular-kit-init.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/interfaces/utils.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/utils/boolean-input.mjs +0 -0
@@ -1,163 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { AbstractComponent } from '../../../abstracts/abstract.component';
3
- import { Modal } from 'bootstrap-italia';
4
- import { isTrueBooleanInput } from '../../../utils/boolean-input';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@ngx-translate/core";
8
- /**
9
- * Modal windows
10
- * @description To show featured content, notifications to users, or personalized content.
11
- */
12
- export class ModalComponent extends AbstractComponent {
13
- constructor() {
14
- super(...arguments);
15
- /**
16
- * Show/Hide close button on header
17
- * @default true
18
- */
19
- this.closeButton = true;
20
- /**
21
- * To have modals that appear with fades
22
- * @default true
23
- */
24
- this.fade = true;
25
- /**
26
- * This event fires immediately when the instance method show is called.
27
- */
28
- this.showEvent = new EventEmitter();
29
- /**
30
- * This event fires when the modal has been made visible to the user (it will wait for CSS transitions to complete).
31
- */
32
- this.shownEvent = new EventEmitter();
33
- /**
34
- * This event is raised immediately when the instance method hide has been called.
35
- */
36
- this.hideEvent = new EventEmitter();
37
- /**
38
- * This event fires when the modal has finished hiding from the user (it will wait for CSS transitions to complete).
39
- */
40
- this.hiddenEvent = new EventEmitter();
41
- /**
42
- * This event is fired when the modal is displayed, its background is static and a click outside the modal or a press
43
- * of the esc key occurs and data-bs-keyboard is set to false.
44
- */
45
- this.hidePreventedEvent = new EventEmitter();
46
- }
47
- ngAfterViewInit() {
48
- super.ngAfterViewInit();
49
- this._renderer.removeAttribute(this._elementRef.nativeElement, 'title');
50
- if (this.modalElement) {
51
- const element = this.modalElement.nativeElement;
52
- this.modal = Modal.getOrCreateInstance(element);
53
- element.addEventListener('show.bs.modal', event => this.showEvent.emit(event));
54
- element.addEventListener('shown.bs.modal', event => this.shownEvent.emit(event));
55
- element.addEventListener('hide.bs.modal', event => this.hideEvent.emit(event));
56
- element.addEventListener('hidden.bs.modal', event => this.hiddenEvent.emit(event));
57
- element.addEventListener('hidePrevented.bs.modal', event => this.hidePreventedEvent.emit(event));
58
- }
59
- }
60
- get isCloseButton() {
61
- return isTrueBooleanInput(this.closeButton);
62
- }
63
- get isFooterShadow() {
64
- return isTrueBooleanInput(this.footerShadow);
65
- }
66
- get modalClass() {
67
- let modalClass = 'modal';
68
- if (isTrueBooleanInput(this.fade)) {
69
- modalClass += ` fade`;
70
- }
71
- if (isTrueBooleanInput(this.alertModal)) {
72
- modalClass += ` alert-modal`;
73
- }
74
- if (isTrueBooleanInput(this.dialogLinkList)) {
75
- modalClass += ` it-dialog-link-list`;
76
- }
77
- if (isTrueBooleanInput(this.popconfirm)) {
78
- modalClass += ` popconfirm-modal`;
79
- }
80
- if (isTrueBooleanInput(this.scrollable)) {
81
- modalClass += ` it-dialog-scrollable`;
82
- }
83
- return modalClass;
84
- }
85
- get dialogClass() {
86
- let dialogClass = 'modal-dialog';
87
- if (this.alignment) {
88
- dialogClass += ` modal-dialog-${this.alignment}`;
89
- }
90
- if (this.size) {
91
- dialogClass += ` modal-${this.size}`;
92
- }
93
- return dialogClass;
94
- }
95
- /**
96
- * Manually activate/deactivate a modal. Returns to the caller before the modal has actually been shown or hidden
97
- */
98
- toggle() {
99
- this.modal?.toggle();
100
- }
101
- /**
102
- * Manually open a modal. Returns to the caller before the modal has actually been displayed
103
- */
104
- show() {
105
- this.modal?.show();
106
- }
107
- /**
108
- * Manually hide a modal. Returns to the caller before the modal has actually been hidden
109
- */
110
- hide() {
111
- this.modal?.hide();
112
- }
113
- /**
114
- * Manually reposition the modal if the height of the modal changes when it is opened (in case a scroll bar appears).
115
- */
116
- handleUpdate() {
117
- this.modal?.handleUpdate();
118
- }
119
- /**
120
- * Destroys the modal of an element.
121
- */
122
- dispose() {
123
- this.modal?.dispose();
124
- }
125
- }
126
- ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: ModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
127
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: ModalComponent, selector: "it-modal", inputs: { closeButton: "closeButton", alertModal: "alertModal", dialogLinkList: "dialogLinkList", popconfirm: "popconfirm", scrollable: "scrollable", fade: "fade", alignment: "alignment", size: "size", footerShadow: "footerShadow" }, outputs: { showEvent: "showEvent", shownEvent: "shownEvent", hideEvent: "hideEvent", hiddenEvent: "hiddenEvent", hidePreventedEvent: "hidePreventedEvent" }, viewQueries: [{ propertyName: "modalElement", first: true, predicate: ["modalElement"], descendants: true }], exportAs: ["itModal"], usesInheritance: true, ngImport: i0, template: "<div #modalElement [id]=\"id\"\n [class]=\"modalClass\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-title'\"\n [attr.aria-describedby]=\"id+'-description'\">\n\n <div [class]=\"dialogClass\">\n <div class=\"modal-content\" role=\"document\">\n <div class=\"modal-header\">\n <ng-content select=\"[beforeTitle]\"></ng-content>\n\n <h2 class=\"modal-title h5\" id=\"{{id}}-title\">\n <ng-content select=\"[modalTitle]\"></ng-content>\n </h2>\n\n <button *ngIf=\"isCloseButton\" type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"\n [attr.aria-label]=\"'it.core.close-modal'|translate\"></button>\n </div>\n\n <div class=\"modal-body\">\n <div id=\"{{id}}-description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"modal-footer\" [class.modal-footer-shadow]=\"isFooterShadow\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n\n</div>\n", styles: [".modal-footer:empty{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: ModalComponent, decorators: [{
129
- type: Component,
130
- args: [{ selector: 'it-modal', exportAs: 'itModal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #modalElement [id]=\"id\"\n [class]=\"modalClass\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-hidden=\"true\"\n [attr.aria-labelledby]=\"id+'-title'\"\n [attr.aria-describedby]=\"id+'-description'\">\n\n <div [class]=\"dialogClass\">\n <div class=\"modal-content\" role=\"document\">\n <div class=\"modal-header\">\n <ng-content select=\"[beforeTitle]\"></ng-content>\n\n <h2 class=\"modal-title h5\" id=\"{{id}}-title\">\n <ng-content select=\"[modalTitle]\"></ng-content>\n </h2>\n\n <button *ngIf=\"isCloseButton\" type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"\n [attr.aria-label]=\"'it.core.close-modal'|translate\"></button>\n </div>\n\n <div class=\"modal-body\">\n <div id=\"{{id}}-description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div class=\"modal-footer\" [class.modal-footer-shadow]=\"isFooterShadow\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n\n</div>\n", styles: [".modal-footer:empty{display:none}\n"] }]
131
- }], propDecorators: { closeButton: [{
132
- type: Input
133
- }], alertModal: [{
134
- type: Input
135
- }], dialogLinkList: [{
136
- type: Input
137
- }], popconfirm: [{
138
- type: Input
139
- }], scrollable: [{
140
- type: Input
141
- }], fade: [{
142
- type: Input
143
- }], alignment: [{
144
- type: Input
145
- }], size: [{
146
- type: Input
147
- }], footerShadow: [{
148
- type: Input
149
- }], showEvent: [{
150
- type: Output
151
- }], shownEvent: [{
152
- type: Output
153
- }], hideEvent: [{
154
- type: Output
155
- }], hiddenEvent: [{
156
- type: Output
157
- }], hidePreventedEvent: [{
158
- type: Output
159
- }], modalElement: [{
160
- type: ViewChild,
161
- args: ['modalElement', { static: false }]
162
- }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUVoRjs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQjtJQVByRDs7UUFTRTs7O1dBR0c7UUFDTSxnQkFBVyxHQUFpQixJQUFJLENBQUM7UUEwQjFDOzs7V0FHRztRQUNNLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBdUJwQzs7V0FFRztRQUNjLGNBQVMsR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVyRTs7V0FFRztRQUNjLGVBQVUsR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RTs7V0FFRztRQUNjLGNBQVMsR0FBd0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVyRTs7V0FFRztRQUNjLGdCQUFXLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkU7OztXQUdHO1FBQ2MsdUJBQWtCLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7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STtRQUNULElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUNqQixJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7OzJHQWpMVSxjQUFjOytGQUFkLGNBQWMsbWxCQ3pCM0IsdW5DQW1DQTsyRkRWYSxjQUFjO2tCQVAxQixTQUFTOytCQUNFLFVBQVUsWUFHVixTQUFTLG1CQUNGLHVCQUF1QixDQUFDLE1BQU07OEJBUXRDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBU0csU0FBUztzQkFBakIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFLVyxTQUFTO3NCQUF6QixNQUFNO2dCQUtVLFVBQVU7c0JBQTFCLE1BQU07Z0JBS1UsU0FBUztzQkFBekIsTUFBTTtnQkFLVSxXQUFXO3NCQUEzQixNQUFNO2dCQU1VLGtCQUFrQjtzQkFBbEMsTUFBTTtnQkFJK0MsWUFBWTtzQkFBakUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWwgfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dCc7XG5cbi8qKlxuICogTW9kYWwgd2luZG93c1xuICogQGRlc2NyaXB0aW9uIFRvIHNob3cgZmVhdHVyZWQgY29udGVudCwgbm90aWZpY2F0aW9ucyB0byB1c2Vycywgb3IgcGVyc29uYWxpemVkIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdpdE1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIC8qKlxuICAgKiBTaG93L0hpZGUgY2xvc2UgYnV0dG9uIG9uIGhlYWRlclxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKSBjbG9zZUJ1dHRvbjogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogVG8gY29ycmVjdGx5IGZvcm1hdCB0aGUgY29udGVudHMgb2YgdGhlIG1vZGFsIHdpdGggaWNvblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgYWxlcnRNb2RhbD86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogVG8gY29ycmVjdGx5IGZvcm1hdCB0aGUgY29udGVudHMgb2YgdGhlIG1vZGFsIHdpdGggTGluayBMaXN0XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBkaWFsb2dMaW5rTGlzdD86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogTW9kYWwgdHlwZSBQb3Bjb25maXJtIGNhbiBiZSB1c2VkIGZvciBzaG9ydCBjb25maXJtYXRpb24gbWVzc2FnZXMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBwb3Bjb25maXJtPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBZb3UgY2FuIGNob29zZSB0byB1c2UgYSBzY3JvbGwgaW5zaWRlIHRoZSBtb2RhbCwga2VlcGluZyB0aGUgaGVhZGVyIGFuZCBmb290ZXIgb2YgdGhlIG1vZGFsIGFsd2F5cyB2aXNpYmxlXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBzY3JvbGxhYmxlPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBUbyBoYXZlIG1vZGFscyB0aGF0IGFwcGVhciB3aXRoIGZhZGVzXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIGZhZGU/OiBCb29sZWFuSW5wdXQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBNb2RhbCBhbGlnbm1lbnRcbiAgICogLSA8Yj5jZW50ZXJlZDwvYj46IHRvIHZlcnRpY2FsbHkgY2VudGVyIHRoZSBtb2RhbFxuICAgKiAtIDxiPmxlZnQ8L2I+OiB0byBsZWZ0LWFsaWduIHRoZSBtb2RhbFxuICAgKiAtIDxiPnJpZ2h0PC9iPjogdG8gcmlnaHQtYWxpZ24gdGhlIG1vZGFsXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgYWxpZ25tZW50PzogJ2NlbnRlcmVkJyB8ICdsZWZ0JyB8ICdyaWdodCc7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RhbCBzaXplXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgc2l6ZT86ICdzbScgfCAnbGcnIHwgJ3hsJztcblxuICAvKipcbiAgICogVG8gYmV0dGVyIGRpc3Rpbmd1aXNoIHRoZSBmb290ZXIgZWxlbWVudCB3aXRoIGEgc2hhZG93XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBmb290ZXJTaGFkb3c/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZmlyZXMgaW1tZWRpYXRlbHkgd2hlbiB0aGUgaW5zdGFuY2UgbWV0aG9kIHNob3cgaXMgY2FsbGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyBzaG93RXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZmlyZXMgd2hlbiB0aGUgbW9kYWwgaGFzIGJlZW4gbWFkZSB2aXNpYmxlIHRvIHRoZSB1c2VyIChpdCB3aWxsIHdhaXQgZm9yIENTUyB0cmFuc2l0aW9ucyB0byBjb21wbGV0ZSkuXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHNob3duRXZlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgcmFpc2VkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGluc3RhbmNlIG1ldGhvZCBoaWRlIGhhcyBiZWVuIGNhbGxlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgaGlkZUV2ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGZpcmVzIHdoZW4gdGhlIG1vZGFsIGhhcyBmaW5pc2hlZCBoaWRpbmcgZnJvbSB0aGUgdXNlciAoaXQgd2lsbCB3YWl0IGZvciBDU1MgdHJhbnNpdGlvbnMgdG8gY29tcGxldGUpLlxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyBoaWRkZW5FdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSBtb2RhbCBpcyBkaXNwbGF5ZWQsIGl0cyBiYWNrZ3JvdW5kIGlzIHN0YXRpYyBhbmQgYSBjbGljayBvdXRzaWRlIHRoZSBtb2RhbCBvciBhIHByZXNzXG4gICAqIG9mIHRoZSBlc2Mga2V5IG9jY3VycyBhbmQgZGF0YS1icy1rZXlib2FyZCBpcyBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIGhpZGVQcmV2ZW50ZWRFdmVudDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIG1vZGFsPzogTW9kYWw7XG5cbiAgQFZpZXdDaGlsZCgnbW9kYWxFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgbW9kYWxFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0aXRsZScpO1xuXG4gICAgaWYgKHRoaXMubW9kYWxFbGVtZW50KSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5tb2RhbEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMubW9kYWwgPSBNb2RhbC5nZXRPckNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpO1xuXG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Nob3cuYnMubW9kYWwnLCBldmVudCA9PiB0aGlzLnNob3dFdmVudC5lbWl0KGV2ZW50KSk7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Nob3duLmJzLm1vZGFsJywgZXZlbnQgPT4gdGhpcy5zaG93bkV2ZW50LmVtaXQoZXZlbnQpKTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaGlkZS5icy5tb2RhbCcsIGV2ZW50ID0+IHRoaXMuaGlkZUV2ZW50LmVtaXQoZXZlbnQpKTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaGlkZGVuLmJzLm1vZGFsJywgZXZlbnQgPT4gdGhpcy5oaWRkZW5FdmVudC5lbWl0KGV2ZW50KSk7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2hpZGVQcmV2ZW50ZWQuYnMubW9kYWwnLCBldmVudCA9PiB0aGlzLmhpZGVQcmV2ZW50ZWRFdmVudC5lbWl0KGV2ZW50KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBpc0Nsb3NlQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5jbG9zZUJ1dHRvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGlzRm9vdGVyU2hhZG93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5mb290ZXJTaGFkb3cpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtb2RhbENsYXNzKCk6IHN0cmluZyB7XG4gICAgbGV0IG1vZGFsQ2xhc3MgPSAnbW9kYWwnO1xuICAgIGlmIChpc1RydWVCb29sZWFuSW5wdXQodGhpcy5mYWRlKSkge1xuICAgICAgbW9kYWxDbGFzcyArPSBgIGZhZGVgO1xuICAgIH1cbiAgICBpZiAoaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuYWxlcnRNb2RhbCkpIHtcbiAgICAgIG1vZGFsQ2xhc3MgKz0gYCBhbGVydC1tb2RhbGA7XG4gICAgfVxuICAgIGlmIChpc1RydWVCb29sZWFuSW5wdXQodGhpcy5kaWFsb2dMaW5rTGlzdCkpIHtcbiAgICAgIG1vZGFsQ2xhc3MgKz0gYCBpdC1kaWFsb2ctbGluay1saXN0YDtcbiAgICB9XG4gICAgaWYgKGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnBvcGNvbmZpcm0pKSB7XG4gICAgICBtb2RhbENsYXNzICs9IGAgcG9wY29uZmlybS1tb2RhbGA7XG4gICAgfVxuICAgIGlmIChpc1RydWVCb29sZWFuSW5wdXQodGhpcy5zY3JvbGxhYmxlKSkge1xuICAgICAgbW9kYWxDbGFzcyArPSBgIGl0LWRpYWxvZy1zY3JvbGxhYmxlYDtcbiAgICB9XG4gICAgcmV0dXJuIG1vZGFsQ2xhc3M7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRpYWxvZ0NsYXNzKCk6IHN0cmluZyB7XG4gICAgbGV0IGRpYWxvZ0NsYXNzID0gJ21vZGFsLWRpYWxvZyc7XG4gICAgaWYgKHRoaXMuYWxpZ25tZW50KSB7XG4gICAgICBkaWFsb2dDbGFzcyArPSBgIG1vZGFsLWRpYWxvZy0ke3RoaXMuYWxpZ25tZW50fWA7XG4gICAgfVxuICAgIGlmICh0aGlzLnNpemUpIHtcbiAgICAgIGRpYWxvZ0NsYXNzICs9IGAgbW9kYWwtJHt0aGlzLnNpemV9YDtcbiAgICB9XG4gICAgcmV0dXJuIGRpYWxvZ0NsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbnVhbGx5IGFjdGl2YXRlL2RlYWN0aXZhdGUgYSBtb2RhbC4gUmV0dXJucyB0byB0aGUgY2FsbGVyIGJlZm9yZSB0aGUgbW9kYWwgaGFzIGFjdHVhbGx5IGJlZW4gc2hvd24gb3IgaGlkZGVuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWw/LnRvZ2dsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbnVhbGx5IG9wZW4gYSBtb2RhbC4gUmV0dXJucyB0byB0aGUgY2FsbGVyIGJlZm9yZSB0aGUgbW9kYWwgaGFzIGFjdHVhbGx5IGJlZW4gZGlzcGxheWVkXG4gICAqL1xuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsPy5zaG93KCk7XG4gIH1cblxuICAvKipcbiAgICogTWFudWFsbHkgaGlkZSBhIG1vZGFsLiBSZXR1cm5zIHRvIHRoZSBjYWxsZXIgYmVmb3JlIHRoZSBtb2RhbCBoYXMgYWN0dWFsbHkgYmVlbiBoaWRkZW5cbiAgICovXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWw/LmhpZGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW51YWxseSByZXBvc2l0aW9uIHRoZSBtb2RhbCBpZiB0aGUgaGVpZ2h0IG9mIHRoZSBtb2RhbCBjaGFuZ2VzIHdoZW4gaXQgaXMgb3BlbmVkIChpbiBjYXNlIGEgc2Nyb2xsIGJhciBhcHBlYXJzKS5cbiAgICovXG4gIHB1YmxpYyBoYW5kbGVVcGRhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbD8uaGFuZGxlVXBkYXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIG1vZGFsIG9mIGFuIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsPy5kaXNwb3NlKCk7XG4gIH1cblxufVxuIiwiPGRpdiAjbW9kYWxFbGVtZW50IFtpZF09XCJpZFwiXG4gICAgIFtjbGFzc109XCJtb2RhbENsYXNzXCJcbiAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWQrJy10aXRsZSdcIlxuICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkKyctZGVzY3JpcHRpb24nXCI+XG5cbiAgPGRpdiBbY2xhc3NdPVwiZGlhbG9nQ2xhc3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiIHJvbGU9XCJkb2N1bWVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYmVmb3JlVGl0bGVdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIDxoMiBjbGFzcz1cIm1vZGFsLXRpdGxlIGg1XCIgaWQ9XCJ7e2lkfX0tdGl0bGVcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbW9kYWxUaXRsZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImlzQ2xvc2VCdXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBkYXRhLWJzLWRpc21pc3M9XCJtb2RhbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInaXQuY29yZS5jbG9zZS1tb2RhbCd8dHJhbnNsYXRlXCI+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgPGRpdiBpZD1cInt7aWR9fS1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkZXNjcmlwdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiIFtjbGFzcy5tb2RhbC1mb290ZXItc2hhZG93XT1cImlzRm9vdGVyU2hhZG93XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
@@ -1,110 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { NotificationType } from '../../../interfaces/core';
3
- import { Notification as BSNotification } from 'bootstrap-italia';
4
- import { isTrueBooleanInput } from '../../../utils/boolean-input';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../services/notifications/notifications.service";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "../../utils/icon/icon.component";
9
- import * as i4 from "@ngx-translate/core";
10
- export class NotificationsComponent {
11
- constructor(_changeDetectorRef, _notificationService) {
12
- this._changeDetectorRef = _changeDetectorRef;
13
- this._notificationService = _notificationService;
14
- /**
15
- * Default notifications duration (milliseconds)
16
- * @default 8000
17
- */
18
- this.duration = 8000;
19
- /**
20
- * Default notifications is dismissible
21
- * @default true
22
- */
23
- this.dismissible = true;
24
- this.notificationCount = 0;
25
- this.notifications = [];
26
- this.subscription = this._notificationService.onNotification().subscribe(notification => {
27
- if (!notification.duration) {
28
- notification.duration = this.duration; // Add duration if not is set
29
- }
30
- if (!notification.position && this.position) {
31
- notification.position = this.position; // Add position if not is set
32
- }
33
- if (notification.dismissible === undefined && isTrueBooleanInput(this.dismissible)) {
34
- notification.dismissible = true; // Add dismissible if not is set
35
- }
36
- if (!notification.icon) {
37
- notification.icon = this.getNotificationIcon(notification);
38
- }
39
- const newNotification = {
40
- ...notification,
41
- id: `${notification.type}-${this.notificationCount++}-notification`
42
- };
43
- this.notifications.push(newNotification);
44
- this._changeDetectorRef.detectChanges();
45
- setTimeout(() => {
46
- // Show the notification
47
- new BSNotification(document.getElementById(newNotification.id), {
48
- timeout: notification.duration
49
- }).show();
50
- // Clear notification after the duration
51
- setTimeout(() => {
52
- const index = this.notifications.findIndex(n => n.id === newNotification.id);
53
- if (index > -1) {
54
- this.notifications.splice(index, 1);
55
- if (!this.notifications.length) {
56
- this.notificationCount = 0;
57
- }
58
- this._changeDetectorRef.detectChanges();
59
- }
60
- }, notification.duration);
61
- }, 200);
62
- });
63
- }
64
- ngOnDestroy() {
65
- this.subscription.unsubscribe();
66
- }
67
- get NotificationType() {
68
- return NotificationType;
69
- }
70
- /**
71
- * Hide the notification
72
- * @param id
73
- */
74
- hideNotification(id) {
75
- BSNotification.getInstance(document.getElementById(id))?.hide();
76
- }
77
- /**
78
- * Retrieve the icon name by notification type
79
- * @param notification the notification
80
- * @protected
81
- */
82
- getNotificationIcon(notification) {
83
- switch (notification.type) {
84
- case NotificationType.Success:
85
- return 'check-circle';
86
- case NotificationType.Error:
87
- return 'close-circle';
88
- case NotificationType.Warning:
89
- return 'error';
90
- case NotificationType.Info:
91
- return 'info-circle';
92
- case NotificationType.Standard:
93
- default:
94
- return undefined;
95
- }
96
- }
97
- }
98
- NotificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NotificationsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NotificationsService }], target: i0.ɵɵFactoryTarget.Component });
99
- NotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: NotificationsComponent, selector: "it-notifications", inputs: { duration: "duration", position: "position", dismissible: "dismissible" }, ngImport: i0, template: "<div *ngFor=\"let notification of notifications\"\n [id]=\"notification.id\"\n class=\"notification {{notification.position}} {{notification.type}}\"\n [class.with-icon]=\"!!notification.icon\"\n [class.dismissable]=\"notification.dismissible\"\n role=\"alert\" [attr.aria-labelledby]=\"notification.id+'-title'\">\n\n <h2 [id]=\"notification.id+'-title'\" class=\"h5\">\n <it-icon *ngIf=\"!!notification.icon\" [name]=\"notification.icon\"></it-icon>\n <ng-container>{{notification.title}}</ng-container>\n </h2>\n <p *ngIf=\"notification.message\">{{notification.message}}</p>\n\n <button *ngIf=\"notification.dismissible\" type=\"button\" class=\"btn notification-close\"\n (click)=\"hideNotification(notification.id)\">\n <it-icon name=\"close\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.close-notification'|translate:{ title: notification.title } }}</span>\n </button>\n</div>\n", styles: [".notification{z-index:10000}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: NotificationsComponent, decorators: [{
101
- type: Component,
102
- args: [{ selector: 'it-notifications', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngFor=\"let notification of notifications\"\n [id]=\"notification.id\"\n class=\"notification {{notification.position}} {{notification.type}}\"\n [class.with-icon]=\"!!notification.icon\"\n [class.dismissable]=\"notification.dismissible\"\n role=\"alert\" [attr.aria-labelledby]=\"notification.id+'-title'\">\n\n <h2 [id]=\"notification.id+'-title'\" class=\"h5\">\n <it-icon *ngIf=\"!!notification.icon\" [name]=\"notification.icon\"></it-icon>\n <ng-container>{{notification.title}}</ng-container>\n </h2>\n <p *ngIf=\"notification.message\">{{notification.message}}</p>\n\n <button *ngIf=\"notification.dismissible\" type=\"button\" class=\"btn notification-close\"\n (click)=\"hideNotification(notification.id)\">\n <it-icon name=\"close\"></it-icon>\n <span class=\"visually-hidden\">{{'it.core.close-notification'|translate:{ title: notification.title } }}</span>\n </button>\n</div>\n", styles: [".notification{z-index:10000}\n"] }]
103
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NotificationsService }]; }, propDecorators: { duration: [{
104
- type: Input
105
- }], position: [{
106
- type: Input
107
- }], dismissible: [{
108
- type: Input
109
- }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBR3hHLE9BQU8sRUFBc0MsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxJQUFJLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBU2hGLE1BQU0sT0FBTyxzQkFBc0I7SUF1QmpDLFlBQ21CLGtCQUFxQyxFQUNyQyxvQkFBMEM7UUFEMUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBdkI3RDs7O1dBR0c7UUFDTSxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBT2pDOzs7V0FHRztRQUNNLGdCQUFXLEdBQWtCLElBQUksQ0FBQztRQUduQyxzQkFBaUIsR0FBVyxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBeUMsRUFBRSxDQUFDO1FBTWpFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN0RixJQUFJ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QUFDLElBQUk7Z0JBQ3hCLE9BQU8sYUFBYSxDQUFDO1lBQ3ZCLEtBQUssZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1lBQy9CO2dCQUNFLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQzs7bUhBeEdVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDRJQ2RuQyxpN0JBbUJBOzJGRExhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTsySUFRdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uUG9zaXRpb24sIE5vdGlmaWNhdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIGFzIEJTTm90aWZpY2F0aW9uIH0gZnJvbSAnYm9vdHN0cmFwLWl0YWxpYSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGlzVHJ1ZUJvb2xlYW5JbnB1dCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXQnO1xuaW1wb3J0IHsgSWNvbk5hbWUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdC1ub3RpZmljYXRpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG5vdGlmaWNhdGlvbnMgZHVyYXRpb24gKG1pbGxpc2Vjb25kcylcbiAgICogQGRlZmF1bHQgODAwMFxuICAgKi9cbiAgQElucHV0KCkgZHVyYXRpb246IG51bWJlciA9IDgwMDA7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbm90aWZpY2F0aW9ucyBwb3NpdGlvblxuICAgKi9cbiAgQElucHV0KCkgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbjtcblxuICAvKipcbiAgICogRGVmYXVsdCBub3RpZmljYXRpb25zIGlzIGRpc21pc3NpYmxlXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIGRpc21pc3NpYmxlPzogQm9vbGVhbklucHV0ID0gdHJ1ZTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG5vdGlmaWNhdGlvbkNvdW50OiBudW1iZXIgPSAwO1xuICBwcm90ZWN0ZWQgbm90aWZpY2F0aW9uczogQXJyYXk8Tm90aWZpY2F0aW9uICYgeyBpZDogc3RyaW5nIH0+ID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5vbk5vdGlmaWNhdGlvbigpLnN1YnNjcmliZShub3RpZmljYXRpb24gPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uZHVyYXRpb24pIHtcbiAgICAgICAgbm90aWZpY2F0aW9uLmR1cmF0aW9uID0gdGhpcy5kdXJhdGlvbjsgLy8gQWRkIGR1cmF0aW9uIGlmIG5vdCBpcyBzZXRcbiAgICAgIH1cbiAgICAgIGlmICghbm90aWZpY2F0aW9uLnBvc2l0aW9uICYmIHRoaXMucG9zaXRpb24pIHtcbiAgICAgICAgbm90aWZpY2F0aW9uLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbjsgLy8gQWRkIHBvc2l0aW9uIGlmIG5vdCBpcyBzZXRcbiAgICAgIH1cbiAgICAgIGlmIChub3RpZmljYXRpb24uZGlzbWlzc2libGUgPT09IHVuZGVmaW5lZCAmJiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5kaXNtaXNzaWJsZSkpIHtcbiAgICAgICAgbm90aWZpY2F0aW9uLmRpc21pc3NpYmxlID0gdHJ1ZTsgLy8gQWRkIGRpc21pc3NpYmxlIGlmIG5vdCBpcyBzZXRcbiAgICAgIH1cbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmljb24pIHtcbiAgICAgICAgbm90aWZpY2F0aW9uLmljb24gPSB0aGlzLmdldE5vdGlmaWNhdGlvbkljb24obm90aWZpY2F0aW9uKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3Tm90aWZpY2F0aW9uID0ge1xuICAgICAgICAuLi5ub3RpZmljYXRpb24sXG4gICAgICAgIGlkOiBgJHtub3RpZmljYXRpb24udHlwZX0tJHt0aGlzLm5vdGlmaWNhdGlvbkNvdW50Kyt9LW5vdGlmaWNhdGlvbmBcbiAgICAgIH07XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMucHVzaChuZXdOb3RpZmljYXRpb24pO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gU2hvdyB0aGUgbm90aWZpY2F0aW9uXG4gICAgICAgIG5ldyBCU05vdGlmaWNhdGlvbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuZXdOb3RpZmljYXRpb24uaWQpISwge1xuICAgICAgICAgIHRpbWVvdXQ6IG5vdGlmaWNhdGlvbi5kdXJhdGlvblxuICAgICAgICB9KS5zaG93KCk7XG5cbiAgICAgICAgLy8gQ2xlYXIgbm90aWZpY2F0aW9uIGFmdGVyIHRoZSBkdXJhdGlvblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubm90aWZpY2F0aW9ucy5maW5kSW5kZXgobiA9PiBuLmlkID09PSBuZXdOb3RpZmljYXRpb24uaWQpO1xuICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5ub3RpZmljYXRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkNvdW50ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIG5vdGlmaWNhdGlvbi5kdXJhdGlvbik7XG4gICAgICB9LCAyMDApO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgTm90aWZpY2F0aW9uVHlwZSgpOiB0eXBlb2YgTm90aWZpY2F0aW9uVHlwZSB7XG4gICAgcmV0dXJuIE5vdGlmaWNhdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogSGlkZSB0aGUgbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSBpZFxuICAgKi9cbiAgcHJvdGVjdGVkIGhpZGVOb3RpZmljYXRpb24oaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIEJTTm90aWZpY2F0aW9uLmdldEluc3RhbmNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSEpPy5oaWRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIGljb24gbmFtZSBieSBub3RpZmljYXRpb24gdHlwZVxuICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uIHRoZSBub3RpZmljYXRpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJpdmF0ZSBnZXROb3RpZmljYXRpb25JY29uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogSWNvbk5hbWUgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAobm90aWZpY2F0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uVHlwZS5TdWNjZXNzOlxuICAgICAgICByZXR1cm4gJ2NoZWNrLWNpcmNsZSc7XG4gICAgICBjYXNlIE5vdGlmaWNhdGlvblR5cGUuRXJyb3I6XG4gICAgICAgIHJldHVybiAnY2xvc2UtY2lyY2xlJztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uVHlwZS5XYXJuaW5nOlxuICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uVHlwZS5JbmZvOlxuICAgICAgICByZXR1cm4gJ2luZm8tY2lyY2xlJztcbiAgICAgIGNhc2UgTm90aWZpY2F0aW9uVHlwZS5TdGFuZGFyZDpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0Zvcj1cImxldCBub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9uc1wiXG4gICAgIFtpZF09XCJub3RpZmljYXRpb24uaWRcIlxuICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbiB7e25vdGlmaWNhdGlvbi5wb3NpdGlvbn19IHt7bm90aWZpY2F0aW9uLnR5cGV9fVwiXG4gICAgIFtjbGFzcy53aXRoLWljb25dPVwiISFub3RpZmljYXRpb24uaWNvblwiXG4gICAgIFtjbGFzcy5kaXNtaXNzYWJsZV09XCJub3RpZmljYXRpb24uZGlzbWlzc2libGVcIlxuICAgICByb2xlPVwiYWxlcnRcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibm90aWZpY2F0aW9uLmlkKyctdGl0bGUnXCI+XG5cbiAgPGgyIFtpZF09XCJub3RpZmljYXRpb24uaWQrJy10aXRsZSdcIiBjbGFzcz1cImg1XCI+XG4gICAgPGl0LWljb24gKm5nSWY9XCIhIW5vdGlmaWNhdGlvbi5pY29uXCIgW25hbWVdPVwibm90aWZpY2F0aW9uLmljb25cIj48L2l0LWljb24+XG4gICAgPG5nLWNvbnRhaW5lcj57e25vdGlmaWNhdGlvbi50aXRsZX19PC9uZy1jb250YWluZXI+XG4gIDwvaDI+XG4gIDxwICpuZ0lmPVwibm90aWZpY2F0aW9uLm1lc3NhZ2VcIj57e25vdGlmaWNhdGlvbi5tZXNzYWdlfX08L3A+XG5cbiAgPGJ1dHRvbiAqbmdJZj1cIm5vdGlmaWNhdGlvbi5kaXNtaXNzaWJsZVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBub3RpZmljYXRpb24tY2xvc2VcIlxuICAgICAgICAgIChjbGljayk9XCJoaWRlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5pZClcIj5cbiAgICA8aXQtaWNvbiBuYW1lPVwiY2xvc2VcIj48L2l0LWljb24+XG4gICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydpdC5jb3JlLmNsb3NlLW5vdGlmaWNhdGlvbid8dHJhbnNsYXRlOnsgdGl0bGU6IG5vdGlmaWNhdGlvbi50aXRsZSB9IH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -1,131 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { isTrueBooleanInput } from '../../../utils/boolean-input';
3
- import { FormControl } from '@angular/forms';
4
- import { debounceTime, distinctUntilChanged, filter } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "../dropdown/dropdown/dropdown.component";
9
- import * as i4 from "../dropdown/dropdown-item/dropdown-item.component";
10
- import * as i5 from "../../form/input/input.component";
11
- import * as i6 from "../../utils/icon/icon.component";
12
- import * as i7 from "@ngx-translate/core";
13
- export class PaginationComponent {
14
- constructor() {
15
- /**
16
- * Number of pages closest to the current one to display
17
- * @default 5
18
- */
19
- this.visiblePages = 5;
20
- /**
21
- * Available Changer values
22
- * @default [10, 25, 50, 100]
23
- */
24
- this.changerValues = [10, 25, 50, 100];
25
- /**
26
- * Fired when page is changed. Emit the new index of page
27
- */
28
- this.pageEvent = new EventEmitter();
29
- /**
30
- * Fired when changer is changed. Emit the new changer value
31
- */
32
- this.changerEvent = new EventEmitter();
33
- /**
34
- * The pages
35
- * @protected
36
- */
37
- this.pages = [];
38
- /**
39
- * Jump to page input
40
- * @protected
41
- */
42
- this.jumpToPage = new FormControl(null);
43
- this.jumpToPage.valueChanges.pipe(debounceTime(300), // Delay filter data after time span has passed without another source emission
44
- distinctUntilChanged(), filter(value => !!value && this.jumpToPage.valid)).subscribe(value => {
45
- this.pageEvent.emit(value - 1);
46
- });
47
- }
48
- get isSimpleMode() {
49
- return isTrueBooleanInput(this.simpleMode);
50
- }
51
- get isTextLinks() {
52
- return isTrueBooleanInput(this.textLinks);
53
- }
54
- get isShowJumpToPage() {
55
- return isTrueBooleanInput(this.showJumpToPage);
56
- }
57
- ngOnChanges(changes) {
58
- this.pages = this.calculatePages();
59
- if (changes['currentPage']) {
60
- this.jumpToPage.setValue(null, { emitEvent: false });
61
- }
62
- }
63
- /**
64
- * Create array to generate pagination of `visiblePages` element
65
- */
66
- calculatePages() {
67
- if (this.isSimpleMode) {
68
- return [this.currentPage];
69
- }
70
- const length = this.pageNumbers > this.visiblePages ? this.visiblePages : this.pageNumbers;
71
- const halfVisiblePages = Math.floor(this.visiblePages / 2);
72
- let start = (this.currentPage > halfVisiblePages && this.pageNumbers > this.visiblePages) ?
73
- this.currentPage - halfVisiblePages + 1 : 1;
74
- if (this.pageNumbers > this.visiblePages) {
75
- if ((this.currentPage + 1) >= this.pageNumbers) {
76
- start -= halfVisiblePages;
77
- }
78
- else if (this.currentPage >= (this.pageNumbers - halfVisiblePages)) {
79
- start -= (this.pageNumbers - (this.currentPage + 1));
80
- }
81
- }
82
- return Array.from({ length }, (_, i) => i + start);
83
- }
84
- /**
85
- * On click page change
86
- * @param event click event
87
- * @param newPage the new page of table
88
- */
89
- pageChange(event, newPage) {
90
- event.preventDefault();
91
- this.pageEvent.emit(newPage - 1); // emit new page index
92
- }
93
- /**
94
- * On click changer
95
- * @param event click event
96
- * @param value the new changer value
97
- */
98
- changerChange(event, value) {
99
- event.preventDefault();
100
- this.changerEvent.emit(value); // emit new changer value
101
- }
102
- }
103
- PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
- PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: PaginationComponent, selector: "it-pagination[currentPage][pageNumbers]", inputs: { currentPage: "currentPage", pageNumbers: "pageNumbers", visiblePages: "visiblePages", alignment: "alignment", simpleMode: "simpleMode", textLinks: "textLinks", currentChanger: "currentChanger", changerValues: "changerValues", showJumpToPage: "showJumpToPage" }, outputs: { pageEvent: "pageEvent", changerEvent: "changerEvent" }, usesOnChanges: true, ngImport: i0, template: "<nav class=\"pagination-wrapper\"\n [class.justify-content-center]=\"alignment==='center'\"\n [class.justify-content-end]=\"alignment==='end'\"\n [class.pagination-total]=\"totalNumberText.hasChildNodes()\">\n\n <ul *ngIf=\"pages.length\" class=\"pagination\">\n <li class=\"page-item\" [class.disabled]=\"currentPage < 1\">\n <a class=\"page-link\" [class.text]=\"isTextLinks\" href=\"#\" (click)=\"pageChange($event, currentPage)\">\n <it-icon *ngIf=\"!isTextLinks\" name=\"chevron-left\" color=\"primary\"></it-icon>\n <span class=\"visually-hidden\">\n {{(isTextLinks ? 'it.core.page' : 'it.core.previous-page') | translate}}\n </span>\n <ng-container *ngIf=\"isTextLinks\">{{'it.core.previous' | translate}}</ng-container>\n </a>\n </li>\n\n <ng-container *ngIf=\"isSimpleMode; else defaultView\">\n <li class=\"page-item\"><span class=\"page-link\" aria-current=\"page\">{{currentPage + 1}}</span></li>\n <li class=\"page-item\"><span class=\"page-link\">/</span></li>\n <li class=\"page-item\"><span class=\"page-link\">{{pageNumbers}}</span></li>\n <li class=\"page-item visually-hidden\">\n <a class=\"page-link\" href=\"#\" aria-current=\"page\">\n {{'it.core.page-of-total'|translate : {page: (currentPage + 1), total: pageNumbers} }}\n </a>\n </li>\n </ng-container>\n <ng-template #defaultView>\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[0] >= 2\">\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, 1)\">1</a>\n </li>\n <li class=\"page-item\" *ngIf=\"pages[0] >= 3\">\n <span class=\"page-link\">...</span>\n </li>\n </ng-container>\n\n <li class=\"page-item\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" aria-current=\"page\" *ngIf=\"page === (currentPage + 1); else inactivePage\">\n <span class=\"d-inline-block d-sm-none\">{{'it.core.page'|translate}}</span> {{page}}\n </a>\n <ng-template #inactivePage>\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, page)\">{{page}}</a>\n </ng-template>\n </li>\n\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[pages.length - 1] < pageNumbers\">\n <li class=\"page-item\" *ngIf=\"pages[pages.length - 1] < (pageNumbers - 1)\">\n <span class=\"page-link\">...</span>\n </li>\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, pageNumbers)\">{{pageNumbers}}</a>\n </li>\n </ng-container>\n </ng-template>\n\n <li class=\"page-item\" [class.disabled]=\"currentPage >= pageNumbers - 1\">\n <a class=\"page-link\" [class.text]=\"isTextLinks\" href=\"#\" (click)=\"pageChange($event, currentPage + 2)\">\n <span class=\"visually-hidden\">\n {{(isTextLinks ? 'it.core.page' : 'it.core.next-page') | translate}}\n </span>\n <ng-container *ngIf=\"isTextLinks\">{{'it.core.next' | translate}}</ng-container>\n <it-icon *ngIf=\"!isTextLinks\" name=\"chevron-right\" color=\"primary\"></it-icon>\n </a>\n </li>\n </ul>\n\n <it-dropdown *ngIf=\"currentChanger !== undefined\">\n <span button>{{currentChanger}} / {{'it.core.page' | translate | lowercase}}</span>\n <ng-container list>\n <it-dropdown-item *ngFor=\"let value of changerValues\" href=\"#\" externalLink=\"true\"\n (click)=\"changerChange($event, value)\">\n {{value}} / {{'it.core.page' | translate | lowercase}}\n </it-dropdown-item>\n </ng-container>\n </it-dropdown>\n\n <it-input *ngIf=\"isShowJumpToPage\" type=\"number\" [min]=\"1\" [max]=\"pageNumbers\"\n [label]=\"('it.core.go-to' | translate) + '...'\" [formControl]=\"jumpToPage\"></it-input>\n\n <p [class.d-none]=\"!totalNumberText.hasChildNodes()\" #totalNumberText>\n <ng-content></ng-content>\n </p>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.DropdownComponent, selector: "it-dropdown", inputs: ["color", "direction", "fullWidth", "dark"], outputs: ["showEvent", "shownEvent", "hideEvent", "hiddenEvent"], exportAs: ["itDropdown"] }, { kind: "component", type: i4.DropdownItemComponent, selector: "it-dropdown-item", inputs: ["divider", "active", "large", "iconName", "iconPosition"] }, { kind: "component", type: i5.InputComponent, selector: "it-input", inputs: ["type", "placeholder", "description", "readonly", "maxDate", "minDate", "max", "min", "step", "currency", "percentage", "adaptive", "autocompleteData", "autocompleteDebounceTime"], outputs: ["autocompleteSelectedEvent"] }, { kind: "component", type: i6.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "svgClass"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: PaginationComponent, decorators: [{
106
- type: Component,
107
- args: [{ selector: 'it-pagination[currentPage][pageNumbers]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"pagination-wrapper\"\n [class.justify-content-center]=\"alignment==='center'\"\n [class.justify-content-end]=\"alignment==='end'\"\n [class.pagination-total]=\"totalNumberText.hasChildNodes()\">\n\n <ul *ngIf=\"pages.length\" class=\"pagination\">\n <li class=\"page-item\" [class.disabled]=\"currentPage < 1\">\n <a class=\"page-link\" [class.text]=\"isTextLinks\" href=\"#\" (click)=\"pageChange($event, currentPage)\">\n <it-icon *ngIf=\"!isTextLinks\" name=\"chevron-left\" color=\"primary\"></it-icon>\n <span class=\"visually-hidden\">\n {{(isTextLinks ? 'it.core.page' : 'it.core.previous-page') | translate}}\n </span>\n <ng-container *ngIf=\"isTextLinks\">{{'it.core.previous' | translate}}</ng-container>\n </a>\n </li>\n\n <ng-container *ngIf=\"isSimpleMode; else defaultView\">\n <li class=\"page-item\"><span class=\"page-link\" aria-current=\"page\">{{currentPage + 1}}</span></li>\n <li class=\"page-item\"><span class=\"page-link\">/</span></li>\n <li class=\"page-item\"><span class=\"page-link\">{{pageNumbers}}</span></li>\n <li class=\"page-item visually-hidden\">\n <a class=\"page-link\" href=\"#\" aria-current=\"page\">\n {{'it.core.page-of-total'|translate : {page: (currentPage + 1), total: pageNumbers} }}\n </a>\n </li>\n </ng-container>\n <ng-template #defaultView>\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[0] >= 2\">\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, 1)\">1</a>\n </li>\n <li class=\"page-item\" *ngIf=\"pages[0] >= 3\">\n <span class=\"page-link\">...</span>\n </li>\n </ng-container>\n\n <li class=\"page-item\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" aria-current=\"page\" *ngIf=\"page === (currentPage + 1); else inactivePage\">\n <span class=\"d-inline-block d-sm-none\">{{'it.core.page'|translate}}</span> {{page}}\n </a>\n <ng-template #inactivePage>\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, page)\">{{page}}</a>\n </ng-template>\n </li>\n\n <ng-container *ngIf=\"pageNumbers > visiblePages && pages[pages.length - 1] < pageNumbers\">\n <li class=\"page-item\" *ngIf=\"pages[pages.length - 1] < (pageNumbers - 1)\">\n <span class=\"page-link\">...</span>\n </li>\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"#\" (click)=\"pageChange($event, pageNumbers)\">{{pageNumbers}}</a>\n </li>\n </ng-container>\n </ng-template>\n\n <li class=\"page-item\" [class.disabled]=\"currentPage >= pageNumbers - 1\">\n <a class=\"page-link\" [class.text]=\"isTextLinks\" href=\"#\" (click)=\"pageChange($event, currentPage + 2)\">\n <span class=\"visually-hidden\">\n {{(isTextLinks ? 'it.core.page' : 'it.core.next-page') | translate}}\n </span>\n <ng-container *ngIf=\"isTextLinks\">{{'it.core.next' | translate}}</ng-container>\n <it-icon *ngIf=\"!isTextLinks\" name=\"chevron-right\" color=\"primary\"></it-icon>\n </a>\n </li>\n </ul>\n\n <it-dropdown *ngIf=\"currentChanger !== undefined\">\n <span button>{{currentChanger}} / {{'it.core.page' | translate | lowercase}}</span>\n <ng-container list>\n <it-dropdown-item *ngFor=\"let value of changerValues\" href=\"#\" externalLink=\"true\"\n (click)=\"changerChange($event, value)\">\n {{value}} / {{'it.core.page' | translate | lowercase}}\n </it-dropdown-item>\n </ng-container>\n </it-dropdown>\n\n <it-input *ngIf=\"isShowJumpToPage\" type=\"number\" [min]=\"1\" [max]=\"pageNumbers\"\n [label]=\"('it.core.go-to' | translate) + '...'\" [formControl]=\"jumpToPage\"></it-input>\n\n <p [class.d-none]=\"!totalNumberText.hasChildNodes()\" #totalNumberText>\n <ng-content></ng-content>\n </p>\n</nav>\n" }]
108
- }], ctorParameters: function () { return []; }, propDecorators: { currentPage: [{
109
- type: Input
110
- }], pageNumbers: [{
111
- type: Input
112
- }], visiblePages: [{
113
- type: Input
114
- }], alignment: [{
115
- type: Input
116
- }], simpleMode: [{
117
- type: Input
118
- }], textLinks: [{
119
- type: Input
120
- }], currentChanger: [{
121
- type: Input
122
- }], changerValues: [{
123
- type: Input
124
- }], showJumpToPage: [{
125
- type: Input
126
- }], pageEvent: [{
127
- type: Output
128
- }], changerEvent: [{
129
- type: Output
130
- }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBT2xFLE1BQU0sT0FBTyxtQkFBbUI7SUEwRjlCO1FBOUVBOzs7V0FHRztRQUNNLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBNEJsQzs7O1dBR0c7UUFDTSxrQkFBYSxHQUFrQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUTFEOztXQUVHO1FBQ08sY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFakQ7O1dBRUc7UUFDTyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFcEQ7OztXQUdHO1FBQ08sVUFBSyxHQUFrQixFQUFFLENBQUM7UUFFcEM7OztXQUdHO1FBQ08sZUFBVSxHQUErQixJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxDQUFD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QyxDQUFDLHNCQUFzQjtJQUMxRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGFBQWEsQ0FBQyxLQUFZLEVBQUUsS0FBYTtRQUNqRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7SUFDMUQsQ0FBQzs7Z0hBdEpVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHViQ2xCaEMsdzhIQW1GQTsyRkRqRWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLHlDQUF5QyxtQkFFbEMsdUJBQXVCLENBQUMsTUFBTTswRUFPdEMsV0FBVztzQkFBbkIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFPRyxVQUFVO3NCQUFsQixLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0ksU0FBUztzQkFBbEIsTUFBTTtnQkFLRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGlzVHJ1ZUJvb2xlYW5JbnB1dCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtcGFnaW5hdGlvbltjdXJyZW50UGFnZV1bcGFnZU51bWJlcnNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAvKipcbiAgICogSW5kZXggb2YgcGFnZSAoc3RhcnQgMClcbiAgICovXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIHBhZ2UgKGNvdW50ZXIpXG4gICAqL1xuICBASW5wdXQoKSBwYWdlTnVtYmVycyE6IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHBhZ2VzIGNsb3Nlc3QgdG8gdGhlIGN1cnJlbnQgb25lIHRvIGRpc3BsYXlcbiAgICogQGRlZmF1bHQgNVxuICAgKi9cbiAgQElucHV0KCkgdmlzaWJsZVBhZ2VzOiBudW1iZXIgPSA1O1xuXG4gIC8qKlxuICAgKiBQYWdpbmF0aW9uIGFsaWdubWVudCAoanVzdGlmeS1jb250ZW50KVxuICAgKi9cbiAgQElucHV0KCkgYWxpZ25tZW50PzogJ2NlbnRlcicgfCAnZW5kJztcblxuICAvKipcbiAgICogRW5hYmxlL0Rpc2FibGUgc2ltcGxlIG1vZGVcbiAgICogUGFnaW5hdGlvbiBpbiB0aGUgXCJTaW1wbGUgbW9kZVwiIHZlcnNpb24gaXMgb3B0aW1pemVkIGZvciBtb2JpbGUgZGV2aWNlcy5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gZGlzYWJsZWRcbiAgICovXG4gIEBJbnB1dCgpIHNpbXBsZU1vZGU/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIEVuYWJsZS9EaXNhYmxlIHRleHQgbGlua3NcbiAgICogQ2hldnJvbiBpY29ucyB1c2VkIGFzIG5hdmlnYXRpb24gbGlua3MgYXJlIHJlcGxhY2VkIGJ5IHRleHQgbGlua3Mgc3VjaCBhcyDigJxwcmV2aW91c+KAnSBhbmQg4oCcbmV4dOKAnS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gZGlzYWJsZWRcbiAgICovXG4gIEBJbnB1dCgpIHRleHRMaW5rcz86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogQ3VycmVudCB2YWx1ZSBvZiBDaGFuZ2VyXG4gICAqIElmIGlzIHNldCBzaG93IHRoZSBDaGFuZ2VyXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIGhpZGUgdGhlIENoYW5nZXJcbiAgICovXG4gIEBJbnB1dCgpIGN1cnJlbnRDaGFuZ2VyPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBdmFpbGFibGUgQ2hhbmdlciB2YWx1ZXNcbiAgICogQGRlZmF1bHQgWzEwLCAyNSwgNTAsIDEwMF1cbiAgICovXG4gIEBJbnB1dCgpIGNoYW5nZXJWYWx1ZXM6IEFycmF5PG51bWJlcj4gPSBbMTAsIDI1LCA1MCwgMTAwXTtcblxuICAvKipcbiAgICogSGlkZS9TaG93IFwiSnVtcCB0byBwYWdlXCIgaW5wdXRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gaGlkZGVuXG4gICAqL1xuICBASW5wdXQoKSBzaG93SnVtcFRvUGFnZT86IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogRmlyZWQgd2hlbiBwYWdlIGlzIGNoYW5nZWQuIEVtaXQgdGhlIG5ldyBpbmRleCBvZiBwYWdlXG4gICAqL1xuICBAT3V0cHV0KCkgcGFnZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gY2hhbmdlciBpcyBjaGFuZ2VkLiBFbWl0IHRoZSBuZXcgY2hhbmdlciB2YWx1ZVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFnZXNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHBhZ2VzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgLyoqXG4gICAqIEp1bXAgdG8gcGFnZSBpbnB1dFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQganVtcFRvUGFnZTogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4gPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgZ2V0IGlzU2ltcGxlTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc2ltcGxlTW9kZSk7XG4gIH1cblxuICBnZXQgaXNUZXh0TGlua3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLnRleHRMaW5rcyk7XG4gIH1cblxuICBnZXQgaXNTaG93SnVtcFRvUGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuc2hvd0p1bXBUb1BhZ2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5qdW1wVG9QYWdlLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksIC8vIERlbGF5IGZpbHRlciBkYXRhIGFmdGVyIHRpbWUgc3BhbiBoYXMgcGFzc2VkIHdpdGhvdXQgYW5vdGhlciBzb3VyY2UgZW1pc3Npb25cbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSAmJiB0aGlzLmp1bXBUb1BhZ2UudmFsaWQpXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5wYWdlRXZlbnQuZW1pdCh2YWx1ZSEgLSAxKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2VzID0gdGhpcy5jYWxjdWxhdGVQYWdlcygpO1xuICAgIGlmIChjaGFuZ2VzWydjdXJyZW50UGFnZSddKSB7XG4gICAgICB0aGlzLmp1bXBUb1BhZ2Uuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYXJyYXkgdG8gZ2VuZXJhdGUgcGFnaW5hdGlvbiBvZiBgdmlzaWJsZVBhZ2VzYCBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZVBhZ2VzKCk6IEFycmF5PG51bWJlcj4ge1xuICAgIGlmICh0aGlzLmlzU2ltcGxlTW9kZSkge1xuICAgICAgcmV0dXJuIFt0aGlzLmN1cnJlbnRQYWdlXTtcbiAgICB9XG5cbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLnBhZ2VOdW1iZXJzID4gdGhpcy52aXNpYmxlUGFnZXMgPyB0aGlzLnZpc2libGVQYWdlcyA6IHRoaXMucGFnZU51bWJlcnM7XG5cbiAgICBjb25zdCBoYWxmVmlzaWJsZVBhZ2VzID0gTWF0aC5mbG9vcih0aGlzLnZpc2libGVQYWdlcyAvIDIpO1xuICAgIGxldCBzdGFydCA9ICh0aGlzLmN1cnJlbnRQYWdlID4gaGFsZlZpc2libGVQYWdlcyAmJiB0aGlzLnBhZ2VOdW1iZXJzID4gdGhpcy52aXNpYmxlUGFnZXMpID9cbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgLSBoYWxmVmlzaWJsZVBhZ2VzICsgMSA6IDE7XG5cbiAgICBpZiAodGhpcy5wYWdlTnVtYmVycyA+IHRoaXMudmlzaWJsZVBhZ2VzKSB7XG4gICAgICBpZiAoKHRoaXMuY3VycmVudFBhZ2UgKyAxKSA+PSB0aGlzLnBhZ2VOdW1iZXJzKSB7XG4gICAgICAgIHN0YXJ0IC09IGhhbGZWaXNpYmxlUGFnZXM7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFBhZ2UgPj0gKHRoaXMucGFnZU51bWJlcnMgLSBoYWxmVmlzaWJsZVBhZ2VzKSkge1xuICAgICAgICBzdGFydCAtPSAodGhpcy5wYWdlTnVtYmVycyAtICh0aGlzLmN1cnJlbnRQYWdlICsgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sIChfLCBpKSA9PiBpICsgc3RhcnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIGNsaWNrIHBhZ2UgY2hhbmdlXG4gICAqIEBwYXJhbSBldmVudCBjbGljayBldmVudFxuICAgKiBAcGFyYW0gbmV3UGFnZSB0aGUgbmV3IHBhZ2Ugb2YgdGFibGVcbiAgICovXG4gIHByb3RlY3RlZCBwYWdlQ2hhbmdlKGV2ZW50OiBFdmVudCwgbmV3UGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnBhZ2VFdmVudC5lbWl0KG5ld1BhZ2UgLSAxKTsgLy8gZW1pdCBuZXcgcGFnZSBpbmRleFxuICB9XG5cbiAgLyoqXG4gICAqIE9uIGNsaWNrIGNoYW5nZXJcbiAgICogQHBhcmFtIGV2ZW50IGNsaWNrIGV2ZW50XG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IGNoYW5nZXIgdmFsdWVcbiAgICovXG4gIHByb3RlY3RlZCBjaGFuZ2VyQ2hhbmdlKGV2ZW50OiBFdmVudCwgdmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5jaGFuZ2VyRXZlbnQuZW1pdCh2YWx1ZSk7IC8vIGVtaXQgbmV3IGNoYW5nZXIgdmFsdWVcbiAgfVxuXG59XG4iLCI8bmF2IGNsYXNzPVwicGFnaW5hdGlvbi13cmFwcGVyXCJcbiAgICAgW2NsYXNzLmp1c3RpZnktY29udGVudC1jZW50ZXJdPVwiYWxpZ25tZW50PT09J2NlbnRlcidcIlxuICAgICBbY2xhc3MuanVzdGlmeS1jb250ZW50LWVuZF09XCJhbGlnbm1lbnQ9PT0nZW5kJ1wiXG4gICAgIFtjbGFzcy5wYWdpbmF0aW9uLXRvdGFsXT1cInRvdGFsTnVtYmVyVGV4dC5oYXNDaGlsZE5vZGVzKClcIj5cblxuICA8dWwgKm5nSWY9XCJwYWdlcy5sZW5ndGhcIiBjbGFzcz1cInBhZ2luYXRpb25cIj5cbiAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPCAxXCI+XG4gICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtjbGFzcy50ZXh0XT1cImlzVGV4dExpbmtzXCIgaHJlZj1cIiNcIiAoY2xpY2spPVwicGFnZUNoYW5nZSgkZXZlbnQsIGN1cnJlbnRQYWdlKVwiPlxuICAgICAgICA8aXQtaWNvbiAqbmdJZj1cIiFpc1RleHRMaW5rc1wiIG5hbWU9XCJjaGV2cm9uLWxlZnRcIiBjb2xvcj1cInByaW1hcnlcIj48L2l0LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgICAge3soaXNUZXh0TGlua3MgPyAnaXQuY29yZS5wYWdlJyA6ICdpdC5jb3JlLnByZXZpb3VzLXBhZ2UnKSB8IHRyYW5zbGF0ZX19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGV4dExpbmtzXCI+e3snaXQuY29yZS5wcmV2aW91cycgfCB0cmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgPC9hPlxuICAgIDwvbGk+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaW1wbGVNb2RlOyBlbHNlIGRlZmF1bHRWaWV3XCI+XG4gICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj48c3BhbiBjbGFzcz1cInBhZ2UtbGlua1wiIGFyaWEtY3VycmVudD1cInBhZ2VcIj57e2N1cnJlbnRQYWdlICsgMX19PC9zcGFuPjwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj48c3BhbiBjbGFzcz1cInBhZ2UtbGlua1wiPi88L3NwYW4+PC9saT5cbiAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiPjxzcGFuIGNsYXNzPVwicGFnZS1saW5rXCI+e3twYWdlTnVtYmVyc319PC9zcGFuPjwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW0gdmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cIiNcIiBhcmlhLWN1cnJlbnQ9XCJwYWdlXCI+XG4gICAgICAgICAge3snaXQuY29yZS5wYWdlLW9mLXRvdGFsJ3x0cmFuc2xhdGUgOiB7cGFnZTogKGN1cnJlbnRQYWdlICsgMSksIHRvdGFsOiBwYWdlTnVtYmVyc30gfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRWaWV3PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VOdW1iZXJzID4gdmlzaWJsZVBhZ2VzICYmIHBhZ2VzWzBdID49IDJcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBocmVmPVwiI1wiIChjbGljayk9XCJwYWdlQ2hhbmdlKCRldmVudCwgMSlcIj4xPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiAqbmdJZj1cInBhZ2VzWzBdID49IDNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2UtbGlua1wiPi4uLjwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGFyaWEtY3VycmVudD1cInBhZ2VcIiAqbmdJZj1cInBhZ2UgPT09IChjdXJyZW50UGFnZSArIDEpOyBlbHNlIGluYWN0aXZlUGFnZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2sgZC1zbS1ub25lXCI+e3snaXQuY29yZS5wYWdlJ3x0cmFuc2xhdGV9fTwvc3Bhbj4ge3twYWdlfX1cbiAgICAgICAgPC9hPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2luYWN0aXZlUGFnZT5cbiAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIGhyZWY9XCIjXCIgKGNsaWNrKT1cInBhZ2VDaGFuZ2UoJGV2ZW50LCBwYWdlKVwiPnt7cGFnZX19PC9hPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9saT5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VOdW1iZXJzID4gdmlzaWJsZVBhZ2VzICYmIHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdIDwgcGFnZU51bWJlcnNcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgKm5nSWY9XCJwYWdlc1twYWdlcy5sZW5ndGggLSAxXSA8IChwYWdlTnVtYmVycyAtIDEpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWxpbmtcIj4uLi48L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgaHJlZj1cIiNcIiAoY2xpY2spPVwicGFnZUNoYW5nZSgkZXZlbnQsIHBhZ2VOdW1iZXJzKVwiPnt7cGFnZU51bWJlcnN9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPj0gcGFnZU51bWJlcnMgLSAxXCI+XG4gICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtjbGFzcy50ZXh0XT1cImlzVGV4dExpbmtzXCIgaHJlZj1cIiNcIiAoY2xpY2spPVwicGFnZUNoYW5nZSgkZXZlbnQsIGN1cnJlbnRQYWdlICsgMilcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICB7eyhpc1RleHRMaW5rcyA/ICdpdC5jb3JlLnBhZ2UnIDogJ2l0LmNvcmUubmV4dC1wYWdlJykgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RleHRMaW5rc1wiPnt7J2l0LmNvcmUubmV4dCcgfCB0cmFuc2xhdGV9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8aXQtaWNvbiAqbmdJZj1cIiFpc1RleHRMaW5rc1wiIG5hbWU9XCJjaGV2cm9uLXJpZ2h0XCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pdC1pY29uPlxuICAgICAgPC9hPlxuICAgIDwvbGk+XG4gIDwvdWw+XG5cbiAgPGl0LWRyb3Bkb3duICpuZ0lmPVwiY3VycmVudENoYW5nZXIgIT09IHVuZGVmaW5lZFwiPlxuICAgIDxzcGFuIGJ1dHRvbj57e2N1cnJlbnRDaGFuZ2VyfX0gLyB7eydpdC5jb3JlLnBhZ2UnIHwgdHJhbnNsYXRlIHwgbG93ZXJjYXNlfX08L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciBsaXN0PlxuICAgICAgPGl0LWRyb3Bkb3duLWl0ZW0gKm5nRm9yPVwibGV0IHZhbHVlIG9mIGNoYW5nZXJWYWx1ZXNcIiBocmVmPVwiI1wiIGV4dGVybmFsTGluaz1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZXJDaGFuZ2UoJGV2ZW50LCB2YWx1ZSlcIj5cbiAgICAgICAge3t2YWx1ZX19IC8ge3snaXQuY29yZS5wYWdlJyB8IHRyYW5zbGF0ZSB8IGxvd2VyY2FzZX19XG4gICAgICA8L2l0LWRyb3Bkb3duLWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvaXQtZHJvcGRvd24+XG5cbiAgPGl0LWlucHV0ICpuZ0lmPVwiaXNTaG93SnVtcFRvUGFnZVwiIHR5cGU9XCJudW1iZXJcIiBbbWluXT1cIjFcIiBbbWF4XT1cInBhZ2VOdW1iZXJzXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIoJ2l0LmNvcmUuZ28tdG8nIHwgdHJhbnNsYXRlKSArICcuLi4nXCIgW2Zvcm1Db250cm9sXT1cImp1bXBUb1BhZ2VcIj48L2l0LWlucHV0PlxuXG4gIDxwIFtjbGFzcy5kLW5vbmVdPVwiIXRvdGFsTnVtYmVyVGV4dC5oYXNDaGlsZE5vZGVzKClcIiAjdG90YWxOdW1iZXJUZXh0PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9wPlxuPC9uYXY+XG4iXX0=