valtech-components 2.0.192 → 2.0.193

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 (171) hide show
  1. package/README.md +67 -13
  2. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +15 -1
  3. package/esm2022/lib/components/atoms/avatar/types.mjs +1 -1
  4. package/esm2022/lib/components/atoms/box/box.component.mjs +17 -1
  5. package/esm2022/lib/components/atoms/box/types.mjs +1 -1
  6. package/esm2022/lib/components/atoms/button/button.component.mjs +15 -1
  7. package/esm2022/lib/components/atoms/display/display.component.mjs +11 -1
  8. package/esm2022/lib/components/atoms/display/types.mjs +1 -1
  9. package/esm2022/lib/components/atoms/divider/divider.component.mjs +11 -2
  10. package/esm2022/lib/components/atoms/divider/types.mjs +1 -1
  11. package/esm2022/lib/components/atoms/href/href.component.mjs +12 -1
  12. package/esm2022/lib/components/atoms/href/types.mjs +1 -1
  13. package/esm2022/lib/components/atoms/icon/icon.component.mjs +11 -1
  14. package/esm2022/lib/components/atoms/icon/types.mjs +1 -1
  15. package/esm2022/lib/components/atoms/image/image.component.mjs +13 -3
  16. package/esm2022/lib/components/atoms/image/types.mjs +1 -1
  17. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +11 -1
  18. package/esm2022/lib/components/atoms/progress-bar/types.mjs +1 -1
  19. package/esm2022/lib/components/atoms/text/text.component.mjs +11 -1
  20. package/esm2022/lib/components/atoms/text/types.mjs +1 -1
  21. package/esm2022/lib/components/atoms/title/title.component.mjs +11 -1
  22. package/esm2022/lib/components/atoms/title/types.mjs +1 -1
  23. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +11 -1
  24. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +15 -1
  25. package/esm2022/lib/components/molecules/button-group/types.mjs +1 -1
  26. package/esm2022/lib/components/molecules/card/card.component.mjs +15 -1
  27. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +9 -1
  28. package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +11 -1
  29. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +11 -1
  30. package/esm2022/lib/components/molecules/content-loader/types.mjs +1 -1
  31. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +11 -1
  32. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +11 -1
  33. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +11 -1
  34. package/esm2022/lib/components/molecules/expandable-text/types.mjs +1 -1
  35. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +16 -6
  36. package/esm2022/lib/components/molecules/hint/hint.component.mjs +11 -1
  37. package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +11 -1
  38. package/esm2022/lib/components/molecules/link/link.component.mjs +12 -1
  39. package/esm2022/lib/components/molecules/link/types.mjs +1 -1
  40. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +11 -1
  41. package/esm2022/lib/components/molecules/links-cake/types.mjs +1 -1
  42. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +31 -3
  43. package/esm2022/lib/components/molecules/notes-box/types.mjs +1 -1
  44. package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +11 -1
  45. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +11 -1
  46. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +11 -1
  47. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +11 -1
  48. package/esm2022/lib/components/molecules/progress-status/types.mjs +1 -1
  49. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +12 -1
  50. package/esm2022/lib/components/molecules/prompter/types.mjs +1 -1
  51. package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +11 -1
  52. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +27 -5
  53. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +11 -1
  54. package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +13 -3
  55. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +14 -17
  56. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +11 -1
  57. package/esm2022/lib/components/molecules/title-block/types.mjs +1 -1
  58. package/esm2022/lib/components/organisms/banner/banner.component.mjs +25 -3
  59. package/esm2022/lib/components/organisms/banner/types.mjs +1 -1
  60. package/esm2022/lib/components/organisms/footer/footer.component.mjs +23 -2
  61. package/esm2022/lib/components/organisms/footer/types.mjs +1 -1
  62. package/esm2022/lib/components/organisms/header/header.component.mjs +20 -1
  63. package/esm2022/lib/components/organisms/header/types.mjs +1 -1
  64. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +31 -1
  65. package/esm2022/lib/components/organisms/item-list/types.mjs +1 -1
  66. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +20 -1
  67. package/esm2022/lib/components/organisms/no-content/types.mjs +1 -1
  68. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +46 -12
  69. package/esm2022/lib/components/organisms/toolbar/types.mjs +1 -1
  70. package/esm2022/lib/components/organisms/wizard/types.mjs +4 -1
  71. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +44 -1
  72. package/esm2022/lib/services/download.service.mjs +18 -1
  73. package/esm2022/lib/services/icons.service.mjs +8 -1
  74. package/esm2022/lib/services/in-app-browser.service.mjs +12 -1
  75. package/esm2022/lib/services/local-storage.service.mjs +22 -1
  76. package/esm2022/lib/services/navigation.service.mjs +22 -1
  77. package/esm2022/lib/services/theme.service.mjs +46 -2
  78. package/esm2022/lib/services/toast.service.mjs +14 -2
  79. package/esm2022/lib/shared/utils/dom.mjs +11 -1
  80. package/esm2022/lib/shared/utils/styles.mjs +13 -1
  81. package/esm2022/lib/shared/utils/text.mjs +11 -1
  82. package/fesm2022/valtech-components.mjs +812 -47
  83. package/fesm2022/valtech-components.mjs.map +1 -1
  84. package/lib/components/atoms/avatar/avatar.component.d.ts +11 -0
  85. package/lib/components/atoms/avatar/types.d.ts +8 -0
  86. package/lib/components/atoms/box/box.component.d.ts +13 -0
  87. package/lib/components/atoms/box/types.d.ts +10 -0
  88. package/lib/components/atoms/button/button.component.d.ts +12 -0
  89. package/lib/components/atoms/display/display.component.d.ts +7 -0
  90. package/lib/components/atoms/display/types.d.ts +7 -0
  91. package/lib/components/atoms/divider/divider.component.d.ts +17 -0
  92. package/lib/components/atoms/divider/types.d.ts +7 -0
  93. package/lib/components/atoms/href/href.component.d.ts +10 -0
  94. package/lib/components/atoms/href/types.d.ts +10 -0
  95. package/lib/components/atoms/icon/icon.component.d.ts +7 -0
  96. package/lib/components/atoms/icon/types.d.ts +7 -0
  97. package/lib/components/atoms/image/image.component.d.ts +14 -0
  98. package/lib/components/atoms/image/types.d.ts +14 -0
  99. package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +10 -0
  100. package/lib/components/atoms/progress-bar/types.d.ts +10 -0
  101. package/lib/components/atoms/text/text.component.d.ts +8 -0
  102. package/lib/components/atoms/text/types.d.ts +8 -0
  103. package/lib/components/atoms/title/title.component.d.ts +9 -0
  104. package/lib/components/atoms/title/types.d.ts +9 -0
  105. package/lib/components/molecules/alert-box/alert-box.component.d.ts +7 -0
  106. package/lib/components/molecules/button-group/button-group.component.d.ts +10 -0
  107. package/lib/components/molecules/button-group/types.d.ts +7 -0
  108. package/lib/components/molecules/card/card.component.d.ts +14 -0
  109. package/lib/components/molecules/comment-input/comment-input.component.d.ts +6 -0
  110. package/lib/components/molecules/content-loader/content-loader.component.d.ts +8 -0
  111. package/lib/components/molecules/content-loader/types.d.ts +8 -0
  112. package/lib/components/molecules/date-input/date-input.component.d.ts +6 -0
  113. package/lib/components/molecules/email-input/email-input.component.d.ts +6 -0
  114. package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +8 -0
  115. package/lib/components/molecules/expandable-text/types.d.ts +8 -0
  116. package/lib/components/molecules/file-input/file-input.component.d.ts +6 -1
  117. package/lib/components/molecules/hint/hint.component.d.ts +6 -0
  118. package/lib/components/molecules/hour-input/hour-input.component.d.ts +5 -0
  119. package/lib/components/molecules/link/link.component.d.ts +10 -0
  120. package/lib/components/molecules/link/types.d.ts +10 -0
  121. package/lib/components/molecules/links-cake/links-cake.component.d.ts +7 -0
  122. package/lib/components/molecules/links-cake/types.d.ts +7 -0
  123. package/lib/components/molecules/notes-box/notes-box.component.d.ts +11 -0
  124. package/lib/components/molecules/notes-box/types.d.ts +11 -0
  125. package/lib/components/molecules/number-input/number-input.component.d.ts +6 -0
  126. package/lib/components/molecules/password-input/password-input.component.d.ts +7 -1
  127. package/lib/components/molecules/pin-input/pin-input.component.d.ts +5 -0
  128. package/lib/components/molecules/progress-status/progress-status.component.d.ts +9 -0
  129. package/lib/components/molecules/progress-status/types.d.ts +10 -0
  130. package/lib/components/molecules/prompter/prompter.component.d.ts +12 -0
  131. package/lib/components/molecules/prompter/types.d.ts +12 -0
  132. package/lib/components/molecules/radio-input/radio-input.component.d.ts +6 -0
  133. package/lib/components/molecules/searchbar/searchbar.component.d.ts +14 -2
  134. package/lib/components/molecules/select-input/select-input.component.d.ts +8 -0
  135. package/lib/components/molecules/select-search/select-search.component.d.ts +9 -2
  136. package/lib/components/molecules/text-input/text-input.component.d.ts +7 -0
  137. package/lib/components/molecules/title-block/title-block.component.d.ts +8 -0
  138. package/lib/components/molecules/title-block/types.d.ts +8 -0
  139. package/lib/components/organisms/banner/types.d.ts +14 -0
  140. package/lib/components/organisms/footer/footer.component.d.ts +24 -0
  141. package/lib/components/organisms/footer/types.d.ts +10 -0
  142. package/lib/components/organisms/header/header.component.d.ts +10 -0
  143. package/lib/components/organisms/header/types.d.ts +10 -0
  144. package/lib/components/organisms/item-list/item-list.component.d.ts +20 -0
  145. package/lib/components/organisms/item-list/types.d.ts +43 -0
  146. package/lib/components/organisms/no-content/no-content.component.d.ts +10 -0
  147. package/lib/components/organisms/no-content/types.d.ts +10 -0
  148. package/lib/components/organisms/toolbar/toolbar.component.d.ts +40 -3
  149. package/lib/components/organisms/toolbar/types.d.ts +15 -0
  150. package/lib/components/organisms/wizard/types.d.ts +22 -0
  151. package/lib/components/organisms/wizard/wizard.component.d.ts +32 -0
  152. package/lib/services/download.service.d.ts +13 -0
  153. package/lib/services/icons.service.d.ts +3 -0
  154. package/lib/services/in-app-browser.service.d.ts +7 -0
  155. package/lib/services/local-storage.service.d.ts +21 -0
  156. package/lib/services/navigation.service.d.ts +24 -0
  157. package/lib/services/theme.service.d.ts +42 -0
  158. package/lib/services/toast.service.d.ts +12 -0
  159. package/lib/shared/utils/dom.d.ts +10 -0
  160. package/lib/shared/utils/styles.d.ts +12 -0
  161. package/lib/shared/utils/text.d.ts +10 -0
  162. package/package.json +1 -1
  163. package/src/lib/components/styles/overrides.scss +11 -3
  164. package/src/lib/components/styles/variables.scss +1 -0
  165. package/styles/fonts.scss +0 -35
  166. package/src/lib/assets/fonts/Khula-Bold.ttf +0 -0
  167. package/src/lib/assets/fonts/Khula-ExtraBold.ttf +0 -0
  168. package/src/lib/assets/fonts/Khula-Light.ttf +0 -0
  169. package/src/lib/assets/fonts/Khula-Regular.ttf +0 -0
  170. package/src/lib/assets/fonts/Khula-SemiBold.ttf +0 -0
  171. package/src/lib/assets/fonts/OFL.txt +0 -93
@@ -1,5 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, inject, Input, ViewChild, ChangeDetectorRef, } from '@angular/core';
2
+ import { ChangeDetectorRef, Component, inject, Input, ViewChild, } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { IonicModule } from '@ionic/angular';
5
5
  import { IconService } from '../../../services/icons.service';
@@ -9,6 +9,16 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/common";
10
10
  import * as i2 from "@ionic/angular";
11
11
  import * as i3 from "@angular/forms";
