valtech-components 2.0.510 → 2.0.511

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/esm2022/lib/components/molecules/refresher/refresher.component.mjs +254 -0
  2. package/esm2022/lib/components/molecules/refresher/types.mjs +15 -0
  3. package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +618 -0
  4. package/esm2022/lib/components/organisms/infinite-list/types.mjs +15 -0
  5. package/esm2022/lib/components/templates/page-template/page-template.component.mjs +3 -3
  6. package/esm2022/lib/services/pagination/index.mjs +5 -0
  7. package/esm2022/lib/services/pagination/pagination.service.mjs +218 -0
  8. package/esm2022/lib/services/pagination/types.mjs +14 -0
  9. package/esm2022/lib/services/skeleton/config.mjs +79 -0
  10. package/esm2022/lib/services/skeleton/directives/loading.directive.mjs +215 -0
  11. package/esm2022/lib/services/skeleton/index.mjs +16 -0
  12. package/esm2022/lib/services/skeleton/skeleton.service.mjs +198 -0
  13. package/esm2022/lib/services/skeleton/templates/detail-skeleton.component.mjs +223 -0
  14. package/esm2022/lib/services/skeleton/templates/form-skeleton.component.mjs +127 -0
  15. package/esm2022/lib/services/skeleton/templates/grid-skeleton.component.mjs +154 -0
  16. package/esm2022/lib/services/skeleton/templates/list-skeleton.component.mjs +110 -0
  17. package/esm2022/lib/services/skeleton/templates/profile-skeleton.component.mjs +207 -0
  18. package/esm2022/lib/services/skeleton/templates/table-skeleton.component.mjs +116 -0
  19. package/esm2022/lib/services/skeleton/types.mjs +11 -0
  20. package/esm2022/public-api.mjs +12 -1
  21. package/fesm2022/valtech-components.mjs +3467 -950
  22. package/fesm2022/valtech-components.mjs.map +1 -1
  23. package/lib/components/molecules/refresher/refresher.component.d.ts +79 -0
  24. package/lib/components/molecules/refresher/types.d.ts +86 -0
  25. package/lib/components/organisms/infinite-list/infinite-list.component.d.ts +111 -0
  26. package/lib/components/organisms/infinite-list/types.d.ts +197 -0
  27. package/lib/services/pagination/index.d.ts +2 -0
  28. package/lib/services/pagination/pagination.service.d.ts +43 -0
  29. package/lib/services/pagination/types.d.ts +113 -0
  30. package/lib/services/skeleton/config.d.ts +30 -0
  31. package/lib/services/skeleton/directives/loading.directive.d.ts +71 -0
  32. package/lib/services/skeleton/index.d.ts +10 -0
  33. package/lib/services/skeleton/skeleton.service.d.ts +127 -0
  34. package/lib/services/skeleton/templates/detail-skeleton.component.d.ts +18 -0
  35. package/lib/services/skeleton/templates/form-skeleton.component.d.ts +22 -0
  36. package/lib/services/skeleton/templates/grid-skeleton.component.d.ts +18 -0
  37. package/lib/services/skeleton/templates/list-skeleton.component.d.ts +17 -0
  38. package/lib/services/skeleton/templates/profile-skeleton.component.d.ts +20 -0
  39. package/lib/services/skeleton/templates/table-skeleton.component.d.ts +17 -0
  40. package/lib/services/skeleton/types.d.ts +111 -0
  41. package/package.json +1 -1
  42. package/public-api.d.ts +6 -0
