valtech-components 2.0.985 → 2.0.986

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 (33) hide show
  1. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +97 -14
  2. package/esm2022/lib/components/organisms/account-view/account-view.component.mjs +732 -0
  3. package/esm2022/lib/components/organisms/account-view/account-view.i18n.mjs +96 -0
  4. package/esm2022/lib/components/organisms/account-view/account.routes.mjs +29 -0
  5. package/esm2022/lib/components/organisms/account-view/types.mjs +2 -0
  6. package/esm2022/lib/components/organisms/create-org-modal/create-org-modal.component.mjs +240 -0
  7. package/esm2022/lib/components/organisms/create-org-modal/create-org-modal.i18n.mjs +46 -0
  8. package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +272 -0
  9. package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.i18n.mjs +40 -0
  10. package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +205 -0
  11. package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.i18n.mjs +35 -0
  12. package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.component.mjs +280 -0
  13. package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.i18n.mjs +26 -0
  14. package/esm2022/lib/version.mjs +2 -2
  15. package/esm2022/public-api.mjs +8 -1
  16. package/fesm2022/valtech-components.mjs +2275 -277
  17. package/fesm2022/valtech-components.mjs.map +1 -1
  18. package/lib/components/molecules/date-input/date-input.component.d.ts +9 -0
  19. package/lib/components/organisms/account-view/account-view.component.d.ts +88 -0
  20. package/lib/components/organisms/account-view/account-view.i18n.d.ts +7 -0
  21. package/lib/components/organisms/account-view/account.routes.d.ts +24 -0
  22. package/lib/components/organisms/account-view/types.d.ts +44 -0
  23. package/lib/components/organisms/create-org-modal/create-org-modal.component.d.ts +45 -0
  24. package/lib/components/organisms/create-org-modal/create-org-modal.i18n.d.ts +7 -0
  25. package/lib/components/organisms/delete-account-modal/delete-account-modal.component.d.ts +50 -0
  26. package/lib/components/organisms/delete-account-modal/delete-account-modal.i18n.d.ts +7 -0
  27. package/lib/components/organisms/org-info-sheet/org-info-sheet.component.d.ts +44 -0
  28. package/lib/components/organisms/org-info-sheet/org-info-sheet.i18n.d.ts +12 -0
  29. package/lib/components/organisms/switch-org-modal/switch-org-modal.component.d.ts +47 -0
  30. package/lib/components/organisms/switch-org-modal/switch-org-modal.i18n.d.ts +7 -0
  31. package/lib/version.d.ts +1 -1
  32. package/package.json +1 -1
  33. package/public-api.d.ts +7 -0