12
+ /**
13
+ * val-select-search
14
+ *
15
+ * A searchable select/dropdown input with modal and filtering, integrated with Angular forms.
16
+ *
17
+ * @example
18
+ * <val-select-search [props]="{ control: myControl, label: 'Choose', options: [{ id: '1', name: 'Option 1' }] }"></val-select-search>
19
+ *
20
+ * @input props: InputMetadata - Configuration for the select input (form control, label, options, etc.)
21
+ */
12
22
  export class SelectSearchComponent {
13
23
  constructor() {
14
24
  this.label = 'Seleccionar';
@@ -293,7 +303,7 @@ export class SelectSearchComponent {
293
303
  </ion-content>
294
304
  </ng-template>
295
305
  </ion-modal>
296
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["disabled"], outputs: ["focusEvent", "blurEvent", "filterEvent"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
306
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["disabled"], outputs: ["filterEvent", "focusEvent", "blurEvent"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
297
307
  }
298
308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectSearchComponent, decorators: [{
299
309
  type: Component,
@@ -351,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
351
361
  }], props: [{
352
362
  type: Input
353
363
  }] } });
354
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBSUwsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUErQ3RFLE1BQU0sT0FBTyxxQkFBcUI7SUE1Q2xDO1FBK0NXLFVBQUssR0FBVyxhQUFhLENBQUM7UUFDOUIsa0JBQWEsR0FBVyxNQUFNLENBQUM7UUFDL0Isa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFDN0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFXLHVCQUF1QixDQUFDO1FBR3ZELFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVuRCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUNsQyxrQkFBYSxH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LFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLFlBQ2hGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNUOzhCQUltQixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBRVQsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSwgSW9uTW9kYWwgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBWaWV3V2lsbEVudGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVwbGFjZVNwZWNpYWxDaGFycyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy90ZXh0JztcbmltcG9ydCB7IElucHV0TWV0YWRhdGEsIElucHV0T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoYmFyL3NlYXJjaGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zZWxlY3Qtc2VhcmNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIEZvcm1zTW9kdWxlLCBTZWFyY2hiYXJDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInByb3BzPy5wbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlclwiXG4gICAgICByZWFkb25seVxuICAgICAgKG1vdXNlZG93bik9XCJwcmV2ZW50RGVmYXVsdEJlaGF2aW9yKCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8aW9uLWlucHV0IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO1wiIFtmb3JtQ29udHJvbF09XCJwcm9wcy5jb250cm9sXCIgdHlwZT1cImhpZGRlblwiPjwvaW9uLWlucHV0PlxuXG4gICAgPGlvbi1tb2RhbCAjbW9kYWwgdHJpZ2dlcj1cIm9wZW4tbW9kYWxcIiBbaW5pdGlhbEJyZWFrcG9pbnRdPVwiMC43NVwiIFticmVha3BvaW50c109XCJbMCwgMC41LCAwLjc1LCAxXVwiPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgICAgICA8aW9uLXRpdGxlPnt7IGxhYmVsIH19PC9pb24tdGl0bGU+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsTW9kYWwoKVwiPkNhbmNlbGFyPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICAgIDx2YWwtc2VhcmNoYmFyIChmaWx0ZXJFdmVudCk9XCJvbkZpbHRlcigkZXZlbnQpXCIgKGZvY3VzRXZlbnQpPVwib25Gb2N1cygpXCIgKGJsdXJFdmVudCk9XCJvbkJsdXIoKVwiIC8+XG4gICAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgICAgPC9pb24taGVhZGVyPlxuICAgICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgICAgPGlvbi1saXN0PlxuICAgICAgICAgICAgPGlvbi1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXNcIiBidXR0b24gKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIiBkZXRhaWw9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7IGl0ZW1bbGFiZWxQcm9wZXJ0eV0gfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBuYW1lPVwiY2hlY2ttYXJrLW91dGxpbmVcIiBzbG90PVwiZW5kXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgICA8aW9uLWl0ZW0gKm5nSWY9XCJmaWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwibWVkaXVtXCI+Tm8gc2UgZW5jb250cmFyb24gcmVzdWx0YWRvczwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICA8L2lvbi1saXN0PlxuICAgICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2lvbi1tb2RhbD5cbiAgYCxcbiAgc3R5bGVzOiBbYGBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBWaWV3V2lsbEVudGVyLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ21vZGFsJykgbW9kYWwhOiBJb25Nb2RhbDtcblxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ1NlbGVjY2lvbmFyJztcbiAgQElucHV0KCkgbGFiZWxQcm9wZXJ0eTogc3RyaW5nID0gJ25hbWUnO1xuICBASW5wdXQoKSB2YWx1ZVByb3BlcnR5OiBzdHJpbmcgPSAnaWQnO1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjY2lvbmUgdW5hIG9wY2nDs24nO1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcblxuICBpY29uID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG4gIGZpbHRlcmVkSXRlbXM6IElucHV0T3B0aW9uW10gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtczogSW5wdXRPcHRpb25bXSA9IFtdO1xuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgcHJldmlvdXNPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplSXRlbXMoKTtcbiAgICB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpO1xuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb1ZhbHVlQ2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gTGltcGlhciBzdXNjcmlwY2lvbmVzIHBhcmEgZXZpdGFyIG1lbW9yeSBsZWFrc1xuICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gRXZpdGFyIGJ1Y2xlcyBpbmZpbml0b3NcbiAgICBpZiAodGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ3VhbmRvIGNhbWJpYSBwcm9wcyBvIHByb3BzLm9wdGlvbnNcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcblxuICAgICAgICAvLyBEZXN1c2NyaWJpcnNlIGRlbCBhbnRpZ3VvIGNvbnRyb2wgc2kgZXhpc3RlXG4gICAgICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wcm9wcz8ub3B0aW9ucykge1xuICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBsYXMgb3BjaW9uZXMgaGFuIGNhbWJpYWRvIHJlYWxtZW50ZVxuICAgICAgICAgIGNvbnN0IG9wdGlvbnNDaGFuZ2VkID0gIXRoaXMuYXJlT3B0aW9uc0VxdWFsKHRoaXMucHJldmlvdXNPcHRpb25zLCB0aGlzLnByb3BzLm9wdGlvbnMpO1xuXG4gICAgICAgICAgaWYgKG9wdGlvbnNDaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzT3B0aW9ucyA9IFsuLi50aGlzLnByb3BzLm9wdGlvbnNdO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplSXRlbXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaW5jcm9uaXphciBjb24gZWwgbnVldm8gY29udHJvbCBzaSBleGlzdGVcbiAgICAgICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcblxuICAgICAgICAvLyBTdXNjcmliaXJzZSBhbCBudWV2byBjb250cm9sXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlvblZpZXdXaWxsRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSB0cnVlO1xuICAgICAgdGhpcy5pbml0aWFsaXplSXRlbXMoKTtcbiAgICAgIHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb1ZhbHVlQ2hhbmdlcygpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBTdXNjcmliaXJzZSBhIGNhbWJpb3MgZW4gZWwgRm9ybUNvbnRyb2xcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1ZhbHVlQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMucHJvcHM/LmNvbnRyb2wpIHJldHVybjtcblxuICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5wcm9wcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcykgcmV0dXJuO1xuXG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBDb21wYXJhIHNpIGRvcyBhcnJheXMgZGUgb3BjaW9uZXMgc29uIGlndWFsZXNcbiAgcHJpdmF0ZSBhcmVPcHRpb25zRXF1YWwocHJldk9wdGlvbnM6IGFueVtdLCBuZXdPcHRpb25zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghcHJldk9wdGlvbnMgfHwgIW5ld09wdGlvbnMpIHtcbiAgICAgIHJldHVybiBwcmV2T3B0aW9ucyA9PT0gbmV3T3B0aW9ucztcbiAgICB9XG5cbiAgICBpZiAocHJldk9wdGlvbnMubGVuZ3RoICE9PSBuZXdPcHRpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldk9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwcmV2T3B0aW9uc1tpXVt0aGlzLnZhbHVlUHJvcGVydHldICE9PSBuZXdPcHRpb25zW2ldW3RoaXMudmFsdWVQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplSXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHM/Lm9wdGlvbnMpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFsuLi50aGlzLnByb3BzLm9wdGlvbnNdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHM/LmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9IHRoaXMucHJvcHMuY29udHJvbC52YWx1ZTtcblxuICAgIC8vIFNpIGVsIGNvbnRyb2wgbm8gdGllbmUgdmFsb3IsIGxpbXBpYXIgc2VsZWNjaW9uYWRvc1xuICAgIGlmIChjb250cm9sVmFsdWUgPT09IG51bGwgfHwgY29udHJvbFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEJ1c2NhciBsYSBvcGNpw7NuIHF1ZSBjb3JyZXNwb25kZSBhbCB2YWxvciBkZWwgY29udHJvbFxuICAgIGlmICh0aGlzLnByb3BzLm9wdGlvbnMgJiYgdGhpcy5wcm9wcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5wcm9wcy5vcHRpb25zLmZpbmQob3B0ID0+IG9wdFt0aGlzLnZhbHVlUHJvcGVydHldID09PSBjb250cm9sVmFsdWUpO1xuXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZE9wdGlvbiA/IFtzZWxlY3RlZE9wdGlvbl0gOiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgfVxuICB9XG5cbiAgb25GaWx0ZXIoZXZlbnQpIHtcbiAgICAvLyBSZXNldGVhciBhIHRvZGFzIGxhcyBvcGNpb25lcyBkaXNwb25pYmxlcyBzaSBubyBoYXkgdGV4dG8gZGUgYsO6c3F1ZWRhXG4gICAgaWYgKCFldmVudCB8fCBldmVudC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnByb3BzPy5vcHRpb25zID8gWy4uLnRoaXMucHJvcHMub3B0aW9uc10gOiBbXTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNpIG5vIGhheSBvcGNpb25lcyBkaXNwb25pYmxlcywgbm8gaGFjZSBmYWx0YSBmaWx0cmFyXG4gICAgaWYgKCF0aGlzLnByb3BzPy5vcHRpb25zIHx8IHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IHJlcGxhY2VTcGVjaWFsQ2hhcnMoZXZlbnQudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBjb25zdCBmaWx0ZXJlZFJlc3VsdHMgPSB0aGlzLnByb3BzLm9wdGlvbnMuZmlsdGVyKGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhlbGVtZW50KS5tYXAoKGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWQpIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VTcGVjaWFsQ2hhcnMoYCR7YX1gKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB2YWx1ZXMuc29tZSh2YWx1ZSA9PiB2YWx1ZS5pbmNsdWRlcyh0ZXh0KSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBmaWx0ZXJlZFJlc3VsdHM7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIGNvbnNvbGUubG9nKCdvbkZvY3VzJyk7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgY29uc29sZS5sb2coJ29uQmx1cicpO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIGlmICh0aGlzLm1vZGFsKSB7XG4gICAgICB0aGlzLm1vZGFsLnByZXNlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcmV2ZW50RGVmYXVsdEJlaGF2aW9yKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgY2FuY2VsTW9kYWwoKSB7XG4gICAgaWYgKHRoaXMubW9kYWwpIHtcbiAgICAgIHRoaXMubW9kYWwuZGlzbWlzcygpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaXRlbTogYW55KSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgc2VsZWN0ZWRJdGVtID0+IHNlbGVjdGVkSXRlbVt0aGlzLnZhbHVlUHJvcGVydHldID09PSBpdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV1cbiAgICAgICk7XG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW2l0ZW1dO1xuICAgICAgdGhpcy5jYW5jZWxNb2RhbCgpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMoKTtcbiAgfVxuXG4gIGlzSXRlbVNlbGVjdGVkKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZEl0ZW0gPT4gc2VsZWN0ZWRJdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV0gPT09IGl0ZW1bdGhpcy52YWx1ZVByb3BlcnR5XSk7XG4gIH1cblxuICB1cGRhdGVEaXNwbGF5VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5zZWxlY3RlZEl0ZW1zWzBdW3RoaXMubGFiZWxQcm9wZXJ0eV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGAke3RoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGh9IGVsZW1lbnRvcyBzZWxlY2Npb25hZG9zYDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnNlbGVjdGVkSXRlbXNbMF1bdGhpcy5sYWJlbFByb3BlcnR5XTtcbiAgICB9XG4gIH1cblxuICBhcHBseUNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zWzBdW3RoaXMudmFsdWVQcm9wZXJ0eV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE3DqXRvZG8gcMO6YmxpY28gcGFyYSByZWluaWNpYXIgZWwgY29tcG9uZW50ZVxuICByZXNldCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgIGlmICh0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iXX0=
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zZWxlY3Qtc2VhcmNoL3NlbGVjdC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUlMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUE4Q3RFOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUF0RGxDO1FBeURXLFVBQUssR0FBVyxhQUFhLENBQUM7UUFDOUIsa0JBQWEsR0FBVyxNQUFNLENBQUM7UUFDL0Isa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFDN0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFXLHVCQUF1QixDQUFDO1FBV3ZELFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVuRCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGtCQUFhLEdBQWtCLEVBQUUs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RDlFLHFCQUFxQjtrQkF0RGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLFlBQ2hGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNUOzhCQWNtQixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBRVQsS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBU0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSwgSW9uTW9kYWwgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyByZXBsYWNlU3BlY2lhbENoYXJzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3RleHQnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hiYXJDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zZWxlY3Qtc2VhcmNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIEZvcm1zTW9kdWxlLCBTZWFyY2hiYXJDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInByb3BzPy5wbGFjZWhvbGRlciB8fCBwbGFjZWhvbGRlclwiXG4gICAgICByZWFkb25seVxuICAgICAgKG1vdXNlZG93bik9XCJwcmV2ZW50RGVmYXVsdEJlaGF2aW9yKCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8aW9uLWlucHV0IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO1wiIFtmb3JtQ29udHJvbF09XCJwcm9wcy5jb250cm9sXCIgdHlwZT1cImhpZGRlblwiPjwvaW9uLWlucHV0PlxuXG4gICAgPGlvbi1tb2RhbCAjbW9kYWwgdHJpZ2dlcj1cIm9wZW4tbW9kYWxcIiBbaW5pdGlhbEJyZWFrcG9pbnRdPVwiMC43NVwiIFticmVha3BvaW50c109XCJbMCwgMC41LCAwLjc1LCAxXVwiPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgICAgICA8aW9uLXRpdGxlPnt7IGxhYmVsIH19PC9pb24tdGl0bGU+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsTW9kYWwoKVwiPkNhbmNlbGFyPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICAgIDx2YWwtc2VhcmNoYmFyIChmaWx0ZXJFdmVudCk9XCJvbkZpbHRlcigkZXZlbnQpXCIgKGZvY3VzRXZlbnQpPVwib25Gb2N1cygpXCIgKGJsdXJFdmVudCk9XCJvbkJsdXIoKVwiIC8+XG4gICAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgICAgPC9pb24taGVhZGVyPlxuICAgICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgICAgPGlvbi1saXN0PlxuICAgICAgICAgICAgPGlvbi1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXNcIiBidXR0b24gKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIiBkZXRhaWw9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7IGl0ZW1bbGFiZWxQcm9wZXJ0eV0gfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBuYW1lPVwiY2hlY2ttYXJrLW91dGxpbmVcIiBzbG90PVwiZW5kXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgICA8aW9uLWl0ZW0gKm5nSWY9XCJmaWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwibWVkaXVtXCI+Tm8gc2UgZW5jb250cmFyb24gcmVzdWx0YWRvczwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICA8L2lvbi1saXN0PlxuICAgICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2lvbi1tb2RhbD5cbiAgYCxcbiAgc3R5bGVzOiBbYGBdLFxufSlcbi8qKlxuICogdmFsLXNlbGVjdC1zZWFyY2hcbiAqXG4gKiBBIHNlYXJjaGFibGUgc2VsZWN0L2Ryb3Bkb3duIGlucHV0IHdpdGggbW9kYWwgYW5kIGZpbHRlcmluZywgaW50ZWdyYXRlZCB3aXRoIEFuZ3VsYXIgZm9ybXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtc2VsZWN0LXNlYXJjaCBbcHJvcHNdPVwieyBjb250cm9sOiBteUNvbnRyb2wsIGxhYmVsOiAnQ2hvb3NlJywgb3B0aW9uczogW3sgaWQ6ICcxJywgbmFtZTogJ09wdGlvbiAxJyB9XSB9XCI+PC92YWwtc2VsZWN0LXNlYXJjaD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IElucHV0TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2VsZWN0IGlucHV0IChmb3JtIGNvbnRyb2wsIGxhYmVsLCBvcHRpb25zLCBldGMuKVxuICovXG5leHBvcnQgY2xhc3MgU2VsZWN0U2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsITogSW9uTW9kYWw7XG5cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdTZWxlY2Npb25hcic7XG4gIEBJbnB1dCgpIGxhYmVsUHJvcGVydHk6IHN0cmluZyA9ICduYW1lJztcbiAgQElucHV0KCkgdmFsdWVQcm9wZXJ0eTogc3RyaW5nID0gJ2lkJztcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWxlY2Npb25lIHVuYSBvcGNpw7NuJztcbiAgLyoqXG4gICAqIElucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7SW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHByb3BlcnR5IGxhYmVsIC0gVGhlIGxhYmVsIGZvciB0aGUgc2VsZWN0LlxuICAgKiBAcHJvcGVydHkgb3B0aW9ucyAtIFRoZSBhdmFpbGFibGUgb3B0aW9ucyBmb3IgdGhlIHNlbGVjdC5cbiAgICogQHByb3BlcnR5IHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRleHQuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcblxuICBpY29uID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG4gIGZpbHRlcmVkSXRlbXM6IElucHV0T3B0aW9uW10gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtczogSW5wdXRPcHRpb25bXSA9IFtdO1xuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgcHJldmlvdXNPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplSXRlbXMoKTtcbiAgICB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpO1xuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb1ZhbHVlQ2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gTGltcGlhciBzdXNjcmlwY2lvbmVzIHBhcmEgZXZpdGFyIG1lbW9yeSBsZWFrc1xuICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gRXZpdGFyIGJ1Y2xlcyBpbmZpbml0b3NcbiAgICBpZiAodGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ3VhbmRvIGNhbWJpYSBwcm9wcyBvIHByb3BzLm9wdGlvbnNcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcblxuICAgICAgICAvLyBEZXN1c2NyaWJpcnNlIGRlbCBhbnRpZ3VvIGNvbnRyb2wgc2kgZXhpc3RlXG4gICAgICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wcm9wcz8ub3B0aW9ucykge1xuICAgICAgICAgIC8vIFZlcmlmaWNhciBzaSBsYXMgb3BjaW9uZXMgaGFuIGNhbWJpYWRvIHJlYWxtZW50ZVxuICAgICAgICAgIGNvbnN0IG9wdGlvbnNDaGFuZ2VkID0gIXRoaXMuYXJlT3B0aW9uc0VxdWFsKHRoaXMucHJldmlvdXNPcHRpb25zLCB0aGlzLnByb3BzLm9wdGlvbnMpO1xuXG4gICAgICAgICAgaWYgKG9wdGlvbnNDaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzT3B0aW9ucyA9IFsuLi50aGlzLnByb3BzLm9wdGlvbnNdO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplSXRlbXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaW5jcm9uaXphciBjb24gZWwgbnVldm8gY29udHJvbCBzaSBleGlzdGVcbiAgICAgICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcblxuICAgICAgICAvLyBTdXNjcmliaXJzZSBhbCBudWV2byBjb250cm9sXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlvblZpZXdXaWxsRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSB0cnVlO1xuICAgICAgdGhpcy5pbml0aWFsaXplSXRlbXMoKTtcbiAgICAgIHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb1ZhbHVlQ2hhbmdlcygpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvLyBTdXNjcmliaXJzZSBhIGNhbWJpb3MgZW4gZWwgRm9ybUNvbnRyb2xcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1ZhbHVlQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMucHJvcHM/LmNvbnRyb2wpIHJldHVybjtcblxuICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5wcm9wcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcykgcmV0dXJuO1xuXG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBDb21wYXJhIHNpIGRvcyBhcnJheXMgZGUgb3BjaW9uZXMgc29uIGlndWFsZXNcbiAgcHJpdmF0ZSBhcmVPcHRpb25zRXF1YWwocHJldk9wdGlvbnM6IGFueVtdLCBuZXdPcHRpb25zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghcHJldk9wdGlvbnMgfHwgIW5ld09wdGlvbnMpIHtcbiAgICAgIHJldHVybiBwcmV2T3B0aW9ucyA9PT0gbmV3T3B0aW9ucztcbiAgICB9XG5cbiAgICBpZiAocHJldk9wdGlvbnMubGVuZ3RoICE9PSBuZXdPcHRpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldk9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwcmV2T3B0aW9uc1tpXVt0aGlzLnZhbHVlUHJvcGVydHldICE9PSBuZXdPcHRpb25zW2ldW3RoaXMudmFsdWVQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplSXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHM/Lm9wdGlvbnMpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFsuLi50aGlzLnByb3BzLm9wdGlvbnNdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHM/LmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9IHRoaXMucHJvcHMuY29udHJvbC52YWx1ZTtcblxuICAgIC8vIFNpIGVsIGNvbnRyb2wgbm8gdGllbmUgdmFsb3IsIGxpbXBpYXIgc2VsZWNjaW9uYWRvc1xuICAgIGlmIChjb250cm9sVmFsdWUgPT09IG51bGwgfHwgY29udHJvbFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEJ1c2NhciBsYSBvcGNpw7NuIHF1ZSBjb3JyZXNwb25kZSBhbCB2YWxvciBkZWwgY29udHJvbFxuICAgIGlmICh0aGlzLnByb3BzLm9wdGlvbnMgJiYgdGhpcy5wcm9wcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5wcm9wcy5vcHRpb25zLmZpbmQob3B0ID0+IG9wdFt0aGlzLnZhbHVlUHJvcGVydHldID09PSBjb250cm9sVmFsdWUpO1xuXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZE9wdGlvbiA/IFtzZWxlY3RlZE9wdGlvbl0gOiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgfVxuICB9XG5cbiAgb25GaWx0ZXIoZXZlbnQpIHtcbiAgICAvLyBSZXNldGVhciBhIHRvZGFzIGxhcyBvcGNpb25lcyBkaXNwb25pYmxlcyBzaSBubyBoYXkgdGV4dG8gZGUgYsO6c3F1ZWRhXG4gICAgaWYgKCFldmVudCB8fCBldmVudC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnByb3BzPy5vcHRpb25zID8gWy4uLnRoaXMucHJvcHMub3B0aW9uc10gOiBbXTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNpIG5vIGhheSBvcGNpb25lcyBkaXNwb25pYmxlcywgbm8gaGFjZSBmYWx0YSBmaWx0cmFyXG4gICAgaWYgKCF0aGlzLnByb3BzPy5vcHRpb25zIHx8IHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IHJlcGxhY2VTcGVjaWFsQ2hhcnMoZXZlbnQudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBjb25zdCBmaWx0ZXJlZFJlc3VsdHMgPSB0aGlzLnByb3BzLm9wdGlvbnMuZmlsdGVyKGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhlbGVtZW50KS5tYXAoKGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWQpIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VTcGVjaWFsQ2hhcnMoYCR7YX1gKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB2YWx1ZXMuc29tZSh2YWx1ZSA9PiB2YWx1ZS5pbmNsdWRlcyh0ZXh0KSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBmaWx0ZXJlZFJlc3VsdHM7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIGNvbnNvbGUubG9nKCdvbkZvY3VzJyk7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgY29uc29sZS5sb2coJ29uQmx1cicpO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIGlmICh0aGlzLm1vZGFsKSB7XG4gICAgICB0aGlzLm1vZGFsLnByZXNlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcmV2ZW50RGVmYXVsdEJlaGF2aW9yKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgY2FuY2VsTW9kYWwoKSB7XG4gICAgaWYgKHRoaXMubW9kYWwpIHtcbiAgICAgIHRoaXMubW9kYWwuZGlzbWlzcygpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaXRlbTogYW55KSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgc2VsZWN0ZWRJdGVtID0+IHNlbGVjdGVkSXRlbVt0aGlzLnZhbHVlUHJvcGVydHldID09PSBpdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV1cbiAgICAgICk7XG5cbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW2l0ZW1dO1xuICAgICAgdGhpcy5jYW5jZWxNb2RhbCgpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMoKTtcbiAgfVxuXG4gIGlzSXRlbVNlbGVjdGVkKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZEl0ZW0gPT4gc2VsZWN0ZWRJdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV0gPT09IGl0ZW1bdGhpcy52YWx1ZVByb3BlcnR5XSk7XG4gIH1cblxuICB1cGRhdGVEaXNwbGF5VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5zZWxlY3RlZEl0ZW1zWzBdW3RoaXMubGFiZWxQcm9wZXJ0eV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGAke3RoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGh9IGVsZW1lbnRvcyBzZWxlY2Npb25hZG9zYDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnNlbGVjdGVkSXRlbXNbMF1bdGhpcy5sYWJlbFByb3BlcnR5XTtcbiAgICB9XG4gIH1cblxuICBhcHBseUNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zWzBdW3RoaXMudmFsdWVQcm9wZXJ0eV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE3DqXRvZG8gcMO6YmxpY28gcGFyYSByZWluaWNpYXIgZWwgY29tcG9uZW50ZVxuICByZXNldCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgIGlmICh0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iXX0=
@@ -4,31 +4,28 @@ import { IonInput } from '@ionic/angular/standalone';
4
4
  import { ComponentStates } from '../../types';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/forms";
7
+ /**
8
+ * val-text-input
9
+ *
10
+ * A text input field integrated with Angular forms.
11
+ *
12
+ * @example
13
+ * <val-text-input [props]="{ control: myControl, placeholder: 'Enter text', ... }"></val-text-input>
14
+ *
15
+ * @input props: InputMetadata - Configuration for the input (form control, placeholder, label, etc.)
16
+ */
7
17
  export class TextInputComponent {
8
18
  constructor() {
9
19
  this.states = ComponentStates;
10
20
  }
11
- ngOnInit() {
12
- }
21
+ ngOnInit() { }
13
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextInputComponent, isStandalone: true, selector: "val-text-input", inputs: { props: "props" }, ngImport: i0, template: `
15
- <ion-input
16
- [formControl]="props.control"
17
- type="text"
18
- [placeholder]="props.placeholder"
19
- />
20
- `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextInputComponent, isStandalone: true, selector: "val-text-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="text" [placeholder]="props.placeholder" /> `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
21
24
  }
22
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextInputComponent, decorators: [{
23
26
  type: Component,
24
- args: [{ selector: 'val-text-input', standalone: true, imports: [ReactiveFormsModule, IonInput], template: `
25
- <ion-input
26
- [formControl]="props.control"
27
- type="text"
28
- [placeholder]="props.placeholder"
29
- />
30
- `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"] }]
27
+ args: [{ selector: 'val-text-input', standalone: true, imports: [ReactiveFormsModule, IonInput], template: ` <ion-input [formControl]="props.control" type="text" [placeholder]="props.placeholder" /> `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"] }]
31
28
  }], ctorParameters: () => [], propDecorators: { props: [{
32
29
  type: Input
33
30
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLGFBQWEsQ0FBQzs7O0FBZ0I3RCxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCO1FBRkEsV0FBTSxHQUFHLGVBQWUsQ0FBQztJQUVWLENBQUM7SUFFaEIsUUFBUTtJQUNSLENBQUM7K0dBUlUsa0JBQWtCO21HQUFsQixrQkFBa0Isc0dBVG5COzs7Ozs7R0FNVCw0S0FQUyxtQkFBbUIsMFRBQUUsUUFBUTs7NEZBVTVCLGtCQUFrQjtrQkFiOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsWUFDOUI7Ozs7OztHQU1UO3dEQUlRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbklucHV0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZXMsIElucHV0TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRleHQtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uSW5wdXRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taW5wdXRcbiAgICAgIFtmb3JtQ29udHJvbF09XCJwcm9wcy5jb250cm9sXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlclwiXG4gICAgLz5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0SW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcblxuICBzdGF0ZXMgPSBDb21wb25lbnRTdGF0ZXM7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLGFBQWEsQ0FBQzs7O0FBUzdEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFZN0I7UUFGQSxXQUFNLEdBQUcsZUFBZSxDQUFDO0lBRVYsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQzsrR0FkRixrQkFBa0I7bUdBQWxCLGtCQUFrQixzR0FibkIsNkZBQTZGLDRLQUQ3RixtQkFBbUIsMFRBQUUsUUFBUTs7NEZBYzVCLGtCQUFrQjtrQkFqQjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLFlBQzlCLDZGQUE2Rjt3REFxQjlGLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbklucHV0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZXMsIElucHV0TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10ZXh0LWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIElvbklucHV0XSxcbiAgdGVtcGxhdGU6IGAgPGlvbi1pbnB1dCBbZm9ybUNvbnRyb2xdPVwicHJvcHMuY29udHJvbFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInByb3BzLnBsYWNlaG9sZGVyXCIgLz4gYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXRleHQtaW5wdXRcbiAqXG4gKiBBIHRleHQgaW5wdXQgZmllbGQgaW50ZWdyYXRlZCB3aXRoIEFuZ3VsYXIgZm9ybXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtdGV4dC1pbnB1dCBbcHJvcHNdPVwieyBjb250cm9sOiBteUNvbnRyb2wsIHBsYWNlaG9sZGVyOiAnRW50ZXIgdGV4dCcsIC4uLiB9XCI+PC92YWwtdGV4dC1pbnB1dD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IElucHV0TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgaW5wdXQgKGZvcm0gY29udHJvbCwgcGxhY2Vob2xkZXIsIGxhYmVsLCBldGMuKVxuICovXG5leHBvcnQgY2xhc3MgVGV4dElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIElucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7SW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIGlucHV0LlxuICAgKiBAcHJvcGVydHkgcGxhY2Vob2xkZXIgLSBUaGUgcGxhY2Vob2xkZXIgdGV4dC5cbiAgICogQHByb3BlcnR5IGxhYmVsLCBuYW1lLCBoaW50LCB0eXBlLCB2YWxpZGF0b3JzLCBldGMuIC0gU2VlIElucHV0TWV0YWRhdGEgZm9yIGFsbCBvcHRpb25zLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IElucHV0TWV0YWRhdGE7XG5cbiAgc3RhdGVzID0gQ29tcG9uZW50U3RhdGVzO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG59XG4iXX0=
@@ -4,6 +4,16 @@ import { DisplayComponent } from '../../atoms/display/display.component';
4
4
  import { TitleComponent } from '../../atoms/title/title.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
+ /**
8
+ * val-title-block
9
+ *
10
+ * Displays a block of titles (above, main, below) with configurable styles and positions.
11
+ *
12
+ * @example
13
+ * <val-title-block [props]="{ title: {...}, aboveTitle: {...}, bellowTitle: {...}, position: 'center' }"></val-title-block>
14
+ *
15
+ * @input props: TitleBlockMetada - Configuration for the title block (title, aboveTitle, bellowTitle, position)
16
+ */
7
17
  export class TitleBlockComponent {
8
18
  constructor() { }
9
19
  ngOnInit() { }
@@ -76,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
76
86
  }], ctorParameters: () => [], propDecorators: { props: [{
77
87
  type: Input
78
88
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGl0bGUtYmxvY2svdGl0bGUtYmxvY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQXdDbkUsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOytHQU5GLG1CQUFtQjttR0FBbkIsbUJBQW1CLHVHQWpDcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVCxtYkEvQlMsWUFBWSw4UkFBRSxjQUFjLHlFQUFFLGdCQUFnQjs7NEZBa0M3QyxtQkFBbUI7a0JBckMvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsWUFDL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVDt3REFLRCxLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUJsb2NrTWV0YWRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10aXRsZS1ibG9jaycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRpdGxlQ29tcG9uZW50LCBEaXNwbGF5Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIlsndGl0bGVzLWNvbnRhaW5lcicsIHByb3BzLnBvc2l0aW9uXVwiPlxuICAgICAgPHZhbC10aXRsZVxuICAgICAgICAqbmdJZj1cInByb3BzLmFib3ZlVGl0bGVcIlxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLmFib3ZlVGl0bGUuY29udGVudCB8IHVwcGVyY2FzZSxcbiAgICAgICAgICBjb2xvcjogcHJvcHMuYWJvdmVUaXRsZS5jb2xvcixcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICBzaXplOiBwcm9wcy5hYm92ZVRpdGxlLnNpemUsXG4gICAgICAgIH1cIlxuICAgICAgPjwvdmFsLXRpdGxlPlxuICAgICAgPHZhbC1kaXNwbGF5XG4gICAgICAgICpuZ0lmPVwicHJvcHMudGl0bGVcIlxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLnRpdGxlLmNvbnRlbnQsXG4gICAgICAgICAgY29sb3I6IHByb3BzLnRpdGxlLmNvbG9yLFxuICAgICAgICAgIHNpemU6IHByb3BzLnRpdGxlLnNpemUsXG4gICAgICAgIH1cIlxuICAgICAgPjwvdmFsLWRpc3BsYXk+XG4gICAgICA8dmFsLXRpdGxlXG4gICAgICAgICpuZ0lmPVwicHJvcHMuYmVsbG93VGl0bGVcIlxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLmJlbGxvd1RpdGxlLmNvbnRlbnQsXG4gICAgICAgICAgY29sb3I6IHByb3BzLmJlbGxvd1RpdGxlLmNvbG9yLFxuICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgIHNpemU6IHByb3BzLmJlbGxvd1RpdGxlLnNpemUsXG4gICAgICAgICAgdGhpbjogcHJvcHMuYmVsbG93VGl0bGUudGhpbixcbiAgICAgICAgfVwiXG4gICAgICA+PC92YWwtdGl0bGU+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3RpdGxlLWJsb2NrLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRpdGxlQmxvY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwcm9wczogVGl0bGVCbG9ja01ldGFkYTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGl0bGUtYmxvY2svdGl0bGUtYmxvY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQXdDbkU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQVk5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOytHQWRGLG1CQUFtQjttR0FBbkIsbUJBQW1CLHVHQTNDcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVCxtYkEvQlMsWUFBWSw4UkFBRSxjQUFjLHlFQUFFLGdCQUFnQjs7NEZBNEM3QyxtQkFBbUI7a0JBL0MvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsWUFDL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVDt3REF1QkQsS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVCbG9ja01ldGFkYSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtdGl0bGUtYmxvY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUaXRsZUNvbXBvbmVudCwgRGlzcGxheUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbbmdDbGFzc109XCJbJ3RpdGxlcy1jb250YWluZXInLCBwcm9wcy5wb3NpdGlvbl1cIj5cbiAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgKm5nSWY9XCJwcm9wcy5hYm92ZVRpdGxlXCJcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBjb250ZW50OiBwcm9wcy5hYm92ZVRpdGxlLmNvbnRlbnQgfCB1cHBlcmNhc2UsXG4gICAgICAgICAgY29sb3I6IHByb3BzLmFib3ZlVGl0bGUuY29sb3IsXG4gICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgc2l6ZTogcHJvcHMuYWJvdmVUaXRsZS5zaXplLFxuICAgICAgICB9XCJcbiAgICAgID48L3ZhbC10aXRsZT5cbiAgICAgIDx2YWwtZGlzcGxheVxuICAgICAgICAqbmdJZj1cInByb3BzLnRpdGxlXCJcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBjb250ZW50OiBwcm9wcy50aXRsZS5jb250ZW50LFxuICAgICAgICAgIGNvbG9yOiBwcm9wcy50aXRsZS5jb2xvcixcbiAgICAgICAgICBzaXplOiBwcm9wcy50aXRsZS5zaXplLFxuICAgICAgICB9XCJcbiAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgPHZhbC10aXRsZVxuICAgICAgICAqbmdJZj1cInByb3BzLmJlbGxvd1RpdGxlXCJcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBjb250ZW50OiBwcm9wcy5iZWxsb3dUaXRsZS5jb250ZW50LFxuICAgICAgICAgIGNvbG9yOiBwcm9wcy5iZWxsb3dUaXRsZS5jb2xvcixcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICBzaXplOiBwcm9wcy5iZWxsb3dUaXRsZS5zaXplLFxuICAgICAgICAgIHRoaW46IHByb3BzLmJlbGxvd1RpdGxlLnRoaW4sXG4gICAgICAgIH1cIlxuICAgICAgPjwvdmFsLXRpdGxlPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90aXRsZS1ibG9jay5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXRpdGxlLWJsb2NrXG4gKlxuICogRGlzcGxheXMgYSBibG9jayBvZiB0aXRsZXMgKGFib3ZlLCBtYWluLCBiZWxvdykgd2l0aCBjb25maWd1cmFibGUgc3R5bGVzIGFuZCBwb3NpdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtdGl0bGUtYmxvY2sgW3Byb3BzXT1cInsgdGl0bGU6IHsuLi59LCBhYm92ZVRpdGxlOiB7Li4ufSwgYmVsbG93VGl0bGU6IHsuLi59LCBwb3NpdGlvbjogJ2NlbnRlcicgfVwiPjwvdmFsLXRpdGxlLWJsb2NrPlxuICpcbiAqIEBpbnB1dCBwcm9wczogVGl0bGVCbG9ja01ldGFkYSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB0aXRsZSBibG9jayAodGl0bGUsIGFib3ZlVGl0bGUsIGJlbGxvd1RpdGxlLCBwb3NpdGlvbilcbiAqL1xuZXhwb3J0IGNsYXNzIFRpdGxlQmxvY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogVGl0bGUgYmxvY2sgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtUaXRsZUJsb2NrTWV0YWRhfVxuICAgKiBAcHJvcGVydHkgdGl0bGUgLSBNYWluIHRpdGxlIGRpc3BsYXkgY29uZmlndXJhdGlvbi5cbiAgICogQHByb3BlcnR5IGFib3ZlVGl0bGUgLSBUaXRsZSBhYm92ZSB0aGUgbWFpbiB0aXRsZSAob3B0aW9uYWwpLlxuICAgKiBAcHJvcGVydHkgYmVsbG93VGl0bGUgLSBUaXRsZSBiZWxvdyB0aGUgbWFpbiB0aXRsZSAob3B0aW9uYWwpLlxuICAgKiBAcHJvcGVydHkgcG9zaXRpb24gLSBQb3NpdGlvbiBvZiB0aGUgYmxvY2sgKCdjZW50ZXInLCBldGMuKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBUaXRsZUJsb2NrTWV0YWRhO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aXRsZS1ibG9jay90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3IgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBUaXRsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBUaXRsZUJsb2NrTWV0YWRhID0ge1xuICBwb3NpdGlvbjogJ2NlbnRlcicgfCAnbGVmdCcgfCAncmlnaHQnO1xuICB0aXRsZT86IFRpdGxlTWV0YWRhdGE7XG4gIGFib3ZlVGl0bGU/OiBUaXRsZU1ldGFkYXRhO1xuICBiZWxsb3dUaXRsZT86IFRpdGxlTWV0YWRhdGE7XG59O1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aXRsZS1ibG9jay90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGl0bGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3R5cGVzJztcblxuLyoqXG4gKiBUaXRsZSBibG9jayBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAqIEB0eXBlIHtUaXRsZUJsb2NrTWV0YWRhfVxuICogQHByb3BlcnR5IHRpdGxlIC0gTWFpbiB0aXRsZSBkaXNwbGF5IGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkgYWJvdmVUaXRsZSAtIFRpdGxlIGFib3ZlIHRoZSBtYWluIHRpdGxlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkgYmVsbG93VGl0bGUgLSBUaXRsZSBiZWxvdyB0aGUgbWFpbiB0aXRsZSAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IHBvc2l0aW9uIC0gUG9zaXRpb24gb2YgdGhlIGJsb2NrICgnY2VudGVyJywgZXRjLikuXG4gKi9cbmV4cG9ydCB0eXBlIFRpdGxlQmxvY2tNZXRhZGEgPSB7XG4gIHBvc2l0aW9uOiAnY2VudGVyJyB8ICdsZWZ0JyB8ICdyaWdodCc7XG4gIHRpdGxlPzogVGl0bGVNZXRhZGF0YTtcbiAgYWJvdmVUaXRsZT86IFRpdGxlTWV0YWRhdGE7XG4gIGJlbGxvd1RpdGxlPzogVGl0bGVNZXRhZGF0YTtcbn07XG4iXX0=
@@ -5,6 +5,18 @@ import { ButtonGroupComponent } from '../../molecules/button-group/button-group.
5
5
  import { TitleBlockComponent } from '../../molecules/title-block/title-block.component';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
+ /**
9
+ * val-banner
10
+ *
11
+ * Displays a banner with title block, actions, and optional close button.
12
+ *
13
+ * @example
14
+ * <val-banner [props]="{ content: {...}, actions: {...}, closable: true, bordered: true, mode: 'center', alignment: 'center', padding: '8px' }" (onClick)="handler($event)" (onClose)="closeHandler()"></val-banner>
15
+ *
16
+ * @input props: BannerMetadata - Configuration for the banner (content, actions, closable, bordered, mode, alignment, padding)
17
+ * @output onClick - Emits when an action is clicked
18
+ * @output onClose - Emits when the banner is closed
19
+ */
8
20
  export class BannerComponent {
9
21
  constructor() {
10
22
  this.onClick = new EventEmitter();
@@ -20,7 +32,12 @@ export class BannerComponent {
20
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
33
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BannerComponent, isStandalone: true, selector: "val-banner", inputs: { props: "props" }, outputs: { onClick: "onClick", onClose: "onClose" }, ngImport: i0, template: `
22
34
  <val-box
23
- [props]="{ icon: props.closable ? 'close-outline' : '', bordered: props.bordered, color: '', padding: props.padding }"
35
+ [props]="{
36
+ icon: props.closable ? 'close-outline' : '',
37
+ bordered: props.bordered,
38
+ color: '',
39
+ padding: props.padding,
40
+ }"
24
41
  (onClick)="closeHandler()"
25
42
  >
26
43
  <div [ngClass]="['content-container', props.mode, props.alignment]" body>
@@ -47,7 +64,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
47
64
  type: Component,
48
65
  args: [{ selector: 'val-banner', standalone: true, imports: [CommonModule, BoxComponent, TitleBlockComponent, ButtonGroupComponent], template: `
49
66
  <val-box
50
- [props]="{ icon: props.closable ? 'close-outline' : '', bordered: props.bordered, color: '', padding: props.padding }"
67
+ [props]="{
68
+ icon: props.closable ? 'close-outline' : '',
69
+ bordered: props.bordered,
70
+ color: '',
71
+ padding: props.padding,
72
+ }"
51
73
  (onClick)="closeHandler()"
52
74
  >
53
75
  <div [ngClass]="['content-container', props.mode, props.alignment]" body>
@@ -76,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
76
98
  }], onClose: [{
77
99
  type: Output
78
100
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7O0FBaUN4RixNQUFNLE9BQU8sZUFBZTtJQVUxQjtRQUxBLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3JDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWQsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLFlBQVksQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQXBCVSxlQUFlO21HQUFmLGVBQWUsdUpBMUJoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQsbXNCQXhCUyxZQUFZLDZIQUFFLFlBQVksNkZBQUUsbUJBQW1CLCtFQUFFLG9CQUFvQjs7NEZBMkJwRSxlQUFlO2tCQTlCM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQyxZQUN0RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7d0RBS0QsS0FBSztzQkFESixLQUFLO2dCQUlOLE9BQU87c0JBRE4sTUFBTTtnQkFJUCxPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYm94L2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVCbG9ja0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90aXRsZS1ibG9jay90aXRsZS1ibG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJhbm5lcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJveENvbXBvbmVudCwgVGl0bGVCbG9ja0NvbXBvbmVudCwgQnV0dG9uR3JvdXBDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx2YWwtYm94XG4gICAgICBbcHJvcHNdPVwieyBpY29uOiBwcm9wcy5jbG9zYWJsZSA/ICdjbG9zZS1vdXRsaW5lJyA6ICcnLCBib3JkZXJlZDogcHJvcHMuYm9yZGVyZWQsIGNvbG9yOiAnJywgcGFkZGluZzogcHJvcHMucGFkZGluZyB9XCJcbiAgICAgIChvbkNsaWNrKT1cImNsb3NlSGFuZGxlcigpXCJcbiAgICA+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cIlsnY29udGVudC1jb250YWluZXInLCBwcm9wcy5tb2RlLCBwcm9wcy5hbGlnbm1lbnRdXCIgYm9keT5cbiAgICAgICAgPHZhbC10aXRsZS1ibG9ja1xuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcHJvcHMubW9kZSA9PT0gJ2NlbnRlcicgPyAnY2VudGVyJyA6ICdsZWZ0JyxcbiAgICAgICAgICAgIGFib3ZlVGl0bGU6IHByb3BzLmNvbnRlbnQuYWJvdmVUaXRsZSxcbiAgICAgICAgICAgIHRpdGxlOiBwcm9wcy5jb250ZW50LnRpdGxlLFxuICAgICAgICAgICAgYmVsbG93VGl0bGU6IHByb3BzLmNvbnRlbnQuYmVsbG93VGl0bGUsXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3ZhbC10aXRsZS1ibG9jaz5cbiAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zKSB7XG4gICAgICAgICAgPHZhbC1idXR0b24tZ3JvdXBcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnYnV0dG9ucy1jb250YWluZXInLCBwcm9wcy5tb2RlLCBwcm9wcy5hbGlnbm1lbnRdXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJwcm9wcy5hY3Rpb25zXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICA+PC92YWwtYnV0dG9uLWdyb3VwPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L3ZhbC1ib3g+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Jhbm5lci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwcm9wczogQmFubmVyTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGNsaWNrSGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHRva2VuKTtcbiAgfVxuXG4gIGNsb3NlSGFuZGxlcigpIHtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICB9XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7O0FBc0N4Rjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBVTFCO1FBTEEsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHckMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFZCxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRWIsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7K0dBcEJVLGVBQWU7bUdBQWYsZUFBZSx1SkEzQ2hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJULG1zQkE3QlMsWUFBWSw2SEFBRSxZQUFZLDZGQUFFLG1CQUFtQiwrRUFBRSxvQkFBb0I7OzRGQTRDcEUsZUFBZTtrQkEvQzNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLENBQUMsWUFDdEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7d0RBaUJELEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLE1BQU07Z0JBSVAsT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2JveC9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQmxvY2tDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGl0bGUtYmxvY2svdGl0bGUtYmxvY2suY29tcG9uZW50JztcbmltcG9ydCB7IEJhbm5lck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1iYW5uZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCb3hDb21wb25lbnQsIFRpdGxlQmxvY2tDb21wb25lbnQsIEJ1dHRvbkdyb3VwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLWJveFxuICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgaWNvbjogcHJvcHMuY2xvc2FibGUgPyAnY2xvc2Utb3V0bGluZScgOiAnJyxcbiAgICAgICAgYm9yZGVyZWQ6IHByb3BzLmJvcmRlcmVkLFxuICAgICAgICBjb2xvcjogJycsXG4gICAgICAgIHBhZGRpbmc6IHByb3BzLnBhZGRpbmcsXG4gICAgICB9XCJcbiAgICAgIChvbkNsaWNrKT1cImNsb3NlSGFuZGxlcigpXCJcbiAgICA+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cIlsnY29udGVudC1jb250YWluZXInLCBwcm9wcy5tb2RlLCBwcm9wcy5hbGlnbm1lbnRdXCIgYm9keT5cbiAgICAgICAgPHZhbC10aXRsZS1ibG9ja1xuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcHJvcHMubW9kZSA9PT0gJ2NlbnRlcicgPyAnY2VudGVyJyA6ICdsZWZ0JyxcbiAgICAgICAgICAgIGFib3ZlVGl0bGU6IHByb3BzLmNvbnRlbnQuYWJvdmVUaXRsZSxcbiAgICAgICAgICAgIHRpdGxlOiBwcm9wcy5jb250ZW50LnRpdGxlLFxuICAgICAgICAgICAgYmVsbG93VGl0bGU6IHByb3BzLmNvbnRlbnQuYmVsbG93VGl0bGUsXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3ZhbC10aXRsZS1ibG9jaz5cbiAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zKSB7XG4gICAgICAgICAgPHZhbC1idXR0b24tZ3JvdXBcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnYnV0dG9ucy1jb250YWluZXInLCBwcm9wcy5tb2RlLCBwcm9wcy5hbGlnbm1lbnRdXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJwcm9wcy5hY3Rpb25zXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICA+PC92YWwtYnV0dG9uLWdyb3VwPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L3ZhbC1ib3g+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Jhbm5lci5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWJhbm5lclxuICpcbiAqIERpc3BsYXlzIGEgYmFubmVyIHdpdGggdGl0bGUgYmxvY2ssIGFjdGlvbnMsIGFuZCBvcHRpb25hbCBjbG9zZSBidXR0b24uXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtYmFubmVyIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHsuLi59LCBhY3Rpb25zOiB7Li4ufSwgY2xvc2FibGU6IHRydWUsIGJvcmRlcmVkOiB0cnVlLCBtb2RlOiAnY2VudGVyJywgYWxpZ25tZW50OiAnY2VudGVyJywgcGFkZGluZzogJzhweCcgfVwiIChvbkNsaWNrKT1cImhhbmRsZXIoJGV2ZW50KVwiIChvbkNsb3NlKT1cImNsb3NlSGFuZGxlcigpXCI+PC92YWwtYmFubmVyPlxuICpcbiAqIEBpbnB1dCBwcm9wczogQmFubmVyTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgYmFubmVyIChjb250ZW50LCBhY3Rpb25zLCBjbG9zYWJsZSwgYm9yZGVyZWQsIG1vZGUsIGFsaWdubWVudCwgcGFkZGluZylcbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRzIHdoZW4gYW4gYWN0aW9uIGlzIGNsaWNrZWRcbiAqIEBvdXRwdXQgb25DbG9zZSAtIEVtaXRzIHdoZW4gdGhlIGJhbm5lciBpcyBjbG9zZWRcbiAqL1xuZXhwb3J0IGNsYXNzIEJhbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHByb3BzOiBCYW5uZXJNZXRhZGF0YTtcblxuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgY2xpY2tIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodG9rZW4pO1xuICB9XG5cbiAgY2xvc2VIYW5kbGVyKCkge1xuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9iYW5uZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvdHlwZXMnO1xuaW1wb3J0IHsgVGl0bGVCbG9ja01ldGFkYSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90aXRsZS1ibG9jay90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEJhbm5lck1ldGFkYXRhID0ge1xuICB0b2tlbj86IHN0cmluZztcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIGNvbG9yOiBDb2xvcjtcbiAgYm9yZGVyZWQ6IGJvb2xlYW47XG4gIGNsb3NhYmxlOiBib29sZWFuO1xuICBtb2RlOiAncm93JyB8ICdjb2x1bW4nIHwgJ2h5YnJpZCcgfCAnY2VudGVyJztcbiAgYWxpZ25tZW50OiAnY2VudGVyJyB8ICdtaWRkbGUnIHwgJ2JvdHRvbSc7XG4gIGFjdGlvbnM/OiBCdXR0b25Hcm91cE1ldGFkYXRhO1xuICBjb250ZW50OiBUaXRsZUJsb2NrTWV0YWRhO1xuICBwYWRkaW5nPzogc3RyaW5nO1xufTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9iYW5uZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvdHlwZXMnO1xuaW1wb3J0IHsgVGl0bGVCbG9ja01ldGFkYSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90aXRsZS1ibG9jay90eXBlcyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIHZhbC1iYW5uZXIgY29tcG9uZW50LlxuICpcbiAqIEBwcm9wZXJ0eSB0b2tlbiAtIE9wdGlvbmFsIGlkZW50aWZpZXIgZm9yIHRoZSBiYW5uZXIuXG4gKiBAcHJvcGVydHkgaW1hZ2UgLSBPcHRpb25hbCBpbWFnZSBmb3IgdGhlIGJhbm5lci5cbiAqIEBwcm9wZXJ0eSBjb2xvciAtIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBiYW5uZXIuXG4gKiBAcHJvcGVydHkgYm9yZGVyZWQgLSBXaGV0aGVyIHRoZSBiYW5uZXIgaGFzIGEgYm9yZGVyLlxuICogQHByb3BlcnR5IGNsb3NhYmxlIC0gV2hldGhlciB0aGUgYmFubmVyIGNhbiBiZSBjbG9zZWQuXG4gKiBAcHJvcGVydHkgbW9kZSAtIEJhbm5lciBkaXNwbGF5IG1vZGUgKCdyb3cnIHwgJ2NvbHVtbicgfCAnaHlicmlkJyB8ICdjZW50ZXInKS5cbiAqIEBwcm9wZXJ0eSBhbGlnbm1lbnQgLSBDb250ZW50IGFsaWdubWVudCAoJ2NlbnRlcicgfCAnbWlkZGxlJyB8ICdib3R0b20nKS5cbiAqIEBwcm9wZXJ0eSBhY3Rpb25zIC0gQnV0dG9uIGdyb3VwIGNvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSBjb250ZW50IC0gVGl0bGUgYmxvY2sgY29udGVudCBjb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHBhZGRpbmcgLSBDdXN0b20gcGFkZGluZyBmb3IgdGhlIGJhbm5lciAob3B0aW9uYWwpLlxuICovXG5leHBvcnQgdHlwZSBCYW5uZXJNZXRhZGF0YSA9IHtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIGltYWdlPzogc3RyaW5nO1xuICBjb2xvcjogQ29sb3I7XG4gIGJvcmRlcmVkOiBib29sZWFuO1xuICBjbG9zYWJsZTogYm9vbGVhbjtcbiAgbW9kZTogJ3JvdycgfCAnY29sdW1uJyB8ICdoeWJyaWQnIHwgJ2NlbnRlcic7XG4gIGFsaWdubWVudDogJ2NlbnRlcicgfCAnbWlkZGxlJyB8ICdib3R0b20nO1xuICBhY3Rpb25zPzogQnV0dG9uR3JvdXBNZXRhZGF0YTtcbiAgY29udGVudDogVGl0bGVCbG9ja01ldGFkYTtcbiAgcGFkZGluZz86IHN0cmluZztcbn07XG4iXX0=
@@ -1,14 +1,35 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
3
  import { IonFooter } from '@ionic/angular/standalone';
3
4
  import { ToolbarComponent } from '../toolbar/toolbar.component';
4
- import { CommonModule } from '@angular/common';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
+ /**
8
+ * FooterComponent
9
+ *
10
+ * Componente de pie de página reutilizable para aplicaciones Ionic/Angular.
11
+ * Permite mostrar una barra de herramientas (toolbar) y contenido adicional.
12
+ *
13
+ * @example
14
+ * <val-footer [props]="footerProps" (onClick)="handleFooterAction($event)">
15
+ * <div extra>Contenido extra</div>
16
+ * </val-footer>
17
+ *
18
+ * @input props {FooterMetadata} - Metadatos del pie de página y su toolbar.
19
+ * @output onClick - Emite el token de la acción clicada en la toolbar.
20
+ */
7
21
  export class FooterComponent {
8
22
  constructor() {
23
+ /**
24
+ * Evento emitido al hacer click en una acción de la toolbar.
25
+ */
9
26
  this.onClick = new EventEmitter();
10
27
  }
11
28
  ngOnInit() { }
29
+ /**
30
+ * Emite el token de la acción clicada en la toolbar.
31
+ * @param token Token de la acción
32
+ */
12
33
  clickHandler(token) {
13
34
  this.onClick.emit(token);
14
35
  }
@@ -49,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
49
70
  }], onClick: [{
50
71
  type: Output
51
72
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBc0IvQyxNQUFNLE9BQU8sZUFBZTtJQU8xQjtRQUZBLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXRCLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7SUFFYixZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQWJVLGVBQWU7bUdBQWYsZUFBZSxtSUFoQmhCOzs7Ozs7Ozs7Ozs7O0dBYVQsOEhBZFMsWUFBWSxtSUFBRSxTQUFTLG9HQUFFLGdCQUFnQjs7NEZBaUJ4QyxlQUFlO2tCQXBCM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUMxQzs7Ozs7Ozs7Ozs7OztHQWFUO3dEQUtELEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb290ZXJNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSW9uRm9vdGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uRm9vdGVyLCBUb29sYmFyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWZvb3RlclxuICAgICAgW2NsYXNzLmlvbi1uby1ib3JkZXJdPVwiIXByb3BzLmJvcmRlcmVkXCJcbiAgICAgIFt0cmFuc2x1Y2VudF09XCJwcm9wcy50cmFuc2x1Y2VudFwiXG4gICAgICBbY2xhc3MuYmFja2dyb3VuZF09XCJwcm9wcy50b29sYmFyLmNvbG9yID09PSAnYmFja2dyb3VuZCdcIlxuICAgID5cbiAgICAgIDx2YWwtdG9vbGJhclxuICAgICAgICAqbmdJZj1cInByb3BzLnRvb2xiYXIudGl0bGUgfHwgcHJvcHMudG9vbGJhci53aXRoQWN0aW9ucyB8fCBwcm9wcy50b29sYmFyLndpdGhCYWNrXCJcbiAgICAgICAgW3Byb3BzXT1cInByb3BzLnRvb2xiYXJcIlxuICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoJGV2ZW50KVwiXG4gICAgICA+PC92YWwtdG9vbGJhcj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltleHRyYV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9pb24tZm9vdGVyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHJvcHM6IEZvb3Rlck1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBjbGlja0hhbmRsZXIodG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0b2tlbik7XG4gIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBR2hFOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFxQkgsTUFBTSxPQUFPLGVBQWU7SUFhMUI7UUFOQTs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXRCLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7SUFFYjs7O09BR0c7SUFDSCxZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQXZCVSxlQUFlO21HQUFmLGVBQWUsbUlBaEJoQjs7Ozs7Ozs7Ozs7OztHQWFULDhIQWRTLFlBQVksbUlBQUUsU0FBUyxvR0FBRSxnQkFBZ0I7OzRGQWlCeEMsZUFBZTtrQkFwQjNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsWUFDMUM7Ozs7Ozs7Ozs7Ozs7R0FhVDt3REFRRCxLQUFLO3NCQURKLEtBQUs7Z0JBT04sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkZvb3RlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9vdGVyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBGb290ZXJDb21wb25lbnRcbiAqXG4gKiBDb21wb25lbnRlIGRlIHBpZSBkZSBww6FnaW5hIHJldXRpbGl6YWJsZSBwYXJhIGFwbGljYWNpb25lcyBJb25pYy9Bbmd1bGFyLlxuICogUGVybWl0ZSBtb3N0cmFyIHVuYSBiYXJyYSBkZSBoZXJyYW1pZW50YXMgKHRvb2xiYXIpIHkgY29udGVuaWRvIGFkaWNpb25hbC5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1mb290ZXIgW3Byb3BzXT1cImZvb3RlclByb3BzXCIgKG9uQ2xpY2spPVwiaGFuZGxlRm9vdGVyQWN0aW9uKCRldmVudClcIj5cbiAqICAgPGRpdiBleHRyYT5Db250ZW5pZG8gZXh0cmE8L2Rpdj5cbiAqIDwvdmFsLWZvb3Rlcj5cbiAqXG4gKiBAaW5wdXQgcHJvcHMge0Zvb3Rlck1ldGFkYXRhfSAtIE1ldGFkYXRvcyBkZWwgcGllIGRlIHDDoWdpbmEgeSBzdSB0b29sYmFyLlxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdGUgZWwgdG9rZW4gZGUgbGEgYWNjacOzbiBjbGljYWRhIGVuIGxhIHRvb2xiYXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1mb290ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25Gb290ZXIsIFRvb2xiYXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tZm9vdGVyXG4gICAgICBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCIhcHJvcHMuYm9yZGVyZWRcIlxuICAgICAgW3RyYW5zbHVjZW50XT1cInByb3BzLnRyYW5zbHVjZW50XCJcbiAgICAgIFtjbGFzcy5iYWNrZ3JvdW5kXT1cInByb3BzLnRvb2xiYXIuY29sb3IgPT09ICdiYWNrZ3JvdW5kJ1wiXG4gICAgPlxuICAgICAgPHZhbC10b29sYmFyXG4gICAgICAgICpuZ0lmPVwicHJvcHMudG9vbGJhci50aXRsZSB8fCBwcm9wcy50b29sYmFyLndpdGhBY3Rpb25zIHx8IHByb3BzLnRvb2xiYXIud2l0aEJhY2tcIlxuICAgICAgICBbcHJvcHNdPVwicHJvcHMudG9vbGJhclwiXG4gICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgID48L3ZhbC10b29sYmFyPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V4dHJhXVwiPjwvbmctY29udGVudD5cbiAgICA8L2lvbi1mb290ZXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Zvb3Rlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb290ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogTWV0YWRhdG9zIGRlbCBwaWUgZGUgcMOhZ2luYSB5IHN1IHRvb2xiYXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogRm9vdGVyTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50byBlbWl0aWRvIGFsIGhhY2VyIGNsaWNrIGVuIHVuYSBhY2Npw7NuIGRlIGxhIHRvb2xiYXIuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgLyoqXG4gICAqIEVtaXRlIGVsIHRva2VuIGRlIGxhIGFjY2nDs24gY2xpY2FkYSBlbiBsYSB0b29sYmFyLlxuICAgKiBAcGFyYW0gdG9rZW4gVG9rZW4gZGUgbGEgYWNjacOzblxuICAgKi9cbiAgY2xpY2tIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodG9rZW4pO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb290ZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2xiYXJNZXRhZGF0YSB9IGZyb20gJy4uL3Rvb2xiYXIvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBGb290ZXJNZXRhZGF0YSA9IHtcbiAgdHJhbnNsdWNlbnQ/OiBib29sZWFuO1xuICBib3JkZXJlZD86IGJvb2xlYW47XG4gIHRvb2xiYXI6IFRvb2xiYXJNZXRhZGF0YTtcbn07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb290ZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGlwb3MgeSBtZXRhZGF0b3MgcGFyYSBlbCBjb21wb25lbnRlIEZvb3RlckNvbXBvbmVudC5cbiAqIFBlcm1pdGVuIGRlZmluaXIgbGEgY29uZmlndXJhY2nDs24gZGVsIHBpZSBkZSBww6FnaW5hIHkgc3UgYmFycmEgZGUgaGVycmFtaWVudGFzLlxuICovXG5pbXBvcnQgeyBUb29sYmFyTWV0YWRhdGEgfSBmcm9tICcuLi90b29sYmFyL3R5cGVzJztcblxuLyoqXG4gKiBNZXRhZGF0b3MgcGFyYSBlbCBwaWUgZGUgcMOhZ2luYS5cbiAqIEBwcm9wZXJ0eSB0cmFuc2x1Y2VudCAob3BjaW9uYWwpIFNpIGVsIHBpZSBlcyB0cmFuc2zDumNpZG8uXG4gKiBAcHJvcGVydHkgYm9yZGVyZWQgKG9wY2lvbmFsKSBTaSBlbCBwaWUgdGllbmUgYm9yZGUuXG4gKiBAcHJvcGVydHkgdG9vbGJhciBNZXRhZGF0b3MgZGUgbGEgYmFycmEgZGUgaGVycmFtaWVudGFzIGEgbW9zdHJhciBlbiBlbCBwaWUuXG4gKi9cbmV4cG9ydCB0eXBlIEZvb3Rlck1ldGFkYXRhID0ge1xuICB0cmFuc2x1Y2VudD86IGJvb2xlYW47XG4gIGJvcmRlcmVkPzogYm9vbGVhbjtcbiAgdG9vbGJhcjogVG9vbGJhck1ldGFkYXRhO1xufTtcbiJdfQ==
@@ -2,11 +2,30 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { IonHeader } from '@ionic/angular/standalone';
3
3
  import { ToolbarComponent } from '../toolbar/toolbar.component';
4
4
  import * as i0 from "@angular/core";
5
+ /**
6
+ * HeaderComponent
7
+ *
8
+ * Componente de encabezado reutilizable para aplicaciones Ionic/Angular.
9
+ * Permite mostrar una barra de herramientas (toolbar) configurable.
10
+ *
11
+ * @example
12
+ * <val-header [props]="headerProps" (onClick)="handleHeaderAction($event)"></val-header>
13
+ *
14
+ * @input props {HeaderMetadata} - Metadatos del encabezado y su toolbar.
15
+ * @output onClick - Emite el token de la acción clicada en la toolbar.
16
+ */
5
17
  export class HeaderComponent {
6
18
  constructor() {
19
+ /**
20
+ * Evento emitido al hacer click en una acción de la toolbar.
21
+ */
7
22
  this.onClick = new EventEmitter();
8
23
  }
9
24
  ngOnInit() { }
25
+ /**
26
+ * Emite el token de la acción clicada en la toolbar.
27
+ * @param token Token de la acción
28
+ */
10
29
  clickHandler(token) {
11
30
  this.onClick.emit(token);
12
31
  }
@@ -29,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
29
48
  }], onClick: [{
30
49
  type: Output
31
50
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQWNoRSxNQUFNLE9BQU8sZUFBZTtJQU8xQjtRQUZBLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXRCLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7SUFFYixZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQWJVLGVBQWU7bUdBQWYsZUFBZSxtSUFQaEI7Ozs7R0FJVCx1R0FMUyxTQUFTLG9HQUFFLGdCQUFnQjs7NEZBUTFCLGVBQWU7a0JBWDNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUM1Qjs7OztHQUlUO3dEQUtELEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25IZWFkZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uSGVhZGVyLCBUb29sYmFyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCIhcHJvcHMuYm9yZGVyZWRcIiBbdHJhbnNsdWNlbnRdPVwicHJvcHMudHJhbnNsdWNlbnRcIj5cbiAgICAgIDx2YWwtdG9vbGJhciBbcHJvcHNdPVwicHJvcHMudG9vbGJhclwiIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcigkZXZlbnQpXCI+PC92YWwtdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwcm9wczogSGVhZGVyTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGNsaWNrSGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHRva2VuKTtcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQWNoRTs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBYTFCO1FBTkE7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUV0QixDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRWI7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzsrR0F2QlUsZUFBZTttR0FBZixlQUFlLG1JQW5CaEI7Ozs7R0FJVCx1R0FMUyxTQUFTLG9HQUFFLGdCQUFnQjs7NEZBb0IxQixlQUFlO2tCQXZCM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFlBQzVCOzs7O0dBSVQ7d0RBb0JELEtBQUs7c0JBREosS0FBSztnQkFPTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25IZWFkZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uSGVhZGVyLCBUb29sYmFyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCIhcHJvcHMuYm9yZGVyZWRcIiBbdHJhbnNsdWNlbnRdPVwicHJvcHMudHJhbnNsdWNlbnRcIj5cbiAgICAgIDx2YWwtdG9vbGJhciBbcHJvcHNdPVwicHJvcHMudG9vbGJhclwiIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcigkZXZlbnQpXCI+PC92YWwtdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogSGVhZGVyQ29tcG9uZW50XG4gKlxuICogQ29tcG9uZW50ZSBkZSBlbmNhYmV6YWRvIHJldXRpbGl6YWJsZSBwYXJhIGFwbGljYWNpb25lcyBJb25pYy9Bbmd1bGFyLlxuICogUGVybWl0ZSBtb3N0cmFyIHVuYSBiYXJyYSBkZSBoZXJyYW1pZW50YXMgKHRvb2xiYXIpIGNvbmZpZ3VyYWJsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1oZWFkZXIgW3Byb3BzXT1cImhlYWRlclByb3BzXCIgKG9uQ2xpY2spPVwiaGFuZGxlSGVhZGVyQWN0aW9uKCRldmVudClcIj48L3ZhbC1oZWFkZXI+XG4gKlxuICogQGlucHV0IHByb3BzIHtIZWFkZXJNZXRhZGF0YX0gLSBNZXRhZGF0b3MgZGVsIGVuY2FiZXphZG8geSBzdSB0b29sYmFyLlxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdGUgZWwgdG9rZW4gZGUgbGEgYWNjacOzbiBjbGljYWRhIGVuIGxhIHRvb2xiYXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogTWV0YWRhdG9zIGRlbCBlbmNhYmV6YWRvIHkgc3UgdG9vbGJhci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBIZWFkZXJNZXRhZGF0YTtcblxuICAvKipcbiAgICogRXZlbnRvIGVtaXRpZG8gYWwgaGFjZXIgY2xpY2sgZW4gdW5hIGFjY2nDs24gZGUgbGEgdG9vbGJhci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICAvKipcbiAgICogRW1pdGUgZWwgdG9rZW4gZGUgbGEgYWNjacOzbiBjbGljYWRhIGVuIGxhIHRvb2xiYXIuXG4gICAqIEBwYXJhbSB0b2tlbiBUb2tlbiBkZSBsYSBhY2Npw7NuXG4gICAqL1xuICBjbGlja0hhbmRsZXIodG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0b2tlbik7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvb2xiYXJNZXRhZGF0YSB9IGZyb20gJy4uL3Rvb2xiYXIvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBIZWFkZXJNZXRhZGF0YSA9IHtcbiAgdHJhbnNsdWNlbnQ/OiBib29sZWFuO1xuICBib3JkZXJlZD86IGJvb2xlYW47XG4gIHRvb2xiYXI6IFRvb2xiYXJNZXRhZGF0YTtcbn07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGlwb3MgeSBtZXRhZGF0b3MgcGFyYSBlbCBjb21wb25lbnRlIEhlYWRlckNvbXBvbmVudC5cbiAqIFBlcm1pdGVuIGRlZmluaXIgbGEgY29uZmlndXJhY2nDs24gZGVsIGVuY2FiZXphZG8geSBzdSBiYXJyYSBkZSBoZXJyYW1pZW50YXMuXG4gKi9cbmltcG9ydCB7IFRvb2xiYXJNZXRhZGF0YSB9IGZyb20gJy4uL3Rvb2xiYXIvdHlwZXMnO1xuXG4vKipcbiAqIE1ldGFkYXRvcyBwYXJhIGVsIGVuY2FiZXphZG8uXG4gKiBAcHJvcGVydHkgdHJhbnNsdWNlbnQgKG9wY2lvbmFsKSBTaSBlbCBlbmNhYmV6YWRvIGVzIHRyYW5zbMO6Y2lkby5cbiAqIEBwcm9wZXJ0eSBib3JkZXJlZCAob3BjaW9uYWwpIFNpIGVsIGVuY2FiZXphZG8gdGllbmUgYm9yZGUuXG4gKiBAcHJvcGVydHkgdG9vbGJhciBNZXRhZGF0b3MgZGUgbGEgYmFycmEgZGUgaGVycmFtaWVudGFzIGEgbW9zdHJhciBlbiBlbCBlbmNhYmV6YWRvLlxuICovXG5leHBvcnQgdHlwZSBIZWFkZXJNZXRhZGF0YSA9IHtcbiAgdHJhbnNsdWNlbnQ/OiBib29sZWFuO1xuICBib3JkZXJlZD86IGJvb2xlYW47XG4gIHRvb2xiYXI6IFRvb2xiYXJNZXRhZGF0YTtcbn07XG4iXX0=
@@ -6,20 +6,50 @@ import { resolveColor } from '../../../shared/utils/styles';
6
6
  import { ComponentStates } from '../../types';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../../../services/icons.service";
9
+ /**
10
+ * ItemListComponent
11
+ *
12
+ * Componente de lista reutilizable para mostrar una colección de elementos con diferentes modos de visualización (texto, subtítulo, avatar, icono, ruta, acciones).
13
+ * Permite acciones por elemento, indicadores de no leído, y personalización de estilos.
14
+ *
15
+ * @example
16
+ * <val-item-list [props]="{ title: 'Usuarios', items: [{ text: 'Juan', mode: 'avatar', image: 'avatar.jpg' }] }" (onClick)="handleClick($event)"></val-item-list>
17
+ *
18
+ * @input props {ListMetadata} - Metadatos de la lista y sus elementos.
19
+ * @output onClick - Emite el token del elemento clicado.
20
+ * @output onActionClick - Emite el token de la acción clicada en un elemento.
21
+ */
9
22
  export class ItemListComponent {
10
23
  constructor(icon) {
11
24
  this.states = ComponentStates;
12
25
  this.defaultColor = 'primary';
26
+ /**
27
+ * Evento emitido al hacer click en un elemento de la lista.
28
+ */
13
29
  this.onClick = new EventEmitter();
30
+ /**
31
+ * Evento emitido al hacer click en una acción de un elemento.
32
+ */
14
33
  this.onActionClick = new EventEmitter();
15
34
  }
16
35
  ngOnInit() { }
36
+ /**
37
+ * Emite el token del elemento clicado.
38
+ * @param token Token del elemento
39
+ */
17
40
  clickHandler(token) {
18
41
  this.onClick.emit(token);
19
42
  }
43
+ /**
44
+ * Emite el token de la acción clicada.
45
+ * @param token Token de la acción
46
+ */
20
47
  onActionClickHandler(token) {
21
48
  this.onActionClick.emit(token);
22
49
  }
50
+ /**
51
+ * Devuelve el color de borde de la lista.
52
+ */
23
53
  color() {
24
54
  return resolveColor(this.props.color || this.defaultColor);
25
55
  }
@@ -379,4 +409,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
379
409
  }], onActionClick: [{
380
410
  type: Output
381
411
  }] } });
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2l0ZW0tbGlzdC9pdGVtLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLGFBQWEsRUFDYixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQTRMOUMsTUFBTSxPQUFPLGlCQUFpQjtJQWE1QixZQUFZLElBQWlCO1FBWjdCLFdBQU0sR0FBRyxlQUFlLENBQUM7UUFDekIsaUJBQVksR0FBRyxTQUFTLENBQUM7UUFNekIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHckMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRVgsQ0FBQztJQUVqQyxRQUFRLEtBQUksQ0FBQztJQUViLFlBQVksQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFjO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdELENBQUM7K0dBM0JVLGlCQUFpQjttR0FBakIsaUJBQWlCLHNLQXhLbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFLVCw2bUJBbExDLFVBQVUsb09BRVYsT0FBTyxvRkFDUCxPQUFPLHlGQUNQLGFBQWEsZ0dBQ2IsUUFBUSw2RkFDUixPQUFPLGdGQUNQLE9BQU8sME5BQ1AsU0FBUyx1REFDVCxPQUFPLDJKQUNQLFNBQVMsb1BBQ1QsVUFBVTs7NEZBMEtELGlCQUFpQjtrQkF6TDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxVQUFVO3dCQUNWLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTtxQkFDWCxZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxS1Q7Z0ZBUUQsS0FBSztzQkFESixLQUFLO2dCQUlOLE9BQU87c0JBRE4sTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgSW9uQXZhdGFyLFxuICBJb25CdXR0b24sXG4gIElvbkljb24sXG4gIElvbkl0ZW0sXG4gIElvbkxhYmVsLFxuICBJb25MaXN0LFxuICBJb25MaXN0SGVhZGVyLFxuICBJb25Ob3RlLFxuICBJb25TcGlubmVyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyByZXNvbHZlQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvc3R5bGVzJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IExpc3RNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtaXRlbS1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlckxpbmssXG4gICAgTmdTdHlsZSxcbiAgICBOZ0NsYXNzLFxuICAgIElvbkxpc3QsXG4gICAgSW9uTGlzdEhlYWRlcixcbiAgICBJb25MYWJlbCxcbiAgICBJb25Ob3RlLFxuICAgIElvbkl0ZW0sXG4gICAgSW9uQXZhdGFyLFxuICAgIElvbkljb24sXG4gICAgSW9uQnV0dG9uLFxuICAgIElvblNwaW5uZXIsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1saXN0XG4gICAgICBbaW5zZXRdPVwicHJvcHMucm91bmRlZFwiXG4gICAgICBbY2xhc3Muc2hhZG93ZWRdPVwicHJvcHMuc2hhZG93ZWRcIlxuICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJ0aGlzLmNvbG9yKClcIlxuICAgID5cbiAgICAgIEBpZiAocHJvcHMudGl0bGUpIHtcbiAgICAgICAgPGlvbi1saXN0LWhlYWRlcj5cbiAgICAgICAgICA8aW9uLWxhYmVsPnt7IHByb3BzLnRpdGxlIH19PC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLWxpc3QtaGVhZGVyPlxuICAgICAgfVxuICAgICAgQGZvciAoaXRlbSBvZiBwcm9wcy5pdGVtczsgdHJhY2sgaXRlbS50b2tlbikge1xuICAgICAgICBAaWYgKGl0ZW0ubW9kZSA9PSAnanVzdGV4dCcpIHtcbiAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgIFtsaW5lc109XCJpdGVtLmxpbmVzXCJcbiAgICAgICAgICAgIFtidXR0b25dPVwiaXRlbS5jbGlja2FibGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihpdGVtLnRva2VuKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChpdGVtLnVucmVhZEluZGljYXRvcikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidW5yZWFkLWluZGljYXRvci13cmFwcGVyXCIgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVucmVhZC1pbmRpY2F0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgW25nQ2xhc3NdPVwieyAnaW9uLXRleHQtbm93cmFwJzogaXRlbS5lbGxpcHNpcyB9XCI+XG4gICAgICAgICAgICAgIDxoMj57eyBpdGVtLnRleHQgfX08L2gyPlxuXG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5jb21tZW50cykge1xuICAgICAgICAgICAgICAgIDxpb24tbm90ZSBjb2xvcj1cIm1lZGl1bVwiPiB7eyBpdGVtLmNvbW1lbnRzIH19IDwvaW9uLW5vdGU+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8cD57eyBpdGVtLnN1YnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cblxuICAgICAgICAgICAgQGlmIChpdGVtLmVuZE5vdGUpIHtcbiAgICAgICAgICAgICAgPGlvbi1ub3RlIHNsb3Q9XCJlbmRcIj57eyBpdGVtLmVuZE5vdGUgfX08L2lvbi1ub3RlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGl0ZW0ubW9kZSA9PSAnYWN0aW9uYWJsZScpIHtcbiAgICAgICAgICA8aW9uLWl0ZW0gW2xpbmVzXT1cIml0ZW0ubGluZXNcIiBbYnV0dG9uXT1cIml0ZW0uY2xpY2thYmxlXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS51bnJlYWRJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVucmVhZC1pbmRpY2F0b3Itd3JhcHBlclwiIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bnJlYWQtaW5kaWNhdG9yXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8aW9uLWxhYmVsIFtuZ0NsYXNzXT1cInsgJ2lvbi10ZXh0LW5vd3JhcCc6IGl0ZW0uZWxsaXBzaXMgfVwiPlxuICAgICAgICAgICAgICA8aDI+e3sgaXRlbS50ZXh0IH19PC9oMj5cblxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uZW5kTm90ZSkge1xuICAgICAgICAgICAgICAgIDxoMz57eyBpdGVtLmVuZE5vdGUgfX08L2gzPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgQGlmIChpdGVtLnN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1ub3RlIGNvbG9yPVwibWVkaXVtXCI+IHt7IGl0ZW0uc3VidGl0bGUgfX0gPC9pb24tbm90ZT5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5jb21tZW50cykge1xuICAgICAgICAgICAgICAgIDxpb24tbm90ZSBjb2xvcj1cIm1lZGl1bVwiPiB7eyBpdGVtLmNvbW1lbnRzIH19IDwvaW9uLW5vdGU+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuXG4gICAgICAgICAgICBAaWYgKGl0ZW0uYWN0aW9ucykge1xuICAgICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgaXRlbS5hY3Rpb25zOyB0cmFjayBhY3Rpb24udG9rZW4pIHtcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcbiAgICAgICAgICAgICAgICAgIHNsb3Q9XCJlbmRcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5zdGF0ZSA9PT0gc3RhdGVzLldPUktJTkdcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uLnN0YXRlICE9PSBzdGF0ZXMuV09SS0lORykge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGlvbi5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuYW1lXT1cImFjdGlvbi5pY29uXCIgc2l6ZT1cIm1lZGl1bVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgQGlmIChhY3Rpb24uc3RhdGUgPT09IHN0YXRlcy5XT1JLSU5HKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBjbGFzcz1cImFjdGlvbi1zcGlubmVyXCIgbmFtZT1cImNpcmN1bGFyXCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChpdGVtLm1vZGUgPT0gJ3JvdXRlJykge1xuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgW2xpbmVzXT1cIml0ZW0ubGluZXNcIlxuICAgICAgICAgICAgW2J1dHRvbl09XCJpdGVtLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGl0ZW0udG9rZW4pXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChpdGVtLnVucmVhZEluZGljYXRvcikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidW5yZWFkLWluZGljYXRvci13cmFwcGVyXCIgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVucmVhZC1pbmRpY2F0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgW25nQ2xhc3NdPVwieyAnaW9uLXRleHQtbm93cmFwJzogaXRlbS5lbGxpcHNpcyB9XCI+XG4gICAgICAgICAgICAgIDxoMj57eyBpdGVtLnRleHQgfX08L2gyPlxuXG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5jb21tZW50cykge1xuICAgICAgICAgICAgICAgIDxpb24tbm90ZSBjb2xvcj1cIm1lZGl1bVwiPiB7eyBpdGVtLmNvbW1lbnRzIH19IDwvaW9uLW5vdGU+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGl0ZW0ubW9kZSA9PSAnc3VidGl0dWxlJykge1xuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgW2xpbmVzXT1cIml0ZW0ubGluZXNcIlxuICAgICAgICAgICAgW2J1dHRvbl09XCJpdGVtLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGl0ZW0udG9rZW4pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGl0ZW0udW5yZWFkSW5kaWNhdG9yKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bnJlYWQtaW5kaWNhdG9yLXdyYXBwZXJcIiBzbG90PVwic3RhcnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidW5yZWFkLWluZGljYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGlvbi1sYWJlbCBbbmdDbGFzc109XCJ7ICdpb24tdGV4dC1ub3dyYXAnOiBpdGVtLmVsbGlwc2lzIH1cIj5cbiAgICAgICAgICAgICAgPGgxPnt7IGl0ZW0udGV4dCB9fTwvaDE+XG4gICAgICAgICAgICAgIDxwPnt7IGl0ZW0uc3VidGl0bGUgfX08L3A+XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChpdGVtLm1vZGUgPT0gJ2F2YXRhcicpIHtcbiAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgIFtsaW5lc109XCJpdGVtLmxpbmVzXCJcbiAgICAgICAgICAgIFtidXR0b25dPVwiaXRlbS5jbGlja2FibGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihpdGVtLnRva2VuKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1hdmF0YXIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxpbWcgYWx0PVwiXCIgW3NyY109XCJpdGVtLmltYWdlXCIgLz5cbiAgICAgICAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgaXRlbS50ZXh0IH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoaXRlbS5tb2RlID09ICdpY29uJykge1xuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgW2xpbmVzXT1cIml0ZW0ubGluZXNcIlxuICAgICAgICAgICAgW2J1dHRvbl09XCJpdGVtLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGl0ZW0udG9rZW4pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25hbWVdPVwiaXRlbS5pY29uXCIgc2l6ZT1cIm1lZGl1bVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPnt7IGl0ZW0udGV4dCB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2lvbi1saXN0PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9pdGVtLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSXRlbUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzdGF0ZXMgPSBDb21wb25lbnRTdGF0ZXM7XG4gIGRlZmF1bHRDb2xvciA9ICdwcmltYXJ5JztcblxuICBASW5wdXQoKVxuICBwcm9wczogTGlzdE1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uQWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihpY29uOiBJY29uU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgY2xpY2tIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodG9rZW4pO1xuICB9XG5cbiAgb25BY3Rpb25DbGlja0hhbmRsZXIodG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQWN0aW9uQ2xpY2suZW1pdCh0b2tlbik7XG4gIH1cblxuICBjb2xvcigpIHtcbiAgICByZXR1cm4gcmVzb2x2ZUNvbG9yKHRoaXMucHJvcHMuY29sb3IgfHwgdGhpcy5kZWZhdWx0Q29sb3IpO1xuICB9XG59XG4iXX0=
412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2l0ZW0tbGlzdC9pdGVtLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLGFBQWEsRUFDYixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQTRMOUM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFBWSxJQUFpQjtRQXJCN0IsV0FBTSxHQUFHLGVBQWUsQ0FBQztRQUN6QixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQVF6Qjs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXJDOztXQUVHO1FBRUgsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRVgsQ0FBQztJQUVqQyxRQUFRLEtBQUksQ0FBQztJQUViOzs7T0FHRztJQUNILFlBQVksQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxLQUFjO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0EvQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsc0tBckxsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUtULDZtQkFsTEMsVUFBVSxvT0FFVixPQUFPLG9GQUNQLE9BQU8seUZBQ1AsYUFBYSxnR0FDYixRQUFRLDZGQUNSLE9BQU8sZ0ZBQ1AsT0FBTywwTkFDUCxTQUFTLHVEQUNULE9BQU8sMkpBQ1AsU0FBUyxvUEFDVCxVQUFVOzs0RkF1TEQsaUJBQWlCO2tCQXRNN0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNQLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixRQUFRO3dCQUNSLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxTQUFTO3dCQUNULE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxVQUFVO3FCQUNYLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFLVDtnRkF3QkQsS0FBSztzQkFESixLQUFLO2dCQU9OLE9BQU87c0JBRE4sTUFBTTtnQkFPUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgSW9uQXZhdGFyLFxuICBJb25CdXR0b24sXG4gIElvbkljb24sXG4gIElvbkl0ZW0sXG4gIElvbkxhYmVsLFxuICBJb25MaXN0LFxuICBJb25MaXN0SGVhZGVyLFxuICBJb25Ob3RlLFxuICBJb25TcGlubmVyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyByZXNvbHZlQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvc3R5bGVzJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IExpc3RNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtaXRlbS1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlckxpbmssXG4gICAgTmdTdHlsZSxcbiAgICBOZ0NsYXNzLFxuICAgIElvbkxpc3QsXG4gICAgSW9uTGlzdEhlYWRlcixcbiAgICBJb25MYWJlbCxcbiAgICBJb25Ob3RlLFxuICAgIElvbkl0ZW0sXG4gICAgSW9uQXZhdGFyLFxuICAgIElvbkljb24sXG4gICAgSW9uQnV0dG9uLFxuICAgIElvblNwaW5uZXIsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1saXN0XG4gICAgICBbaW5zZXRdPVwicHJvcHMucm91bmRlZFwiXG4gICAgICBbY2xhc3Muc2hhZG93ZWRdPVwicHJvcHMuc2hhZG93ZWRcIlxuICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJ0aGlzLmNvbG9yKClcIlxuICAgID5cbiAgICAgIEBpZiAocHJvcHMudGl0bGUpIHtcbiAgICAgICAgPGlvbi1saXN0LWhlYWRlcj5cbiAgICAgICAgICA8aW9uLWxhYmVsPnt7IHByb3BzLnRpdGxlIH19PC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLWxpc3QtaGVhZGVyPlxuICAgICAgfVxuICAgICAgQGZvciAoaXRlbSBvZiBwcm9wcy5pdGVtczsgdHJhY2sgaXRlbS50b2tlbikge1xuICAgICAgICBAaWYgKGl0ZW0ubW9kZSA9PSAnanVzdGV4dCcpIHtcbiAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgIFtsaW5lc109XCJpdGVtLmxpbmVzXCJcbiAgICAgICAgICAgIFtidXR0b25dPVwiaXRlbS5jbGlja2FibGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihpdGVtLnRva2VuKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChpdGVtLnVucmVhZEluZGljYXRvcikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidW5yZWFkLWluZGljYXRvci13cmFwcGVyXCIgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVucmVhZC1pbmRpY2F0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgW25nQ2xhc3NdPVwieyAnaW9uLXRleHQtbm93cmFwJzogaXRlbS5lbGxpcHNpcyB9XCI+XG4gICAgICAgICAgICAgIDxoMj57eyBpdGVtLnRleHQgfX08L2gyPlxuXG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5jb21tZW50cykge1xuICAgICAgICAgICAgICAgIDxpb24tbm90ZSBjb2xvcj1cIm1lZGl1bVwiPiB7eyBpdGVtLmNvbW1lbnRzIH19IDwvaW9uLW5vdGU+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8cD57eyBpdGVtLnN1YnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cblxuICAgICAgICAgICAgQGlmIChpdGVtLmVuZE5vdGUpIHtcbiAgICAgICAgICAgICAgPGlvbi1ub3RlIHNsb3Q9XCJlbmRcIj57eyBpdGVtLmVuZE5vdGUgfX08L2lvbi1ub3RlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGl0ZW0ubW9kZSA9PSAnYWN0aW9uYWJsZScpIHtcbiAgICAgICAgICA8aW9uLWl0ZW0gW2xpbmVzXT1cIml0ZW0ubGluZXNcIiBbYnV0dG9uXT1cIml0ZW0uY2xpY2thYmxlXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS51bnJlYWRJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVucmVhZC1pbmRpY2F0b3Itd3JhcHBlclwiIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bnJlYWQtaW5kaWNhdG9yXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8aW9uLWxhYmVsIFtuZ0NsYXNzXT1cInsgJ2lvbi10ZXh0LW5vd3JhcCc6IGl0ZW0uZWxsaXBzaXMgfVwiPlxuICAgICAgICAgICAgICA8aDI+e3sgaXRlbS50ZXh0IH19PC9oMj5cblxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uZW5kTm90ZSkge1xuICAgICAgICAgICAgICAgIDxoMz57eyBpdGVtLmVuZE5vdGUgfX08L2gzPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgQGlmIChpdGVtLnN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1ub3RlIGNvbG9yPVwibWVkaXVtXCI+IHt7IGl0ZW0uc3VidGl0bGUgfX0gPC9pb24tbm90ZT5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5jb21tZW50cykge1xuICAgICAgICAgICAgICAgIDxpb24tbm90ZSBjb2xvcj1cIm1lZGl1bVwiPiB7eyBpdGVtLmNvbW1lbnRzIH19IDwvaW9uLW5vdGU+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuXG4gICAgICAgICAgICBAaWYgKGl0ZW0uYWN0aW9ucykge1xuICAgICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgaXRlbS5hY3Rpb25zOyB0cmFjayBhY3Rpb24udG9rZW4pIHtcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJkYXJrXCJcbiAgICAgICAgICAgICAgICAgIHNsb3Q9XCJlbmRcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5zdGF0ZSA9PT0gc3RhdGVzLldPUktJTkdcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uLnN0YXRlICE9PSBzdGF0ZXMuV09SS0lORykge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGlvbi5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtuYW1lXT1cImFjdGlvbi5pY29uXCIgc2l6ZT1cIm1lZGl1bVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgQGlmIChhY3Rpb24uc3RhdGUgPT09IHN0YXRlcy5XT1JLSU5HKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBjbGFzcz1cImFjdGlvbi1zcGlubmVyXCIgbmFtZT1cImNpcmN1bGFyXCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChpdGVtLm1vZGUgPT0gJ3JvdXRlJykge1xuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgW2xpbmVzXT1cIml0ZW0ubGluZXNcIlxuICAgICAgICAgICAgW2J1dHRvbl09XCJpdGVtLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGl0ZW0udG9rZW4pXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChpdGVtLnVucmVhZEluZGljYXRvcikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidW5yZWFkLWluZGljYXRvci13cmFwcGVyXCIgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVucmVhZC1pbmRpY2F0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgW25nQ2xhc3NdPVwieyAnaW9uLXRleHQtbm93cmFwJzogaXRlbS5lbGxpcHNpcyB9XCI+XG4gICAgICAgICAgICAgIDxoMj57eyBpdGVtLnRleHQgfX08L2gyPlxuXG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5jb21tZW50cykge1xuICAgICAgICAgICAgICAgIDxpb24tbm90ZSBjb2xvcj1cIm1lZGl1bVwiPiB7eyBpdGVtLmNvbW1lbnRzIH19IDwvaW9uLW5vdGU+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGl0ZW0ubW9kZSA9PSAnc3VidGl0dWxlJykge1xuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgW2xpbmVzXT1cIml0ZW0ubGluZXNcIlxuICAgICAgICAgICAgW2J1dHRvbl09XCJpdGVtLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGl0ZW0udG9rZW4pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGl0ZW0udW5yZWFkSW5kaWNhdG9yKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bnJlYWQtaW5kaWNhdG9yLXdyYXBwZXJcIiBzbG90PVwic3RhcnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidW5yZWFkLWluZGljYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGlvbi1sYWJlbCBbbmdDbGFzc109XCJ7ICdpb24tdGV4dC1ub3dyYXAnOiBpdGVtLmVsbGlwc2lzIH1cIj5cbiAgICAgICAgICAgICAgPGgxPnt7IGl0ZW0udGV4dCB9fTwvaDE+XG4gICAgICAgICAgICAgIDxwPnt7IGl0ZW0uc3VidGl0bGUgfX08L3A+XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChpdGVtLm1vZGUgPT0gJ2F2YXRhcicpIHtcbiAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgIFtsaW5lc109XCJpdGVtLmxpbmVzXCJcbiAgICAgICAgICAgIFtidXR0b25dPVwiaXRlbS5jbGlja2FibGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihpdGVtLnRva2VuKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1hdmF0YXIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxpbWcgYWx0PVwiXCIgW3NyY109XCJpdGVtLmltYWdlXCIgLz5cbiAgICAgICAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgaXRlbS50ZXh0IH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoaXRlbS5tb2RlID09ICdpY29uJykge1xuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgW2xpbmVzXT1cIml0ZW0ubGluZXNcIlxuICAgICAgICAgICAgW2J1dHRvbl09XCJpdGVtLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGl0ZW0udG9rZW4pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25hbWVdPVwiaXRlbS5pY29uXCIgc2l6ZT1cIm1lZGl1bVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPnt7IGl0ZW0udGV4dCB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2lvbi1saXN0PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9pdGVtLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIEl0ZW1MaXN0Q29tcG9uZW50XG4gKlxuICogQ29tcG9uZW50ZSBkZSBsaXN0YSByZXV0aWxpemFibGUgcGFyYSBtb3N0cmFyIHVuYSBjb2xlY2Npw7NuIGRlIGVsZW1lbnRvcyBjb24gZGlmZXJlbnRlcyBtb2RvcyBkZSB2aXN1YWxpemFjacOzbiAodGV4dG8sIHN1YnTDrXR1bG8sIGF2YXRhciwgaWNvbm8sIHJ1dGEsIGFjY2lvbmVzKS5cbiAqIFBlcm1pdGUgYWNjaW9uZXMgcG9yIGVsZW1lbnRvLCBpbmRpY2Fkb3JlcyBkZSBubyBsZcOtZG8sIHkgcGVyc29uYWxpemFjacOzbiBkZSBlc3RpbG9zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWl0ZW0tbGlzdCBbcHJvcHNdPVwieyB0aXRsZTogJ1VzdWFyaW9zJywgaXRlbXM6IFt7IHRleHQ6ICdKdWFuJywgbW9kZTogJ2F2YXRhcicsIGltYWdlOiAnYXZhdGFyLmpwZycgfV0gfVwiIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIj48L3ZhbC1pdGVtLWxpc3Q+XG4gKlxuICogQGlucHV0IHByb3BzIHtMaXN0TWV0YWRhdGF9IC0gTWV0YWRhdG9zIGRlIGxhIGxpc3RhIHkgc3VzIGVsZW1lbnRvcy5cbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRlIGVsIHRva2VuIGRlbCBlbGVtZW50byBjbGljYWRvLlxuICogQG91dHB1dCBvbkFjdGlvbkNsaWNrIC0gRW1pdGUgZWwgdG9rZW4gZGUgbGEgYWNjacOzbiBjbGljYWRhIGVuIHVuIGVsZW1lbnRvLlxuICovXG5leHBvcnQgY2xhc3MgSXRlbUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzdGF0ZXMgPSBDb21wb25lbnRTdGF0ZXM7XG4gIGRlZmF1bHRDb2xvciA9ICdwcmltYXJ5JztcblxuICAvKipcbiAgICogTWV0YWRhdG9zIGRlIGxhIGxpc3RhIHkgc3VzIGVsZW1lbnRvcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBMaXN0TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50byBlbWl0aWRvIGFsIGhhY2VyIGNsaWNrIGVuIHVuIGVsZW1lbnRvIGRlIGxhIGxpc3RhLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRXZlbnRvIGVtaXRpZG8gYWwgaGFjZXIgY2xpY2sgZW4gdW5hIGFjY2nDs24gZGUgdW4gZWxlbWVudG8uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25BY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKGljb246IEljb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICAvKipcbiAgICogRW1pdGUgZWwgdG9rZW4gZGVsIGVsZW1lbnRvIGNsaWNhZG8uXG4gICAqIEBwYXJhbSB0b2tlbiBUb2tlbiBkZWwgZWxlbWVudG9cbiAgICovXG4gIGNsaWNrSGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0ZSBlbCB0b2tlbiBkZSBsYSBhY2Npw7NuIGNsaWNhZGEuXG4gICAqIEBwYXJhbSB0b2tlbiBUb2tlbiBkZSBsYSBhY2Npw7NuXG4gICAqL1xuICBvbkFjdGlvbkNsaWNrSGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25BY3Rpb25DbGljay5lbWl0KHRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXZ1ZWx2ZSBlbCBjb2xvciBkZSBib3JkZSBkZSBsYSBsaXN0YS5cbiAgICovXG4gIGNvbG9yKCkge1xuICAgIHJldHVybiByZXNvbHZlQ29sb3IodGhpcy5wcm9wcy5jb2xvciB8fCB0aGlzLmRlZmF1bHRDb2xvcik7XG4gIH1cbn1cbiJdfQ==