valtech-components 2.0.1035 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/esm2022/lib/components/atoms/box/box.component.mjs +6 -8
  2. package/esm2022/lib/components/atoms/button/factory.mjs +24 -217
  3. package/esm2022/lib/components/atoms/divider/divider.component.mjs +2 -4
  4. package/esm2022/lib/components/atoms/href/href.component.mjs +1 -2
  5. package/esm2022/lib/components/atoms/image/image.component.mjs +36 -3
  6. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +4 -9
  7. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +4 -4
  8. package/esm2022/lib/components/molecules/card/card.component.mjs +53 -10
  9. package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs +27 -36
  10. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +44 -6
  11. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +32 -7
  12. package/esm2022/lib/components/molecules/comment/comment.component.mjs +28 -12
  13. package/esm2022/lib/components/molecules/cta-card/cta-card.component.mjs +4 -9
  14. package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +3 -3
  15. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +7 -7
  16. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +159 -71
  17. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +7 -3
  18. package/esm2022/lib/components/molecules/hint/hint.component.mjs +30 -5
  19. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +75 -19
  20. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +42 -9
  21. package/esm2022/lib/components/molecules/permission-selector/types.mjs +1 -1
  22. package/esm2022/lib/components/molecules/rating/rating.component.mjs +88 -12
  23. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +15 -7
  24. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +93 -7
  25. package/esm2022/lib/components/organisms/change-email-modal/change-email-modal.component.mjs +5 -5
  26. package/esm2022/lib/components/organisms/change-password-modal/change-password-modal.component.mjs +4 -4
  27. package/esm2022/lib/components/organisms/form/form.component.mjs +62 -20
  28. package/esm2022/lib/components/organisms/login/login.component.mjs +8 -8
  29. package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
  30. package/esm2022/lib/components/types.mjs +1 -1
  31. package/esm2022/lib/services/presets/default-presets.mjs +45 -0
  32. package/esm2022/lib/services/presets/index.mjs +3 -1
  33. package/esm2022/lib/services/presets/preset.service.mjs +17 -4
  34. package/esm2022/lib/services/requests/request-form-builder.service.mjs +8 -3
  35. package/esm2022/lib/shared/utils/ionic-color.mjs +36 -0
  36. package/esm2022/lib/version.mjs +2 -2
  37. package/esm2022/public-api.mjs +2 -8
  38. package/fesm2022/valtech-components.mjs +1140 -1024
  39. package/fesm2022/valtech-components.mjs.map +1 -1
  40. package/lib/components/atoms/box/box.component.d.ts +2 -5
  41. package/lib/components/atoms/button/factory.d.ts +15 -69
  42. package/lib/components/atoms/divider/divider.component.d.ts +1 -4
  43. package/lib/components/atoms/href/href.component.d.ts +2 -3
  44. package/lib/components/atoms/image/image.component.d.ts +5 -0
  45. package/lib/components/molecules/action-card/action-card.component.d.ts +1 -1
  46. package/lib/components/molecules/card/card.component.d.ts +2 -1
  47. package/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.d.ts +2 -3
  48. package/lib/components/molecules/chip-group/chip-group.component.d.ts +5 -0
  49. package/lib/components/molecules/command-display/command-display.component.d.ts +4 -0
  50. package/lib/components/molecules/comment/comment.component.d.ts +3 -0
  51. package/lib/components/molecules/cta-card/cta-card.component.d.ts +0 -1
  52. package/lib/components/molecules/hint/hint.component.d.ts +11 -1
  53. package/lib/components/molecules/pagination/pagination.component.d.ts +5 -0
  54. package/lib/components/molecules/password-input/password-input.component.d.ts +4 -2
  55. package/lib/components/molecules/permission-selector/types.d.ts +1 -0
  56. package/lib/components/molecules/rating/rating.component.d.ts +11 -0
  57. package/lib/components/molecules/text-input/text-input.component.d.ts +21 -0
  58. package/lib/components/organisms/form/form.component.d.ts +19 -0
  59. package/lib/components/types.d.ts +21 -1
  60. package/lib/services/presets/default-presets.d.ts +22 -0
  61. package/lib/services/presets/index.d.ts +1 -0
  62. package/lib/services/presets/preset.service.d.ts +4 -0
  63. package/lib/shared/utils/ionic-color.d.ts +20 -0
  64. package/lib/version.d.ts +1 -1
  65. package/package.json +1 -1
  66. package/public-api.d.ts +1 -7
  67. package/src/lib/components/styles/mixins.scss +16 -0
  68. package/esm2022/lib/components/molecules/content-card/content-card.component.mjs +0 -86
  69. package/esm2022/lib/components/molecules/content-card/types.mjs +0 -11
  70. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -68
  71. package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -28
  72. package/esm2022/lib/components/molecules/info-card/info-card.component.mjs +0 -126
  73. package/esm2022/lib/components/molecules/info-card/types.mjs +0 -11
  74. package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -34
  75. package/lib/components/molecules/content-card/content-card.component.d.ts +0 -26
  76. package/lib/components/molecules/content-card/types.d.ts +0 -30
  77. package/lib/components/molecules/email-input/email-input.component.d.ts +0 -34
  78. package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -15
  79. package/lib/components/molecules/info-card/info-card.component.d.ts +0 -37
  80. package/lib/components/molecules/info-card/types.d.ts +0 -44
  81. package/lib/components/molecules/number-input/number-input.component.d.ts +0 -16
@@ -1,10 +1,35 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
1
+ import { Component, inject, Input, Output, EventEmitter } from '@angular/core';
2
2
  import { IonButton, IonIcon } from '@ionic/angular/standalone';
3
3
  import { CommonModule } from '@angular/common';
4
+ import { I18nService } from '../../../services/i18n';
4
5
  import { addIcons } from 'ionicons';
5
6
  import { chevronBack, chevronForward, playBack, playForward } from 'ionicons/icons';
6
7
  import * as i0 from "@angular/core";
7
8
  addIcons({ chevronBack, chevronForward, playBack, playForward });
9
+ /**
10
+ * Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
11
+ * namespace `Pagination`. Cubre los aria-label de la navegación y sus botones.
12
+ */
13
+ const PAGINATION_I18N = {
14
+ es: {
15
+ nav: 'Paginación',
16
+ first: 'Primera página',
17
+ previous: 'Página anterior',
18
+ next: 'Página siguiente',
19
+ last: 'Última página',
20
+ page: 'Página {page}',
21
+ pageInfo: 'Página {current} de {total}',
22
+ },
23
+ en: {
24
+ nav: 'Pagination',
25
+ first: 'First page',
26
+ previous: 'Previous page',
27
+ next: 'Next page',
28
+ last: 'Last page',
29
+ page: 'Page {page}',
30
+ pageInfo: 'Page {current} of {total}',
31
+ },
32
+ };
8
33
  /**
9
34
  * val-pagination
10
35
  *
@@ -30,9 +55,28 @@ addIcons({ chevronBack, chevronForward, playBack, playForward });
30
55
  */