@@ -0,0 +1,254 @@
1
+ import { Component, Input, Output, EventEmitter, signal, ViewChild, ContentChild, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IonRefresher, IonRefresherContent, IonSpinner, IonText, } from '@ionic/angular/standalone';
4
+ import { DEFAULT_REFRESHER_METADATA, } from './types';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ /**
8
+ * Componente de pull-to-refresh para movil y web.
9
+ *
10
+ * @example
11
+ * <!-- Uso basico -->
12
+ * <val-refresher
13
+ * [props]="{
14
+ * color: 'primary',
15
+ * pullingText: 'Arrastra para actualizar',
16
+ * refreshingText: 'Cargando...'
17
+ * }"
18
+ * (refresh)="onRefresh($event)"
19
+ * >
20
+ * <ion-content>
21
+ * <!-- Contenido scrolleable -->
22
+ * </ion-content>
23
+ * </val-refresher>
24
+ *
25
+ * @example
26
+ * <!-- Con indicador personalizado -->
27
+ * <val-refresher [props]="{ color: 'primary' }" (refresh)="onRefresh($event)">
28
+ * <ng-template #pullingIndicator let-progress="progress">
29
+ * <div class="custom-indicator">
30
+ * <ion-icon name="arrow-down" [style.transform]="'rotate(' + progress * 180 + 'deg)'"></ion-icon>
31
+ * </div>
32
+ * </ng-template>
33
+ * <ion-content>...</ion-content>
34
+ * </val-refresher>
35
+ */
36
+ export class RefresherComponent {
37
+ constructor() {
38
+ /** Configuracion del refresher */
39
+ this.props = {};
40
+ /** Evento emitido cuando se activa el refresh */
41
+ this.refresh = new EventEmitter();
42
+ /** Evento de progreso durante el pull */
43
+ this.pullProgressChange = new EventEmitter();
44
+ /** Evento de cambio de estado */
45
+ this.stateChange = new EventEmitter();
46
+ /** Estado actual del refresher */
47
+ this.state = signal('idle');
48
+ /** Progreso actual del pull (0-1) */
49
+ this.pullProgress = signal(0);
50
+ }
51
+ /** Props combinados con defaults */
52
+ get mergedProps() {
53
+ return { ...DEFAULT_REFRESHER_METADATA, ...this.props };
54
+ }
55
+ /** Si hay indicadores personalizados */
56
+ get hasCustomIndicator() {
57
+ return !!(this.pullingIndicator ||
58
+ this.refreshingIndicator ||
59
+ this.completingIndicator ||
60
+ this.props.indicatorConfig);
61
+ }
62
+ /**
63
+ * Activa programaticamente el refresh.
64
+ */
65
+ triggerRefresh() {
66
+ this.state.set('refreshing');
67
+ this.emitRefreshEvent();
68
+ }
69
+ /**
70
+ * Completa la operacion de refresh actual.
71
+ */
72
+ complete() {
73
+ this.state.set('completing');
74
+ this.stateChange.emit('completing');
75
+ this.ionRefresher?.complete();
76
+ // Resetear a idle despues de la animacion
77
+ setTimeout(() => {
78
+ this.state.set('idle');
79
+ this.stateChange.emit('idle');
80
+ }, this.mergedProps.closeDuration ?? 280);
81
+ }
82
+ /**
83
+ * Cancela la operacion de refresh actual.
84
+ */
85
+ cancel() {
86
+ this.ionRefresher?.cancel();
87
+ this.state.set('idle');
88
+ this.stateChange.emit('idle');
89
+ }
90
+ /** Handler para evento ionRefresh */
91
+ onIonRefresh(event) {
92
+ this.state.set('refreshing');
93
+ this.stateChange.emit('refreshing');
94
+ this.emitRefreshEvent();
95
+ }
96
+ /** Handler para evento ionPull */
97
+ onIonPull(event) {
98
+ const detail = event.detail;
99
+ const progress = Math.min(detail.progress, 1);
100
+ this.pullProgress.set(progress);
101
+ this.pullProgressChange.emit({
102
+ progress,
103
+ thresholdReached: progress >= 1,
104
+ });
105
+ }
106
+ /** Handler para evento ionStart */
107
+ onIonStart() {
108
+ this.state.set('pulling');
109
+ this.stateChange.emit('pulling');
110
+ }
111
+ emitRefreshEvent() {
112
+ const event = {
113
+ complete: () => this.complete(),
114
+ cancel: () => this.cancel(),
115
+ timestamp: new Date(),
116
+ };
117
+ this.refresh.emit(event);
118
+ }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RefresherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RefresherComponent, isStandalone: true, selector: "val-refresher", inputs: { props: "props" }, outputs: { refresh: "refresh", pullProgressChange: "pullProgressChange", stateChange: "stateChange" }, queries: [{ propertyName: "pullingIndicator", first: true, predicate: ["pullingIndicator"], descendants: true }, { propertyName: "refreshingIndicator", first: true, predicate: ["refreshingIndicator"], descendants: true }, { propertyName: "completingIndicator", first: true, predicate: ["completingIndicator"], descendants: true }], viewQueries: [{ propertyName: "ionRefresher", first: true, predicate: ["refresher"], descendants: true }], ngImport: i0, template: `
121
+ <ion-refresher
122
+ #refresher
123
+ slot="fixed"
124
+ [disabled]="mergedProps.disabled"
125
+ [pullMin]="mergedProps.pullThreshold"
126
+ [pullMax]="mergedProps.pullMax"
127
+ [pullFactor]="mergedProps.pullFactor"
128
+ [snapbackDuration]="mergedProps.snapbackDuration"
129
+ [closeDuration]="mergedProps.closeDuration"
130
+ (ionRefresh)="onIonRefresh($event)"
131
+ (ionPull)="onIonPull($event)"
132
+ (ionStart)="onIonStart()"
133
+ >
134
+ @if (hasCustomIndicator) {
135
+ <!-- Custom indicator templates -->
136
+ <div class="refresher-custom-content">
137
+ @switch (state()) {
138
+ @case ('pulling') {
139
+ @if (pullingIndicator) {
140
+ <ng-container
141
+ *ngTemplateOutlet="pullingIndicator; context: { progress: pullProgress() }"
142
+ ></ng-container>
143
+ }
144
+ }
145
+ @case ('refreshing') {
146
+ @if (refreshingIndicator) {
147
+ <ng-container *ngTemplateOutlet="refreshingIndicator"></ng-container>
148
+ } @else {
149
+ <ion-spinner [name]="mergedProps.spinnerType" [color]="mergedProps.color"></ion-spinner>
150
+ @if (mergedProps.refreshingText) {
151
+ <ion-text [color]="mergedProps.color">{{ mergedProps.refreshingText }}</ion-text>
152
+ }
153
+ }
154
+ }
155
+ @case ('completing') {
156
+ @if (completingIndicator) {
157
+ <ng-container *ngTemplateOutlet="completingIndicator"></ng-container>
158
+ }
159
+ }
160
+ }
161
+ </div>
162
+ } @else {
163
+ <!-- Default Ionic refresher content -->
164
+ <ion-refresher-content
165
+ [pullingIcon]="mergedProps.spinnerType === 'crescent' ? 'chevron-down-circle-outline' : undefined"
166
+ [pullingText]="mergedProps.pullingText"
167
+ [refreshingSpinner]="mergedProps.spinnerType"
168
+ [refreshingText]="mergedProps.refreshingText"
169
+ ></ion-refresher-content>
170
+ }
171
+ </ion-refresher>
172
+
173
+ <ng-content></ng-content>
174
+ `, isInline: true, styles: [":host{display:block;position:relative}.refresher-custom-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
175
+ }
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RefresherComponent, decorators: [{
177
+ type: Component,
178
+ args: [{ selector: 'val-refresher', standalone: true, imports: [CommonModule, IonRefresher, IonRefresherContent, IonSpinner, IonText], template: `
179
+ <ion-refresher
180
+ #refresher
181
+ slot="fixed"
182
+ [disabled]="mergedProps.disabled"
183
+ [pullMin]="mergedProps.pullThreshold"
184
+ [pullMax]="mergedProps.pullMax"
185
+ [pullFactor]="mergedProps.pullFactor"
186
+ [snapbackDuration]="mergedProps.snapbackDuration"
187
+ [closeDuration]="mergedProps.closeDuration"
188
+ (ionRefresh)="onIonRefresh($event)"
189
+ (ionPull)="onIonPull($event)"
190
+ (ionStart)="onIonStart()"
191
+ >
192
+ @if (hasCustomIndicator) {
193
+ <!-- Custom indicator templates -->
194
+ <div class="refresher-custom-content">
195
+ @switch (state()) {
196
+ @case ('pulling') {
197
+ @if (pullingIndicator) {
198
+ <ng-container
199
+ *ngTemplateOutlet="pullingIndicator; context: { progress: pullProgress() }"
200
+ ></ng-container>
201
+ }
202
+ }
203
+ @case ('refreshing') {
204
+ @if (refreshingIndicator) {
205
+ <ng-container *ngTemplateOutlet="refreshingIndicator"></ng-container>
206
+ } @else {
207
+ <ion-spinner [name]="mergedProps.spinnerType" [color]="mergedProps.color"></ion-spinner>
208
+ @if (mergedProps.refreshingText) {
209
+ <ion-text [color]="mergedProps.color">{{ mergedProps.refreshingText }}</ion-text>
210
+ }
211
+ }
212
+ }
213
+ @case ('completing') {
214
+ @if (completingIndicator) {
215
+ <ng-container *ngTemplateOutlet="completingIndicator"></ng-container>
216
+ }
217
+ }
218
+ }
219
+ </div>
220
+ } @else {
221
+ <!-- Default Ionic refresher content -->
222
+ <ion-refresher-content
223
+ [pullingIcon]="mergedProps.spinnerType === 'crescent' ? 'chevron-down-circle-outline' : undefined"
224
+ [pullingText]="mergedProps.pullingText"
225
+ [refreshingSpinner]="mergedProps.spinnerType"
226
+ [refreshingText]="mergedProps.refreshingText"
227
+ ></ion-refresher-content>
228
+ }
229
+ </ion-refresher>
230
+
231
+ <ng-content></ng-content>
232
+ `, styles: [":host{display:block;position:relative}.refresher-custom-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px}\n"] }]
233
+ }], propDecorators: { ionRefresher: [{
234
+ type: ViewChild,
235
+ args: ['refresher']
236
+ }], pullingIndicator: [{
237
+ type: ContentChild,
238
+ args: ['pullingIndicator']
239
+ }], refreshingIndicator: [{
240
+ type: ContentChild,
241
+ args: ['refreshingIndicator']
242
+ }], completingIndicator: [{
243
+ type: ContentChild,
244
+ args: ['completingIndicator']
245
+ }], props: [{
246
+ type: Input
247
+ }], refresh: [{
248
+ type: Output
249
+ }], pullProgressChange: [{
250
+ type: Output
251
+ }], stateChange: [{
252
+ type: Output
253
+ }] } });
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcmVmcmVzaGVyL3JlZnJlc2hlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFLTCwwQkFBMEIsR0FDM0IsTUFBTSxTQUFTLENBQUM7OztBQUVqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQThFSCxNQUFNLE9BQU8sa0JBQWtCO0lBN0UvQjtRQXFGRSxrQ0FBa0M7UUFDekIsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFFdkMsaURBQWlEO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVyRCx5Q0FBeUM7UUFDL0IsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFcEUsaUNBQWlDO1FBQ3ZCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFM0Qsa0NBQWtDO1FBQ3pCLFVBQUssR0FBRyxNQUFNLENBQWlCLE1BQU0sQ0FBQyxDQUFDO1FBRWhELHFDQUFxQztRQUM1QixpQkFBWSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztLQWtGM0M7SUFoRkMsb0NBQW9DO0lBQ3BDLElBQUksV0FBVztRQUNiLE9BQU8sRUFBRSxHQUFHLDBCQUEwQixFQUFFLEdBQUcsSUFBSSxDQUFD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Ozs7Ozs7Ozs7Ozs7Ozs7R0FzRFQsNk9BdkRTLFlBQVksc01BQUUsWUFBWSxpS0FBRSxtQkFBbUIsaUpBQUUsVUFBVSx5R0FBRSxPQUFPOzs0RkEwRW5FLGtCQUFrQjtrQkE3RTlCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUNyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0RUOzhCQW9CdUIsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXO2dCQUdZLGdCQUFnQjtzQkFBakQsWUFBWTt1QkFBQyxrQkFBa0I7Z0JBQ0ssbUJBQW1CO3NCQUF2RCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFDRSxtQkFBbUI7c0JBQXZELFlBQVk7dUJBQUMscUJBQXFCO2dCQUcxQixLQUFLO3NCQUFiLEtBQUs7Z0JBR0ksT0FBTztzQkFBaEIsTUFBTTtnQkFHRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSW9uUmVmcmVzaGVyLFxuICBJb25SZWZyZXNoZXJDb250ZW50LFxuICBJb25TcGlubmVyLFxuICBJb25UZXh0LFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7XG4gIFJlZnJlc2hlck1ldGFkYXRhLFxuICBSZWZyZXNoZXJTdGF0ZSxcbiAgUmVmcmVzaEV2ZW50LFxuICBSZWZyZXNoUHVsbEV2ZW50LFxuICBERUZBVUxUX1JFRlJFU0hFUl9NRVRBREFUQSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBkZSBwdWxsLXRvLXJlZnJlc2ggcGFyYSBtb3ZpbCB5IHdlYi5cbiAqXG4gKiBAZXhhbXBsZVxuICogPCEtLSBVc28gYmFzaWNvIC0tPlxuICogPHZhbC1yZWZyZXNoZXJcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICogICAgIHB1bGxpbmdUZXh0OiAnQXJyYXN0cmEgcGFyYSBhY3R1YWxpemFyJyxcbiAqICAgICByZWZyZXNoaW5nVGV4dDogJ0NhcmdhbmRvLi4uJ1xuICogICB9XCJcbiAqICAgKHJlZnJlc2gpPVwib25SZWZyZXNoKCRldmVudClcIlxuICogPlxuICogICA8aW9uLWNvbnRlbnQ+XG4gKiAgICAgPCEtLSBDb250ZW5pZG8gc2Nyb2xsZWFibGUgLS0+XG4gKiAgIDwvaW9uLWNvbnRlbnQ+XG4gKiA8L3ZhbC1yZWZyZXNoZXI+XG4gKlxuICogQGV4YW1wbGVcbiAqIDwhLS0gQ29uIGluZGljYWRvciBwZXJzb25hbGl6YWRvIC0tPlxuICogPHZhbC1yZWZyZXNoZXIgW3Byb3BzXT1cInsgY29sb3I6ICdwcmltYXJ5JyB9XCIgKHJlZnJlc2gpPVwib25SZWZyZXNoKCRldmVudClcIj5cbiAqICAgPG5nLXRlbXBsYXRlICNwdWxsaW5nSW5kaWNhdG9yIGxldC1wcm9ncmVzcz1cInByb2dyZXNzXCI+XG4gKiAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbmRpY2F0b3JcIj5cbiAqICAgICAgIDxpb24taWNvbiBuYW1lPVwiYXJyb3ctZG93blwiIFtzdHlsZS50cmFuc2Zvcm1dPVwiJ3JvdGF0ZSgnICsgcHJvZ3Jlc3MgKiAxODAgKyAnZGVnKSdcIj48L2lvbi1pY29uPlxuICogICAgIDwvZGl2PlxuICogICA8L25nLXRlbXBsYXRlPlxuICogICA8aW9uLWNvbnRlbnQ+Li4uPC9pb24tY29udGVudD5cbiAqIDwvdmFsLXJlZnJlc2hlcj5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXJlZnJlc2hlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblJlZnJlc2hlciwgSW9uUmVmcmVzaGVyQ29udGVudCwgSW9uU3Bpbm5lciwgSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1yZWZyZXNoZXJcbiAgICAgICNyZWZyZXNoZXJcbiAgICAgIHNsb3Q9XCJmaXhlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwibWVyZ2VkUHJvcHMuZGlzYWJsZWRcIlxuICAgICAgW3B1bGxNaW5dPVwibWVyZ2VkUHJvcHMucHVsbFRocmVzaG9sZFwiXG4gICAgICBbcHVsbE1heF09XCJtZXJnZWRQcm9wcy5wdWxsTWF4XCJcbiAgICAgIFtwdWxsRmFjdG9yXT1cIm1lcmdlZFByb3BzLnB1bGxGYWN0b3JcIlxuICAgICAgW3NuYXBiYWNrRHVyYXRpb25dPVwibWVyZ2VkUHJvcHMuc25hcGJhY2tEdXJhdGlvblwiXG4gICAgICBbY2xvc2VEdXJhdGlvbl09XCJtZXJnZWRQcm9wcy5jbG9zZUR1cmF0aW9uXCJcbiAgICAgIChpb25SZWZyZXNoKT1cIm9uSW9uUmVmcmVzaCgkZXZlbnQpXCJcbiAgICAgIChpb25QdWxsKT1cIm9uSW9uUHVsbCgkZXZlbnQpXCJcbiAgICAgIChpb25TdGFydCk9XCJvbklvblN0YXJ0KClcIlxuICAgID5cbiAgICAgIEBpZiAoaGFzQ3VzdG9tSW5kaWNhdG9yKSB7XG4gICAgICAgIDwhLS0gQ3VzdG9tIGluZGljYXRvciB0ZW1wbGF0ZXMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWZyZXNoZXItY3VzdG9tLWNvbnRlbnRcIj5cbiAgICAgICAgICBAc3dpdGNoIChzdGF0ZSgpKSB7XG4gICAgICAgICAgICBAY2FzZSAoJ3B1bGxpbmcnKSB7XG4gICAgICAgICAgICAgIEBpZiAocHVsbGluZ0luZGljYXRvcikge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicHVsbGluZ0luZGljYXRvcjsgY29udGV4dDogeyBwcm9ncmVzczogcHVsbFByb2dyZXNzKCkgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3JlZnJlc2hpbmcnKSB7XG4gICAgICAgICAgICAgIEBpZiAocmVmcmVzaGluZ0luZGljYXRvcikge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWZyZXNoaW5nSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBbbmFtZV09XCJtZXJnZWRQcm9wcy5zcGlubmVyVHlwZVwiIFtjb2xvcl09XCJtZXJnZWRQcm9wcy5jb2xvclwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgQGlmIChtZXJnZWRQcm9wcy5yZWZyZXNoaW5nVGV4dCkge1xuICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0IFtjb2xvcl09XCJtZXJnZWRQcm9wcy5jb2xvclwiPnt7IG1lcmdlZFByb3BzLnJlZnJlc2hpbmdUZXh0IH19PC9pb24tdGV4dD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlICgnY29tcGxldGluZycpIHtcbiAgICAgICAgICAgICAgQGlmIChjb21wbGV0aW5nSW5kaWNhdG9yKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbXBsZXRpbmdJbmRpY2F0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPCEtLSBEZWZhdWx0IElvbmljIHJlZnJlc2hlciBjb250ZW50IC0tPlxuICAgICAgICA8aW9uLXJlZnJlc2hlci1jb250ZW50XG4gICAgICAgICAgW3B1bGxpbmdJY29uXT1cIm1lcmdlZFByb3BzLnNwaW5uZXJUeXBlID09PSAnY3Jlc2NlbnQnID8gJ2NoZXZyb24tZG93bi1jaXJjbGUtb3V0bGluZScgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIFtwdWxsaW5nVGV4dF09XCJtZXJnZWRQcm9wcy5wdWxsaW5nVGV4dFwiXG4gICAgICAgICAgW3JlZnJlc2hpbmdTcGlubmVyXT1cIm1lcmdlZFByb3BzLnNwaW5uZXJUeXBlXCJcbiAgICAgICAgICBbcmVmcmVzaGluZ1RleHRdPVwibWVyZ2VkUHJvcHMucmVmcmVzaGluZ1RleHRcIlxuICAgICAgICA+PC9pb24tcmVmcmVzaGVyLWNvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9pb24tcmVmcmVzaGVyPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5yZWZyZXNoZXItY3VzdG9tLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVmcmVzaGVyQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgncmVmcmVzaGVyJykgaW9uUmVmcmVzaGVyITogSW9uUmVmcmVzaGVyO1xuXG4gIC8qKiBUZW1wbGF0ZXMgcGVyc29uYWxpemFkb3MgdmlhIGNvbnRlbnQgcHJvamVjdGlvbiAqL1xuICBAQ29udGVudENoaWxkKCdwdWxsaW5nSW5kaWNhdG9yJykgcHVsbGluZ0luZGljYXRvcj86IFRlbXBsYXRlUmVmPHsgcHJvZ3Jlc3M6IG51bWJlciB9PjtcbiAgQENvbnRlbnRDaGlsZCgncmVmcmVzaGluZ0luZGljYXRvcicpIHJlZnJlc2hpbmdJbmRpY2F0b3I/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgQENvbnRlbnRDaGlsZCgnY29tcGxldGluZ0luZGljYXRvcicpIGNvbXBsZXRpbmdJbmRpY2F0b3I/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAvKiogQ29uZmlndXJhY2lvbiBkZWwgcmVmcmVzaGVyICovXG4gIEBJbnB1dCgpIHByb3BzOiBSZWZyZXNoZXJNZXRhZGF0YSA9IHt9O1xuXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBjdWFuZG8gc2UgYWN0aXZhIGVsIHJlZnJlc2ggKi9cbiAgQE91dHB1dCgpIHJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyPFJlZnJlc2hFdmVudD4oKTtcblxuICAvKiogRXZlbnRvIGRlIHByb2dyZXNvIGR1cmFudGUgZWwgcHVsbCAqL1xuICBAT3V0cHV0KCkgcHVsbFByb2dyZXNzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWZyZXNoUHVsbEV2ZW50PigpO1xuXG4gIC8qKiBFdmVudG8gZGUgY2FtYmlvIGRlIGVzdGFkbyAqL1xuICBAT3V0cHV0KCkgc3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlZnJlc2hlclN0YXRlPigpO1xuXG4gIC8qKiBFc3RhZG8gYWN0dWFsIGRlbCByZWZyZXNoZXIgKi9cbiAgcmVhZG9ubHkgc3RhdGUgPSBzaWduYWw8UmVmcmVzaGVyU3RhdGU+KCdpZGxlJyk7XG5cbiAgLyoqIFByb2dyZXNvIGFjdHVhbCBkZWwgcHVsbCAoMC0xKSAqL1xuICByZWFkb25seSBwdWxsUHJvZ3Jlc3MgPSBzaWduYWw8bnVtYmVyPigwKTtcblxuICAvKiogUHJvcHMgY29tYmluYWRvcyBjb24gZGVmYXVsdHMgKi9cbiAgZ2V0IG1lcmdlZFByb3BzKCk6IFJlZnJlc2hlck1ldGFkYXRhIHtcbiAgICByZXR1cm4geyAuLi5ERUZBVUxUX1JFRlJFU0hFUl9NRVRBREFUQSwgLi4udGhpcy5wcm9wcyB9O1xuICB9XG5cbiAgLyoqIFNpIGhheSBpbmRpY2Fkb3JlcyBwZXJzb25hbGl6YWRvcyAqL1xuICBnZXQgaGFzQ3VzdG9tSW5kaWNhdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMucHVsbGluZ0luZGljYXRvciB8fFxuICAgICAgdGhpcy5yZWZyZXNoaW5nSW5kaWNhdG9yIHx8XG4gICAgICB0aGlzLmNvbXBsZXRpbmdJbmRpY2F0b3IgfHxcbiAgICAgIHRoaXMucHJvcHMuaW5kaWNhdG9yQ29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmEgcHJvZ3JhbWF0aWNhbWVudGUgZWwgcmVmcmVzaC5cbiAgICovXG4gIHRyaWdnZXJSZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUuc2V0KCdyZWZyZXNoaW5nJyk7XG4gICAgdGhpcy5lbWl0UmVmcmVzaEV2ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGxldGEgbGEgb3BlcmFjaW9uIGRlIHJlZnJlc2ggYWN0dWFsLlxuICAgKi9cbiAgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5zZXQoJ2NvbXBsZXRpbmcnKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoJ2NvbXBsZXRpbmcnKTtcbiAgICB0aGlzLmlvblJlZnJlc2hlcj8uY29tcGxldGUoKTtcblxuICAgIC8vIFJlc2V0ZWFyIGEgaWRsZSBkZXNwdWVzIGRlIGxhIGFuaW1hY2lvblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZS5zZXQoJ2lkbGUnKTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCgnaWRsZScpO1xuICAgIH0sIHRoaXMubWVyZ2VkUHJvcHMuY2xvc2VEdXJhdGlvbiA/PyAyODApO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbGEgbGEgb3BlcmFjaW9uIGRlIHJlZnJlc2ggYWN0dWFsLlxuICAgKi9cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuaW9uUmVmcmVzaGVyPy5jYW5jZWwoKTtcbiAgICB0aGlzLnN0YXRlLnNldCgnaWRsZScpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCgnaWRsZScpO1xuICB9XG5cbiAgLyoqIEhhbmRsZXIgcGFyYSBldmVudG8gaW9uUmVmcmVzaCAqL1xuICBvbklvblJlZnJlc2goZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5zZXQoJ3JlZnJlc2hpbmcnKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoJ3JlZnJlc2hpbmcnKTtcbiAgICB0aGlzLmVtaXRSZWZyZXNoRXZlbnQoKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGVyIHBhcmEgZXZlbnRvIGlvblB1bGwgKi9cbiAgb25Jb25QdWxsKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRldGFpbCA9IGV2ZW50LmRldGFpbDtcbiAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGgubWluKGRldGFpbC5wcm9ncmVzcywgMSk7XG4gICAgdGhpcy5wdWxsUHJvZ3Jlc3Muc2V0KHByb2dyZXNzKTtcblxuICAgIHRoaXMucHVsbFByb2dyZXNzQ2hhbmdlLmVtaXQoe1xuICAgICAgcHJvZ3Jlc3MsXG4gICAgICB0aHJlc2hvbGRSZWFjaGVkOiBwcm9ncmVzcyA+PSAxLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEhhbmRsZXIgcGFyYSBldmVudG8gaW9uU3RhcnQgKi9cbiAgb25Jb25TdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnNldCgncHVsbGluZycpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCgncHVsbGluZycpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVmcmVzaEV2ZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50OiBSZWZyZXNoRXZlbnQgPSB7XG4gICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5jb21wbGV0ZSgpLFxuICAgICAgY2FuY2VsOiAoKSA9PiB0aGlzLmNhbmNlbCgpLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgIH07XG4gICAgdGhpcy5yZWZyZXNoLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Valores por defecto para el refresher.
3
+ */
4
+ export const DEFAULT_REFRESHER_METADATA = {
5
+ disabled: false,
6
+ pullThreshold: 70,
7
+ pullMax: 200,
8
+ pullFactor: 0.5,
9
+ snapbackDuration: 280,
10
+ closeDuration: 280,
11
+ spinnerType: 'crescent',
12
+ hapticFeedback: true,
13
+ webMode: false,
14
+ };
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3JlZnJlc2hlci90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5RkE7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBK0I7SUFDcEUsUUFBUSxFQUFFLEtBQUs7SUFDZixhQUFhLEVBQUUsRUFBRTtJQUNqQixPQUFPLEVBQUUsR0FBRztJQUNaLFVBQVUsRUFBRSxHQUFHO0lBQ2YsZ0JBQWdCLEVBQUUsR0FBRztJQUNyQixhQUFhLEVBQUUsR0FBRztJQUNsQixXQUFXLEVBQUUsVUFBVTtJQUN2QixjQUFjLEVBQUUsSUFBSTtJQUNwQixPQUFPLEVBQUUsS0FBSztDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbi8qKlxuICogRXN0YWRvIGRlbCBjb21wb25lbnRlIHJlZnJlc2hlci5cbiAqL1xuZXhwb3J0IHR5cGUgUmVmcmVzaGVyU3RhdGUgPSAnaWRsZScgfCAncHVsbGluZycgfCAncmVmcmVzaGluZycgfCAnY29tcGxldGluZyc7XG5cbi8qKlxuICogVGlwb3MgZGUgc3Bpbm5lciBkaXNwb25pYmxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgUmVmcmVzaGVyU3Bpbm5lclR5cGUgPSAnY2lyY3VsYXInIHwgJ2NyZXNjZW50JyB8ICdkb3RzJyB8ICdsaW5lcy1zaGFycCc7XG5cbi8qKlxuICogRXZlbnRvIGVtaXRpZG8gY3VhbmRvIHNlIGFjdGl2YSBlbCByZWZyZXNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZnJlc2hFdmVudCB7XG4gIC8qKiBMbGFtYXIgY3VhbmRvIGxhIG9wZXJhY2lvbiBkZSByZWZyZXNoIGNvbXBsZXRhICovXG4gIGNvbXBsZXRlOiAoKSA9PiB2b2lkO1xuICAvKiogTGxhbWFyIHBhcmEgY2FuY2VsYXIgZWwgcmVmcmVzaCAqL1xuICBjYW5jZWw6ICgpID0+IHZvaWQ7XG4gIC8qKiBUaW1lc3RhbXAgY3VhbmRvIGluaWNpbyBlbCByZWZyZXNoICovXG4gIHRpbWVzdGFtcDogRGF0ZTtcbn1cblxuLyoqXG4gKiBFdmVudG8gZGUgcHJvZ3Jlc28gZHVyYW50ZSBlbCBnZXN0byBkZSBwdWxsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZnJlc2hQdWxsRXZlbnQge1xuICAvKiogVmFsb3IgZGUgcHJvZ3Jlc28gZW50cmUgMCB5IDEgKi9cbiAgcHJvZ3Jlc3M6IG51bWJlcjtcbiAgLyoqIFNpIHNlIGhhIGFsY2FuemFkbyBlbCB1bWJyYWwgZGUgcHVsbCAqL1xuICB0aHJlc2hvbGRSZWFjaGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYWNpb24gZGUgaW5kaWNhZG9yIHBlcnNvbmFsaXphZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaGVySW5kaWNhdG9yQ29uZmlnIHtcbiAgLyoqIFRlbXBsYXRlIHBlcnNvbmFsaXphZG8gcGFyYSBlc3RhZG8gcHVsbGluZyAqL1xuICBwdWxsaW5nVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7IHByb2dyZXNzOiBudW1iZXIgfT47XG4gIC8qKiBUZW1wbGF0ZSBwZXJzb25hbGl6YWRvIHBhcmEgZXN0YWRvIHJlZnJlc2hpbmcgKi9cbiAgcmVmcmVzaGluZ1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8dm9pZD47XG4gIC8qKiBUZW1wbGF0ZSBwZXJzb25hbGl6YWRvIHBhcmEgZXN0YWRvIGNvbXBsZXRpbmcgKi9cbiAgY29tcGxldGluZ1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8dm9pZD47XG59XG5cbi8qKlxuICogTWV0YWRhdGEgcGFyYSBlbCBjb21wb25lbnRlIHZhbC1yZWZyZXNoZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaGVyTWV0YWRhdGEge1xuICAvKiogU2kgZWwgcmVmcmVzaGVyIGVzdGEgZGVzaGFiaWxpdGFkbyAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKiBVbWJyYWwgZGUgcHVsbCBlbiBwaXhlbHMgKGRlZmF1bHQ6IDcwKSAqL1xuICBwdWxsVGhyZXNob2xkPzogbnVtYmVyO1xuICAvKiogRGlzdGFuY2lhIG1heGltYSBkZSBwdWxsIGVuIHBpeGVscyAoZGVmYXVsdDogMjAwKSAqL1xuICBwdWxsTWF4PzogbnVtYmVyO1xuICAvKiogRmFjdG9yIGRlIHJlc2lzdGVuY2lhIGRlbCBwdWxsICgwLTEsIGRlZmF1bHQ6IDAuNSkgKi9cbiAgcHVsbEZhY3Rvcj86IG51bWJlcjtcbiAgLyoqIER1cmFjaW9uIGRlIHNuYXAgYmFjayBlbiBtcyAoZGVmYXVsdDogMjgwKSAqL1xuICBzbmFwYmFja0R1cmF0aW9uPzogbnVtYmVyO1xuICAvKiogRHVyYWNpb24gZGUgY2llcnJlIGVuIG1zIChkZWZhdWx0OiAyODApICovXG4gIGNsb3NlRHVyYXRpb24/OiBudW1iZXI7XG4gIC8qKiBDb2xvciBkZWwgc3Bpbm5lciAqL1xuICBjb2xvcj86IENvbG9yO1xuICAvKiogVGlwbyBkZSBzcGlubmVyICovXG4gIHNwaW5uZXJUeXBlPzogUmVmcmVzaGVyU3Bpbm5lclR5cGU7XG4gIC8qKiBUZXh0byBtb3N0cmFkbyBtaWVudHJhcyBzZSBhcnJhc3RyYSAqL1xuICBwdWxsaW5nVGV4dD86IHN0cmluZztcbiAgLyoqIFRleHRvIG1vc3RyYWRvIG1pZW50cmFzIHNlIGFjdHVhbGl6YSAqL1xuICByZWZyZXNoaW5nVGV4dD86IHN0cmluZztcbiAgLyoqIENvbmZpZ3VyYWNpb24gZGUgaW5kaWNhZG9yIHBlcnNvbmFsaXphZG8gKi9cbiAgaW5kaWNhdG9yQ29uZmlnPzogUmVmcmVzaGVySW5kaWNhdG9yQ29uZmlnO1xuICAvKiogSGFiaWxpdGFyIGZlZWRiYWNrIGhhcHRpY28gZW4gbW92aWwgKGRlZmF1bHQ6IHRydWUpICovXG4gIGhhcHRpY0ZlZWRiYWNrPzogYm9vbGVhbjtcbiAgLyoqIE1vZG8gd2ViIC0gaGFiaWxpdGEgcHVsbC10by1yZWZyZXNoIGVuIG5hdmVnYWRvcmVzIGRlc2t0b3AgKi9cbiAgd2ViTW9kZT86IGJvb2xlYW47XG4gIC8qKiBJZGVudGlmaWNhZG9yIHVuaWNvICovXG4gIHRva2VuPzogc3RyaW5nO1xuXG4gIC8vIFNvcG9ydGUgaTE4blxuICAvKiogS2V5IGRlIHRyYWR1Y2Npb24gcGFyYSB0ZXh0byBwdWxsaW5nICovXG4gIHB1bGxpbmdUZXh0S2V5Pzogc3RyaW5nO1xuICAvKiogS2V5IGRlIHRyYWR1Y2Npb24gcGFyYSB0ZXh0byByZWZyZXNoaW5nICovXG4gIHJlZnJlc2hpbmdUZXh0S2V5Pzogc3RyaW5nO1xuICAvKiogQ2xhc2UgQ1NTIGFkaWNpb25hbCAqL1xuICBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVmFsb3JlcyBwb3IgZGVmZWN0byBwYXJhIGVsIHJlZnJlc2hlci5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVGUkVTSEVSX01FVEFEQVRBOiBQYXJ0aWFsPFJlZnJlc2hlck1ldGFkYXRhPiA9IHtcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBwdWxsVGhyZXNob2xkOiA3MCxcbiAgcHVsbE1heDogMjAwLFxuICBwdWxsRmFjdG9yOiAwLjUsXG4gIHNuYXBiYWNrRHVyYXRpb246IDI4MCxcbiAgY2xvc2VEdXJhdGlvbjogMjgwLFxuICBzcGlubmVyVHlwZTogJ2NyZXNjZW50JyxcbiAgaGFwdGljRmVlZGJhY2s6IHRydWUsXG4gIHdlYk1vZGU6IGZhbHNlLFxufTtcbiJdfQ==