valtech-components 2.0.343 → 2.0.345
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/wizard/wizard.component.mjs +45 -59
- package/fesm2022/valtech-components.mjs +43 -57
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/article/article.component.d.ts +2 -2
- package/lib/components/organisms/wizard/wizard.component.d.ts +8 -35
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
3
3
|
import { goToTop } from '../../../shared/utils/dom';
|
|
4
4
|
import { ContentLoaderComponent } from '../../molecules/content-loader/content-loader.component';
|
|
5
5
|
import { ComponentStates } from '../../types';
|
|
@@ -7,92 +7,78 @@ import { NoContentComponent } from '../no-content/no-content.component';
|
|
|
7
7
|
import { MOTION } from './types';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/common";
|
|
10
|
-
/**
|
|
11
|
-
* WizardComponent
|
|
12
|
-
*
|
|
13
|
-
* Componente para flujos de pasos (wizard) reutilizable, con soporte para estados, errores y navegación entre pasos.
|
|
14
|
-
* Permite mostrar contenido personalizado por paso y manejar acciones de navegación.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* <val-wizard [props]="wizardProps" (onClick)="handleWizardNav($event)">
|
|
18
|
-
* <div step>Contenido del paso</div>
|
|
19
|
-
* </val-wizard>
|
|
20
|
-
*
|
|
21
|
-
* @input props {WizardMetadata} - Metadatos del wizard, pasos y estado.
|
|
22
|
-
* @output onClick - Emite el paso actual y la acción de navegación (MOTION).
|
|
23
|
-
*/
|
|
24
10
|
export class WizardComponent {
|
|
25
|
-
constructor() {
|
|
26
|
-
|
|
27
|
-
* Evento emitido al hacer click en una acción de navegación.
|
|
28
|
-
*/
|
|
11
|
+
constructor(cdr) {
|
|
12
|
+
this.cdr = cdr;
|
|
29
13
|
this.onClick = new EventEmitter();
|
|
30
14
|
this.wrapperId = 'wizard-wrapper';
|
|
15
|
+
this.currentStep = null;
|
|
16
|
+
this.currentStepTitles = null;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.updateCurrentStep();
|
|
20
|
+
}
|
|
21
|
+
ngOnChanges(changes) {
|
|
22
|
+
if (changes['props']) {
|
|
23
|
+
this.updateCurrentStep();
|
|
24
|
+
this.cdr.markForCheck();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
updateCurrentStep() {
|
|
28
|
+
if (this.props?.steps && this.props?.current) {
|
|
29
|
+
this.currentStep = this.props.steps[this.props.current];
|
|
30
|
+
this.currentStepTitles = this.currentStep?.titles || null;
|
|
31
|
+
}
|
|
31
32
|
}
|
|
32
|
-
ngOnInit() { }
|
|
33
|
-
/**
|
|
34
|
-
* Cambia el estado del wizard a 'WORKING' y deshabilita los botones del paso actual.
|
|
35
|
-
*/
|
|
36
33
|
working() {
|
|
37
34
|
this.props.state = ComponentStates.WORKING;
|
|
38
|
-
this.Current
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
if (this.Current?.buttons) {
|
|
36
|
+
this.Current.buttons.forEach(button => {
|
|
37
|
+
button.state = ComponentStates.DISABLED;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
this.cdr.markForCheck();
|
|
41
41
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Cambia el estado del wizard a 'ENABLED' y habilita los botones del paso actual.
|
|
44
|
-
* No realiza cambios si ya está en estado 'ENABLED'.
|
|
45
|
-
*/
|
|
46
42
|
done() {
|
|
47
43
|
if (this.props.state === ComponentStates.ENABLED) {
|
|
48
44
|
return;
|
|
49
45
|
}
|
|
50
46
|
this.props.state = ComponentStates.ENABLED;
|
|
51
|
-
this.Current
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
if (this.Current?.buttons) {
|
|
48
|
+
this.Current.buttons.forEach(button => {
|
|
49
|
+
button.state = ComponentStates.ENABLED;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
this.cdr.markForCheck();
|
|
54
53
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Devuelve el paso actual del wizard.
|
|
57
|
-
*/
|
|
58
54
|
get Current() {
|
|
59
|
-
|
|
55
|
+
if (this.props?.steps && this.props?.current) {
|
|
56
|
+
return this.props.steps[this.props.current];
|
|
57
|
+
}
|
|
58
|
+
return this.currentStep || { titles: null, buttons: [] };
|
|
60
59
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Cambia el paso actual del wizard y hace scroll al inicio.
|
|
63
|
-
* @param newStep Nuevo índice de paso
|
|
64
|
-
*/
|
|
65
60
|
setCurrent(newStep) {
|
|
66
61
|
if (newStep === this.props.current) {
|
|
67
62
|
return;
|
|
68
63
|
}
|
|
69
64
|
this.props.current = newStep;
|
|
65
|
+
this.updateCurrentStep();
|
|
66
|
+
this.cdr.markForCheck();
|
|
70
67
|
goToTop(this.wrapperId);
|
|
71
68
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Establece el estado de error y muestra el mensaje de error en el banner inferior.
|
|
74
|
-
* @param error Mensaje de error a mostrar
|
|
75
|
-
*/
|
|
76
69
|
setError(error) {
|
|
77
70
|
if (this.props.state === ComponentStates.ERROR) {
|
|
78
71
|
return;
|
|
79
72
|
}
|
|
80
73
|
this.props.error.titles.bottomContent.content.bellowTitle.content = error;
|
|
81
74
|
this.props.state = ComponentStates.ERROR;
|
|
75
|
+
this.cdr.markForCheck();
|
|
82
76
|
goToTop(this.wrapperId);
|
|
83
77
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Reinicia el estado de error y vuelve a estado 'ENABLED'.
|
|
86
|
-
*/
|
|
87
78
|
reset() {
|
|
88
79
|
this.props.error.titles.bottomContent.content.bellowTitle.content = '';
|
|
89
80
|
this.done();
|
|
90
81
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Maneja el click en el banner de error y emite el evento de navegación.
|
|
93
|
-
* Si el token contiene 'retry', reinicia el wizard.
|
|
94
|
-
* @param token Token de la acción clicada
|
|
95
|
-
*/
|
|
96
82
|
clickHandler(token) {
|
|
97
83
|
if (!token) {
|
|
98
84
|
return;
|
|
@@ -102,11 +88,11 @@ export class WizardComponent {
|
|
|
102
88
|
}
|
|
103
89
|
this.onClick.emit({ current: this.props.current, motion: MOTION.RETRY });
|
|
104
90
|
}
|
|
105
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardComponent, isStandalone: true, selector: "val-wizard", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardComponent, isStandalone: true, selector: "val-wizard", inputs: { props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
107
93
|
<div [id]="wrapperId" class="wrapper">
|
|
108
94
|
<ng-container *ngIf="props.state !== 'ERROR'">
|
|
109
|
-
<val-no-content [props]="
|
|
95
|
+
<val-no-content [props]="currentStepTitles"></val-no-content>
|
|
110
96
|
<div class="step">
|
|
111
97
|
<div *ngIf="props.state === 'WORKING'">
|
|
112
98
|
<val-content-loader
|
|
@@ -132,7 +118,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
132
118
|
args: [{ selector: 'val-wizard', standalone: true, imports: [CommonModule, NoContentComponent, ContentLoaderComponent], template: `
|
|
133
119
|
<div [id]="wrapperId" class="wrapper">
|
|
134
120
|
<ng-container *ngIf="props.state !== 'ERROR'">
|
|
135
|
-
<val-no-content [props]="
|
|
121
|
+
<val-no-content [props]="currentStepTitles"></val-no-content>
|
|
136
122
|
<div class="step">
|
|
137
123
|
<div *ngIf="props.state === 'WORKING'">
|
|
138
124
|
<val-content-loader
|
|
@@ -152,9 +138,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
152
138
|
</ng-container>
|
|
153
139
|
</div>
|
|
154
140
|
`, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.wrapper{height:auto;display:flex;flex-direction:column;justify-content:space-between;position:relative;min-height:320px}.step{min-height:9.375rem;margin:16px 0;text-align:center}\n"] }]
|
|
155
|
-
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
141
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { props: [{
|
|
156
142
|
type: Input
|
|
157
143
|
}], onClick: [{
|
|
158
144
|
type: Output
|
|
159
145
|
}] } });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sU0FBUyxDQUFDOzs7QUErQnZEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQWUxQjtRQVJBOztXQUVHO1FBRUgsWUFBTyxHQUFHLElBQUksWUFBWSxFQUF1QyxDQUFDO1FBRWxFLGNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztJQUVkLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7SUFFYjs7T0FFRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQixDQUFDLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0IsQ0FBQyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9DLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDOytHQW5HVSxlQUFlO21HQUFmLGVBQWUsbUlBdkNoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVCxrd0ZBdkJTLFlBQVksbUlBQUUsa0JBQWtCLG9HQUFFLHNCQUFzQjs7NEZBd0N2RCxlQUFlO2tCQTNDM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixDQUFDLFlBQ3pEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUO3dEQXNCRCxLQUFLO3NCQURKLEtBQUs7Z0JBT04sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdvVG9Ub3AgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZG9tJztcbmltcG9ydCB7IENvbnRlbnRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29udGVudC1sb2FkZXIvY29udGVudC1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE5vQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL25vLWNvbnRlbnQvbm8tY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTU9USU9OLCBTdGVwLCBXaXphcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtd2l6YXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTm9Db250ZW50Q29tcG9uZW50LCBDb250ZW50TG9hZGVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtpZF09XCJ3cmFwcGVySWRcIiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy5zdGF0ZSAhPT0gJ0VSUk9SJ1wiPlxuICAgICAgICA8dmFsLW5vLWNvbnRlbnQgW3Byb3BzXT1cIkN1cnJlbnQudGl0bGVzXCI+PC92YWwtbm8tY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvcHMuc3RhdGUgPT09ICdXT1JLSU5HJ1wiPlxuICAgICAgICAgICAgPHZhbC1jb250ZW50LWxvYWRlclxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjaXJjdWxhcicsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgICAgIHRleHQ6ICdQb3IgZmF2b3IgZXNwZXJlLi4uJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGVwXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy5zdGF0ZSA9PT0gJ0VSUk9SJ1wiPlxuICAgICAgICA8dmFsLW5vLWNvbnRlbnQgW3Byb3BzXT1cInByb3BzLmVycm9yLnRpdGxlc1wiIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcigkZXZlbnQpXCI+PC92YWwtbm8tY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi93aXphcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIFdpemFyZENvbXBvbmVudFxuICpcbiAqIENvbXBvbmVudGUgcGFyYSBmbHVqb3MgZGUgcGFzb3MgKHdpemFyZCkgcmV1dGlsaXphYmxlLCBjb24gc29wb3J0ZSBwYXJhIGVzdGFkb3MsIGVycm9yZXMgeSBuYXZlZ2FjacOzbiBlbnRyZSBwYXNvcy5cbiAqIFBlcm1pdGUgbW9zdHJhciBjb250ZW5pZG8gcGVyc29uYWxpemFkbyBwb3IgcGFzbyB5IG1hbmVqYXIgYWNjaW9uZXMgZGUgbmF2ZWdhY2nDs24uXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtd2l6YXJkIFtwcm9wc109XCJ3aXphcmRQcm9wc1wiIChvbkNsaWNrKT1cImhhbmRsZVdpemFyZE5hdigkZXZlbnQpXCI+XG4gKiAgIDxkaXYgc3RlcD5Db250ZW5pZG8gZGVsIHBhc288L2Rpdj5cbiAqIDwvdmFsLXdpemFyZD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMge1dpemFyZE1ldGFkYXRhfSAtIE1ldGFkYXRvcyBkZWwgd2l6YXJkLCBwYXNvcyB5IGVzdGFkby5cbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRlIGVsIHBhc28gYWN0dWFsIHkgbGEgYWNjacOzbiBkZSBuYXZlZ2FjacOzbiAoTU9USU9OKS5cbiAqL1xuZXhwb3J0IGNsYXNzIFdpemFyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBNZXRhZGF0b3MgZGVsIHdpemFyZCwgcGFzb3MgeSBlc3RhZG8uXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogV2l6YXJkTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50byBlbWl0aWRvIGFsIGhhY2VyIGNsaWNrIGVuIHVuYSBhY2Npw7NuIGRlIG5hdmVnYWNpw7NuLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgY3VycmVudDogbnVtYmVyOyBtb3Rpb246IE1PVElPTiB9PigpO1xuXG4gIHdyYXBwZXJJZCA9ICd3aXphcmQtd3JhcHBlcic7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICAvKipcbiAgICogQ2FtYmlhIGVsIGVzdGFkbyBkZWwgd2l6YXJkIGEgJ1dPUktJTkcnIHkgZGVzaGFiaWxpdGEgbG9zIGJvdG9uZXMgZGVsIHBhc28gYWN0dWFsLlxuICAgKi9cbiAgd29ya2luZygpIHtcbiAgICB0aGlzLnByb3BzLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgdGhpcy5DdXJyZW50LmJ1dHRvbnMubWFwKHggPT4ge1xuICAgICAgeC5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW1iaWEgZWwgZXN0YWRvIGRlbCB3aXphcmQgYSAnRU5BQkxFRCcgeSBoYWJpbGl0YSBsb3MgYm90b25lcyBkZWwgcGFzbyBhY3R1YWwuXG4gICAqIE5vIHJlYWxpemEgY2FtYmlvcyBzaSB5YSBlc3TDoSBlbiBlc3RhZG8gJ0VOQUJMRUQnLlxuICAgKi9cbiAgZG9uZSgpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQ7XG4gICAgdGhpcy5DdXJyZW50LmJ1dHRvbnMubWFwKHggPT4ge1xuICAgICAgeC5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERldnVlbHZlIGVsIHBhc28gYWN0dWFsIGRlbCB3aXphcmQuXG4gICAqL1xuICBnZXQgQ3VycmVudCgpOiBTdGVwIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zdGVwc1t0aGlzLnByb3BzLmN1cnJlbnRdO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbWJpYSBlbCBwYXNvIGFjdHVhbCBkZWwgd2l6YXJkIHkgaGFjZSBzY3JvbGwgYWwgaW5pY2lvLlxuICAgKiBAcGFyYW0gbmV3U3RlcCBOdWV2byDDrW5kaWNlIGRlIHBhc29cbiAgICovXG4gIHNldEN1cnJlbnQobmV3U3RlcDogbnVtYmVyKSB7XG4gICAgaWYgKG5ld1N0ZXAgPT09IHRoaXMucHJvcHMuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnByb3BzLmN1cnJlbnQgPSBuZXdTdGVwO1xuICAgIGdvVG9Ub3AodGhpcy53cmFwcGVySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFibGVjZSBlbCBlc3RhZG8gZGUgZXJyb3IgeSBtdWVzdHJhIGVsIG1lbnNhamUgZGUgZXJyb3IgZW4gZWwgYmFubmVyIGluZmVyaW9yLlxuICAgKiBAcGFyYW0gZXJyb3IgTWVuc2FqZSBkZSBlcnJvciBhIG1vc3RyYXJcbiAgICovXG4gIHNldEVycm9yKGVycm9yOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkVSUk9SKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wcy5lcnJvci50aXRsZXMuYm90dG9tQ29udGVudC5jb250ZW50LmJlbGxvd1RpdGxlLmNvbnRlbnQgPSBlcnJvcjtcbiAgICB0aGlzLnByb3BzLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkVSUk9SO1xuICAgIGdvVG9Ub3AodGhpcy53cmFwcGVySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlaW5pY2lhIGVsIGVzdGFkbyBkZSBlcnJvciB5IHZ1ZWx2ZSBhIGVzdGFkbyAnRU5BQkxFRCcuXG4gICAqL1xuICByZXNldCgpIHtcbiAgICB0aGlzLnByb3BzLmVycm9yLnRpdGxlcy5ib3R0b21Db250ZW50LmNvbnRlbnQuYmVsbG93VGl0bGUuY29udGVudCA9ICcnO1xuICAgIHRoaXMuZG9uZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbmVqYSBlbCBjbGljayBlbiBlbCBiYW5uZXIgZGUgZXJyb3IgeSBlbWl0ZSBlbCBldmVudG8gZGUgbmF2ZWdhY2nDs24uXG4gICAqIFNpIGVsIHRva2VuIGNvbnRpZW5lICdyZXRyeScsIHJlaW5pY2lhIGVsIHdpemFyZC5cbiAgICogQHBhcmFtIHRva2VuIFRva2VuIGRlIGxhIGFjY2nDs24gY2xpY2FkYVxuICAgKi9cbiAgY2xpY2tIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodG9rZW4uaW5jbHVkZXMoJ3JldHJ5JykpIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IGN1cnJlbnQ6IHRoaXMucHJvcHMuY3VycmVudCwgbW90aW9uOiBNT1RJT04uUkVUUlkgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sU0FBUyxDQUFDOzs7QUErQnZELE1BQU0sT0FBTyxlQUFlO0lBVzFCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBTjFDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBdUMsQ0FBQztRQUVsRSxjQUFTLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsZ0JBQVcsR0FBZ0IsSUFBSSxDQUFDO1FBQ2hDLHNCQUFpQixHQUFRLElBQUksQ0FBQztJQUVlLENBQUM7SUFFOUMsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsR0FBRyxD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LENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7K0dBakdVLGVBQWU7bUdBQWYsZUFBZSx3SkF6QmhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JULGt3RkF2QlMsWUFBWSxtSUFBRSxrQkFBa0Isb0dBQUUsc0JBQXNCOzs0RkEwQnZELGVBQWU7a0JBN0IzQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLENBQUMsWUFDekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQ7c0ZBS0QsS0FBSztzQkFESixLQUFLO2dCQUlOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdvVG9Ub3AgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZG9tJztcbmltcG9ydCB7IENvbnRlbnRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29udGVudC1sb2FkZXIvY29udGVudC1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE5vQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL25vLWNvbnRlbnQvbm8tY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTU9USU9OLCBTdGVwLCBXaXphcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtd2l6YXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTm9Db250ZW50Q29tcG9uZW50LCBDb250ZW50TG9hZGVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtpZF09XCJ3cmFwcGVySWRcIiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy5zdGF0ZSAhPT0gJ0VSUk9SJ1wiPlxuICAgICAgICA8dmFsLW5vLWNvbnRlbnQgW3Byb3BzXT1cImN1cnJlbnRTdGVwVGl0bGVzXCI+PC92YWwtbm8tY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvcHMuc3RhdGUgPT09ICdXT1JLSU5HJ1wiPlxuICAgICAgICAgICAgPHZhbC1jb250ZW50LWxvYWRlclxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjaXJjdWxhcicsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgICAgIHRleHQ6ICdQb3IgZmF2b3IgZXNwZXJlLi4uJyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGVwXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy5zdGF0ZSA9PT0gJ0VSUk9SJ1wiPlxuICAgICAgICA8dmFsLW5vLWNvbnRlbnQgW3Byb3BzXT1cInByb3BzLmVycm9yLnRpdGxlc1wiIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcigkZXZlbnQpXCI+PC92YWwtbm8tY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi93aXphcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICBwcm9wczogV2l6YXJkTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgY3VycmVudDogbnVtYmVyOyBtb3Rpb246IE1PVElPTiB9PigpO1xuXG4gIHdyYXBwZXJJZCA9ICd3aXphcmQtd3JhcHBlcic7XG4gIGN1cnJlbnRTdGVwOiBTdGVwIHwgbnVsbCA9IG51bGw7XG4gIGN1cnJlbnRTdGVwVGl0bGVzOiBhbnkgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTdGVwKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlQ3VycmVudFN0ZXAoKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ3VycmVudFN0ZXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHM/LnN0ZXBzICYmIHRoaXMucHJvcHM/LmN1cnJlbnQpIHtcbiAgICAgIHRoaXMuY3VycmVudFN0ZXAgPSB0aGlzLnByb3BzLnN0ZXBzW3RoaXMucHJvcHMuY3VycmVudF07XG4gICAgICB0aGlzLmN1cnJlbnRTdGVwVGl0bGVzID0gdGhpcy5jdXJyZW50U3RlcD8udGl0bGVzIHx8IG51bGw7XG4gICAgfVxuICB9XG5cbiAgd29ya2luZygpIHtcbiAgICB0aGlzLnByb3BzLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgaWYgKHRoaXMuQ3VycmVudD8uYnV0dG9ucykge1xuICAgICAgdGhpcy5DdXJyZW50LmJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICBidXR0b24uc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQ7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBkb25lKCkge1xuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvcHMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICBpZiAodGhpcy5DdXJyZW50Py5idXR0b25zKSB7XG4gICAgICB0aGlzLkN1cnJlbnQuYnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICAgIGJ1dHRvbi5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0IEN1cnJlbnQoKTogU3RlcCB7XG4gICAgaWYgKHRoaXMucHJvcHM/LnN0ZXBzICYmIHRoaXMucHJvcHM/LmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLnN0ZXBzW3RoaXMucHJvcHMuY3VycmVudF07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGVwIHx8IHsgdGl0bGVzOiBudWxsLCBidXR0b25zOiBbXSB9O1xuICB9XG5cbiAgc2V0Q3VycmVudChuZXdTdGVwOiBudW1iZXIpIHtcbiAgICBpZiAobmV3U3RlcCA9PT0gdGhpcy5wcm9wcy5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucHJvcHMuY3VycmVudCA9IG5ld1N0ZXA7XG4gICAgdGhpcy51cGRhdGVDdXJyZW50U3RlcCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIGdvVG9Ub3AodGhpcy53cmFwcGVySWQpO1xuICB9XG5cbiAgc2V0RXJyb3IoZXJyb3I6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRVJST1IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLmVycm9yLnRpdGxlcy5ib3R0b21Db250ZW50LmNvbnRlbnQuYmVsbG93VGl0bGUuY29udGVudCA9IGVycm9yO1xuICAgIHRoaXMucHJvcHMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRVJST1I7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgZ29Ub1RvcCh0aGlzLndyYXBwZXJJZCk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnByb3BzLmVycm9yLnRpdGxlcy5ib3R0b21Db250ZW50LmNvbnRlbnQuYmVsbG93VGl0bGUuY29udGVudCA9ICcnO1xuICAgIHRoaXMuZG9uZSgpO1xuICB9XG5cbiAgY2xpY2tIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodG9rZW4uaW5jbHVkZXMoJ3JldHJ5JykpIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IGN1cnJlbnQ6IHRoaXMucHJvcHMuY3VycmVudCwgbW90aW9uOiBNT1RJT04uUkVUUlkgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -7825,92 +7825,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
7825
7825
|
type: Output
|
|
7826
7826
|
}] } });
|
|
7827
7827
|
|
|
7828
|
-
/**
|
|
7829
|
-
* WizardComponent
|
|
7830
|
-
*
|
|
7831
|
-
* Componente para flujos de pasos (wizard) reutilizable, con soporte para estados, errores y navegación entre pasos.
|
|
7832
|
-
* Permite mostrar contenido personalizado por paso y manejar acciones de navegación.
|
|
7833
|
-
*
|
|
7834
|
-
* @example
|
|
7835
|
-
* <val-wizard [props]="wizardProps" (onClick)="handleWizardNav($event)">
|
|
7836
|
-
* <div step>Contenido del paso</div>
|
|
7837
|
-
* </val-wizard>
|
|
7838
|
-
*
|
|
7839
|
-
* @input props {WizardMetadata} - Metadatos del wizard, pasos y estado.
|
|
7840
|
-
* @output onClick - Emite el paso actual y la acción de navegación (MOTION).
|
|
7841
|
-
*/
|
|
7842
7828
|
class WizardComponent {
|
|
7843
|
-
constructor() {
|
|
7844
|
-
|
|
7845
|
-
* Evento emitido al hacer click en una acción de navegación.
|
|
7846
|
-
*/
|
|
7829
|
+
constructor(cdr) {
|
|
7830
|
+
this.cdr = cdr;
|
|
7847
7831
|
this.onClick = new EventEmitter();
|
|
7848
7832
|
this.wrapperId = 'wizard-wrapper';
|
|
7833
|
+
this.currentStep = null;
|
|
7834
|
+
this.currentStepTitles = null;
|
|
7835
|
+
}
|
|
7836
|
+
ngOnInit() {
|
|
7837
|
+
this.updateCurrentStep();
|
|
7838
|
+
}
|
|
7839
|
+
ngOnChanges(changes) {
|
|
7840
|
+
if (changes['props']) {
|
|
7841
|
+
this.updateCurrentStep();
|
|
7842
|
+
this.cdr.markForCheck();
|
|
7843
|
+
}
|
|
7844
|
+
}
|
|
7845
|
+
updateCurrentStep() {
|
|
7846
|
+
if (this.props?.steps && this.props?.current) {
|
|
7847
|
+
this.currentStep = this.props.steps[this.props.current];
|
|
7848
|
+
this.currentStepTitles = this.currentStep?.titles || null;
|
|
7849
|
+
}
|
|
7849
7850
|
}
|
|
7850
|
-
ngOnInit() { }
|
|
7851
|
-
/**
|
|
7852
|
-
* Cambia el estado del wizard a 'WORKING' y deshabilita los botones del paso actual.
|
|
7853
|
-
*/
|
|
7854
7851
|
working() {
|
|
7855
7852
|
this.props.state = ComponentStates.WORKING;
|
|
7856
|
-
this.Current
|
|
7857
|
-
|
|
7858
|
-
|
|
7853
|
+
if (this.Current?.buttons) {
|
|
7854
|
+
this.Current.buttons.forEach(button => {
|
|
7855
|
+
button.state = ComponentStates.DISABLED;
|
|
7856
|
+
});
|
|
7857
|
+
}
|
|
7858
|
+
this.cdr.markForCheck();
|
|
7859
7859
|
}
|
|
7860
|
-
/**
|
|
7861
|
-
* Cambia el estado del wizard a 'ENABLED' y habilita los botones del paso actual.
|
|
7862
|
-
* No realiza cambios si ya está en estado 'ENABLED'.
|
|
7863
|
-
*/
|
|
7864
7860
|
done() {
|
|
7865
7861
|
if (this.props.state === ComponentStates.ENABLED) {
|
|
7866
7862
|
return;
|
|
7867
7863
|
}
|
|
7868
7864
|
this.props.state = ComponentStates.ENABLED;
|
|
7869
|
-
this.Current
|
|
7870
|
-
|
|
7871
|
-
|
|
7865
|
+
if (this.Current?.buttons) {
|
|
7866
|
+
this.Current.buttons.forEach(button => {
|
|
7867
|
+
button.state = ComponentStates.ENABLED;
|
|
7868
|
+
});
|
|
7869
|
+
}
|
|
7870
|
+
this.cdr.markForCheck();
|
|
7872
7871
|
}
|
|
7873
|
-
/**
|
|
7874
|
-
* Devuelve el paso actual del wizard.
|
|
7875
|
-
*/
|
|
7876
7872
|
get Current() {
|
|
7877
|
-
|
|
7873
|
+
if (this.props?.steps && this.props?.current) {
|
|
7874
|
+
return this.props.steps[this.props.current];
|
|
7875
|
+
}
|
|
7876
|
+
return this.currentStep || { titles: null, buttons: [] };
|
|
7878
7877
|
}
|
|
7879
|
-
/**
|
|
7880
|
-
* Cambia el paso actual del wizard y hace scroll al inicio.
|
|
7881
|
-
* @param newStep Nuevo índice de paso
|
|
7882
|
-
*/
|
|
7883
7878
|
setCurrent(newStep) {
|
|
7884
7879
|
if (newStep === this.props.current) {
|
|
7885
7880
|
return;
|
|
7886
7881
|
}
|
|
7887
7882
|
this.props.current = newStep;
|
|
7883
|
+
this.updateCurrentStep();
|
|
7884
|
+
this.cdr.markForCheck();
|
|
7888
7885
|
goToTop(this.wrapperId);
|
|
7889
7886
|
}
|
|
7890
|
-
/**
|
|
7891
|
-
* Establece el estado de error y muestra el mensaje de error en el banner inferior.
|
|
7892
|
-
* @param error Mensaje de error a mostrar
|
|
7893
|
-
*/
|
|
7894
7887
|
setError(error) {
|
|
7895
7888
|
if (this.props.state === ComponentStates.ERROR) {
|
|
7896
7889
|
return;
|
|
7897
7890
|
}
|
|
7898
7891
|
this.props.error.titles.bottomContent.content.bellowTitle.content = error;
|
|
7899
7892
|
this.props.state = ComponentStates.ERROR;
|
|
7893
|
+
this.cdr.markForCheck();
|
|
7900
7894
|
goToTop(this.wrapperId);
|
|
7901
7895
|
}
|
|
7902
|
-
/**
|
|
7903
|
-
* Reinicia el estado de error y vuelve a estado 'ENABLED'.
|
|
7904
|
-
*/
|
|
7905
7896
|
reset() {
|
|
7906
7897
|
this.props.error.titles.bottomContent.content.bellowTitle.content = '';
|
|
7907
7898
|
this.done();
|
|
7908
7899
|
}
|
|
7909
|
-
/**
|
|
7910
|
-
* Maneja el click en el banner de error y emite el evento de navegación.
|
|
7911
|
-
* Si el token contiene 'retry', reinicia el wizard.
|
|
7912
|
-
* @param token Token de la acción clicada
|
|
7913
|
-
*/
|
|
7914
7900
|
clickHandler(token) {
|
|
7915
7901
|
if (!token) {
|
|
7916
7902
|
return;
|
|
@@ -7920,11 +7906,11 @@ class WizardComponent {
|
|
|
7920
7906
|
}
|
|
7921
7907
|
this.onClick.emit({ current: this.props.current, motion: MOTION.RETRY });
|
|
7922
7908
|
}
|
|
7923
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7924
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardComponent, isStandalone: true, selector: "val-wizard", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
7909
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7910
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardComponent, isStandalone: true, selector: "val-wizard", inputs: { props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
7925
7911
|
<div [id]="wrapperId" class="wrapper">
|
|
7926
7912
|
<ng-container *ngIf="props.state !== 'ERROR'">
|
|
7927
|
-
<val-no-content [props]="
|
|
7913
|
+
<val-no-content [props]="currentStepTitles"></val-no-content>
|
|
7928
7914
|
<div class="step">
|
|
7929
7915
|
<div *ngIf="props.state === 'WORKING'">
|
|
7930
7916
|
<val-content-loader
|
|
@@ -7950,7 +7936,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
7950
7936
|
args: [{ selector: 'val-wizard', standalone: true, imports: [CommonModule, NoContentComponent, ContentLoaderComponent], template: `
|
|
7951
7937
|
<div [id]="wrapperId" class="wrapper">
|
|
7952
7938
|
<ng-container *ngIf="props.state !== 'ERROR'">
|
|
7953
|
-
<val-no-content [props]="
|
|
7939
|
+
<val-no-content [props]="currentStepTitles"></val-no-content>
|
|
7954
7940
|
<div class="step">
|
|
7955
7941
|
<div *ngIf="props.state === 'WORKING'">
|
|
7956
7942
|
<val-content-loader
|
|
@@ -7970,7 +7956,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
7970
7956
|
</ng-container>
|
|
7971
7957
|
</div>
|
|
7972
7958
|
`, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.wrapper{height:auto;display:flex;flex-direction:column;justify-content:space-between;position:relative;min-height:320px}.step{min-height:9.375rem;margin:16px 0;text-align:center}\n"] }]
|
|
7973
|
-
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
7959
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { props: [{
|
|
7974
7960
|
type: Input
|
|
7975
7961
|
}], onClick: [{
|
|
7976
7962
|
type: Output
|