valtech-components 4.0.191 → 4.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.
@@ -1,5 +1,6 @@
1
1
  import { Component, computed, inject, Input, signal } from '@angular/core';
2
2
  import { take } from 'rxjs/operators';
3
+ import { LoadMoreComponent } from '../../molecules/load-more/load-more.component';
3
4
  import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonSpinner, IonToolbar, } from '@ionic/angular/standalone';
4
5
  import { addIcons } from 'ionicons';
5
6
  import { addOutline, businessOutline, checkmarkCircleOutline } from 'ionicons/icons';
@@ -48,6 +49,8 @@ export class SwitchOrgModalComponent {
48
49
  this.i18nNamespace = DEFAULT_NAMESPACE;
49
50
  this.orgs = signal([]);
50
51
  this.loading = signal(false);
52
+ this.loadingMore = signal(false);
53
+ this.nextToken = signal(null);
51
54
  this.query = signal('');
52
55
  this.switchingId = signal(null);
53
56
  this.user = computed(() => this.auth.user());
@@ -74,7 +77,14 @@ export class SwitchOrgModalComponent {
74
77
  this.loadOrgs();
75
78
  }
76
79
  onQueryChange(value) {
77
- this.query.set(value ?? '');
80
+ const q = value ?? '';
81
+ if (q === this.query())
82
+ return;
83
+ this.query.set(q);
84
+ // Reset pagination so "load more" continues from page 1
85
+ this.orgs.set([]);
86
+ this.nextToken.set(null);
87
+ this.loadOrgs();
78
88
  }
79
89
  async onSelect(org) {
80
90
  if (this.switchingId() || org.id === this.activeOrgId())
@@ -96,16 +106,41 @@ export class SwitchOrgModalComponent {
96
106
  }
97
107
  loadOrgs() {
98
108
  this.loading.set(true);
99
- const source$ = this.orgService.listMyOrgs();
100
- source$.pipe(take(1)).subscribe({
101
- next: orgs => {
109
+ this.orgService
110
+ .listMyOrgsPage({ limit: 20 })
111
+ .pipe(take(1))
112
+ .subscribe({
113
+ next: resp => {
102
114
  const activeId = this.activeOrgId();
103
- this.orgs.set([...orgs].sort((a, b) => (a.id === activeId ? -1 : b.id === activeId ? 1 : 0)));
115
+ const sorted = [...resp.organizations].sort((a, b) => (a.id === activeId ? -1 : b.id === activeId ? 1 : 0));
116
+ this.orgs.set(sorted);
117
+ this.nextToken.set(resp.nextToken ?? null);
104
118
  this.loading.set(false);
105
119
  },
106
120
  error: () => this.loading.set(false),
107
121
  });
108
122
  }
123
+ loadMore() {
124
+ const token = this.nextToken();
125
+ if (!token || this.loadingMore())
126
+ return;
127
+ this.loadingMore.set(true);
128
+ this.orgService
129
+ .listMyOrgsPage({ limit: 20, nextToken: token })
130
+ .pipe(take(1))
131
+ .subscribe({
132
+ next: resp => {
133
+ const activeId = this.activeOrgId();
134
+ this.orgs.update(current => {
135
+ const merged = [...current, ...resp.organizations];
136
+ return merged.sort((a, b) => (a.id === activeId ? -1 : b.id === activeId ? 1 : 0));
137
+ });
138
+ this.nextToken.set(resp.nextToken ?? null);
139
+ this.loadingMore.set(false);
140
+ },
141
+ error: () => this.loadingMore.set(false),
142
+ });
143
+ }
109
144
  onProfile() {
110
145
  this.dismiss();
111
146
  this.onProfileClick?.();
@@ -214,6 +249,10 @@ export class SwitchOrgModalComponent {
214
249
  </button>
215
250
  }
216
251
  </div>
252
+ <val-load-more
253
+ [props]="{ hasMore: !!nextToken() && !query(), loading: loadingMore() }"
254
+ (loadMore)="loadMore()"
255
+ />
217
256
  }
218
257
  </div>
219
258
 
@@ -226,7 +265,7 @@ export class SwitchOrgModalComponent {
226
265
  </div>
227
266
  }
228
267
  </ion-content>
229
- `, isInline: true, styles: [".switch-section{margin-top:16px;display:flex;flex-direction:column;gap:12px}.switch-state{display:flex;justify-content:center;padding:24px 0}.orgs-list{display:flex;flex-direction:column;gap:8px}.org-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid rgba(var(--ion-color-dark-rgb),.14);border-radius:12px;background:var(--ion-card-background, var(--ion-background-color));cursor:pointer;text-align:left;transition:border-color .15s ease,opacity .15s ease}.org-row:not(:disabled):active{opacity:.7}.org-row:disabled{cursor:default}.org-row--active{border-color:var(--ion-color-dark)}.org-row__icon{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ion-color-dark);background:rgba(var(--ion-color-dark-rgb),.08)}.org-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.org-row__name{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-row__type{font-size:.8rem;color:rgba(var(--ion-color-dark-rgb),.7)}.org-row__end{display:flex;align-items:center;gap:6px;flex-shrink:0}.org-row__current{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:rgba(var(--ion-color-dark-rgb),.7)}.org-row__check{font-size:1.1rem;color:var(--ion-color-dark)}.org-row__spinner{width:18px;height:18px;color:var(--ion-color-dark)}.org-row__icon img{width:100%;height:100%;object-fit:cover;border-radius:50%}.user-strip{display:flex;align-items:center;gap:12px;padding:12px 0 4px;margin-bottom:8px;border-bottom:1px solid rgba(var(--ion-color-dark-rgb),.1)}.user-strip__avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0;overflow:hidden;background:rgba(var(--ion-color-dark-rgb),.1);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:var(--ion-color-dark)}.user-strip__avatar img{width:100%;height:100%;object-fit:cover}.user-strip__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.user-strip__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-strip__email{font-size:.78rem;color:rgba(var(--ion-color-dark-rgb),.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-strip__profile-btn{background:none;border:none;padding:6px 0;font-size:.82rem;font-weight:600;color:var(--ion-color-dark);cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}.new-org-cta{margin-top:16px;padding-top:16px;border-top:1px solid rgba(var(--ion-color-dark-rgb),.1)}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { 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: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["preset", "props"], outputs: ["filterEvent", "focusEvent", "blurEvent"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
268
+ `, isInline: true, styles: [".switch-section{margin-top:16px;display:flex;flex-direction:column;gap:12px}.switch-state{display:flex;justify-content:center;padding:24px 0}.orgs-list{display:flex;flex-direction:column;gap:8px}.org-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid rgba(var(--ion-color-dark-rgb),.14);border-radius:12px;background:var(--ion-card-background, var(--ion-background-color));cursor:pointer;text-align:left;transition:border-color .15s ease,opacity .15s ease}.org-row:not(:disabled):active{opacity:.7}.org-row:disabled{cursor:default}.org-row--active{border-color:var(--ion-color-dark)}.org-row__icon{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ion-color-dark);background:rgba(var(--ion-color-dark-rgb),.08)}.org-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.org-row__name{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-row__type{font-size:.8rem;color:rgba(var(--ion-color-dark-rgb),.7)}.org-row__end{display:flex;align-items:center;gap:6px;flex-shrink:0}.org-row__current{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:rgba(var(--ion-color-dark-rgb),.7)}.org-row__check{font-size:1.1rem;color:var(--ion-color-dark)}.org-row__spinner{width:18px;height:18px;color:var(--ion-color-dark)}.org-row__icon img{width:100%;height:100%;object-fit:cover;border-radius:50%}.user-strip{display:flex;align-items:center;gap:12px;padding:12px 0 4px;margin-bottom:8px;border-bottom:1px solid rgba(var(--ion-color-dark-rgb),.1)}.user-strip__avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0;overflow:hidden;background:rgba(var(--ion-color-dark-rgb),.1);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:var(--ion-color-dark)}.user-strip__avatar img{width:100%;height:100%;object-fit:cover}.user-strip__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.user-strip__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-strip__email{font-size:.78rem;color:rgba(var(--ion-color-dark-rgb),.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-strip__profile-btn{background:none;border:none;padding:6px 0;font-size:.82rem;font-weight:600;color:var(--ion-color-dark);cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}.new-org-cta{margin-top:16px;padding-top:16px;border-top:1px solid rgba(var(--ion-color-dark-rgb),.1)}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { 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: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: LoadMoreComponent, selector: "val-load-more", inputs: ["props"], outputs: ["loadMore"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["preset", "props"], outputs: ["filterEvent", "focusEvent", "blurEvent"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
230
269
  }
231
270
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchOrgModalComponent, decorators: [{
232
271
  type: Component,
@@ -240,6 +279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
240
279
  IonIcon,
241
280
  DisplayComponent,
242
281
  EmptyStateComponent,
282
+ LoadMoreComponent,
243
283
  SearchbarComponent,
244
284
  TitleComponent,
245
285
  ], template: `
@@ -335,6 +375,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
335
375
  </button>
336
376
  }
337
377
  </div>
378
+ <val-load-more
379
+ [props]="{ hasMore: !!nextToken() && !query(), loading: loadingMore() }"
380
+ (loadMore)="loadMore()"
381
+ />
338
382
  }
339
383
  </div>
340
384
 
@@ -359,4 +403,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
359
403
  }], i18nNamespace: [{
360
404
  type: Input
361
405
  }] } });
362
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N3aXRjaC1vcmctbW9kYWwvc3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFB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QkFBdUI7bUdBQXZCLHVCQUF1QiwwT0FwUnhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5R1QscXJGQXJIQyxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSw4RUFDVixTQUFTLG9QQUNULFVBQVUsd0tBQ1YsVUFBVSx5R0FDVixPQUFPLDJKQUNQLGdCQUFnQiwyRUFDaEIsbUJBQW1CLCtFQUNuQixrQkFBa0IsNElBQ2xCLGNBQWM7OzRGQXNSTCx1QkFBdUI7a0JBcFNuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixjQUFjO3FCQUNmLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlHVDt3REFtTFEsU0FBUztzQkFBakIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvblNwaW5uZXIsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBhZGRPdXRsaW5lLCBidXNpbmVzc091dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3R5cGVzJztcbmltcG9ydCB7IE9yZ1N3aXRjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL29yZy1zd2l0Y2guc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFNXSVRDSF9PUkdfTU9EQUxfSTE4TiB9IGZyb20gJy4vc3dpdGNoLW9yZy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuU3dpdGNoT3JnJztcblxuYWRkSWNvbnMoeyBhZGRPdXRsaW5lLCBidXNpbmVzc091dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSk7XG5cbi8qKlxuICogYHZhbC1zd2l0Y2gtb3JnLW1vZGFsYCDigJQgbW9kYWwgZGUgY2FtYmlvIGRlIG9yZ2FuaXphY2nDs24gYWN0aXZhIChvcmdhbmlzbVxuICogY29tcGFydGlkbykuIFByb21vdmlkbyBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZXVzYWRvIHBvclxuICogbGEgdmlzdGEgQ3VlbnRhICh5IGZ1dHVyYXMgdmlzdGFzIG9yZy1hd2FyZSkuXG4gKlxuICogTGlzdGEgbGFzIG9yZ2FuaXphY2lvbmVzIGRlbCB1c2VyICh2w61hIGBPcmdTZXJ2aWNlLmxpc3RNeU9yZ3NgKSwgcGVybWl0ZSBidXNjYXJcbiAqIHBvciBub21icmUsIHkgY2FtYmlhIGxhIG9yZyBhY3RpdmEgY29uIGBPcmdTd2l0Y2hTZXJ2aWNlLnN3aXRjaFRvYC4gTGEgb3JnXG4gKiBhY3R1YWwgcXVlZGEgcHJpbWVyYSB5IGRlc2hhYmlsaXRhZGEuXG4gKlxuICogQWJpZXJ0byB2w61hIGBNb2RhbFNlcnZpY2VgIOKAlCByZWNpYmUgYF9tb2RhbFJlZmAgcG9yIGBjb21wb25lbnRQcm9wc2AgKyBjYWxsYmFja1xuICogYG9uU3VjY2Vzc2AuIEhlYWRlciBjYW7Ds25pY28gKFJlZ2xhICM1KTogc2luIGBpb24tdGl0bGVgLCBib3TDs24gQ2VycmFyIHRleHRvIGVuXG4gKiBgc2xvdD1lbmRgLCB0w610dWxvL3N1YnTDrXR1bG8gZW4gZWwgYm9keSBjb24gYHZhbC1kaXNwbGF5YC9gdmFsLXRpdGxlYC5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWwgbmFtZXNwYWNlXG4gKiBgU2V0dGluZ3MuU3dpdGNoT3JnYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN3aXRjaC1vcmctbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkljb24sXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFNlYXJjaGJhckNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgY29udGVudDogdCgnc3VidGl0bGUnKSxcbiAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgIGNvbG9yOiAnJyxcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgfVwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcF9fYXZhdGFyXCI+XG4gICAgICAgICAgQGlmICh1c2VyKCk/LmF2YXRhclVybCAmJiAhdXNlckF2YXRhckZhaWxlZCgpKSB7XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwidXNlcigpIS5hdmF0YXJVcmwhXCIgW2FsdF09XCJ1c2VyKCk/Lm5hbWUgPz8gJydcIiAoZXJyb3IpPVwidXNlckF2YXRhckZhaWxlZC5zZXQodHJ1ZSlcIiAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW4+e3sgdXNlckluaXRpYWxzKCkgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItc3RyaXBfX2luZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItc3RyaXBfX25hbWVcIj57eyB1c2VyKCk/Lm5hbWUgfHwgdXNlcigpPy5lbWFpbCB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItc3RyaXBfX2VtYWlsXCI+e3sgdXNlcigpPy5lbWFpbCB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ1c2VyLXN0cmlwX19wcm9maWxlLWJ0blwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25Qcm9maWxlKClcIj5cbiAgICAgICAgICB7eyB0KCdwcm9maWxlJykgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1zZWN0aW9uXCI+XG4gICAgICAgIDx2YWwtc2VhcmNoYmFyXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0KCdzZWFyY2hQbGFjZWhvbGRlcicpLFxuICAgICAgICAgICAgZGVib3VuY2U6IDIwMCxcbiAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246ICduZXZlcicsXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGZpbHRlckV2ZW50KT1cIm9uUXVlcnlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLXN0YXRlXCI+XG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSBpZiAoZmlsdGVyZWRPcmdzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPHZhbC1lbXB0eS1zdGF0ZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgdmFyaWFudDogJ2VtcHR5JyxcbiAgICAgICAgICAgICAgdGl0bGU6IHQoJ25vUmVzdWx0cycpLFxuICAgICAgICAgICAgICBpY29uOiAnYnVzaW5lc3Mtb3V0bGluZScsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Jncy1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChvcmcgb2YgZmlsdGVyZWRPcmdzKCk7IHRyYWNrIG9yZy5pZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvcmctcm93XCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mub3JnLXJvdy0tYWN0aXZlXT1cIm9yZy5pZCA9PT0gYWN0aXZlT3JnSWQoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhc3dpdGNoaW5nSWQoKSB8fCBvcmcuaWQgPT09IGFjdGl2ZU9yZ0lkKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChvcmcpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctcm93X19pY29uXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKG9yZy5sb2dvVXJsICYmICFmYWlsZWRMb2dvcygpLmhhcyhvcmcuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJvcmcubG9nb1VybFwiIFthbHRdPVwib3JnLm5hbWVcIiAoZXJyb3IpPVwib25Mb2dvRXJyb3Iob3JnLmlkKVwiIC8+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJidXNpbmVzcy1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLXJvd19fYm9keVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctcm93X19uYW1lXCI+e3sgb3JnLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1yb3dfX3R5cGVcIj57eyBvcmcudHlwZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLXJvd19fZW5kXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKHN3aXRjaGluZ0lkKCkgPT09IG9yZy5pZCkge1xuICAgICAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgY2xhc3M9XCJvcmctcm93X19zcGlubmVyXCIgLz5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKG9yZy5pZCA9PT0gYWN0aXZlT3JnSWQoKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1yb3dfX2N1cnJlbnRcIj57eyB0KCdjdXJyZW50JykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgY2xhc3M9XCJvcmctcm93X19jaGVja1wiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChvbkNyZWF0ZU9yZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LW9yZy1jdGFcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJvbkNyZWF0ZU5ldygpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImFkZC1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgIHt7IHQoJ25ld09yZycpIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuc3dpdGNoLXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG4gICAgICAuc3dpdGNoLXN0YXRlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMDtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvcikpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsXG4gICAgICAgICAgb3BhY2l0eSAwLjE1cyBlYXNlO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3c6bm90KDpkaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3c6ZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgICAub3JnLXJvdy0tYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19faWNvbiB7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4wOCk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fYm9keSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fdHlwZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjcpO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2VuZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19jdXJyZW50IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc0cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjcpO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2NoZWNrIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fc3Bpbm5lciB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19faWNvbiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMCA0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xKTtcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19hdmF0YXIge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuMSk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fYXZhdGFyIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX2luZm8ge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fZW1haWwge1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuNik7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX3Byb2ZpbGUtYnRuIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiA2cHggMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDNweDtcbiAgICAgIH1cbiAgICAgIC5uZXctb3JnLWN0YSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjEpO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaE9yZ01vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1N3aXRjaCA9IGluamVjdChPcmdTd2l0Y2hTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYCDigJQgcmVmZXJlbmNpYSBwYXJhIGNlcnJhciBkZXNkZSBkZW50cm8uICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgdW4gc3dpdGNoIGV4aXRvc28gKHBhc2FkbyBwb3IgYGNvbXBvbmVudFByb3BzYCkuICovXG4gIEBJbnB1dCgpIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIENhbGxiYWNrIGFsIGhhY2VyIGNsaWMgZW4gXCJNaSBwZXJmaWxcIiAocGFzYWRvIHBvciBgY29tcG9uZW50UHJvcHNgKS4gKi9cbiAgQElucHV0KCkgb25Qcm9maWxlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuXG4gIC8qKiBDYWxsYmFjayBhbCBoYWNlciBjbGljIGVuIFwiTnVldmEgb3JnYW5pemFjacOzblwiLiBTaSBlc3TDoSBwcmVzZW50ZSwgbXVlc3RyYSBlbCBDVEEuICovXG4gIEBJbnB1dCgpIG9uQ3JlYXRlT3JnPzogKCkgPT4gdm9pZDtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gY29uIHF1ZSBsYSB2aXN0YSByZXN1ZWx2ZSBzdXMgdGV4dG9zLiAqL1xuICBASW5wdXQoKSBpMThuTmFtZXNwYWNlID0gREVGQVVMVF9OQU1FU1BBQ0U7XG5cbiAgcmVhZG9ubHkgb3JncyA9IHNpZ25hbDxPcmdhbml6YXRpb25bXT4oW10pO1xuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgcXVlcnkgPSBzaWduYWwoJycpO1xuICByZWFkb25seSBzd2l0Y2hpbmdJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXNlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYXV0aC51c2VyKCkpO1xuXG4gIC8qKiBBdmF0YXIgZGUgdXN1YXJpbyBxdWUgZmFsbMOzIGFsIGNhcmdhciDihpIgY2FlIGEgaW5pY2lhbGVzLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXNlckF2YXRhckZhaWxlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqIElEcyBkZSBvcmdzIGN1eW8gbG9nbyBmYWxsw7MgYWwgY2FyZ2FyIOKGkiBjYWVuIGFsIMOtY29ubyBidXNpbmVzcy1vdXRsaW5lLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFpbGVkTG9nb3MgPSBzaWduYWw8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSk7XG5cbiAgcHJvdGVjdGVkIG9uTG9nb0Vycm9yKG9yZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gbmV3IFNldCh0aGlzLmZhaWxlZExvZ29zKCkpO1xuICAgIG5leHQuYWRkKG9yZ0lkKTtcbiAgICB0aGlzLmZhaWxlZExvZ29zLnNldChuZXh0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSB1c2VySW5pdGlhbHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMudXNlcigpPy5uYW1lID8/IHRoaXMudXNlcigpPy5lbWFpbCA/PyAnPyc7XG4gICAgcmV0dXJuIG5hbWUuc2xpY2UoMCwgMikudG9VcHBlckNhc2UoKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnSWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMge1xuICAgICAgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7XG4gICAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gICAgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyZWRPcmdzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnF1ZXJ5KCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMub3JncygpO1xuICAgIGlmICghcSkgcmV0dXJuIGxpc3Q7XG4gICAgcmV0dXJuIGxpc3QuZmlsdGVyKG8gPT4gby5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgU1dJVENIX09SR19NT0RBTF9JMThOKTtcbiAgICB0aGlzLmxvYWRPcmdzKCk7XG4gIH1cblxuICBvblF1ZXJ5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5LnNldCh2YWx1ZSA/PyAnJyk7XG4gIH1cblxuICBhc3luYyBvblNlbGVjdChvcmc6IE9yZ2FuaXphdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnN3aXRjaGluZ0lkKCkgfHwgb3JnLmlkID09PSB0aGlzLmFjdGl2ZU9yZ0lkKCkpIHJldHVybjtcbiAgICB0aGlzLnN3aXRjaGluZ0lkLnNldChvcmcuaWQpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm9yZ1N3aXRjaC5zd2l0Y2hUbyhvcmcuaWQpO1xuICAgICAgdGhpcy5vblN1Y2Nlc3M/LigpO1xuICAgICAgdGhpcy5kaXNtaXNzKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdhY2NvdW50LnN3aXRjaE9yZycsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc3dpdGNoRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmkxOG5OYW1lc3BhY2UsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3dpdGNoaW5nSWQuc2V0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZE9yZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICBjb25zdCBzb3VyY2UkID0gdGhpcy5vcmdTZXJ2aWNlLmxpc3RNeU9yZ3MoKTtcbiAgICBzb3VyY2UkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IG9yZ3MgPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICAgICAgdGhpcy5vcmdzLnNldChbLi4ub3Jnc10uc29ydCgoYSwgYikgPT4gKGEuaWQgPT09IGFjdGl2ZUlkID8gLTEgOiBiLmlkID09PSBhY3RpdmVJZCA/IDEgOiAwKSkpO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSksXG4gICAgfSk7XG4gIH1cblxuICBvblByb2ZpbGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzKCk7XG4gICAgdGhpcy5vblByb2ZpbGVDbGljaz8uKCk7XG4gIH1cblxuICBvbkNyZWF0ZU5ldygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB0aGlzLm9uQ3JlYXRlT3JnPy4oKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MobnVsbCwgJ2NhbmNlbCcpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
406
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N3aXRjaC1vcmctbW9kYWwvc3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2xGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFB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QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGNBQWM7cUJBQ2YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZHVDt3REFtTFEsU0FBUztzQkFBakIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9hZE1vcmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbG9hZC1tb3JlL2xvYWQtbW9yZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvblNwaW5uZXIsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBhZGRPdXRsaW5lLCBidXNpbmVzc091dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3R5cGVzJztcbmltcG9ydCB7IE9yZ1N3aXRjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL29yZy1zd2l0Y2guc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFNXSVRDSF9PUkdfTU9EQUxfSTE4TiB9IGZyb20gJy4vc3dpdGNoLW9yZy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuU3dpdGNoT3JnJztcblxuYWRkSWNvbnMoeyBhZGRPdXRsaW5lLCBidXNpbmVzc091dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSk7XG5cbi8qKlxuICogYHZhbC1zd2l0Y2gtb3JnLW1vZGFsYCDigJQgbW9kYWwgZGUgY2FtYmlvIGRlIG9yZ2FuaXphY2nDs24gYWN0aXZhIChvcmdhbmlzbVxuICogY29tcGFydGlkbykuIFByb21vdmlkbyBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZXVzYWRvIHBvclxuICogbGEgdmlzdGEgQ3VlbnRhICh5IGZ1dHVyYXMgdmlzdGFzIG9yZy1hd2FyZSkuXG4gKlxuICogTGlzdGEgbGFzIG9yZ2FuaXphY2lvbmVzIGRlbCB1c2VyICh2w61hIGBPcmdTZXJ2aWNlLmxpc3RNeU9yZ3NgKSwgcGVybWl0ZSBidXNjYXJcbiAqIHBvciBub21icmUsIHkgY2FtYmlhIGxhIG9yZyBhY3RpdmEgY29uIGBPcmdTd2l0Y2hTZXJ2aWNlLnN3aXRjaFRvYC4gTGEgb3JnXG4gKiBhY3R1YWwgcXVlZGEgcHJpbWVyYSB5IGRlc2hhYmlsaXRhZGEuXG4gKlxuICogQWJpZXJ0byB2w61hIGBNb2RhbFNlcnZpY2VgIOKAlCByZWNpYmUgYF9tb2RhbFJlZmAgcG9yIGBjb21wb25lbnRQcm9wc2AgKyBjYWxsYmFja1xuICogYG9uU3VjY2Vzc2AuIEhlYWRlciBjYW7Ds25pY28gKFJlZ2xhICM1KTogc2luIGBpb24tdGl0bGVgLCBib3TDs24gQ2VycmFyIHRleHRvIGVuXG4gKiBgc2xvdD1lbmRgLCB0w610dWxvL3N1YnTDrXR1bG8gZW4gZWwgYm9keSBjb24gYHZhbC1kaXNwbGF5YC9gdmFsLXRpdGxlYC5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWwgbmFtZXNwYWNlXG4gKiBgU2V0dGluZ3MuU3dpdGNoT3JnYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN3aXRjaC1vcmctbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkljb24sXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIExvYWRNb3JlQ29tcG9uZW50LFxuICAgIFNlYXJjaGJhckNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgY29udGVudDogdCgnc3VidGl0bGUnKSxcbiAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgIGNvbG9yOiAnJyxcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgfVwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcF9fYXZhdGFyXCI+XG4gICAgICAgICAgQGlmICh1c2VyKCk/LmF2YXRhclVybCAmJiAhdXNlckF2YXRhckZhaWxlZCgpKSB7XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwidXNlcigpIS5hdmF0YXJVcmwhXCIgW2FsdF09XCJ1c2VyKCk/Lm5hbWUgPz8gJydcIiAoZXJyb3IpPVwidXNlckF2YXRhckZhaWxlZC5zZXQodHJ1ZSlcIiAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW4+e3sgdXNlckluaXRpYWxzKCkgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItc3RyaXBfX2luZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItc3RyaXBfX25hbWVcIj57eyB1c2VyKCk/Lm5hbWUgfHwgdXNlcigpPy5lbWFpbCB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItc3RyaXBfX2VtYWlsXCI+e3sgdXNlcigpPy5lbWFpbCB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ1c2VyLXN0cmlwX19wcm9maWxlLWJ0blwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25Qcm9maWxlKClcIj5cbiAgICAgICAgICB7eyB0KCdwcm9maWxlJykgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1zZWN0aW9uXCI+XG4gICAgICAgIDx2YWwtc2VhcmNoYmFyXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0KCdzZWFyY2hQbGFjZWhvbGRlcicpLFxuICAgICAgICAgICAgZGVib3VuY2U6IDIwMCxcbiAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246ICduZXZlcicsXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGZpbHRlckV2ZW50KT1cIm9uUXVlcnlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLXN0YXRlXCI+XG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSBpZiAoZmlsdGVyZWRPcmdzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPHZhbC1lbXB0eS1zdGF0ZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgdmFyaWFudDogJ2VtcHR5JyxcbiAgICAgICAgICAgICAgdGl0bGU6IHQoJ25vUmVzdWx0cycpLFxuICAgICAgICAgICAgICBpY29uOiAnYnVzaW5lc3Mtb3V0bGluZScsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Jncy1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChvcmcgb2YgZmlsdGVyZWRPcmdzKCk7IHRyYWNrIG9yZy5pZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvcmctcm93XCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mub3JnLXJvdy0tYWN0aXZlXT1cIm9yZy5pZCA9PT0gYWN0aXZlT3JnSWQoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhc3dpdGNoaW5nSWQoKSB8fCBvcmcuaWQgPT09IGFjdGl2ZU9yZ0lkKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChvcmcpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctcm93X19pY29uXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKG9yZy5sb2dvVXJsICYmICFmYWlsZWRMb2dvcygpLmhhcyhvcmcuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJvcmcubG9nb1VybFwiIFthbHRdPVwib3JnLm5hbWVcIiAoZXJyb3IpPVwib25Mb2dvRXJyb3Iob3JnLmlkKVwiIC8+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJidXNpbmVzcy1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLXJvd19fYm9keVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctcm93X19uYW1lXCI+e3sgb3JnLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1yb3dfX3R5cGVcIj57eyBvcmcudHlwZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLXJvd19fZW5kXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKHN3aXRjaGluZ0lkKCkgPT09IG9yZy5pZCkge1xuICAgICAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgY2xhc3M9XCJvcmctcm93X19zcGlubmVyXCIgLz5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKG9yZy5pZCA9PT0gYWN0aXZlT3JnSWQoKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1yb3dfX2N1cnJlbnRcIj57eyB0KCdjdXJyZW50JykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgY2xhc3M9XCJvcmctcm93X19jaGVja1wiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx2YWwtbG9hZC1tb3JlXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBoYXNNb3JlOiAhIW5leHRUb2tlbigpICYmICFxdWVyeSgpLCBsb2FkaW5nOiBsb2FkaW5nTW9yZSgpIH1cIlxuICAgICAgICAgICAgKGxvYWRNb3JlKT1cImxvYWRNb3JlKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKG9uQ3JlYXRlT3JnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuZXctb3JnLWN0YVwiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImJsb2NrXCIgZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cIm9uQ3JlYXRlTmV3KClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwiYWRkLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAge3sgdCgnbmV3T3JnJykgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvaW9uLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5zd2l0Y2gtc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zd2l0Y2gtc3RhdGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMjRweCAwO1xuICAgICAgfVxuICAgICAgLm9yZ3MtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xNXMgZWFzZSxcbiAgICAgICAgICBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICB9XG4gICAgICAub3JnLXJvdzpub3QoOmRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgICAub3JnLXJvdzpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93LS1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19pY29uIHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjA4KTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19ib2R5IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X190eXBlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuNyk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fZW5kIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2N1cnJlbnQge1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuNyk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fY2hlY2sge1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19zcGlubmVyIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19pY29uIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAwIDRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjEpO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX2F2YXRhciB7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19hdmF0YXIgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9faW5mbyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19lbWFpbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC42KTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fcHJvZmlsZS1idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDZweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4O1xuICAgICAgfVxuICAgICAgLm5ldy1vcmctY3RhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuMSk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoT3JnTW9kYWxDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG4gIHByaXZhdGUgb3JnU3dpdGNoID0gaW5qZWN0KE9yZ1N3aXRjaFNlcnZpY2UpO1xuICBwcml2YXRlIGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcblxuICAvKiogSW55ZWN0YWRvIHBvciBgTW9kYWxTZXJ2aWNlLm9wZW5gIOKAlCByZWZlcmVuY2lhIHBhcmEgY2VycmFyIGRlc2RlIGRlbnRyby4gKi9cbiAgQElucHV0KCkgX21vZGFsUmVmPzogeyBkaXNtaXNzOiAoZGF0YT86IHVua25vd24sIHJvbGU/OiBzdHJpbmcpID0+IHZvaWQgfTtcblxuICAvKiogQ2FsbGJhY2sgdHJhcyB1biBzd2l0Y2ggZXhpdG9zbyAocGFzYWRvIHBvciBgY29tcG9uZW50UHJvcHNgKS4gKi9cbiAgQElucHV0KCkgb25TdWNjZXNzPzogKCkgPT4gdm9pZDtcblxuICAvKiogQ2FsbGJhY2sgYWwgaGFjZXIgY2xpYyBlbiBcIk1pIHBlcmZpbFwiIChwYXNhZG8gcG9yIGBjb21wb25lbnRQcm9wc2ApLiAqL1xuICBASW5wdXQoKSBvblByb2ZpbGVDbGljaz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIENhbGxiYWNrIGFsIGhhY2VyIGNsaWMgZW4gXCJOdWV2YSBvcmdhbml6YWNpw7NuXCIuIFNpIGVzdMOhIHByZXNlbnRlLCBtdWVzdHJhIGVsIENUQS4gKi9cbiAgQElucHV0KCkgb25DcmVhdGVPcmc/OiAoKSA9PiB2b2lkO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biBjb24gcXVlIGxhIHZpc3RhIHJlc3VlbHZlIHN1cyB0ZXh0b3MuICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICByZWFkb25seSBvcmdzID0gc2lnbmFsPE9yZ2FuaXphdGlvbltdPihbXSk7XG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBsb2FkaW5nTW9yZSA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IG5leHRUb2tlbiA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgcXVlcnkgPSBzaWduYWwoJycpO1xuICByZWFkb25seSBzd2l0Y2hpbmdJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXNlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYXV0aC51c2VyKCkpO1xuXG4gIC8qKiBBdmF0YXIgZGUgdXN1YXJpbyBxdWUgZmFsbMOzIGFsIGNhcmdhciDihpIgY2FlIGEgaW5pY2lhbGVzLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXNlckF2YXRhckZhaWxlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqIElEcyBkZSBvcmdzIGN1eW8gbG9nbyBmYWxsw7MgYWwgY2FyZ2FyIOKGkiBjYWVuIGFsIMOtY29ubyBidXNpbmVzcy1vdXRsaW5lLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFpbGVkTG9nb3MgPSBzaWduYWw8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSk7XG5cbiAgcHJvdGVjdGVkIG9uTG9nb0Vycm9yKG9yZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gbmV3IFNldCh0aGlzLmZhaWxlZExvZ29zKCkpO1xuICAgIG5leHQuYWRkKG9yZ0lkKTtcbiAgICB0aGlzLmZhaWxlZExvZ29zLnNldChuZXh0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSB1c2VySW5pdGlhbHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMudXNlcigpPy5uYW1lID8/IHRoaXMudXNlcigpPy5lbWFpbCA/PyAnPyc7XG4gICAgcmV0dXJuIG5hbWUuc2xpY2UoMCwgMikudG9VcHBlckNhc2UoKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnSWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMge1xuICAgICAgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7XG4gICAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gICAgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyZWRPcmdzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnF1ZXJ5KCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMub3JncygpO1xuICAgIGlmICghcSkgcmV0dXJuIGxpc3Q7XG4gICAgcmV0dXJuIGxpc3QuZmlsdGVyKG8gPT4gby5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgU1dJVENIX09SR19NT0RBTF9JMThOKTtcbiAgICB0aGlzLmxvYWRPcmdzKCk7XG4gIH1cblxuICBvblF1ZXJ5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBxID0gdmFsdWUgPz8gJyc7XG4gICAgaWYgKHEgPT09IHRoaXMucXVlcnkoKSkgcmV0dXJuO1xuICAgIHRoaXMucXVlcnkuc2V0KHEpO1xuICAgIC8vIFJlc2V0IHBhZ2luYXRpb24gc28gXCJsb2FkIG1vcmVcIiBjb250aW51ZXMgZnJvbSBwYWdlIDFcbiAgICB0aGlzLm9yZ3Muc2V0KFtdKTtcbiAgICB0aGlzLm5leHRUb2tlbi5zZXQobnVsbCk7XG4gICAgdGhpcy5sb2FkT3JncygpO1xuICB9XG5cbiAgYXN5bmMgb25TZWxlY3Qob3JnOiBPcmdhbml6YXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zd2l0Y2hpbmdJZCgpIHx8IG9yZy5pZCA9PT0gdGhpcy5hY3RpdmVPcmdJZCgpKSByZXR1cm47XG4gICAgdGhpcy5zd2l0Y2hpbmdJZC5zZXQob3JnLmlkKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5vcmdTd2l0Y2guc3dpdGNoVG8ob3JnLmlkKTtcbiAgICAgIHRoaXMub25TdWNjZXNzPy4oKTtcbiAgICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnYWNjb3VudC5zd2l0Y2hPcmcnLFxuICAgICAgICBmYWxsYmFja0tleTogJ3N3aXRjaEVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5pMThuTmFtZXNwYWNlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnN3aXRjaGluZ0lkLnNldChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRPcmdzKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5vcmdTZXJ2aWNlXG4gICAgICAubGlzdE15T3Jnc1BhZ2UoeyBsaW1pdDogMjAgfSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzcCA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgICAgICAgY29uc3Qgc29ydGVkID0gWy4uLnJlc3Aub3JnYW5pemF0aW9uc10uc29ydCgoYSwgYikgPT4gKGEuaWQgPT09IGFjdGl2ZUlkID8gLTEgOiBiLmlkID09PSBhY3RpdmVJZCA/IDEgOiAwKSk7XG4gICAgICAgICAgdGhpcy5vcmdzLnNldChzb3J0ZWQpO1xuICAgICAgICAgIHRoaXMubmV4dFRva2VuLnNldChyZXNwLm5leHRUb2tlbiA/PyBudWxsKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpLFxuICAgICAgfSk7XG4gIH1cblxuICBsb2FkTW9yZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMubmV4dFRva2VuKCk7XG4gICAgaWYgKCF0b2tlbiB8fCB0aGlzLmxvYWRpbmdNb3JlKCkpIHJldHVybjtcbiAgICB0aGlzLmxvYWRpbmdNb3JlLnNldCh0cnVlKTtcbiAgICB0aGlzLm9yZ1NlcnZpY2VcbiAgICAgIC5saXN0TXlPcmdzUGFnZSh7IGxpbWl0OiAyMCwgbmV4dFRva2VuOiB0b2tlbiB9KVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByZXNwID0+IHtcbiAgICAgICAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICAgICAgICB0aGlzLm9yZ3MudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VkID0gWy4uLmN1cnJlbnQsIC4uLnJlc3Aub3JnYW5pemF0aW9uc107XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VkLnNvcnQoKGEsIGIpID0+IChhLmlkID09PSBhY3RpdmVJZCA/IC0xIDogYi5pZCA9PT0gYWN0aXZlSWQgPyAxIDogMCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMubmV4dFRva2VuLnNldChyZXNwLm5leHRUb2tlbiA/PyBudWxsKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmdNb3JlLnNldChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmdNb3JlLnNldChmYWxzZSksXG4gICAgICB9KTtcbiAgfVxuXG4gIG9uUHJvZmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB0aGlzLm9uUHJvZmlsZUNsaWNrPy4oKTtcbiAgfVxuXG4gIG9uQ3JlYXRlTmV3KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIHRoaXMub25DcmVhdGVPcmc/LigpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.191';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xOTEnO1xuIl19
5
+ export const VERSION = '4.0.193';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xOTMnO1xuIl19
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.191';
59
+ const VERSION = '4.0.193';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -53934,6 +53934,8 @@ class SwitchOrgModalComponent {
53934
53934
  this.i18nNamespace = DEFAULT_NAMESPACE$7;
53935
53935
  this.orgs = signal([]);
53936
53936
  this.loading = signal(false);
53937
+ this.loadingMore = signal(false);
53938
+ this.nextToken = signal(null);
53937
53939
  this.query = signal('');
53938
53940
  this.switchingId = signal(null);
53939
53941
  this.user = computed(() => this.auth.user());
@@ -53960,7 +53962,14 @@ class SwitchOrgModalComponent {
53960
53962
  this.loadOrgs();
53961
53963
  }
53962
53964
  onQueryChange(value) {
53963
- this.query.set(value ?? '');
53965
+ const q = value ?? '';
53966
+ if (q === this.query())
53967
+ return;
53968
+ this.query.set(q);
53969
+ // Reset pagination so "load more" continues from page 1
53970
+ this.orgs.set([]);
53971
+ this.nextToken.set(null);
53972
+ this.loadOrgs();
53964
53973
  }
53965
53974
  async onSelect(org) {
53966
53975
  if (this.switchingId() || org.id === this.activeOrgId())
@@ -53982,16 +53991,41 @@ class SwitchOrgModalComponent {
53982
53991
  }
53983
53992
  loadOrgs() {
53984
53993
  this.loading.set(true);
53985
- const source$ = this.orgService.listMyOrgs();
53986
- source$.pipe(take(1)).subscribe({
53987
- next: orgs => {
53994
+ this.orgService
53995
+ .listMyOrgsPage({ limit: 20 })
53996
+ .pipe(take(1))
53997
+ .subscribe({
53998
+ next: resp => {
53988
53999
  const activeId = this.activeOrgId();
53989
- this.orgs.set([...orgs].sort((a, b) => (a.id === activeId ? -1 : b.id === activeId ? 1 : 0)));
54000
+ const sorted = [...resp.organizations].sort((a, b) => (a.id === activeId ? -1 : b.id === activeId ? 1 : 0));
54001
+ this.orgs.set(sorted);
54002
+ this.nextToken.set(resp.nextToken ?? null);
53990
54003
  this.loading.set(false);
53991
54004
  },
53992
54005
  error: () => this.loading.set(false),
53993
54006
  });
53994
54007
  }
54008
+ loadMore() {
54009
+ const token = this.nextToken();
54010
+ if (!token || this.loadingMore())
54011
+ return;
54012
+ this.loadingMore.set(true);
54013
+ this.orgService
54014
+ .listMyOrgsPage({ limit: 20, nextToken: token })
54015
+ .pipe(take(1))
54016
+ .subscribe({
54017
+ next: resp => {
54018
+ const activeId = this.activeOrgId();
54019
+ this.orgs.update(current => {
54020
+ const merged = [...current, ...resp.organizations];
54021
+ return merged.sort((a, b) => (a.id === activeId ? -1 : b.id === activeId ? 1 : 0));
54022
+ });
54023
+ this.nextToken.set(resp.nextToken ?? null);
54024
+ this.loadingMore.set(false);
54025
+ },
54026
+ error: () => this.loadingMore.set(false),
54027
+ });
54028
+ }
53995
54029
  onProfile() {
53996
54030
  this.dismiss();
53997
54031
  this.onProfileClick?.();
@@ -54100,6 +54134,10 @@ class SwitchOrgModalComponent {
54100
54134
  </button>
54101
54135
  }
54102
54136
  </div>
54137
+ <val-load-more
54138
+ [props]="{ hasMore: !!nextToken() && !query(), loading: loadingMore() }"
54139
+ (loadMore)="loadMore()"
54140
+ />
54103
54141
  }
54104
54142
  </div>
54105
54143
 
@@ -54112,7 +54150,7 @@ class SwitchOrgModalComponent {
54112
54150
  </div>
54113
54151
  }
54114
54152
  </ion-content>
54115
- `, isInline: true, styles: [".switch-section{margin-top:16px;display:flex;flex-direction:column;gap:12px}.switch-state{display:flex;justify-content:center;padding:24px 0}.orgs-list{display:flex;flex-direction:column;gap:8px}.org-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid rgba(var(--ion-color-dark-rgb),.14);border-radius:12px;background:var(--ion-card-background, var(--ion-background-color));cursor:pointer;text-align:left;transition:border-color .15s ease,opacity .15s ease}.org-row:not(:disabled):active{opacity:.7}.org-row:disabled{cursor:default}.org-row--active{border-color:var(--ion-color-dark)}.org-row__icon{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ion-color-dark);background:rgba(var(--ion-color-dark-rgb),.08)}.org-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.org-row__name{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-row__type{font-size:.8rem;color:rgba(var(--ion-color-dark-rgb),.7)}.org-row__end{display:flex;align-items:center;gap:6px;flex-shrink:0}.org-row__current{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:rgba(var(--ion-color-dark-rgb),.7)}.org-row__check{font-size:1.1rem;color:var(--ion-color-dark)}.org-row__spinner{width:18px;height:18px;color:var(--ion-color-dark)}.org-row__icon img{width:100%;height:100%;object-fit:cover;border-radius:50%}.user-strip{display:flex;align-items:center;gap:12px;padding:12px 0 4px;margin-bottom:8px;border-bottom:1px solid rgba(var(--ion-color-dark-rgb),.1)}.user-strip__avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0;overflow:hidden;background:rgba(var(--ion-color-dark-rgb),.1);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:var(--ion-color-dark)}.user-strip__avatar img{width:100%;height:100%;object-fit:cover}.user-strip__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.user-strip__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-strip__email{font-size:.78rem;color:rgba(var(--ion-color-dark-rgb),.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-strip__profile-btn{background:none;border:none;padding:6px 0;font-size:.82rem;font-weight:600;color:var(--ion-color-dark);cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}.new-org-cta{margin-top:16px;padding-top:16px;border-top:1px solid rgba(var(--ion-color-dark-rgb),.1)}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { 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: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["preset", "props"], outputs: ["filterEvent", "focusEvent", "blurEvent"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
54153
+ `, isInline: true, styles: [".switch-section{margin-top:16px;display:flex;flex-direction:column;gap:12px}.switch-state{display:flex;justify-content:center;padding:24px 0}.orgs-list{display:flex;flex-direction:column;gap:8px}.org-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid rgba(var(--ion-color-dark-rgb),.14);border-radius:12px;background:var(--ion-card-background, var(--ion-background-color));cursor:pointer;text-align:left;transition:border-color .15s ease,opacity .15s ease}.org-row:not(:disabled):active{opacity:.7}.org-row:disabled{cursor:default}.org-row--active{border-color:var(--ion-color-dark)}.org-row__icon{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ion-color-dark);background:rgba(var(--ion-color-dark-rgb),.08)}.org-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.org-row__name{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.org-row__type{font-size:.8rem;color:rgba(var(--ion-color-dark-rgb),.7)}.org-row__end{display:flex;align-items:center;gap:6px;flex-shrink:0}.org-row__current{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:rgba(var(--ion-color-dark-rgb),.7)}.org-row__check{font-size:1.1rem;color:var(--ion-color-dark)}.org-row__spinner{width:18px;height:18px;color:var(--ion-color-dark)}.org-row__icon img{width:100%;height:100%;object-fit:cover;border-radius:50%}.user-strip{display:flex;align-items:center;gap:12px;padding:12px 0 4px;margin-bottom:8px;border-bottom:1px solid rgba(var(--ion-color-dark-rgb),.1)}.user-strip__avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0;overflow:hidden;background:rgba(var(--ion-color-dark-rgb),.1);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:var(--ion-color-dark)}.user-strip__avatar img{width:100%;height:100%;object-fit:cover}.user-strip__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.user-strip__name{font-weight:600;font-size:.9rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-strip__email{font-size:.78rem;color:rgba(var(--ion-color-dark-rgb),.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-strip__profile-btn{background:none;border:none;padding:6px 0;font-size:.82rem;font-weight:600;color:var(--ion-color-dark);cursor:pointer;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}.new-org-cta{margin-top:16px;padding-top:16px;border-top:1px solid rgba(var(--ion-color-dark-rgb),.1)}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { 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: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: LoadMoreComponent, selector: "val-load-more", inputs: ["props"], outputs: ["loadMore"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["preset", "props"], outputs: ["filterEvent", "focusEvent", "blurEvent"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
54116
54154
  }
54117
54155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchOrgModalComponent, decorators: [{
54118
54156
  type: Component,
@@ -54126,6 +54164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
54126
54164
  IonIcon,
54127
54165
  DisplayComponent,
54128
54166
  EmptyStateComponent,
54167
+ LoadMoreComponent,
54129
54168
  SearchbarComponent,
54130
54169
  TitleComponent,
54131
54170
  ], template: `
@@ -54221,6 +54260,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
54221
54260
  </button>
54222
54261
  }
54223
54262
  </div>
54263
+ <val-load-more
54264
+ [props]="{ hasMore: !!nextToken() && !query(), loading: loadingMore() }"
54265
+ (loadMore)="loadMore()"
54266
+ />
54224
54267
  }
54225
54268
  </div>
54226
54269