valtech-components 2.0.987 → 2.0.989
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.
- package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.component.mjs +229 -0
- package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.i18n.mjs +38 -0
- package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +519 -0
- package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.i18n.mjs +54 -0
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +406 -0
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.i18n.mjs +72 -0
- package/esm2022/lib/components/organisms/member-detail-modal/types.mjs +2 -0
- package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +231 -0
- package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.i18n.mjs +27 -0
- package/esm2022/lib/components/organisms/transfer-ownership-modal/types.mjs +2 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +7 -1
- package/fesm2022/valtech-components.mjs +1539 -28
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/edit-org-modal/edit-org-modal.component.d.ts +49 -0
- package/lib/components/organisms/edit-org-modal/edit-org-modal.i18n.d.ts +7 -0
- package/lib/components/organisms/invite-member-modal/invite-member-modal.component.d.ts +74 -0
- package/lib/components/organisms/invite-member-modal/invite-member-modal.i18n.d.ts +7 -0
- package/lib/components/organisms/member-detail-modal/member-detail-modal.component.d.ts +67 -0
- package/lib/components/organisms/member-detail-modal/member-detail-modal.i18n.d.ts +7 -0
- package/lib/components/organisms/member-detail-modal/types.d.ts +17 -0
- package/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.d.ts +44 -0
- package/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.i18n.d.ts +8 -0
- package/lib/components/organisms/transfer-ownership-modal/types.d.ts +11 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
- package/src/lib/services/firebase/firebase-messaging-sw.js +0 -145
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { Component, effect, inject, Input, signal } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
|
4
|
+
import { IonButton, IonButtons, IonContent, IonHeader, IonToolbar } from '@ionic/angular/standalone';
|
|
5
|
+
import { FormComponent } from '../form/form.component';
|
|
6
|
+
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
7
|
+
import { TitleComponent } from '../../atoms/title/title.component';
|
|
8
|
+
import { ComponentStates, InputType } from '../../types';
|
|
9
|
+
import { AuthService } from '../../../services/auth/auth.service';
|
|
10
|
+
import { I18nService } from '../../../services/i18n';
|
|
11
|
+
import { OrgService } from '../../../services/org/org.service';
|
|
12
|
+
import { ToastService } from '../../../services/toast.service';
|
|
13
|
+
import { ValtechErrorService } from '../../../services/errors/valtech-error.service';
|
|
14
|
+
import { EDIT_ORG_MODAL_I18N } from './edit-org-modal.i18n';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
const DEFAULT_NAMESPACE = 'EditOrgModal';
|
|
17
|
+
/**
|
|
18
|
+
* `val-edit-org-modal` — modal de edición de organización (nombre + descripción).
|
|
19
|
+
* Promovido desde `showcase` bajo el proceso de ADR-021. Reusado por la vista de
|
|
20
|
+
* gestión de organización (y futuras vistas org-aware).
|
|
21
|
+
*
|
|
22
|
+
* Edita la org vía `OrgService.updateOrg`. El formulario se construye una vez y se
|
|
23
|
+
* mantiene reactivo a idioma + estado de trabajo vía effects `allowSignalWrites`.
|
|
24
|
+
* Si el consumer no pasa `org`, cae al `activeOrgId` del `AuthService`.
|
|
25
|
+
*
|
|
26
|
+
* Abierto vía `ModalService` — recibe `_modalRef` por `componentProps` + callback
|
|
27
|
+
* `onSuccess(updated)`. Header canónico (Regla #5): sin `ion-title`, botón Cerrar
|
|
28
|
+
* texto en `slot=end`, título/subtítulo en el body con `val-display`/`val-title`.
|
|
29
|
+
*
|
|
30
|
+
* Auto-registra sus defaults i18n (es/en) si el consumer no proveyó el namespace
|
|
31
|
+
* `EditOrgModal`.
|
|
32
|
+
*/
|
|
33
|
+
export class EditOrgModalComponent {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.i18n = inject(I18nService);
|
|
36
|
+
this.orgService = inject(OrgService);
|
|
37
|
+
this.toast = inject(ToastService);
|
|
38
|
+
this.errors = inject(ValtechErrorService);
|
|
39
|
+
this.auth = inject(AuthService);
|
|
40
|
+
/** Organización a editar (pasada por `componentProps`). */
|
|
41
|
+
this.org = null;
|
|
42
|
+
/** Namespace i18n con que la vista resuelve sus textos. */
|
|
43
|
+
this.i18nNamespace = DEFAULT_NAMESPACE;
|
|
44
|
+
this.saving = signal(false);
|
|
45
|
+
if (!this.i18n.hasNamespace(DEFAULT_NAMESPACE)) {
|
|
46
|
+
this.i18n.registerContent(DEFAULT_NAMESPACE, EDIT_ORG_MODAL_I18N);
|
|
47
|
+
}
|
|
48
|
+
this.formMeta = signal(this.buildFormMeta());
|
|
49
|
+
effect(() => {
|
|
50
|
+
this.i18n.lang();
|
|
51
|
+
this.formMeta.set(this.buildFormMeta());
|
|
52
|
+
}, { allowSignalWrites: true });
|
|
53
|
+
effect(() => {
|
|
54
|
+
const w = this.saving();
|
|
55
|
+
this.formMeta.update(m => ({
|
|
56
|
+
...m,
|
|
57
|
+
state: w ? ComponentStates.WORKING : ComponentStates.ENABLED,
|
|
58
|
+
actions: {
|
|
59
|
+
...m.actions,
|
|
60
|
+
state: w ? ComponentStates.WORKING : ComponentStates.ENABLED,
|
|
61
|
+
},
|
|
62
|
+
}));
|
|
63
|
+
}, { allowSignalWrites: true });
|
|
64
|
+
}
|
|
65
|
+
ngOnInit() {
|
|
66
|
+
this.formMeta.set(this.buildFormMeta());
|
|
67
|
+
}
|
|
68
|
+
get activeOrgId() {
|
|
69
|
+
const u = this.auth.user();
|
|
70
|
+
return u?.activeOrgId ?? u?.activeOrg ?? '';
|
|
71
|
+
}
|
|
72
|
+
buildFormMeta() {
|
|
73
|
+
const nameField = {
|
|
74
|
+
token: 'edit-org-name',
|
|
75
|
+
name: 'name',
|
|
76
|
+
label: this.t('nameLabel'),
|
|
77
|
+
hint: '',
|
|
78
|
+
placeholder: this.t('namePlaceholder'),
|
|
79
|
+
type: InputType.TEXT,
|
|
80
|
+
order: 1,
|
|
81
|
+
validators: [Validators.required, Validators.minLength(2), Validators.maxLength(100)],
|
|
82
|
+
errors: {
|
|
83
|
+
required: this.t('nameRequired'),
|
|
84
|
+
minlength: this.t('nameMin'),
|
|
85
|
+
},
|
|
86
|
+
value: this.org?.name ?? '',
|
|
87
|
+
state: ComponentStates.ENABLED,
|
|
88
|
+
};
|
|
89
|
+
const descField = {
|
|
90
|
+
token: 'edit-org-desc',
|
|
91
|
+
name: 'description',
|
|
92
|
+
label: this.t('descriptionLabel'),
|
|
93
|
+
hint: '',
|
|
94
|
+
placeholder: this.t('descriptionPlaceholder'),
|
|
95
|
+
type: InputType.TEXTAREA,
|
|
96
|
+
order: 2,
|
|
97
|
+
validators: [],
|
|
98
|
+
errors: {},
|
|
99
|
+
value: this.org?.description ?? '',
|
|
100
|
+
state: ComponentStates.ENABLED,
|
|
101
|
+
};
|
|
102
|
+
return {
|
|
103
|
+
name: '',
|
|
104
|
+
state: ComponentStates.ENABLED,
|
|
105
|
+
sections: [{ name: '', order: 1, fields: [nameField, descField] }],
|
|
106
|
+
actions: {
|
|
107
|
+
text: this.t('saveCta'),
|
|
108
|
+
color: 'dark',
|
|
109
|
+
type: 'submit',
|
|
110
|
+
fill: 'solid',
|
|
111
|
+
size: 'default',
|
|
112
|
+
shape: 'round',
|
|
113
|
+
expand: 'block',
|
|
114
|
+
state: ComponentStates.ENABLED,
|
|
115
|
+
token: 'edit-org-submit',
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
onFormSubmit(event) {
|
|
120
|
+
const name = event.fields['name'];
|
|
121
|
+
if (!name?.trim()) {
|
|
122
|
+
this.toast.show({
|
|
123
|
+
message: this.t('fillRequired'),
|
|
124
|
+
duration: 3000,
|
|
125
|
+
color: 'dark',
|
|
126
|
+
position: 'top',
|
|
127
|
+
});
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const description = event.fields['description'] ?? '';
|
|
131
|
+
void this.save(name, description);
|
|
132
|
+
}
|
|
133
|
+
async save(name, description) {
|
|
134
|
+
const orgId = this.org?.id ?? this.activeOrgId;
|
|
135
|
+
if (!orgId || this.saving())
|
|
136
|
+
return;
|
|
137
|
+
this.saving.set(true);
|
|
138
|
+
try {
|
|
139
|
+
const updated = await firstValueFrom(this.orgService.updateOrg(orgId, { name, description }));
|
|
140
|
+
this.toast.show({
|
|
141
|
+
message: this.t('saveSuccess'),
|
|
142
|
+
color: 'dark',
|
|
143
|
+
duration: 3500,
|
|
144
|
+
});
|
|
145
|
+
this.onSuccess?.(updated);
|
|
146
|
+
this._modalRef?.dismiss(updated, 'confirm');
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
this.errors.handle(err, {
|
|
150
|
+
context: 'editOrgModal.save',
|
|
151
|
+
fallbackKey: 'saveError',
|
|
152
|
+
i18nNamespace: this.i18nNamespace,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
this.saving.set(false);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
dismiss() {
|
|
160
|
+
this._modalRef?.dismiss(null, 'cancel');
|
|
161
|
+
}
|
|
162
|
+
t(key) {
|
|
163
|
+
return this.i18n.t(key, this.i18nNamespace);
|
|
164
|
+
}
|
|
165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditOrgModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EditOrgModalComponent, isStandalone: true, selector: "val-edit-org-modal", inputs: { _modalRef: "_modalRef", org: "org", onSuccess: "onSuccess", i18nNamespace: "i18nNamespace" }, ngImport: i0, template: `
|
|
167
|
+
<ion-header>
|
|
168
|
+
<ion-toolbar>
|
|
169
|
+
<ion-buttons slot="end">
|
|
170
|
+
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
171
|
+
<strong>{{ t('close') }}</strong>
|
|
172
|
+
</ion-button>
|
|
173
|
+
</ion-buttons>
|
|
174
|
+
</ion-toolbar>
|
|
175
|
+
</ion-header>
|
|
176
|
+
<ion-content class="ion-padding">
|
|
177
|
+
<val-display [props]="{ content: t('title'), size: 'small', color: 'dark' }" />
|
|
178
|
+
<val-title
|
|
179
|
+
[props]="{
|
|
180
|
+
content: t('subtitle'),
|
|
181
|
+
size: 'large',
|
|
182
|
+
color: '',
|
|
183
|
+
bold: false,
|
|
184
|
+
}"
|
|
185
|
+
/>
|
|
186
|
+
<val-form [props]="formMeta()" (onSubmit)="onFormSubmit($event)" />
|
|
187
|
+
</ion-content>
|
|
188
|
+
`, isInline: true, 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: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
|
|
189
|
+
}
|
|
190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditOrgModalComponent, decorators: [{
|
|
191
|
+
type: Component,
|
|
192
|
+
args: [{
|
|
193
|
+
selector: 'val-edit-org-modal',
|
|
194
|
+
standalone: true,
|
|
195
|
+
imports: [IonHeader, IonToolbar, IonButtons, IonButton, IonContent, FormComponent, DisplayComponent, TitleComponent],
|
|
196
|
+
template: `
|
|
197
|
+
<ion-header>
|
|
198
|
+
<ion-toolbar>
|
|
199
|
+
<ion-buttons slot="end">
|
|
200
|
+
<ion-button fill="clear" color="dark" (click)="dismiss()">
|
|
201
|
+
<strong>{{ t('close') }}</strong>
|
|
202
|
+
</ion-button>
|
|
203
|
+
</ion-buttons>
|
|
204
|
+
</ion-toolbar>
|
|
205
|
+
</ion-header>
|
|
206
|
+
<ion-content class="ion-padding">
|
|
207
|
+
<val-display [props]="{ content: t('title'), size: 'small', color: 'dark' }" />
|
|
208
|
+
<val-title
|
|
209
|
+
[props]="{
|
|
210
|
+
content: t('subtitle'),
|
|
211
|
+
size: 'large',
|
|
212
|
+
color: '',
|
|
213
|
+
bold: false,
|
|
214
|
+
}"
|
|
215
|
+
/>
|
|
216
|
+
<val-form [props]="formMeta()" (onSubmit)="onFormSubmit($event)" />
|
|
217
|
+
</ion-content>
|
|
218
|
+
`,
|
|
219
|
+
}]
|
|
220
|
+
}], ctorParameters: () => [], propDecorators: { _modalRef: [{
|
|
221
|
+
type: Input
|
|
222
|
+
}], org: [{
|
|
223
|
+
type: Input
|
|
224
|
+
}], onSuccess: [{
|
|
225
|
+
type: Input
|
|
226
|
+
}], i18nNamespace: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}] } });
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1vcmctbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9lZGl0LW9yZy1tb2RhbC9lZGl0LW9yZy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUU1RCxNQUFN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QXFCO2tCQTVCakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDO29CQUNwSCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQ7aUJBQ0Y7d0RBU1UsU0FBUztzQkFBakIsS0FBSztnQkFHRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkJ1dHRvbnMsIElvbkNvbnRlbnQsIElvbkhlYWRlciwgSW9uVG9vbGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBPcmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL29yZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy90eXBlcyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgRURJVF9PUkdfTU9EQUxfSTE4TiB9IGZyb20gJy4vZWRpdC1vcmctbW9kYWwuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ0VkaXRPcmdNb2RhbCc7XG5cbi8qKlxuICogYHZhbC1lZGl0LW9yZy1tb2RhbGAg4oCUIG1vZGFsIGRlIGVkaWNpw7NuIGRlIG9yZ2FuaXphY2nDs24gKG5vbWJyZSArIGRlc2NyaXBjacOzbikuXG4gKiBQcm9tb3ZpZG8gZGVzZGUgYHNob3djYXNlYCBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS4gUmV1c2FkbyBwb3IgbGEgdmlzdGEgZGVcbiAqIGdlc3Rpw7NuIGRlIG9yZ2FuaXphY2nDs24gKHkgZnV0dXJhcyB2aXN0YXMgb3JnLWF3YXJlKS5cbiAqXG4gKiBFZGl0YSBsYSBvcmcgdsOtYSBgT3JnU2VydmljZS51cGRhdGVPcmdgLiBFbCBmb3JtdWxhcmlvIHNlIGNvbnN0cnV5ZSB1bmEgdmV6IHkgc2VcbiAqIG1hbnRpZW5lIHJlYWN0aXZvIGEgaWRpb21hICsgZXN0YWRvIGRlIHRyYWJham8gdsOtYSBlZmZlY3RzIGBhbGxvd1NpZ25hbFdyaXRlc2AuXG4gKiBTaSBlbCBjb25zdW1lciBubyBwYXNhIGBvcmdgLCBjYWUgYWwgYGFjdGl2ZU9yZ0lkYCBkZWwgYEF1dGhTZXJ2aWNlYC5cbiAqXG4gKiBBYmllcnRvIHbDrWEgYE1vZGFsU2VydmljZWAg4oCUIHJlY2liZSBgX21vZGFsUmVmYCBwb3IgYGNvbXBvbmVudFByb3BzYCArIGNhbGxiYWNrXG4gKiBgb25TdWNjZXNzKHVwZGF0ZWQpYC4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpOiBzaW4gYGlvbi10aXRsZWAsIGJvdMOzbiBDZXJyYXJcbiAqIHRleHRvIGVuIGBzbG90PWVuZGAsIHTDrXR1bG8vc3VidMOtdHVsbyBlbiBlbCBib2R5IGNvbiBgdmFsLWRpc3BsYXlgL2B2YWwtdGl0bGVgLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbCBuYW1lc3BhY2VcbiAqIGBFZGl0T3JnTW9kYWxgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZWRpdC1vcmctbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uSGVhZGVyLCBJb25Ub29sYmFyLCBJb25CdXR0b25zLCBJb25CdXR0b24sIElvbkNvbnRlbnQsIEZvcm1Db21wb25lbnQsIERpc3BsYXlDb21wb25lbnQsIFRpdGxlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ2Nsb3NlJykgfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L2lvbi10b29sYmFyPlxuICAgIDwvaW9uLWhlYWRlcj5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgY29udGVudDogdCgnc3VidGl0bGUnKSxcbiAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgIGNvbG9yOiAnJyxcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgfVwiXG4gICAgICAvPlxuICAgICAgPHZhbC1mb3JtIFtwcm9wc109XCJmb3JtTWV0YSgpXCIgKG9uU3VibWl0KT1cIm9uRm9ybVN1Ym1pdCgkZXZlbnQpXCIgLz5cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0T3JnTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYCDigJQgcmVmZXJlbmNpYSBwYXJhIGNlcnJhciBkZXNkZSBkZW50cm8uICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIE9yZ2FuaXphY2nDs24gYSBlZGl0YXIgKHBhc2FkYSBwb3IgYGNvbXBvbmVudFByb3BzYCkuICovXG4gIEBJbnB1dCgpIG9yZzogT3JnYW5pemF0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgYWN0dWFsaXphciBsYSBvcmcgKHBhc2FkbyBwb3IgYGNvbXBvbmVudFByb3BzYCkuICovXG4gIEBJbnB1dCgpIG9uU3VjY2Vzcz86ICh1cGRhdGVkOiBPcmdhbml6YXRpb24pID0+IHZvaWQ7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIGNvbiBxdWUgbGEgdmlzdGEgcmVzdWVsdmUgc3VzIHRleHRvcy4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2F2aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgZm9ybU1ldGE6IFdyaXRhYmxlU2lnbmFsPEZvcm1NZXRhZGF0YT47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKERFRkFVTFRfTkFNRVNQQUNFKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudChERUZBVUxUX05BTUVTUEFDRSwgRURJVF9PUkdfTU9EQUxfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMuZm9ybU1ldGEgPSBzaWduYWwodGhpcy5idWlsZEZvcm1NZXRhKCkpO1xuXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgICAgICB0aGlzLmZvcm1NZXRhLnNldCh0aGlzLmJ1aWxkRm9ybU1ldGEoKSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdyA9IHRoaXMuc2F2aW5nKCk7XG4gICAgICAgIHRoaXMuZm9ybU1ldGEudXBkYXRlKG0gPT4gKHtcbiAgICAgICAgICAuLi5tLFxuICAgICAgICAgIHN0YXRlOiB3ID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgICAgICBhY3Rpb25zOiB7XG4gICAgICAgICAgICAuLi5tLmFjdGlvbnMsXG4gICAgICAgICAgICBzdGF0ZTogdyA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1NZXRhLnNldCh0aGlzLmJ1aWxkRm9ybU1ldGEoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBhY3RpdmVPcmdJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHtcbiAgICAgIGFjdGl2ZU9yZ0lkPzogc3RyaW5nO1xuICAgICAgYWN0aXZlT3JnPzogc3RyaW5nO1xuICAgIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybU1ldGEoKTogRm9ybU1ldGFkYXRhIHtcbiAgICBjb25zdCBuYW1lRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2VkaXQtb3JnLW5hbWUnLFxuICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnbmFtZUxhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ25hbWVQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFQsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV0sXG4gICAgICBlcnJvcnM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IHRoaXMudCgnbmFtZVJlcXVpcmVkJyksXG4gICAgICAgIG1pbmxlbmd0aDogdGhpcy50KCduYW1lTWluJyksXG4gICAgICB9LFxuICAgICAgdmFsdWU6IHRoaXMub3JnPy5uYW1lID8/ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IGRlc2NGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnZWRpdC1vcmctZGVzYycsXG4gICAgICBuYW1lOiAnZGVzY3JpcHRpb24nLFxuICAgICAgbGFiZWw6IHRoaXMudCgnZGVzY3JpcHRpb25MYWJlbCcpLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCdkZXNjcmlwdGlvblBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVEFSRUEsXG4gICAgICBvcmRlcjogMixcbiAgICAgIHZhbGlkYXRvcnM6IFtdLFxuICAgICAgZXJyb3JzOiB7fSxcbiAgICAgIHZhbHVlOiB0aGlzLm9yZz8uZGVzY3JpcHRpb24gPz8gJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMSwgZmllbGRzOiBbbmFtZUZpZWxkLCBkZXNjRmllbGRdIH1dLFxuICAgICAgYWN0aW9uczoge1xuICAgICAgICB0ZXh0OiB0aGlzLnQoJ3NhdmVDdGEnKSxcbiAgICAgICAgY29sb3I6ICdkYXJrJyBhcyBjb25zdCxcbiAgICAgICAgdHlwZTogJ3N1Ym1pdCcgYXMgY29uc3QsXG4gICAgICAgIGZpbGw6ICdzb2xpZCcgYXMgY29uc3QsXG4gICAgICAgIHNpemU6ICdkZWZhdWx0JyBhcyBjb25zdCxcbiAgICAgICAgc2hhcGU6ICdyb3VuZCcgYXMgY29uc3QsXG4gICAgICAgIGV4cGFuZDogJ2Jsb2NrJyBhcyBjb25zdCxcbiAgICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgICB0b2tlbjogJ2VkaXQtb3JnLXN1Ym1pdCcsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBvbkZvcm1TdWJtaXQoZXZlbnQ6IEZvcm1TdWJtaXQpOiB2b2lkIHtcbiAgICBjb25zdCBuYW1lID0gZXZlbnQuZmllbGRzWyduYW1lJ10gYXMgc3RyaW5nO1xuICAgIGlmICghbmFtZT8udHJpbSgpKSB7XG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnQoJ2ZpbGxSZXF1aXJlZCcpLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gKGV2ZW50LmZpZWxkc1snZGVzY3JpcHRpb24nXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/ICcnO1xuICAgIHZvaWQgdGhpcy5zYXZlKG5hbWUsIGRlc2NyaXB0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2F2ZShuYW1lOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMub3JnPy5pZCA/PyB0aGlzLmFjdGl2ZU9yZ0lkO1xuICAgIGlmICghb3JnSWQgfHwgdGhpcy5zYXZpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuc2F2aW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMub3JnU2VydmljZS51cGRhdGVPcmcob3JnSWQsIHsgbmFtZSwgZGVzY3JpcHRpb24gfSkpO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50KCdzYXZlU3VjY2VzcycpLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBkdXJhdGlvbjogMzUwMCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vblN1Y2Nlc3M/Lih1cGRhdGVkKTtcbiAgICAgIHRoaXMuX21vZGFsUmVmPy5kaXNtaXNzKHVwZGF0ZWQsICdjb25maXJtJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdlZGl0T3JnTW9kYWwuc2F2ZScsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc2F2ZUVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5pMThuTmFtZXNwYWNlLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defaults i18n (es/en) embebidos en `val-edit-org-modal`. Auto-registrados en
|
|
3
|
+
* el constructor del componente si el consumer no proveyó el namespace
|
|
4
|
+
* (`EditOrgModal` por default). SOLO incluye las keys que el modal usa.
|
|
5
|
+
*/
|
|
6
|
+
export const EDIT_ORG_MODAL_I18N = {
|
|
7
|
+
es: {
|
|
8
|
+
title: 'Editar organización',
|
|
9
|
+
subtitle: 'Actualiza el nombre y descripción.',
|
|
10
|
+
nameLabel: 'Nombre',
|
|
11
|
+
namePlaceholder: 'Nombre de la organización',
|
|
12
|
+
nameRequired: 'El nombre es obligatorio.',
|
|
13
|
+
nameMin: 'Mínimo 2 caracteres.',
|
|
14
|
+
descriptionLabel: 'Descripción (opcional)',
|
|
15
|
+
descriptionPlaceholder: 'Describe tu organización',
|
|
16
|
+
saveCta: 'Guardar cambios',
|
|
17
|
+
close: 'Cancelar',
|
|
18
|
+
saveSuccess: 'Organización actualizada.',
|
|
19
|
+
saveError: 'No se pudo guardar. Intenta de nuevo.',
|
|
20
|
+
fillRequired: 'Completa todos los campos requeridos.',
|
|
21
|
+
},
|
|
22
|
+
en: {
|
|
23
|
+
title: 'Edit organization',
|
|
24
|
+
subtitle: 'Update the name and description.',
|
|
25
|
+
nameLabel: 'Name',
|
|
26
|
+
namePlaceholder: 'Organization name',
|
|
27
|
+
nameRequired: 'Name is required.',
|
|
28
|
+
nameMin: 'Minimum 2 characters.',
|
|
29
|
+
descriptionLabel: 'Description (optional)',
|
|
30
|
+
descriptionPlaceholder: 'Describe your organization',
|
|
31
|
+
saveCta: 'Save changes',
|
|
32
|
+
close: 'Cancel',
|
|
33
|
+
saveSuccess: 'Organization updated.',
|
|
34
|
+
saveError: 'Could not save. Please try again.',
|
|
35
|
+
fillRequired: 'Please fill in all required fields.',
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1vcmctbW9kYWwuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZWRpdC1vcmctbW9kYWwvZWRpdC1vcmctbW9kYWwuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXFCO0lBQ25ELEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsUUFBUSxFQUFFLG9DQUFvQztRQUM5QyxTQUFTLEVBQUUsUUFBUTtRQUNuQixlQUFlLEVBQUUsMkJBQTJCO1FBQzVDLFlBQVksRUFBRSwyQkFBMkI7UUFDekMsT0FBTyxFQUFFLHNCQUFzQjtRQUMvQixnQkFBZ0IsRUFBRSx3QkFBd0I7UUFDMUMsc0JBQXNCLEVBQUUsMEJBQTBCO1FBQ2xELE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsS0FBSyxFQUFFLFVBQVU7UUFDakIsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxTQUFTLEVBQUUsdUNBQXVDO1FBQ2xELFlBQVksRUFBRSx1Q0FBdUM7S0FDdEQ7SUFDRCxFQUFFLEVBQUU7UUFDRixLQUFLLEVBQUUsbUJBQW1CO1FBQzFCLFFBQVEsRUFBRSxrQ0FBa0M7UUFDNUMsU0FBUyxFQUFFLE1BQU07UUFDakIsZUFBZSxFQUFFLG1CQUFtQjtRQUNwQyxZQUFZLEVBQUUsbUJBQW1CO1FBQ2pDLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsZ0JBQWdCLEVBQUUsd0JBQXdCO1FBQzFDLHNCQUFzQixFQUFFLDRCQUE0QjtRQUNwRCxPQUFPLEVBQUUsY0FBYztRQUN2QixLQUFLLEVBQUUsUUFBUTtRQUNmLFdBQVcsRUFBRSx1QkFBdUI7UUFDcEMsU0FBUyxFQUFFLG1DQUFtQztRQUM5QyxZQUFZLEVBQUUscUNBQXFDO0tBQ3BEO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuL3R5cGVzJztcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZW1iZWJpZG9zIGVuIGB2YWwtZWRpdC1vcmctbW9kYWxgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuXG4gKiBlbCBjb25zdHJ1Y3RvciBkZWwgY29tcG9uZW50ZSBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbCBuYW1lc3BhY2VcbiAqIChgRWRpdE9yZ01vZGFsYCBwb3IgZGVmYXVsdCkuIFNPTE8gaW5jbHV5ZSBsYXMga2V5cyBxdWUgZWwgbW9kYWwgdXNhLlxuICovXG5leHBvcnQgY29uc3QgRURJVF9PUkdfTU9EQUxfSTE4TjogTGFuZ3VhZ2VzQ29udGVudCA9IHtcbiAgZXM6IHtcbiAgICB0aXRsZTogJ0VkaXRhciBvcmdhbml6YWNpw7NuJyxcbiAgICBzdWJ0aXRsZTogJ0FjdHVhbGl6YSBlbCBub21icmUgeSBkZXNjcmlwY2nDs24uJyxcbiAgICBuYW1lTGFiZWw6ICdOb21icmUnLFxuICAgIG5hbWVQbGFjZWhvbGRlcjogJ05vbWJyZSBkZSBsYSBvcmdhbml6YWNpw7NuJyxcbiAgICBuYW1lUmVxdWlyZWQ6ICdFbCBub21icmUgZXMgb2JsaWdhdG9yaW8uJyxcbiAgICBuYW1lTWluOiAnTcOtbmltbyAyIGNhcmFjdGVyZXMuJyxcbiAgICBkZXNjcmlwdGlvbkxhYmVsOiAnRGVzY3JpcGNpw7NuIChvcGNpb25hbCknLFxuICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6ICdEZXNjcmliZSB0dSBvcmdhbml6YWNpw7NuJyxcbiAgICBzYXZlQ3RhOiAnR3VhcmRhciBjYW1iaW9zJyxcbiAgICBjbG9zZTogJ0NhbmNlbGFyJyxcbiAgICBzYXZlU3VjY2VzczogJ09yZ2FuaXphY2nDs24gYWN0dWFsaXphZGEuJyxcbiAgICBzYXZlRXJyb3I6ICdObyBzZSBwdWRvIGd1YXJkYXIuIEludGVudGEgZGUgbnVldm8uJyxcbiAgICBmaWxsUmVxdWlyZWQ6ICdDb21wbGV0YSB0b2RvcyBsb3MgY2FtcG9zIHJlcXVlcmlkb3MuJyxcbiAgfSxcbiAgZW46IHtcbiAgICB0aXRsZTogJ0VkaXQgb3JnYW5pemF0aW9uJyxcbiAgICBzdWJ0aXRsZTogJ1VwZGF0ZSB0aGUgbmFtZSBhbmQgZGVzY3JpcHRpb24uJyxcbiAgICBuYW1lTGFiZWw6ICdOYW1lJyxcbiAgICBuYW1lUGxhY2Vob2xkZXI6ICdPcmdhbml6YXRpb24gbmFtZScsXG4gICAgbmFtZVJlcXVpcmVkOiAnTmFtZSBpcyByZXF1aXJlZC4nLFxuICAgIG5hbWVNaW46ICdNaW5pbXVtIDIgY2hhcmFjdGVycy4nLFxuICAgIGRlc2NyaXB0aW9uTGFiZWw6ICdEZXNjcmlwdGlvbiAob3B0aW9uYWwpJyxcbiAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiAnRGVzY3JpYmUgeW91ciBvcmdhbml6YXRpb24nLFxuICAgIHNhdmVDdGE6ICdTYXZlIGNoYW5nZXMnLFxuICAgIGNsb3NlOiAnQ2FuY2VsJyxcbiAgICBzYXZlU3VjY2VzczogJ09yZ2FuaXphdGlvbiB1cGRhdGVkLicsXG4gICAgc2F2ZUVycm9yOiAnQ291bGQgbm90IHNhdmUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICBmaWxsUmVxdWlyZWQ6ICdQbGVhc2UgZmlsbCBpbiBhbGwgcmVxdWlyZWQgZmllbGRzLicsXG4gIH0sXG59O1xuIl19
|