valtech-components 2.0.451 → 2.0.453

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 (61) hide show
  1. package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +170 -0
  2. package/esm2022/lib/components/organisms/tabbed-content/types.mjs +2 -0
  3. package/esm2022/lib/components/templates/page-content/page-content.component.mjs +11 -11
  4. package/esm2022/lib/components/templates/page-template/page-template.component.mjs +3 -5
  5. package/esm2022/lib/services/auth/auth-state.service.mjs +173 -0
  6. package/esm2022/lib/services/auth/auth.service.mjs +454 -0
  7. package/esm2022/lib/services/auth/config.mjs +76 -0
  8. package/esm2022/lib/services/auth/guards.mjs +194 -0
  9. package/esm2022/lib/services/auth/index.mjs +70 -0
  10. package/esm2022/lib/services/auth/interceptor.mjs +98 -0
  11. package/esm2022/lib/services/auth/storage.service.mjs +141 -0
  12. package/esm2022/lib/services/auth/sync.service.mjs +149 -0
  13. package/esm2022/lib/services/auth/token.service.mjs +113 -0
  14. package/esm2022/lib/services/auth/types.mjs +29 -0
  15. package/esm2022/lib/services/firebase/config.mjs +108 -0
  16. package/esm2022/lib/services/firebase/firebase.service.mjs +288 -0
  17. package/esm2022/lib/services/firebase/firestore-collection.mjs +254 -0
  18. package/esm2022/lib/services/firebase/firestore.service.mjs +509 -0
  19. package/esm2022/lib/services/firebase/index.mjs +49 -0
  20. package/esm2022/lib/services/firebase/messaging.service.mjs +512 -0
  21. package/esm2022/lib/services/firebase/shared-config.mjs +138 -0
  22. package/esm2022/lib/services/firebase/storage.service.mjs +422 -0
  23. package/esm2022/lib/services/firebase/types.mjs +8 -0
  24. package/esm2022/lib/services/firebase/utils/path-builder.mjs +195 -0
  25. package/esm2022/lib/services/firebase/utils/query-builder.mjs +302 -0
  26. package/esm2022/lib/services/link-processor.service.mjs +61 -43
  27. package/esm2022/lib/services/modal/modal.service.mjs +8 -9
  28. package/esm2022/lib/services/navigation.service.mjs +11 -11
  29. package/esm2022/public-api.mjs +23 -4
  30. package/fesm2022/valtech-components.mjs +4599 -102
  31. package/fesm2022/valtech-components.mjs.map +1 -1
  32. package/lib/components/organisms/tabbed-content/tabbed-content.component.d.ts +65 -0
  33. package/lib/components/organisms/tabbed-content/types.d.ts +53 -0
  34. package/lib/components/templates/page-content/page-content.component.d.ts +3 -0
  35. package/lib/services/auth/auth-state.service.d.ts +85 -0
  36. package/lib/services/auth/auth.service.d.ts +146 -0
  37. package/lib/services/auth/config.d.ts +38 -0
  38. package/lib/services/auth/guards.d.ts +123 -0
  39. package/lib/services/auth/index.d.ts +63 -0
  40. package/lib/services/auth/interceptor.d.ts +22 -0
  41. package/lib/services/auth/storage.service.d.ts +48 -0
  42. package/lib/services/auth/sync.service.d.ts +49 -0
  43. package/lib/services/auth/token.service.d.ts +51 -0
  44. package/lib/services/auth/types.d.ts +315 -0
  45. package/lib/services/firebase/config.d.ts +49 -0
  46. package/lib/services/firebase/firebase.service.d.ts +140 -0
  47. package/lib/services/firebase/firestore-collection.d.ts +175 -0
  48. package/lib/services/firebase/firestore.service.d.ts +304 -0
  49. package/lib/services/firebase/index.d.ts +39 -0
  50. package/lib/services/firebase/messaging.service.d.ts +263 -0
  51. package/lib/services/firebase/shared-config.d.ts +126 -0
  52. package/lib/services/firebase/storage.service.d.ts +206 -0
  53. package/lib/services/firebase/types.d.ts +281 -0
  54. package/lib/services/firebase/utils/path-builder.d.ts +132 -0
  55. package/lib/services/firebase/utils/query-builder.d.ts +210 -0
  56. package/lib/services/modal/modal.service.d.ts +2 -0
  57. package/lib/services/navigation.service.d.ts +4 -4
  58. package/package.json +3 -1
  59. package/public-api.d.ts +9 -0
  60. package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs +0 -136
  61. package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs.map +0 -1
