valtech-components 2.0.565 → 2.0.567
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/avatar/avatar.component.mjs +51 -14
- package/esm2022/lib/components/atoms/fab/fab.component.mjs +63 -25
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +64 -19
- package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +45 -18
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +55 -13
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +43 -15
- package/esm2022/lib/components/molecules/card/card.component.mjs +126 -83
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +52 -8
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +54 -37
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +1 -1
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +62 -27
- package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +3 -3
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +48 -18
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +74 -46
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +2 -2
- package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +1 -1
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +49 -21
- package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +95 -59
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +61 -13
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +2 -2
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +60 -43
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +56 -26
- package/esm2022/lib/components/molecules/searchbar/types.mjs +2 -0
- package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +52 -29
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +68 -18
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +2 -2
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +67 -51
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +51 -23
- package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +59 -21
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +49 -19
- package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +93 -59
- package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +49 -15
- package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +1 -1
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +2 -2
- package/esm2022/lib/components/organisms/form/form.component.mjs +2 -2
- package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +1 -1
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +2 -2
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +2 -2
- package/fesm2022/valtech-components.mjs +1638 -837
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/avatar/avatar.component.d.ts +26 -5
- package/lib/components/atoms/fab/fab.component.d.ts +24 -5
- package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +21 -6
- package/lib/components/molecules/accordion/accordion.component.d.ts +10 -4
- package/lib/components/molecules/alert-box/alert-box.component.d.ts +24 -5
- package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +10 -4
- package/lib/components/molecules/card/card.component.d.ts +24 -5
- package/lib/components/molecules/check-input/check-input.component.d.ts +25 -4
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +10 -4
- package/lib/components/molecules/date-input/date-input.component.d.ts +25 -7
- package/lib/components/molecules/email-input/email-input.component.d.ts +25 -6
- package/lib/components/molecules/glow-card/glow-card.component.d.ts +16 -5
- package/lib/components/molecules/password-input/password-input.component.d.ts +25 -6
- package/lib/components/molecules/phone-input/phone-input.component.d.ts +28 -5
- package/lib/components/molecules/pill/pill.component.d.ts +27 -3
- package/lib/components/molecules/rating/rating.component.d.ts +10 -4
- package/lib/components/molecules/searchbar/searchbar.component.d.ts +15 -11
- package/lib/components/molecules/searchbar/types.d.ts +33 -0
- package/lib/components/molecules/segment-control/segment-control.component.d.ts +17 -6
- package/lib/components/molecules/select-input/select-input.component.d.ts +26 -6
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +10 -4
- package/lib/components/molecules/stepper/stepper.component.d.ts +20 -4
- package/lib/components/molecules/tabs/tabs.component.d.ts +27 -4
- package/lib/components/molecules/text-input/text-input.component.d.ts +26 -26
- package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +27 -4
- package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +25 -4
- package/package.json +1 -1
- package/src/lib/components/styles/_docs-page.scss +310 -0
|
@@ -1,38 +1,73 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
2
2
|
import { IonAvatar } from '@ionic/angular/standalone';
|
|
3
|
+
import { PresetService } from '../../../services/presets';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* val-avatar
|
|
6
7
|
*
|
|
7
8
|
* Displays a user or profile image, optionally with a box style and different sizes.
|
|
9
|
+
* Supports presets for reusable configurations.
|
|
8
10
|
*
|
|
9
|
-
* @example
|
|
11
|
+
* @example With preset (recommended):
|
|
12
|
+
* <val-avatar preset="profile" [props]="{ image: 'url' }" (onClick)="handler()"></val-avatar>
|
|
13
|
+
*
|
|
14
|
+
* @example Static (backwards compatible):
|
|
10
15
|
* <val-avatar [props]="{ image: 'url', size: 'medium', box: true }" (onClick)="handler()"></val-avatar>
|
|
11
16
|
*
|
|
17
|
+
* @input preset: string - Name of preset to apply
|
|
12
18
|
* @input props: AvatarMetadata - Configuration for the avatar (image, size, box, default image)
|
|
13
19
|
* @output onClick - Emits when the avatar is clicked
|
|
14
20
|
*/
|
|
15
21
|
export class AvatarComponent {
|
|
16
22
|
constructor() {
|
|
23
|
+
this.presets = inject(PresetService);
|
|
24
|
+
/**
|
|
25
|
+
* Avatar configuration object. Values here override preset values.
|
|
26
|
+
*/
|
|
27
|
+
this.props = {};
|
|
28
|
+
/**
|
|
29
|
+
* Resolved props after merging preset + explicit props.
|
|
30
|
+
*/
|
|
31
|
+
this.resolvedProps = {};
|
|
17
32
|
/**
|
|
18
33
|
* Event emitted when the avatar is clicked.
|
|
19
34
|
*/
|
|
20
35
|
this.onClick = new EventEmitter();
|
|
21
36
|
}
|
|
22
|
-
ngOnInit() {
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
this.resolveProps();
|
|
39
|
+
}
|
|
40
|
+
ngOnChanges(changes) {
|
|
41
|
+
if (changes['preset'] || changes['props']) {
|
|
42
|
+
this.resolveProps();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Merge preset configuration with explicit props.
|
|
47
|
+
* Explicit props take precedence over preset values.
|
|
48
|
+
*/
|
|
49
|
+
resolveProps() {
|
|
50
|
+
const presetProps = this.preset
|
|
51
|
+
? this.presets.get('avatar', this.preset)
|
|
52
|
+
: {};
|
|
53
|
+
this.resolvedProps = {
|
|
54
|
+
...presetProps,
|
|
55
|
+
...this.props,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
23
58
|
onClickHandler() {
|
|
24
59
|
this.onClick.emit();
|
|
25
60
|
}
|
|
26
61
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AvatarComponent, isStandalone: true, selector: "val-avatar", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AvatarComponent, isStandalone: true, selector: "val-avatar", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
28
63
|
<ion-avatar
|
|
29
64
|
aria-hidden="true"
|
|
30
|
-
[class]="
|
|
31
|
-
[class.box]="
|
|
32
|
-
[class.grayscale]="
|
|
65
|
+
[class]="resolvedProps.size"
|
|
66
|
+
[class.box]="resolvedProps.box"
|
|
67
|
+
[class.grayscale]="resolvedProps.grayscale"
|
|
33
68
|
(click)="onClickHandler()"
|
|
34
69
|
>
|
|
35
|
-
<img alt="profile image" [src]="
|
|
70
|
+
<img alt="profile image" [src]="resolvedProps.image || resolvedProps.default" />
|
|
36
71
|
</ion-avatar>
|
|
37
72
|
`, isInline: true, styles: [":root{--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)}@media (prefers-color-scheme: dark){:root{--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)}.box{--border-radius: pxToRem(4)}.small{width:1.75rem;height:1.75rem}.medium{width:2.375rem;height:2.375rem}.large{width:3rem;height:3rem}.grayscale img{filter:grayscale(100%)}.grayscale:hover img{filter:grayscale(0%)}\n"], dependencies: [{ kind: "component", type: IonAvatar, selector: "ion-avatar" }] }); }
|
|
38
73
|
}
|
|
@@ -41,17 +76,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
41
76
|
args: [{ selector: 'val-avatar', standalone: true, imports: [IonAvatar], template: `
|
|
42
77
|
<ion-avatar
|
|
43
78
|
aria-hidden="true"
|
|
44
|
-
[class]="
|
|
45
|
-
[class.box]="
|
|
46
|
-
[class.grayscale]="
|
|
79
|
+
[class]="resolvedProps.size"
|
|
80
|
+
[class.box]="resolvedProps.box"
|
|
81
|
+
[class.grayscale]="resolvedProps.grayscale"
|
|
47
82
|
(click)="onClickHandler()"
|
|
48
83
|
>
|
|
49
|
-
<img alt="profile image" [src]="
|
|
84
|
+
<img alt="profile image" [src]="resolvedProps.image || resolvedProps.default" />
|
|
50
85
|
</ion-avatar>
|
|
51
86
|
`, styles: [":root{--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)}@media (prefers-color-scheme: dark){:root{--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)}.box{--border-radius: pxToRem(4)}.small{width:1.75rem;height:1.75rem}.medium{width:2.375rem;height:2.375rem}.large{width:3rem;height:3rem}.grayscale img{filter:grayscale(100%)}.grayscale:hover img{filter:grayscale(0%)}\n"] }]
|
|
52
|
-
}],
|
|
87
|
+
}], propDecorators: { preset: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], props: [{
|
|
53
90
|
type: Input
|
|
54
91
|
}], onClick: [{
|
|
55
92
|
type: Output
|
|
56
93
|
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBb0IxRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQWpDNUI7UUFrQ1UsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQVd4Qzs7V0FFRztRQUNNLFVBQUssR0FBNEIsRUFBRSxDQUFDO1FBRTdDOztXQUVHO1FBQ0gsa0JBQWEsR0FBbUIsRUFBb0IsQ0FBQztRQUVyRDs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBOEI5QjtJQTVCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTTtZQUM3QixDQUFDLENBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQTZCO1lBQ3RFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUCxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLEdBQUcsV0FBVztZQUNkLEdBQUcsSUFBSSxDQUFDLEtBQUs7U0FDSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQXZEVSxlQUFlO21HQUFmLGVBQWUsMEtBN0JoQjs7Ozs7Ozs7OztHQVVULDB5RkFYUyxTQUFTOzs0RkE4QlIsZUFBZTtrQkFqQzNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFNBQVMsQ0FBQyxZQUNWOzs7Ozs7Ozs7O0dBVVQ7OEJBNkJRLE1BQU07c0JBQWQsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBV04sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkF2YXRhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZXNldHMnO1xuaW1wb3J0IHsgQXZhdGFyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWF2YXRhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25BdmF0YXJdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tYXZhdGFyXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgW2NsYXNzXT1cInJlc29sdmVkUHJvcHMuc2l6ZVwiXG4gICAgICBbY2xhc3MuYm94XT1cInJlc29sdmVkUHJvcHMuYm94XCJcbiAgICAgIFtjbGFzcy5ncmF5c2NhbGVdPVwicmVzb2x2ZWRQcm9wcy5ncmF5c2NhbGVcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tIYW5kbGVyKClcIlxuICAgID5cbiAgICAgIDxpbWcgYWx0PVwicHJvZmlsZSBpbWFnZVwiIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZSB8fCByZXNvbHZlZFByb3BzLmRlZmF1bHRcIiAvPlxuICAgIDwvaW9uLWF2YXRhcj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtYXZhdGFyXG4gKlxuICogRGlzcGxheXMgYSB1c2VyIG9yIHByb2ZpbGUgaW1hZ2UsIG9wdGlvbmFsbHkgd2l0aCBhIGJveCBzdHlsZSBhbmQgZGlmZmVyZW50IHNpemVzLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQgKHJlY29tbWVuZGVkKTpcbiAqIDx2YWwtYXZhdGFyIHByZXNldD1cInByb2ZpbGVcIiBbcHJvcHNdPVwieyBpbWFnZTogJ3VybCcgfVwiIChvbkNsaWNrKT1cImhhbmRsZXIoKVwiPjwvdmFsLWF2YXRhcj5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgKGJhY2t3YXJkcyBjb21wYXRpYmxlKTpcbiAqIDx2YWwtYXZhdGFyIFtwcm9wc109XCJ7IGltYWdlOiAndXJsJywgc2l6ZTogJ21lZGl1bScsIGJveDogdHJ1ZSB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigpXCI+PC92YWwtYXZhdGFyPlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5XG4gKiBAaW5wdXQgcHJvcHM6IEF2YXRhck1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGF2YXRhciAoaW1hZ2UsIHNpemUsIGJveCwgZGVmYXVsdCBpbWFnZSlcbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRzIHdoZW4gdGhlIGF2YXRhciBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcblxuICAvKipcbiAgICogUHJlc2V0IG5hbWUgdG8gYXBwbHkuIFByZXNldHMgZGVmaW5lIHJldXNhYmxlIGF2YXRhciBjb25maWd1cmF0aW9uc1xuICAgKiB0aGF0IGNhbiBiZSByZWdpc3RlcmVkIGF0IGFwcCBsZXZlbCB2aWEgcHJvdmlkZVZhbHRlY2hQcmVzZXRzKCkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtYXZhdGFyIHByZXNldD1cInByb2ZpbGVcIiBbcHJvcHNdPVwieyBpbWFnZTogJ3VybCcgfVwiPjwvdmFsLWF2YXRhcj5cbiAgICovXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogQXZhdGFyIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8QXZhdGFyTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBBdmF0YXJNZXRhZGF0YSA9IHt9IGFzIEF2YXRhck1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGF2YXRhciBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgcHJlc2V0IGNvbmZpZ3VyYXRpb24gd2l0aCBleHBsaWNpdCBwcm9wcy5cbiAgICogRXhwbGljaXQgcHJvcHMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgcHJlc2V0IHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXRcbiAgICAgID8gKHRoaXMucHJlc2V0cy5nZXQoJ2F2YXRhcicsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPEF2YXRhck1ldGFkYXRhPilcbiAgICAgIDoge307XG5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICAuLi5wcmVzZXRQcm9wcyxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgfSBhcyBBdmF0YXJNZXRhZGF0YTtcbiAgfVxuXG4gIG9uQ2xpY2tIYW5kbGVyKCkge1xuICAgIHRoaXMub25DbGljay5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
1
|
+
import { Component, inject, Input, Output, EventEmitter } from '@angular/core';
|
|
2
2
|
import { IonFab, IonFabButton, IonFabList, IonIcon, IonLabel } from '@ionic/angular/standalone';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { PresetService } from '../../../services/presets';
|
|
4
5
|
import { addIcons } from 'ionicons';
|
|
5
6
|
import { add, close, share, create, trash, heart, star, camera, mic, send } from 'ionicons/icons';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
@@ -9,6 +10,10 @@ addIcons({ add, close, share, create, trash, heart, star, camera, mic, send });
|
|
|
9
10
|
* val-fab
|
|
10
11
|
*
|
|
11
12
|
* A Floating Action Button component with optional speed dial actions.
|
|
13
|
+
* Supports presets for reusable configurations.
|
|
14
|
+
*
|
|
15
|
+
* @example With preset:
|
|
16
|
+
* <val-fab preset="default" [props]="{ icon: 'add' }" (fabClick)="onCreate()"></val-fab>
|
|
12
17
|
*
|
|
13
18
|
* @example Simple FAB
|
|
14
19
|
* <val-fab [props]="{
|
|
@@ -30,18 +35,49 @@ addIcons({ add, close, share, create, trash, heart, star, camera, mic, send });
|
|
|
30
35
|
* side: 'top'
|
|
31
36
|
* }" (actionClick)="onAction($event)"></val-fab>
|
|
32
37
|
*
|
|
38
|
+
* @input preset: string - Name of preset to apply
|
|
33
39
|
* @input props: FabMetadata - Configuration for the FAB
|
|
34
40
|
* @output fabClick: void - Emits when main FAB is clicked (without actions)
|
|
35
41
|
* @output actionClick: FabActionMetadata - Emits when an action is clicked
|
|
36
42
|
*/
|
|
37
43
|
export class FabComponent {
|
|
38
44
|
constructor() {
|
|
45
|
+
this.presets = inject(PresetService);
|
|
46
|
+
/**
|
|
47
|
+
* FAB configuration object. Values here override preset values.
|
|
48
|
+
*/
|
|
49
|
+
this.props = {};
|
|
50
|
+
/**
|
|
51
|
+
* Resolved props after merging preset + explicit props.
|
|
52
|
+
*/
|
|
53
|
+
this.resolvedProps = {};
|
|
39
54
|
this.fabClick = new EventEmitter();
|
|
40
55
|
this.actionClick = new EventEmitter();
|
|
41
56
|
this.isActivated = false;
|
|
42
57
|
}
|
|
58
|
+
ngOnInit() {
|
|
59
|
+
this.resolveProps();
|
|
60
|
+
}
|
|
61
|
+
ngOnChanges(changes) {
|
|
62
|
+
if (changes['preset'] || changes['props']) {
|
|
63
|
+
this.resolveProps();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Merge preset configuration with explicit props.
|
|
68
|
+
* Explicit props take precedence over preset values.
|
|
69
|
+
*/
|
|
70
|
+
resolveProps() {
|
|
71
|
+
const presetProps = this.preset
|
|
72
|
+
? this.presets.get('fab', this.preset)
|
|
73
|
+
: {};
|
|
74
|
+
this.resolvedProps = {
|
|
75
|
+
...presetProps,
|
|
76
|
+
...this.props,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
43
79
|
getVertical() {
|
|
44
|
-
const pos = this.
|
|
80
|
+
const pos = this.resolvedProps.position || 'bottom-end';
|
|
45
81
|
if (pos.startsWith('top'))
|
|
46
82
|
return 'top';
|
|
47
83
|
if (pos.startsWith('center'))
|
|
@@ -49,7 +85,7 @@ export class FabComponent {
|
|
|
49
85
|
return 'bottom';
|
|
50
86
|
}
|
|
51
87
|
getHorizontal() {
|
|
52
|
-
const pos = this.
|
|
88
|
+
const pos = this.resolvedProps.position || 'bottom-end';
|
|
53
89
|
if (pos.endsWith('start'))
|
|
54
90
|
return 'start';
|
|
55
91
|
if (pos.endsWith('center'))
|
|
@@ -57,13 +93,13 @@ export class FabComponent {
|
|
|
57
93
|
return 'end';
|
|
58
94
|
}
|
|
59
95
|
getMainIcon() {
|
|
60
|
-
if (this.isActivated && this.
|
|
61
|
-
return this.
|
|
96
|
+
if (this.isActivated && this.resolvedProps.iconActivated) {
|
|
97
|
+
return this.resolvedProps.iconActivated;
|
|
62
98
|
}
|
|
63
|
-
return this.
|
|
99
|
+
return this.resolvedProps.icon;
|
|
64
100
|
}
|
|
65
101
|
onMainClick() {
|
|
66
|
-
if (this.
|
|
102
|
+
if (this.resolvedProps.actions && this.resolvedProps.actions.length > 0) {
|
|
67
103
|
this.isActivated = !this.isActivated;
|
|
68
104
|
}
|
|
69
105
|
else {
|
|
@@ -72,30 +108,30 @@ export class FabComponent {
|
|
|
72
108
|
}
|
|
73
109
|
onActionClick(action) {
|
|
74
110
|
this.actionClick.emit(action);
|
|
75
|
-
if (this.
|
|
111
|
+
if (this.resolvedProps.closeOnAction !== false) {
|
|
76
112
|
this.isActivated = false;
|
|
77
113
|
}
|
|
78
114
|
}
|
|
79
115
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FabComponent, isStandalone: true, selector: "val-fab", inputs: { props: "props" }, outputs: { fabClick: "fabClick", actionClick: "actionClick" }, ngImport: i0, template: `
|
|
116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FabComponent, isStandalone: true, selector: "val-fab", inputs: { preset: "preset", props: "props" }, outputs: { fabClick: "fabClick", actionClick: "actionClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
81
117
|
<ion-fab
|
|
82
118
|
[vertical]="getVertical()"
|
|
83
119
|
[horizontal]="getHorizontal()"
|
|
84
120
|
[activated]="isActivated"
|
|
85
121
|
>
|
|
86
122
|
<ion-fab-button
|
|
87
|
-
[color]="
|
|
88
|
-
[size]="
|
|
89
|
-
[disabled]="
|
|
90
|
-
[translucent]="
|
|
123
|
+
[color]="resolvedProps.color || 'primary'"
|
|
124
|
+
[size]="resolvedProps.size"
|
|
125
|
+
[disabled]="resolvedProps.disabled"
|
|
126
|
+
[translucent]="resolvedProps.translucent"
|
|
91
127
|
(click)="onMainClick()"
|
|
92
128
|
>
|
|
93
129
|
<ion-icon [name]="getMainIcon()"></ion-icon>
|
|
94
130
|
</ion-fab-button>
|
|
95
131
|
|
|
96
|
-
@if (
|
|
97
|
-
<ion-fab-list [side]="
|
|
98
|
-
@for (action of
|
|
132
|
+
@if (resolvedProps.actions && resolvedProps.actions.length > 0) {
|
|
133
|
+
<ion-fab-list [side]="resolvedProps.side || 'top'">
|
|
134
|
+
@for (action of resolvedProps.actions; track action.token || $index) {
|
|
99
135
|
<ion-fab-button
|
|
100
136
|
[color]="action.color || 'light'"
|
|
101
137
|
[disabled]="action.disabled"
|
|
@@ -118,18 +154,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
118
154
|
[activated]="isActivated"
|
|
119
155
|
>
|
|
120
156
|
<ion-fab-button
|
|
121
|
-
[color]="
|
|
122
|
-
[size]="
|
|
123
|
-
[disabled]="
|
|
124
|
-
[translucent]="
|
|
157
|
+
[color]="resolvedProps.color || 'primary'"
|
|
158
|
+
[size]="resolvedProps.size"
|
|
159
|
+
[disabled]="resolvedProps.disabled"
|
|
160
|
+
[translucent]="resolvedProps.translucent"
|
|
125
161
|
(click)="onMainClick()"
|
|
126
162
|
>
|
|
127
163
|
<ion-icon [name]="getMainIcon()"></ion-icon>
|
|
128
164
|
</ion-fab-button>
|
|
129
165
|
|
|
130
|
-
@if (
|
|
131
|
-
<ion-fab-list [side]="
|
|
132
|
-
@for (action of
|
|
166
|
+
@if (resolvedProps.actions && resolvedProps.actions.length > 0) {
|
|
167
|
+
<ion-fab-list [side]="resolvedProps.side || 'top'">
|
|
168
|
+
@for (action of resolvedProps.actions; track action.token || $index) {
|
|
133
169
|
<ion-fab-button
|
|
134
170
|
[color]="action.color || 'light'"
|
|
135
171
|
[disabled]="action.disabled"
|
|
@@ -142,11 +178,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
142
178
|
}
|
|
143
179
|
</ion-fab>
|
|
144
180
|
`, styles: [":host{display:block}ion-fab{position:relative}ion-fab-button{--box-shadow: 0 4px 12px rgba(0, 0, 0, .15);transition:transform .2s}ion-fab-button:hover:not([disabled]){transform:scale(1.05)}ion-fab-button:active:not([disabled]){transform:scale(.95)}ion-fab-list ion-fab-button{--box-shadow: 0 2px 8px rgba(0, 0, 0, .1)}\n"] }]
|
|
145
|
-
}],
|
|
181
|
+
}], propDecorators: { preset: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], props: [{
|
|
146
184
|
type: Input
|
|
147
185
|
}], fabClick: [{
|
|
148
186
|
type: Output
|
|
149
187
|
}], actionClick: [{
|
|
150
188
|
type: Output
|
|
151
189
|
}] } });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9mYWIvZmFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUdsRyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBdUMvRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBUXZCO1FBTFUsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUU5RCxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQUVMLENBQUM7SUFFaEIsV0FBVztRQUNULE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQztRQUNoRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU8sUUFBUSxDQUFDO1FBQzlDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDO1FBQ2hELElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUMxQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsTUFBeUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzsrR0E1Q1UsWUFBWTttR0FBWixZQUFZLDhKQTlEYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJULHlZQS9CUyxZQUFZLCtCQUFFLE1BQU0sNkdBQUUsWUFBWSw4T0FBRSxVQUFVLHdGQUFFLE9BQU87OzRGQStEdEQsWUFBWTtrQkFsRXhCLFNBQVM7K0JBQ0UsU0FBUyxjQUNQLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFlBQ2xFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQ7d0RBaUNRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uRmFiLCBJb25GYWJCdXR0b24sIElvbkZhYkxpc3QsIElvbkljb24sIElvbkxhYmVsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmFiTWV0YWRhdGEsIEZhYkFjdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGFkZCwgY2xvc2UsIHNoYXJlLCBjcmVhdGUsIHRyYXNoLCBoZWFydCwgc3RhciwgY2FtZXJhLCBtaWMsIHNlbmQgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuXG5hZGRJY29ucyh7IGFkZCwgY2xvc2UsIHNoYXJlLCBjcmVhdGUsIHRyYXNoLCBoZWFydCwgc3RhciwgY2FtZXJhLCBtaWMsIHNlbmQgfSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1mYWInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25GYWIsIElvbkZhYkJ1dHRvbiwgSW9uRmFiTGlzdCwgSW9uSWNvbiwgSW9uTGFiZWxdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tZmFiXG4gICAgICBbdmVydGljYWxdPVwiZ2V0VmVydGljYWwoKVwiXG4gICAgICBbaG9yaXpvbnRhbF09XCJnZXRIb3Jpem9udGFsKClcIlxuICAgICAgW2FjdGl2YXRlZF09XCJpc0FjdGl2YXRlZFwiXG4gICAgPlxuICAgICAgPGlvbi1mYWItYnV0dG9uXG4gICAgICAgIFtjb2xvcl09XCJwcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIlxuICAgICAgICBbc2l6ZV09XCJwcm9wcy5zaXplXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInByb3BzLmRpc2FibGVkXCJcbiAgICAgICAgW3RyYW5zbHVjZW50XT1cInByb3BzLnRyYW5zbHVjZW50XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTWFpbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZ2V0TWFpbkljb24oKVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1mYWItYnV0dG9uPlxuXG4gICAgICBAaWYgKHByb3BzLmFjdGlvbnMgJiYgcHJvcHMuYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxpb24tZmFiLWxpc3QgW3NpZGVdPVwicHJvcHMuc2lkZSB8fCAndG9wJ1wiPlxuICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBwcm9wcy5hY3Rpb25zOyB0cmFjayBhY3Rpb24udG9rZW4gfHwgJGluZGV4KSB7XG4gICAgICAgICAgICA8aW9uLWZhYi1idXR0b25cbiAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvciB8fCAnbGlnaHQnXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrKGFjdGlvbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYWN0aW9uLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tZmFiLWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWZhYi1saXN0PlxuICAgICAgfVxuICAgIDwvaW9uLWZhYj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtZmFiXG4gKlxuICogQSBGbG9hdGluZyBBY3Rpb24gQnV0dG9uIGNvbXBvbmVudCB3aXRoIG9wdGlvbmFsIHNwZWVkIGRpYWwgYWN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBTaW1wbGUgRkFCXG4gKiA8dmFsLWZhYiBbcHJvcHNdPVwie1xuICogICBpY29uOiAnYWRkJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgcG9zaXRpb246ICdib3R0b20tZW5kJ1xuICogfVwiIChmYWJDbGljayk9XCJvbkNyZWF0ZSgpXCI+PC92YWwtZmFiPlxuICpcbiAqIEBleGFtcGxlIFNwZWVkIGRpYWwgRkFCXG4gKiA8dmFsLWZhYiBbcHJvcHNdPVwie1xuICogICBpY29uOiAnYWRkJyxcbiAqICAgaWNvbkFjdGl2YXRlZDogJ2Nsb3NlJyxcbiAqICAgcG9zaXRpb246ICdib3R0b20tZW5kJyxcbiAqICAgYWN0aW9uczogW1xuICogICAgIHsgaWNvbjogJ2NhbWVyYScsIGxhYmVsOiAnUGhvdG8nLCB0b2tlbjogJ3Bob3RvJyB9LFxuICogICAgIHsgaWNvbjogJ21pYycsIGxhYmVsOiAnQXVkaW8nLCB0b2tlbjogJ2F1ZGlvJyB9LFxuICogICAgIHsgaWNvbjogJ2NyZWF0ZScsIGxhYmVsOiAnTm90ZScsIHRva2VuOiAnbm90ZScgfVxuICogICBdLFxuICogICBzaWRlOiAndG9wJ1xuICogfVwiIChhY3Rpb25DbGljayk9XCJvbkFjdGlvbigkZXZlbnQpXCI+PC92YWwtZmFiPlxuICpcbiAqIEBpbnB1dCBwcm9wczogRmFiTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgRkFCXG4gKiBAb3V0cHV0IGZhYkNsaWNrOiB2b2lkIC0gRW1pdHMgd2hlbiBtYWluIEZBQiBpcyBjbGlja2VkICh3aXRob3V0IGFjdGlvbnMpXG4gKiBAb3V0cHV0IGFjdGlvbkNsaWNrOiBGYWJBY3Rpb25NZXRhZGF0YSAtIEVtaXRzIHdoZW4gYW4gYWN0aW9uIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByb3BzOiBGYWJNZXRhZGF0YTtcblxuICBAT3V0cHV0KCkgZmFiQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RmFiQWN0aW9uTWV0YWRhdGE+KCk7XG5cbiAgaXNBY3RpdmF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZ2V0VmVydGljYWwoKTogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInIHtcbiAgICBjb25zdCBwb3MgPSB0aGlzLnByb3BzLnBvc2l0aW9uIHx8ICdib3R0b20tZW5kJztcbiAgICBpZiAocG9zLnN0YXJ0c1dpdGgoJ3RvcCcpKSByZXR1cm4gJ3RvcCc7XG4gICAgaWYgKHBvcy5zdGFydHNXaXRoKCdjZW50ZXInKSkgcmV0dXJuICdjZW50ZXInO1xuICAgIHJldHVybiAnYm90dG9tJztcbiAgfVxuXG4gIGdldEhvcml6b250YWwoKTogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2NlbnRlcicge1xuICAgIGNvbnN0IHBvcyA9IHRoaXMucHJvcHMucG9zaXRpb24gfHwgJ2JvdHRvbS1lbmQnO1xuICAgIGlmIChwb3MuZW5kc1dpdGgoJ3N0YXJ0JykpIHJldHVybiAnc3RhcnQnO1xuICAgIGlmIChwb3MuZW5kc1dpdGgoJ2NlbnRlcicpKSByZXR1cm4gJ2NlbnRlcic7XG4gICAgcmV0dXJuICdlbmQnO1xuICB9XG5cbiAgZ2V0TWFpbkljb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0FjdGl2YXRlZCAmJiB0aGlzLnByb3BzLmljb25BY3RpdmF0ZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmljb25BY3RpdmF0ZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmljb247XG4gIH1cblxuICBvbk1haW5DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5hY3Rpb25zICYmIHRoaXMucHJvcHMuYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmlzQWN0aXZhdGVkID0gIXRoaXMuaXNBY3RpdmF0ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmFiQ2xpY2suZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQWN0aW9uQ2xpY2soYWN0aW9uOiBGYWJBY3Rpb25NZXRhZGF0YSk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdChhY3Rpb24pO1xuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25BY3Rpb24gIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmlzQWN0aXZhdGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9mYWIvZmFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxZQUFZLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbEcsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQXVDL0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBdkV6QjtRQXdFVSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBUXhDOztXQUVHO1FBQ00sVUFBSyxHQUF5QixFQUFFLENBQUM7UUFFMUM7O1dBRUc7UUFDSCxrQkFBYSxHQUFnQixFQUFpQixDQUFDO1FBRXJDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFFOUQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0E4RHJCO0lBNURDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNO1lBQzdCLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBMEI7WUFDaEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsR0FBRyxXQUFXO1lBQ2QsR0FBRyxJQUFJLENBQUMsS0FBSztTQUNDLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsSUFBSSxZQUFZLENBQUM7UUFDeEQsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3hDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUM5QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQztRQUN4RCxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxPQUFPLENBQUM7UUFDMUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU8sUUFBUSxDQUFDO1FBQzVDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDdkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQXlCO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7K0dBbkZVLFlBQVk7bUdBQVosWUFBWSxxTUFuRWI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVCx5WUEvQlMsWUFBWSwrQkFBRSxNQUFNLDZHQUFFLFlBQVksOE9BQUUsVUFBVSx3RkFBRSxPQUFPOzs0RkFvRXRELFlBQVk7a0JBdkV4QixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxZQUNsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJUOzhCQTRDUSxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQU9JLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25GYWIsIElvbkZhYkJ1dHRvbiwgSW9uRmFiTGlzdCwgSW9uSWNvbiwgSW9uTGFiZWwgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBGYWJNZXRhZGF0YSwgRmFiQWN0aW9uTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYWRkLCBjbG9zZSwgc2hhcmUsIGNyZWF0ZSwgdHJhc2gsIGhlYXJ0LCBzdGFyLCBjYW1lcmEsIG1pYywgc2VuZCB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuYWRkSWNvbnMoeyBhZGQsIGNsb3NlLCBzaGFyZSwgY3JlYXRlLCB0cmFzaCwgaGVhcnQsIHN0YXIsIGNhbWVyYSwgbWljLCBzZW5kIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZmFiJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uRmFiLCBJb25GYWJCdXR0b24sIElvbkZhYkxpc3QsIElvbkljb24sIElvbkxhYmVsXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWZhYlxuICAgICAgW3ZlcnRpY2FsXT1cImdldFZlcnRpY2FsKClcIlxuICAgICAgW2hvcml6b250YWxdPVwiZ2V0SG9yaXpvbnRhbCgpXCJcbiAgICAgIFthY3RpdmF0ZWRdPVwiaXNBY3RpdmF0ZWRcIlxuICAgID5cbiAgICAgIDxpb24tZmFiLWJ1dHRvblxuICAgICAgICBbY29sb3JdPVwicmVzb2x2ZWRQcm9wcy5jb2xvciB8fCAncHJpbWFyeSdcIlxuICAgICAgICBbc2l6ZV09XCJyZXNvbHZlZFByb3BzLnNpemVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicmVzb2x2ZWRQcm9wcy5kaXNhYmxlZFwiXG4gICAgICAgIFt0cmFuc2x1Y2VudF09XCJyZXNvbHZlZFByb3BzLnRyYW5zbHVjZW50XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTWFpbkNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZ2V0TWFpbkljb24oKVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1mYWItYnV0dG9uPlxuXG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuYWN0aW9ucyAmJiByZXNvbHZlZFByb3BzLmFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8aW9uLWZhYi1saXN0IFtzaWRlXT1cInJlc29sdmVkUHJvcHMuc2lkZSB8fCAndG9wJ1wiPlxuICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiByZXNvbHZlZFByb3BzLmFjdGlvbnM7IHRyYWNrIGFjdGlvbi50b2tlbiB8fCAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxpb24tZmFiLWJ1dHRvblxuICAgICAgICAgICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yIHx8ICdsaWdodCdcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soYWN0aW9uKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJhY3Rpb24uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1mYWItYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tZmFiLWxpc3Q+XG4gICAgICB9XG4gICAgPC9pb24tZmFiPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9mYWIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1mYWJcbiAqXG4gKiBBIEZsb2F0aW5nIEFjdGlvbiBCdXR0b24gY29tcG9uZW50IHdpdGggb3B0aW9uYWwgc3BlZWQgZGlhbCBhY3Rpb25zLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQ6XG4gKiA8dmFsLWZhYiBwcmVzZXQ9XCJkZWZhdWx0XCIgW3Byb3BzXT1cInsgaWNvbjogJ2FkZCcgfVwiIChmYWJDbGljayk9XCJvbkNyZWF0ZSgpXCI+PC92YWwtZmFiPlxuICpcbiAqIEBleGFtcGxlIFNpbXBsZSBGQUJcbiAqIDx2YWwtZmFiIFtwcm9wc109XCJ7XG4gKiAgIGljb246ICdhZGQnLFxuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBwb3NpdGlvbjogJ2JvdHRvbS1lbmQnXG4gKiB9XCIgKGZhYkNsaWNrKT1cIm9uQ3JlYXRlKClcIj48L3ZhbC1mYWI+XG4gKlxuICogQGV4YW1wbGUgU3BlZWQgZGlhbCBGQUJcbiAqIDx2YWwtZmFiIFtwcm9wc109XCJ7XG4gKiAgIGljb246ICdhZGQnLFxuICogICBpY29uQWN0aXZhdGVkOiAnY2xvc2UnLFxuICogICBwb3NpdGlvbjogJ2JvdHRvbS1lbmQnLFxuICogICBhY3Rpb25zOiBbXG4gKiAgICAgeyBpY29uOiAnY2FtZXJhJywgbGFiZWw6ICdQaG90bycsIHRva2VuOiAncGhvdG8nIH0sXG4gKiAgICAgeyBpY29uOiAnbWljJywgbGFiZWw6ICdBdWRpbycsIHRva2VuOiAnYXVkaW8nIH0sXG4gKiAgICAgeyBpY29uOiAnY3JlYXRlJywgbGFiZWw6ICdOb3RlJywgdG9rZW46ICdub3RlJyB9XG4gKiAgIF0sXG4gKiAgIHNpZGU6ICd0b3AnXG4gKiB9XCIgKGFjdGlvbkNsaWNrKT1cIm9uQWN0aW9uKCRldmVudClcIj48L3ZhbC1mYWI+XG4gKlxuICogQGlucHV0IHByZXNldDogc3RyaW5nIC0gTmFtZSBvZiBwcmVzZXQgdG8gYXBwbHlcbiAqIEBpbnB1dCBwcm9wczogRmFiTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgRkFCXG4gKiBAb3V0cHV0IGZhYkNsaWNrOiB2b2lkIC0gRW1pdHMgd2hlbiBtYWluIEZBQiBpcyBjbGlja2VkICh3aXRob3V0IGFjdGlvbnMpXG4gKiBAb3V0cHV0IGFjdGlvbkNsaWNrOiBGYWJBY3Rpb25NZXRhZGF0YSAtIEVtaXRzIHdoZW4gYW4gYWN0aW9uIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgRkFCIGNvbmZpZ3VyYXRpb25zXG4gICAqIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgYXQgYXBwIGxldmVsIHZpYSBwcm92aWRlVmFsdGVjaFByZXNldHMoKS5cbiAgICovXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogRkFCIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8RmFiTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBGYWJNZXRhZGF0YSA9IHt9IGFzIEZhYk1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBmYWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxGYWJBY3Rpb25NZXRhZGF0YT4oKTtcblxuICBpc0FjdGl2YXRlZCA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0XG4gICAgICA/ICh0aGlzLnByZXNldHMuZ2V0KCdmYWInLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxGYWJNZXRhZGF0YT4pXG4gICAgICA6IHt9O1xuXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgRmFiTWV0YWRhdGE7XG4gIH1cblxuICBnZXRWZXJ0aWNhbCgpOiAndG9wJyB8ICdib3R0b20nIHwgJ2NlbnRlcicge1xuICAgIGNvbnN0IHBvcyA9IHRoaXMucmVzb2x2ZWRQcm9wcy5wb3NpdGlvbiB8fCAnYm90dG9tLWVuZCc7XG4gICAgaWYgKHBvcy5zdGFydHNXaXRoKCd0b3AnKSkgcmV0dXJuICd0b3AnO1xuICAgIGlmIChwb3Muc3RhcnRzV2l0aCgnY2VudGVyJykpIHJldHVybiAnY2VudGVyJztcbiAgICByZXR1cm4gJ2JvdHRvbSc7XG4gIH1cblxuICBnZXRIb3Jpem9udGFsKCk6ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInIHtcbiAgICBjb25zdCBwb3MgPSB0aGlzLnJlc29sdmVkUHJvcHMucG9zaXRpb24gfHwgJ2JvdHRvbS1lbmQnO1xuICAgIGlmIChwb3MuZW5kc1dpdGgoJ3N0YXJ0JykpIHJldHVybiAnc3RhcnQnO1xuICAgIGlmIChwb3MuZW5kc1dpdGgoJ2NlbnRlcicpKSByZXR1cm4gJ2NlbnRlcic7XG4gICAgcmV0dXJuICdlbmQnO1xuICB9XG5cbiAgZ2V0TWFpbkljb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0FjdGl2YXRlZCAmJiB0aGlzLnJlc29sdmVkUHJvcHMuaWNvbkFjdGl2YXRlZCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcy5pY29uQWN0aXZhdGVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzLmljb247XG4gIH1cblxuICBvbk1haW5DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmFjdGlvbnMgJiYgdGhpcy5yZXNvbHZlZFByb3BzLmFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pc0FjdGl2YXRlZCA9ICF0aGlzLmlzQWN0aXZhdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZhYkNsaWNrLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGFjdGlvbjogRmFiQWN0aW9uTWV0YWRhdGEpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoYWN0aW9uKTtcbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmNsb3NlT25BY3Rpb24gIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmlzQWN0aXZhdGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,30 +1,73 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
3
|
import { IonProgressBar } from '@ionic/angular/standalone';
|
|
4
|
+
import { PresetService } from '../../../services/presets';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/common";
|
|
6
7
|
/**
|
|
7
8
|
* val-progress-bar
|
|
8
9
|
*
|
|
9
10
|
* A progress bar for indicating completion or loading state.
|
|
11
|
+
* Supports presets for reusable configurations.
|
|
10
12
|
*
|
|
11
|
-
* @example
|
|
13
|
+
* @example With preset:
|
|
14
|
+
* <val-progress-bar preset="default" [props]="{ progress: 0.5 }"></val-progress-bar>
|
|
15
|
+
*
|
|
16
|
+
* @example Static:
|
|
12
17
|
* <val-progress-bar [props]="{ progress: 0.5, color: 'success', size: 'small' }"></val-progress-bar>
|
|
13
18
|
*
|
|
19
|
+
* @input preset: string - Name of preset to apply
|
|
14
20
|
* @input props: ProgressBarMetadata - Configuration for the progress bar (progress, color, size, etc.)
|
|
15
21
|
*/
|
|
16
22
|
export class ProgressBarComponent {
|
|
17
|
-
constructor() {
|
|
18
|
-
|
|
23
|
+
constructor() {
|
|
24
|
+
this.presets = inject(PresetService);
|
|
25
|
+
/**
|
|
26
|
+
* Progress bar configuration object. Values here override preset values.
|
|
27
|
+
* @type {ProgressBarMetadata}
|
|
28
|
+
* @property progress - The progress value (0 to 1).
|
|
29
|
+
* @property size - The progress bar size ('small' | 'medium' | 'large' | 'xlarge').
|
|
30
|
+
* @property color - The progress bar color (Ionic color string).
|
|
31
|
+
* @property buffer - The buffer value for the bar.
|
|
32
|
+
* @property type - The type of progress bar ('determinate' | 'indeterminate').
|
|
33
|
+
* @property rounded - Whether the bar has rounded corners.
|
|
34
|
+
*/
|
|
35
|
+
this.props = {};
|
|
36
|
+
/**
|
|
37
|
+
* Resolved props after merging preset + explicit props.
|
|
38
|
+
*/
|
|
39
|
+
this.resolvedProps = {};
|
|
40
|
+
}
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
this.resolveProps();
|
|
43
|
+
}
|
|
44
|
+
ngOnChanges(changes) {
|
|
45
|
+
if (changes['preset'] || changes['props']) {
|
|
46
|
+
this.resolveProps();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Merge preset configuration with explicit props.
|
|
51
|
+
* Explicit props take precedence over preset values.
|
|
52
|
+
*/
|
|
53
|
+
resolveProps() {
|
|
54
|
+
const presetProps = this.preset
|
|
55
|
+
? this.presets.get('progressBar', this.preset)
|
|
56
|
+
: {};
|
|
57
|
+
this.resolvedProps = {
|
|
58
|
+
...presetProps,
|
|
59
|
+
...this.props,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
19
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressBarComponent, isStandalone: true, selector: "val-progress-bar", inputs: { props: "props" }, ngImport: i0, template: `
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressBarComponent, isStandalone: true, selector: "val-progress-bar", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
21
64
|
<ion-progress-bar
|
|
22
|
-
[ngClass]="[
|
|
23
|
-
[class.rounded]="
|
|
24
|
-
[value]="
|
|
25
|
-
[color]="
|
|
26
|
-
[buffer]="
|
|
27
|
-
[type]="
|
|
65
|
+
[ngClass]="[resolvedProps.size]"
|
|
66
|
+
[class.rounded]="resolvedProps.rounded"
|
|
67
|
+
[value]="resolvedProps.progress"
|
|
68
|
+
[color]="resolvedProps.color"
|
|
69
|
+
[buffer]="resolvedProps.buffer"
|
|
70
|
+
[type]="resolvedProps.type"
|
|
28
71
|
></ion-progress-bar>
|
|
29
72
|
`, isInline: true, styles: [":root{--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)}@media (prefers-color-scheme: dark){:root{--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)}ion-progress-bar.rounded{border-radius:.5rem}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }] }); }
|
|
30
73
|
}
|
|
@@ -32,15 +75,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
32
75
|
type: Component,
|
|
33
76
|
args: [{ selector: 'val-progress-bar', standalone: true, imports: [CommonModule, IonProgressBar], template: `
|
|
34
77
|
<ion-progress-bar
|
|
35
|
-
[ngClass]="[
|
|
36
|
-
[class.rounded]="
|
|
37
|
-
[value]="
|
|
38
|
-
[color]="
|
|
39
|
-
[buffer]="
|
|
40
|
-
[type]="
|
|
78
|
+
[ngClass]="[resolvedProps.size]"
|
|
79
|
+
[class.rounded]="resolvedProps.rounded"
|
|
80
|
+
[value]="resolvedProps.progress"
|
|
81
|
+
[color]="resolvedProps.color"
|
|
82
|
+
[buffer]="resolvedProps.buffer"
|
|
83
|
+
[type]="resolvedProps.type"
|
|
41
84
|
></ion-progress-bar>
|
|
42
85
|
`, styles: [":root{--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)}@media (prefers-color-scheme: dark){:root{--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)}ion-progress-bar.rounded{border-radius:.5rem}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"] }]
|
|
43
|
-
}],
|
|
86
|
+
}], propDecorators: { preset: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], props: [{
|
|
44
89
|
type: Input
|
|
45
90
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFtQjFEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQS9CakM7UUFnQ1UsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQVF4Qzs7Ozs7Ozs7O1dBU0c7UUFDTSxVQUFLLEdBQWlDLEVBQUUsQ0FBQztRQUVsRDs7V0FFRztRQUNILGtCQUFhLEdBQXdCLEVBQXlCLENBQUM7S0EwQmhFO0lBeEJDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNO1lBQzdCLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBa0M7WUFDaEYsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsR0FBRyxXQUFXO1lBQ2QsR0FBRyxJQUFJLENBQUMsS0FBSztTQUNTLENBQUM7SUFDM0IsQ0FBQzsrR0FqRFUsb0JBQW9CO21HQUFwQixvQkFBb0IsK0lBM0JyQjs7Ozs7Ozs7O0dBU1QsNnJGQVZTLFlBQVksNkhBQUUsY0FBYzs7NEZBNEIzQixvQkFBb0I7a0JBL0JoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLFlBQzdCOzs7Ozs7Ozs7R0FTVDs4QkF5QlEsTUFBTTtzQkFBZCxLQUFLO2dCQVlHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25Qcm9ncmVzc0JhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZXNldHMnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcHJvZ3Jlc3MtYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uUHJvZ3Jlc3NCYXJdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tcHJvZ3Jlc3MtYmFyXG4gICAgICBbbmdDbGFzc109XCJbcmVzb2x2ZWRQcm9wcy5zaXplXVwiXG4gICAgICBbY2xhc3Mucm91bmRlZF09XCJyZXNvbHZlZFByb3BzLnJvdW5kZWRcIlxuICAgICAgW3ZhbHVlXT1cInJlc29sdmVkUHJvcHMucHJvZ3Jlc3NcIlxuICAgICAgW2NvbG9yXT1cInJlc29sdmVkUHJvcHMuY29sb3JcIlxuICAgICAgW2J1ZmZlcl09XCJyZXNvbHZlZFByb3BzLmJ1ZmZlclwiXG4gICAgICBbdHlwZV09XCJyZXNvbHZlZFByb3BzLnR5cGVcIlxuICAgID48L2lvbi1wcm9ncmVzcy1iYXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXByb2dyZXNzLWJhclxuICpcbiAqIEEgcHJvZ3Jlc3MgYmFyIGZvciBpbmRpY2F0aW5nIGNvbXBsZXRpb24gb3IgbG9hZGluZyBzdGF0ZS5cbiAqIFN1cHBvcnRzIHByZXNldHMgZm9yIHJldXNhYmxlIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlIFdpdGggcHJlc2V0OlxuICogPHZhbC1wcm9ncmVzcy1iYXIgcHJlc2V0PVwiZGVmYXVsdFwiIFtwcm9wc109XCJ7IHByb2dyZXNzOiAwLjUgfVwiPjwvdmFsLXByb2dyZXNzLWJhcj5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWM6XG4gKiA8dmFsLXByb2dyZXNzLWJhciBbcHJvcHNdPVwieyBwcm9ncmVzczogMC41LCBjb2xvcjogJ3N1Y2Nlc3MnLCBzaXplOiAnc21hbGwnIH1cIj48L3ZhbC1wcm9ncmVzcy1iYXI+XG4gKlxuICogQGlucHV0IHByZXNldDogc3RyaW5nIC0gTmFtZSBvZiBwcmVzZXQgdG8gYXBwbHlcbiAqIEBpbnB1dCBwcm9wczogUHJvZ3Jlc3NCYXJNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBwcm9ncmVzcyBiYXIgKHByb2dyZXNzLCBjb2xvciwgc2l6ZSwgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIHByZXNldHMgPSBpbmplY3QoUHJlc2V0U2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFByZXNldCBuYW1lIHRvIGFwcGx5LiBQcmVzZXRzIGRlZmluZSByZXVzYWJsZSBwcm9ncmVzcyBiYXIgY29uZmlndXJhdGlvbnNcbiAgICogdGhhdCBjYW4gYmUgcmVnaXN0ZXJlZCBhdCBhcHAgbGV2ZWwgdmlhIHByb3ZpZGVWYWx0ZWNoUHJlc2V0cygpLlxuICAgKi9cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9ncmVzcyBiYXIgY29uZmlndXJhdGlvbiBvYmplY3QuIFZhbHVlcyBoZXJlIG92ZXJyaWRlIHByZXNldCB2YWx1ZXMuXG4gICAqIEB0eXBlIHtQcm9ncmVzc0Jhck1ldGFkYXRhfVxuICAgKiBAcHJvcGVydHkgcHJvZ3Jlc3MgLSBUaGUgcHJvZ3Jlc3MgdmFsdWUgKDAgdG8gMSkuXG4gICAqIEBwcm9wZXJ0eSBzaXplIC0gVGhlIHByb2dyZXNzIGJhciBzaXplICgnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZScpLlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgcHJvZ3Jlc3MgYmFyIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICAgKiBAcHJvcGVydHkgYnVmZmVyIC0gVGhlIGJ1ZmZlciB2YWx1ZSBmb3IgdGhlIGJhci5cbiAgICogQHByb3BlcnR5IHR5cGUgLSBUaGUgdHlwZSBvZiBwcm9ncmVzcyBiYXIgKCdkZXRlcm1pbmF0ZScgfCAnaW5kZXRlcm1pbmF0ZScpLlxuICAgKiBAcHJvcGVydHkgcm91bmRlZCAtIFdoZXRoZXIgdGhlIGJhciBoYXMgcm91bmRlZCBjb3JuZXJzLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8UHJvZ3Jlc3NCYXJNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IFByb2dyZXNzQmFyTWV0YWRhdGEgPSB7fSBhcyBQcm9ncmVzc0Jhck1ldGFkYXRhO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0XG4gICAgICA/ICh0aGlzLnByZXNldHMuZ2V0KCdwcm9ncmVzc0JhcicsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPFByb2dyZXNzQmFyTWV0YWRhdGE+KVxuICAgICAgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIFByb2dyZXNzQmFyTWV0YWRhdGE7XG4gIH1cbn1cbiJdfQ==
|