31
56
  export class PaginationComponent {
32
57
  constructor() {
58
+ this.i18n = inject(I18nService);
33
59
  this.pageChange = new EventEmitter();
34
60
  this.visiblePages = [];
35
61
  this.totalPages = 1;
62
+ if (!this.i18n.hasNamespace('Pagination')) {
63
+ this.i18n.registerContent('Pagination', PAGINATION_I18N);
64
+ }
65
+ }
66
+ t(key) {
67
+ this.i18n.lang();
68
+ return this.i18n.t(key, 'Pagination');
69
+ }
70
+ pageLabel(page) {
71
+ this.i18n.lang();
72
+ return this.i18n.t('page', 'Pagination', { page: page.toString() });
73
+ }
74
+ pageInfo() {
75
+ this.i18n.lang();
76
+ return this.i18n.t('pageInfo', 'Pagination', {
77
+ current: this.props.currentPage.toString(),
78
+ total: this.totalPages.toString(),
79
+ });
36
80
  }
37
81
  ngOnChanges(changes) {
38
82
  if (changes['props']) {
@@ -101,16 +145,17 @@ export class PaginationComponent {
101
145
  }
102
146
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
147
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginationComponent, isStandalone: true, selector: "val-pagination", inputs: { props: "props" }, outputs: { pageChange: "pageChange" }, usesOnChanges: true, ngImport: i0, template: `
104
- <div class="pagination-container" [class.disabled]="props.disabled">
148
+ <nav class="pagination-container" [class.disabled]="props.disabled" [attr.aria-label]="t('nav')">
105
149
  @if (props.showFirstLast !== false) {
106
150
  <ion-button
107
151
  fill="clear"
108
152
  [size]="props.size || 'default'"
109
153
  [color]="props.color || 'primary'"
110
154
  [disabled]="props.disabled || props.currentPage <= 1"
155
+ [attr.aria-label]="t('first')"
111
156
  (click)="goToPage(1)"
112
157
  >
113
- <ion-icon slot="icon-only" name="play-back"></ion-icon>
158
+ <ion-icon slot="icon-only" name="play-back" aria-hidden="true"></ion-icon>
114
159
  </ion-button>
115
160
  }
116
161
 
@@ -120,21 +165,24 @@ export class PaginationComponent {
120
165
  [size]="props.size || 'default'"
121
166
  [color]="props.color || 'primary'"
122
167
  [disabled]="props.disabled || props.currentPage <= 1"
168
+ [attr.aria-label]="t('previous')"
123
169
  (click)="goToPage(props.currentPage - 1)"
124
170
  >
125
- <ion-icon slot="icon-only" name="chevron-back"></ion-icon>
171
+ <ion-icon slot="icon-only" name="chevron-back" aria-hidden="true"></ion-icon>
126
172
  </ion-button>
127
173
  }
128
174
 
129
175
  @for (page of visiblePages; track page) {
130
176
  @if (page === -1) {
131
- <span class="ellipsis">...</span>
177
+ <span class="ellipsis" aria-hidden="true">...</span>
132
178
  } @else {
133
179
  <ion-button
134
180
  [fill]="page === props.currentPage ? 'solid' : 'clear'"
135
181
  [size]="props.size || 'default'"
136
182
  [color]="props.color || 'primary'"
137
183
  [disabled]="props.disabled"
184
+ [attr.aria-label]="pageLabel(page)"
185
+ [attr.aria-current]="page === props.currentPage ? 'page' : null"
138
186
  (click)="goToPage(page)"
139
187
  >
140
188
  {{ page }}
@@ -148,9 +196,10 @@ export class PaginationComponent {
148
196
  [size]="props.size || 'default'"
149
197
  [color]="props.color || 'primary'"
150
198
  [disabled]="props.disabled || props.currentPage >= totalPages"
199
+ [attr.aria-label]="t('next')"
151
200
  (click)="goToPage(props.currentPage + 1)"
152
201
  >
153
- <ion-icon slot="icon-only" name="chevron-forward"></ion-icon>
202
+ <ion-icon slot="icon-only" name="chevron-forward" aria-hidden="true"></ion-icon>
154
203
  </ion-button>
155
204
  }
156
205
 
@@ -160,31 +209,33 @@ export class PaginationComponent {
160
209
  [size]="props.size || 'default'"
161
210
  [color]="props.color || 'primary'"
162
211
  [disabled]="props.disabled || props.currentPage >= totalPages"
212
+ [attr.aria-label]="t('last')"
163
213
  (click)="goToPage(totalPages)"
164
214
  >
165
- <ion-icon slot="icon-only" name="play-forward"></ion-icon>
215
+ <ion-icon slot="icon-only" name="play-forward" aria-hidden="true"></ion-icon>
166
216
  </ion-button>
167
217
  }
168
218
 
169
219
  @if (props.showPageInfo) {
170
- <span class="page-info">Page {{ props.currentPage }} of {{ totalPages }}</span>
220
+ <span class="page-info">{{ pageInfo() }}</span>
171
221
  }
172
- </div>
222
+ </nav>
173
223
  `, isInline: true, styles: [":host{display:block}.pagination-container{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}.pagination-container.disabled{opacity:.5;pointer-events:none}ion-button{--padding-start: 8px;--padding-end: 8px;min-width:36px;font-weight:500}ion-button[size=small]{--padding-start: 6px;--padding-end: 6px;min-width:28px;font-size:.75rem}ion-button[size=large]{--padding-start: 12px;--padding-end: 12px;min-width:44px;font-size:1rem}.ellipsis{padding:0 8px;color:var(--ion-color-medium);font-size:.875rem}.page-info{margin-left:16px;color:var(--ion-color-medium);font-size:.875rem;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: 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: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
174
224
  }
175
225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, decorators: [{
176
226
  type: Component,
177
227
  args: [{ selector: 'val-pagination', standalone: true, imports: [CommonModule, IonButton, IonIcon], template: `
178
- <div class="pagination-container" [class.disabled]="props.disabled">
228
+ <nav class="pagination-container" [class.disabled]="props.disabled" [attr.aria-label]="t('nav')">
179
229
  @if (props.showFirstLast !== false) {
180
230
  <ion-button
181
231
  fill="clear"
182
232
  [size]="props.size || 'default'"
183
233
  [color]="props.color || 'primary'"
184
234
  [disabled]="props.disabled || props.currentPage <= 1"
235
+ [attr.aria-label]="t('first')"
185
236
  (click)="goToPage(1)"
186
237
  >
187
- <ion-icon slot="icon-only" name="play-back"></ion-icon>
238
+ <ion-icon slot="icon-only" name="play-back" aria-hidden="true"></ion-icon>
188
239
  </ion-button>
189
240
  }
190
241
 
@@ -194,21 +245,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
194
245
  [size]="props.size || 'default'"
195
246
  [color]="props.color || 'primary'"
196
247
  [disabled]="props.disabled || props.currentPage <= 1"
248
+ [attr.aria-label]="t('previous')"
197
249
  (click)="goToPage(props.currentPage - 1)"
198
250
  >
199
- <ion-icon slot="icon-only" name="chevron-back"></ion-icon>
251
+ <ion-icon slot="icon-only" name="chevron-back" aria-hidden="true"></ion-icon>
200
252
  </ion-button>
201
253
  }
202
254
 
203
255
  @for (page of visiblePages; track page) {
204
256
  @if (page === -1) {
205
- <span class="ellipsis">...</span>
257
+ <span class="ellipsis" aria-hidden="true">...</span>
206
258
  } @else {
207
259
  <ion-button
208
260
  [fill]="page === props.currentPage ? 'solid' : 'clear'"
209
261
  [size]="props.size || 'default'"
210
262
  [color]="props.color || 'primary'"
211
263
  [disabled]="props.disabled"
264
+ [attr.aria-label]="pageLabel(page)"
265
+ [attr.aria-current]="page === props.currentPage ? 'page' : null"
212
266
  (click)="goToPage(page)"
213
267
  >
214
268
  {{ page }}
@@ -222,9 +276,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
222
276
  [size]="props.size || 'default'"
223
277
  [color]="props.color || 'primary'"
224
278
  [disabled]="props.disabled || props.currentPage >= totalPages"
279
+ [attr.aria-label]="t('next')"
225
280
  (click)="goToPage(props.currentPage + 1)"
226
281
  >
227
- <ion-icon slot="icon-only" name="chevron-forward"></ion-icon>
282
+ <ion-icon slot="icon-only" name="chevron-forward" aria-hidden="true"></ion-icon>
228
283
  </ion-button>
229
284
  }
230
285
 
@@ -234,20 +289,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
234
289
  [size]="props.size || 'default'"
235
290
  [color]="props.color || 'primary'"
236
291
  [disabled]="props.disabled || props.currentPage >= totalPages"
292
+ [attr.aria-label]="t('last')"
237
293
  (click)="goToPage(totalPages)"
238
294
  >
239
- <ion-icon slot="icon-only" name="play-forward"></ion-icon>
295
+ <ion-icon slot="icon-only" name="play-forward" aria-hidden="true"></ion-icon>
240
296
  </ion-button>
241
297
  }
242
298
 
243
299
  @if (props.showPageInfo) {
244
- <span class="page-info">Page {{ props.currentPage }} of {{ totalPages }}</span>
300
+ <span class="page-info">{{ pageInfo() }}</span>
245
301
  }
246
- </div>
302
+ </nav>
247
303
  `, styles: [":host{display:block}.pagination-container{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}.pagination-container.disabled{opacity:.5;pointer-events:none}ion-button{--padding-start: 8px;--padding-end: 8px;min-width:36px;font-weight:500}ion-button[size=small]{--padding-start: 6px;--padding-end: 6px;min-width:28px;font-size:.75rem}ion-button[size=large]{--padding-start: 12px;--padding-end: 12px;min-width:44px;font-size:1rem}.ellipsis{padding:0 8px;color:var(--ion-color-medium);font-size:.875rem}.page-info{margin-left:16px;color:var(--ion-color-medium);font-size:.875rem;white-space:nowrap}\n"] }]
248
- }], propDecorators: { props: [{
304
+ }], ctorParameters: () => [], propDecorators: { props: [{
249
305
  type: Input
250
306
  }], pageChange: [{
251
307
  type: Output
252
308
  }] } });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFlBQVksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXBGLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUErRWpFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQXBHaEM7UUF1R1ksZUFBVSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRTNELGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBVyxDQUFDLENBQUM7S0E4RXhCO0lBNUVDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElB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QUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFFRCx3QkFBd0I7UUFDeEIsSUFBSSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQzdCLENBQUM7WUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOytHQW5GVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixrS0FoR3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0VULHdyQkF2RVMsWUFBWSwrQkFBRSxTQUFTLG9QQUFFLE9BQU87OzRGQWlHL0IsbUJBQW1CO2tCQXBHL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxZQUNqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNFVDs4QkEyQlEsS0FBSztzQkFBYixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQYWdpbmF0aW9uTWV0YWRhdGEsIFBhZ2VDaGFuZ2VFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uQmFjaywgY2hldnJvbkZvcndhcmQsIHBsYXlCYWNrLCBwbGF5Rm9yd2FyZCB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuYWRkSWNvbnMoeyBjaGV2cm9uQmFjaywgY2hldnJvbkZvcndhcmQsIHBsYXlCYWNrLCBwbGF5Rm9yd2FyZCB9KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhZ2luYXRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiIFtjbGFzcy5kaXNhYmxlZF09XCJwcm9wcy5kaXNhYmxlZFwiPlxuICAgICAgQGlmIChwcm9wcy5zaG93Rmlyc3RMYXN0ICE9PSBmYWxzZSkge1xuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgW3NpemVdPVwicHJvcHMuc2l6ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5kaXNhYmxlZCB8fCBwcm9wcy5jdXJyZW50UGFnZSA8PSAxXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UoMSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwicGxheS1iYWNrXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLnNob3dQcmV2TmV4dCAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIFtzaXplXT1cInByb3BzLnNpemUgfHwgJ2RlZmF1bHQnXCJcbiAgICAgICAgICBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMuZGlzYWJsZWQgfHwgcHJvcHMuY3VycmVudFBhZ2UgPD0gMVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHByb3BzLmN1cnJlbnRQYWdlIC0gMSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2hldnJvbi1iYWNrXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAZm9yIChwYWdlIG9mIHZpc2libGVQYWdlczsgdHJhY2sgcGFnZSkge1xuICAgICAgICBAaWYgKHBhZ2UgPT09IC0xKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbGxpcHNpc1wiPi4uLjwvc3Bhbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIFtmaWxsXT1cInBhZ2UgPT09IHByb3BzLmN1cnJlbnRQYWdlID8gJ3NvbGlkJyA6ICdjbGVhcidcIlxuICAgICAgICAgICAgW3NpemVdPVwicHJvcHMuc2l6ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgICAgW2NvbG9yXT1cInByb3BzLmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMuZGlzYWJsZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHBhZ2UpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBwYWdlIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAocHJvcHMuc2hvd1ByZXZOZXh0ICE9PSBmYWxzZSkge1xuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgW3NpemVdPVwicHJvcHMuc2l6ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5kaXNhYmxlZCB8fCBwcm9wcy5jdXJyZW50UGFnZSA+PSB0b3RhbFBhZ2VzXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UocHJvcHMuY3VycmVudFBhZ2UgKyAxKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmRcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocHJvcHMuc2hvd0ZpcnN0TGFzdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIFtzaXplXT1cInByb3BzLnNpemUgfHwgJ2RlZmF1bHQnXCJcbiAgICAgICAgICBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMuZGlzYWJsZWQgfHwgcHJvcHMuY3VycmVudFBhZ2UgPj0gdG90YWxQYWdlc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHRvdGFsUGFnZXMpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInBsYXktZm9yd2FyZFwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5zaG93UGFnZUluZm8pIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWluZm9cIj5QYWdlIHt7IHByb3BzLmN1cnJlbnRQYWdlIH19IG9mIHt7IHRvdGFsUGFnZXMgfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1wYWdpbmF0aW9uXG4gKlxuICogQSBwYWdpbmF0aW9uIGNvbXBvbmVudCBmb3IgbmF2aWdhdGluZyB0aHJvdWdoIHBhZ2VkIGNvbnRlbnQuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIDx2YWwtcGFnaW5hdGlvbiBbcHJvcHNdPVwie1xuICogICBjdXJyZW50UGFnZTogMSxcbiAqICAgdG90YWxQYWdlczogMTAsXG4gKiAgIHNob3dQYWdlSW5mbzogdHJ1ZVxuICogfVwiIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCI+PC92YWwtcGFnaW5hdGlvbj5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHRvdGFsIGl0ZW1zXG4gKiA8dmFsLXBhZ2luYXRpb24gW3Byb3BzXT1cIntcbiAqICAgY3VycmVudFBhZ2U6IDEsXG4gKiAgIHRvdGFsSXRlbXM6IDEwMCxcbiAqICAgcGFnZVNpemU6IDEwLFxuICogICBtYXhWaXNpYmxlUGFnZXM6IDVcbiAqIH1cIj48L3ZhbC1wYWdpbmF0aW9uPlxuICpcbiAqIEBpbnB1dCBwcm9wczogUGFnaW5hdGlvbk1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgcGFnaW5hdGlvblxuICogQG91dHB1dCBwYWdlQ2hhbmdlOiBQYWdlQ2hhbmdlRXZlbnQgLSBFbWl0cyB3aGVuIHBhZ2UgY2hhbmdlc1xuICovXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHByb3BzOiBQYWdpbmF0aW9uTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VDaGFuZ2VFdmVudD4oKTtcblxuICB2aXNpYmxlUGFnZXM6IG51bWJlcltdID0gW107XG4gIHRvdGFsUGFnZXM6IG51bWJlciA9IDE7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcbiAgICAgIHRoaXMuY2FsY3VsYXRlVmlzaWJsZVBhZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHBhZ2UgPCAxIHx8IHBhZ2UgPiB0aGlzLnRvdGFsUGFnZXMgfHwgcGFnZSA9PT0gdGhpcy5wcm9wcy5jdXJyZW50UGFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50OiBQYWdlQ2hhbmdlRXZlbnQgPSB7XG4gICAgICBwYWdlLFxuICAgICAgcHJldmlvdXNQYWdlOiB0aGlzLnByb3BzLmN1cnJlbnRQYWdlLFxuICAgICAgcGFnZVNpemU6IHRoaXMucHJvcHMucGFnZVNpemUgfHwgMTAsXG4gICAgfTtcblxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVG90YWxQYWdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50b3RhbFBhZ2VzKSB7XG4gICAgICB0aGlzLnRvdGFsUGFnZXMgPSB0aGlzLnByb3BzLnRvdGFsUGFnZXM7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnRvdGFsSXRlbXMgJiYgdGhpcy5wcm9wcy5wYWdlU2l6ZSkge1xuICAgICAgdGhpcy50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRoaXMucHJvcHMudG90YWxJdGVtcyAvIHRoaXMucHJvcHMucGFnZVNpemUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvdGFsUGFnZXMgPSAxO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVmlzaWJsZVBhZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1heFZpc2libGUgPSB0aGlzLnByb3BzLm1heFZpc2libGVQYWdlcyB8fCA1O1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnByb3BzLmN1cnJlbnRQYWdlO1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy50b3RhbFBhZ2VzO1xuXG4gICAgaWYgKHRvdGFsIDw9IG1heFZpc2libGUpIHtcbiAgICAgIHRoaXMudmlzaWJsZVBhZ2VzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogdG90YWwgfSwgKF8sIGkpID0+IGkgKyAxKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYWdlczogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBoYWxmID0gTWF0aC5mbG9vcihtYXhWaXNpYmxlIC8gMik7XG5cbiAgICBsZXQgc3RhcnQgPSBNYXRoLm1heCgxLCBjdXJyZW50IC0gaGFsZik7XG4gICAgbGV0IGVuZCA9IE1hdGgubWluKHRvdGFsLCBzdGFydCArIG1heFZpc2libGUgLSAxKTtcblxuICAgIGlmIChlbmQgLSBzdGFydCA8IG1heFZpc2libGUgLSAxKSB7XG4gICAgICBzdGFydCA9IE1hdGgubWF4KDEsIGVuZCAtIG1heFZpc2libGUgKyAxKTtcbiAgICB9XG5cbiAgICAvLyBBbHdheXMgc2hvdyBmaXJzdCBwYWdlXG4gICAgaWYgKHN0YXJ0ID4gMSkge1xuICAgICAgcGFnZXMucHVzaCgxKTtcbiAgICAgIGlmIChzdGFydCA+IDIpIHtcbiAgICAgICAgcGFnZXMucHVzaCgtMSk7IC8vIEVsbGlwc2lzXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWlkZGxlIHBhZ2VzXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICBpZiAoIXBhZ2VzLmluY2x1ZGVzKGkpKSB7XG4gICAgICAgIHBhZ2VzLnB1c2goaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIHNob3cgbGFzdCBwYWdlXG4gICAgaWYgKGVuZCA8IHRvdGFsKSB7XG4gICAgICBpZiAoZW5kIDwgdG90YWwgLSAxKSB7XG4gICAgICAgIHBhZ2VzLnB1c2goLTEpOyAvLyBFbGxpcHNpc1xuICAgICAgfVxuICAgICAgcGFnZXMucHVzaCh0b3RhbCk7XG4gICAgfVxuXG4gICAgdGhpcy52aXNpYmxlUGFnZXMgPSBwYWdlcztcbiAgfVxufVxuIl19
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxZQUFZLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFcEYsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUVqRTs7O0dBR0c7QUFDSCxNQUFNLGVBQWUsR0FBRztJQUN0QixFQUFFLEVBQUU7UUFDRixHQUFHLEVBQUUsWUFBWTtRQUNqQixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsZUFBZTtRQUNyQixRQUFRLEVBQUUsNkJBQTZCO0tBQ3hDO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsR0FBRyxFQUFFLFlBQVk7UUFDakIsS0FBSyxFQUFFLFlBQVk7UUFDbkIsUUFBUSxFQUFFLGVBQWU7UUFDekIsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsUUFBUSxFQUFFLDJCQUEyQjtLQUN0QztDQUNGLENBQUM7QUFxRkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBVTlCO1FBVFEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUl6QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFM0QsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUdyQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxDQUFDLENBQUMsR0FBVztRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRTtZQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQzFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUUsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBb0I7WUFDN0IsSUFBSTtZQUNKLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7WUFDcEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUU7U0FDcEMsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDMUMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRTlCLElBQUksS0FBSyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNuRSxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV4QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVsRCxJQUFJLEdBQUcsR0FBRyxLQUFLLEdBQUcsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCx5QkFBeUI7UUFDekIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2QsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztZQUM3QixDQUFDO1FBQ0gsQ0FBQztRQUVELGVBQWU7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztRQUVELHdCQUF3QjtRQUN4QixJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLEdBQUcsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFDN0IsQ0FBQztZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7K0dBN0dVLG1CQUFtQjttR0FBbkIsbUJBQW1CLGtLQXRHcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RVQsd3JCQTdFUyxZQUFZLCtCQUFFLFNBQVMsb1BBQUUsT0FBTzs7NEZBdUcvQixtQkFBbUI7a0JBMUcvQixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQ2pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEVUO3dEQTZCUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFBhZ2luYXRpb25NZXRhZGF0YSwgUGFnZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25CYWNrLCBjaGV2cm9uRm9yd2FyZCwgcGxheUJhY2ssIHBsYXlGb3J3YXJkIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5hZGRJY29ucyh7IGNoZXZyb25CYWNrLCBjaGV2cm9uRm9yd2FyZCwgcGxheUJhY2ssIHBsYXlGb3J3YXJkIH0pO1xuXG4vKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKSDigJQgYXV0by1yZWdpc3RyYWRvcyBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbFxuICogbmFtZXNwYWNlIGBQYWdpbmF0aW9uYC4gQ3VicmUgbG9zIGFyaWEtbGFiZWwgZGUgbGEgbmF2ZWdhY2nDs24geSBzdXMgYm90b25lcy5cbiAqL1xuY29uc3QgUEFHSU5BVElPTl9JMThOID0ge1xuICBlczoge1xuICAgIG5hdjogJ1BhZ2luYWNpw7NuJyxcbiAgICBmaXJzdDogJ1ByaW1lcmEgcMOhZ2luYScsXG4gICAgcHJldmlvdXM6ICdQw6FnaW5hIGFudGVyaW9yJyxcbiAgICBuZXh0OiAnUMOhZ2luYSBzaWd1aWVudGUnLFxuICAgIGxhc3Q6ICfDmmx0aW1hIHDDoWdpbmEnLFxuICAgIHBhZ2U6ICdQw6FnaW5hIHtwYWdlfScsXG4gICAgcGFnZUluZm86ICdQw6FnaW5hIHtjdXJyZW50fSBkZSB7dG90YWx9JyxcbiAgfSxcbiAgZW46IHtcbiAgICBuYXY6ICdQYWdpbmF0aW9uJyxcbiAgICBmaXJzdDogJ0ZpcnN0IHBhZ2UnLFxuICAgIHByZXZpb3VzOiAnUHJldmlvdXMgcGFnZScsXG4gICAgbmV4dDogJ05leHQgcGFnZScsXG4gICAgbGFzdDogJ0xhc3QgcGFnZScsXG4gICAgcGFnZTogJ1BhZ2Uge3BhZ2V9JyxcbiAgICBwYWdlSW5mbzogJ1BhZ2Uge2N1cnJlbnR9IG9mIHt0b3RhbH0nLFxuICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhZ2luYXRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuYXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiIFtjbGFzcy5kaXNhYmxlZF09XCJwcm9wcy5kaXNhYmxlZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnbmF2JylcIj5cbiAgICAgIEBpZiAocHJvcHMuc2hvd0ZpcnN0TGFzdCAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIFtzaXplXT1cInByb3BzLnNpemUgfHwgJ2RlZmF1bHQnXCJcbiAgICAgICAgICBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMuZGlzYWJsZWQgfHwgcHJvcHMuY3VycmVudFBhZ2UgPD0gMVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdmaXJzdCcpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UoMSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwicGxheS1iYWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLnNob3dQcmV2TmV4dCAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIFtzaXplXT1cInByb3BzLnNpemUgfHwgJ2RlZmF1bHQnXCJcbiAgICAgICAgICBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMuZGlzYWJsZWQgfHwgcHJvcHMuY3VycmVudFBhZ2UgPD0gMVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdwcmV2aW91cycpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UocHJvcHMuY3VycmVudFBhZ2UgLSAxKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGV2cm9uLWJhY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBmb3IgKHBhZ2Ugb2YgdmlzaWJsZVBhZ2VzOyB0cmFjayBwYWdlKSB7XG4gICAgICAgIEBpZiAocGFnZSA9PT0gLTEpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImVsbGlwc2lzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Li4uPC9zcGFuPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgW2ZpbGxdPVwicGFnZSA9PT0gcHJvcHMuY3VycmVudFBhZ2UgPyAnc29saWQnIDogJ2NsZWFyJ1wiXG4gICAgICAgICAgICBbc2l6ZV09XCJwcm9wcy5zaXplIHx8ICdkZWZhdWx0J1wiXG4gICAgICAgICAgICBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5kaXNhYmxlZFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInBhZ2VMYWJlbChwYWdlKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwicGFnZSA9PT0gcHJvcHMuY3VycmVudFBhZ2UgPyAncGFnZScgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb1RvUGFnZShwYWdlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLnNob3dQcmV2TmV4dCAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgIFtzaXplXT1cInByb3BzLnNpemUgfHwgJ2RlZmF1bHQnXCJcbiAgICAgICAgICBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMuZGlzYWJsZWQgfHwgcHJvcHMuY3VycmVudFBhZ2UgPj0gdG90YWxQYWdlc1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCduZXh0JylcIlxuICAgICAgICAgIChjbGljayk9XCJnb1RvUGFnZShwcm9wcy5jdXJyZW50UGFnZSArIDEpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZXZyb24tZm9yd2FyZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5zaG93Rmlyc3RMYXN0ICE9PSBmYWxzZSkge1xuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgW3NpemVdPVwicHJvcHMuc2l6ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgIFtjb2xvcl09XCJwcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5kaXNhYmxlZCB8fCBwcm9wcy5jdXJyZW50UGFnZSA+PSB0b3RhbFBhZ2VzXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2xhc3QnKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHRvdGFsUGFnZXMpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInBsYXktZm9yd2FyZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5zaG93UGFnZUluZm8pIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWluZm9cIj57eyBwYWdlSW5mbygpIH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvbmF2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtcGFnaW5hdGlvblxuICpcbiAqIEEgcGFnaW5hdGlvbiBjb21wb25lbnQgZm9yIG5hdmlnYXRpbmcgdGhyb3VnaCBwYWdlZCBjb250ZW50LlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiA8dmFsLXBhZ2luYXRpb24gW3Byb3BzXT1cIntcbiAqICAgY3VycmVudFBhZ2U6IDEsXG4gKiAgIHRvdGFsUGFnZXM6IDEwLFxuICogICBzaG93UGFnZUluZm86IHRydWVcbiAqIH1cIiAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPjwvdmFsLXBhZ2luYXRpb24+XG4gKlxuICogQGV4YW1wbGUgV2l0aCB0b3RhbCBpdGVtc1xuICogPHZhbC1wYWdpbmF0aW9uIFtwcm9wc109XCJ7XG4gKiAgIGN1cnJlbnRQYWdlOiAxLFxuICogICB0b3RhbEl0ZW1zOiAxMDAsXG4gKiAgIHBhZ2VTaXplOiAxMCxcbiAqICAgbWF4VmlzaWJsZVBhZ2VzOiA1XG4gKiB9XCI+PC92YWwtcGFnaW5hdGlvbj5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IFBhZ2luYXRpb25NZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHBhZ2luYXRpb25cbiAqIEBvdXRwdXQgcGFnZUNoYW5nZTogUGFnZUNoYW5nZUV2ZW50IC0gRW1pdHMgd2hlbiBwYWdlIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHByb3BzOiBQYWdpbmF0aW9uTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VDaGFuZ2VFdmVudD4oKTtcblxuICB2aXNpYmxlUGFnZXM6IG51bWJlcltdID0gW107XG4gIHRvdGFsUGFnZXM6IG51bWJlciA9IDE7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKCdQYWdpbmF0aW9uJykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoJ1BhZ2luYXRpb24nLCBQQUdJTkFUSU9OX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ1BhZ2luYXRpb24nKTtcbiAgfVxuXG4gIHBhZ2VMYWJlbChwYWdlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdwYWdlJywgJ1BhZ2luYXRpb24nLCB7IHBhZ2U6IHBhZ2UudG9TdHJpbmcoKSB9KTtcbiAgfVxuXG4gIHBhZ2VJbmZvKCk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ3BhZ2VJbmZvJywgJ1BhZ2luYXRpb24nLCB7XG4gICAgICBjdXJyZW50OiB0aGlzLnByb3BzLmN1cnJlbnRQYWdlLnRvU3RyaW5nKCksXG4gICAgICB0b3RhbDogdGhpcy50b3RhbFBhZ2VzLnRvU3RyaW5nKCksXG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xuICAgICAgdGhpcy5jYWxjdWxhdGVWaXNpYmxlUGFnZXMoKTtcbiAgICB9XG4gIH1cblxuICBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAocGFnZSA8IDEgfHwgcGFnZSA+IHRoaXMudG90YWxQYWdlcyB8fCBwYWdlID09PSB0aGlzLnByb3BzLmN1cnJlbnRQYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnQ6IFBhZ2VDaGFuZ2VFdmVudCA9IHtcbiAgICAgIHBhZ2UsXG4gICAgICBwcmV2aW91c1BhZ2U6IHRoaXMucHJvcHMuY3VycmVudFBhZ2UsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wcm9wcy5wYWdlU2l6ZSB8fCAxMCxcbiAgICB9O1xuXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVUb3RhbFBhZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLnRvdGFsUGFnZXMpIHtcbiAgICAgIHRoaXMudG90YWxQYWdlcyA9IHRoaXMucHJvcHMudG90YWxQYWdlcztcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMudG90YWxJdGVtcyAmJiB0aGlzLnByb3BzLnBhZ2VTaXplKSB7XG4gICAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy5wcm9wcy50b3RhbEl0ZW1zIC8gdGhpcy5wcm9wcy5wYWdlU2l6ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG90YWxQYWdlcyA9IDE7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVWaXNpYmxlUGFnZXMoKTogdm9pZCB7XG4gICAgY29uc3QgbWF4VmlzaWJsZSA9IHRoaXMucHJvcHMubWF4VmlzaWJsZVBhZ2VzIHx8IDU7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMucHJvcHMuY3VycmVudFBhZ2U7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnRvdGFsUGFnZXM7XG5cbiAgICBpZiAodG90YWwgPD0gbWF4VmlzaWJsZSkge1xuICAgICAgdGhpcy52aXNpYmxlUGFnZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0b3RhbCB9LCAoXywgaSkgPT4gaSArIDEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhZ2VzOiBudW1iZXJbXSA9IFtdO1xuICAgIGNvbnN0IGhhbGYgPSBNYXRoLmZsb29yKG1heFZpc2libGUgLyAyKTtcblxuICAgIGxldCBzdGFydCA9IE1hdGgubWF4KDEsIGN1cnJlbnQgLSBoYWxmKTtcbiAgICBsZXQgZW5kID0gTWF0aC5taW4odG90YWwsIHN0YXJ0ICsgbWF4VmlzaWJsZSAtIDEpO1xuXG4gICAgaWYgKGVuZCAtIHN0YXJ0IDwgbWF4VmlzaWJsZSAtIDEpIHtcbiAgICAgIHN0YXJ0ID0gTWF0aC5tYXgoMSwgZW5kIC0gbWF4VmlzaWJsZSArIDEpO1xuICAgIH1cblxuICAgIC8vIEFsd2F5cyBzaG93IGZpcnN0IHBhZ2VcbiAgICBpZiAoc3RhcnQgPiAxKSB7XG4gICAgICBwYWdlcy5wdXNoKDEpO1xuICAgICAgaWYgKHN0YXJ0ID4gMikge1xuICAgICAgICBwYWdlcy5wdXNoKC0xKTsgLy8gRWxsaXBzaXNcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNaWRkbGUgcGFnZXNcbiAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHtcbiAgICAgIGlmICghcGFnZXMuaW5jbHVkZXMoaSkpIHtcbiAgICAgICAgcGFnZXMucHVzaChpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbHdheXMgc2hvdyBsYXN0IHBhZ2VcbiAgICBpZiAoZW5kIDwgdG90YWwpIHtcbiAgICAgIGlmIChlbmQgPCB0b3RhbCAtIDEpIHtcbiAgICAgICAgcGFnZXMucHVzaCgtMSk7IC8vIEVsbGlwc2lzXG4gICAgICB9XG4gICAgICBwYWdlcy5wdXNoKHRvdGFsKTtcbiAgICB9XG5cbiAgICB0aGlzLnZpc2libGVQYWdlcyA9IHBhZ2VzO1xuICB9XG59XG4iXX0=
@@ -1,10 +1,18 @@
1
1
  import { Component, inject, Input } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { IonButton, IonIcon, IonInput } from '@ionic/angular/standalone';
4
+ import { I18nService } from '../../../services/i18n';
4
5
  import { PresetService } from '../../../services/presets';
5
6
  import * as i0 from "@angular/core";
6
- import * as i1 from "../../../services/icons.service";
7
- import * as i2 from "@angular/forms";
7
+ import * as i1 from "@angular/forms";
8
+ /**
9
+ * Defaults i18n (es/en) — auto-registrados si el consumer no proveyó el
10
+ * namespace `PasswordInput`. Cubre el aria-label del toggle mostrar/ocultar.
11
+ */
12
+ const PASSWORD_INPUT_I18N = {
13
+ es: { showPassword: 'Mostrar contraseña', hidePassword: 'Ocultar contraseña' },
14
+ en: { showPassword: 'Show password', hidePassword: 'Hide password' },
15
+ };
8
16
  /**
9
17
  * val-password-input
10
18
  *
@@ -21,8 +29,9 @@ import * as i2 from "@angular/forms";
21
29
  * @input props: InputMetadata - Configuration for the input (overrides preset values)
22
30
  */
23
31
  export class PasswordInputComponent {
24
- constructor(icon) {
32
+ constructor() {
25
33
  this.presets = inject(PresetService);
34
+ this.i18n = inject(I18nService);
26
35
  /**
27
36
  * Input configuration object. Values here override preset values.
28
37
  * @type {InputMetadata}
@@ -35,6 +44,16 @@ export class PasswordInputComponent {
35
44
  */
36
45
  this.resolvedProps = {};
37
46
  this.hidePassword = true;
47
+ if (!this.i18n.hasNamespace('PasswordInput')) {
48
+ this.i18n.registerContent('PasswordInput', PASSWORD_INPUT_I18N);
49
+ }
50
+ }
51
+ /** Aria-label del botón mostrar/ocultar según el estado de visibilidad. */
52
+ toggleLabel() {
53
+ this.i18n.lang();
54
+ return this.hidePassword
55
+ ? this.i18n.t('showPassword', 'PasswordInput')
56
+ : this.i18n.t('hidePassword', 'PasswordInput');
38
57
  }
39
58
  ngOnInit() {
40
59
  this.resolveProps();
@@ -55,7 +74,7 @@ export class PasswordInputComponent {
55
74
  ...this.props,
56
75
  };
57
76
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PasswordInputComponent, deps: [{ token: i1.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
78
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PasswordInputComponent, isStandalone: true, selector: "val-password-input", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
60
79
  <div class="input-container">
61
80
  <ion-input
@@ -64,11 +83,18 @@ export class PasswordInputComponent {
64
83
  [type]="hidePassword ? 'password' : 'text'"
65
84
  [placeholder]="resolvedProps.placeholder"
66
85
  ></ion-input>
67
- <ion-button color="dark" fill="clear" (click)="hidePassword = !hidePassword" size="small">
86
+ <ion-button
87
+ color="dark"
88
+ fill="clear"
89
+ (click)="hidePassword = !hidePassword"
90
+ size="small"
91
+ [attr.aria-label]="toggleLabel()"
92
+ [attr.aria-pressed]="!hidePassword"
93
+ >
68
94
  <ion-icon slot="icon-only" [name]="hidePassword ? 'eye-off-outline' : 'eye-outline'"></ion-icon>
69
95
  </ion-button>
70
96
  </div>
71
- `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.input-container{display:flex;align-items:center;flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: 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"] }, { kind: "component", type: 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: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
97
+ `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.input-container{display:flex;align-items:center;flex-direction:row}\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"] }, { kind: "component", type: 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: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
72
98
  }
73
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PasswordInputComponent, decorators: [{
74
100
  type: Component,
@@ -80,14 +106,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
80
106
  [type]="hidePassword ? 'password' : 'text'"
81
107
  [placeholder]="resolvedProps.placeholder"
82
108
  ></ion-input>
83
- <ion-button color="dark" fill="clear" (click)="hidePassword = !hidePassword" size="small">
109
+ <ion-button
110
+ color="dark"
111
+ fill="clear"
112
+ (click)="hidePassword = !hidePassword"
113
+ size="small"
114
+ [attr.aria-label]="toggleLabel()"
115
+ [attr.aria-pressed]="!hidePassword"
116
+ >
84
117
  <ion-icon slot="icon-only" [name]="hidePassword ? 'eye-off-outline' : 'eye-outline'"></ion-icon>
85
118
  </ion-button>
86
119
  </div>
87
120
  `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.input-container{display:flex;align-items:center;flex-direction:row}\n"] }]
88
- }], ctorParameters: () => [{ type: i1.IconService }], propDecorators: { preset: [{
121
+ }], ctorParameters: () => [], propDecorators: { preset: [{
89
122
  type: Input
90
123
  }], props: [{
91
124
  type: Input
92
125
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFzQjFEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQTJCakMsWUFBWSxJQUFpQjtRQTFCckIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQVd4Qzs7Ozs7V0FLRztRQUNNLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBRTVDOztXQUVHO1FBQ0gsa0JBQWEsR0FBa0IsRUFBbUIsQ0FBQztRQUVuRCxpQkFBWSxHQUFHLElBQUksQ0FBQztJQUVZLENBQUM7SUFFakMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQTRCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVsSCxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLEdBQUcsV0FBVztZQUNkLEdBQUcsSUFBSSxDQUFDLEtBQUs7U0FDRyxDQUFDO0lBQ3JCLENBQUM7K0dBbERVLHNCQUFzQjttR0FBdEIsc0JBQXNCLGlKQTlCdkI7Ozs7Ozs7Ozs7OztHQVlULG15R0FiUyxtQkFBbUIsMFRBQUUsUUFBUSw4ZUFBRSxTQUFTLG9QQUFFLE9BQU87OzRGQStCaEQsc0JBQXNCO2tCQWxDbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsWUFDbEQ7Ozs7Ozs7Ozs7OztHQVlUO2dGQTRCUSxNQUFNO3NCQUFkLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGFzc3dvcmQtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uSW5wdXQsIElvbkJ1dHRvbiwgSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgPGlvbi1pbnB1dFxuICAgICAgICBjbGFzcz1cInNpZ24taW5fX2lucHV0LXBhc3N3b3JkXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlc29sdmVkUHJvcHMuY29udHJvbFwiXG4gICAgICAgIFt0eXBlXT1cImhpZGVQYXNzd29yZCA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRQcm9wcy5wbGFjZWhvbGRlclwiXG4gICAgICA+PC9pb24taW5wdXQ+XG4gICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cImRhcmtcIiBmaWxsPVwiY2xlYXJcIiAoY2xpY2spPVwiaGlkZVBhc3N3b3JkID0gIWhpZGVQYXNzd29yZFwiIHNpemU9XCJzbWFsbFwiPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImhpZGVQYXNzd29yZCA/ICdleWUtb2ZmLW91dGxpbmUnIDogJ2V5ZS1vdXRsaW5lJ1wiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtcGFzc3dvcmQtaW5wdXRcbiAqXG4gKiBBIHBhc3N3b3JkIGlucHV0IGZpZWxkIHdpdGggc2hvdy9oaWRlIHRvZ2dsZSwgaW50ZWdyYXRlZCB3aXRoIEFuZ3VsYXIgZm9ybXMuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldCAocmVjb21tZW5kZWQpOlxuICogPHZhbC1wYXNzd29yZC1pbnB1dCBwcmVzZXQ9XCJmb3JtLWZpZWxkXCIgW3Byb3BzXT1cInsgY29udHJvbDogbXlDb250cm9sLCBwbGFjZWhvbGRlcjogJ1Bhc3N3b3JkJyB9XCI+PC92YWwtcGFzc3dvcmQtaW5wdXQ+XG4gKlxuICogQGV4YW1wbGUgU3RhdGljIChiYWNrd2FyZHMgY29tcGF0aWJsZSk6XG4gKiA8dmFsLXBhc3N3b3JkLWlucHV0IFtwcm9wc109XCJ7IGNvbnRyb2w6IG15Q29udHJvbCwgcGxhY2Vob2xkZXI6ICdFbnRlciBwYXNzd29yZCcgfVwiPjwvdmFsLXBhc3N3b3JkLWlucHV0PlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5IChlLmcuLCAnZm9ybS1maWVsZCcsICdsb2dpbicpXG4gKiBAaW5wdXQgcHJvcHM6IElucHV0TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgaW5wdXQgKG92ZXJyaWRlcyBwcmVzZXQgdmFsdWVzKVxuICovXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgaW5wdXQgY29uZmlndXJhdGlvbnNcbiAgICogdGhhdCBjYW4gYmUgcmVnaXN0ZXJlZCBhdCBhcHAgbGV2ZWwgdmlhIHByb3ZpZGVWYWx0ZWNoUHJlc2V0cygpLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiA8dmFsLXBhc3N3b3JkLWlucHV0IHByZXNldD1cImxvZ2luXCIgW3Byb3BzXT1cInsgY29udHJvbDogY3RybCB9XCI+PC92YWwtcGFzc3dvcmQtaW5wdXQ+XG4gICAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKiBAdHlwZSB7SW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIGlucHV0LlxuICAgKiBAcHJvcGVydHkgcGxhY2Vob2xkZXIgLSBUaGUgcGxhY2Vob2xkZXIgdGV4dC5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPElucHV0TWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBJbnB1dE1ldGFkYXRhID0ge30gYXMgSW5wdXRNZXRhZGF0YTtcblxuICBoaWRlUGFzc3dvcmQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKGljb246IEljb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ3Bhc3N3b3JkSW5wdXQnLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxJbnB1dE1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG4gIH1cbn1cbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFHMUQ7OztHQUdHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFO0lBQzlFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRTtDQUNyRSxDQUFDO0FBNEJGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQztRQUhRLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQWlCbkM7Ozs7O1dBS0c7UUFDTSxVQUFLLEdBQTJCLEVBQUUsQ0FBQztRQUU1Qzs7V0FFRztRQUNILGtCQUFhLEdBQWtCLEVBQW1CLENBQUM7UUFFbkQsaUJBQVksR0FBRyxJQUFJLENBQUM7UUEzQmxCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDO0lBMEJELDJFQUEyRTtJQUMzRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDO1lBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFbEgsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ0csQ0FBQztJQUNyQixDQUFDOytHQS9EVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixpSkFyQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJULG15R0FwQlMsbUJBQW1CLDBUQUFFLFFBQVEsOGVBQUUsU0FBUyxvUEFBRSxPQUFPOzs0RkFzQ2hELHNCQUFzQjtrQkF6Q2xDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQ2xEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUO3dEQW1DUSxNQUFNO3NCQUFkLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKSDigJQgYXV0by1yZWdpc3RyYWRvcyBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbFxuICogbmFtZXNwYWNlIGBQYXNzd29yZElucHV0YC4gQ3VicmUgZWwgYXJpYS1sYWJlbCBkZWwgdG9nZ2xlIG1vc3RyYXIvb2N1bHRhci5cbiAqL1xuY29uc3QgUEFTU1dPUkRfSU5QVVRfSTE4TiA9IHtcbiAgZXM6IHsgc2hvd1Bhc3N3b3JkOiAnTW9zdHJhciBjb250cmFzZcOxYScsIGhpZGVQYXNzd29yZDogJ09jdWx0YXIgY29udHJhc2XDsWEnIH0sXG4gIGVuOiB7IHNob3dQYXNzd29yZDogJ1Nob3cgcGFzc3dvcmQnLCBoaWRlUGFzc3dvcmQ6ICdIaWRlIHBhc3N3b3JkJyB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhc3N3b3JkLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIElvbklucHV0LCBJb25CdXR0b24sIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgIDxpb24taW5wdXRcbiAgICAgICAgY2xhc3M9XCJzaWduLWluX19pbnB1dC1wYXNzd29yZFwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJyZXNvbHZlZFByb3BzLmNvbnRyb2xcIlxuICAgICAgICBbdHlwZV09XCJoaWRlUGFzc3dvcmQgPyAncGFzc3dvcmQnIDogJ3RleHQnXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkUHJvcHMucGxhY2Vob2xkZXJcIlxuICAgICAgPjwvaW9uLWlucHV0PlxuICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgY29sb3I9XCJkYXJrXCJcbiAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgKGNsaWNrKT1cImhpZGVQYXNzd29yZCA9ICFoaWRlUGFzc3dvcmRcIlxuICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvZ2dsZUxhYmVsKClcIlxuICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiIWhpZGVQYXNzd29yZFwiXG4gICAgICA+XG4gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiaGlkZVBhc3N3b3JkID8gJ2V5ZS1vZmYtb3V0bGluZScgOiAnZXllLW91dGxpbmUnXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1wYXNzd29yZC1pbnB1dFxuICpcbiAqIEEgcGFzc3dvcmQgaW5wdXQgZmllbGQgd2l0aCBzaG93L2hpZGUgdG9nZ2xlLCBpbnRlZ3JhdGVkIHdpdGggQW5ndWxhciBmb3Jtcy5cbiAqIFN1cHBvcnRzIHByZXNldHMgZm9yIHJldXNhYmxlIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlIFdpdGggcHJlc2V0IChyZWNvbW1lbmRlZCk6XG4gKiA8dmFsLXBhc3N3b3JkLWlucHV0IHByZXNldD1cImZvcm0tZmllbGRcIiBbcHJvcHNdPVwieyBjb250cm9sOiBteUNvbnRyb2wsIHBsYWNlaG9sZGVyOiAnUGFzc3dvcmQnIH1cIj48L3ZhbC1wYXNzd29yZC1pbnB1dD5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgKGJhY2t3YXJkcyBjb21wYXRpYmxlKTpcbiAqIDx2YWwtcGFzc3dvcmQtaW5wdXQgW3Byb3BzXT1cInsgY29udHJvbDogbXlDb250cm9sLCBwbGFjZWhvbGRlcjogJ0VudGVyIHBhc3N3b3JkJyB9XCI+PC92YWwtcGFzc3dvcmQtaW5wdXQ+XG4gKlxuICogQGlucHV0IHByZXNldDogc3RyaW5nIC0gTmFtZSBvZiBwcmVzZXQgdG8gYXBwbHkgKGUuZy4sICdmb3JtLWZpZWxkJywgJ2xvZ2luJylcbiAqIEBpbnB1dCBwcm9wczogSW5wdXRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBpbnB1dCAob3ZlcnJpZGVzIHByZXNldCB2YWx1ZXMpXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXNzd29yZElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKCdQYXNzd29yZElucHV0JykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoJ1Bhc3N3b3JkSW5wdXQnLCBQQVNTV09SRF9JTlBVVF9JMThOKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJlc2V0IG5hbWUgdG8gYXBwbHkuIFByZXNldHMgZGVmaW5lIHJldXNhYmxlIGlucHV0IGNvbmZpZ3VyYXRpb25zXG4gICAqIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgYXQgYXBwIGxldmVsIHZpYSBwcm92aWRlVmFsdGVjaFByZXNldHMoKS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPHZhbC1wYXNzd29yZC1pbnB1dCBwcmVzZXQ9XCJsb2dpblwiIFtwcm9wc109XCJ7IGNvbnRyb2w6IGN0cmwgfVwiPjwvdmFsLXBhc3N3b3JkLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBjb25maWd1cmF0aW9uIG9iamVjdC4gVmFsdWVzIGhlcmUgb3ZlcnJpZGUgcHJlc2V0IHZhbHVlcy5cbiAgICogQHR5cGUge0lucHV0TWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSBjb250cm9sIC0gVGhlIEFuZ3VsYXIgRm9ybUNvbnRyb2wgZm9yIHRoZSBpbnB1dC5cbiAgICogQHByb3BlcnR5IHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRleHQuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxJbnB1dE1ldGFkYXRhPiA9IHt9O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlZCBwcm9wcyBhZnRlciBtZXJnaW5nIHByZXNldCArIGV4cGxpY2l0IHByb3BzLlxuICAgKi9cbiAgcmVzb2x2ZWRQcm9wczogSW5wdXRNZXRhZGF0YSA9IHt9IGFzIElucHV0TWV0YWRhdGE7XG5cbiAgaGlkZVBhc3N3b3JkID0gdHJ1ZTtcblxuICAvKiogQXJpYS1sYWJlbCBkZWwgYm90w7NuIG1vc3RyYXIvb2N1bHRhciBzZWfDum4gZWwgZXN0YWRvIGRlIHZpc2liaWxpZGFkLiAqL1xuICB0b2dnbGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaGlkZVBhc3N3b3JkXG4gICAgICA/IHRoaXMuaTE4bi50KCdzaG93UGFzc3dvcmQnLCAnUGFzc3dvcmRJbnB1dCcpXG4gICAgICA6IHRoaXMuaTE4bi50KCdoaWRlUGFzc3dvcmQnLCAnUGFzc3dvcmRJbnB1dCcpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgcHJlc2V0IGNvbmZpZ3VyYXRpb24gd2l0aCBleHBsaWNpdCBwcm9wcy5cbiAgICogRXhwbGljaXQgcHJvcHMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgcHJlc2V0IHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXQgPyAodGhpcy5wcmVzZXRzLmdldCgncGFzc3dvcmRJbnB1dCcsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPElucHV0TWV0YWRhdGE+KSA6IHt9O1xuXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Blcm1pc3Npb24tc2VsZWN0b3IvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsaXplZExhYmVsIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3Blcm1pc3Npb24tY2F0YWxvZy5zZXJ2aWNlJztcblxuLyoqXG4gKiBVbiByZWN1cnNvIGRlbCBjYXTDoWxvZ28gZGUgcGVybWlzb3MgdGFsIGNvbW8gbG8gY29uc3VtZSBgdmFsLXBlcm1pc3Npb24tc2VsZWN0b3JgLlxuICogTWlzbW8gc2hhcGUgcXVlIGBQZXJtaXNzaW9uUmVzb3VyY2VgIGRlbCBjYXTDoWxvZ28gZGVsIGJhY2tlbmQgKHJlc291cmNlICsgYWN0aW9uc1xuICogKyBsYWJlbCBvcGNpb25hbCkuIEVsIGNvbnN1bWVyIHBhc2EgZWwgY2F0w6Fsb2dvIFlBIGZpbHRyYWRvIChzaW4gYGludGVybmFsYCwgc2luXG4gKiBvdHJhcyBhcHBzKSDigJQgZWwgc2VsZWN0b3Igbm8gZGVjaWRlIHZpc2liaWxpZGFkLCBzb2xvIHJlbmRlcml6YSB5IHNlbGVjY2lvbmEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvblNlbGVjdG9yUmVzb3VyY2Uge1xuICByZXNvdXJjZTogc3RyaW5nO1xuICBhY3Rpb25zOiBzdHJpbmdbXTtcbiAgLyoqIE5vbWJyZSBsZWdpYmxlIGRlbCByZWN1cnNvIChlcy9lbikuIEZhbGxiYWNrIGFsIGByZXNvdXJjZWAgY3J1ZG8uICovXG4gIGxhYmVsPzogTG9jYWxpemVkTGFiZWw7XG4gIHNjb3BlPzogc3RyaW5nO1xuICBhcHBJZD86IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Blcm1pc3Npb24tc2VsZWN0b3IvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsaXplZExhYmVsIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3Blcm1pc3Npb24tY2F0YWxvZy5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgeyBMb2NhbGl6ZWRMYWJlbCB9O1xuXG4vKipcbiAqIFVuIHJlY3Vyc28gZGVsIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyB0YWwgY29tbyBsbyBjb25zdW1lIGB2YWwtcGVybWlzc2lvbi1zZWxlY3RvcmAuXG4gKiBNaXNtbyBzaGFwZSBxdWUgYFBlcm1pc3Npb25SZXNvdXJjZWAgZGVsIGNhdMOhbG9nbyBkZWwgYmFja2VuZCAocmVzb3VyY2UgKyBhY3Rpb25zXG4gKiArIGxhYmVsIG9wY2lvbmFsKS4gRWwgY29uc3VtZXIgcGFzYSBlbCBjYXTDoWxvZ28gWUEgZmlsdHJhZG8gKHNpbiBgaW50ZXJuYWxgLCBzaW5cbiAqIG90cmFzIGFwcHMpIOKAlCBlbCBzZWxlY3RvciBubyBkZWNpZGUgdmlzaWJpbGlkYWQsIHNvbG8gcmVuZGVyaXphIHkgc2VsZWNjaW9uYS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uU2VsZWN0b3JSZXNvdXJjZSB7XG4gIHJlc291cmNlOiBzdHJpbmc7XG4gIGFjdGlvbnM6IHN0cmluZ1tdO1xuICAvKiogTm9tYnJlIGxlZ2libGUgZGVsIHJlY3Vyc28gKGVzL2VuKS4gRmFsbGJhY2sgYWwgYHJlc291cmNlYCBjcnVkby4gKi9cbiAgbGFiZWw/OiBMb2NhbGl6ZWRMYWJlbDtcbiAgc2NvcGU/OiBzdHJpbmc7XG4gIGFwcElkPzogc3RyaW5nO1xufVxuIl19