valtech-components 4.0.1024 → 4.0.1025
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/molecules/select-input-v2/select-input-v2.component.mjs +265 -0
- package/esm2022/lib/components/organisms/form/form.component.mjs +14 -4
- package/esm2022/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/profile-modal/profile-modal.component.mjs +4 -9
- package/esm2022/lib/components/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/valtech-components.mjs +273 -15
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/select-input-v2/select-input-v2.component.d.ts +33 -0
- package/lib/components/types.d.ts +4 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, ElementRef, HostListener, Input, inject } from '@angular/core';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { IonIcon } from '@ionic/angular/standalone';
|
|
5
|
+
import { addIcons } from 'ionicons';
|
|
6
|
+
import { checkmarkOutline } from 'ionicons/icons';
|
|
7
|
+
import { applyDefaultValueToControl } from '../../../shared/utils/form-defaults';
|
|
8
|
+
import { I18nService } from '../../../services/i18n';
|
|
9
|
+
import { PresetService } from '../../../services/presets';
|
|
10
|
+
import { ComponentStates } from '../../types';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class SelectInputV2Component {
|
|
13
|
+
static { this.nextId = 0; }
|
|
14
|
+
constructor() {
|
|
15
|
+
this.i18n = inject(I18nService);
|
|
16
|
+
this.presets = inject(PresetService);
|
|
17
|
+
this.host = inject((ElementRef));
|
|
18
|
+
this.props = {};
|
|
19
|
+
this.resolvedProps = {};
|
|
20
|
+
this.isOpen = false;
|
|
21
|
+
this.listboxId = `val-select-v2-${SelectInputV2Component.nextId++}`;
|
|
22
|
+
addIcons({ checkmarkOutline });
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.resolveProps();
|
|
26
|
+
this.setupComponent();
|
|
27
|
+
}
|
|
28
|
+
ngOnChanges(changes) {
|
|
29
|
+
if (changes['preset'] || changes['props']) {
|
|
30
|
+
this.resolveProps();
|
|
31
|
+
this.setupComponent();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
handleDocumentClick(event) {
|
|
35
|
+
if (!this.host.nativeElement.contains(event.target)) {
|
|
36
|
+
this.isOpen = false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
toggle() {
|
|
40
|
+
if (this.isDisabled())
|
|
41
|
+
return;
|
|
42
|
+
this.isOpen = !this.isOpen;
|
|
43
|
+
}
|
|
44
|
+
openAndFocus(event, direction) {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
if (this.isDisabled())
|
|
47
|
+
return;
|
|
48
|
+
this.isOpen = true;
|
|
49
|
+
setTimeout(() => this.focusNextOption(direction));
|
|
50
|
+
}
|
|
51
|
+
focusNext(event, direction) {
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
this.focusNextOption(direction);
|
|
54
|
+
}
|
|
55
|
+
close(event) {
|
|
56
|
+
event?.preventDefault();
|
|
57
|
+
this.isOpen = false;
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
const trigger = this.host.nativeElement.querySelector('.select-v2__trigger');
|
|
60
|
+
trigger?.focus();
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
select(option) {
|
|
64
|
+
if (option.disabled || this.isDisabled())
|
|
65
|
+
return;
|
|
66
|
+
this.resolvedProps.control?.setValue(option.id);
|
|
67
|
+
this.resolvedProps.control?.markAsDirty();
|
|
68
|
+
this.resolvedProps.control?.markAsTouched();
|
|
69
|
+
this.isOpen = false;
|
|
70
|
+
}
|
|
71
|
+
selectedOption() {
|
|
72
|
+
return this.orderedOptions().find(option => option.id === this.resolvedProps.control?.value);
|
|
73
|
+
}
|
|
74
|
+
orderedOptions() {
|
|
75
|
+
return [...(this.resolvedProps.options || [])].sort((a, b) => a.order - b.order);
|
|
76
|
+
}
|
|
77
|
+
isDisabled() {
|
|
78
|
+
return this.resolvedProps.state === ComponentStates.DISABLED || !!this.resolvedProps.control?.disabled;
|
|
79
|
+
}
|
|
80
|
+
ariaLabel() {
|
|
81
|
+
return this.resolvedProps.label || this.resolvedProps.placeholder || this.i18n.t('selectOption');
|
|
82
|
+
}
|
|
83
|
+
iconMask(src) {
|
|
84
|
+
return `url("${src}")`;
|
|
85
|
+
}
|
|
86
|
+
resolveProps() {
|
|
87
|
+
const presetProps = this.preset ? this.presets.get('selectInputV2', this.preset) : {};
|
|
88
|
+
this.resolvedProps = {
|
|
89
|
+
label: '',
|
|
90
|
+
state: ComponentStates.ENABLED,
|
|
91
|
+
options: [],
|
|
92
|
+
...presetProps,
|
|
93
|
+
...this.props,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
setupComponent() {
|
|
97
|
+
if (this.resolvedProps?.withDefault || this.resolvedProps?.value) {
|
|
98
|
+
applyDefaultValueToControl(this.resolvedProps);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
focusNextOption(direction) {
|
|
102
|
+
const options = Array.from(this.host.nativeElement.querySelectorAll('.select-v2__option'));
|
|
103
|
+
if (!options.length)
|
|
104
|
+
return;
|
|
105
|
+
const activeIndex = options.findIndex(option => option === document.activeElement);
|
|
106
|
+
const nextIndex = activeIndex < 0 ? (direction > 0 ? 0 : options.length - 1) : activeIndex + direction;
|
|
107
|
+
options[(nextIndex + options.length) % options.length]?.focus();
|
|
108
|
+
}
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectInputV2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SelectInputV2Component, isStandalone: true, selector: "val-select-input-v2", inputs: { preset: "preset", props: "props" }, host: { listeners: { "document:click": "handleDocumentClick($event)" } }, usesOnChanges: true, ngImport: i0, template: `
|
|
111
|
+
<div class="select-v2" [class.select-v2--open]="isOpen" [class.select-v2--disabled]="isDisabled()">
|
|
112
|
+
<button
|
|
113
|
+
type="button"
|
|
114
|
+
class="select-v2__trigger"
|
|
115
|
+
[attr.aria-label]="ariaLabel()"
|
|
116
|
+
[attr.aria-expanded]="isOpen"
|
|
117
|
+
aria-haspopup="listbox"
|
|
118
|
+
[attr.aria-controls]="listboxId"
|
|
119
|
+
[disabled]="isDisabled()"
|
|
120
|
+
(click)="toggle()"
|
|
121
|
+
(keydown.arrowdown)="openAndFocus($event, 1)"
|
|
122
|
+
(keydown.arrowup)="openAndFocus($event, -1)"
|
|
123
|
+
>
|
|
124
|
+
<span class="select-v2__value" [class.select-v2__value--placeholder]="!selectedOption()">
|
|
125
|
+
@if (selectedOption()?.icon?.src) {
|
|
126
|
+
<span
|
|
127
|
+
class="select-v2__icon select-v2__icon--mask"
|
|
128
|
+
[style.--val-select-v2-icon-src]="iconMask(selectedOption()!.icon!.src!)"
|
|
129
|
+
aria-hidden="true"
|
|
130
|
+
></span>
|
|
131
|
+
} @else if (selectedOption()?.icon?.name) {
|
|
132
|
+
<ion-icon
|
|
133
|
+
class="select-v2__icon"
|
|
134
|
+
[name]="selectedOption()!.icon!.name"
|
|
135
|
+
[color]="selectedOption()!.icon!.color"
|
|
136
|
+
aria-hidden="true"
|
|
137
|
+
/>
|
|
138
|
+
}
|
|
139
|
+
<span>{{ selectedOption()?.name || resolvedProps.placeholder || resolvedProps.label }}</span>
|
|
140
|
+
</span>
|
|
141
|
+
<span class="select-v2__chevron" aria-hidden="true"></span>
|
|
142
|
+
</button>
|
|
143
|
+
|
|
144
|
+
@if (isOpen) {
|
|
145
|
+
<div class="select-v2__menu" [id]="listboxId" role="listbox" [attr.aria-label]="ariaLabel()">
|
|
146
|
+
@for (option of orderedOptions(); track option.id) {
|
|
147
|
+
<button
|
|
148
|
+
type="button"
|
|
149
|
+
class="select-v2__option"
|
|
150
|
+
role="option"
|
|
151
|
+
[attr.aria-selected]="option.id === resolvedProps.control?.value"
|
|
152
|
+
[disabled]="option.disabled"
|
|
153
|
+
(click)="select(option)"
|
|
154
|
+
(keydown.arrowdown)="focusNext($event, 1)"
|
|
155
|
+
(keydown.arrowup)="focusNext($event, -1)"
|
|
156
|
+
(keydown.escape)="close($event)"
|
|
157
|
+
>
|
|
158
|
+
@if (option.icon?.src) {
|
|
159
|
+
<span
|
|
160
|
+
class="select-v2__icon select-v2__icon--mask"
|
|
161
|
+
[style.--val-select-v2-icon-src]="iconMask(option.icon.src)"
|
|
162
|
+
aria-hidden="true"
|
|
163
|
+
></span>
|
|
164
|
+
} @else if (option.icon?.name) {
|
|
165
|
+
<ion-icon
|
|
166
|
+
class="select-v2__icon"
|
|
167
|
+
[name]="option.icon.name"
|
|
168
|
+
[color]="option.icon.color"
|
|
169
|
+
aria-hidden="true"
|
|
170
|
+
/>
|
|
171
|
+
}
|
|
172
|
+
<span class="select-v2__option-label">{{ option.name }}</span>
|
|
173
|
+
@if (option.id === resolvedProps.control?.value) {
|
|
174
|
+
<ion-icon class="select-v2__check" name="checkmark-outline" aria-hidden="true" />
|
|
175
|
+
}
|
|
176
|
+
</button>
|
|
177
|
+
}
|
|
178
|
+
</div>
|
|
179
|
+
}
|
|
180
|
+
</div>
|
|
181
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.select-v2{position:relative;margin-top:.375rem}.select-v2__trigger{width:100%;min-height:2.625rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.75rem;border:.0625rem solid var(--ion-color-medium);border-radius:1.5rem;padding:.5rem .625rem .5rem 1rem;background:transparent;color:var(--ion-color-darki);font:inherit;text-align:left}.select-v2__trigger:focus{outline:none}.select-v2__trigger:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.select-v2--open .select-v2__trigger{border-width:.125rem;border-color:var(--ion-color-primary);padding:.4375rem .5625rem .4375rem .9375rem}.select-v2__value,.select-v2__option{display:inline-flex;align-items:center;gap:.625rem;min-width:0}.select-v2__value{flex:1}.select-v2__value--placeholder{color:var(--ion-color-medium)}.select-v2__icon{flex:0 0 auto;width:1.125rem;height:1.125rem;font-size:1.125rem}.select-v2__icon--mask{background:currentColor;mask:var(--val-select-v2-icon-src) center/contain no-repeat;-webkit-mask:var(--val-select-v2-icon-src) center/contain no-repeat}.select-v2__chevron{flex:0 0 auto;width:.625rem;height:.625rem;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;transform:rotate(45deg) translateY(-.125rem)}.select-v2--open .select-v2__chevron{transform:rotate(225deg) translateY(-.125rem)}.select-v2__menu{position:absolute;z-index:20;left:0;right:0;top:calc(100% + .375rem);overflow:hidden;border:.0625rem solid rgba(var(--ion-color-medium-rgb),.28);border-radius:1.5rem;background:var(--ion-background-color);box-shadow:0 .875rem 2.125rem #00000029}.select-v2__option{width:100%;min-height:3rem;justify-content:flex-start;border:0;border-bottom:.0625rem solid rgba(var(--ion-color-medium-rgb),.22);padding:.75rem .875rem;background:var(--ion-background-color);color:var(--ion-color-darki);font:inherit;text-align:left}.select-v2__option:focus{outline:none}.select-v2__option:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.select-v2__option:last-child{border-bottom:0}.select-v2__option:hover,.select-v2__option:focus-visible{background:rgba(var(--ion-color-medium-rgb),.08)}.select-v2__option[aria-selected=true]{font-weight:700}.select-v2__option-label{flex:1;min-width:0}.select-v2__check{flex:0 0 auto;font-size:1.25rem}.select-v2--disabled{opacity:.55}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
182
|
+
}
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectInputV2Component, decorators: [{
|
|
184
|
+
type: Component,
|
|
185
|
+
args: [{ selector: 'val-select-input-v2', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonIcon], template: `
|
|
186
|
+
<div class="select-v2" [class.select-v2--open]="isOpen" [class.select-v2--disabled]="isDisabled()">
|
|
187
|
+
<button
|
|
188
|
+
type="button"
|
|
189
|
+
class="select-v2__trigger"
|
|
190
|
+
[attr.aria-label]="ariaLabel()"
|
|
191
|
+
[attr.aria-expanded]="isOpen"
|
|
192
|
+
aria-haspopup="listbox"
|
|
193
|
+
[attr.aria-controls]="listboxId"
|
|
194
|
+
[disabled]="isDisabled()"
|
|
195
|
+
(click)="toggle()"
|
|
196
|
+
(keydown.arrowdown)="openAndFocus($event, 1)"
|
|
197
|
+
(keydown.arrowup)="openAndFocus($event, -1)"
|
|
198
|
+
>
|
|
199
|
+
<span class="select-v2__value" [class.select-v2__value--placeholder]="!selectedOption()">
|
|
200
|
+
@if (selectedOption()?.icon?.src) {
|
|
201
|
+
<span
|
|
202
|
+
class="select-v2__icon select-v2__icon--mask"
|
|
203
|
+
[style.--val-select-v2-icon-src]="iconMask(selectedOption()!.icon!.src!)"
|
|
204
|
+
aria-hidden="true"
|
|
205
|
+
></span>
|
|
206
|
+
} @else if (selectedOption()?.icon?.name) {
|
|
207
|
+
<ion-icon
|
|
208
|
+
class="select-v2__icon"
|
|
209
|
+
[name]="selectedOption()!.icon!.name"
|
|
210
|
+
[color]="selectedOption()!.icon!.color"
|
|
211
|
+
aria-hidden="true"
|
|
212
|
+
/>
|
|
213
|
+
}
|
|
214
|
+
<span>{{ selectedOption()?.name || resolvedProps.placeholder || resolvedProps.label }}</span>
|
|
215
|
+
</span>
|
|
216
|
+
<span class="select-v2__chevron" aria-hidden="true"></span>
|
|
217
|
+
</button>
|
|
218
|
+
|
|
219
|
+
@if (isOpen) {
|
|
220
|
+
<div class="select-v2__menu" [id]="listboxId" role="listbox" [attr.aria-label]="ariaLabel()">
|
|
221
|
+
@for (option of orderedOptions(); track option.id) {
|
|
222
|
+
<button
|
|
223
|
+
type="button"
|
|
224
|
+
class="select-v2__option"
|
|
225
|
+
role="option"
|
|
226
|
+
[attr.aria-selected]="option.id === resolvedProps.control?.value"
|
|
227
|
+
[disabled]="option.disabled"
|
|
228
|
+
(click)="select(option)"
|
|
229
|
+
(keydown.arrowdown)="focusNext($event, 1)"
|
|
230
|
+
(keydown.arrowup)="focusNext($event, -1)"
|
|
231
|
+
(keydown.escape)="close($event)"
|
|
232
|
+
>
|
|
233
|
+
@if (option.icon?.src) {
|
|
234
|
+
<span
|
|
235
|
+
class="select-v2__icon select-v2__icon--mask"
|
|
236
|
+
[style.--val-select-v2-icon-src]="iconMask(option.icon.src)"
|
|
237
|
+
aria-hidden="true"
|
|
238
|
+
></span>
|
|
239
|
+
} @else if (option.icon?.name) {
|
|
240
|
+
<ion-icon
|
|
241
|
+
class="select-v2__icon"
|
|
242
|
+
[name]="option.icon.name"
|
|
243
|
+
[color]="option.icon.color"
|
|
244
|
+
aria-hidden="true"
|
|
245
|
+
/>
|
|
246
|
+
}
|
|
247
|
+
<span class="select-v2__option-label">{{ option.name }}</span>
|
|
248
|
+
@if (option.id === resolvedProps.control?.value) {
|
|
249
|
+
<ion-icon class="select-v2__check" name="checkmark-outline" aria-hidden="true" />
|
|
250
|
+
}
|
|
251
|
+
</button>
|
|
252
|
+
}
|
|
253
|
+
</div>
|
|
254
|
+
}
|
|
255
|
+
</div>
|
|
256
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.select-v2{position:relative;margin-top:.375rem}.select-v2__trigger{width:100%;min-height:2.625rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.75rem;border:.0625rem solid var(--ion-color-medium);border-radius:1.5rem;padding:.5rem .625rem .5rem 1rem;background:transparent;color:var(--ion-color-darki);font:inherit;text-align:left}.select-v2__trigger:focus{outline:none}.select-v2__trigger:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.select-v2--open .select-v2__trigger{border-width:.125rem;border-color:var(--ion-color-primary);padding:.4375rem .5625rem .4375rem .9375rem}.select-v2__value,.select-v2__option{display:inline-flex;align-items:center;gap:.625rem;min-width:0}.select-v2__value{flex:1}.select-v2__value--placeholder{color:var(--ion-color-medium)}.select-v2__icon{flex:0 0 auto;width:1.125rem;height:1.125rem;font-size:1.125rem}.select-v2__icon--mask{background:currentColor;mask:var(--val-select-v2-icon-src) center/contain no-repeat;-webkit-mask:var(--val-select-v2-icon-src) center/contain no-repeat}.select-v2__chevron{flex:0 0 auto;width:.625rem;height:.625rem;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;transform:rotate(45deg) translateY(-.125rem)}.select-v2--open .select-v2__chevron{transform:rotate(225deg) translateY(-.125rem)}.select-v2__menu{position:absolute;z-index:20;left:0;right:0;top:calc(100% + .375rem);overflow:hidden;border:.0625rem solid rgba(var(--ion-color-medium-rgb),.28);border-radius:1.5rem;background:var(--ion-background-color);box-shadow:0 .875rem 2.125rem #00000029}.select-v2__option{width:100%;min-height:3rem;justify-content:flex-start;border:0;border-bottom:.0625rem solid rgba(var(--ion-color-medium-rgb),.22);padding:.75rem .875rem;background:var(--ion-background-color);color:var(--ion-color-darki);font:inherit;text-align:left}.select-v2__option:focus{outline:none}.select-v2__option:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.select-v2__option:last-child{border-bottom:0}.select-v2__option:hover,.select-v2__option:focus-visible{background:rgba(var(--ion-color-medium-rgb),.08)}.select-v2__option[aria-selected=true]{font-weight:700}.select-v2__option-label{flex:1;min-width:0}.select-v2__check{flex:0 0 auto;font-size:1.25rem}.select-v2--disabled{opacity:.55}\n"] }]
|
|
257
|
+
}], ctorParameters: () => [], propDecorators: { preset: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], props: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], handleDocumentClick: [{
|
|
262
|
+
type: HostListener,
|
|
263
|
+
args: ['document:click', ['$event']]
|
|
264
|
+
}] } });
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2VsZWN0LWlucHV0LXYyL3NlbGVjdC1pbnB1dC12Mi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQW9DLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQThCLE1BQU0sYUFBYSxDQUFDOztBQWdGMUUsTUFBTSxPQUFPLHNCQUFzQjthQUNsQixXQUFNLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFZMUI7UUFYUSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBR3RDLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBRTVDLGtC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QkFBYixLQUFLO2dCQXVCTixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGVja21hcmtPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZm9ybS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZXNldHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RhdGVzLCBJbnB1dE1ldGFkYXRhLCBJbnB1dE9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNlbGVjdC1pbnB1dC12MicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtdjJcIiBbY2xhc3Muc2VsZWN0LXYyLS1vcGVuXT1cImlzT3BlblwiIFtjbGFzcy5zZWxlY3QtdjItLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3QtdjJfX3RyaWdnZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW5cIlxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwibGlzdGJveElkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgICAgIChrZXlkb3duLmFycm93ZG93bik9XCJvcGVuQW5kRm9jdXMoJGV2ZW50LCAxKVwiXG4gICAgICAgIChrZXlkb3duLmFycm93dXApPVwib3BlbkFuZEZvY3VzKCRldmVudCwgLTEpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWxlY3QtdjJfX3ZhbHVlXCIgW2NsYXNzLnNlbGVjdC12Ml9fdmFsdWUtLXBsYWNlaG9sZGVyXT1cIiFzZWxlY3RlZE9wdGlvbigpXCI+XG4gICAgICAgICAgQGlmIChzZWxlY3RlZE9wdGlvbigpPy5pY29uPy5zcmMpIHtcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LXYyX19pY29uIHNlbGVjdC12Ml9faWNvbi0tbWFza1wiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLXZhbC1zZWxlY3QtdjItaWNvbi1zcmNdPVwiaWNvbk1hc2soc2VsZWN0ZWRPcHRpb24oKSEuaWNvbiEuc3JjISlcIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICB9IEBlbHNlIGlmIChzZWxlY3RlZE9wdGlvbigpPy5pY29uPy5uYW1lKSB7XG4gICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtdjJfX2ljb25cIlxuICAgICAgICAgICAgICBbbmFtZV09XCJzZWxlY3RlZE9wdGlvbigpIS5pY29uIS5uYW1lXCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cInNlbGVjdGVkT3B0aW9uKCkhLmljb24hLmNvbG9yXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuPnt7IHNlbGVjdGVkT3B0aW9uKCk/Lm5hbWUgfHwgcmVzb2x2ZWRQcm9wcy5wbGFjZWhvbGRlciB8fCByZXNvbHZlZFByb3BzLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LXYyX19jaGV2cm9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIEBpZiAoaXNPcGVuKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtdjJfX21lbnVcIiBbaWRdPVwibGlzdGJveElkXCIgcm9sZT1cImxpc3Rib3hcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCgpXCI+XG4gICAgICAgICAgQGZvciAob3B0aW9uIG9mIG9yZGVyZWRPcHRpb25zKCk7IHRyYWNrIG9wdGlvbi5pZCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtdjJfX29wdGlvblwiXG4gICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIm9wdGlvbi5pZCA9PT0gcmVzb2x2ZWRQcm9wcy5jb250cm9sPy52YWx1ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KG9wdGlvbilcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd2Rvd24pPVwiZm9jdXNOZXh0KCRldmVudCwgMSlcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd3VwKT1cImZvY3VzTmV4dCgkZXZlbnQsIC0xKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbG9zZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmIChvcHRpb24uaWNvbj8uc3JjKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LXYyX19pY29uIHNlbGVjdC12Ml9faWNvbi0tbWFza1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuLS12YWwtc2VsZWN0LXYyLWljb24tc3JjXT1cImljb25NYXNrKG9wdGlvbi5pY29uLnNyYylcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChvcHRpb24uaWNvbj8ubmFtZSkge1xuICAgICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtdjJfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwib3B0aW9uLmljb24ubmFtZVwiXG4gICAgICAgICAgICAgICAgICBbY29sb3JdPVwib3B0aW9uLmljb24uY29sb3JcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LXYyX19vcHRpb24tbGFiZWxcIj57eyBvcHRpb24ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChvcHRpb24uaWQgPT09IHJlc29sdmVkUHJvcHMuY29udHJvbD8udmFsdWUpIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJzZWxlY3QtdjJfX2NoZWNrXCIgbmFtZT1cImNoZWNrbWFyay1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWlucHV0LXYyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdElucHV0VjJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPElucHV0TWV0YWRhdGE+ID0ge307XG5cbiAgcmVzb2x2ZWRQcm9wczogSW5wdXRNZXRhZGF0YSA9IHt9IGFzIElucHV0TWV0YWRhdGE7XG4gIGlzT3BlbiA9IGZhbHNlO1xuICBsaXN0Ym94SWQgPSBgdmFsLXNlbGVjdC12Mi0ke1NlbGVjdElucHV0VjJDb21wb25lbnQubmV4dElkKyt9YDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7IGNoZWNrbWFya091dGxpbmUgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICAgIHRoaXMuc2V0dXBDb21wb25lbnQoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGhhbmRsZURvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gIH1cblxuICBvcGVuQW5kRm9jdXMoZXZlbnQ6IEV2ZW50LCBkaXJlY3Rpb246IDEgfCAtMSk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1c05leHRPcHRpb24oZGlyZWN0aW9uKSk7XG4gIH1cblxuICBmb2N1c05leHQoZXZlbnQ6IEV2ZW50LCBkaXJlY3Rpb246IDEgfCAtMSk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5mb2N1c05leHRPcHRpb24oZGlyZWN0aW9uKTtcbiAgfVxuXG4gIGNsb3NlKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgdHJpZ2dlciA9IHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3QtdjJfX3RyaWdnZXInKSBhcyBIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw7XG4gICAgICB0cmlnZ2VyPy5mb2N1cygpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0KG9wdGlvbjogSW5wdXRPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRyb2w/LnNldFZhbHVlKG9wdGlvbi5pZCk7XG4gICAgdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0ZWRPcHRpb24oKTogSW5wdXRPcHRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9yZGVyZWRPcHRpb25zKCkuZmluZChvcHRpb24gPT4gb3B0aW9uLmlkID09PSB0aGlzLnJlc29sdmVkUHJvcHMuY29udHJvbD8udmFsdWUpO1xuICB9XG5cbiAgb3JkZXJlZE9wdGlvbnMoKTogSW5wdXRPcHRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi4odGhpcy5yZXNvbHZlZFByb3BzLm9wdGlvbnMgfHwgW10pXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gIH1cblxuICBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCB8fCAhIXRoaXMucmVzb2x2ZWRQcm9wcy5jb250cm9sPy5kaXNhYmxlZDtcbiAgfVxuXG4gIGFyaWFMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMubGFiZWwgfHwgdGhpcy5yZXNvbHZlZFByb3BzLnBsYWNlaG9sZGVyIHx8IHRoaXMuaTE4bi50KCdzZWxlY3RPcHRpb24nKTtcbiAgfVxuXG4gIGljb25NYXNrKHNyYzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHVybChcIiR7c3JjfVwiKWA7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ3NlbGVjdElucHV0VjInLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxJbnB1dE1ldGFkYXRhPikgOiB7fTtcbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICBsYWJlbDogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBvcHRpb25zOiBbXSxcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc29sdmVkUHJvcHM/LndpdGhEZWZhdWx0IHx8IHRoaXMucmVzb2x2ZWRQcm9wcz8udmFsdWUpIHtcbiAgICAgIGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sKHRoaXMucmVzb2x2ZWRQcm9wcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c05leHRPcHRpb24oZGlyZWN0aW9uOiAxIHwgLTEpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zZWxlY3QtdjJfX29wdGlvbicpIGFzIE5vZGVMaXN0T2Y8SFRNTEJ1dHRvbkVsZW1lbnQ+LFxuICAgICk7XG4gICAgaWYgKCFvcHRpb25zLmxlbmd0aCkgcmV0dXJuO1xuICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgob3B0aW9uID0+IG9wdGlvbiA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gYWN0aXZlSW5kZXggPCAwID8gKGRpcmVjdGlvbiA+IDAgPyAwIDogb3B0aW9ucy5sZW5ndGggLSAxKSA6IGFjdGl2ZUluZGV4ICsgZGlyZWN0aW9uO1xuICAgIG9wdGlvbnNbKG5leHRJbmRleCArIG9wdGlvbnMubGVuZ3RoKSAlIG9wdGlvbnMubGVuZ3RoXT8uZm9jdXMoKTtcbiAgfVxufVxuIl19
|