@@ -0,0 +1,280 @@
1
+ import { Component, computed, inject, Input, signal } from '@angular/core';
2
+ import { take } from 'rxjs/operators';
3
+ import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonSpinner, IonToolbar, } from '@ionic/angular/standalone';
4
+ import { addIcons } from 'ionicons';
5
+ import { businessOutline, checkmarkCircleOutline } from 'ionicons/icons';
6
+ import { DisplayComponent } from '../../atoms/display/display.component';
7
+ import { TitleComponent } from '../../atoms/title/title.component';
8
+ import { EmptyStateComponent } from '../../molecules/empty-state/empty-state.component';
9
+ import { SearchbarComponent } from '../../molecules/searchbar/searchbar.component';
10
+ import { AuthService } from '../../../services/auth/auth.service';
11
+ import { I18nService } from '../../../services/i18n';
12
+ import { OrgService } from '../../../services/org/org.service';
13
+ import { OrgSwitchService } from '../../../services/auth/org-switch.service';
14
+ import { ValtechErrorService } from '../../../services/errors/valtech-error.service';
15
+ import { SWITCH_ORG_MODAL_I18N } from './switch-org-modal.i18n';
16
+ import * as i0 from "@angular/core";
17
+ const DEFAULT_NAMESPACE = 'Settings.SwitchOrg';
18
+ addIcons({ businessOutline, checkmarkCircleOutline });
19
+ /**
20
+ * `val-switch-org-modal` — modal de cambio de organización activa (organism
21
+ * compartido). Promovido desde `showcase` bajo el proceso de ADR-021. Reusado por
22
+ * la vista Cuenta (y futuras vistas org-aware).
23
+ *
24
+ * Lista las organizaciones del user (vía `OrgService.listMyOrgs`), permite buscar
25
+ * por nombre, y cambia la org activa con `OrgSwitchService.switchTo`. La org
26
+ * actual queda primera y deshabilitada.
27
+ *
28
+ * Abierto vía `ModalService` — recibe `_modalRef` por `componentProps` + callback
29
+ * `onSuccess`. Header canónico (Regla #5): sin `ion-title`, botón Cerrar texto en
30
+ * `slot=end`, título/subtítulo en el body con `val-display`/`val-title`.
31
+ *
32
+ * Auto-registra sus defaults i18n (es/en) si el consumer no proveyó el namespace
33
+ * `Settings.SwitchOrg`.
34
+ */
35
+ export class SwitchOrgModalComponent {
36
+ constructor() {
37
+ this.i18n = inject(I18nService);
38
+ this.auth = inject(AuthService);
39
+ this.orgService = inject(OrgService);
40
+ this.orgSwitch = inject(OrgSwitchService);
41
+ this.errors = inject(ValtechErrorService);
42
+ /** Namespace i18n con que la vista resuelve sus textos. */
43
+ this.i18nNamespace = DEFAULT_NAMESPACE;
44
+ this.orgs = signal([]);
45
+ this.loading = signal(false);
46
+ this.query = signal('');
47
+ this.switchingId = signal(null);
48
+ this.activeOrgId = computed(() => {
49
+ const u = this.auth.user();
50
+ return u?.activeOrgId ?? u?.activeOrg ?? '';
51
+ });
52
+ this.filteredOrgs = computed(() => {
53
+ const q = this.query().trim().toLowerCase();
54
+ const list = this.orgs();
55
+ if (!q)
56
+ return list;
57
+ return list.filter(o => o.name.toLowerCase().includes(q));
58
+ });
59
+ if (!this.i18n.hasNamespace(DEFAULT_NAMESPACE)) {
60
+ this.i18n.registerContent(DEFAULT_NAMESPACE, SWITCH_ORG_MODAL_I18N);
61
+ }
62
+ this.loadOrgs();
63
+ }
64
+ onQueryChange(value) {
65
+ this.query.set(value ?? '');
66
+ }
67
+ async onSelect(org) {
68
+ if (this.switchingId() || org.id === this.activeOrgId())
69
+ return;
70
+ this.switchingId.set(org.id);
71
+ try {
72
+ await this.orgSwitch.switchTo(org.id);
73
+ this.onSuccess?.();
74
+ this.dismiss();
75
+ }
76
+ catch (err) {
77
+ this.errors.handle(err, {
78
+ context: 'account.switchOrg',
79
+ fallbackKey: 'switchError',
80
+ i18nNamespace: this.i18nNamespace,
81
+ });
82
+ this.switchingId.set(null);
83
+ }
84
+ }
85
+ loadOrgs() {
86
+ this.loading.set(true);
87
+ this.orgService
88
+ .listMyOrgs()
89
+ .pipe(take(1))
90
+ .subscribe({
91
+ next: orgs => {
92
+ const activeId = this.activeOrgId();
93
+ this.orgs.set([...orgs].sort((a, b) => (a.id === activeId ? -1 : b.id === activeId ? 1 : 0)));
94
+ this.loading.set(false);
95
+ },
96
+ error: () => this.loading.set(false),
97
+ });
98
+ }
99
+ dismiss() {
100
+ this._modalRef?.dismiss(null, 'cancel');
101
+ }
102
+ t(key) {
103
+ return this.i18n.t(key, this.i18nNamespace);
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchOrgModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SwitchOrgModalComponent, isStandalone: true, selector: "val-switch-org-modal", inputs: { _modalRef: "_modalRef", onSuccess: "onSuccess", i18nNamespace: "i18nNamespace" }, ngImport: i0, template: `
107
+ <ion-header>
108
+ <ion-toolbar>
109
+ <ion-buttons slot="end">
110
+ <ion-button fill="clear" color="dark" (click)="dismiss()">
111
+ <strong>{{ t('close') }}</strong>
112
+ </ion-button>
113
+ </ion-buttons>
114
+ </ion-toolbar>
115
+ </ion-header>
116
+
117
+ <ion-content class="ion-padding">
118
+ <val-display [props]="{ content: t('title'), size: 'small', color: 'dark' }" />
119
+ <val-title
120
+ [props]="{
121
+ content: t('subtitle'),
122
+ size: 'large',
123
+ color: '',
124
+ bold: false,
125
+ }"
126
+ />
127
+
128
+ <div class="switch-section">
129
+ <val-searchbar
130
+ [props]="{
131
+ placeholder: t('searchPlaceholder'),
132
+ debounce: 200,
133
+ showCancelButton: 'never',
134
+ }"
135
+ (filterEvent)="onQueryChange($event)"
136
+ />
137
+
138
+ @if (loading()) {
139
+ <div class="switch-state">
140
+ <ion-spinner name="crescent" />
141
+ </div>
142
+ } @else if (filteredOrgs().length === 0) {
143
+ <val-empty-state
144
+ [props]="{
145
+ variant: 'empty',
146
+ title: t('noResults'),
147
+ icon: 'business-outline',
148
+ }"
149
+ />
150
+ } @else {
151
+ <div class="orgs-list">
152
+ @for (org of filteredOrgs(); track org.id) {
153
+ <button
154
+ type="button"
155
+ class="org-row"
156
+ [class.org-row--active]="org.id === activeOrgId()"
157
+ [disabled]="!!switchingId() || org.id === activeOrgId()"
158
+ (click)="onSelect(org)"
159
+ >
160
+ <div class="org-row__icon">
161
+ <ion-icon name="business-outline" />
162
+ </div>
163
+ <div class="org-row__body">
164
+ <span class="org-row__name">{{ org.name }}</span>
165
+ <span class="org-row__type">{{ org.type }}</span>
166
+ </div>
167
+ <div class="org-row__end">
168
+ @if (switchingId() === org.id) {
169
+ <ion-spinner name="crescent" class="org-row__spinner" />
170
+ } @else if (org.id === activeOrgId()) {
171
+ <span class="org-row__current">{{ t('current') }}</span>
172
+ <ion-icon name="checkmark-circle-outline" class="org-row__check" />
173
+ }
174
+ </div>
175
+ </button>
176
+ }
177
+ </div>
178
+ }
179
+ </div>
180
+ </ion-content>
181
+ `, 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:2px}.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)}\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"] }] }); }
182
+ }
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwitchOrgModalComponent, decorators: [{
184
+ type: Component,
185
+ args: [{ selector: 'val-switch-org-modal', standalone: true, imports: [
186
+ IonHeader,
187
+ IonToolbar,
188
+ IonButtons,
189
+ IonButton,
190
+ IonContent,
191
+ IonSpinner,
192
+ IonIcon,
193
+ DisplayComponent,
194
+ EmptyStateComponent,
195
+ SearchbarComponent,
196
+ TitleComponent,
197
+ ], template: `
198
+ <ion-header>
199
+ <ion-toolbar>
200
+ <ion-buttons slot="end">
201
+ <ion-button fill="clear" color="dark" (click)="dismiss()">
202
+ <strong>{{ t('close') }}</strong>
203
+ </ion-button>
204
+ </ion-buttons>
205
+ </ion-toolbar>
206
+ </ion-header>
207
+
208
+ <ion-content class="ion-padding">
209
+ <val-display [props]="{ content: t('title'), size: 'small', color: 'dark' }" />
210
+ <val-title
211
+ [props]="{
212
+ content: t('subtitle'),
213
+ size: 'large',
214
+ color: '',
215
+ bold: false,
216
+ }"
217
+ />
218
+
219
+ <div class="switch-section">
220
+ <val-searchbar
221
+ [props]="{
222
+ placeholder: t('searchPlaceholder'),
223
+ debounce: 200,
224
+ showCancelButton: 'never',
225
+ }"
226
+ (filterEvent)="onQueryChange($event)"
227
+ />
228
+
229
+ @if (loading()) {
230
+ <div class="switch-state">
231
+ <ion-spinner name="crescent" />
232
+ </div>
233
+ } @else if (filteredOrgs().length === 0) {
234
+ <val-empty-state
235
+ [props]="{
236
+ variant: 'empty',
237
+ title: t('noResults'),
238
+ icon: 'business-outline',
239
+ }"
240
+ />
241
+ } @else {
242
+ <div class="orgs-list">
243
+ @for (org of filteredOrgs(); track org.id) {
244
+ <button
245
+ type="button"
246
+ class="org-row"
247
+ [class.org-row--active]="org.id === activeOrgId()"
248
+ [disabled]="!!switchingId() || org.id === activeOrgId()"
249
+ (click)="onSelect(org)"
250
+ >
251
+ <div class="org-row__icon">
252
+ <ion-icon name="business-outline" />
253
+ </div>
254
+ <div class="org-row__body">
255
+ <span class="org-row__name">{{ org.name }}</span>
256
+ <span class="org-row__type">{{ org.type }}</span>
257
+ </div>
258
+ <div class="org-row__end">
259
+ @if (switchingId() === org.id) {
260
+ <ion-spinner name="crescent" class="org-row__spinner" />
261
+ } @else if (org.id === activeOrgId()) {
262
+ <span class="org-row__current">{{ t('current') }}</span>
263
+ <ion-icon name="checkmark-circle-outline" class="org-row__check" />
264
+ }
265
+ </div>
266
+ </button>
267
+ }
268
+ </div>
269
+ }
270
+ </div>
271
+ </ion-content>
272
+ `, 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:2px}.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)}\n"] }]
273
+ }], ctorParameters: () => [], propDecorators: { _modalRef: [{
274
+ type: Input
275
+ }], onSuccess: [{
276
+ type: Input
277
+ }], i18nNamespace: [{
278
+ type: Input
279
+ }] } });
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N3aXRjaC1vcmctbW9kYWwvc3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixF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LENBQUM7SUFDMUMsQ0FBQztJQUVELENBQUMsQ0FBQyxHQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBckZVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDRLQTlLeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJFVCw2L0NBdkZDLFNBQVMsb0dBQ1QsVUFBVSxtRkFDVixVQUFVLDhFQUNWLFNBQVMsb1BBQ1QsVUFBVSx3S0FDVixVQUFVLHlHQUNWLE9BQU8sMkpBQ1AsZ0JBQWdCLDJFQUNoQixtQkFBbUIsK0VBQ25CLGtCQUFrQiw0SUFDbEIsY0FBYzs7NEZBZ0xMLHVCQUF1QjtrQkE5TG5DLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7cUJBQ2YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkVUO3dEQTJHUSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uQnV0dG9ucyxcbiAgSW9uQ29udGVudCxcbiAgSW9uSGVhZGVyLFxuICBJb25JY29uLFxuICBJb25TcGlubmVyLFxuICBJb25Ub29sYmFyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYnVzaW5lc3NPdXRsaW5lLCBjaGVja21hcmtDaXJjbGVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hiYXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VhcmNoYmFyL3NlYXJjaGJhci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBPcmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL29yZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy90eXBlcyc7XG5pbXBvcnQgeyBPcmdTd2l0Y2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9vcmctc3dpdGNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTV0lUQ0hfT1JHX01PREFMX0kxOE4gfSBmcm9tICcuL3N3aXRjaC1vcmctbW9kYWwuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLlN3aXRjaE9yZyc7XG5cbmFkZEljb25zKHsgYnVzaW5lc3NPdXRsaW5lLCBjaGVja21hcmtDaXJjbGVPdXRsaW5lIH0pO1xuXG4vKipcbiAqIGB2YWwtc3dpdGNoLW9yZy1tb2RhbGAg4oCUIG1vZGFsIGRlIGNhbWJpbyBkZSBvcmdhbml6YWNpw7NuIGFjdGl2YSAob3JnYW5pc21cbiAqIGNvbXBhcnRpZG8pLiBQcm9tb3ZpZG8gZGVzZGUgYHNob3djYXNlYCBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS4gUmV1c2FkbyBwb3JcbiAqIGxhIHZpc3RhIEN1ZW50YSAoeSBmdXR1cmFzIHZpc3RhcyBvcmctYXdhcmUpLlxuICpcbiAqIExpc3RhIGxhcyBvcmdhbml6YWNpb25lcyBkZWwgdXNlciAodsOtYSBgT3JnU2VydmljZS5saXN0TXlPcmdzYCksIHBlcm1pdGUgYnVzY2FyXG4gKiBwb3Igbm9tYnJlLCB5IGNhbWJpYSBsYSBvcmcgYWN0aXZhIGNvbiBgT3JnU3dpdGNoU2VydmljZS5zd2l0Y2hUb2AuIExhIG9yZ1xuICogYWN0dWFsIHF1ZWRhIHByaW1lcmEgeSBkZXNoYWJpbGl0YWRhLlxuICpcbiAqIEFiaWVydG8gdsOtYSBgTW9kYWxTZXJ2aWNlYCDigJQgcmVjaWJlIGBfbW9kYWxSZWZgIHBvciBgY29tcG9uZW50UHJvcHNgICsgY2FsbGJhY2tcbiAqIGBvblN1Y2Nlc3NgLiBIZWFkZXIgY2Fuw7NuaWNvIChSZWdsYSAjNSk6IHNpbiBgaW9uLXRpdGxlYCwgYm90w7NuIENlcnJhciB0ZXh0byBlblxuICogYHNsb3Q9ZW5kYCwgdMOtdHVsby9zdWJ0w610dWxvIGVuIGVsIGJvZHkgY29uIGB2YWwtZGlzcGxheWAvYHZhbC10aXRsZWAuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogYFNldHRpbmdzLlN3aXRjaE9yZ2AuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zd2l0Y2gtb3JnLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkNvbnRlbnQsXG4gICAgSW9uU3Bpbm5lcixcbiAgICBJb25JY29uLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICBTZWFyY2hiYXJDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgY29udGVudDogdCgnc3VidGl0bGUnKSxcbiAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgIGNvbG9yOiAnJyxcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgfVwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLXNlY3Rpb25cIj5cbiAgICAgICAgPHZhbC1zZWFyY2hiYXJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHQoJ3NlYXJjaFBsYWNlaG9sZGVyJyksXG4gICAgICAgICAgICBkZWJvdW5jZTogMjAwLFxuICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogJ25ldmVyJyxcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoZmlsdGVyRXZlbnQpPVwib25RdWVyeUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cblxuICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtc3RhdGVcIj5cbiAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIGlmIChmaWx0ZXJlZE9yZ3MoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICB2YXJpYW50OiAnZW1wdHknLFxuICAgICAgICAgICAgICB0aXRsZTogdCgnbm9SZXN1bHRzJyksXG4gICAgICAgICAgICAgIGljb246ICdidXNpbmVzcy1vdXRsaW5lJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmdzLWxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKG9yZyBvZiBmaWx0ZXJlZE9yZ3MoKTsgdHJhY2sgb3JnLmlkKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm9yZy1yb3dcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5vcmctcm93LS1hY3RpdmVdPVwib3JnLmlkID09PSBhY3RpdmVPcmdJZCgpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFzd2l0Y2hpbmdJZCgpIHx8IG9yZy5pZCA9PT0gYWN0aXZlT3JnSWQoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KG9yZylcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1yb3dfX2ljb25cIj5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnVzaW5lc3Mtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1yb3dfX2JvZHlcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLXJvd19fbmFtZVwiPnt7IG9yZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctcm93X190eXBlXCI+e3sgb3JnLnR5cGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1yb3dfX2VuZFwiPlxuICAgICAgICAgICAgICAgICAgQGlmIChzd2l0Y2hpbmdJZCgpID09PSBvcmcuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGNsYXNzPVwib3JnLXJvd19fc3Bpbm5lclwiIC8+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChvcmcuaWQgPT09IGFjdGl2ZU9yZ0lkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctcm93X19jdXJyZW50XCI+e3sgdCgnY3VycmVudCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGUtb3V0bGluZVwiIGNsYXNzPVwib3JnLXJvd19fY2hlY2tcIiAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnN3aXRjaC1zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgfVxuICAgICAgLnN3aXRjaC1zdGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDA7XG4gICAgICB9XG4gICAgICAub3Jncy1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAub3JnLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLFxuICAgICAgICAgIG9wYWNpdHkgMC4xNXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93Om5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICAgIC5vcmctcm93OmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3ctLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2ljb24ge1xuICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuMDgpO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2JvZHkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX3R5cGUge1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC43KTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19lbmQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fY3VycmVudCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC43KTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19jaGVjayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX3NwaW5uZXIge1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaE9yZ01vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1N3aXRjaCA9IGluamVjdChPcmdTd2l0Y2hTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYCDigJQgcmVmZXJlbmNpYSBwYXJhIGNlcnJhciBkZXNkZSBkZW50cm8uICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgdW4gc3dpdGNoIGV4aXRvc28gKHBhc2FkbyBwb3IgYGNvbXBvbmVudFByb3BzYCkuICovXG4gIEBJbnB1dCgpIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIGNvbiBxdWUgbGEgdmlzdGEgcmVzdWVsdmUgc3VzIHRleHRvcy4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIHJlYWRvbmx5IG9yZ3MgPSBzaWduYWw8T3JnYW5pemF0aW9uW10+KFtdKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHF1ZXJ5ID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc3dpdGNoaW5nSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnSWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMge1xuICAgICAgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7XG4gICAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gICAgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyZWRPcmdzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnF1ZXJ5KCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMub3JncygpO1xuICAgIGlmICghcSkgcmV0dXJuIGxpc3Q7XG4gICAgcmV0dXJuIGxpc3QuZmlsdGVyKG8gPT4gby5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoREVGQVVMVF9OQU1FU1BBQ0UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KERFRkFVTFRfTkFNRVNQQUNFLCBTV0lUQ0hfT1JHX01PREFMX0kxOE4pO1xuICAgIH1cbiAgICB0aGlzLmxvYWRPcmdzKCk7XG4gIH1cblxuICBvblF1ZXJ5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5LnNldCh2YWx1ZSA/PyAnJyk7XG4gIH1cblxuICBhc3luYyBvblNlbGVjdChvcmc6IE9yZ2FuaXphdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnN3aXRjaGluZ0lkKCkgfHwgb3JnLmlkID09PSB0aGlzLmFjdGl2ZU9yZ0lkKCkpIHJldHVybjtcbiAgICB0aGlzLnN3aXRjaGluZ0lkLnNldChvcmcuaWQpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm9yZ1N3aXRjaC5zd2l0Y2hUbyhvcmcuaWQpO1xuICAgICAgdGhpcy5vblN1Y2Nlc3M/LigpO1xuICAgICAgdGhpcy5kaXNtaXNzKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdhY2NvdW50LnN3aXRjaE9yZycsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc3dpdGNoRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmkxOG5OYW1lc3BhY2UsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3dpdGNoaW5nSWQuc2V0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZE9yZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLm9yZ1NlcnZpY2VcbiAgICAgIC5saXN0TXlPcmdzKClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogb3JncyA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgICAgICAgdGhpcy5vcmdzLnNldChbLi4ub3Jnc10uc29ydCgoYSwgYikgPT4gKGEuaWQgPT09IGFjdGl2ZUlkID8gLTEgOiBiLmlkID09PSBhY3RpdmVJZCA/IDEgOiAwKSkpO1xuICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSksXG4gICAgICB9KTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MobnVsbCwgJ2NhbmNlbCcpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Defaults i18n (es/en) embebidos en `val-switch-org-modal`. Auto-registrados en
3
+ * el constructor del componente si el consumer no proveyó el namespace
4
+ * (`Settings.SwitchOrg` por default). SOLO incluye las keys que el modal usa.
5
+ */
6
+ export const SWITCH_ORG_MODAL_I18N = {
7
+ es: {
8
+ title: 'Cambiar de cuenta',
9
+ subtitle: 'Selecciona la organización a la que quieres cambiar.',
10
+ searchPlaceholder: 'Buscar organización...',
11
+ noResults: 'No se encontraron organizaciones.',
12
+ current: 'Actual',
13
+ close: 'Cerrar',
14
+ switchError: 'No se pudo cambiar de organización.',
15
+ },
16
+ en: {
17
+ title: 'Switch account',
18
+ subtitle: 'Select the organization you want to switch to.',
19
+ searchPlaceholder: 'Search organization...',
20
+ noResults: 'No organizations found.',
21
+ current: 'Active',
22
+ close: 'Close',
23
+ switchError: 'Could not switch organization.',
24
+ },
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW9yZy1tb2RhbC5pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zd2l0Y2gtb3JnLW1vZGFsL3N3aXRjaC1vcmctbW9kYWwuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXFCO0lBQ3JELEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsUUFBUSxFQUFFLHNEQUFzRDtRQUNoRSxpQkFBaUIsRUFBRSx3QkFBd0I7UUFDM0MsU0FBUyxFQUFFLG1DQUFtQztRQUM5QyxPQUFPLEVBQUUsUUFBUTtRQUNqQixLQUFLLEVBQUUsUUFBUTtRQUNmLFdBQVcsRUFBRSxxQ0FBcUM7S0FDbkQ7SUFDRCxFQUFFLEVBQUU7UUFDRixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxnREFBZ0Q7UUFDMUQsaUJBQWlCLEVBQUUsd0JBQXdCO1FBQzNDLFNBQVMsRUFBRSx5QkFBeUI7UUFDcEMsT0FBTyxFQUFFLFFBQVE7UUFDakIsS0FBSyxFQUFFLE9BQU87UUFDZCxXQUFXLEVBQUUsZ0NBQWdDO0tBQzlDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuL3R5cGVzJztcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZW1iZWJpZG9zIGVuIGB2YWwtc3dpdGNoLW9yZy1tb2RhbGAuIEF1dG8tcmVnaXN0cmFkb3MgZW5cbiAqIGVsIGNvbnN0cnVjdG9yIGRlbCBjb21wb25lbnRlIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogKGBTZXR0aW5ncy5Td2l0Y2hPcmdgIHBvciBkZWZhdWx0KS4gU09MTyBpbmNsdXllIGxhcyBrZXlzIHF1ZSBlbCBtb2RhbCB1c2EuXG4gKi9cbmV4cG9ydCBjb25zdCBTV0lUQ0hfT1JHX01PREFMX0kxOE46IExhbmd1YWdlc0NvbnRlbnQgPSB7XG4gIGVzOiB7XG4gICAgdGl0bGU6ICdDYW1iaWFyIGRlIGN1ZW50YScsXG4gICAgc3VidGl0bGU6ICdTZWxlY2Npb25hIGxhIG9yZ2FuaXphY2nDs24gYSBsYSBxdWUgcXVpZXJlcyBjYW1iaWFyLicsXG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdCdXNjYXIgb3JnYW5pemFjacOzbi4uLicsXG4gICAgbm9SZXN1bHRzOiAnTm8gc2UgZW5jb250cmFyb24gb3JnYW5pemFjaW9uZXMuJyxcbiAgICBjdXJyZW50OiAnQWN0dWFsJyxcbiAgICBjbG9zZTogJ0NlcnJhcicsXG4gICAgc3dpdGNoRXJyb3I6ICdObyBzZSBwdWRvIGNhbWJpYXIgZGUgb3JnYW5pemFjacOzbi4nLFxuICB9LFxuICBlbjoge1xuICAgIHRpdGxlOiAnU3dpdGNoIGFjY291bnQnLFxuICAgIHN1YnRpdGxlOiAnU2VsZWN0IHRoZSBvcmdhbml6YXRpb24geW91IHdhbnQgdG8gc3dpdGNoIHRvLicsXG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggb3JnYW5pemF0aW9uLi4uJyxcbiAgICBub1Jlc3VsdHM6ICdObyBvcmdhbml6YXRpb25zIGZvdW5kLicsXG4gICAgY3VycmVudDogJ0FjdGl2ZScsXG4gICAgY2xvc2U6ICdDbG9zZScsXG4gICAgc3dpdGNoRXJyb3I6ICdDb3VsZCBub3Qgc3dpdGNoIG9yZ2FuaXphdGlvbi4nLFxuICB9LFxufTtcbiJdfQ==
@@ -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 = '2.0.985';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45ODUnO1xuIl19
5
+ export const VERSION = '2.0.986';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45ODYnO1xuIl19