valtech-components 2.0.1035 → 4.0.0
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/atoms/box/box.component.mjs +6 -8
- package/esm2022/lib/components/atoms/button/factory.mjs +24 -217
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +2 -4
- package/esm2022/lib/components/atoms/href/href.component.mjs +1 -2
- package/esm2022/lib/components/atoms/image/image.component.mjs +36 -3
- package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +4 -9
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/lib/components/molecules/card/card.component.mjs +53 -10
- package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs +27 -36
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +44 -6
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +32 -7
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +28 -12
- package/esm2022/lib/components/molecules/cta-card/cta-card.component.mjs +4 -9
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +7 -7
- package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +159 -71
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +7 -3
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +30 -5
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +75 -19
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +42 -9
- package/esm2022/lib/components/molecules/permission-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +88 -12
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +15 -7
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +93 -7
- package/esm2022/lib/components/organisms/change-email-modal/change-email-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/change-password-modal/change-password-modal.component.mjs +4 -4
- package/esm2022/lib/components/organisms/form/form.component.mjs +62 -20
- package/esm2022/lib/components/organisms/login/login.component.mjs +8 -8
- package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
- package/esm2022/lib/components/types.mjs +1 -1
- package/esm2022/lib/services/presets/default-presets.mjs +45 -0
- package/esm2022/lib/services/presets/index.mjs +3 -1
- package/esm2022/lib/services/presets/preset.service.mjs +17 -4
- package/esm2022/lib/services/requests/request-form-builder.service.mjs +8 -3
- package/esm2022/lib/shared/utils/ionic-color.mjs +36 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +2 -8
- package/fesm2022/valtech-components.mjs +1138 -1022
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/box/box.component.d.ts +2 -5
- package/lib/components/atoms/button/factory.d.ts +15 -69
- package/lib/components/atoms/divider/divider.component.d.ts +1 -4
- package/lib/components/atoms/href/href.component.d.ts +2 -3
- package/lib/components/atoms/image/image.component.d.ts +5 -0
- package/lib/components/molecules/action-card/action-card.component.d.ts +1 -1
- package/lib/components/molecules/card/card.component.d.ts +2 -1
- package/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.d.ts +2 -3
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +5 -0
- package/lib/components/molecules/command-display/command-display.component.d.ts +4 -0
- package/lib/components/molecules/comment/comment.component.d.ts +3 -0
- package/lib/components/molecules/cta-card/cta-card.component.d.ts +0 -1
- package/lib/components/molecules/hint/hint.component.d.ts +11 -1
- package/lib/components/molecules/pagination/pagination.component.d.ts +5 -0
- package/lib/components/molecules/password-input/password-input.component.d.ts +4 -2
- package/lib/components/molecules/permission-selector/types.d.ts +1 -0
- package/lib/components/molecules/rating/rating.component.d.ts +11 -0
- package/lib/components/molecules/text-input/text-input.component.d.ts +21 -0
- package/lib/components/organisms/form/form.component.d.ts +19 -0
- package/lib/components/types.d.ts +21 -1
- package/lib/services/presets/default-presets.d.ts +22 -0
- package/lib/services/presets/index.d.ts +1 -0
- package/lib/services/presets/preset.service.d.ts +4 -0
- package/lib/shared/utils/ionic-color.d.ts +20 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -7
- package/src/lib/components/styles/mixins.scss +16 -0
- package/esm2022/lib/components/molecules/content-card/content-card.component.mjs +0 -86
- package/esm2022/lib/components/molecules/content-card/types.mjs +0 -11
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -68
- package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -28
- package/esm2022/lib/components/molecules/info-card/info-card.component.mjs +0 -126
- package/esm2022/lib/components/molecules/info-card/types.mjs +0 -11
- package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -34
- package/lib/components/molecules/content-card/content-card.component.d.ts +0 -26
- package/lib/components/molecules/content-card/types.d.ts +0 -30
- package/lib/components/molecules/email-input/email-input.component.d.ts +0 -34
- package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -15
- package/lib/components/molecules/info-card/info-card.component.d.ts +0 -37
- package/lib/components/molecules/info-card/types.d.ts +0 -44
- package/lib/components/molecules/number-input/number-input.component.d.ts +0 -16
|
@@ -132,42 +132,86 @@ export class FeaturesListComponent {
|
|
|
132
132
|
[class.features-list--center]="config().alignment === 'center'"
|
|
133
133
|
>
|
|
134
134
|
@for (feature of visibleFeatures(); track feature.titleKey) {
|
|
135
|
-
|
|
136
|
-
<
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
[
|
|
140
|
-
|
|
135
|
+
@if (feature.token != null) {
|
|
136
|
+
<button
|
|
137
|
+
type="button"
|
|
138
|
+
class="feature feature--clickable"
|
|
139
|
+
[attr.aria-label]="getTitle(feature)"
|
|
140
|
+
(click)="onItem(feature)"
|
|
141
141
|
>
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
142
|
+
<div
|
|
143
|
+
class="feature__icon"
|
|
144
|
+
[style.color]="iconColorStyle()"
|
|
145
|
+
[style.width.px]="config().iconSize"
|
|
146
|
+
[style.height.px]="config().iconSize"
|
|
147
|
+
>
|
|
148
|
+
@if (feature.image) {
|
|
149
|
+
<img
|
|
150
|
+
class="feature__image"
|
|
151
|
+
[class.feature__image--circle]="config().imageShape === 'circle'"
|
|
152
|
+
[src]="feature.image"
|
|
153
|
+
[alt]="getTitle(feature)"
|
|
154
|
+
/>
|
|
155
|
+
} @else if (feature.icon === 'custom' && feature.svgPath) {
|
|
156
|
+
<svg
|
|
157
|
+
[attr.width]="config().iconSize"
|
|
158
|
+
[attr.height]="config().iconSize"
|
|
159
|
+
viewBox="0 0 24 24"
|
|
160
|
+
fill="none"
|
|
161
|
+
stroke="currentColor"
|
|
162
|
+
stroke-width="1.5"
|
|
163
|
+
stroke-linecap="round"
|
|
164
|
+
stroke-linejoin="round"
|
|
165
|
+
>
|
|
166
|
+
<path [attr.d]="feature.svgPath" />
|
|
167
|
+
</svg>
|
|
168
|
+
} @else if (feature.icon) {
|
|
169
|
+
<ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
|
|
170
|
+
}
|
|
171
|
+
</div>
|
|
172
|
+
<div class="feature__content">
|
|
173
|
+
<strong class="feature__title">{{ getTitle(feature) }}</strong>
|
|
174
|
+
<p class="feature__description">{{ getDescription(feature) }}</p>
|
|
175
|
+
</div>
|
|
176
|
+
</button>
|
|
177
|
+
} @else {
|
|
178
|
+
<div class="feature">
|
|
179
|
+
<div
|
|
180
|
+
class="feature__icon"
|
|
181
|
+
[style.color]="iconColorStyle()"
|
|
182
|
+
[style.width.px]="config().iconSize"
|
|
183
|
+
[style.height.px]="config().iconSize"
|
|
184
|
+
>
|
|
185
|
+
@if (feature.image) {
|
|
186
|
+
<img
|
|
187
|
+
class="feature__image"
|
|
188
|
+
[class.feature__image--circle]="config().imageShape === 'circle'"
|
|
189
|
+
[src]="feature.image"
|
|
190
|
+
[alt]="getTitle(feature)"
|
|
191
|
+
/>
|
|
192
|
+
} @else if (feature.icon === 'custom' && feature.svgPath) {
|
|
193
|
+
<svg
|
|
194
|
+
[attr.width]="config().iconSize"
|
|
195
|
+
[attr.height]="config().iconSize"
|
|
196
|
+
viewBox="0 0 24 24"
|
|
197
|
+
fill="none"
|
|
198
|
+
stroke="currentColor"
|
|
199
|
+
stroke-width="1.5"
|
|
200
|
+
stroke-linecap="round"
|
|
201
|
+
stroke-linejoin="round"
|
|
202
|
+
>
|
|
203
|
+
<path [attr.d]="feature.svgPath" />
|
|
204
|
+
</svg>
|
|
205
|
+
} @else if (feature.icon) {
|
|
206
|
+
<ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
|
|
207
|
+
}
|
|
208
|
+
</div>
|
|
209
|
+
<div class="feature__content">
|
|
210
|
+
<strong class="feature__title">{{ getTitle(feature) }}</strong>
|
|
211
|
+
<p class="feature__description">{{ getDescription(feature) }}</p>
|
|
212
|
+
</div>
|
|
169
213
|
</div>
|
|
170
|
-
|
|
214
|
+
}
|
|
171
215
|
}
|
|
172
216
|
|
|
173
217
|
@if (canCollapse()) {
|
|
@@ -182,7 +226,7 @@ export class FeaturesListComponent {
|
|
|
182
226
|
</a>
|
|
183
227
|
}
|
|
184
228
|
</div>
|
|
185
|
-
`, isInline: true, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
229
|
+
`, isInline: true, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease;width:100%;text-align:left;border:none;background:none;font:inherit;color:inherit;padding:.25rem}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature--clickable:focus{outline:none}.feature--clickable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
186
230
|
}
|
|
187
231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeaturesListComponent, decorators: [{
|
|
188
232
|
type: Component,
|
|
@@ -197,42 +241,86 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
197
241
|
[class.features-list--center]="config().alignment === 'center'"
|
|
198
242
|
>
|
|
199
243
|
@for (feature of visibleFeatures(); track feature.titleKey) {
|
|
200
|
-
|
|
201
|
-
<
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
[
|
|
205
|
-
|
|
244
|
+
@if (feature.token != null) {
|
|
245
|
+
<button
|
|
246
|
+
type="button"
|
|
247
|
+
class="feature feature--clickable"
|
|
248
|
+
[attr.aria-label]="getTitle(feature)"
|
|
249
|
+
(click)="onItem(feature)"
|
|
206
250
|
>
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
251
|
+
<div
|
|
252
|
+
class="feature__icon"
|
|
253
|
+
[style.color]="iconColorStyle()"
|
|
254
|
+
[style.width.px]="config().iconSize"
|
|
255
|
+
[style.height.px]="config().iconSize"
|
|
256
|
+
>
|
|
257
|
+
@if (feature.image) {
|
|
258
|
+
<img
|
|
259
|
+
class="feature__image"
|
|
260
|
+
[class.feature__image--circle]="config().imageShape === 'circle'"
|
|
261
|
+
[src]="feature.image"
|
|
262
|
+
[alt]="getTitle(feature)"
|
|
263
|
+
/>
|
|
264
|
+
} @else if (feature.icon === 'custom' && feature.svgPath) {
|
|
265
|
+
<svg
|
|
266
|
+
[attr.width]="config().iconSize"
|
|
267
|
+
[attr.height]="config().iconSize"
|
|
268
|
+
viewBox="0 0 24 24"
|
|
269
|
+
fill="none"
|
|
270
|
+
stroke="currentColor"
|
|
271
|
+
stroke-width="1.5"
|
|
272
|
+
stroke-linecap="round"
|
|
273
|
+
stroke-linejoin="round"
|
|
274
|
+
>
|
|
275
|
+
<path [attr.d]="feature.svgPath" />
|
|
276
|
+
</svg>
|
|
277
|
+
} @else if (feature.icon) {
|
|
278
|
+
<ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
|
|
279
|
+
}
|
|
280
|
+
</div>
|
|
281
|
+
<div class="feature__content">
|
|
282
|
+
<strong class="feature__title">{{ getTitle(feature) }}</strong>
|
|
283
|
+
<p class="feature__description">{{ getDescription(feature) }}</p>
|
|
284
|
+
</div>
|
|
285
|
+
</button>
|
|
286
|
+
} @else {
|
|
287
|
+
<div class="feature">
|
|
288
|
+
<div
|
|
289
|
+
class="feature__icon"
|
|
290
|
+
[style.color]="iconColorStyle()"
|
|
291
|
+
[style.width.px]="config().iconSize"
|
|
292
|
+
[style.height.px]="config().iconSize"
|
|
293
|
+
>
|
|
294
|
+
@if (feature.image) {
|
|
295
|
+
<img
|
|
296
|
+
class="feature__image"
|
|
297
|
+
[class.feature__image--circle]="config().imageShape === 'circle'"
|
|
298
|
+
[src]="feature.image"
|
|
299
|
+
[alt]="getTitle(feature)"
|
|
300
|
+
/>
|
|
301
|
+
} @else if (feature.icon === 'custom' && feature.svgPath) {
|
|
302
|
+
<svg
|
|
303
|
+
[attr.width]="config().iconSize"
|
|
304
|
+
[attr.height]="config().iconSize"
|
|
305
|
+
viewBox="0 0 24 24"
|
|
306
|
+
fill="none"
|
|
307
|
+
stroke="currentColor"
|
|
308
|
+
stroke-width="1.5"
|
|
309
|
+
stroke-linecap="round"
|
|
310
|
+
stroke-linejoin="round"
|
|
311
|
+
>
|
|
312
|
+
<path [attr.d]="feature.svgPath" />
|
|
313
|
+
</svg>
|
|
314
|
+
} @else if (feature.icon) {
|
|
315
|
+
<ion-icon [name]="feature.icon" [style.font-size.px]="config().iconSize"></ion-icon>
|
|
316
|
+
}
|
|
317
|
+
</div>
|
|
318
|
+
<div class="feature__content">
|
|
319
|
+
<strong class="feature__title">{{ getTitle(feature) }}</strong>
|
|
320
|
+
<p class="feature__description">{{ getDescription(feature) }}</p>
|
|
321
|
+
</div>
|
|
234
322
|
</div>
|
|
235
|
-
|
|
323
|
+
}
|
|
236
324
|
}
|
|
237
325
|
|
|
238
326
|
@if (canCollapse()) {
|
|
@@ -247,6 +335,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
247
335
|
</a>
|
|
248
336
|
}
|
|
249
337
|
</div>
|
|
250
|
-
`, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"] }]
|
|
338
|
+
`, styles: [":host{display:block}.features-list{display:flex}.features-list--vertical{flex-direction:column}.features-list--horizontal{flex-direction:row;flex-wrap:wrap}.features-list--horizontal .feature{flex:1;min-width:200px}.features-list--gap-small{gap:1rem}.features-list--gap-medium{gap:1.5rem}.features-list--gap-large{gap:2rem}.features-list--center{align-items:center;text-align:center}.features-list--center .feature{flex-direction:column;align-items:center}.features-list--center .feature__content{text-align:center}.feature{display:flex;align-items:flex-start;gap:1rem}.feature--clickable{cursor:pointer;border-radius:10px;transition:background-color .15s ease;width:100%;text-align:left;border:none;background:none;font:inherit;color:inherit;padding:.25rem}.feature--clickable:hover{background:var(--ion-color-light, rgba(0, 0, 0, .03))}.feature--clickable:focus{outline:none}.feature--clickable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px}.feature__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.feature__image{width:100%;height:100%;object-fit:contain;border-radius:8px}.feature__image--circle{object-fit:cover;border-radius:50%}.feature__content{flex:1}.feature__title{display:block;font-size:1.1rem;font-weight:600;color:var(--ion-text-color);margin-bottom:.25rem}.feature__description{margin:0;font-size:.95rem;color:var(--ion-color-medium);line-height:1.5}.features-list__more{align-self:flex-start;margin-top:.25rem;padding:0;background:none;border:none;font:inherit;font-weight:600;color:var(--ion-color-primary);cursor:pointer}.features-list--center .features-list__more,.features-list--center .features-list__footer{align-self:center}.features-list__footer{align-self:flex-start;margin-top:.25rem;font-weight:600;color:var(--ion-color-primary);text-decoration:none;cursor:pointer}.features-list__footer:hover{text-decoration:underline}:host-context(.dark) .feature__title,:host-context(.ion-palette-dark) .feature__title,:host-context(html.ion-palette-dark) .feature__title,:host-context(body.dark) .feature__title,:host-context([data-theme=\"dark\"]) .feature__title{color:var(--ion-text-color, #fff)}:host-context(.dark) .feature__description,:host-context(.ion-palette-dark) .feature__description,:host-context(html.ion-palette-dark) .feature__description,:host-context(body.dark) .feature__description,:host-context([data-theme=\"dark\"]) .feature__description{color:var(--ion-color-medium, #a0a0a0)}:host-context(.dark) .feature--clickable:hover,:host-context(.ion-palette-dark) .feature--clickable:hover,:host-context(html.ion-palette-dark) .feature--clickable:hover,:host-context(body.dark) .feature--clickable:hover,:host-context([data-theme=\"dark\"]) .feature--clickable:hover{background:#ffffff0a}\n"] }]
|
|
251
339
|
}], ctorParameters: () => [] });
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZlYXR1cmVzLWxpc3QvZmVhdHVyZXMtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQTZELHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUU1Rzs7O0dBR0c7QUFDSCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtJQUNsRCxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7Q0FDckQsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFvT0gsTUFBTSxPQUFPLHFCQUFxQjtJQWVoQztRQWRRLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLDhCQUE4QjtRQUNyQixVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEs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akIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDaEMsQ0FBQzsrR0FsR1UscUJBQXFCO21HQUFyQixxQkFBcUIsaVJBL050Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZEVCw4akZBOURTLFlBQVksK0JBQUUsVUFBVSxvT0FBRSxPQUFPOzs0RkFnT2hDLHFCQUFxQjtrQkFuT2pDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQ2xDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgRmVhdHVyZUl0ZW0sIEZlYXR1cmVzTGlzdEZvb3RlckxpbmssIEZlYXR1cmVzTGlzdE1ldGFkYXRhLCBGRUFUVVJFU19MSVNUX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biAoZXMvZW4pIOKAlCBhdXRvLXJlZ2lzdHJhZG9zIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsXG4gKiBuYW1lc3BhY2UgYEZlYXR1cmVzTGlzdGAuIEN1YnJlIGxvcyBsYWJlbHMgZGUgXCJ2ZXIgbcOhc1wiL1widmVyIG1lbm9zXCIuXG4gKi9cbmNvbnN0IEZFQVRVUkVTX0xJU1RfSTE4TiA9IHtcbiAgZXM6IHsgc2hvd01vcmU6ICdWZXIgbcOhcycsIHNob3dMZXNzOiAnVmVyIG1lbm9zJyB9LFxuICBlbjogeyBzaG93TW9yZTogJ1Nob3cgbW9yZScsIHNob3dMZXNzOiAnU2hvdyBsZXNzJyB9LFxufTtcblxuLyoqXG4gKiB2YWwtZmVhdHVyZXMtbGlzdFxuICpcbiAqIExpc3RhIGRlIGZlYXR1cmVzIGNvbiBpY29ubyAqKm8gaW1hZ2VuKiosIHTDrXR1bG8geSBkZXNjcmlwY2nDs24uIFNvcG9ydGEgaTE4bixcbiAqIGNvbGFwc28gb3BjaW9uYWwgKFwidmVyIG3DoXNcIiBjdWFuZG8gc3VwZXJhIGBtYXhWaXNpYmxlYCkgeSB1biBsaW5rIGFsIHBpZVxuICogKGVqLiBcIkZpbmQgb3V0IG1vcmVcIikuIMOadGlsIHBhcmEgbGlzdGFzIGRlIHNldHRpbmdzLCBhcHBzLCBiZW5lZmljaW9zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWZlYXR1cmVzLWxpc3RcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBmZWF0dXJlczogW1xuICogICAgICAgeyBpY29uOiAnZmxhc2gtb3V0bGluZScsIHRpdGxlS2V5OiAnUsOhcGlkbycsIGRlc2NyaXB0aW9uS2V5OiAnQ2FyZ2EgYWwgaW5zdGFudGUnIH0sXG4gKiAgICAgICB7IGltYWdlOiAnL2xvZ29zL2FwcC5wbmcnLCB0aXRsZUtleTogJ01pIEFwcCcsIGRlc2NyaXB0aW9uS2V5OiAnR2VzdGnDs24gZGUgZXF1aXBvcycsIHRva2VuOiAnYXBwJyB9XG4gKiAgICAgXSxcbiAqICAgICBtYXhWaXNpYmxlOiAzLFxuICogICAgIGZvb3Rlckxpbms6IHsgbGFiZWw6ICdWZXIgdG9kbycsIHJvdXRlckxpbms6ICcvYXBwcycgfVxuICogICB9XCJcbiAqICAgKGl0ZW1DbGljayk9XCJvcGVuKCRldmVudClcIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZmVhdHVyZXMtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlckxpbmssIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZmVhdHVyZXMtbGlzdFwiXG4gICAgICBbY2xhc3MuZmVhdHVyZXMtbGlzdC0tdmVydGljYWxdPVwiY29uZmlnKCkubW9kZSA9PT0gJ3ZlcnRpY2FsJ1wiXG4gICAgICBbY2xhc3MuZmVhdHVyZXMtbGlzdC0taG9yaXpvbnRhbF09XCJjb25maWcoKS5tb2RlID09PSAnaG9yaXpvbnRhbCdcIlxuICAgICAgW2NsYXNzLmZlYXR1cmVzLWxpc3QtLWdhcC1zbWFsbF09XCJjb25maWcoKS5nYXAgPT09ICdzbWFsbCdcIlxuICAgICAgW2NsYXNzLmZlYXR1cmVzLWxpc3QtLWdhcC1tZWRpdW1dPVwiY29uZmlnKCkuZ2FwID09PSAnbWVkaXVtJ1wiXG4gICAgICBbY2xhc3MuZmVhdHVyZXMtbGlzdC0tZ2FwLWxhcmdlXT1cImNvbmZpZygpLmdhcCA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3MuZmVhdHVyZXMtbGlzdC0tY2VudGVyXT1cImNvbmZpZygpLmFsaWdubWVudCA9PT0gJ2NlbnRlcidcIlxuICAgID5cbiAgICAgIEBmb3IgKGZlYXR1cmUgb2YgdmlzaWJsZUZlYXR1cmVzKCk7IHRyYWNrIGZlYXR1cmUudGl0bGVLZXkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmVcIiBbY2xhc3MuZmVhdHVyZS0tY2xpY2thYmxlXT1cImZlYXR1cmUudG9rZW4gIT0gbnVsbFwiIChjbGljayk9XCJvbkl0ZW0oZmVhdHVyZSlcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZlYXR1cmVfX2ljb25cIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImljb25Db2xvclN0eWxlKClcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbmZpZygpLmljb25TaXplXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiY29uZmlnKCkuaWNvblNpemVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoZmVhdHVyZS5pbWFnZSkge1xuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZWF0dXJlX19pbWFnZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZlYXR1cmVfX2ltYWdlLS1jaXJjbGVdPVwiY29uZmlnKCkuaW1hZ2VTaGFwZSA9PT0gJ2NpcmNsZSdcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiZmVhdHVyZS5pbWFnZVwiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJnZXRUaXRsZShmZWF0dXJlKVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChmZWF0dXJlLmljb24gPT09ICdjdXN0b20nICYmIGZlYXR1cmUuc3ZnUGF0aCkge1xuICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwiY29uZmlnKCkuaWNvblNpemVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJjb25maWcoKS5pY29uU2l6ZVwiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImZlYXR1cmUuc3ZnUGF0aFwiIC8+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoZmVhdHVyZS5pY29uKSB7XG4gICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJmZWF0dXJlLmljb25cIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImNvbmZpZygpLmljb25TaXplXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZV9fY29udGVudFwiPlxuICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImZlYXR1cmVfX3RpdGxlXCI+e3sgZ2V0VGl0bGUoZmVhdHVyZSkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZmVhdHVyZV9fZGVzY3JpcHRpb25cIj57eyBnZXREZXNjcmlwdGlvbihmZWF0dXJlKSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoY2FuQ29sbGFwc2UoKSkge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImZlYXR1cmVzLWxpc3RfX21vcmVcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAgICB7eyBleHBhbmRlZCgpID8gc2hvd0xlc3NUZXh0KCkgOiBzaG93TW9yZVRleHQoKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChjb25maWcoKS5mb290ZXJMaW5rOyBhcyBsaW5rKSB7XG4gICAgICAgIDxhIGNsYXNzPVwiZmVhdHVyZXMtbGlzdF9fZm9vdGVyXCIgW3JvdXRlckxpbmtdPVwibGluay5yb3V0ZXJMaW5rID8/IG51bGxcIiAoY2xpY2spPVwib25Gb290ZXIoJGV2ZW50LCBsaW5rKVwiPlxuICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0LS12ZXJ0aWNhbCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0LS1ob3Jpem9udGFsIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0taG9yaXpvbnRhbCAuZmVhdHVyZSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0LS1nYXAtc21hbGwge1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0LS1nYXAtbWVkaXVtIHtcbiAgICAgICAgZ2FwOiAxLjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0LS1nYXAtbGFyZ2Uge1xuICAgICAgICBnYXA6IDJyZW07XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0LS1jZW50ZXIge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0LS1jZW50ZXIgLmZlYXR1cmUge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0tY2VudGVyIC5mZWF0dXJlX19jb250ZW50IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlLS1jbGlja2FibGUge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmUtLWNsaWNrYWJsZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjAzKSk7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlX19pY29uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZV9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlX19pbWFnZS0tY2lyY2xlIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVfX2NvbnRlbnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZV9fdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvcik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0X19tb3JlIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0LS1jZW50ZXIgLmZlYXR1cmVzLWxpc3RfX21vcmUsXG4gICAgICAuZmVhdHVyZXMtbGlzdC0tY2VudGVyIC5mZWF0dXJlcy1saXN0X19mb290ZXIge1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlcy1saXN0X19mb290ZXIge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVzLWxpc3RfX2Zvb3Rlcjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuXG4gICAgICAvKiBEYXJrIG1vZGUgc3VwcG9ydCDigJQgY2xhc3MtYmFzZWQgT05MWSAoSW9uaWMgYm9keS5kYXJrIC8gaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAqL1xuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmZlYXR1cmVfX3RpdGxlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmZlYXR1cmVfX3RpdGxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5mZWF0dXJlX190aXRsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuZmVhdHVyZV9fdGl0bGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5mZWF0dXJlX190aXRsZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvciwgI2ZmZik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5mZWF0dXJlX19kZXNjcmlwdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5mZWF0dXJlX19kZXNjcmlwdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuZmVhdHVyZV9fZGVzY3JpcHRpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmZlYXR1cmVfX2Rlc2NyaXB0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuZmVhdHVyZV9fZGVzY3JpcHRpb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgI2EwYTBhMCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5mZWF0dXJlLS1jbGlja2FibGU6aG92ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuZmVhdHVyZS0tY2xpY2thYmxlOmhvdmVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5mZWF0dXJlLS1jbGlja2FibGU6aG92ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmZlYXR1cmUtLWNsaWNrYWJsZTpob3ZlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmZlYXR1cmUtLWNsaWNrYWJsZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZXNMaXN0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcblxuICAvKiogQ29tcG9uZW50IGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgcHJvcHMgPSBpbnB1dC5yZXF1aXJlZDxGZWF0dXJlc0xpc3RNZXRhZGF0YT4oKTtcblxuICAvKiogRW1pdGlkbyBhbCB0b2NhciB1biBpdGVtIChjb24gc3UgYHRva2VuYCkuICovXG4gIHJlYWRvbmx5IGl0ZW1DbGljayA9IG91dHB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIC8qKiBFbWl0aWRvIGFsIHRvY2FyIGVsIGZvb3RlciBsaW5rIChjb24gc3UgYHRva2VuYCkuICovXG4gIHJlYWRvbmx5IGZvb3RlckNsaWNrID0gb3V0cHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9leHBhbmRlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGV4cGFuZGVkID0gdGhpcy5fZXhwYW5kZWQuYXNSZWFkb25seSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSgnRmVhdHVyZXNMaXN0JykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoJ0ZlYXR1cmVzTGlzdCcsIEZFQVRVUkVTX0xJU1RfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgLyoqIE1lcmdlZCBjb25maWd1cmF0aW9uIHdpdGggZGVmYXVsdHMgKi9cbiAgY29uZmlnID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAuLi5GRUFUVVJFU19MSVNUX0RFRkFVTFRTLFxuICAgIC4uLnRoaXMucHJvcHMoKSxcbiAgfSkpO1xuXG4gIC8qKiBJdGVtcyB2aXNpYmxlcyBzZWfDum4gZWwgZXN0YWRvIGRlIGNvbGFwc28uICovXG4gIHZpc2libGVGZWF0dXJlcyA9IGNvbXB1dGVkPEZlYXR1cmVJdGVtW10+KCgpID0+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGNvbnN0IGFsbCA9IGNmZy5mZWF0dXJlcyA/PyBbXTtcbiAgICBpZiAoY2ZnLm1heFZpc2libGUgPiAwICYmICF0aGlzLl9leHBhbmRlZCgpICYmIGFsbC5sZW5ndGggPiBjZmcubWF4VmlzaWJsZSkge1xuICAgICAgcmV0dXJuIGFsbC5zbGljZSgwLCBjZmcubWF4VmlzaWJsZSk7XG4gICAgfVxuICAgIHJldHVybiBhbGw7XG4gIH0pO1xuXG4gIC8qKiBTaSBoYXkgaXRlbXMgZGUgc29icmEgcGFyYSBjb2xhcHNhci9leHBhbmRpci4gKi9cbiAgY2FuQ29sbGFwc2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy5jb25maWcoKTtcbiAgICByZXR1cm4gY2ZnLm1heFZpc2libGUgPiAwICYmIChjZmcuZmVhdHVyZXM/Lmxlbmd0aCA/PyAwKSA+IGNmZy5tYXhWaXNpYmxlO1xuICB9KTtcblxuICBzaG93TW9yZVRleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5jb25maWcoKS5zaG93TW9yZUxhYmVsIHx8IHRoaXMuaTE4bi50KCdzaG93TW9yZScsICdGZWF0dXJlc0xpc3QnKTtcbiAgfSk7XG5cbiAgc2hvd0xlc3NUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnKCkuc2hvd0xlc3NMYWJlbCB8fCB0aGlzLmkxOG4udCgnc2hvd0xlc3MnLCAnRmVhdHVyZXNMaXN0Jyk7XG4gIH0pO1xuXG4gIC8qKiBSZXNvbHZlZCBpY29uIGNvbG9yIChoYW5kbGVzIElvbmljIGNvbG9ycyBhbmQgQ1NTIGNvbG9ycykgKi9cbiAgaWNvbkNvbG9yU3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLmNvbmZpZygpLmljb25Db2xvcjtcbiAgICBpZiAoY29sb3IgJiYgIWNvbG9yLnN0YXJ0c1dpdGgoJyMnKSAmJiAhY29sb3Iuc3RhcnRzV2l0aCgncmdiJykpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Y29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfSk7XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuX2V4cGFuZGVkLnNldCghdGhpcy5fZXhwYW5kZWQoKSk7XG4gIH1cblxuICBvbkl0ZW0oZmVhdHVyZTogRmVhdHVyZUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoZmVhdHVyZS50b2tlbiAhPSBudWxsKSB7XG4gICAgICB0aGlzLml0ZW1DbGljay5lbWl0KGZlYXR1cmUudG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9vdGVyKGV2ZW50OiBNb3VzZUV2ZW50LCBsaW5rOiBGZWF0dXJlc0xpc3RGb290ZXJMaW5rKTogdm9pZCB7XG4gICAgdGhpcy5mb290ZXJDbGljay5lbWl0KGxpbmsudG9rZW4pO1xuICAgIGlmIChsaW5rLmhyZWYpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm5hdmlnYXRpb24ub3BlbkluTmV3VGFiKGxpbmsuaHJlZik7XG4gICAgfVxuICB9XG5cbiAgLyoqIEdldCB0cmFuc2xhdGVkIHRpdGxlIG9yIHJldHVybiBkaXJlY3QgdGV4dCAqL1xuICBnZXRUaXRsZShmZWF0dXJlOiBGZWF0dXJlSXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gdGhpcy5wcm9wcygpLmkxOG5OYW1lc3BhY2U7XG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChmZWF0dXJlLnRpdGxlS2V5LCBuYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gZmVhdHVyZS50aXRsZUtleTtcbiAgfVxuXG4gIC8qKiBHZXQgdHJhbnNsYXRlZCBkZXNjcmlwdGlvbiBvciByZXR1cm4gZGlyZWN0IHRleHQgKi9cbiAgZ2V0RGVzY3JpcHRpb24oZmVhdHVyZTogRmVhdHVyZUl0ZW0pOiBzdHJpbmcge1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IHRoaXMucHJvcHMoKS5pMThuTmFtZXNwYWNlO1xuICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQoZmVhdHVyZS5kZXNjcmlwdGlvbktleSwgbmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZlYXR1cmUuZGVzY3JpcHRpb25LZXk7XG4gIH1cbn1cbiJdfQ==
|
|
340
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZlYXR1cmVzLWxpc3QvZmVhdHVyZXMtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQTZELHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUU1Rzs7O0dBR0c7QUFDSCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtJQUNsRCxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7Q0FDckQsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFnU0gsTUFBTSxPQUFPLHFCQUFxQjtJQWVoQztRQWRRLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLDhCQUE4QjtRQUNyQixVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEs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akIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDaEMsQ0FBQzsrR0FsR1UscUJBQXFCO21HQUFyQixxQkFBcUIsaVJBM1J0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUdULG16RkExR1MsWUFBWSwrQkFBRSxVQUFVLG9PQUFFLE9BQU87OzRGQTRSaEMscUJBQXFCO2tCQS9SakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFDbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlHVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IEZlYXR1cmVJdGVtLCBGZWF0dXJlc0xpc3RGb290ZXJMaW5rLCBGZWF0dXJlc0xpc3RNZXRhZGF0YSwgRkVBVFVSRVNfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKSDigJQgYXV0by1yZWdpc3RyYWRvcyBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbFxuICogbmFtZXNwYWNlIGBGZWF0dXJlc0xpc3RgLiBDdWJyZSBsb3MgbGFiZWxzIGRlIFwidmVyIG3DoXNcIi9cInZlciBtZW5vc1wiLlxuICovXG5jb25zdCBGRUFUVVJFU19MSVNUX0kxOE4gPSB7XG4gIGVzOiB7IHNob3dNb3JlOiAnVmVyIG3DoXMnLCBzaG93TGVzczogJ1ZlciBtZW5vcycgfSxcbiAgZW46IHsgc2hvd01vcmU6ICdTaG93IG1vcmUnLCBzaG93TGVzczogJ1Nob3cgbGVzcycgfSxcbn07XG5cbi8qKlxuICogdmFsLWZlYXR1cmVzLWxpc3RcbiAqXG4gKiBMaXN0YSBkZSBmZWF0dXJlcyBjb24gaWNvbm8gKipvIGltYWdlbioqLCB0w610dWxvIHkgZGVzY3JpcGNpw7NuLiBTb3BvcnRhIGkxOG4sXG4gKiBjb2xhcHNvIG9wY2lvbmFsIChcInZlciBtw6FzXCIgY3VhbmRvIHN1cGVyYSBgbWF4VmlzaWJsZWApIHkgdW4gbGluayBhbCBwaWVcbiAqIChlai4gXCJGaW5kIG91dCBtb3JlXCIpLiDDmnRpbCBwYXJhIGxpc3RhcyBkZSBzZXR0aW5ncywgYXBwcywgYmVuZWZpY2lvcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1mZWF0dXJlcy1saXN0XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgZmVhdHVyZXM6IFtcbiAqICAgICAgIHsgaWNvbjogJ2ZsYXNoLW91dGxpbmUnLCB0aXRsZUtleTogJ1LDoXBpZG8nLCBkZXNjcmlwdGlvbktleTogJ0NhcmdhIGFsIGluc3RhbnRlJyB9LFxuICogICAgICAgeyBpbWFnZTogJy9sb2dvcy9hcHAucG5nJywgdGl0bGVLZXk6ICdNaSBBcHAnLCBkZXNjcmlwdGlvbktleTogJ0dlc3Rpw7NuIGRlIGVxdWlwb3MnLCB0b2tlbjogJ2FwcCcgfVxuICogICAgIF0sXG4gKiAgICAgbWF4VmlzaWJsZTogMyxcbiAqICAgICBmb290ZXJMaW5rOiB7IGxhYmVsOiAnVmVyIHRvZG8nLCByb3V0ZXJMaW5rOiAnL2FwcHMnIH1cbiAqICAgfVwiXG4gKiAgIChpdGVtQ2xpY2spPVwib3BlbigkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWZlYXR1cmVzLWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJMaW5rLCBJb25JY29uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZlYXR1cmVzLWxpc3RcIlxuICAgICAgW2NsYXNzLmZlYXR1cmVzLWxpc3QtLXZlcnRpY2FsXT1cImNvbmZpZygpLm1vZGUgPT09ICd2ZXJ0aWNhbCdcIlxuICAgICAgW2NsYXNzLmZlYXR1cmVzLWxpc3QtLWhvcml6b250YWxdPVwiY29uZmlnKCkubW9kZSA9PT0gJ2hvcml6b250YWwnXCJcbiAgICAgIFtjbGFzcy5mZWF0dXJlcy1saXN0LS1nYXAtc21hbGxdPVwiY29uZmlnKCkuZ2FwID09PSAnc21hbGwnXCJcbiAgICAgIFtjbGFzcy5mZWF0dXJlcy1saXN0LS1nYXAtbWVkaXVtXT1cImNvbmZpZygpLmdhcCA9PT0gJ21lZGl1bSdcIlxuICAgICAgW2NsYXNzLmZlYXR1cmVzLWxpc3QtLWdhcC1sYXJnZV09XCJjb25maWcoKS5nYXAgPT09ICdsYXJnZSdcIlxuICAgICAgW2NsYXNzLmZlYXR1cmVzLWxpc3QtLWNlbnRlcl09XCJjb25maWcoKS5hbGlnbm1lbnQgPT09ICdjZW50ZXInXCJcbiAgICA+XG4gICAgICBAZm9yIChmZWF0dXJlIG9mIHZpc2libGVGZWF0dXJlcygpOyB0cmFjayBmZWF0dXJlLnRpdGxlS2V5KSB7XG4gICAgICAgIEBpZiAoZmVhdHVyZS50b2tlbiAhPSBudWxsKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImZlYXR1cmUgZmVhdHVyZS0tY2xpY2thYmxlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0VGl0bGUoZmVhdHVyZSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbShmZWF0dXJlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImZlYXR1cmVfX2ljb25cIlxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaWNvbkNvbG9yU3R5bGUoKVwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJjb25maWcoKS5pY29uU2l6ZVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiY29uZmlnKCkuaWNvblNpemVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKGZlYXR1cmUuaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZlYXR1cmVfX2ltYWdlXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZWF0dXJlX19pbWFnZS0tY2lyY2xlXT1cImNvbmZpZygpLmltYWdlU2hhcGUgPT09ICdjaXJjbGUnXCJcbiAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZmVhdHVyZS5pbWFnZVwiXG4gICAgICAgICAgICAgICAgICBbYWx0XT1cImdldFRpdGxlKGZlYXR1cmUpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChmZWF0dXJlLmljb24gPT09ICdjdXN0b20nICYmIGZlYXR1cmUuc3ZnUGF0aCkge1xuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgIFthdHRyLndpZHRoXT1cImNvbmZpZygpLmljb25TaXplXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJjb25maWcoKS5pY29uU2l6ZVwiXG4gICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJmZWF0dXJlLnN2Z1BhdGhcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChmZWF0dXJlLmljb24pIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZmVhdHVyZS5pY29uXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJjb25maWcoKS5pY29uU2l6ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZlYXR1cmVfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImZlYXR1cmVfX3RpdGxlXCI+e3sgZ2V0VGl0bGUoZmVhdHVyZSkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmZWF0dXJlX19kZXNjcmlwdGlvblwiPnt7IGdldERlc2NyaXB0aW9uKGZlYXR1cmUpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZWF0dXJlXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmVhdHVyZV9faWNvblwiXG4gICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJpY29uQ29sb3JTdHlsZSgpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImNvbmZpZygpLmljb25TaXplXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJjb25maWcoKS5pY29uU2l6ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEBpZiAoZmVhdHVyZS5pbWFnZSkge1xuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmVhdHVyZV9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmZlYXR1cmVfX2ltYWdlLS1jaXJjbGVdPVwiY29uZmlnKCkuaW1hZ2VTaGFwZSA9PT0gJ2NpcmNsZSdcIlxuICAgICAgICAgICAgICAgICAgW3NyY109XCJmZWF0dXJlLmltYWdlXCJcbiAgICAgICAgICAgICAgICAgIFthbHRdPVwiZ2V0VGl0bGUoZmVhdHVyZSlcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGZlYXR1cmUuaWNvbiA9PT0gJ2N1c3RvbScgJiYgZmVhdHVyZS5zdmdQYXRoKSB7XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwiY29uZmlnKCkuaWNvblNpemVcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cImNvbmZpZygpLmljb25TaXplXCJcbiAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImZlYXR1cmUuc3ZnUGF0aFwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGZlYXR1cmUuaWNvbikge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJmZWF0dXJlLmljb25cIiBbc3R5bGUuZm9udC1zaXplLnB4XT1cImNvbmZpZygpLmljb25TaXplXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVhdHVyZV9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZmVhdHVyZV9fdGl0bGVcIj57eyBnZXRUaXRsZShmZWF0dXJlKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImZlYXR1cmVfX2Rlc2NyaXB0aW9uXCI+e3sgZ2V0RGVzY3JpcHRpb24oZmVhdHVyZSkgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAaWYgKGNhbkNvbGxhcHNlKCkpIHtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJmZWF0dXJlcy1saXN0X19tb3JlXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICAgICAge3sgZXhwYW5kZWQoKSA/IHNob3dMZXNzVGV4dCgpIDogc2hvd01vcmVUZXh0KCkgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoY29uZmlnKCkuZm9vdGVyTGluazsgYXMgbGluaykge1xuICAgICAgICA8YSBjbGFzcz1cImZlYXR1cmVzLWxpc3RfX2Zvb3RlclwiIFtyb3V0ZXJMaW5rXT1cImxpbmsucm91dGVyTGluayA/PyBudWxsXCIgKGNsaWNrKT1cIm9uRm9vdGVyKCRldmVudCwgbGluaylcIj5cbiAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgIDwvYT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVzLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0tdmVydGljYWwge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0taG9yaXpvbnRhbCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVzLWxpc3QtLWhvcml6b250YWwgLmZlYXR1cmUge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0tZ2FwLXNtYWxsIHtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0tZ2FwLW1lZGl1bSB7XG4gICAgICAgIGdhcDogMS41cmVtO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0tZ2FwLWxhcmdlIHtcbiAgICAgICAgZ2FwOiAycmVtO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0tY2VudGVyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdC0tY2VudGVyIC5mZWF0dXJlIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVzLWxpc3QtLWNlbnRlciAuZmVhdHVyZV9fY29udGVudCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZS0tY2xpY2thYmxlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZS0tY2xpY2thYmxlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMDMpKTtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmUtLWNsaWNrYWJsZTpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlLS1jbGlja2FibGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6IDAuMTI1cmVtIHNvbGlkIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVfX2ljb24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVfX2ltYWdlLS1jaXJjbGUge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZV9fY29udGVudCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG5cbiAgICAgIC5mZWF0dXJlX190aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVzLWxpc3RfX21vcmUge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVzLWxpc3QtLWNlbnRlciAuZmVhdHVyZXMtbGlzdF9fbW9yZSxcbiAgICAgIC5mZWF0dXJlcy1saXN0LS1jZW50ZXIgLmZlYXR1cmVzLWxpc3RfX2Zvb3RlciB7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmZlYXR1cmVzLWxpc3RfX2Zvb3RlciB7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuXG4gICAgICAuZmVhdHVyZXMtbGlzdF9fZm9vdGVyOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIERhcmsgbW9kZSBzdXBwb3J0IOKAlCBjbGFzcy1iYXNlZCBPTkxZIChJb25pYyBib2R5LmRhcmsgLyBodG1sLmlvbi1wYWxldHRlLWRhcmspICovXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuZmVhdHVyZV9fdGl0bGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuZmVhdHVyZV9fdGl0bGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmZlYXR1cmVfX3RpdGxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5mZWF0dXJlX190aXRsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmZlYXR1cmVfX3RpdGxlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjZmZmKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmZlYXR1cmVfX2Rlc2NyaXB0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmZlYXR1cmVfX2Rlc2NyaXB0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5mZWF0dXJlX19kZXNjcmlwdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuZmVhdHVyZV9fZGVzY3JpcHRpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5mZWF0dXJlX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjYTBhMGEwKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmZlYXR1cmUtLWNsaWNrYWJsZTpob3ZlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5mZWF0dXJlLS1jbGlja2FibGU6aG92ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmZlYXR1cmUtLWNsaWNrYWJsZTpob3ZlcixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuZmVhdHVyZS0tY2xpY2thYmxlOmhvdmVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuZmVhdHVyZS0tY2xpY2thYmxlOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlc0xpc3RDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG5hdmlnYXRpb24gPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0LnJlcXVpcmVkPEZlYXR1cmVzTGlzdE1ldGFkYXRhPigpO1xuXG4gIC8qKiBFbWl0aWRvIGFsIHRvY2FyIHVuIGl0ZW0gKGNvbiBzdSBgdG9rZW5gKS4gKi9cbiAgcmVhZG9ubHkgaXRlbUNsaWNrID0gb3V0cHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgLyoqIEVtaXRpZG8gYWwgdG9jYXIgZWwgZm9vdGVyIGxpbmsgKGNvbiBzdSBgdG9rZW5gKS4gKi9cbiAgcmVhZG9ubHkgZm9vdGVyQ2xpY2sgPSBvdXRwdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4cGFuZGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgZXhwYW5kZWQgPSB0aGlzLl9leHBhbmRlZC5hc1JlYWRvbmx5KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKCdGZWF0dXJlc0xpc3QnKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudCgnRmVhdHVyZXNMaXN0JywgRkVBVFVSRVNfTElTVF9JMThOKTtcbiAgICB9XG4gIH1cblxuICAvKiogTWVyZ2VkIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0cyAqL1xuICBjb25maWcgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIC4uLkZFQVRVUkVTX0xJU1RfREVGQVVMVFMsXG4gICAgLi4udGhpcy5wcm9wcygpLFxuICB9KSk7XG5cbiAgLyoqIEl0ZW1zIHZpc2libGVzIHNlZ8O6biBlbCBlc3RhZG8gZGUgY29sYXBzby4gKi9cbiAgdmlzaWJsZUZlYXR1cmVzID0gY29tcHV0ZWQ8RmVhdHVyZUl0ZW1bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgY29uc3QgYWxsID0gY2ZnLmZlYXR1cmVzID8/IFtdO1xuICAgIGlmIChjZmcubWF4VmlzaWJsZSA+IDAgJiYgIXRoaXMuX2V4cGFuZGVkKCkgJiYgYWxsLmxlbmd0aCA+IGNmZy5tYXhWaXNpYmxlKSB7XG4gICAgICByZXR1cm4gYWxsLnNsaWNlKDAsIGNmZy5tYXhWaXNpYmxlKTtcbiAgICB9XG4gICAgcmV0dXJuIGFsbDtcbiAgfSk7XG5cbiAgLyoqIFNpIGhheSBpdGVtcyBkZSBzb2JyYSBwYXJhIGNvbGFwc2FyL2V4cGFuZGlyLiAqL1xuICBjYW5Db2xsYXBzZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZygpO1xuICAgIHJldHVybiBjZmcubWF4VmlzaWJsZSA+IDAgJiYgKGNmZy5mZWF0dXJlcz8ubGVuZ3RoID8/IDApID4gY2ZnLm1heFZpc2libGU7XG4gIH0pO1xuXG4gIHNob3dNb3JlVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZygpLnNob3dNb3JlTGFiZWwgfHwgdGhpcy5pMThuLnQoJ3Nob3dNb3JlJywgJ0ZlYXR1cmVzTGlzdCcpO1xuICB9KTtcblxuICBzaG93TGVzc1RleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5jb25maWcoKS5zaG93TGVzc0xhYmVsIHx8IHRoaXMuaTE4bi50KCdzaG93TGVzcycsICdGZWF0dXJlc0xpc3QnKTtcbiAgfSk7XG5cbiAgLyoqIFJlc29sdmVkIGljb24gY29sb3IgKGhhbmRsZXMgSW9uaWMgY29sb3JzIGFuZCBDU1MgY29sb3JzKSAqL1xuICBpY29uQ29sb3JTdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuY29uZmlnKCkuaWNvbkNvbG9yO1xuICAgIGlmIChjb2xvciAmJiAhY29sb3Iuc3RhcnRzV2l0aCgnIycpICYmICFjb2xvci5zdGFydHNXaXRoKCdyZ2InKSkge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9KTtcblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5fZXhwYW5kZWQuc2V0KCF0aGlzLl9leHBhbmRlZCgpKTtcbiAgfVxuXG4gIG9uSXRlbShmZWF0dXJlOiBGZWF0dXJlSXRlbSk6IHZvaWQge1xuICAgIGlmIChmZWF0dXJlLnRva2VuICE9IG51bGwpIHtcbiAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoZmVhdHVyZS50b2tlbik7XG4gICAgfVxuICB9XG5cbiAgb25Gb290ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIGxpbms6IEZlYXR1cmVzTGlzdEZvb3RlckxpbmspOiB2b2lkIHtcbiAgICB0aGlzLmZvb3RlckNsaWNrLmVtaXQobGluay50b2tlbik7XG4gICAgaWYgKGxpbmsuaHJlZikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5vcGVuSW5OZXdUYWIobGluay5ocmVmKTtcbiAgICB9XG4gIH1cblxuICAvKiogR2V0IHRyYW5zbGF0ZWQgdGl0bGUgb3IgcmV0dXJuIGRpcmVjdCB0ZXh0ICovXG4gIGdldFRpdGxlKGZlYXR1cmU6IEZlYXR1cmVJdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lc3BhY2UgPSB0aGlzLnByb3BzKCkuaTE4bk5hbWVzcGFjZTtcbiAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KGZlYXR1cmUudGl0bGVLZXksIG5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHJldHVybiBmZWF0dXJlLnRpdGxlS2V5O1xuICB9XG5cbiAgLyoqIEdldCB0cmFuc2xhdGVkIGRlc2NyaXB0aW9uIG9yIHJldHVybiBkaXJlY3QgdGV4dCAqL1xuICBnZXREZXNjcmlwdGlvbihmZWF0dXJlOiBGZWF0dXJlSXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gdGhpcy5wcm9wcygpLmkxOG5OYW1lc3BhY2U7XG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChmZWF0dXJlLmRlc2NyaXB0aW9uS2V5LCBuYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gZmVhdHVyZS5kZXNjcmlwdGlvbktleTtcbiAgfVxufVxuIl19
|
|
@@ -2,7 +2,7 @@ import { Component, inject, Input, ViewChild } from '@angular/core';
|
|
|
2
2
|
import { IonIcon } from '@ionic/angular/standalone';
|
|
3
3
|
import { I18nService } from '../../../services/i18n';
|
|
4
4
|
import { ButtonComponent } from '../../atoms/button/button.component';
|
|
5
|
-
import {
|
|
5
|
+
import { button } from '../../atoms/button/factory';
|
|
6
6
|
import { TextComponent } from '../../atoms/text/text.component';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
/**
|
|
@@ -22,7 +22,11 @@ export class FileInputComponent {
|
|
|
22
22
|
ngOnInit() {
|
|
23
23
|
// Initialize button with i18n text
|
|
24
24
|
this.contrastButton = {
|
|
25
|
-
...
|
|
25
|
+
...button({
|
|
26
|
+
text: this.props?.buttonText || this.i18n.t('uploadFile'),
|
|
27
|
+
fill: 'solid',
|
|
28
|
+
shape: 'round',
|
|
29
|
+
}),
|
|
26
30
|
color: 'light',
|
|
27
31
|
};
|
|
28
32
|
}
|
|
@@ -87,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
87
91
|
type: ViewChild,
|
|
88
92
|
args: ['fileInput']
|
|
89
93
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQTRCaEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0I7UUFMUSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBS3BCLENBQUM7SUFFaEIsUUFBUTtRQUNOLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ3BCLEdBQUcsTUFBTSxDQUFDO2dCQUNSLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3pELElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxPQUFPO2FBQ2YsQ0FBQztZQUNGLEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQUs7UUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUMxQyxDQUFDOytHQTlDVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw4TUE5Qm5COzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVCxxMEdBbEJTLE9BQU8sMkpBQUUsYUFBYSx3RUFBRSxlQUFlOzs0RkErQnRDLGtCQUFrQjtrQkFsQzlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsWUFDeEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUO3dEQW9CUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRWtCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBidXR0b24gfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vZmFjdG9yeSc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEZpbGVJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1maWxlLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvbkljb24sIFRleHRDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XG4gICAgICA8aW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgdHlwZT1cImZpbGVcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiAjZmlsZUlucHV0IFthY2NlcHRdPVwicHJvcHMuYWNjZXB0XCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWNvbnRhaW5lclwiPlxuICAgICAgICA8aW9uLWljb24gW25hbWVdPVwic2VsZWN0ZWRGaWxlID8gJ2NoZWNrbWFyay1jaXJjbGUtb3V0bGluZScgOiAnYWxlcnQtY2lyY2xlLW91dGxpbmUnXCI+PC9pb24taWNvbj5cbiAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogNHB4O1wiXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIGNvbnRlbnQ6IGdldEZpbGVEaXNwbGF5VGV4dCgpLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3ZhbC10ZXh0PlxuICAgICAgPC9kaXY+XG4gICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwiY29udHJhc3RCdXR0b25cIiAob25DbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPjwvdmFsLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWZpbGUtaW5wdXRcbiAqXG4gKiBBIGZpbGUgaW5wdXQgY29tcG9uZW50IGZvciB1cGxvYWRpbmcgZmlsZXMsIGludGVncmF0ZWQgd2l0aCBBbmd1bGFyIGZvcm1zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWZpbGUtaW5wdXQgW3Byb3BzXT1cInsgY29udHJvbDogbXlDb250cm9sLCBhY2NlcHQ6ICdpbWFnZS8qJyB9XCI+PC92YWwtZmlsZS1pbnB1dD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IEZpbGVJbnB1dE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZpbGUgaW5wdXQgKGZvcm0gY29udHJvbCwgYWNjZXB0IHR5cGVzLCBldGMuKVxuICovXG5leHBvcnQgY2xhc3MgRmlsZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIElucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7RmlsZUlucHV0TWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSBjb250cm9sIC0gVGhlIEFuZ3VsYXIgRm9ybUNvbnRyb2wgZm9yIHRoZSBmaWxlIGlucHV0LlxuICAgKiBAcHJvcGVydHkgYWNjZXB0IC0gQWNjZXB0ZWQgZmlsZSB0eXBlcyAoZS5nLiwgJ2ltYWdlLyonLCAnLnBkZicpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IEZpbGVJbnB1dE1ldGFkYXRhO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dDtcblxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIGNvbnRyYXN0QnV0dG9uOiBCdXR0b25NZXRhZGF0YTtcbiAgc2VsZWN0ZWRGaWxlOiBGaWxlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBJbml0aWFsaXplIGJ1dHRvbiB3aXRoIGkxOG4gdGV4dFxuICAgIHRoaXMuY29udHJhc3RCdXR0b24gPSB7XG4gICAgICAuLi5idXR0b24oe1xuICAgICAgICB0ZXh0OiB0aGlzLnByb3BzPy5idXR0b25UZXh0IHx8IHRoaXMuaTE4bi50KCd1cGxvYWRGaWxlJyksXG4gICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgfSksXG4gICAgICBjb2xvcjogJ2xpZ2h0JyxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEdldCBkaXNwbGF5IHRleHQgZm9yIGZpbGUgc3RhdHVzICovXG4gIGdldEZpbGVEaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRmlsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRGaWxlLm5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzPy5ub0ZpbGVUZXh0IHx8IHRoaXMuaTE4bi50KCdub0ZpbGVTZWxlY3RlZCcpO1xuICB9XG5cbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcbiAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZEZpbGUpO1xuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBudWxsO1xuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgfVxufVxuIl19
|
|
@@ -8,14 +8,23 @@ import * as i1 from "@angular/common";
|
|
|
8
8
|
* val-hint
|
|
9
9
|
*
|
|
10
10
|
* Displays validation error messages for a form input, using Angular forms.
|
|
11
|
+
* Cuando muestra un error, el contenedor se anuncia a tecnologías asistivas
|
|
12
|
+
* (`role="alert"` + `aria-live="assertive"`). Acepta un `id` para que el input
|
|
13
|
+
* asociado lo referencie vía `aria-describedby`.
|
|
11
14
|
*
|
|
12
15
|
* @example
|
|
13
|
-
* <val-hint [props]="{ control: myControl, errors: { required: 'Required field' } }"></val-hint>
|
|
16
|
+
* <val-hint [props]="{ control: myControl, errors: { required: 'Required field' } }" id="email-error"></val-hint>
|
|
14
17
|
*
|
|
15
18
|
* @input props: InputMetadata - Configuration for the input (form control, errors, etc.)
|
|
19
|
+
* @input id: string - Id del contenedor, para enlace `aria-describedby` desde el input.
|
|
16
20
|
*/
|
|
17
21
|
export class HintComponent {
|
|
18
22
|
constructor() {
|
|
23
|
+
/**
|
|
24
|
+
* Si el hint representa un error (vs un hint informativo). Hoy `val-hint`
|
|
25
|
+
* siempre muestra errores de validación, así que por defecto es `true`.
|
|
26
|
+
*/
|
|
27
|
+
this.isError = true;
|
|
19
28
|
this.i18n = inject(I18nService);
|
|
20
29
|
}
|
|
21
30
|
ngOnInit() { }
|
|
@@ -55,8 +64,14 @@ export class HintComponent {
|
|
|
55
64
|
return errors;
|
|
56
65
|
}
|
|
57
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HintComponent, isStandalone: true, selector: "val-hint", inputs: { props: "props" }, ngImport: i0, template: `
|
|
59
|
-
<div
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HintComponent, isStandalone: true, selector: "val-hint", inputs: { props: "props", id: "id", isError: "isError" }, ngImport: i0, template: `
|
|
68
|
+
<div
|
|
69
|
+
class="hint-container"
|
|
70
|
+
*ngIf="shouldShowErrors"
|
|
71
|
+
[attr.id]="id"
|
|
72
|
+
[attr.role]="isError ? 'alert' : 'status'"
|
|
73
|
+
[attr.aria-live]="isError ? 'assertive' : 'polite'"
|
|
74
|
+
>
|
|
60
75
|
<val-text
|
|
61
76
|
*ngFor="let e of Errors"
|
|
62
77
|
[props]="{
|
|
@@ -72,7 +87,13 @@ export class HintComponent {
|
|
|
72
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HintComponent, decorators: [{
|
|
73
88
|
type: Component,
|
|
74
89
|
args: [{ selector: 'val-hint', standalone: true, imports: [CommonModule, TextComponent], template: `
|
|
75
|
-
<div
|
|
90
|
+
<div
|
|
91
|
+
class="hint-container"
|
|
92
|
+
*ngIf="shouldShowErrors"
|
|
93
|
+
[attr.id]="id"
|
|
94
|
+
[attr.role]="isError ? 'alert' : 'status'"
|
|
95
|
+
[attr.aria-live]="isError ? 'assertive' : 'polite'"
|
|
96
|
+
>
|
|
76
97
|
<val-text
|
|
77
98
|
*ngFor="let e of Errors"
|
|
78
99
|
[props]="{
|
|
@@ -86,5 +107,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
86
107
|
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}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)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.hint-container{margin-top:.25rem}\n"] }]
|
|
87
108
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
88
109
|
type: Input
|
|
110
|
+
}], id: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], isError: [{
|
|
113
|
+
type: Input
|
|
89
114
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2hpbnQvaGludC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUE0QmhFOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQXVCeEI7UUFSQTs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRWhCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFcEIsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLElBQUksZ0JBQWdCO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixtQ0FBbUM7WUFDbkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxRCw4Q0FBOEM7WUFDOUMsTUFBTSxXQUFXLEdBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JHLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvRyxPQUFPLFdBQVcsSUFBSSxTQUFTLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxlQUFlO2dCQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDMUQsNkNBQTZDO2dCQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRXhELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzsrR0FoRVUsYUFBYTttR0FBYixhQUFhLDhIQW5DZDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULGl3R0FuQlMsWUFBWSxnUUFBRSxhQUFhOzs0RkFvQzFCLGFBQWE7a0JBdkN6QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQzVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQ7d0RBd0JRLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxFQUFFO3NCQUFWLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWhpbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUZXh0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImhpbnQtY29udGFpbmVyXCJcbiAgICAgICpuZ0lmPVwic2hvdWxkU2hvd0Vycm9yc1wiXG4gICAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgICBbYXR0ci5yb2xlXT1cImlzRXJyb3IgPyAnYWxlcnQnIDogJ3N0YXR1cydcIlxuICAgICAgW2F0dHIuYXJpYS1saXZlXT1cImlzRXJyb3IgPyAnYXNzZXJ0aXZlJyA6ICdwb2xpdGUnXCJcbiAgICA+XG4gICAgICA8dmFsLXRleHRcbiAgICAgICAgKm5nRm9yPVwibGV0IGUgb2YgRXJyb3JzXCJcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBjb250ZW50OiBlLFxuICAgICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICB9XCJcbiAgICAgID48L3ZhbC10ZXh0PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9oaW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtaGludFxuICpcbiAqIERpc3BsYXlzIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMgZm9yIGEgZm9ybSBpbnB1dCwgdXNpbmcgQW5ndWxhciBmb3Jtcy5cbiAqIEN1YW5kbyBtdWVzdHJhIHVuIGVycm9yLCBlbCBjb250ZW5lZG9yIHNlIGFudW5jaWEgYSB0ZWNub2xvZ8OtYXMgYXNpc3RpdmFzXG4gKiAoYHJvbGU9XCJhbGVydFwiYCArIGBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcImApLiBBY2VwdGEgdW4gYGlkYCBwYXJhIHF1ZSBlbCBpbnB1dFxuICogYXNvY2lhZG8gbG8gcmVmZXJlbmNpZSB2w61hIGBhcmlhLWRlc2NyaWJlZGJ5YC5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1oaW50IFtwcm9wc109XCJ7IGNvbnRyb2w6IG15Q29udHJvbCwgZXJyb3JzOiB7IHJlcXVpcmVkOiAnUmVxdWlyZWQgZmllbGQnIH0gfVwiIGlkPVwiZW1haWwtZXJyb3JcIj48L3ZhbC1oaW50PlxuICpcbiAqIEBpbnB1dCBwcm9wczogSW5wdXRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBpbnB1dCAoZm9ybSBjb250cm9sLCBlcnJvcnMsIGV0Yy4pXG4gKiBAaW5wdXQgaWQ6IHN0cmluZyAtIElkIGRlbCBjb250ZW5lZG9yLCBwYXJhIGVubGFjZSBgYXJpYS1kZXNjcmliZWRieWAgZGVzZGUgZWwgaW5wdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBIaW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIElucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7SW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIGlucHV0LlxuICAgKiBAcHJvcGVydHkgZXJyb3JzIC0gVGhlIGVycm9yIG1lc3NhZ2VzIG1hcHBpbmcuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcblxuICAvKipcbiAgICogSWQgZGVsIGNvbnRlbmVkb3IgZGVsIGhpbnQuIExvIHBhc2EgYHZhbC1mb3JtYCBwYXJhIGVubGF6YXIgZWwgaW5wdXQgY29uIGVsXG4gICAqIG1lbnNhamUgZGUgZXJyb3IgdsOtYSBgYXJpYS1kZXNjcmliZWRieWAuXG4gICAqL1xuICBASW5wdXQoKSBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2kgZWwgaGludCByZXByZXNlbnRhIHVuIGVycm9yICh2cyB1biBoaW50IGluZm9ybWF0aXZvKS4gSG95IGB2YWwtaGludGBcbiAgICogc2llbXByZSBtdWVzdHJhIGVycm9yZXMgZGUgdmFsaWRhY2nDs24sIGFzw60gcXVlIHBvciBkZWZlY3RvIGVzIGB0cnVlYC5cbiAgICovXG4gIEBJbnB1dCgpIGlzRXJyb3IgPSB0cnVlO1xuXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBnZXQgc2hvdWxkU2hvd0Vycm9ycygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb250cm9sKSB7XG4gICAgICAvLyBOb3JtYWwgZmllbGQgd2l0aCBzaW5nbGUgY29udHJvbFxuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY29udHJvbC5pbnZhbGlkICYmICh0aGlzLnByb3BzLmNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLnByb3BzLmNvbnRyb2wuZGlydHkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5mcm9tQ29udHJvbCAmJiB0aGlzLnByb3BzLnRvQ29udHJvbCkge1xuICAgICAgLy8gTlVNQkVSX0ZST01fVE8gZmllbGQgd2l0aCBzZXBhcmF0ZSBjb250cm9sc1xuICAgICAgY29uc3QgZnJvbUludmFsaWQgPVxuICAgICAgICB0aGlzLnByb3BzLmZyb21Db250cm9sLmludmFsaWQgJiYgKHRoaXMucHJvcHMuZnJvbUNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLnByb3BzLmZyb21Db250cm9sLmRpcnR5KTtcbiAgICAgIGNvbnN0IHRvSW52YWxpZCA9IHRoaXMucHJvcHMudG9Db250cm9sLmludmFsaWQgJiYgKHRoaXMucHJvcHMudG9Db250cm9sLnRvdWNoZWQgfHwgdGhpcy5wcm9wcy50b0NvbnRyb2wuZGlydHkpO1xuICAgICAgcmV0dXJuIGZyb21JbnZhbGlkIHx8IHRvSW52YWxpZDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0IEVycm9ycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucHJvcHMuZXJyb3JzIHx8IHt9KTtcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcblxuICAgIGtleXMubWFwKChlOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2wgJiYgdGhpcy5wcm9wcy5jb250cm9sLmhhc0Vycm9yKGUpKSB7XG4gICAgICAgIC8vIE5vcm1hbCBmaWVsZFxuICAgICAgICBlcnJvcnMucHVzaCh0aGlzLnByb3BzLmVycm9yc1tlXSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuZnJvbUNvbnRyb2wgJiYgdGhpcy5wcm9wcy50b0NvbnRyb2wpIHtcbiAgICAgICAgLy8gTlVNQkVSX0ZST01fVE8gZmllbGQgLSBjaGVjayBib3RoIGNvbnRyb2xzXG4gICAgICAgIGNvbnN0IGZyb21MYWJlbCA9IHRoaXMucHJvcHMuZnJvbUxhYmVsIHx8IHRoaXMuaTE4bi50KCdmcm9tJyk7XG4gICAgICAgIGNvbnN0IHRvTGFiZWwgPSB0aGlzLnByb3BzLnRvTGFiZWwgfHwgdGhpcy5pMThuLnQoJ3RvJyk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZnJvbUNvbnRyb2wuaGFzRXJyb3IoZSkpIHtcbiAgICAgICAgICBlcnJvcnMucHVzaChgJHtmcm9tTGFiZWx9OiAke3RoaXMucHJvcHMuZXJyb3JzW2VdfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnRvQ29udHJvbC5oYXNFcnJvcihlKSkge1xuICAgICAgICAgIGVycm9ycy5wdXNoKGAke3RvTGFiZWx9OiAke3RoaXMucHJvcHMuZXJyb3JzW2VdfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG59XG4iXX0=
|