valtech-components 4.0.149 → 4.0.150
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/templates/page-content/page-content.component.mjs +43 -4
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +41 -3
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
- package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
- package/lib/components/organisms/article/article.component.d.ts +2 -2
- package/lib/components/templates/page-content/page-content.component.d.ts +8 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/services/firebase/firebase-messaging-sw.js +0 -145
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
3
|
-
import { IonContent } from '@ionic/angular/standalone';
|
|
3
|
+
import { IonContent, IonRefresher, IonRefresherContent } from '@ionic/angular/standalone';
|
|
4
4
|
import { HeaderComponent } from '../../organisms/header/header.component';
|
|
5
5
|
import { UpdateBannerComponent } from '../../molecules/update-banner/update-banner.component';
|
|
6
6
|
import { VALTECH_APP_CONFIG } from '../../../services/app-config/config';
|
|
7
7
|
import { resolveColor } from '../../../shared/utils/styles';
|
|
8
|
+
import { PageRefreshService } from '../../../services/page-refresh/page-refresh.service';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "../../../services/theme.service";
|
|
10
11
|
import * as i2 from "../../../services/navigation";
|
|
@@ -44,6 +45,8 @@ export class PageContentComponent {
|
|
|
44
45
|
*/
|
|
45
46
|
this.props = {};
|
|
46
47
|
this.appConfigEnabled = inject(VALTECH_APP_CONFIG, { optional: true });
|
|
48
|
+
/** Bus del pull-to-refresh — la página activa registra su handler aquí. */
|
|
49
|
+
this.pageRefresh = inject(PageRefreshService);
|
|
47
50
|
/**
|
|
48
51
|
* Emits when a header action is clicked.
|
|
49
52
|
*/
|
|
@@ -86,6 +89,18 @@ export class PageContentComponent {
|
|
|
86
89
|
},
|
|
87
90
|
};
|
|
88
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Handler del gesto pull-to-refresh (`ion-refresher` ionRefresh). Delega en
|
|
94
|
+
* el handler que registró la página activa y cierra el spinner al terminar.
|
|
95
|
+
*/
|
|
96
|
+
async onPageRefresh(event) {
|
|
97
|
+
try {
|
|
98
|
+
await this.pageRefresh.run();
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
event.target?.complete();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
89
104
|
/**
|
|
90
105
|
* Whether to show the update banner.
|
|
91
106
|
* Only shows if AppConfigService is configured and not disabled via props.
|
|
@@ -157,6 +172,18 @@ export class PageContentComponent {
|
|
|
157
172
|
'--background': getBackground(),
|
|
158
173
|
}"
|
|
159
174
|
>
|
|
175
|
+
<!-- Pull-to-refresh: visible solo si la página activa registró un handler
|
|
176
|
+
vía PageRefreshService (connectPageRefresh). ion-refresher slot="fixed"
|
|
177
|
+
DEBE ser hijo directo de ion-content. Mismo patrón que val-page-wrapper,
|
|
178
|
+
para que las vistas públicas (seller, buy, live) también lo tengan. -->
|
|
179
|
+
@if (pageRefresh.hasHandler()) {
|
|
180
|
+
<ion-refresher slot="fixed" (ionRefresh)="onPageRefresh($event)">
|
|
181
|
+
<ion-refresher-content
|
|
182
|
+
pullingIcon="chevron-down-circle-outline"
|
|
183
|
+
refreshingSpinner="circular"
|
|
184
|
+
></ion-refresher-content>
|
|
185
|
+
</ion-refresher>
|
|
186
|
+
}
|
|
160
187
|
@if (showUpdateBanner) {
|
|
161
188
|
<val-update-banner />
|
|
162
189
|
}
|
|
@@ -169,11 +196,11 @@ export class PageContentComponent {
|
|
|
169
196
|
</ion-content>
|
|
170
197
|
<ng-content select="[extra-footer]"></ng-content>
|
|
171
198
|
</div>
|
|
172
|
-
`, isInline: true, styles: [".page-wrapper{display:flex;flex-direction:column;min-height:100%}main{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: HeaderComponent, selector: "val-header", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: UpdateBannerComponent, selector: "val-update-banner" }] }); }
|
|
199
|
+
`, isInline: true, styles: [".page-wrapper{display:flex;flex-direction:column;min-height:100%}main{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: HeaderComponent, selector: "val-header", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: UpdateBannerComponent, selector: "val-update-banner" }] }); }
|
|
173
200
|
}
|
|
174
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageContentComponent, decorators: [{
|
|
175
202
|
type: Component,
|
|
176
|
-
args: [{ selector: 'val-page-content', standalone: true, imports: [CommonModule, HeaderComponent, IonContent, UpdateBannerComponent], template: `
|
|
203
|
+
args: [{ selector: 'val-page-content', standalone: true, imports: [CommonModule, HeaderComponent, IonContent, IonRefresher, IonRefresherContent, UpdateBannerComponent], template: `
|
|
177
204
|
<div class="ion-page">
|
|
178
205
|
<val-header [props]="headerProps" (onClick)="onHeaderClickHandler($event)" />
|
|
179
206
|
<ion-content
|
|
@@ -182,6 +209,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
182
209
|
'--background': getBackground(),
|
|
183
210
|
}"
|
|
184
211
|
>
|
|
212
|
+
<!-- Pull-to-refresh: visible solo si la página activa registró un handler
|
|
213
|
+
vía PageRefreshService (connectPageRefresh). ion-refresher slot="fixed"
|
|
214
|
+
DEBE ser hijo directo de ion-content. Mismo patrón que val-page-wrapper,
|
|
215
|
+
para que las vistas públicas (seller, buy, live) también lo tengan. -->
|
|
216
|
+
@if (pageRefresh.hasHandler()) {
|
|
217
|
+
<ion-refresher slot="fixed" (ionRefresh)="onPageRefresh($event)">
|
|
218
|
+
<ion-refresher-content
|
|
219
|
+
pullingIcon="chevron-down-circle-outline"
|
|
220
|
+
refreshingSpinner="circular"
|
|
221
|
+
></ion-refresher-content>
|
|
222
|
+
</ion-refresher>
|
|
223
|
+
}
|
|
185
224
|
@if (showUpdateBanner) {
|
|
186
225
|
<val-update-banner />
|
|
187
226
|
}
|
|
@@ -200,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
200
239
|
}], onHeaderClick: [{
|
|
201
240
|
type: Output
|
|
202
241
|
}] } });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS1jb250ZW50L3BhZ2UtY29udGVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFHOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQXVDSCxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1UsS0FBbUIsRUFDbkIsR0FBc0I7UUFEdEIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVRoQzs7V0FFRztRQUNNLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBRWpDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBZTFFOztXQUVHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTdDLGNBQVMsR0FBaUQsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUs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QUFFLHFCQUFxQixDQUFDLFlBQ2pFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQ7aUhBaUJRLEtBQUs7c0JBQWIsS0FBSztnQkFvQkksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25Db250ZW50IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBkYXRlQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3VwZGF0ZS1iYW5uZXIvdXBkYXRlLWJhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgVkFMVEVDSF9BUFBfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy9jb25maWcnO1xuaW1wb3J0IHsgUGFnZUNvbnRlbnRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgcmVzb2x2ZUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3N0eWxlcyc7XG5cbi8qKlxuICogdmFsLXBhZ2UtY29udGVudFxuICpcbiAqIEEgcGFnZSBjb250ZW50IHRlbXBsYXRlIHdpdGggY29ycG9yYXRlIGhlYWRlciwgbWFpbiBjb250ZW50IGFyZWEsXG4gKiBhbmQgZm9vdGVyIHNsb3RzLiBTdXBwb3J0cyBkYXJrIG1vZGUgYW5kIGN1c3RvbWl6YWJsZSBiYWNrZ3JvdW5kcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1wYWdlLWNvbnRlbnRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBoZWFkZXI6IHsgLi4uIH0sXG4gKiAgICAgYmFja2dyb3VuZDogJy0tbWFpbi1iYWNrZ3JvdW5kJyxcbiAqICAgICBob21lUm91dGU6ICcvJ1xuICogICB9XCJcbiAqICAgKG9uSGVhZGVyQ2xpY2spPVwiaGFuZGxlSGVhZGVyQWN0aW9uKCRldmVudClcIlxuICogPlxuICogICA8ZGl2IGNvbnRlbnQ+XG4gKiAgICAgPCEtLSBNYWluIHBhZ2UgY29udGVudCAtLT5cbiAqICAgPC9kaXY+XG4gKiAgIDxkaXYgZm9vdGVyPlxuICogICAgIDx2YWwtY29tcGFueS1mb290ZXIgW3Byb3BzXT1cImZvb3RlclByb3BzXCI+PC92YWwtY29tcGFueS1mb290ZXI+XG4gKiAgIDwvZGl2PlxuICogPC92YWwtcGFnZS1jb250ZW50PlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIFBhZ2UgY29udGVudCBjb25maWd1cmF0aW9uXG4gKiBAb3V0cHV0IG9uSGVhZGVyQ2xpY2sgLSBFbWl0cyB3aGVuIGEgaGVhZGVyIGFjdGlvbiBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wYWdlLWNvbnRlbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBIZWFkZXJDb21wb25lbnQsIElvbkNvbnRlbnQsIFVwZGF0ZUJhbm5lckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWdlXCI+XG4gICAgICA8dmFsLWhlYWRlciBbcHJvcHNdPVwiaGVhZGVyUHJvcHNcIiAob25DbGljayk9XCJvbkhlYWRlckNsaWNrSGFuZGxlcigkZXZlbnQpXCIgLz5cbiAgICAgIDxpb24tY29udGVudFxuICAgICAgICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICctLWJhY2tncm91bmQnOiBnZXRCYWNrZ3JvdW5kKCksXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICBAaWYgKHNob3dVcGRhdGVCYW5uZXIpIHtcbiAgICAgICAgICA8dmFsLXVwZGF0ZS1iYW5uZXIgLz5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgPG1haW4+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9tYWluPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgLnBhZ2Utd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgbWFpbiB7XG4gICAgICBmbGV4OiAxO1xuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUNvbnRlbnRDb21wb25lbnQge1xuICAvKipcbiAgICogUGFnZSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFnZUNvbnRlbnRNZXRhZGF0YSA9IHt9O1xuXG4gIHByaXZhdGUgYXBwQ29uZmlnRW5hYmxlZCA9IGluamVjdChWQUxURUNIX0FQUF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0aGVtZTogVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmF2OiBOYXZpZ2F0aW9uU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgdXBkYXRlIGJhbm5lci5cbiAgICogT25seSBzaG93cyBpZiBBcHBDb25maWdTZXJ2aWNlIGlzIGNvbmZpZ3VyZWQgYW5kIG5vdCBkaXNhYmxlZCB2aWEgcHJvcHMuXG4gICAqL1xuICBnZXQgc2hvd1VwZGF0ZUJhbm5lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hcHBDb25maWdFbmFibGVkICE9PSBudWxsICYmIHRoaXMucHJvcHMuc2hvd1VwZGF0ZUJhbm5lciAhPT0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgd2hlbiBhIGhlYWRlciBhY3Rpb24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkhlYWRlckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBfaHBJbnB1dHM6IHsgaGVhZGVyOiBhbnk7IGxzOiBhbnk7IGZzczogYW55OyBzYmY6IGFueSB9ID0geyBoZWFkZXI6IG51bGwsIGxzOiBudWxsLCBmc3M6IG51bGwsIHNiZjogbnVsbCB9O1xuICBwcml2YXRlIF9ocENhY2hlOiBhbnkgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGhlYWRlciBjb25maWd1cmF0aW9uIChjYWNoZWQgdG8gYXZvaWQgaW5maW5pdGUgY2hhbmdlIGRldGVjdGlvbikuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRIZWFkZXIgPSB7XG4gICAgYm9yZGVyZWQ6IHRydWUsXG4gICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgdG9vbGJhcjoge1xuICAgICAgd2l0aEJhY2s6IGZhbHNlLFxuICAgICAgd2l0aEFjdGlvbnM6IHRydWUsXG4gICAgICB0ZXh0Q29sb3I6ICdkYXJrJyBhcyBjb25zdCxcbiAgICAgIHdpdGhNZW51OiB0cnVlLFxuICAgICAgdGl0bGU6ICcnLFxuICAgICAgbGFuZ3VhZ2VTZWxlY3RvcjogdW5kZWZpbmVkIGFzIHVuZGVmaW5lZCxcbiAgICAgIGZvbnRTaXplU2VsZWN0b3I6IHVuZGVmaW5lZCBhcyB1bmRlZmluZWQsXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0b2tlbjogJ2hlYWRlci1sb2dvJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgICAgcG9zaXRpb246ICdsZWZ0JyBhcyBjb25zdCxcbiAgICAgICAgICB0eXBlOiAnSU1BR0UnIGFzIGNvbnN0LFxuICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICB3aWR0aDogOCxcbiAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvJyxcbiAgICAgICAgICAgIGFsdDogJ2hlYWRlciBsb2dvJyxcbiAgICAgICAgICAgIG1vZGU6ICdib3gnIGFzIGNvbnN0LFxuICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCcgYXMgY29uc3QsXG4gICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGZsZXg6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyBoZWFkZXIgcHJvcHMsIHVzaW5nIGNhY2hlZCBkZWZhdWx0IGlmIG5vdCBwcm92aWRlZC5cbiAgICogTWVtb2l6ZWQgdG8gcmV0dXJuIGEgc3RhYmxlIG9iamVjdCByZWZlcmVuY2Ugd2hlbiBpbnB1dHMgaGF2ZW4ndCBjaGFuZ2VkLFxuICAgKiBwcmV2ZW50aW5nIGNhc2NhZGluZyBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlcyBpbiBjaGlsZCBjb21wb25lbnRzLlxuICAgKi9cbiAgZ2V0IGhlYWRlclByb3BzKCkge1xuICAgIGNvbnN0IGhlYWRlciA9IHRoaXMucHJvcHMuaGVhZGVyIHx8IHRoaXMuZGVmYXVsdEhlYWRlcjtcbiAgICBjb25zdCBscyA9IHRoaXMucHJvcHMubGFuZ3VhZ2VTZWxlY3RvcjtcbiAgICBjb25zdCBmc3MgPSB0aGlzLnByb3BzLmZvbnRTaXplU2VsZWN0b3I7XG4gICAgY29uc3Qgc2JmID0gdGhpcy5wcm9wcy5zaG93QmFja0J1dHRvbjtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuX2hwQ2FjaGUgIT09IG51bGwgJiZcbiAgICAgIHRoaXMuX2hwSW5wdXRzLmhlYWRlciA9PT0gaGVhZGVyICYmXG4gICAgICB0aGlzLl9ocElucHV0cy5scyA9PT0gbHMgJiZcbiAgICAgIHRoaXMuX2hwSW5wdXRzLmZzcyA9PT0gZnNzICYmXG4gICAgICB0aGlzLl9ocElucHV0cy5zYmYgPT09IHNiZlxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuX2hwQ2FjaGU7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9IGhlYWRlcjtcbiAgICBpZiAobHMgJiYgIWhlYWRlci50b29sYmFyLmxhbmd1YWdlU2VsZWN0b3IpIHtcbiAgICAgIHJlc3VsdCA9IHsgLi4ucmVzdWx0LCB0b29sYmFyOiB7IC4uLnJlc3VsdC50b29sYmFyLCBsYW5ndWFnZVNlbGVjdG9yOiBscyB9IH07XG4gICAgfVxuICAgIGlmIChmc3MgJiYgIWhlYWRlci50b29sYmFyLmZvbnRTaXplU2VsZWN0b3IpIHtcbiAgICAgIHJlc3VsdCA9IHsgLi4ucmVzdWx0LCB0b29sYmFyOiB7IC4uLnJlc3VsdC50b29sYmFyLCBmb250U2l6ZVNlbGVjdG9yOiBmc3MgfSB9O1xuICAgIH1cbiAgICBpZiAoc2JmKSB7XG4gICAgICByZXN1bHQgPSB7IC4uLnJlc3VsdCwgdG9vbGJhcjogeyAuLi5yZXN1bHQudG9vbGJhciwgd2l0aEJhY2s6IHRydWUgfSB9O1xuICAgIH1cblxuICAgIHRoaXMuX2hwSW5wdXRzID0geyBoZWFkZXIsIGxzLCBmc3MsIHNiZiB9O1xuICAgIHRoaXMuX2hwQ2FjaGUgPSByZXN1bHQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIHRoZW1lLlxuICAgKi9cbiAgZ2V0QmFja2dyb3VuZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnRoZW1lLklzRGFyaykge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknO1xuICAgIH1cblxuICAgIGNvbnN0IGJnID0gdGhpcy5wcm9wcy5iYWNrZ3JvdW5kO1xuICAgIGlmICghYmcpIHtcbiAgICAgIHJldHVybiAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZUNvbG9yKGJnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGhlYWRlciBhY3Rpb24gY2xpY2tzLlxuICAgKi9cbiAgb25IZWFkZXJDbGlja0hhbmRsZXIodG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25IZWFkZXJDbGljay5lbWl0KHRva2VuKTtcblxuICAgIC8vIE5hdmlnYXRlIHRvIGhvbWUgcm91dGUgaWYgY29uZmlndXJlZCBhbmQgbG9nbyB3YXMgY2xpY2tlZFxuICAgIGlmICh0b2tlbiA9PT0gJ2hlYWRlci1sb2dvJyAmJiB0aGlzLnByb3BzLmhvbWVSb3V0ZSkge1xuICAgICAgdGhpcy5uYXYubmF2aWdhdGVCeVVybCh0aGlzLnByb3BzLmhvbWVSb3V0ZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS1jb250ZW50L3BhZ2UtY29udGVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7QUFFekY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFtREgsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixZQUNVLEtBQW1CLEVBQ25CLEdBQXNCO1FBRHRCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFaaEM7O1dBRUc7UUFDTSxVQUFLLEdBQXdCLEVBQUUsQ0FBQztRQUVqQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUxRSwyRUFBMkU7UUFDakUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsa0JB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SyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7K0dBL0lVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHFKQTlDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDVCx3SkFsQ1MsWUFBWSxvSEFBRSxlQUFlLGdHQUFFLFVBQVUsd0tBQUUsWUFBWSxpS0FBRSxtQkFBbUIsaUpBQUUscUJBQXFCOzs0RkErQ2xHLG9CQUFvQjtrQkFsRGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxZQUNwRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUO2lIQWlCUSxLQUFLO3NCQUFiLEtBQUs7Z0JBbUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQ29udGVudCwgSW9uUmVmcmVzaGVyLCBJb25SZWZyZXNoZXJDb250ZW50IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBkYXRlQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3VwZGF0ZS1iYW5uZXIvdXBkYXRlLWJhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgVkFMVEVDSF9BUFBfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy9jb25maWcnO1xuaW1wb3J0IHsgUGFnZUNvbnRlbnRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgcmVzb2x2ZUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3N0eWxlcyc7XG5pbXBvcnQgeyBQYWdlUmVmcmVzaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wYWdlLXJlZnJlc2gvcGFnZS1yZWZyZXNoLnNlcnZpY2UnO1xuXG4vKipcbiAqIHZhbC1wYWdlLWNvbnRlbnRcbiAqXG4gKiBBIHBhZ2UgY29udGVudCB0ZW1wbGF0ZSB3aXRoIGNvcnBvcmF0ZSBoZWFkZXIsIG1haW4gY29udGVudCBhcmVhLFxuICogYW5kIGZvb3RlciBzbG90cy4gU3VwcG9ydHMgZGFyayBtb2RlIGFuZCBjdXN0b21pemFibGUgYmFja2dyb3VuZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcGFnZS1jb250ZW50XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaGVhZGVyOiB7IC4uLiB9LFxuICogICAgIGJhY2tncm91bmQ6ICctLW1haW4tYmFja2dyb3VuZCcsXG4gKiAgICAgaG9tZVJvdXRlOiAnLydcbiAqICAgfVwiXG4gKiAgIChvbkhlYWRlckNsaWNrKT1cImhhbmRsZUhlYWRlckFjdGlvbigkZXZlbnQpXCJcbiAqID5cbiAqICAgPGRpdiBjb250ZW50PlxuICogICAgIDwhLS0gTWFpbiBwYWdlIGNvbnRlbnQgLS0+XG4gKiAgIDwvZGl2PlxuICogICA8ZGl2IGZvb3Rlcj5cbiAqICAgICA8dmFsLWNvbXBhbnktZm9vdGVyIFtwcm9wc109XCJmb290ZXJQcm9wc1wiPjwvdmFsLWNvbXBhbnktZm9vdGVyPlxuICogICA8L2Rpdj5cbiAqIDwvdmFsLXBhZ2UtY29udGVudD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBQYWdlIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICogQG91dHB1dCBvbkhlYWRlckNsaWNrIC0gRW1pdHMgd2hlbiBhIGhlYWRlciBhY3Rpb24gaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGFnZS1jb250ZW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSGVhZGVyQ29tcG9uZW50LCBJb25Db250ZW50LCBJb25SZWZyZXNoZXIsIElvblJlZnJlc2hlckNvbnRlbnQsIFVwZGF0ZUJhbm5lckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWdlXCI+XG4gICAgICA8dmFsLWhlYWRlciBbcHJvcHNdPVwiaGVhZGVyUHJvcHNcIiAob25DbGljayk9XCJvbkhlYWRlckNsaWNrSGFuZGxlcigkZXZlbnQpXCIgLz5cbiAgICAgIDxpb24tY29udGVudFxuICAgICAgICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICctLWJhY2tncm91bmQnOiBnZXRCYWNrZ3JvdW5kKCksXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8IS0tIFB1bGwtdG8tcmVmcmVzaDogdmlzaWJsZSBzb2xvIHNpIGxhIHDDoWdpbmEgYWN0aXZhIHJlZ2lzdHLDsyB1biBoYW5kbGVyXG4gICAgICAgICAgICAgdsOtYSBQYWdlUmVmcmVzaFNlcnZpY2UgKGNvbm5lY3RQYWdlUmVmcmVzaCkuIGlvbi1yZWZyZXNoZXIgc2xvdD1cImZpeGVkXCJcbiAgICAgICAgICAgICBERUJFIHNlciBoaWpvIGRpcmVjdG8gZGUgaW9uLWNvbnRlbnQuIE1pc21vIHBhdHLDs24gcXVlIHZhbC1wYWdlLXdyYXBwZXIsXG4gICAgICAgICAgICAgcGFyYSBxdWUgbGFzIHZpc3RhcyBww7pibGljYXMgKHNlbGxlciwgYnV5LCBsaXZlKSB0YW1iacOpbiBsbyB0ZW5nYW4uIC0tPlxuICAgICAgICBAaWYgKHBhZ2VSZWZyZXNoLmhhc0hhbmRsZXIoKSkge1xuICAgICAgICAgIDxpb24tcmVmcmVzaGVyIHNsb3Q9XCJmaXhlZFwiIChpb25SZWZyZXNoKT1cIm9uUGFnZVJlZnJlc2goJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGlvbi1yZWZyZXNoZXItY29udGVudFxuICAgICAgICAgICAgICBwdWxsaW5nSWNvbj1cImNoZXZyb24tZG93bi1jaXJjbGUtb3V0bGluZVwiXG4gICAgICAgICAgICAgIHJlZnJlc2hpbmdTcGlubmVyPVwiY2lyY3VsYXJcIlxuICAgICAgICAgICAgPjwvaW9uLXJlZnJlc2hlci1jb250ZW50PlxuICAgICAgICAgIDwvaW9uLXJlZnJlc2hlcj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHNob3dVcGRhdGVCYW5uZXIpIHtcbiAgICAgICAgICA8dmFsLXVwZGF0ZS1iYW5uZXIgLz5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgPG1haW4+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9tYWluPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgLnBhZ2Utd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgbWFpbiB7XG4gICAgICBmbGV4OiAxO1xuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUNvbnRlbnRDb21wb25lbnQge1xuICAvKipcbiAgICogUGFnZSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFnZUNvbnRlbnRNZXRhZGF0YSA9IHt9O1xuXG4gIHByaXZhdGUgYXBwQ29uZmlnRW5hYmxlZCA9IGluamVjdChWQUxURUNIX0FQUF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqIEJ1cyBkZWwgcHVsbC10by1yZWZyZXNoIOKAlCBsYSBww6FnaW5hIGFjdGl2YSByZWdpc3RyYSBzdSBoYW5kbGVyIGFxdcOtLiAqL1xuICBwcm90ZWN0ZWQgcGFnZVJlZnJlc2ggPSBpbmplY3QoUGFnZVJlZnJlc2hTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRoZW1lOiBUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuYXY6IE5hdmlnYXRpb25TZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogSGFuZGxlciBkZWwgZ2VzdG8gcHVsbC10by1yZWZyZXNoIChgaW9uLXJlZnJlc2hlcmAgaW9uUmVmcmVzaCkuIERlbGVnYSBlblxuICAgKiBlbCBoYW5kbGVyIHF1ZSByZWdpc3Ryw7MgbGEgcMOhZ2luYSBhY3RpdmEgeSBjaWVycmEgZWwgc3Bpbm5lciBhbCB0ZXJtaW5hci5cbiAgICovXG4gIGFzeW5jIG9uUGFnZVJlZnJlc2goZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucGFnZVJlZnJlc2gucnVuKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElvblJlZnJlc2hlckVsZW1lbnQgfCBudWxsKT8uY29tcGxldGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IHRoZSB1cGRhdGUgYmFubmVyLlxuICAgKiBPbmx5IHNob3dzIGlmIEFwcENvbmZpZ1NlcnZpY2UgaXMgY29uZmlndXJlZCBhbmQgbm90IGRpc2FibGVkIHZpYSBwcm9wcy5cbiAgICovXG4gIGdldCBzaG93VXBkYXRlQmFubmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFwcENvbmZpZ0VuYWJsZWQgIT09IG51bGwgJiYgdGhpcy5wcm9wcy5zaG93VXBkYXRlQmFubmVyICE9PSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgaGVhZGVyIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uSGVhZGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIF9ocElucHV0czogeyBoZWFkZXI6IGFueTsgbHM6IGFueTsgZnNzOiBhbnk7IHNiZjogYW55IH0gPSB7IGhlYWRlcjogbnVsbCwgbHM6IG51bGwsIGZzczogbnVsbCwgc2JmOiBudWxsIH07XG4gIHByaXZhdGUgX2hwQ2FjaGU6IGFueSA9IG51bGw7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgaGVhZGVyIGNvbmZpZ3VyYXRpb24gKGNhY2hlZCB0byBhdm9pZCBpbmZpbml0ZSBjaGFuZ2UgZGV0ZWN0aW9uKS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEhlYWRlciA9IHtcbiAgICBib3JkZXJlZDogdHJ1ZSxcbiAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICB0b29sYmFyOiB7XG4gICAgICB3aXRoQmFjazogZmFsc2UsXG4gICAgICB3aXRoQWN0aW9uczogdHJ1ZSxcbiAgICAgIHRleHRDb2xvcjogJ2RhcmsnIGFzIGNvbnN0LFxuICAgICAgd2l0aE1lbnU6IHRydWUsXG4gICAgICB0aXRsZTogJycsXG4gICAgICBsYW5ndWFnZVNlbGVjdG9yOiB1bmRlZmluZWQgYXMgdW5kZWZpbmVkLFxuICAgICAgZm9udFNpemVTZWxlY3RvcjogdW5kZWZpbmVkIGFzIHVuZGVmaW5lZCxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRva2VuOiAnaGVhZGVyLWxvZ28nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnIGFzIGNvbnN0LFxuICAgICAgICAgIHR5cGU6ICdJTUFHRScgYXMgY29uc3QsXG4gICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgIHdpZHRoOiA4LFxuICAgICAgICAgICAgc3JjOiAnLS1tYWluLWxvZ28nLFxuICAgICAgICAgICAgYWx0OiAnaGVhZGVyIGxvZ28nLFxuICAgICAgICAgICAgbW9kZTogJ2JveCcgYXMgY29uc3QsXG4gICAgICAgICAgICBzaGFkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyBhcyBjb25zdCxcbiAgICAgICAgICAgIGxpbWl0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZmxleDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9O1xuXG4gIC8qKlxuICAgKiBHZXRzIGhlYWRlciBwcm9wcywgdXNpbmcgY2FjaGVkIGRlZmF1bHQgaWYgbm90IHByb3ZpZGVkLlxuICAgKiBNZW1vaXplZCB0byByZXR1cm4gYSBzdGFibGUgb2JqZWN0IHJlZmVyZW5jZSB3aGVuIGlucHV0cyBoYXZlbid0IGNoYW5nZWQsXG4gICAqIHByZXZlbnRpbmcgY2FzY2FkaW5nIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGVzIGluIGNoaWxkIGNvbXBvbmVudHMuXG4gICAqL1xuICBnZXQgaGVhZGVyUHJvcHMoKSB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5wcm9wcy5oZWFkZXIgfHwgdGhpcy5kZWZhdWx0SGVhZGVyO1xuICAgIGNvbnN0IGxzID0gdGhpcy5wcm9wcy5sYW5ndWFnZVNlbGVjdG9yO1xuICAgIGNvbnN0IGZzcyA9IHRoaXMucHJvcHMuZm9udFNpemVTZWxlY3RvcjtcbiAgICBjb25zdCBzYmYgPSB0aGlzLnByb3BzLnNob3dCYWNrQnV0dG9uO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5faHBDYWNoZSAhPT0gbnVsbCAmJlxuICAgICAgdGhpcy5faHBJbnB1dHMuaGVhZGVyID09PSBoZWFkZXIgJiZcbiAgICAgIHRoaXMuX2hwSW5wdXRzLmxzID09PSBscyAmJlxuICAgICAgdGhpcy5faHBJbnB1dHMuZnNzID09PSBmc3MgJiZcbiAgICAgIHRoaXMuX2hwSW5wdXRzLnNiZiA9PT0gc2JmXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5faHBDYWNoZTtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gaGVhZGVyO1xuICAgIGlmIChscyAmJiAhaGVhZGVyLnRvb2xiYXIubGFuZ3VhZ2VTZWxlY3Rvcikge1xuICAgICAgcmVzdWx0ID0geyAuLi5yZXN1bHQsIHRvb2xiYXI6IHsgLi4ucmVzdWx0LnRvb2xiYXIsIGxhbmd1YWdlU2VsZWN0b3I6IGxzIH0gfTtcbiAgICB9XG4gICAgaWYgKGZzcyAmJiAhaGVhZGVyLnRvb2xiYXIuZm9udFNpemVTZWxlY3Rvcikge1xuICAgICAgcmVzdWx0ID0geyAuLi5yZXN1bHQsIHRvb2xiYXI6IHsgLi4ucmVzdWx0LnRvb2xiYXIsIGZvbnRTaXplU2VsZWN0b3I6IGZzcyB9IH07XG4gICAgfVxuICAgIGlmIChzYmYpIHtcbiAgICAgIHJlc3VsdCA9IHsgLi4ucmVzdWx0LCB0b29sYmFyOiB7IC4uLnJlc3VsdC50b29sYmFyLCB3aXRoQmFjazogdHJ1ZSB9IH07XG4gICAgfVxuXG4gICAgdGhpcy5faHBJbnB1dHMgPSB7IGhlYWRlciwgbHMsIGZzcywgc2JmIH07XG4gICAgdGhpcy5faHBDYWNoZSA9IHJlc3VsdDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJhY2tncm91bmQgY29sb3IgYmFzZWQgb24gdGhlbWUuXG4gICAqL1xuICBnZXRCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudGhlbWUuSXNEYXJrKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSc7XG4gICAgfVxuXG4gICAgY29uc3QgYmcgPSB0aGlzLnByb3BzLmJhY2tncm91bmQ7XG4gICAgaWYgKCFiZykge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlQ29sb3IoYmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgaGVhZGVyIGFjdGlvbiBjbGlja3MuXG4gICAqL1xuICBvbkhlYWRlckNsaWNrSGFuZGxlcih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkhlYWRlckNsaWNrLmVtaXQodG9rZW4pO1xuXG4gICAgLy8gTmF2aWdhdGUgdG8gaG9tZSByb3V0ZSBpZiBjb25maWd1cmVkIGFuZCBsb2dvIHdhcyBjbGlja2VkXG4gICAgaWYgKHRva2VuID09PSAnaGVhZGVyLWxvZ28nICYmIHRoaXMucHJvcHMuaG9tZVJvdXRlKSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucHJvcHMuaG9tZVJvdXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.150';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNTAnO1xuIl19
|
|
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
|
|
|
56
56
|
* Current version of valtech-components.
|
|
57
57
|
* This is automatically updated during the publish process.
|
|
58
58
|
*/
|
|
59
|
-
const VERSION = '4.0.
|
|
59
|
+
const VERSION = '4.0.150';
|
|
60
60
|
|
|
61
61
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
62
62
|
let isRefreshing = false;
|
|
@@ -59932,6 +59932,8 @@ class PageContentComponent {
|
|
|
59932
59932
|
*/
|
|
59933
59933
|
this.props = {};
|
|
59934
59934
|
this.appConfigEnabled = inject(VALTECH_APP_CONFIG, { optional: true });
|
|
59935
|
+
/** Bus del pull-to-refresh — la página activa registra su handler aquí. */
|
|
59936
|
+
this.pageRefresh = inject(PageRefreshService);
|
|
59935
59937
|
/**
|
|
59936
59938
|
* Emits when a header action is clicked.
|
|
59937
59939
|
*/
|
|
@@ -59974,6 +59976,18 @@ class PageContentComponent {
|
|
|
59974
59976
|
},
|
|
59975
59977
|
};
|
|
59976
59978
|
}
|
|
59979
|
+
/**
|
|
59980
|
+
* Handler del gesto pull-to-refresh (`ion-refresher` ionRefresh). Delega en
|
|
59981
|
+
* el handler que registró la página activa y cierra el spinner al terminar.
|
|
59982
|
+
*/
|
|
59983
|
+
async onPageRefresh(event) {
|
|
59984
|
+
try {
|
|
59985
|
+
await this.pageRefresh.run();
|
|
59986
|
+
}
|
|
59987
|
+
finally {
|
|
59988
|
+
event.target?.complete();
|
|
59989
|
+
}
|
|
59990
|
+
}
|
|
59977
59991
|
/**
|
|
59978
59992
|
* Whether to show the update banner.
|
|
59979
59993
|
* Only shows if AppConfigService is configured and not disabled via props.
|
|
@@ -60045,6 +60059,18 @@ class PageContentComponent {
|
|
|
60045
60059
|
'--background': getBackground(),
|
|
60046
60060
|
}"
|
|
60047
60061
|
>
|
|
60062
|
+
<!-- Pull-to-refresh: visible solo si la página activa registró un handler
|
|
60063
|
+
vía PageRefreshService (connectPageRefresh). ion-refresher slot="fixed"
|
|
60064
|
+
DEBE ser hijo directo de ion-content. Mismo patrón que val-page-wrapper,
|
|
60065
|
+
para que las vistas públicas (seller, buy, live) también lo tengan. -->
|
|
60066
|
+
@if (pageRefresh.hasHandler()) {
|
|
60067
|
+
<ion-refresher slot="fixed" (ionRefresh)="onPageRefresh($event)">
|
|
60068
|
+
<ion-refresher-content
|
|
60069
|
+
pullingIcon="chevron-down-circle-outline"
|
|
60070
|
+
refreshingSpinner="circular"
|
|
60071
|
+
></ion-refresher-content>
|
|
60072
|
+
</ion-refresher>
|
|
60073
|
+
}
|
|
60048
60074
|
@if (showUpdateBanner) {
|
|
60049
60075
|
<val-update-banner />
|
|
60050
60076
|
}
|
|
@@ -60057,11 +60083,11 @@ class PageContentComponent {
|
|
|
60057
60083
|
</ion-content>
|
|
60058
60084
|
<ng-content select="[extra-footer]"></ng-content>
|
|
60059
60085
|
</div>
|
|
60060
|
-
`, isInline: true, styles: [".page-wrapper{display:flex;flex-direction:column;min-height:100%}main{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: HeaderComponent, selector: "val-header", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: UpdateBannerComponent, selector: "val-update-banner" }] }); }
|
|
60086
|
+
`, isInline: true, styles: [".page-wrapper{display:flex;flex-direction:column;min-height:100%}main{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: HeaderComponent, selector: "val-header", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: UpdateBannerComponent, selector: "val-update-banner" }] }); }
|
|
60061
60087
|
}
|
|
60062
60088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageContentComponent, decorators: [{
|
|
60063
60089
|
type: Component,
|
|
60064
|
-
args: [{ selector: 'val-page-content', standalone: true, imports: [CommonModule, HeaderComponent, IonContent, UpdateBannerComponent], template: `
|
|
60090
|
+
args: [{ selector: 'val-page-content', standalone: true, imports: [CommonModule, HeaderComponent, IonContent, IonRefresher, IonRefresherContent, UpdateBannerComponent], template: `
|
|
60065
60091
|
<div class="ion-page">
|
|
60066
60092
|
<val-header [props]="headerProps" (onClick)="onHeaderClickHandler($event)" />
|
|
60067
60093
|
<ion-content
|
|
@@ -60070,6 +60096,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
60070
60096
|
'--background': getBackground(),
|
|
60071
60097
|
}"
|
|
60072
60098
|
>
|
|
60099
|
+
<!-- Pull-to-refresh: visible solo si la página activa registró un handler
|
|
60100
|
+
vía PageRefreshService (connectPageRefresh). ion-refresher slot="fixed"
|
|
60101
|
+
DEBE ser hijo directo de ion-content. Mismo patrón que val-page-wrapper,
|
|
60102
|
+
para que las vistas públicas (seller, buy, live) también lo tengan. -->
|
|
60103
|
+
@if (pageRefresh.hasHandler()) {
|
|
60104
|
+
<ion-refresher slot="fixed" (ionRefresh)="onPageRefresh($event)">
|
|
60105
|
+
<ion-refresher-content
|
|
60106
|
+
pullingIcon="chevron-down-circle-outline"
|
|
60107
|
+
refreshingSpinner="circular"
|
|
60108
|
+
></ion-refresher-content>
|
|
60109
|
+
</ion-refresher>
|
|
60110
|
+
}
|
|
60073
60111
|
@if (showUpdateBanner) {
|
|
60074
60112
|
<val-update-banner />
|
|
60075
60113
|
}
|