@@ -0,0 +1,170 @@
1
+ import { Component, Input, Output, EventEmitter, signal, computed, ChangeDetectionStrategy, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SegmentControlComponent } from '../../molecules/segment-control/segment-control.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ /**
7
+ * val-tabbed-content
8
+ *
9
+ * A container component that combines segment navigation with dynamic content panels.
10
+ * Uses segment-control internally for tab navigation and renders the associated
11
+ * template for the active tab.
12
+ *
13
+ * @example Basic usage with templates
14
+ * ```html
15
+ * <ng-template #catalogTemplate>
16
+ * <div>Catalog Content</div>
17
+ * </ng-template>
18
+ * <ng-template #settingsTemplate>
19
+ * <div>Settings Content</div>
20
+ * </ng-template>
21
+ *
22
+ * <val-tabbed-content [props]="{
23
+ * tabs: [
24
+ * { value: 'catalog', label: 'Catalog', icon: 'layers-outline', template: catalogTemplate },
25
+ * { value: 'settings', label: 'Settings', icon: 'settings-outline', template: settingsTemplate }
26
+ * ],
27
+ * selectedTab: 'catalog',
28
+ * scrollable: true,
29
+ * animated: true
30
+ * }" (tabChange)="onTabChange($event)"></val-tabbed-content>
31
+ * ```
32
+ *
33
+ * @input props: TabbedContentMetadata - Configuration for the tabbed content
34
+ * @output tabChange: string - Emits the selected tab value when changed
35
+ */
36
+ export class TabbedContentComponent {
37
+ constructor() {
38
+ /**
39
+ * Emits when the active tab changes.
40
+ */
41
+ this.tabChange = new EventEmitter();
42
+ /** Currently selected tab value */
43
+ this.selectedValue = signal('');
44
+ /** Whether a transition is in progress */
45
+ this.isTransitioning = signal(false);
46
+ /** Computed animation duration string */
47
+ this.animationDuration = computed(() => `${this.props.animationDuration || 300}ms`);
48
+ /** Computed segment control props derived from tabs config */
49
+ this.segmentControlProps = computed(() => {
50
+ const options = this.props.tabs.map(tab => ({
51
+ value: tab.value,
52
+ label: tab.label,
53
+ icon: tab.icon,
54
+ disabled: tab.disabled,
55
+ layout: tab.layout || 'icon-top',
56
+ }));
57
+ return {
58
+ options,
59
+ value: this.selectedValue(),
60
+ color: this.props.color || 'primary',
61
+ scrollable: this.props.scrollable ?? false,
62
+ swipeGesture: this.props.swipeGesture ?? true,
63
+ mode: this.props.mode,
64
+ };
65
+ });
66
+ /** Computed active tab object */
67
+ this.activeTab = computed(() => {
68
+ return this.props.tabs.find(tab => tab.value === this.selectedValue());
69
+ });
70
+ }
71
+ ngOnInit() {
72
+ // Set initial selected tab
73
+ const initialValue = this.props.selectedTab || this.props.tabs[0]?.value || '';
74
+ this.selectedValue.set(initialValue);
75
+ }
76
+ /**
77
+ * Handles segment change events.
78
+ */
79
+ onSegmentChange(value) {
80
+ if (value === this.selectedValue()) {
81
+ return;
82
+ }
83
+ // Trigger transition animation
84
+ if (this.props.animated !== false) {
85
+ this.isTransitioning.set(true);
86
+ // Reset transition state after animation completes
87
+ setTimeout(() => {
88
+ this.selectedValue.set(value);
89
+ this.isTransitioning.set(false);
90
+ this.tabChange.emit(value);
91
+ }, (this.props.animationDuration || 300) / 2);
92
+ }
93
+ else {
94
+ this.selectedValue.set(value);
95
+ this.tabChange.emit(value);
96
+ }
97
+ }
98
+ /**
99
+ * Creates the context object for the template outlet.
100
+ */
101
+ getTemplateContext(tab) {
102
+ const index = this.props.tabs.findIndex(t => t.value === tab.value);
103
+ return {
104
+ $implicit: tab.value,
105
+ tab,
106
+ index,
107
+ };
108
+ }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabbedContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TabbedContentComponent, isStandalone: true, selector: "val-tabbed-content", inputs: { props: "props" }, outputs: { tabChange: "tabChange" }, ngImport: i0, template: `
111
+ <div
112
+ class="tabbed-content"
113
+ [class]="props.cssClass"
114
+ [style.--animation-duration]="animationDuration()"
115
+ >
116
+ <!-- Segment Control Navigation -->
117
+ <val-segment-control
118
+ [props]="segmentControlProps()"
119
+ (segmentChange)="onSegmentChange($event)"
120
+ ></val-segment-control>
121
+
122
+ <!-- Tab Content Panel -->
123
+ <div
124
+ class="tabbed-content__panel"
125
+ [class.tabbed-content__panel--animated]="props.animated !== false"
126
+ [class.tabbed-content__panel--transitioning]="isTransitioning()"
127
+ >
128
+ @if (activeTab(); as tab) {
129
+ <ng-container
130
+ *ngTemplateOutlet="tab.template; context: getTemplateContext(tab)"
131
+ ></ng-container>
132
+ }
133
+ </div>
134
+ </div>
135
+ `, isInline: true, styles: [".tabbed-content{display:flex;flex-direction:column;width:100%}.tabbed-content val-segment-control{margin-bottom:1rem}.tabbed-content val-segment-control ion-segment{--background: var(--ion-color-light);border-radius:12px;padding:4px}.tabbed-content__panel{width:100%;min-height:100px}.tabbed-content__panel--animated{animation:fadeIn var(--animation-duration, .3s) ease-out}.tabbed-content__panel--transitioning{opacity:0;animation:fadeOut calc(var(--animation-duration, .3s) / 2) ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}:host-context(.dark) .tabbed-content val-segment-control ion-segment,:host-context([data-theme=dark]) .tabbed-content val-segment-control ion-segment{--background: var(--ion-color-dark-tint)}@media (max-width: 576px){.tabbed-content val-segment-control ion-segment{padding:2px}.tabbed-content val-segment-control ion-segment-button{min-width:auto;padding:8px 12px}.tabbed-content val-segment-control ion-segment-button ion-label{font-size:.75rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SegmentControlComponent, selector: "val-segment-control", inputs: ["props"], outputs: ["segmentChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabbedContentComponent, decorators: [{
138
+ type: Component,
139
+ args: [{ selector: 'val-tabbed-content', standalone: true, imports: [CommonModule, SegmentControlComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
140
+ <div
141
+ class="tabbed-content"
142
+ [class]="props.cssClass"
143
+ [style.--animation-duration]="animationDuration()"
144
+ >
145
+ <!-- Segment Control Navigation -->
146
+ <val-segment-control
147
+ [props]="segmentControlProps()"
148
+ (segmentChange)="onSegmentChange($event)"
149
+ ></val-segment-control>
150
+
151
+ <!-- Tab Content Panel -->
152
+ <div
153
+ class="tabbed-content__panel"
154
+ [class.tabbed-content__panel--animated]="props.animated !== false"
155
+ [class.tabbed-content__panel--transitioning]="isTransitioning()"
156
+ >
157
+ @if (activeTab(); as tab) {
158
+ <ng-container
159
+ *ngTemplateOutlet="tab.template; context: getTemplateContext(tab)"
160
+ ></ng-container>
161
+ }
162
+ </div>
163
+ </div>
164
+ `, styles: [".tabbed-content{display:flex;flex-direction:column;width:100%}.tabbed-content val-segment-control{margin-bottom:1rem}.tabbed-content val-segment-control ion-segment{--background: var(--ion-color-light);border-radius:12px;padding:4px}.tabbed-content__panel{width:100%;min-height:100px}.tabbed-content__panel--animated{animation:fadeIn var(--animation-duration, .3s) ease-out}.tabbed-content__panel--transitioning{opacity:0;animation:fadeOut calc(var(--animation-duration, .3s) / 2) ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}:host-context(.dark) .tabbed-content val-segment-control ion-segment,:host-context([data-theme=dark]) .tabbed-content val-segment-control ion-segment{--background: var(--ion-color-dark-tint)}@media (max-width: 576px){.tabbed-content val-segment-control ion-segment{padding:2px}.tabbed-content val-segment-control ion-segment-button{min-width:auto;padding:8px 12px}.tabbed-content val-segment-control ion-segment-button ion-label{font-size:.75rem}}\n"] }]
165
+ }], propDecorators: { props: [{
166
+ type: Input
167
+ }], tabChange: [{
168
+ type: Output
169
+ }] } });
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVkLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90YWJiZWQtY29udGVudC90YWJiZWQtY29udGVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLHVCQUF1QixHQUV4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkRBQTJELENBQUM7OztBQUlwRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFrQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQWpDbkM7UUF1Q0U7O1dBRUc7UUFDTyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVqRCxtQ0FBbUM7UUFDM0Isa0JBQWEsR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFM0MsMENBQTBDO1FBQzFDLG9CQUFlLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXpDLHlDQUF5QztRQUN6QyxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFL0UsOERBQThEO1FBQzlELHdCQUFtQixHQUFHLFFBQVEsQ0FBeUIsR0FBRyxFQUFFO1lBQzFELE1BQU0sT0FBTyxHQUFvQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7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WUFBWSxzTUFBRSx1QkFBdUI7OzRGQThCcEMsc0JBQXNCO2tCQWpDbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHVCQUF1QixDQUFDLG1CQUMvQix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJUOzhCQU9RLEtBQUs7c0JBQWIsS0FBSztnQkFLSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIHNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNlZ21lbnRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlZ21lbnQtY29udHJvbC9zZWdtZW50LWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IFNlZ21lbnRDb250cm9sTWV0YWRhdGEsIFNlZ21lbnRPcHRpb24gfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VnbWVudC1jb250cm9sL3R5cGVzJztcbmltcG9ydCB7IFRhYmJlZENvbnRlbnRNZXRhZGF0YSwgVGFiYmVkQ29udGVudFRhYiwgVGFiYmVkQ29udGVudENvbnRleHQgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtdGFiYmVkLWNvbnRlbnRcbiAqXG4gKiBBIGNvbnRhaW5lciBjb21wb25lbnQgdGhhdCBjb21iaW5lcyBzZWdtZW50IG5hdmlnYXRpb24gd2l0aCBkeW5hbWljIGNvbnRlbnQgcGFuZWxzLlxuICogVXNlcyBzZWdtZW50LWNvbnRyb2wgaW50ZXJuYWxseSBmb3IgdGFiIG5hdmlnYXRpb24gYW5kIHJlbmRlcnMgdGhlIGFzc29jaWF0ZWRcbiAqIHRlbXBsYXRlIGZvciB0aGUgYWN0aXZlIHRhYi5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZSB3aXRoIHRlbXBsYXRlc1xuICogYGBgaHRtbFxuICogPG5nLXRlbXBsYXRlICNjYXRhbG9nVGVtcGxhdGU+XG4gKiAgIDxkaXY+Q2F0YWxvZyBDb250ZW50PC9kaXY+XG4gKiA8L25nLXRlbXBsYXRlPlxuICogPG5nLXRlbXBsYXRlICNzZXR0aW5nc1RlbXBsYXRlPlxuICogICA8ZGl2PlNldHRpbmdzIENvbnRlbnQ8L2Rpdj5cbiAqIDwvbmctdGVtcGxhdGU+XG4gKlxuICogPHZhbC10YWJiZWQtY29udGVudCBbcHJvcHNdPVwie1xuICogICB0YWJzOiBbXG4gKiAgICAgeyB2YWx1ZTogJ2NhdGFsb2cnLCBsYWJlbDogJ0NhdGFsb2cnLCBpY29uOiAnbGF5ZXJzLW91dGxpbmUnLCB0ZW1wbGF0ZTogY2F0YWxvZ1RlbXBsYXRlIH0sXG4gKiAgICAgeyB2YWx1ZTogJ3NldHRpbmdzJywgbGFiZWw6ICdTZXR0aW5ncycsIGljb246ICdzZXR0aW5ncy1vdXRsaW5lJywgdGVtcGxhdGU6IHNldHRpbmdzVGVtcGxhdGUgfVxuICogICBdLFxuICogICBzZWxlY3RlZFRhYjogJ2NhdGFsb2cnLFxuICogICBzY3JvbGxhYmxlOiB0cnVlLFxuICogICBhbmltYXRlZDogdHJ1ZVxuICogfVwiICh0YWJDaGFuZ2UpPVwib25UYWJDaGFuZ2UoJGV2ZW50KVwiPjwvdmFsLXRhYmJlZC1jb250ZW50PlxuICogYGBgXG4gKlxuICogQGlucHV0IHByb3BzOiBUYWJiZWRDb250ZW50TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgdGFiYmVkIGNvbnRlbnRcbiAqIEBvdXRwdXQgdGFiQ2hhbmdlOiBzdHJpbmcgLSBFbWl0cyB0aGUgc2VsZWN0ZWQgdGFiIHZhbHVlIHdoZW4gY2hhbmdlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtdGFiYmVkLWNvbnRlbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTZWdtZW50Q29udHJvbENvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGFiYmVkLWNvbnRlbnRcIlxuICAgICAgW2NsYXNzXT1cInByb3BzLmNzc0NsYXNzXCJcbiAgICAgIFtzdHlsZS4tLWFuaW1hdGlvbi1kdXJhdGlvbl09XCJhbmltYXRpb25EdXJhdGlvbigpXCJcbiAgICA+XG4gICAgICA8IS0tIFNlZ21lbnQgQ29udHJvbCBOYXZpZ2F0aW9uIC0tPlxuICAgICAgPHZhbC1zZWdtZW50LWNvbnRyb2xcbiAgICAgICAgW3Byb3BzXT1cInNlZ21lbnRDb250cm9sUHJvcHMoKVwiXG4gICAgICAgIChzZWdtZW50Q2hhbmdlKT1cIm9uU2VnbWVudENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L3ZhbC1zZWdtZW50LWNvbnRyb2w+XG5cbiAgICAgIDwhLS0gVGFiIENvbnRlbnQgUGFuZWwgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFiYmVkLWNvbnRlbnRfX3BhbmVsXCJcbiAgICAgICAgW2NsYXNzLnRhYmJlZC1jb250ZW50X19wYW5lbC0tYW5pbWF0ZWRdPVwicHJvcHMuYW5pbWF0ZWQgIT09IGZhbHNlXCJcbiAgICAgICAgW2NsYXNzLnRhYmJlZC1jb250ZW50X19wYW5lbC0tdHJhbnNpdGlvbmluZ109XCJpc1RyYW5zaXRpb25pbmcoKVwiXG4gICAgICA+XG4gICAgICAgIEBpZiAoYWN0aXZlVGFiKCk7IGFzIHRhYikge1xuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiLnRlbXBsYXRlOyBjb250ZXh0OiBnZXRUZW1wbGF0ZUNvbnRleHQodGFiKVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiYmVkLWNvbnRlbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFiYmVkQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIHRhYmJlZCBjb250ZW50LlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHMhOiBUYWJiZWRDb250ZW50TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGFjdGl2ZSB0YWIgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKSB0YWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKiogQ3VycmVudGx5IHNlbGVjdGVkIHRhYiB2YWx1ZSAqL1xuICBwcml2YXRlIHNlbGVjdGVkVmFsdWUgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgLyoqIFdoZXRoZXIgYSB0cmFuc2l0aW9uIGlzIGluIHByb2dyZXNzICovXG4gIGlzVHJhbnNpdGlvbmluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqIENvbXB1dGVkIGFuaW1hdGlvbiBkdXJhdGlvbiBzdHJpbmcgKi9cbiAgYW5pbWF0aW9uRHVyYXRpb24gPSBjb21wdXRlZCgoKSA9PiBgJHt0aGlzLnByb3BzLmFuaW1hdGlvbkR1cmF0aW9uIHx8IDMwMH1tc2ApO1xuXG4gIC8qKiBDb21wdXRlZCBzZWdtZW50IGNvbnRyb2wgcHJvcHMgZGVyaXZlZCBmcm9tIHRhYnMgY29uZmlnICovXG4gIHNlZ21lbnRDb250cm9sUHJvcHMgPSBjb21wdXRlZDxTZWdtZW50Q29udHJvbE1ldGFkYXRhPigoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uczogU2VnbWVudE9wdGlvbltdID0gdGhpcy5wcm9wcy50YWJzLm1hcCh0YWIgPT4gKHtcbiAgICAgIHZhbHVlOiB0YWIudmFsdWUsXG4gICAgICBsYWJlbDogdGFiLmxhYmVsLFxuICAgICAgaWNvbjogdGFiLmljb24sXG4gICAgICBkaXNhYmxlZDogdGFiLmRpc2FibGVkLFxuICAgICAgbGF5b3V0OiB0YWIubGF5b3V0IHx8ICdpY29uLXRvcCcsXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9wdGlvbnMsXG4gICAgICB2YWx1ZTogdGhpcy5zZWxlY3RlZFZhbHVlKCksXG4gICAgICBjb2xvcjogdGhpcy5wcm9wcy5jb2xvciB8fCAncHJpbWFyeScsXG4gICAgICBzY3JvbGxhYmxlOiB0aGlzLnByb3BzLnNjcm9sbGFibGUgPz8gZmFsc2UsXG4gICAgICBzd2lwZUdlc3R1cmU6IHRoaXMucHJvcHMuc3dpcGVHZXN0dXJlID8/IHRydWUsXG4gICAgICBtb2RlOiB0aGlzLnByb3BzLm1vZGUsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqIENvbXB1dGVkIGFjdGl2ZSB0YWIgb2JqZWN0ICovXG4gIGFjdGl2ZVRhYiA9IGNvbXB1dGVkPFRhYmJlZENvbnRlbnRUYWIgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy50YWJzLmZpbmQodGFiID0+IHRhYi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlKCkpO1xuICB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBTZXQgaW5pdGlhbCBzZWxlY3RlZCB0YWJcbiAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLnByb3BzLnNlbGVjdGVkVGFiIHx8IHRoaXMucHJvcHMudGFic1swXT8udmFsdWUgfHwgJyc7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlLnNldChpbml0aWFsVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgc2VnbWVudCBjaGFuZ2UgZXZlbnRzLlxuICAgKi9cbiAgb25TZWdtZW50Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlciB0cmFuc2l0aW9uIGFuaW1hdGlvblxuICAgIGlmICh0aGlzLnByb3BzLmFuaW1hdGVkICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5pc1RyYW5zaXRpb25pbmcuc2V0KHRydWUpO1xuXG4gICAgICAvLyBSZXNldCB0cmFuc2l0aW9uIHN0YXRlIGFmdGVyIGFuaW1hdGlvbiBjb21wbGV0ZXNcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUuc2V0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5pc1RyYW5zaXRpb25pbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy50YWJDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9LCAodGhpcy5wcm9wcy5hbmltYXRpb25EdXJhdGlvbiB8fCAzMDApIC8gMik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5zZXQodmFsdWUpO1xuICAgICAgdGhpcy50YWJDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGNvbnRleHQgb2JqZWN0IGZvciB0aGUgdGVtcGxhdGUgb3V0bGV0LlxuICAgKi9cbiAgZ2V0VGVtcGxhdGVDb250ZXh0KHRhYjogVGFiYmVkQ29udGVudFRhYik6IFRhYmJlZENvbnRlbnRDb250ZXh0IHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMucHJvcHMudGFicy5maW5kSW5kZXgodCA9PiB0LnZhbHVlID09PSB0YWIudmFsdWUpO1xuICAgIHJldHVybiB7XG4gICAgICAkaW1wbGljaXQ6IHRhYi52YWx1ZSxcbiAgICAgIHRhYixcbiAgICAgIGluZGV4LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3RhYmJlZC1jb250ZW50L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbi8qKlxuICogQ29udGV4dCBwYXNzZWQgdG8gZWFjaCB0YWIncyB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJiZWRDb250ZW50Q29udGV4dCB7XG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGFjdGl2ZSB0YWIgKi9cbiAgJGltcGxpY2l0OiBzdHJpbmc7XG4gIC8qKiBUaGUgZnVsbCB0YWIgY29uZmlndXJhdGlvbiAqL1xuICB0YWI6IFRhYmJlZENvbnRlbnRUYWI7XG4gIC8qKiBJbmRleCBvZiB0aGUgdGFiICovXG4gIGluZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgdGFiLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmJlZENvbnRlbnRUYWIge1xuICAvKiogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB0YWIgKi9cbiAgdmFsdWU6IHN0cmluZztcbiAgLyoqIERpc3BsYXkgbGFiZWwgZm9yIHRoZSB0YWIgYnV0dG9uICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogSWNvbiBuYW1lIChJb25pY29ucykgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdGhlIHRhYiBpcyBkaXNhYmxlZCAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKiBMYXlvdXQgZGlyZWN0aW9uIGZvciBpY29uIGFuZCBsYWJlbCAqL1xuICBsYXlvdXQ/OiAnaWNvbi1zdGFydCcgfCAnaWNvbi1lbmQnIHwgJ2ljb24tdG9wJyB8ICdpY29uLWJvdHRvbSc7XG4gIC8qKiBUZW1wbGF0ZSB0byByZW5kZXIgd2hlbiB0aGlzIHRhYiBpcyBhY3RpdmUgKi9cbiAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFRhYmJlZENvbnRlbnRDb250ZXh0Pjtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgdGhlIHRhYmJlZC1jb250ZW50IGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJiZWRDb250ZW50TWV0YWRhdGEge1xuICAvKiogQXJyYXkgb2YgdGFiIGNvbmZpZ3VyYXRpb25zICovXG4gIHRhYnM6IFRhYmJlZENvbnRlbnRUYWJbXTtcbiAgLyoqIEluaXRpYWxseSBzZWxlY3RlZCB0YWIgdmFsdWUgKGRlZmF1bHRzIHRvIGZpcnN0IHRhYikgKi9cbiAgc2VsZWN0ZWRUYWI/OiBzdHJpbmc7XG4gIC8qKiBDb2xvciB0aGVtZSBmb3IgdGhlIHNlZ21lbnQgY29udHJvbCAqL1xuICBjb2xvcj86IENvbG9yO1xuICAvKiogQWxsb3cgaG9yaXpvbnRhbCBzY3JvbGxpbmcgZm9yIG1hbnkgdGFicyAqL1xuICBzY3JvbGxhYmxlPzogYm9vbGVhbjtcbiAgLyoqIEVuYWJsZSBzd2lwZSBnZXN0dXJlIHRvIGNoYW5nZSB0YWJzIChpT1Mgb25seSkgKi9cbiAgc3dpcGVHZXN0dXJlPzogYm9vbGVhbjtcbiAgLyoqIFZpc3VhbCBtb2RlIHN0eWxlICovXG4gIG1vZGU/OiAnaW9zJyB8ICdtZCc7XG4gIC8qKiBFbmFibGUgZmFkZSBhbmltYXRpb24gb24gdGFiIGNoYW5nZSAqL1xuICBhbmltYXRlZD86IGJvb2xlYW47XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzICovXG4gIGFuaW1hdGlvbkR1cmF0aW9uPzogbnVtYmVyO1xuICAvKiogQWRkaXRpb25hbCBDU1MgY2xhc3MgZm9yIHRoZSBjb250YWluZXIgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1,12 +1,12 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
3
  import { IonContent } from '@ionic/angular/standalone';
4
4
  import { HeaderComponent } from '../../organisms/header/header.component';
5
- import { ThemeService } from '../../../services/theme.service';
6
- import { NavigationService } from '../../../services/navigation.service';
7
5
  import { resolveColor } from '../../../shared/utils/styles';
8
6
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
7
+ import * as i1 from "../../../services/theme.service";
8
+ import * as i2 from "../../../services/navigation.service";
9
+ import * as i3 from "@angular/common";
10
10
  /**
11
11
  * val-page-content
12
12
  *
@@ -34,9 +34,9 @@ import * as i1 from "@angular/common";
34
34
  * @output onHeaderClick - Emits when a header action is clicked
35
35
  */
36
36
  export class PageContentComponent {
37
- constructor() {
38
- this.theme = inject(ThemeService);
39
- this.nav = inject(NavigationService);
37
+ constructor(theme, nav) {
38
+ this.theme = theme;
39
+ this.nav = nav;
40
40
  /**
41
41
  * Page content configuration.
42
42
  */
@@ -108,7 +108,7 @@ export class PageContentComponent {
108
108
  this.nav.navigateByUrl(this.props.homeRoute);
109
109
  }
110
110
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageContentComponent, deps: [{ token: i1.ThemeService }, { token: i2.NavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
112
112
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PageContentComponent, isStandalone: true, selector: "val-page-content", inputs: { props: "props" }, outputs: { onHeaderClick: "onHeaderClick" }, ngImport: i0, template: `
113
113
  <div class="ion-page">
114
114
  <val-header
@@ -128,7 +128,7 @@ export class PageContentComponent {
128
128
  </ion-content>
129
129
  <ng-content select="[extra-footer]"></ng-content>
130
130
  </div>
131
- `, isInline: true, styles: ["main{min-height:60vh}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.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"] }] }); }
131
+ `, isInline: true, styles: ["main{min-height:60vh}\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"] }] }); }
132
132
  }
133
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageContentComponent, decorators: [{
134
134
  type: Component,
@@ -152,9 +152,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
152
152
  <ng-content select="[extra-footer]"></ng-content>
153
153
  </div>
154
154
  `, styles: ["main{min-height:60vh}\n"] }]
155
- }], propDecorators: { props: [{
155
+ }], ctorParameters: () => [{ type: i1.ThemeService }, { type: i2.NavigationService }], propDecorators: { props: [{
156
156
  type: Input
157
157
  }], onHeaderClick: [{
158
158
  type: Output
159
159
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS1jb250ZW50L3BhZ2UtY29udGVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBK0JILE1BQU0sT0FBTyxvQkFBb0I7SUE5QmpDO1FBK0JVLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXhDOztXQUVHO1FBQ00sVUFBSyxHQUF3QixFQUFFLENBQUM7UUFFekM7O1dBRUc7UUFDTyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFckQ7O1dBRUc7UUFDYyxrQkFBYSxHQUFHO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLElBQUk7WUFDakIsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixTQUFTLEVBQUUsTUFBZTtnQkFDMUIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFO29CQUNQO3dCQUNFLEtBQUssRUFBRSxhQUFhO3dCQUNwQixXQUFXLEVBQUUsRUFBRTt3QkFDZixRQUFRLEVBQUUsTUFBZTt3QkFDekIsSUFBSSxFQUFFLE9BQWdCO3dCQUN0QixLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLEVBQUU7NEJBQ1QsR0FBRyxFQUFFLGFBQWE7NEJBQ2xCLEdBQUcsRUFBRSxhQUFhOzRCQUNsQixJQUFJLEVBQUUsS0FBYzs0QkFDcEIsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsUUFBUSxFQUFFLEtBQUs7NEJBQ2YsSUFBSSxFQUFFLE9BQWdCOzRCQUN0QixPQUFPLEVBQUUsS0FBSzs0QkFDZCxJQUFJLEVBQUUsSUFBSTt5QkFDWDtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztLQW9DSDtJQWxDQzs7T0FFRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IsNERBQTREO1FBQzVELElBQUksS0FBSyxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7K0dBakZVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHFKQTFCckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQsZ0dBcEJTLFlBQVksb0hBQUUsZUFBZSxnR0FBRSxVQUFVOzs0RkEyQnhDLG9CQUFvQjtrQkE5QmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLFlBQzFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUOzhCQWNRLEtBQUs7c0JBQWIsS0FBSztnQkFLSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkNvbnRlbnQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2VDb250ZW50TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHJlc29sdmVDb2xvciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9zdHlsZXMnO1xuXG4vKipcbiAqIHZhbC1wYWdlLWNvbnRlbnRcbiAqXG4gKiBBIHBhZ2UgY29udGVudCB0ZW1wbGF0ZSB3aXRoIGNvcnBvcmF0ZSBoZWFkZXIsIG1haW4gY29udGVudCBhcmVhLFxuICogYW5kIGZvb3RlciBzbG90cy4gU3VwcG9ydHMgZGFyayBtb2RlIGFuZCBjdXN0b21pemFibGUgYmFja2dyb3VuZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcGFnZS1jb250ZW50XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaGVhZGVyOiB7IC4uLiB9LFxuICogICAgIGJhY2tncm91bmQ6ICctLW1haW4tYmFja2dyb3VuZCcsXG4gKiAgICAgaG9tZVJvdXRlOiAnLydcbiAqICAgfVwiXG4gKiAgIChvbkhlYWRlckNsaWNrKT1cImhhbmRsZUhlYWRlckFjdGlvbigkZXZlbnQpXCJcbiAqID5cbiAqICAgPGRpdiBjb250ZW50PlxuICogICAgIDwhLS0gTWFpbiBwYWdlIGNvbnRlbnQgLS0+XG4gKiAgIDwvZGl2PlxuICogICA8ZGl2IGZvb3Rlcj5cbiAqICAgICA8dmFsLWNvbXBhbnktZm9vdGVyIFtwcm9wc109XCJmb290ZXJQcm9wc1wiPjwvdmFsLWNvbXBhbnktZm9vdGVyPlxuICogICA8L2Rpdj5cbiAqIDwvdmFsLXBhZ2UtY29udGVudD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBQYWdlIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICogQG91dHB1dCBvbkhlYWRlckNsaWNrIC0gRW1pdHMgd2hlbiBhIGhlYWRlciBhY3Rpb24gaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGFnZS1jb250ZW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSGVhZGVyQ29tcG9uZW50LCBJb25Db250ZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZ2VcIj5cbiAgICAgIDx2YWwtaGVhZGVyXG4gICAgICAgIFtwcm9wc109XCJoZWFkZXJQcm9wc1wiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uSGVhZGVyQ2xpY2tIYW5kbGVyKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxpb24tY29udGVudFxuICAgICAgICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICctLWJhY2tncm91bmQnOiBnZXRCYWNrZ3JvdW5kKClcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxtYWluPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9tYWluPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgbWFpbiB7XG4gICAgICBtaW4taGVpZ2h0OiA2MHZoO1xuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUNvbnRlbnRDb21wb25lbnQge1xuICBwcml2YXRlIHRoZW1lID0gaW5qZWN0KFRoZW1lU2VydmljZSk7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcblxuICAvKipcbiAgICogUGFnZSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFnZUNvbnRlbnRNZXRhZGF0YSA9IHt9O1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgaGVhZGVyIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uSGVhZGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBoZWFkZXIgY29uZmlndXJhdGlvbiAoY2FjaGVkIHRvIGF2b2lkIGluZmluaXRlIGNoYW5nZSBkZXRlY3Rpb24pLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0SGVhZGVyID0ge1xuICAgIGJvcmRlcmVkOiB0cnVlLFxuICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgIHRvb2xiYXI6IHtcbiAgICAgIHdpdGhCYWNrOiBmYWxzZSxcbiAgICAgIHdpdGhBY3Rpb25zOiB0cnVlLFxuICAgICAgdGV4dENvbG9yOiAnZGFyaycgYXMgY29uc3QsXG4gICAgICB3aXRoTWVudTogdHJ1ZSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRva2VuOiAnaGVhZGVyLWxvZ28nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnIGFzIGNvbnN0LFxuICAgICAgICAgIHR5cGU6ICdJTUFHRScgYXMgY29uc3QsXG4gICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvJyxcbiAgICAgICAgICAgIGFsdDogJ2hlYWRlciBsb2dvJyxcbiAgICAgICAgICAgIG1vZGU6ICdib3gnIGFzIGNvbnN0LFxuICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCcgYXMgY29uc3QsXG4gICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGZsZXg6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyBoZWFkZXIgcHJvcHMsIHVzaW5nIGNhY2hlZCBkZWZhdWx0IGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIGdldCBoZWFkZXJQcm9wcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5oZWFkZXIgfHwgdGhpcy5kZWZhdWx0SGVhZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJhY2tncm91bmQgY29sb3IgYmFzZWQgb24gdGhlbWUuXG4gICAqL1xuICBnZXRCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudGhlbWUuSXNEYXJrKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSc7XG4gICAgfVxuXG4gICAgY29uc3QgYmcgPSB0aGlzLnByb3BzLmJhY2tncm91bmQ7XG4gICAgaWYgKCFiZykge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlQ29sb3IoYmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgaGVhZGVyIGFjdGlvbiBjbGlja3MuXG4gICAqL1xuICBvbkhlYWRlckNsaWNrSGFuZGxlcih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkhlYWRlckNsaWNrLmVtaXQodG9rZW4pO1xuXG4gICAgLy8gTmF2aWdhdGUgdG8gaG9tZSByb3V0ZSBpZiBjb25maWd1cmVkIGFuZCBsb2dvIHdhcyBjbGlja2VkXG4gICAgaWYgKHRva2VuID09PSAnaGVhZGVyLWxvZ28nICYmIHRoaXMucHJvcHMuaG9tZVJvdXRlKSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucHJvcHMuaG9tZVJvdXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS1jb250ZW50L3BhZ2UtY29udGVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUkxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBK0JILE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsWUFDVSxLQUFtQixFQUNuQixHQUFzQjtRQUR0QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBUGhDOztXQUVHO1FBQ00sVUFBSyxHQUF3QixFQUFFLENBQUM7UUFPekM7O1dBRUc7UUFDTyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFckQ7O1dBRUc7UUFDYyxrQkFBYSxHQUFHO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLElBQUk7WUFDakIsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixTQUFTLEVBQUUsTUFBZTtnQkFDMUIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFO29CQUNQO3dCQUNFLEtBQUssRUFBRSxhQUFhO3dCQUNwQixXQUFXLEVBQUUsRUFBRTt3QkFDZixRQUFRLEVBQUUsTUFBZTt3QkFDekIsSUFBSSxFQUFFLE9BQWdCO3dCQUN0QixLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLEVBQUU7NEJBQ1QsR0FBRyxFQUFFLGFBQWE7NEJBQ2xCLEdBQUcsRUFBRSxhQUFhOzRCQUNsQixJQUFJLEVBQUUsS0FBYzs0QkFDcEIsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsUUFBUSxFQUFFLEtBQUs7NEJBQ2YsSUFBSSxFQUFFLE9BQWdCOzRCQUN0QixPQUFPLEVBQUUsS0FBSzs0QkFDZCxJQUFJLEVBQUUsSUFBSTt5QkFDWDtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztJQXZDQyxDQUFDO0lBeUNKOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsT0FBTyw2QkFBNkIsQ0FBQztRQUN2QyxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTyw2QkFBNkIsQ0FBQztRQUN2QyxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQiw0REFBNEQ7UUFDNUQsSUFBSSxLQUFLLEtBQUssYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQzsrR0FuRlUsb0JBQW9CO21HQUFwQixvQkFBb0IscUpBMUJyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVCxnR0FwQlMsWUFBWSxvSEFBRSxlQUFlLGdHQUFFLFVBQVU7OzRGQTJCeEMsb0JBQW9CO2tCQTlCaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsWUFDMUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQ7aUhBV1EsS0FBSztzQkFBYixLQUFLO2dCQVVJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkNvbnRlbnQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2VDb250ZW50TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHJlc29sdmVDb2xvciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9zdHlsZXMnO1xuXG4vKipcbiAqIHZhbC1wYWdlLWNvbnRlbnRcbiAqXG4gKiBBIHBhZ2UgY29udGVudCB0ZW1wbGF0ZSB3aXRoIGNvcnBvcmF0ZSBoZWFkZXIsIG1haW4gY29udGVudCBhcmVhLFxuICogYW5kIGZvb3RlciBzbG90cy4gU3VwcG9ydHMgZGFyayBtb2RlIGFuZCBjdXN0b21pemFibGUgYmFja2dyb3VuZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcGFnZS1jb250ZW50XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaGVhZGVyOiB7IC4uLiB9LFxuICogICAgIGJhY2tncm91bmQ6ICctLW1haW4tYmFja2dyb3VuZCcsXG4gKiAgICAgaG9tZVJvdXRlOiAnLydcbiAqICAgfVwiXG4gKiAgIChvbkhlYWRlckNsaWNrKT1cImhhbmRsZUhlYWRlckFjdGlvbigkZXZlbnQpXCJcbiAqID5cbiAqICAgPGRpdiBjb250ZW50PlxuICogICAgIDwhLS0gTWFpbiBwYWdlIGNvbnRlbnQgLS0+XG4gKiAgIDwvZGl2PlxuICogICA8ZGl2IGZvb3Rlcj5cbiAqICAgICA8dmFsLWNvbXBhbnktZm9vdGVyIFtwcm9wc109XCJmb290ZXJQcm9wc1wiPjwvdmFsLWNvbXBhbnktZm9vdGVyPlxuICogICA8L2Rpdj5cbiAqIDwvdmFsLXBhZ2UtY29udGVudD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBQYWdlIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICogQG91dHB1dCBvbkhlYWRlckNsaWNrIC0gRW1pdHMgd2hlbiBhIGhlYWRlciBhY3Rpb24gaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGFnZS1jb250ZW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSGVhZGVyQ29tcG9uZW50LCBJb25Db250ZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZ2VcIj5cbiAgICAgIDx2YWwtaGVhZGVyXG4gICAgICAgIFtwcm9wc109XCJoZWFkZXJQcm9wc1wiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uSGVhZGVyQ2xpY2tIYW5kbGVyKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxpb24tY29udGVudFxuICAgICAgICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICctLWJhY2tncm91bmQnOiBnZXRCYWNrZ3JvdW5kKClcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxtYWluPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9tYWluPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgbWFpbiB7XG4gICAgICBtaW4taGVpZ2h0OiA2MHZoO1xuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUNvbnRlbnRDb21wb25lbnQge1xuICAvKipcbiAgICogUGFnZSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFnZUNvbnRlbnRNZXRhZGF0YSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGhlbWU6IFRoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIG5hdjogTmF2aWdhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgaGVhZGVyIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uSGVhZGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBoZWFkZXIgY29uZmlndXJhdGlvbiAoY2FjaGVkIHRvIGF2b2lkIGluZmluaXRlIGNoYW5nZSBkZXRlY3Rpb24pLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0SGVhZGVyID0ge1xuICAgIGJvcmRlcmVkOiB0cnVlLFxuICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgIHRvb2xiYXI6IHtcbiAgICAgIHdpdGhCYWNrOiBmYWxzZSxcbiAgICAgIHdpdGhBY3Rpb25zOiB0cnVlLFxuICAgICAgdGV4dENvbG9yOiAnZGFyaycgYXMgY29uc3QsXG4gICAgICB3aXRoTWVudTogdHJ1ZSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRva2VuOiAnaGVhZGVyLWxvZ28nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnIGFzIGNvbnN0LFxuICAgICAgICAgIHR5cGU6ICdJTUFHRScgYXMgY29uc3QsXG4gICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvJyxcbiAgICAgICAgICAgIGFsdDogJ2hlYWRlciBsb2dvJyxcbiAgICAgICAgICAgIG1vZGU6ICdib3gnIGFzIGNvbnN0LFxuICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCcgYXMgY29uc3QsXG4gICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGZsZXg6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyBoZWFkZXIgcHJvcHMsIHVzaW5nIGNhY2hlZCBkZWZhdWx0IGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIGdldCBoZWFkZXJQcm9wcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5oZWFkZXIgfHwgdGhpcy5kZWZhdWx0SGVhZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJhY2tncm91bmQgY29sb3IgYmFzZWQgb24gdGhlbWUuXG4gICAqL1xuICBnZXRCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudGhlbWUuSXNEYXJrKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSc7XG4gICAgfVxuXG4gICAgY29uc3QgYmcgPSB0aGlzLnByb3BzLmJhY2tncm91bmQ7XG4gICAgaWYgKCFiZykge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlQ29sb3IoYmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgaGVhZGVyIGFjdGlvbiBjbGlja3MuXG4gICAqL1xuICBvbkhlYWRlckNsaWNrSGFuZGxlcih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkhlYWRlckNsaWNrLmVtaXQodG9rZW4pO1xuXG4gICAgLy8gTmF2aWdhdGUgdG8gaG9tZSByb3V0ZSBpZiBjb25maWd1cmVkIGFuZCBsb2dvIHdhcyBjbGlja2VkXG4gICAgaWYgKHRva2VuID09PSAnaGVhZGVyLWxvZ28nICYmIHRoaXMucHJvcHMuaG9tZVJvdXRlKSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucHJvcHMuaG9tZVJvdXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -72,7 +72,6 @@ export class PageTemplateComponent {
72
72
  limit: props.descriptionLimit || 180,
73
73
  content: props.pageDescription,
74
74
  color: props.descriptionColor || 'dark',
75
- expandText: 'more'
76
75
  }"
77
76
  />
78
77
  </div>
@@ -88,7 +87,7 @@ export class PageTemplateComponent {
88
87
  <val-button
89
88
  class="back-button"
90
89
  [props]="{
91
- text: props.backButtonText || 'Back',
90
+ text: props.backButtonText || 'Volver',
92
91
  color: 'dark',
93
92
  size: 'small',
94
93
  type: 'button',
@@ -138,7 +137,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
138
137
  limit: props.descriptionLimit || 180,
139
138
  content: props.pageDescription,
140
139
  color: props.descriptionColor || 'dark',
141
- expandText: 'more'
142
140
  }"
143
141
  />
144
142
  </div>
@@ -154,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
154
152
  <val-button
155
153
  class="back-button"
156
154
  [props]="{
157
- text: props.backButtonText || 'Back',
155
+ text: props.backButtonText || 'Volver',
158
156
  color: 'dark',
159
157
  size: 'small',
160
158
  type: 'button',
@@ -178,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
178
176
  }], onBack: [{
179
177
  type: Output
180
178
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtdGVtcGxhdGUvcGFnZS10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR3RFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBOEZILE1BQU0sT0FBTyxxQkFBcUI7SUE3RmxDO1FBOEZVLFFBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFcEM7O1dBRUc7UUFDTSxVQUFLLEdBQXlCLEVBQUUsQ0FBQztRQUUxQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBUzdDO0lBUEM7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7K0dBbkJVLHFCQUFxQjttR0FBckIscUJBQXFCLHdJQS9FdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvRFQsb1NBOURDLFlBQVksK0JBQ1osU0FBUyxvR0FDVCxVQUFVLG1GQUNWLFFBQVEsaUZBQ1IsdUJBQXVCLG1GQUN2QixPQUFPLHdFQUNQLE1BQU0sb0RBQ04sTUFBTSxrVEFDTixlQUFlOzs0RkFpRk4scUJBQXFCO2tCQTdGakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFFBQVE7d0JBQ1IsdUJBQXVCO3dCQUN2QixPQUFPO3dCQUNQLE1BQU07d0JBQ04sTUFBTTt3QkFDTixlQUFlO3FCQUNoQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RUOzhCQWlDUSxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBJb25Db2wsIElvbkdyaWQsIElvbkhlYWRlciwgSW9uUm93LCBJb25UaXRsZSwgSW9uVG9vbGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgRXhwYW5kYWJsZVRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZVRlbXBsYXRlTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtcGFnZS10ZW1wbGF0ZVxuICpcbiAqIEEgcGFnZSB0ZW1wbGF0ZSBjb21wb25lbnQgd2l0aCB0aXRsZSwgZXhwYW5kYWJsZSBkZXNjcmlwdGlvbixcbiAqIGNvbnRlbnQgcHJvamVjdGlvbiwgYW5kIG9wdGlvbmFsIGJhY2sgbmF2aWdhdGlvbiBidXR0b24uXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcGFnZS10ZW1wbGF0ZVxuICogICBbcHJvcHNdPVwie1xuICogICAgIHBhZ2VUaXRsZTogJ0dldHRpbmcgU3RhcnRlZCcsXG4gKiAgICAgcGFnZURlc2NyaXB0aW9uOiAnTGVhcm4gaG93IHRvIHVzZSBvdXIgY29tcG9uZW50cy4uLicsXG4gKiAgICAgc2hvd0JhY2tCdXR0b246IHRydWVcbiAqICAgfVwiXG4gKiA+XG4gKiAgIDxkaXYgZXh0cmEtZGVzY3JpcHRpb24+XG4gKiAgICAgPHA+QWRkaXRpb25hbCBpbmZvIGhlcmU8L3A+XG4gKiAgIDwvZGl2PlxuICpcbiAqICAgPCEtLSBNYWluIGNvbnRlbnQgLS0+XG4gKiAgIDxteS1jb250ZW50PjwvbXktY29udGVudD5cbiAqXG4gKiAgIDxkaXYgZXh0cmEtZm9vdGVyPlxuICogICAgIDxwPkZvb3RlciBjb250ZW50PC9wPlxuICogICA8L2Rpdj5cbiAqIDwvdmFsLXBhZ2UtdGVtcGxhdGU+XG4gKlxuICogQGlucHV0IHByb3BzIC0gUGFnZSB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uXG4gKiBAb3V0cHV0IG9uQmFjayAtIEVtaXRzIHdoZW4gYmFjayBidXR0b24gaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGFnZS10ZW1wbGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uVGl0bGUsXG4gICAgRXhwYW5kYWJsZVRleHRDb21wb25lbnQsXG4gICAgSW9uR3JpZCxcbiAgICBJb25Sb3csXG4gICAgSW9uQ29sLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHByb3BzLnBhZ2VUaXRsZSkge1xuICAgICAgPGlvbi1oZWFkZXIgW2NsYXNzLmlvbi1uby1ib3JkZXJdPVwidHJ1ZVwiPlxuICAgICAgICA8aW9uLXRvb2xiYXIgc3R5bGU9XCItLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1wiPlxuICAgICAgICAgIDxpb24tdGl0bGUgY2xhc3M9XCJwYWdlLXRpdGxlXCIgc2l6ZT1cImxhcmdlXCI+e3sgcHJvcHMucGFnZVRpdGxlIH19PC9pb24tdGl0bGU+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICA8L2lvbi1oZWFkZXI+XG4gICAgfVxuICAgIDxpb24tZ3JpZD5cbiAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXIgZGVzY3JpcHRpb24tcm93XCI+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtbWQ9XCIxMFwiIHNpemUtbGc9XCI4XCI+XG4gICAgICAgICAgQGlmIChwcm9wcy5wYWdlRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPHZhbC1leHBhbmRhYmxlLXRleHRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgbGltaXQ6IHByb3BzLmRlc2NyaXB0aW9uTGltaXQgfHwgMTgwLFxuICAgICAgICAgICAgICAgICAgY29udGVudDogcHJvcHMucGFnZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgY29sb3I6IHByb3BzLmRlc2NyaXB0aW9uQ29sb3IgfHwgJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgZXhwYW5kVGV4dDogJ21vcmUnXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V4dHJhLWRlc2NyaXB0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2V4dHJhLWZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICBAaWYgKHByb3BzLnNob3dCYWNrQnV0dG9uKSB7XG4gICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXIgYmFjay1yb3dcIj5cbiAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLW1kPVwiMTBcIiBzaXplLWxnPVwiOFwiPlxuICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJiYWNrLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgdGV4dDogcHJvcHMuYmFja0J1dHRvblRleHQgfHwgJ0JhY2snLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnYXJyb3ctYmFjay1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgICAgIHNsb3Q6ICdzdGFydCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVCYWNrKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIH1cbiAgICA8L2lvbi1ncmlkPlxuICBgLFxuICBzdHlsZXM6IGBcbiAgICAucGFnZS10aXRsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uLXJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXIge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAuYmFjay1yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAuYmFjay1idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VUZW1wbGF0ZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdkNvbnRyb2xsZXIpO1xuXG4gIC8qKlxuICAgKiBQYWdlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFnZVRlbXBsYXRlTWV0YWRhdGEgPSB7fTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYmFjayBidXR0b24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvbkJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYmFjayBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgaGFuZGxlQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmFjay5lbWl0KCk7XG4gICAgdGhpcy5uYXYuYmFjaygpO1xuICB9XG59XG4iXX0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtdGVtcGxhdGUvcGFnZS10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR3RFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBNkZILE1BQU0sT0FBTyxxQkFBcUI7SUE1RmxDO1FBNkZVLFFBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFcEM7O1dBRUc7UUFDTSxVQUFLLEdBQXlCLEVBQUUsQ0FBQztRQUUxQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBUzdDO0lBUEM7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7K0dBbkJVLHFCQUFxQjttR0FBckIscUJBQXFCLHdJQTlFdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVCxvU0E3REMsWUFBWSwrQkFDWixTQUFTLG9HQUNULFVBQVUsbUZBQ1YsUUFBUSxpRkFDUix1QkFBdUIsbUZBQ3ZCLE9BQU8sd0VBQ1AsTUFBTSxvREFDTixNQUFNLGtUQUNOLGVBQWU7OzRGQWdGTixxQkFBcUI7a0JBNUZqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsUUFBUTt3QkFDUix1QkFBdUI7d0JBQ3ZCLE9BQU87d0JBQ1AsTUFBTTt3QkFDTixNQUFNO3dCQUNOLGVBQWU7cUJBQ2hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVDs4QkFpQ1EsS0FBSztzQkFBYixLQUFLO2dCQUtJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSW9uQ29sLCBJb25HcmlkLCBJb25IZWFkZXIsIElvblJvdywgSW9uVGl0bGUsIElvblRvb2xiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEV4cGFuZGFibGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2V4cGFuZGFibGUtdGV4dC9leHBhbmRhYmxlLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VUZW1wbGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLXBhZ2UtdGVtcGxhdGVcbiAqXG4gKiBBIHBhZ2UgdGVtcGxhdGUgY29tcG9uZW50IHdpdGggdGl0bGUsIGV4cGFuZGFibGUgZGVzY3JpcHRpb24sXG4gKiBjb250ZW50IHByb2plY3Rpb24sIGFuZCBvcHRpb25hbCBiYWNrIG5hdmlnYXRpb24gYnV0dG9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXBhZ2UtdGVtcGxhdGVcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBwYWdlVGl0bGU6ICdHZXR0aW5nIFN0YXJ0ZWQnLFxuICogICAgIHBhZ2VEZXNjcmlwdGlvbjogJ0xlYXJuIGhvdyB0byB1c2Ugb3VyIGNvbXBvbmVudHMuLi4nLFxuICogICAgIHNob3dCYWNrQnV0dG9uOiB0cnVlXG4gKiAgIH1cIlxuICogPlxuICogICA8ZGl2IGV4dHJhLWRlc2NyaXB0aW9uPlxuICogICAgIDxwPkFkZGl0aW9uYWwgaW5mbyBoZXJlPC9wPlxuICogICA8L2Rpdj5cbiAqXG4gKiAgIDwhLS0gTWFpbiBjb250ZW50IC0tPlxuICogICA8bXktY29udGVudD48L215LWNvbnRlbnQ+XG4gKlxuICogICA8ZGl2IGV4dHJhLWZvb3Rlcj5cbiAqICAgICA8cD5Gb290ZXIgY29udGVudDwvcD5cbiAqICAgPC9kaXY+XG4gKiA8L3ZhbC1wYWdlLXRlbXBsYXRlPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIFBhZ2UgdGVtcGxhdGUgY29uZmlndXJhdGlvblxuICogQG91dHB1dCBvbkJhY2sgLSBFbWl0cyB3aGVuIGJhY2sgYnV0dG9uIGlzIGNsaWNrZWRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhZ2UtdGVtcGxhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvblRpdGxlLFxuICAgIEV4cGFuZGFibGVUZXh0Q29tcG9uZW50LFxuICAgIElvbkdyaWQsXG4gICAgSW9uUm93LFxuICAgIElvbkNvbCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChwcm9wcy5wYWdlVGl0bGUpIHtcbiAgICAgIDxpb24taGVhZGVyIFtjbGFzcy5pb24tbm8tYm9yZGVyXT1cInRydWVcIj5cbiAgICAgICAgPGlvbi10b29sYmFyIHN0eWxlPVwiLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcIj5cbiAgICAgICAgICA8aW9uLXRpdGxlIGNsYXNzPVwicGFnZS10aXRsZVwiIHNpemU9XCJsYXJnZVwiPnt7IHByb3BzLnBhZ2VUaXRsZSB9fTwvaW9uLXRpdGxlPlxuICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgPC9pb24taGVhZGVyPlxuICAgIH1cbiAgICA8aW9uLWdyaWQ+XG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGRlc2NyaXB0aW9uLXJvd1wiPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLW1kPVwiMTBcIiBzaXplLWxnPVwiOFwiPlxuICAgICAgICAgIEBpZiAocHJvcHMucGFnZURlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDx2YWwtZXhwYW5kYWJsZS10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGxpbWl0OiBwcm9wcy5kZXNjcmlwdGlvbkxpbWl0IHx8IDE4MCxcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLnBhZ2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBwcm9wcy5kZXNjcmlwdGlvbkNvbG9yIHx8ICdkYXJrJyxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZGVzY3JpcHRpb25dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZXh0cmEtZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIEBpZiAocHJvcHMuc2hvd0JhY2tCdXR0b24pIHtcbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlciBiYWNrLXJvd1wiPlxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtbWQ9XCIxMFwiIHNpemUtbGc9XCI4XCI+XG4gICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB0ZXh0OiBwcm9wcy5iYWNrQnV0dG9uVGV4dCB8fCAnVm9sdmVyJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ2Fycm93LWJhY2stb3V0bGluZScsXG4gICAgICAgICAgICAgICAgICBzbG90OiAnc3RhcnQnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQmFjaygpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICB9XG4gICAgPC9pb24tZ3JpZD5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgLnBhZ2UtdGl0bGUge1xuICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbi1yb3cge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgLmJhY2stcm93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuXG4gICAgLmJhY2stYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlVGVtcGxhdGVDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZDb250cm9sbGVyKTtcblxuICAvKipcbiAgICogUGFnZSB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhZ2VUZW1wbGF0ZU1ldGFkYXRhID0ge307XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGJhY2sgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgb25CYWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGJhY2sgbmF2aWdhdGlvbi5cbiAgICovXG4gIGhhbmRsZUJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5vbkJhY2suZW1pdCgpO1xuICAgIHRoaXMubmF2LmJhY2soKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,173 @@
1
+ import { Injectable, signal, computed } from '@angular/core';
2
+ import { INITIAL_AUTH_STATE, INITIAL_MFA_STATE, } from './types';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Servicio para manejo de estado de autenticación con Angular Signals.
6
+ * Proporciona estado reactivo inmutable.
7
+ */
8
+ export class AuthStateService {
9
+ constructor() {
10
+ // Estado interno (mutable solo dentro del servicio)
11
+ this._state = signal(INITIAL_AUTH_STATE);
12
+ this._mfaPending = signal(INITIAL_MFA_STATE);
13
+ // =============================================
14
+ // Signals públicos (readonly)
15
+ // =============================================
16
+ /** Estado completo de autenticación */
17
+ this.state = this._state.asReadonly();
18
+ /** Estado de MFA pendiente */
19
+ this.mfaPending = this._mfaPending.asReadonly();
20
+ /** Usuario está autenticado */
21
+ this.isAuthenticated = computed(() => this._state().isAuthenticated);
22
+ /** Estado de carga */
23
+ this.isLoading = computed(() => this._state().isLoading);
24
+ /** Token de acceso */
25
+ this.accessToken = computed(() => this._state().accessToken);
26
+ /** Roles del usuario */
27
+ this.roles = computed(() => this._state().roles);
28
+ /** Permisos del usuario */
29
+ this.permissions = computed(() => this._state().permissions);
30
+ /** Usuario es super admin */
31
+ this.isSuperAdmin = computed(() => this._state().isSuperAdmin);
32
+ /** Error actual */
33
+ this.error = computed(() => this._state().error);
34
+ /** Información del usuario */
35
+ this.user = computed(() => {
36
+ const state = this._state();
37
+ if (!state.isAuthenticated || !state.userId) {
38
+ return null;
39
+ }
40
+ return {
41
+ userId: state.userId,
42
+ email: state.email || '',
43
+ roles: state.roles,
44
+ permissions: state.permissions,
45
+ isSuperAdmin: state.isSuperAdmin,
46
+ };
47
+ });
48
+ }
49
+ // =============================================
50
+ // Métodos de actualización
51
+ // =============================================
52
+ /**
53
+ * Establece el estado de carga.
54
+ */
55
+ setLoading(isLoading) {
56
+ this._state.update((s) => ({ ...s, isLoading }));
57
+ }
58
+ /**
59
+ * Establece el estado de autenticación exitosa.
60
+ */
61
+ setAuthenticated(data) {
62
+ this._state.set({
63
+ isAuthenticated: true,
64
+ isLoading: false,
65
+ accessToken: data.accessToken,
66
+ refreshToken: data.refreshToken,
67
+ userId: data.userId || null,
68
+ email: data.email || null,
69
+ roles: data.roles,
70
+ permissions: data.permissions,
71
+ isSuperAdmin: data.isSuperAdmin,
72
+ expiresAt: data.expiresAt,
73
+ error: null,
74
+ });
75
+ }
76
+ /**
77
+ * Actualiza solo el access token (después de refresh).
78
+ */
79
+ updateAccessToken(accessToken, expiresIn) {
80
+ const expiresAt = Date.now() + expiresIn * 1000;
81
+ this._state.update((s) => ({
82
+ ...s,
83
+ accessToken,
84
+ expiresAt,
85
+ }));
86
+ }
87
+ /**
88
+ * Actualiza los permisos.
89
+ */
90
+ updatePermissions(roles, permissions, isSuperAdmin) {
91
+ this._state.update((s) => ({
92
+ ...s,
93
+ roles,
94
+ permissions,
95
+ isSuperAdmin,
96
+ }));
97
+ }
98
+ /**
99
+ * Establece un error de autenticación.
100
+ */
101
+ setError(error) {
102
+ this._state.update((s) => ({
103
+ ...s,
104
+ error,
105
+ isLoading: false,
106
+ }));
107
+ }
108
+ /**
109
+ * Limpia el error.
110
+ */
111
+ clearError() {
112
+ this._state.update((s) => ({
113
+ ...s,
114
+ error: null,
115
+ }));
116
+ }
117
+ /**
118
+ * Establece estado de MFA pendiente.
119
+ */
120
+ setMFAPending(mfaState) {
121
+ this._mfaPending.set(mfaState);
122
+ }
123
+ /**
124
+ * Limpia el estado de MFA pendiente.
125
+ */
126
+ clearMFAPending() {
127
+ this._mfaPending.set(INITIAL_MFA_STATE);
128
+ }
129
+ /**
130
+ * Resetea todo el estado a valores iniciales.
131
+ */
132
+ reset() {
133
+ this._state.set(INITIAL_AUTH_STATE);
134
+ this._mfaPending.set(INITIAL_MFA_STATE);
135
+ }
136
+ /**
137
+ * Restaura estado desde datos almacenados.
138
+ */
139
+ restoreFromStorage(stored) {
140
+ if (stored.accessToken) {
141
+ this._state.set({
142
+ isAuthenticated: true,
143
+ isLoading: false,
144
+ accessToken: stored.accessToken,
145
+ refreshToken: stored.refreshToken || null,
146
+ userId: null, // Se extraerá del token
147
+ email: null, // Se extraerá del token
148
+ roles: stored.roles || [],
149
+ permissions: stored.permissions || [],
150
+ isSuperAdmin: stored.isSuperAdmin || false,
151
+ expiresAt: stored.expiresAt || null,
152
+ error: null,
153
+ });
154
+ }
155
+ }
156
+ /**
157
+ * Actualiza el userId y email (después de parsear el token).
158
+ */
159
+ updateUserInfo(userId, email) {
160
+ this._state.update((s) => ({
161
+ ...s,
162
+ userId,
163
+ email,
164
+ }));
165
+ }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
167
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStateService, providedIn: 'root' }); }
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStateService, decorators: [{
170
+ type: Injectable,
171
+ args: [{ providedIn: 'root' }]
172
+ }] });
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGgtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUtMLGtCQUFrQixFQUNsQixpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7O0FBRWpCOzs7R0FHRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFRSxvREFBb0Q7UUFDNUMsV0FBTSxHQUFHLE1BQU0sQ0FBWSxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9DLGdCQUFXLEdBQUcsTUFBTSxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDO1FBRWpFLGdEQUFnRDtRQUNoRCw4QkFBOEI7UUFDOUIsZ0RBQWdEO1FBRWhELHVDQUF1QztRQUM5QixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUxQyw4QkFBOEI7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFcEQsK0JBQStCO1FBQ3RCLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV6RSxzQkFBc0I7UUFDYixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RCxzQkFBc0I7UUFDYixnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakUsd0JBQXdCO1FBQ2YsVUFBSyxHQUFHLFFBQVEs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QUFFLHdCQUF3QjtnQkFDdEMsS0FBSyxFQUFFLElBQUksRUFBRSx3QkFBd0I7Z0JBQ3JDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ3pCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUU7Z0JBQ3JDLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLEtBQUs7Z0JBQzFDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUk7Z0JBQ25DLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxNQUFjLEVBQUUsS0FBYTtRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixHQUFHLENBQUM7WUFDSixNQUFNO1lBQ04sS0FBSztTQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzsrR0EvTFUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEF1dGhTdGF0ZSxcbiAgQXV0aFVzZXIsXG4gIEF1dGhFcnJvcixcbiAgTUZBUGVuZGluZ1N0YXRlLFxuICBJTklUSUFMX0FVVEhfU1RBVEUsXG4gIElOSVRJQUxfTUZBX1NUQVRFLFxuICBTdG9yZWRBdXRoU3RhdGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNlcnZpY2lvIHBhcmEgbWFuZWpvIGRlIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbiBjb24gQW5ndWxhciBTaWduYWxzLlxuICogUHJvcG9yY2lvbmEgZXN0YWRvIHJlYWN0aXZvIGlubXV0YWJsZS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoU3RhdGVTZXJ2aWNlIHtcbiAgLy8gRXN0YWRvIGludGVybm8gKG11dGFibGUgc29sbyBkZW50cm8gZGVsIHNlcnZpY2lvKVxuICBwcml2YXRlIF9zdGF0ZSA9IHNpZ25hbDxBdXRoU3RhdGU+KElOSVRJQUxfQVVUSF9TVEFURSk7XG4gIHByaXZhdGUgX21mYVBlbmRpbmcgPSBzaWduYWw8TUZBUGVuZGluZ1N0YXRlPihJTklUSUFMX01GQV9TVEFURSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNpZ25hbHMgcMO6YmxpY29zIChyZWFkb25seSlcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqIEVzdGFkbyBjb21wbGV0byBkZSBhdXRlbnRpY2FjacOzbiAqL1xuICByZWFkb25seSBzdGF0ZSA9IHRoaXMuX3N0YXRlLmFzUmVhZG9ubHkoKTtcblxuICAvKiogRXN0YWRvIGRlIE1GQSBwZW5kaWVudGUgKi9cbiAgcmVhZG9ubHkgbWZhUGVuZGluZyA9IHRoaXMuX21mYVBlbmRpbmcuYXNSZWFkb25seSgpO1xuXG4gIC8qKiBVc3VhcmlvIGVzdMOhIGF1dGVudGljYWRvICovXG4gIHJlYWRvbmx5IGlzQXV0aGVudGljYXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkuaXNBdXRoZW50aWNhdGVkKTtcblxuICAvKiogRXN0YWRvIGRlIGNhcmdhICovXG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXRlKCkuaXNMb2FkaW5nKTtcblxuICAvKiogVG9rZW4gZGUgYWNjZXNvICovXG4gIHJlYWRvbmx5IGFjY2Vzc1Rva2VuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5hY2Nlc3NUb2tlbik7XG5cbiAgLyoqIFJvbGVzIGRlbCB1c3VhcmlvICovXG4gIHJlYWRvbmx5IHJvbGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5yb2xlcyk7XG5cbiAgLyoqIFBlcm1pc29zIGRlbCB1c3VhcmlvICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5wZXJtaXNzaW9ucyk7XG5cbiAgLyoqIFVzdWFyaW8gZXMgc3VwZXIgYWRtaW4gKi9cbiAgcmVhZG9ubHkgaXNTdXBlckFkbWluID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc3RhdGUoKS5pc1N1cGVyQWRtaW4pO1xuXG4gIC8qKiBFcnJvciBhY3R1YWwgKi9cbiAgcmVhZG9ubHkgZXJyb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9zdGF0ZSgpLmVycm9yKTtcblxuICAvKiogSW5mb3JtYWNpw7NuIGRlbCB1c3VhcmlvICovXG4gIHJlYWRvbmx5IHVzZXIgPSBjb21wdXRlZDxBdXRoVXNlciB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX3N0YXRlKCk7XG4gICAgaWYgKCFzdGF0ZS5pc0F1dGhlbnRpY2F0ZWQgfHwgIXN0YXRlLnVzZXJJZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB1c2VySWQ6IHN0YXRlLnVzZXJJZCxcbiAgICAgIGVtYWlsOiBzdGF0ZS5lbWFpbCB8fCAnJyxcbiAgICAgIHJvbGVzOiBzdGF0ZS5yb2xlcyxcbiAgICAgIHBlcm1pc3Npb25zOiBzdGF0ZS5wZXJtaXNzaW9ucyxcbiAgICAgIGlzU3VwZXJBZG1pbjogc3RhdGUuaXNTdXBlckFkbWluLFxuICAgIH07XG4gIH0pO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNw6l0b2RvcyBkZSBhY3R1YWxpemFjacOzblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogRXN0YWJsZWNlIGVsIGVzdGFkbyBkZSBjYXJnYS5cbiAgICovXG4gIHNldExvYWRpbmcoaXNMb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUudXBkYXRlKChzKSA9PiAoeyAuLi5zLCBpc0xvYWRpbmcgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFibGVjZSBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZXhpdG9zYS5cbiAgICovXG4gIHNldEF1dGhlbnRpY2F0ZWQoZGF0YToge1xuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgaXNTdXBlckFkbWluOiBib29sZWFuO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9KTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUuc2V0KHtcbiAgICAgIGlzQXV0aGVudGljYXRlZDogdHJ1ZSxcbiAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICBhY2Nlc3NUb2tlbjogZGF0YS5hY2Nlc3NUb2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbjogZGF0YS5yZWZyZXNoVG9rZW4sXG4gICAgICB1c2VySWQ6IGRhdGEudXNlcklkIHx8IG51bGwsXG4gICAgICBlbWFpbDogZGF0YS5lbWFpbCB8fCBudWxsLFxuICAgICAgcm9sZXM6IGRhdGEucm9sZXMsXG4gICAgICBwZXJtaXNzaW9uczogZGF0YS5wZXJtaXNzaW9ucyxcbiAgICAgIGlzU3VwZXJBZG1pbjogZGF0YS5pc1N1cGVyQWRtaW4sXG4gICAgICBleHBpcmVzQXQ6IGRhdGEuZXhwaXJlc0F0LFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIHNvbG8gZWwgYWNjZXNzIHRva2VuIChkZXNwdcOpcyBkZSByZWZyZXNoKS5cbiAgICovXG4gIHVwZGF0ZUFjY2Vzc1Rva2VuKGFjY2Vzc1Rva2VuOiBzdHJpbmcsIGV4cGlyZXNJbjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZXhwaXJlc0F0ID0gRGF0ZS5ub3coKSArIGV4cGlyZXNJbiAqIDEwMDA7XG4gICAgdGhpcy5fc3RhdGUudXBkYXRlKChzKSA9PiAoe1xuICAgICAgLi4ucyxcbiAgICAgIGFjY2Vzc1Rva2VuLFxuICAgICAgZXhwaXJlc0F0LFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgbG9zIHBlcm1pc29zLlxuICAgKi9cbiAgdXBkYXRlUGVybWlzc2lvbnMoXG4gICAgcm9sZXM6IHN0cmluZ1tdLFxuICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXSxcbiAgICBpc1N1cGVyQWRtaW46IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUudXBkYXRlKChzKSA9PiAoe1xuICAgICAgLi4ucyxcbiAgICAgIHJvbGVzLFxuICAgICAgcGVybWlzc2lvbnMsXG4gICAgICBpc1N1cGVyQWRtaW4sXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzdGFibGVjZSB1biBlcnJvciBkZSBhdXRlbnRpY2FjacOzbi5cbiAgICovXG4gIHNldEVycm9yKGVycm9yOiBBdXRoRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUoKHMpID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgZXJyb3IsXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgZWwgZXJyb3IuXG4gICAqL1xuICBjbGVhckVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgIC4uLnMsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogRXN0YWJsZWNlIGVzdGFkbyBkZSBNRkEgcGVuZGllbnRlLlxuICAgKi9cbiAgc2V0TUZBUGVuZGluZyhtZmFTdGF0ZTogTUZBUGVuZGluZ1N0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5fbWZhUGVuZGluZy5zZXQobWZhU3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSBlbCBlc3RhZG8gZGUgTUZBIHBlbmRpZW50ZS5cbiAgICovXG4gIGNsZWFyTUZBUGVuZGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZmFQZW5kaW5nLnNldChJTklUSUFMX01GQV9TVEFURSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRlYSB0b2RvIGVsIGVzdGFkbyBhIHZhbG9yZXMgaW5pY2lhbGVzLlxuICAgKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUuc2V0KElOSVRJQUxfQVVUSF9TVEFURSk7XG4gICAgdGhpcy5fbWZhUGVuZGluZy5zZXQoSU5JVElBTF9NRkFfU1RBVEUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RhdXJhIGVzdGFkbyBkZXNkZSBkYXRvcyBhbG1hY2VuYWRvcy5cbiAgICovXG4gIHJlc3RvcmVGcm9tU3RvcmFnZShzdG9yZWQ6IFBhcnRpYWw8U3RvcmVkQXV0aFN0YXRlPik6IHZvaWQge1xuICAgIGlmIChzdG9yZWQuYWNjZXNzVG9rZW4pIHtcbiAgICAgIHRoaXMuX3N0YXRlLnNldCh7XG4gICAgICAgIGlzQXV0aGVudGljYXRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgYWNjZXNzVG9rZW46IHN0b3JlZC5hY2Nlc3NUb2tlbixcbiAgICAgICAgcmVmcmVzaFRva2VuOiBzdG9yZWQucmVmcmVzaFRva2VuIHx8IG51bGwsXG4gICAgICAgIHVzZXJJZDogbnVsbCwgLy8gU2UgZXh0cmFlcsOhIGRlbCB0b2tlblxuICAgICAgICBlbWFpbDogbnVsbCwgLy8gU2UgZXh0cmFlcsOhIGRlbCB0b2tlblxuICAgICAgICByb2xlczogc3RvcmVkLnJvbGVzIHx8IFtdLFxuICAgICAgICBwZXJtaXNzaW9uczogc3RvcmVkLnBlcm1pc3Npb25zIHx8IFtdLFxuICAgICAgICBpc1N1cGVyQWRtaW46IHN0b3JlZC5pc1N1cGVyQWRtaW4gfHwgZmFsc2UsXG4gICAgICAgIGV4cGlyZXNBdDogc3RvcmVkLmV4cGlyZXNBdCB8fCBudWxsLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgZWwgdXNlcklkIHkgZW1haWwgKGRlc3B1w6lzIGRlIHBhcnNlYXIgZWwgdG9rZW4pLlxuICAgKi9cbiAgdXBkYXRlVXNlckluZm8odXNlcklkOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZS51cGRhdGUoKHMpID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgdXNlcklkLFxuICAgICAgZW1haWwsXG4gICAgfSkpO1xuICB9XG59XG4iXX0=