valtech-components 2.0.946 → 2.0.948
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/fun-modal/fun-modal.component.mjs +135 -0
- package/esm2022/lib/components/organisms/fun-modal/types.mjs +8 -0
- package/esm2022/lib/components/organisms/share-profile-modal/share-profile-modal.component.mjs +221 -0
- package/esm2022/lib/components/organisms/share-profile-modal/types.mjs +10 -0
- package/esm2022/lib/services/content/index.mjs +1 -1
- package/esm2022/lib/services/content-platform/config.mjs +40 -0
- package/esm2022/lib/services/content-platform/content.service.mjs +138 -0
- package/esm2022/lib/services/content-platform/index.mjs +10 -0
- package/esm2022/lib/services/content-platform/types.mjs +19 -0
- package/esm2022/lib/services/requests/request-firestore.service.mjs +55 -0
- package/esm2022/lib/services/requests/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +10 -1
- package/fesm2022/valtech-components.mjs +597 -13
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/fun-modal/fun-modal.component.d.ts +44 -0
- package/lib/components/organisms/fun-modal/types.d.ts +37 -0
- package/lib/components/organisms/share-profile-modal/share-profile-modal.component.d.ts +49 -0
- package/lib/components/organisms/share-profile-modal/types.d.ts +45 -0
- package/lib/services/content/index.d.ts +1 -1
- package/lib/services/content-platform/config.d.ts +38 -0
- package/lib/services/content-platform/content.service.d.ts +70 -0
- package/lib/services/content-platform/index.d.ts +10 -0
- package/lib/services/content-platform/types.d.ts +117 -0
- package/lib/services/requests/request-firestore.service.d.ts +28 -0
- package/lib/services/requests/types.d.ts +4 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, computed, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { IonModal } from '@ionic/angular/standalone';
|
|
4
|
+
import { ModalShellComponent } from '../../molecules/modal-shell/modal-shell.component';
|
|
5
|
+
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
6
|
+
import { TitleComponent } from '../../atoms/title/title.component';
|
|
7
|
+
import { ButtonGroupComponent } from '../../molecules/button-group/button-group.component';
|
|
8
|
+
import { FUN_MODAL_DEFAULTS } from './types';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
const IONIC_COLORS = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
|
|
11
|
+
/**
|
|
12
|
+
* `val-fun-modal` — modal moderno tipo promo/onboarding: imagen o ilustración
|
|
13
|
+
* arriba, título, cuerpo y botones de acción, con redondeo personalizable.
|
|
14
|
+
* Sigue la Regla #5 (header canónico vía `val-modal-shell`).
|
|
15
|
+
*
|
|
16
|
+
* El padre controla `[isOpen]` y reacciona a `(dismissed)` / `(action)`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```html
|
|
20
|
+
* <val-fun-modal
|
|
21
|
+
* [isOpen]="isOpen()"
|
|
22
|
+
* [props]="{
|
|
23
|
+
* image: '/promo.png',
|
|
24
|
+
* title: '¿Cómo se conecta Lucas con los Salmos?',
|
|
25
|
+
* subtitle: 'Pulsa la referencia cruzada para descubrirlo.',
|
|
26
|
+
* actions: { position: 'center', columned: false, buttons: [
|
|
27
|
+
* { text: 'Probar ahora', color: 'primary', shape: 'round', type: 'button', state: 'ENABLED', token: 'try' }
|
|
28
|
+
* ] }
|
|
29
|
+
* }"
|
|
30
|
+
* (action)="onAction($event)"
|
|
31
|
+
* (dismissed)="isOpen.set(false)"
|
|
32
|
+
* />
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export class FunModalComponent {
|
|
36
|
+
constructor() {
|
|
37
|
+
this._isOpen = false;
|
|
38
|
+
/** Configuración del modal. */
|
|
39
|
+
this.props = {};
|
|
40
|
+
/** Emite cuando el user cierra el modal (botón Cerrar o backdrop). */
|
|
41
|
+
this.dismissed = new EventEmitter();
|
|
42
|
+
/** Emite con el token del botón de acción presionado. */
|
|
43
|
+
this.action = new EventEmitter();
|
|
44
|
+
this.config = computed(() => ({
|
|
45
|
+
...FUN_MODAL_DEFAULTS,
|
|
46
|
+
...this.props,
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
/** Controla la visibilidad del modal. */
|
|
50
|
+
set isOpen(value) {
|
|
51
|
+
this._isOpen = value;
|
|
52
|
+
}
|
|
53
|
+
get isOpen() {
|
|
54
|
+
return this._isOpen;
|
|
55
|
+
}
|
|
56
|
+
getBackground() {
|
|
57
|
+
const color = this.config().backgroundColor;
|
|
58
|
+
if (!color)
|
|
59
|
+
return null;
|
|
60
|
+
return IONIC_COLORS.includes(color) ? `var(--ion-color-${color})` : color;
|
|
61
|
+
}
|
|
62
|
+
close() {
|
|
63
|
+
this._isOpen = false;
|
|
64
|
+
this.dismissed.emit();
|
|
65
|
+
}
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FunModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FunModalComponent, isStandalone: true, selector: "val-fun-modal", inputs: { isOpen: "isOpen", props: "props" }, outputs: { dismissed: "dismissed", action: "action" }, ngImport: i0, template: `
|
|
68
|
+
<ion-modal [isOpen]="isOpen" [style.--border-radius.px]="config().borderRadius" (didDismiss)="close()">
|
|
69
|
+
<ng-template>
|
|
70
|
+
<val-modal-shell [title]="''" [closeLabel]="config().closeLabel || ''" (close)="close()">
|
|
71
|
+
<div class="fun-modal" [style.background]="getBackground()">
|
|
72
|
+
@if (config().image) {
|
|
73
|
+
<div class="fun-modal__media" [style.border-radius.px]="config().imageRadius">
|
|
74
|
+
<img [src]="config().image" [alt]="config().imageAlt || config().title" />
|
|
75
|
+
</div>
|
|
76
|
+
} @else if (config().emoji) {
|
|
77
|
+
<div class="fun-modal__emoji">{{ config().emoji }}</div>
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
<val-display [props]="{ content: config().title, size: 'small', color: 'dark' }" />
|
|
81
|
+
@if (config().subtitle) {
|
|
82
|
+
<val-title [props]="{ content: config().subtitle, size: 'large', color: '', bold: false }" />
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@if (config().actions; as actions) {
|
|
86
|
+
<div class="fun-modal__actions">
|
|
87
|
+
<val-button-group [props]="actions" (onClick)="action.emit($event)"></val-button-group>
|
|
88
|
+
</div>
|
|
89
|
+
}
|
|
90
|
+
</div>
|
|
91
|
+
</val-modal-shell>
|
|
92
|
+
</ng-template>
|
|
93
|
+
</ion-modal>
|
|
94
|
+
`, isInline: true, styles: [".fun-modal{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:.5rem 0;text-align:center}.fun-modal__media{width:100%;overflow:hidden;aspect-ratio:16/10;background:var(--ion-color-light, #f4f5f8)}.fun-modal__media img{width:100%;height:100%;object-fit:cover;display:block}.fun-modal__emoji{font-size:3.5rem;line-height:1}.fun-modal__actions{width:100%;margin-top:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: ModalShellComponent, selector: "val-modal-shell", inputs: ["title", "subtitle", "closeLabel", "showClose"], outputs: ["close"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FunModalComponent, decorators: [{
|
|
97
|
+
type: Component,
|
|
98
|
+
args: [{ selector: 'val-fun-modal', standalone: true, imports: [CommonModule, IonModal, ModalShellComponent, DisplayComponent, TitleComponent, ButtonGroupComponent], template: `
|
|
99
|
+
<ion-modal [isOpen]="isOpen" [style.--border-radius.px]="config().borderRadius" (didDismiss)="close()">
|
|
100
|
+
<ng-template>
|
|
101
|
+
<val-modal-shell [title]="''" [closeLabel]="config().closeLabel || ''" (close)="close()">
|
|
102
|
+
<div class="fun-modal" [style.background]="getBackground()">
|
|
103
|
+
@if (config().image) {
|
|
104
|
+
<div class="fun-modal__media" [style.border-radius.px]="config().imageRadius">
|
|
105
|
+
<img [src]="config().image" [alt]="config().imageAlt || config().title" />
|
|
106
|
+
</div>
|
|
107
|
+
} @else if (config().emoji) {
|
|
108
|
+
<div class="fun-modal__emoji">{{ config().emoji }}</div>
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
<val-display [props]="{ content: config().title, size: 'small', color: 'dark' }" />
|
|
112
|
+
@if (config().subtitle) {
|
|
113
|
+
<val-title [props]="{ content: config().subtitle, size: 'large', color: '', bold: false }" />
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@if (config().actions; as actions) {
|
|
117
|
+
<div class="fun-modal__actions">
|
|
118
|
+
<val-button-group [props]="actions" (onClick)="action.emit($event)"></val-button-group>
|
|
119
|
+
</div>
|
|
120
|
+
}
|
|
121
|
+
</div>
|
|
122
|
+
</val-modal-shell>
|
|
123
|
+
</ng-template>
|
|
124
|
+
</ion-modal>
|
|
125
|
+
`, styles: [".fun-modal{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:.5rem 0;text-align:center}.fun-modal__media{width:100%;overflow:hidden;aspect-ratio:16/10;background:var(--ion-color-light, #f4f5f8)}.fun-modal__media img{width:100%;height:100%;object-fit:cover;display:block}.fun-modal__emoji{font-size:3.5rem;line-height:1}.fun-modal__actions{width:100%;margin-top:.25rem}\n"] }]
|
|
126
|
+
}], propDecorators: { isOpen: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], props: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], dismissed: [{
|
|
131
|
+
type: Output
|
|
132
|
+
}], action: [{
|
|
133
|
+
type: Output
|
|
134
|
+
}] } });
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZnVuLW1vZGFsL2Z1bi1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0YsT0FBTyxFQUFvQixrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFL0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXJIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQW1DSCxNQUFNLE9BQU8saUJBQWlCO0lBbEM5QjtRQW1DVSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBV3hCLCtCQUErQjtRQUN0QixVQUFLLEdBQThCLEVBQUUsQ0FBQztRQUUvQyxzRUFBc0U7UUFDNUQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDL0MseURBQXlEO1FBQy9DLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTlDLFdBQU0sR0FBRyxRQUFRLENBQ2YsR0FBRyxFQUFFLENBQ0gsQ0FBQztZQUNDLEdBQUcsa0JBQWtCO1lBQ3JCLEdBQUcsSUFBSSxDQUFDLEtBQUs7U0FDZCxDQUFpRCxDQUNyRCxDQUFDO0tBWUg7SUFuQ0MseUNBQXlDO0lBQ3pDLElBQ0ksTUFBTSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBa0JELGFBQWE7UUFDWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEIsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1RSxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FyQ1UsaUJBQWlCO21HQUFqQixpQkFBaUIsOEtBOUJsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJULG1kQTVCUyxZQUFZLCtCQUFFLFFBQVEsc0RBQUUsbUJBQW1CLDBJQUFFLGdCQUFnQiwyRUFBRSxjQUFjLHlFQUFFLG9CQUFvQjs7NEZBK0JsRyxpQkFBaUI7a0JBbEM3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsQ0FBQyxZQUNwRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzhCQVFHLE1BQU07c0JBRFQsS0FBSztnQkFTRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0ksU0FBUztzQkFBbEIsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25Nb2RhbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgeyBNb2RhbFNoZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21vZGFsLXNoZWxsL21vZGFsLXNoZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGdW5Nb2RhbE1ldGFkYXRhLCBGVU5fTU9EQUxfREVGQVVMVFMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgSU9OSUNfQ09MT1JTID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICd0ZXJ0aWFyeScsICdzdWNjZXNzJywgJ3dhcm5pbmcnLCAnZGFuZ2VyJywgJ2xpZ2h0JywgJ21lZGl1bScsICdkYXJrJ107XG5cbi8qKlxuICogYHZhbC1mdW4tbW9kYWxgIOKAlCBtb2RhbCBtb2Rlcm5vIHRpcG8gcHJvbW8vb25ib2FyZGluZzogaW1hZ2VuIG8gaWx1c3RyYWNpw7NuXG4gKiBhcnJpYmEsIHTDrXR1bG8sIGN1ZXJwbyB5IGJvdG9uZXMgZGUgYWNjacOzbiwgY29uIHJlZG9uZGVvIHBlcnNvbmFsaXphYmxlLlxuICogU2lndWUgbGEgUmVnbGEgIzUgKGhlYWRlciBjYW7Ds25pY28gdsOtYSBgdmFsLW1vZGFsLXNoZWxsYCkuXG4gKlxuICogRWwgcGFkcmUgY29udHJvbGEgYFtpc09wZW5dYCB5IHJlYWNjaW9uYSBhIGAoZGlzbWlzc2VkKWAgLyBgKGFjdGlvbilgLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWZ1bi1tb2RhbFxuICogICBbaXNPcGVuXT1cImlzT3BlbigpXCJcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBpbWFnZTogJy9wcm9tby5wbmcnLFxuICogICAgIHRpdGxlOiAnwr9Dw7NtbyBzZSBjb25lY3RhIEx1Y2FzIGNvbiBsb3MgU2FsbW9zPycsXG4gKiAgICAgc3VidGl0bGU6ICdQdWxzYSBsYSByZWZlcmVuY2lhIGNydXphZGEgcGFyYSBkZXNjdWJyaXJsby4nLFxuICogICAgIGFjdGlvbnM6IHsgcG9zaXRpb246ICdjZW50ZXInLCBjb2x1bW5lZDogZmFsc2UsIGJ1dHRvbnM6IFtcbiAqICAgICAgIHsgdGV4dDogJ1Byb2JhciBhaG9yYScsIGNvbG9yOiAncHJpbWFyeScsIHNoYXBlOiAncm91bmQnLCB0eXBlOiAnYnV0dG9uJywgc3RhdGU6ICdFTkFCTEVEJywgdG9rZW46ICd0cnknIH1cbiAqICAgICBdIH1cbiAqICAgfVwiXG4gKiAgIChhY3Rpb24pPVwib25BY3Rpb24oJGV2ZW50KVwiXG4gKiAgIChkaXNtaXNzZWQpPVwiaXNPcGVuLnNldChmYWxzZSlcIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZnVuLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uTW9kYWwsIE1vZGFsU2hlbGxDb21wb25lbnQsIERpc3BsYXlDb21wb25lbnQsIFRpdGxlQ29tcG9uZW50LCBCdXR0b25Hcm91cENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1tb2RhbCBbaXNPcGVuXT1cImlzT3BlblwiIFtzdHlsZS4tLWJvcmRlci1yYWRpdXMucHhdPVwiY29uZmlnKCkuYm9yZGVyUmFkaXVzXCIgKGRpZERpc21pc3MpPVwiY2xvc2UoKVwiPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8dmFsLW1vZGFsLXNoZWxsIFt0aXRsZV09XCInJ1wiIFtjbG9zZUxhYmVsXT1cImNvbmZpZygpLmNsb3NlTGFiZWwgfHwgJydcIiAoY2xvc2UpPVwiY2xvc2UoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdW4tbW9kYWxcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJnZXRCYWNrZ3JvdW5kKClcIj5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnKCkuaW1hZ2UpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ1bi1tb2RhbF9fbWVkaWFcIiBbc3R5bGUuYm9yZGVyLXJhZGl1cy5weF09XCJjb25maWcoKS5pbWFnZVJhZGl1c1wiPlxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjb25maWcoKS5pbWFnZVwiIFthbHRdPVwiY29uZmlnKCkuaW1hZ2VBbHQgfHwgY29uZmlnKCkudGl0bGVcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKGNvbmZpZygpLmVtb2ppKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdW4tbW9kYWxfX2Vtb2ppXCI+e3sgY29uZmlnKCkuZW1vamkgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IGNvbmZpZygpLnRpdGxlLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICAgICAgQGlmIChjb25maWcoKS5zdWJ0aXRsZSkge1xuICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGNvbmZpZygpLnN1YnRpdGxlLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGNvbmZpZygpLmFjdGlvbnM7IGFzIGFjdGlvbnMpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ1bi1tb2RhbF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uLWdyb3VwIFtwcm9wc109XCJhY3Rpb25zXCIgKG9uQ2xpY2spPVwiYWN0aW9uLmVtaXQoJGV2ZW50KVwiPjwvdmFsLWJ1dHRvbi1ncm91cD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdmFsLW1vZGFsLXNoZWxsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2lvbi1tb2RhbD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZnVuLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZ1bk1vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBfaXNPcGVuID0gZmFsc2U7XG5cbiAgLyoqIENvbnRyb2xhIGxhIHZpc2liaWxpZGFkIGRlbCBtb2RhbC4gKi9cbiAgQElucHV0KClcbiAgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzT3BlbiA9IHZhbHVlO1xuICB9XG4gIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgfVxuXG4gIC8qKiBDb25maWd1cmFjacOzbiBkZWwgbW9kYWwuICovXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPEZ1bk1vZGFsTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqIEVtaXRlIGN1YW5kbyBlbCB1c2VyIGNpZXJyYSBlbCBtb2RhbCAoYm90w7NuIENlcnJhciBvIGJhY2tkcm9wKS4gKi9cbiAgQE91dHB1dCgpIGRpc21pc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXRlIGNvbiBlbCB0b2tlbiBkZWwgYm90w7NuIGRlIGFjY2nDs24gcHJlc2lvbmFkby4gKi9cbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbmZpZyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICAoe1xuICAgICAgICAuLi5GVU5fTU9EQUxfREVGQVVMVFMsXG4gICAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICB9KSBhcyBGdW5Nb2RhbE1ldGFkYXRhICYgdHlwZW9mIEZVTl9NT0RBTF9ERUZBVUxUU1xuICApO1xuXG4gIGdldEJhY2tncm91bmQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLmNvbmZpZygpLmJhY2tncm91bmRDb2xvcjtcbiAgICBpZiAoIWNvbG9yKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gSU9OSUNfQ09MT1JTLmluY2x1ZGVzKGNvbG9yKSA/IGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYCA6IGNvbG9yO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5faXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kaXNtaXNzZWQuZW1pdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default values for FunModalMetadata.
|
|
3
|
+
*/
|
|
4
|
+
export const FUN_MODAL_DEFAULTS = {
|
|
5
|
+
borderRadius: 28,
|
|
6
|
+
imageRadius: 16,
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Z1bi1tb2RhbC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ0E7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FDN0I7SUFDRSxZQUFZLEVBQUUsRUFBRTtJQUNoQixXQUFXLEVBQUUsRUFBRTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnV0dG9uR3JvdXBNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvdHlwZXMnO1xuXG4vKipcbiAqIE1ldGFkYXRhIGZvciB2YWwtZnVuLW1vZGFsLlxuICpcbiAqIE1vZGFsIG1vZGVybm8gdGlwbyBwcm9tby9vbmJvYXJkaW5nOiBpbWFnZW4gbyBpbHVzdHJhY2nDs24gYXJyaWJhLCB0w610dWxvLFxuICogY3VlcnBvIHkgYm90b25lcyBkZSBhY2Npw7NuLCBjb24gcmVkb25kZW8gcGVyc29uYWxpemFibGUuIFNpZ3VlIGxhIFJlZ2xhICM1XG4gKiAoaGVhZGVyIGNhbsOzbmljbyB2w61hIGB2YWwtbW9kYWwtc2hlbGxgKS5cbiAqXG4gKiBDb250ZW50LWRyaXZlbiDigJQgcGFzYXIgc3RyaW5ncyB5YSByZXN1ZWx0b3MuIEJvdG9uZXMgcmV1c2FuXG4gKiBgQnV0dG9uR3JvdXBNZXRhZGF0YWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuTW9kYWxNZXRhZGF0YSB7XG4gIC8qKiBJbWFnZW4gLyBpbHVzdHJhY2nDs24gbW9zdHJhZGEgYXJyaWJhIGRlbCB0w610dWxvICovXG4gIGltYWdlPzogc3RyaW5nO1xuICAvKiogQWx0IGRlIGxhIGltYWdlbiAqL1xuICBpbWFnZUFsdD86IHN0cmluZztcbiAgLyoqIEVtb2ppIGRlY29yYXRpdm8gKGFsdGVybmF0aXZhIGEgbGEgaW1hZ2VuKSAqL1xuICBlbW9qaT86IHN0cmluZztcblxuICAvKiogVMOtdHVsbyBwcmluY2lwYWwgKHZhbC1kaXNwbGF5KSAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKiogQ3VlcnBvIC8gc3VidMOtdHVsbyAodmFsLXRpdGxlKSAqL1xuICBzdWJ0aXRsZT86IHN0cmluZztcblxuICAvKiogQm90b25lcyBkZSBhY2Npw7NuIChyZXVzYSB2YWwtYnV0dG9uLWdyb3VwKSAqL1xuICBhY3Rpb25zPzogQnV0dG9uR3JvdXBNZXRhZGF0YTtcblxuICAvKiogUmVkb25kZW8gZGVsIG1vZGFsIGVuIHB4LiBEZWZhdWx0OiAyOCAqL1xuICBib3JkZXJSYWRpdXM/OiBudW1iZXI7XG4gIC8qKiBSZWRvbmRlbyBkZSBsYSBpbWFnZW4gZW4gcHguIERlZmF1bHQ6IDE2ICovXG4gIGltYWdlUmFkaXVzPzogbnVtYmVyO1xuICAvKiogQ29sb3IgZGUgZm9uZG8gZGVsIG1vZGFsIChJb25pYyBjb2xvciBvIENTUykuIERlZmF1bHQ6IHN1cmZhY2UgKi9cbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAvKiogTGFiZWwgZGVsIGJvdMOzbiBkZSBjaWVycmUuIERlZmF1bHQ6IGkxOG4gYF9nbG9iYWwuY2xvc2VgICovXG4gIGNsb3NlTGFiZWw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmYXVsdCB2YWx1ZXMgZm9yIEZ1bk1vZGFsTWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBjb25zdCBGVU5fTU9EQUxfREVGQVVMVFM6IFJlcXVpcmVkPFBpY2s8RnVuTW9kYWxNZXRhZGF0YSwgJ2JvcmRlclJhZGl1cycgfCAnaW1hZ2VSYWRpdXMnPj4gPVxuICB7XG4gICAgYm9yZGVyUmFkaXVzOiAyOCxcbiAgICBpbWFnZVJhZGl1czogMTYsXG4gIH07XG4iXX0=
|
package/esm2022/lib/components/organisms/share-profile-modal/share-profile-modal.component.mjs
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, computed, EventEmitter, inject, Input, Output, signal } from '@angular/core';
|
|
3
|
+
import { IonModal, IonSpinner } from '@ionic/angular/standalone';
|
|
4
|
+
import { ModalShellComponent } from '../../molecules/modal-shell/modal-shell.component';
|
|
5
|
+
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
6
|
+
import { UserAvatarComponent } from '../../atoms/user-avatar/user-avatar.component';
|
|
7
|
+
import { QrCodeComponent } from '../../atoms/qr-code/qr-code.component';
|
|
8
|
+
import { ShareButtonsComponent } from '../../molecules/share-buttons/share-buttons.component';
|
|
9
|
+
import { QrGeneratorService } from '../../../services/qr-generator/qr-generator.service';
|
|
10
|
+
import { I18nService } from '../../../services/i18n';
|
|
11
|
+
import { SHARE_PROFILE_MODAL_DEFAULTS } from './types';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
/**
|
|
14
|
+
* Defaults i18n (es/en). Auto-registrados en el constructor si el consumer no
|
|
15
|
+
* proveyó el namespace `ShareProfileModal`. Garantiza que nunca haya una key
|
|
16
|
+
* faltante (ver nota en valtech-components/CLAUDE.md sobre el storm de CD).
|
|
17
|
+
*/
|
|
18
|
+
const SHARE_PROFILE_MODAL_I18N = {
|
|
19
|
+
es: {
|
|
20
|
+
title: 'Compartir perfil',
|
|
21
|
+
caption: 'Escanea el código QR para añadirme como contacto',
|
|
22
|
+
},
|
|
23
|
+
en: {
|
|
24
|
+
title: 'Share profile',
|
|
25
|
+
caption: 'Scan the QR code to add me as a contact',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* `val-share-profile-modal` — modal reutilizable para compartir un perfil (o
|
|
30
|
+
* cualquier entidad) vía QR + URL. Sigue la Regla #5 (header canónico vía
|
|
31
|
+
* `val-modal-shell`).
|
|
32
|
+
*
|
|
33
|
+
* Self-contained: genera el QR con `QrGeneratorService` a partir de `url` al
|
|
34
|
+
* abrirse. El padre solo controla `[isOpen]` y reacciona a `(dismissed)`.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```html
|
|
38
|
+
* <val-share-profile-modal
|
|
39
|
+
* [isOpen]="isOpen()"
|
|
40
|
+
* [props]="{ name: 'Víctor Valenzuela', url: 'https://app.myvaltech.com/u/victor', avatarUrl: '/me.jpg' }"
|
|
41
|
+
* (dismissed)="isOpen.set(false)"
|
|
42
|
+
* />
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export class ShareProfileModalComponent {
|
|
46
|
+
/** Controla la visibilidad. Al pasar de cerrado a abierto genera el QR. */
|
|
47
|
+
set isOpen(value) {
|
|
48
|
+
const opening = value && !this._isOpen;
|
|
49
|
+
this._isOpen = value;
|
|
50
|
+
if (opening) {
|
|
51
|
+
this.generateQr();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
get isOpen() {
|
|
55
|
+
return this._isOpen;
|
|
56
|
+
}
|
|
57
|
+
constructor() {
|
|
58
|
+
this.qrGenerator = inject(QrGeneratorService);
|
|
59
|
+
this.i18n = inject(I18nService);
|
|
60
|
+
this._isOpen = false;
|
|
61
|
+
/** Configuración del modal. */
|
|
62
|
+
this.props = {};
|
|
63
|
+
/** Emite cuando el user cierra el modal (botón Cerrar o backdrop). */
|
|
64
|
+
this.dismissed = new EventEmitter();
|
|
65
|
+
/** Emite al completar una acción de compartir. */
|
|
66
|
+
this.shared = new EventEmitter();
|
|
67
|
+
this._qr = signal(null);
|
|
68
|
+
this.qr = this._qr.asReadonly();
|
|
69
|
+
this._qrError = signal(false);
|
|
70
|
+
this.qrError = this._qrError.asReadonly();
|
|
71
|
+
this.config = computed(() => ({
|
|
72
|
+
...SHARE_PROFILE_MODAL_DEFAULTS,
|
|
73
|
+
...this.props,
|
|
74
|
+
}));
|
|
75
|
+
this.displayName = computed(() => this.config().title || this.config().name || this.t('title'));
|
|
76
|
+
this.caption = computed(() => this.config().caption || this.t('caption'));
|
|
77
|
+
if (!this.i18n.hasNamespace('ShareProfileModal')) {
|
|
78
|
+
this.i18n.registerContent('ShareProfileModal', SHARE_PROFILE_MODAL_I18N);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
t(key) {
|
|
82
|
+
this.i18n.lang();
|
|
83
|
+
return this.i18n.t(key, 'ShareProfileModal');
|
|
84
|
+
}
|
|
85
|
+
async generateQr() {
|
|
86
|
+
const url = this.config().url;
|
|
87
|
+
if (!url)
|
|
88
|
+
return;
|
|
89
|
+
this._qr.set(null);
|
|
90
|
+
this._qrError.set(false);
|
|
91
|
+
try {
|
|
92
|
+
// Formato SVG: lo genera qr-code-styling sin canvas.toBlob (que cuelga en
|
|
93
|
+
// algunos contextos de bundler/Storybook). Renderiza igual de nítido.
|
|
94
|
+
const result = await this.qrGenerator.generate({ data: url, width: this.config().qrSize, format: 'svg' });
|
|
95
|
+
this._qr.set(result);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// QR opcional — si falla, mostramos la URL como fallback (no spinner eterno).
|
|
99
|
+
this._qr.set(null);
|
|
100
|
+
this._qrError.set(true);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
close() {
|
|
104
|
+
this._isOpen = false;
|
|
105
|
+
this.dismissed.emit();
|
|
106
|
+
}
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ShareProfileModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ShareProfileModalComponent, isStandalone: true, selector: "val-share-profile-modal", inputs: { isOpen: "isOpen", props: "props" }, outputs: { dismissed: "dismissed", shared: "shared" }, ngImport: i0, template: `
|
|
109
|
+
<ion-modal [isOpen]="isOpen" [style.--border-radius.px]="config().borderRadius" (didDismiss)="close()">
|
|
110
|
+
<ng-template>
|
|
111
|
+
<val-modal-shell [title]="''" [closeLabel]="config().closeLabel || ''" (close)="close()">
|
|
112
|
+
<div class="share-profile">
|
|
113
|
+
<val-user-avatar
|
|
114
|
+
[props]="{ name: config().name, avatarUrl: config().avatarUrl, email: config().email, size: 'xlarge' }"
|
|
115
|
+
/>
|
|
116
|
+
<val-display [props]="{ content: displayName(), size: 'small', color: 'dark' }" />
|
|
117
|
+
|
|
118
|
+
<div class="share-profile__qr">
|
|
119
|
+
@if (qr(); as qrResult) {
|
|
120
|
+
<val-qr-code
|
|
121
|
+
[props]="{
|
|
122
|
+
qr: qrResult,
|
|
123
|
+
theme: config().qrTheme,
|
|
124
|
+
displaySize: config().qrSize,
|
|
125
|
+
alt: config().name,
|
|
126
|
+
}"
|
|
127
|
+
/>
|
|
128
|
+
} @else if (qrError()) {
|
|
129
|
+
<p class="share-profile__qr-error">{{ config().url }}</p>
|
|
130
|
+
} @else {
|
|
131
|
+
<div class="share-profile__qr-loading" [style.height.px]="config().qrSize">
|
|
132
|
+
<ion-spinner name="crescent"></ion-spinner>
|
|
133
|
+
</div>
|
|
134
|
+
}
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<p class="share-profile__caption">{{ caption() }}</p>
|
|
138
|
+
|
|
139
|
+
<val-share-buttons
|
|
140
|
+
[props]="{
|
|
141
|
+
shareData: { title: config().shareTitle || config().name, text: config().shareText, url: config().url },
|
|
142
|
+
platforms: config().platforms,
|
|
143
|
+
layout: 'horizontal',
|
|
144
|
+
variant: 'icon-only',
|
|
145
|
+
usePlatformColors: false,
|
|
146
|
+
}"
|
|
147
|
+
(shareComplete)="shared.emit($event)"
|
|
148
|
+
/>
|
|
149
|
+
</div>
|
|
150
|
+
</val-modal-shell>
|
|
151
|
+
</ng-template>
|
|
152
|
+
</ion-modal>
|
|
153
|
+
`, isInline: true, styles: [".share-profile{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:.5rem 0 1rem;text-align:center}.share-profile__name{margin:0;font-size:1.5rem;font-weight:700;line-height:1.2;color:var(--ion-text-color)}.share-profile__qr{display:flex;justify-content:center}.share-profile__qr-loading{display:flex;align-items:center;justify-content:center;min-width:120px}.share-profile__qr-error{margin:0;padding:1rem;max-width:28ch;word-break:break-all;font-size:.9rem;font-weight:600;color:var(--ion-color-medium-shade)}.share-profile__caption{margin:0;max-width:32ch;font-size:.95rem;line-height:1.45;color:var(--ion-color-medium-shade)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ModalShellComponent, selector: "val-modal-shell", inputs: ["title", "subtitle", "closeLabel", "showClose"], outputs: ["close"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: QrCodeComponent, selector: "val-qr-code", inputs: ["props"], outputs: ["actionComplete", "imageLoad", "imageError"] }, { kind: "component", type: ShareButtonsComponent, selector: "val-share-buttons", inputs: ["props"], outputs: ["shareComplete"] }] }); }
|
|
154
|
+
}
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ShareProfileModalComponent, decorators: [{
|
|
156
|
+
type: Component,
|
|
157
|
+
args: [{ selector: 'val-share-profile-modal', standalone: true, imports: [
|
|
158
|
+
CommonModule,
|
|
159
|
+
IonModal,
|
|
160
|
+
IonSpinner,
|
|
161
|
+
ModalShellComponent,
|
|
162
|
+
DisplayComponent,
|
|
163
|
+
UserAvatarComponent,
|
|
164
|
+
QrCodeComponent,
|
|
165
|
+
ShareButtonsComponent,
|
|
166
|
+
], template: `
|
|
167
|
+
<ion-modal [isOpen]="isOpen" [style.--border-radius.px]="config().borderRadius" (didDismiss)="close()">
|
|
168
|
+
<ng-template>
|
|
169
|
+
<val-modal-shell [title]="''" [closeLabel]="config().closeLabel || ''" (close)="close()">
|
|
170
|
+
<div class="share-profile">
|
|
171
|
+
<val-user-avatar
|
|
172
|
+
[props]="{ name: config().name, avatarUrl: config().avatarUrl, email: config().email, size: 'xlarge' }"
|
|
173
|
+
/>
|
|
174
|
+
<val-display [props]="{ content: displayName(), size: 'small', color: 'dark' }" />
|
|
175
|
+
|
|
176
|
+
<div class="share-profile__qr">
|
|
177
|
+
@if (qr(); as qrResult) {
|
|
178
|
+
<val-qr-code
|
|
179
|
+
[props]="{
|
|
180
|
+
qr: qrResult,
|
|
181
|
+
theme: config().qrTheme,
|
|
182
|
+
displaySize: config().qrSize,
|
|
183
|
+
alt: config().name,
|
|
184
|
+
}"
|
|
185
|
+
/>
|
|
186
|
+
} @else if (qrError()) {
|
|
187
|
+
<p class="share-profile__qr-error">{{ config().url }}</p>
|
|
188
|
+
} @else {
|
|
189
|
+
<div class="share-profile__qr-loading" [style.height.px]="config().qrSize">
|
|
190
|
+
<ion-spinner name="crescent"></ion-spinner>
|
|
191
|
+
</div>
|
|
192
|
+
}
|
|
193
|
+
</div>
|
|
194
|
+
|
|
195
|
+
<p class="share-profile__caption">{{ caption() }}</p>
|
|
196
|
+
|
|
197
|
+
<val-share-buttons
|
|
198
|
+
[props]="{
|
|
199
|
+
shareData: { title: config().shareTitle || config().name, text: config().shareText, url: config().url },
|
|
200
|
+
platforms: config().platforms,
|
|
201
|
+
layout: 'horizontal',
|
|
202
|
+
variant: 'icon-only',
|
|
203
|
+
usePlatformColors: false,
|
|
204
|
+
}"
|
|
205
|
+
(shareComplete)="shared.emit($event)"
|
|
206
|
+
/>
|
|
207
|
+
</div>
|
|
208
|
+
</val-modal-shell>
|
|
209
|
+
</ng-template>
|
|
210
|
+
</ion-modal>
|
|
211
|
+
`, styles: [".share-profile{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:.5rem 0 1rem;text-align:center}.share-profile__name{margin:0;font-size:1.5rem;font-weight:700;line-height:1.2;color:var(--ion-text-color)}.share-profile__qr{display:flex;justify-content:center}.share-profile__qr-loading{display:flex;align-items:center;justify-content:center;min-width:120px}.share-profile__qr-error{margin:0;padding:1rem;max-width:28ch;word-break:break-all;font-size:.9rem;font-weight:600;color:var(--ion-color-medium-shade)}.share-profile__caption{margin:0;max-width:32ch;font-size:.95rem;line-height:1.45;color:var(--ion-color-medium-shade)}\n"] }]
|
|
212
|
+
}], ctorParameters: () => [], propDecorators: { isOpen: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], props: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], dismissed: [{
|
|
217
|
+
type: Output
|
|
218
|
+
}], shared: [{
|
|
219
|
+
type: Output
|
|
220
|
+
}] } });
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NoYXJlLXByb2ZpbGUtbW9kYWwvc2hhcmUtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFHekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBNkIsNEJBQTRCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRWxGOzs7O0dBSUc7QUFDSCxNQUFNLHdCQUF3QixHQUFHO0lBQy9CLEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsT0FBTyxFQUFFLGtEQUFrRDtLQUM1RDtJQUNELEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxlQUFl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IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbk1vZGFsLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IE1vZGFsU2hlbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbW9kYWwtc2hlbGwvbW9kYWwtc2hlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXJDb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZUJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2hhcmUtYnV0dG9ucy9zaGFyZS1idXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRckdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvcXItZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXJSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvdHlwZXMnO1xuaW1wb3J0IHsgU2hhcmVFdmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zaGFyZS1idXR0b25zL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBTaGFyZVByb2ZpbGVNb2RhbE1ldGFkYXRhLCBTSEFSRV9QUk9GSUxFX01PREFMX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biAoZXMvZW4pLiBBdXRvLXJlZ2lzdHJhZG9zIGVuIGVsIGNvbnN0cnVjdG9yIHNpIGVsIGNvbnN1bWVyIG5vXG4gKiBwcm92ZXnDsyBlbCBuYW1lc3BhY2UgYFNoYXJlUHJvZmlsZU1vZGFsYC4gR2FyYW50aXphIHF1ZSBudW5jYSBoYXlhIHVuYSBrZXlcbiAqIGZhbHRhbnRlICh2ZXIgbm90YSBlbiB2YWx0ZWNoLWNvbXBvbmVudHMvQ0xBVURFLm1kIHNvYnJlIGVsIHN0b3JtIGRlIENEKS5cbiAqL1xuY29uc3QgU0hBUkVfUFJPRklMRV9NT0RBTF9JMThOID0ge1xuICBlczoge1xuICAgIHRpdGxlOiAnQ29tcGFydGlyIHBlcmZpbCcsXG4gICAgY2FwdGlvbjogJ0VzY2FuZWEgZWwgY8OzZGlnbyBRUiBwYXJhIGHDsWFkaXJtZSBjb21vIGNvbnRhY3RvJyxcbiAgfSxcbiAgZW46IHtcbiAgICB0aXRsZTogJ1NoYXJlIHByb2ZpbGUnLFxuICAgIGNhcHRpb246ICdTY2FuIHRoZSBRUiBjb2RlIHRvIGFkZCBtZSBhcyBhIGNvbnRhY3QnLFxuICB9LFxufTtcblxuLyoqXG4gKiBgdmFsLXNoYXJlLXByb2ZpbGUtbW9kYWxgIOKAlCBtb2RhbCByZXV0aWxpemFibGUgcGFyYSBjb21wYXJ0aXIgdW4gcGVyZmlsIChvXG4gKiBjdWFscXVpZXIgZW50aWRhZCkgdsOtYSBRUiArIFVSTC4gU2lndWUgbGEgUmVnbGEgIzUgKGhlYWRlciBjYW7Ds25pY28gdsOtYVxuICogYHZhbC1tb2RhbC1zaGVsbGApLlxuICpcbiAqIFNlbGYtY29udGFpbmVkOiBnZW5lcmEgZWwgUVIgY29uIGBRckdlbmVyYXRvclNlcnZpY2VgIGEgcGFydGlyIGRlIGB1cmxgIGFsXG4gKiBhYnJpcnNlLiBFbCBwYWRyZSBzb2xvIGNvbnRyb2xhIGBbaXNPcGVuXWAgeSByZWFjY2lvbmEgYSBgKGRpc21pc3NlZClgLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXNoYXJlLXByb2ZpbGUtbW9kYWxcbiAqICAgW2lzT3Blbl09XCJpc09wZW4oKVwiXG4gKiAgIFtwcm9wc109XCJ7IG5hbWU6ICdWw61jdG9yIFZhbGVuenVlbGEnLCB1cmw6ICdodHRwczovL2FwcC5teXZhbHRlY2guY29tL3UvdmljdG9yJywgYXZhdGFyVXJsOiAnL21lLmpwZycgfVwiXG4gKiAgIChkaXNtaXNzZWQpPVwiaXNPcGVuLnNldChmYWxzZSlcIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc2hhcmUtcHJvZmlsZS1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uTW9kYWwsXG4gICAgSW9uU3Bpbm5lcixcbiAgICBNb2RhbFNoZWxsQ29tcG9uZW50LFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVXNlckF2YXRhckNvbXBvbmVudCxcbiAgICBRckNvZGVDb21wb25lbnQsXG4gICAgU2hhcmVCdXR0b25zQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tbW9kYWwgW2lzT3Blbl09XCJpc09wZW5cIiBbc3R5bGUuLS1ib3JkZXItcmFkaXVzLnB4XT1cImNvbmZpZygpLmJvcmRlclJhZGl1c1wiIChkaWREaXNtaXNzKT1cImNsb3NlKClcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPHZhbC1tb2RhbC1zaGVsbCBbdGl0bGVdPVwiJydcIiBbY2xvc2VMYWJlbF09XCJjb25maWcoKS5jbG9zZUxhYmVsIHx8ICcnXCIgKGNsb3NlKT1cImNsb3NlKClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hhcmUtcHJvZmlsZVwiPlxuICAgICAgICAgICAgPHZhbC11c2VyLWF2YXRhclxuICAgICAgICAgICAgICBbcHJvcHNdPVwieyBuYW1lOiBjb25maWcoKS5uYW1lLCBhdmF0YXJVcmw6IGNvbmZpZygpLmF2YXRhclVybCwgZW1haWw6IGNvbmZpZygpLmVtYWlsLCBzaXplOiAneGxhcmdlJyB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogZGlzcGxheU5hbWUoKSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJyB9XCIgLz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoYXJlLXByb2ZpbGVfX3FyXCI+XG4gICAgICAgICAgICAgIEBpZiAocXIoKTsgYXMgcXJSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICA8dmFsLXFyLWNvZGVcbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHFyOiBxclJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgdGhlbWU6IGNvbmZpZygpLnFyVGhlbWUsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTaXplOiBjb25maWcoKS5xclNpemUsXG4gICAgICAgICAgICAgICAgICAgIGFsdDogY29uZmlnKCkubmFtZSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHFyRXJyb3IoKSkge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic2hhcmUtcHJvZmlsZV9fcXItZXJyb3JcIj57eyBjb25maWcoKS51cmwgfX08L3A+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFyZS1wcm9maWxlX19xci1sb2FkaW5nXCIgW3N0eWxlLmhlaWdodC5weF09XCJjb25maWcoKS5xclNpemVcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPHAgY2xhc3M9XCJzaGFyZS1wcm9maWxlX19jYXB0aW9uXCI+e3sgY2FwdGlvbigpIH19PC9wPlxuXG4gICAgICAgICAgICA8dmFsLXNoYXJlLWJ1dHRvbnNcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzaGFyZURhdGE6IHsgdGl0bGU6IGNvbmZpZygpLnNoYXJlVGl0bGUgfHwgY29uZmlnKCkubmFtZSwgdGV4dDogY29uZmlnKCkuc2hhcmVUZXh0LCB1cmw6IGNvbmZpZygpLnVybCB9LFxuICAgICAgICAgICAgICAgIHBsYXRmb3JtczogY29uZmlnKCkucGxhdGZvcm1zLFxuICAgICAgICAgICAgICAgIGxheW91dDogJ2hvcml6b250YWwnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnQ6ICdpY29uLW9ubHknLFxuICAgICAgICAgICAgICAgIHVzZVBsYXRmb3JtQ29sb3JzOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIChzaGFyZUNvbXBsZXRlKT1cInNoYXJlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC92YWwtbW9kYWwtc2hlbGw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLW1vZGFsPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zaGFyZS1wcm9maWxlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlUHJvZmlsZU1vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBxckdlbmVyYXRvciA9IGluamVjdChRckdlbmVyYXRvclNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuXG4gIC8qKiBDb250cm9sYSBsYSB2aXNpYmlsaWRhZC4gQWwgcGFzYXIgZGUgY2VycmFkbyBhIGFiaWVydG8gZ2VuZXJhIGVsIFFSLiAqL1xuICBASW5wdXQoKVxuICBzZXQgaXNPcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3Qgb3BlbmluZyA9IHZhbHVlICYmICF0aGlzLl9pc09wZW47XG4gICAgdGhpcy5faXNPcGVuID0gdmFsdWU7XG4gICAgaWYgKG9wZW5pbmcpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVRcigpO1xuICAgIH1cbiAgfVxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc09wZW47XG4gIH1cblxuICAvKiogQ29uZmlndXJhY2nDs24gZGVsIG1vZGFsLiAqL1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxTaGFyZVByb2ZpbGVNb2RhbE1ldGFkYXRhPiA9IHt9O1xuXG4gIC8qKiBFbWl0ZSBjdWFuZG8gZWwgdXNlciBjaWVycmEgZWwgbW9kYWwgKGJvdMOzbiBDZXJyYXIgbyBiYWNrZHJvcCkuICovXG4gIEBPdXRwdXQoKSBkaXNtaXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8qKiBFbWl0ZSBhbCBjb21wbGV0YXIgdW5hIGFjY2nDs24gZGUgY29tcGFydGlyLiAqL1xuICBAT3V0cHV0KCkgc2hhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZUV2ZW50PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3FyID0gc2lnbmFsPFFyUmVzdWx0IHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IHFyID0gdGhpcy5fcXIuYXNSZWFkb25seSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3FyRXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBxckVycm9yID0gdGhpcy5fcXJFcnJvci5hc1JlYWRvbmx5KCk7XG5cbiAgY29uZmlnID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgICh7XG4gICAgICAgIC4uLlNIQVJFX1BST0ZJTEVfTU9EQUxfREVGQVVMVFMsXG4gICAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICB9KSBhcyBTaGFyZVByb2ZpbGVNb2RhbE1ldGFkYXRhICYgdHlwZW9mIFNIQVJFX1BST0ZJTEVfTU9EQUxfREVGQVVMVFNcbiAgKTtcblxuICBkaXNwbGF5TmFtZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkudGl0bGUgfHwgdGhpcy5jb25maWcoKS5uYW1lIHx8IHRoaXMudCgndGl0bGUnKSk7XG4gIGNhcHRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmNhcHRpb24gfHwgdGhpcy50KCdjYXB0aW9uJykpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSgnU2hhcmVQcm9maWxlTW9kYWwnKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudCgnU2hhcmVQcm9maWxlTW9kYWwnLCBTSEFSRV9QUk9GSUxFX01PREFMX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnU2hhcmVQcm9maWxlTW9kYWwnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2VuZXJhdGVRcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZygpLnVybDtcbiAgICBpZiAoIXVybCkgcmV0dXJuO1xuICAgIHRoaXMuX3FyLnNldChudWxsKTtcbiAgICB0aGlzLl9xckVycm9yLnNldChmYWxzZSk7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEZvcm1hdG8gU1ZHOiBsbyBnZW5lcmEgcXItY29kZS1zdHlsaW5nIHNpbiBjYW52YXMudG9CbG9iIChxdWUgY3VlbGdhIGVuXG4gICAgICAvLyBhbGd1bm9zIGNvbnRleHRvcyBkZSBidW5kbGVyL1N0b3J5Ym9vaykuIFJlbmRlcml6YSBpZ3VhbCBkZSBuw610aWRvLlxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xckdlbmVyYXRvci5nZW5lcmF0ZSh7IGRhdGE6IHVybCwgd2lkdGg6IHRoaXMuY29uZmlnKCkucXJTaXplLCBmb3JtYXQ6ICdzdmcnIH0pO1xuICAgICAgdGhpcy5fcXIuc2V0KHJlc3VsdCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBRUiBvcGNpb25hbCDigJQgc2kgZmFsbGEsIG1vc3RyYW1vcyBsYSBVUkwgY29tbyBmYWxsYmFjayAobm8gc3Bpbm5lciBldGVybm8pLlxuICAgICAgdGhpcy5fcXIuc2V0KG51bGwpO1xuICAgICAgdGhpcy5fcXJFcnJvci5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5faXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kaXNtaXNzZWQuZW1pdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default values for ShareProfileModalMetadata.
|
|
3
|
+
*/
|
|
4
|
+
export const SHARE_PROFILE_MODAL_DEFAULTS = {
|
|
5
|
+
platforms: ['copy', 'native', 'whatsapp'],
|
|
6
|
+
qrTheme: 'default',
|
|
7
|
+
qrSize: 220,
|
|
8
|
+
borderRadius: 24,
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NoYXJlLXByb2ZpbGUtbW9kYWwvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaURBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBRXJDO0lBQ0YsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUM7SUFDekMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLEdBQUc7SUFDWCxZQUFZLEVBQUUsRUFBRTtDQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hhcmVQbGF0Zm9ybSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zaGFyZS1idXR0b25zL3R5cGVzJztcbmltcG9ydCB7IFFyRGlzcGxheVRoZW1lIH0gZnJvbSAnLi4vLi4vYXRvbXMvcXItY29kZS90eXBlcyc7XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIHZhbC1zaGFyZS1wcm9maWxlLW1vZGFsLlxuICpcbiAqIFJldXNhYmxlIG1vZGFsIHRvIHNoYXJlIGEgcHJvZmlsZSAob3IgYW55IGVudGl0eSkgdmlhIFFSICsgVVJMOiBhdmF0YXIsXG4gKiBuYW1lLCBhIFFSIGNvZGUgZW5jb2RpbmcgdGhlIFVSTCwgYW4gb3B0aW9uYWwgY2FwdGlvbiBhbmQgc2hhcmUgYnV0dG9uc1xuICogKGNvcHkgbGluayAvIG5hdGl2ZSAvIHNvY2lhbCkuXG4gKlxuICogQ29udGVudC1kcml2ZW46IGBuYW1lYCArIGB1cmxgIGFyZSByZXF1aXJlZDsgdGhlIHJlc3QgaXMgb3B0aW9uYWwuIFN0YXRpY1xuICogY2hyb21lIHRleHQgKGNhcHRpb24sIGJ1dHRvbiBoaW50cykgYXV0by1yZWdpc3RyYSBkZWZhdWx0cyBpMThuXG4gKiAobmFtZXNwYWNlIGBTaGFyZVByb2ZpbGVNb2RhbGApIOKAlCBvdmVycmlkZSBwYXNhbmRvIGxvcyBjYW1wb3MgZGlyZWN0b3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVQcm9maWxlTW9kYWxNZXRhZGF0YSB7XG4gIC8qKiBEaXNwbGF5IG5hbWUgc2hvd24gdW5kZXIgdGhlIGF2YXRhciAoYW5kIGRlZmF1bHQgbW9kYWwgdGl0bGUpICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFVSTCBlbmNvZGVkIGluIHRoZSBRUiBhbmQgc2hhcmVkIGJ5IHRoZSBidXR0b25zICovXG4gIHVybDogc3RyaW5nO1xuXG4gIC8qKiBBdmF0YXIgaW1hZ2UgVVJMIChmYWxscyBiYWNrIHRvIGluaXRpYWxzIG9mIGBuYW1lYCkgKi9cbiAgYXZhdGFyVXJsPzogc3RyaW5nO1xuICAvKiogRW1haWwg4oCUIHVzZWQgZm9yIHRoZSBhdmF0YXIgaW5pdGlhbHMvY29sb3Igd2hlbiBubyBhdmF0YXJVcmwgKi9cbiAgZW1haWw/OiBzdHJpbmc7XG5cbiAgLyoqIE1vZGFsIHRpdGxlICh2YWwtZGlzcGxheSkuIERlZmF1bHQ6IGBuYW1lYCAqL1xuICB0aXRsZT86IHN0cmluZztcbiAgLyoqIENhcHRpb24gdW5kZXIgdGhlIFFSLiBEZWZhdWx0OiBpMThuIGBTaGFyZVByb2ZpbGVNb2RhbC5jYXB0aW9uYCAqL1xuICBjYXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBUaXRsZSB1c2VkIGJ5IHRoZSBuYXRpdmUgc2hhcmUgc2hlZXQuIERlZmF1bHQ6IGBuYW1lYCAqL1xuICBzaGFyZVRpdGxlPzogc3RyaW5nO1xuICAvKiogVGV4dCB1c2VkIGJ5IHRoZSBuYXRpdmUgc2hhcmUgc2hlZXQgLyBzb2NpYWwgbWVzc2FnZXMgKi9cbiAgc2hhcmVUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKiBQbGF0Zm9ybXMgc2hvd24gaW4gdGhlIHNoYXJlIGJ1dHRvbnMuIERlZmF1bHQ6IFsnY29weScsICduYXRpdmUnLCAnd2hhdHNhcHAnXSAqL1xuICBwbGF0Zm9ybXM/OiBTaGFyZVBsYXRmb3JtW107XG5cbiAgLyoqIFFSIHZpc3VhbCB0aGVtZS4gRGVmYXVsdDogJ2RlZmF1bHQnICovXG4gIHFyVGhlbWU/OiBRckRpc3BsYXlUaGVtZTtcbiAgLyoqIFFSIHNpemUgaW4gcGl4ZWxzLiBEZWZhdWx0OiAyMjAgKi9cbiAgcXJTaXplPzogbnVtYmVyO1xuXG4gIC8qKiBNb2RhbCBjb3JuZXIgcm91bmRpbmcgaW4gcHguIERlZmF1bHQ6IDI0ICovXG4gIGJvcmRlclJhZGl1cz86IG51bWJlcjtcbiAgLyoqIENsb3NlIGJ1dHRvbiBsYWJlbC4gRGVmYXVsdDogaTE4biBgX2dsb2JhbC5jbG9zZWAgKi9cbiAgY2xvc2VMYWJlbD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IHZhbHVlcyBmb3IgU2hhcmVQcm9maWxlTW9kYWxNZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNIQVJFX1BST0ZJTEVfTU9EQUxfREVGQVVMVFM6IFJlcXVpcmVkPFxuICBQaWNrPFNoYXJlUHJvZmlsZU1vZGFsTWV0YWRhdGEsICdwbGF0Zm9ybXMnIHwgJ3FyVGhlbWUnIHwgJ3FyU2l6ZScgfCAnYm9yZGVyUmFkaXVzJz5cbj4gPSB7XG4gIHBsYXRmb3JtczogWydjb3B5JywgJ25hdGl2ZScsICd3aGF0c2FwcCddLFxuICBxclRoZW1lOiAnZGVmYXVsdCcsXG4gIHFyU2l6ZTogMjIwLFxuICBib3JkZXJSYWRpdXM6IDI0LFxufTtcbiJdfQ==
|
|
@@ -48,4 +48,4 @@ export { ContentTransformer, toArticle } from './transformer';
|
|
|
48
48
|
export { BlogPostBuilder, blogPost } from './content-types/blog';
|
|
49
49
|
export { DocsBuilder, docs } from './content-types/documentation';
|
|
50
50
|
export { NewsBuilder, news } from './content-types/news';
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2NvbnRlbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ0c7QUF3QkgsY0FBYztBQUNkLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBWSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUE2QixXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0YsT0FBTyxFQUFlLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGVudCBUeXBlcyBNb2R1bGVcbiAqXG4gKiBQcm92aWRlcyBhIGZsZXhpYmxlIGNvbnRlbnQgYWJzdHJhY3Rpb24gbGF5ZXIgdGhhdCB0cmFuc2Zvcm1zXG4gKiBzdHJ1Y3R1cmVkIGNvbnRlbnQgZG9jdW1lbnRzIGludG8gQXJ0aWNsZU1ldGFkYXRhIGZvciByZW5kZXJpbmdcbiAqIHdpdGggdGhlIHZhbC1hcnRpY2xlIGNvbXBvbmVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gVXNpbmcgQmxvZ1Bvc3RCdWlsZGVyXG4gKiBpbXBvcnQgeyBibG9nUG9zdCB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKlxuICogY29uc3QgcG9zdCA9IGJsb2dQb3N0KClcbiAqICAgLnRpdGxlKCdNeSBGaXJzdCBQb3N0JylcbiAqICAgLmF1dGhvcignSm9obiBEb2UnKVxuICogICAuaGVhZGluZygnSW50cm9kdWN0aW9uJylcbiAqICAgLnBhcmFncmFwaCgnV2VsY29tZSB0byBteSBibG9nLi4uJylcbiAqICAgLnRvQXJ0aWNsZSgpO1xuICpcbiAqIC8vIFVzaW5nIERvY3NCdWlsZGVyXG4gKiBpbXBvcnQgeyBkb2NzIH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBjb25zdCBwYWdlID0gZG9jcygpXG4gKiAgIC50aXRsZSgnSW5zdGFsbGF0aW9uJylcbiAqICAgLnNlY3Rpb24oJ0dldHRpbmcgU3RhcnRlZCcpXG4gKiAgIC5jb2RlKCducG0gaW5zdGFsbCB2YWx0ZWNoLWNvbXBvbmVudHMnLCAnYmFzaCcpXG4gKiAgIC50b0FydGljbGUoKTtcbiAqXG4gKiAvLyBVc2luZyBOZXdzQnVpbGRlclxuICogaW1wb3J0IHsgbmV3cyB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKlxuICogY29uc3QgYXJ0aWNsZSA9IG5ld3MoKVxuICogICAuaGVhZGxpbmUoJ0JyZWFraW5nIE5ld3MnKVxuICogICAuc3VtbWFyeSgnSW1wb3J0YW50IGFubm91bmNlbWVudC4uLicpXG4gKiAgIC5icmVha2luZygpXG4gKiAgIC50b0FydGljbGUoKTtcbiAqXG4gKiAvLyBGcm9tIEpTT04vQVBJIHJlc3BvbnNlXG4gKiBpbXBvcnQgeyBDb250ZW50VHJhbnNmb3JtZXIsIEJsb2dQb3N0IH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBjb25zdCBqc29uOiBCbG9nUG9zdCA9IGF3YWl0IGZldGNoKCcvYXBpL3Bvc3RzLzEnKS50aGVuKHIgPT4gci5qc29uKCkpO1xuICogY29uc3QgYXJ0aWNsZSA9IENvbnRlbnRUcmFuc2Zvcm1lci50b0FydGljbGUoanNvbik7XG4gKiBgYGBcbiAqL1xuXG4vLyBCYXNlIHR5cGVzXG4vLyBOT1RBOiBlbCBgQ29udGVudERvY3VtZW50PFQ+YCBibG9jay1iYXNlZCAoYnVpbGRlcikgc2UgcmVleHBvcnRhIGNvbW9cbi8vIGBDb250ZW50QnVpbGRlckRvY3VtZW50YCBwYXJhIG5vIGNvbGlzaW9uYXIgY29uIGVsIGBDb250ZW50RG9jdW1lbnRgIGZsYXRcbi8vIGNhbsOzbmljbyBkZSBsYSBwbGF0YWZvcm1hIGRlIGNvbnRlbmlkbyAoYHNlcnZpY2VzL2NvbnRlbnQtcGxhdGZvcm1gLCBBRFItMDIwKS5cbmV4cG9ydCB7XG4gIENvbnRlbnRBdXRob3IsXG4gIENvbnRlbnRNZXRhLFxuICBDb250ZW50Q29uZmlnLFxuICBDb250ZW50RG9jdW1lbnQgYXMgQ29udGVudEJ1aWxkZXJEb2N1bWVudCxcbiAgQ29udGVudEJsb2NrLFxuICBIZWFkaW5nQmxvY2ssXG4gIFBhcmFncmFwaEJsb2NrLFxuICBRdW90ZUJsb2NrLFxuICBDb2RlQmxvY2ssXG4gIExpc3RCbG9jayxcbiAgSW1hZ2VCbG9jayxcbiAgQ2FsbG91dEJsb2NrLFxuICBEaXZpZGVyQmxvY2ssXG4gIEJ1dHRvbkJsb2NrLFxuICBDb21tYW5kQmxvY2ssXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBUcmFuc2Zvcm1lclxuZXhwb3J0IHsgQ29udGVudFRyYW5zZm9ybWVyLCB0b0FydGljbGUgfSBmcm9tICcuL3RyYW5zZm9ybWVyJztcblxuLy8gQ29udGVudCB0eXBlc1xuZXhwb3J0IHsgQmxvZ1Bvc3QsIEJsb2dQb3N0QnVpbGRlciwgYmxvZ1Bvc3QgfSBmcm9tICcuL2NvbnRlbnQtdHlwZXMvYmxvZyc7XG5leHBvcnQgeyBEb2N1bWVudGF0aW9uLCBEb2NOYXZMaW5rLCBEb2NzQnVpbGRlciwgZG9jcyB9IGZyb20gJy4vY29udGVudC10eXBlcy9kb2N1bWVudGF0aW9uJztcbmV4cG9ydCB7IE5ld3NBcnRpY2xlLCBOZXdzQnVpbGRlciwgbmV3cyB9IGZyb20gJy4vY29udGVudC10eXBlcy9uZXdzJztcbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Token de inyección para la configuración de la plataforma de contenido.
|
|
4
|
+
*/
|
|
5
|
+
export const VALTECH_CONTENT_CONFIG = new InjectionToken('ValtechContentConfig');
|
|
6
|
+
/**
|
|
7
|
+
* Provee la plataforma de contenido (`ContentService`) a la aplicación Angular.
|
|
8
|
+
*
|
|
9
|
+
* Wire en el `main.ts` de la app consumer. El origen es **híbrido** (ADR-020):
|
|
10
|
+
* el backend siempre está disponible vía `apiUrl`; las `staticSources` son
|
|
11
|
+
* opcionales — factories lazy generadas build-time por `scripts/build-content.ts`
|
|
12
|
+
* (mismo patrón que `provideLegalContent`). Cada locale queda code-split por el
|
|
13
|
+
* `import()` dinámico.
|
|
14
|
+
*
|
|
15
|
+
* @param config - Configuración de contenido (`apiUrl`, `appId`, `staticSources?`).
|
|
16
|
+
* @returns EnvironmentProviders para usar en `bootstrapApplication`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // main.ts — solo backend
|
|
21
|
+
* provideValtechContent({
|
|
22
|
+
* apiUrl: environment.apiUrl,
|
|
23
|
+
* appId: 'showcase',
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* // main.ts — híbrido (estático curado + backend)
|
|
27
|
+
* provideValtechContent({
|
|
28
|
+
* apiUrl: environment.apiUrl,
|
|
29
|
+
* appId: 'web',
|
|
30
|
+
* staticSources: {
|
|
31
|
+
* es: () => import('./app/generated/content-store.es').then(m => m.CONTENT_STORE_ES),
|
|
32
|
+
* en: () => import('./app/generated/content-store.en').then(m => m.CONTENT_STORE_EN),
|
|
33
|
+
* },
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function provideValtechContent(config) {
|
|
38
|
+
return makeEnvironmentProviders([{ provide: VALTECH_CONTENT_CONFIG, useValue: config }]);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9jb250ZW50LXBsYXRmb3JtL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN0RCxzQkFBc0IsQ0FDdkIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBNEI7SUFDaEUsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBJbmplY3Rpb25Ub2tlbiwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWx0ZWNoQ29udGVudENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRva2VuIGRlIGlueWVjY2nDs24gcGFyYSBsYSBjb25maWd1cmFjacOzbiBkZSBsYSBwbGF0YWZvcm1hIGRlIGNvbnRlbmlkby5cbiAqL1xuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfQ09OVEVOVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VmFsdGVjaENvbnRlbnRDb25maWc+KFxuICAnVmFsdGVjaENvbnRlbnRDb25maWcnXG4pO1xuXG4vKipcbiAqIFByb3ZlZSBsYSBwbGF0YWZvcm1hIGRlIGNvbnRlbmlkbyAoYENvbnRlbnRTZXJ2aWNlYCkgYSBsYSBhcGxpY2FjacOzbiBBbmd1bGFyLlxuICpcbiAqIFdpcmUgZW4gZWwgYG1haW4udHNgIGRlIGxhIGFwcCBjb25zdW1lci4gRWwgb3JpZ2VuIGVzICoqaMOtYnJpZG8qKiAoQURSLTAyMCk6XG4gKiBlbCBiYWNrZW5kIHNpZW1wcmUgZXN0w6EgZGlzcG9uaWJsZSB2w61hIGBhcGlVcmxgOyBsYXMgYHN0YXRpY1NvdXJjZXNgIHNvblxuICogb3BjaW9uYWxlcyDigJQgZmFjdG9yaWVzIGxhenkgZ2VuZXJhZGFzIGJ1aWxkLXRpbWUgcG9yIGBzY3JpcHRzL2J1aWxkLWNvbnRlbnQudHNgXG4gKiAobWlzbW8gcGF0csOzbiBxdWUgYHByb3ZpZGVMZWdhbENvbnRlbnRgKS4gQ2FkYSBsb2NhbGUgcXVlZGEgY29kZS1zcGxpdCBwb3IgZWxcbiAqIGBpbXBvcnQoKWAgZGluw6FtaWNvLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmFjacOzbiBkZSBjb250ZW5pZG8gKGBhcGlVcmxgLCBgYXBwSWRgLCBgc3RhdGljU291cmNlcz9gKS5cbiAqIEByZXR1cm5zIEVudmlyb25tZW50UHJvdmlkZXJzIHBhcmEgdXNhciBlbiBgYm9vdHN0cmFwQXBwbGljYXRpb25gLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBtYWluLnRzIOKAlCBzb2xvIGJhY2tlbmRcbiAqIHByb3ZpZGVWYWx0ZWNoQ29udGVudCh7XG4gKiAgIGFwaVVybDogZW52aXJvbm1lbnQuYXBpVXJsLFxuICogICBhcHBJZDogJ3Nob3djYXNlJyxcbiAqIH0pO1xuICpcbiAqIC8vIG1haW4udHMg4oCUIGjDrWJyaWRvIChlc3TDoXRpY28gY3VyYWRvICsgYmFja2VuZClcbiAqIHByb3ZpZGVWYWx0ZWNoQ29udGVudCh7XG4gKiAgIGFwaVVybDogZW52aXJvbm1lbnQuYXBpVXJsLFxuICogICBhcHBJZDogJ3dlYicsXG4gKiAgIHN0YXRpY1NvdXJjZXM6IHtcbiAqICAgICBlczogKCkgPT4gaW1wb3J0KCcuL2FwcC9nZW5lcmF0ZWQvY29udGVudC1zdG9yZS5lcycpLnRoZW4obSA9PiBtLkNPTlRFTlRfU1RPUkVfRVMpLFxuICogICAgIGVuOiAoKSA9PiBpbXBvcnQoJy4vYXBwL2dlbmVyYXRlZC9jb250ZW50LXN0b3JlLmVuJykudGhlbihtID0+IG0uQ09OVEVOVF9TVE9SRV9FTiksXG4gKiAgIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hDb250ZW50KGNvbmZpZzogVmFsdGVjaENvbnRlbnRDb25maWcpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW3sgcHJvdmlkZTogVkFMVEVDSF9DT05URU5UX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XSk7XG59XG4iXX0=
|