valtech-components 4.0.1030 → 4.0.1032
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 +7 -9
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +13 -12
- package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +92 -36
- package/esm2022/lib/components/molecules/action-card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/card/card.component.mjs +56 -28
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +1 -1
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +2 -2
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +22 -10
- package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +2 -2
- package/esm2022/lib/components/organisms/attachment-uploader/attachment-uploader.component.mjs +26 -5
- package/esm2022/lib/components/organisms/attachment-uploader/types.mjs +1 -1
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +2 -2
- package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +2 -2
- package/esm2022/lib/components/organisms/settings-hub/settings-hub.component.mjs +2 -2
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +2 -2
- package/esm2022/lib/services/auth/auth.service.mjs +2 -1
- package/esm2022/lib/services/auth/types.mjs +1 -1
- package/esm2022/lib/services/i18n/default-content.mjs +3 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +220 -101
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/avatar/avatar.component.d.ts +2 -2
- package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +2 -1
- package/lib/components/molecules/action-card/action-card.component.d.ts +28 -7
- package/lib/components/molecules/action-card/types.d.ts +4 -1
- package/lib/components/molecules/card/card.component.d.ts +2 -2
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +3 -1
- package/lib/components/organisms/attachment-uploader/attachment-uploader.component.d.ts +5 -2
- package/lib/components/organisms/attachment-uploader/types.d.ts +6 -0
- package/lib/services/auth/types.d.ts +1 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -3,16 +3,16 @@ import { IonAvatar } from '@ionic/angular/standalone';
|
|
|
3
3
|
import { PresetService } from '../../../services/presets';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* vds-avatar
|
|
7
7
|
*
|
|
8
8
|
* Displays a user or profile image, optionally with a box style and different sizes.
|
|
9
9
|
* Supports presets for reusable configurations.
|
|
10
10
|
*
|
|
11
11
|
* @example With preset (recommended):
|
|
12
|
-
* <
|
|
12
|
+
* <vds-avatar preset="profile" [props]="{ image: 'url' }" (onClick)="handler()"></vds-avatar>
|
|
13
13
|
*
|
|
14
14
|
* @example Static (backwards compatible):
|
|
15
|
-
* <
|
|
15
|
+
* <vds-avatar [props]="{ image: 'url', size: 'medium', box: true }" (onClick)="handler()"></vds-avatar>
|
|
16
16
|
*
|
|
17
17
|
* @input preset: string - Name of preset to apply
|
|
18
18
|
* @input props: AvatarMetadata - Configuration for the avatar (image, size, box, default image)
|
|
@@ -47,9 +47,7 @@ export class AvatarComponent {
|
|
|
47
47
|
* Explicit props take precedence over preset values.
|
|
48
48
|
*/
|
|
49
49
|
resolveProps() {
|
|
50
|
-
const presetProps = this.preset
|
|
51
|
-
? this.presets.get('avatar', this.preset)
|
|
52
|
-
: {};
|
|
50
|
+
const presetProps = this.preset ? this.presets.get('avatar', this.preset) : {};
|
|
53
51
|
this.resolvedProps = {
|
|
54
52
|
...presetProps,
|
|
55
53
|
...this.props,
|
|
@@ -59,7 +57,7 @@ export class AvatarComponent {
|
|
|
59
57
|
this.onClick.emit();
|
|
60
58
|
}
|
|
61
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
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: `
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AvatarComponent, isStandalone: true, selector: "val-avatar, vds-avatar", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
|
|
63
61
|
<ion-avatar
|
|
64
62
|
aria-hidden="true"
|
|
65
63
|
[class]="resolvedProps.size"
|
|
@@ -73,7 +71,7 @@ export class AvatarComponent {
|
|
|
73
71
|
}
|
|
74
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
75
73
|
type: Component,
|
|
76
|
-
args: [{ selector: 'val-avatar', standalone: true, imports: [IonAvatar], template: `
|
|
74
|
+
args: [{ selector: 'val-avatar, vds-avatar', standalone: true, imports: [IonAvatar], template: `
|
|
77
75
|
<ion-avatar
|
|
78
76
|
aria-hidden="true"
|
|
79
77
|
[class]="resolvedProps.size"
|
|
@@ -91,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
91
89
|
}], onClick: [{
|
|
92
90
|
type: Output
|
|
93
91
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBb0IxRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQWpDNUI7UUFrQ1UsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQVd4Qzs7V0FFRztRQUNNLFVBQUssR0FBNEIsRUFBRSxDQUFDO1FBRTdDOztXQUVHO1FBQ0gsa0JBQWEsR0FBbUIsRUFBb0IsQ0FBQztRQUVyRDs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBNEI5QjtJQTFCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBNkIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTVHLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsR0FBRyxXQUFXO1lBQ2QsR0FBRyxJQUFJLENBQUMsS0FBSztTQUNJLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7K0dBckRVLGVBQWU7bUdBQWYsZUFBZSxzTEE3QmhCOzs7Ozs7Ozs7O0dBVVQsdzRHQVhTLFNBQVM7OzRGQThCUixlQUFlO2tCQWpDM0IsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxXQUNQLENBQUMsU0FBUyxDQUFDLFlBQ1Y7Ozs7Ozs7Ozs7R0FVVDs4QkE2QlEsTUFBTTtzQkFBZCxLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFXTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQXZhdGFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBBdmF0YXJNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXZhdGFyLCB2ZHMtYXZhdGFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvbkF2YXRhcl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1hdmF0YXJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBbY2xhc3NdPVwicmVzb2x2ZWRQcm9wcy5zaXplXCJcbiAgICAgIFtjbGFzcy5ib3hdPVwicmVzb2x2ZWRQcm9wcy5ib3hcIlxuICAgICAgW2NsYXNzLmdyYXlzY2FsZV09XCJyZXNvbHZlZFByb3BzLmdyYXlzY2FsZVwiXG4gICAgICAoY2xpY2spPVwib25DbGlja0hhbmRsZXIoKVwiXG4gICAgPlxuICAgICAgPGltZyBhbHQ9XCJwcm9maWxlIGltYWdlXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlIHx8IHJlc29sdmVkUHJvcHMuZGVmYXVsdFwiIC8+XG4gICAgPC9pb24tYXZhdGFyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9hdmF0YXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZkcy1hdmF0YXJcbiAqXG4gKiBEaXNwbGF5cyBhIHVzZXIgb3IgcHJvZmlsZSBpbWFnZSwgb3B0aW9uYWxseSB3aXRoIGEgYm94IHN0eWxlIGFuZCBkaWZmZXJlbnQgc2l6ZXMuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldCAocmVjb21tZW5kZWQpOlxuICogPHZkcy1hdmF0YXIgcHJlc2V0PVwicHJvZmlsZVwiIFtwcm9wc109XCJ7IGltYWdlOiAndXJsJyB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigpXCI+PC92ZHMtYXZhdGFyPlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYyAoYmFja3dhcmRzIGNvbXBhdGlibGUpOlxuICogPHZkcy1hdmF0YXIgW3Byb3BzXT1cInsgaW1hZ2U6ICd1cmwnLCBzaXplOiAnbWVkaXVtJywgYm94OiB0cnVlIH1cIiAob25DbGljayk9XCJoYW5kbGVyKClcIj48L3Zkcy1hdmF0YXI+XG4gKlxuICogQGlucHV0IHByZXNldDogc3RyaW5nIC0gTmFtZSBvZiBwcmVzZXQgdG8gYXBwbHlcbiAqIEBpbnB1dCBwcm9wczogQXZhdGFyTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgYXZhdGFyIChpbWFnZSwgc2l6ZSwgYm94LCBkZWZhdWx0IGltYWdlKVxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdHMgd2hlbiB0aGUgYXZhdGFyIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgYXZhdGFyIGNvbmZpZ3VyYXRpb25zXG4gICAqIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgYXQgYXBwIGxldmVsIHZpYSBwcm92aWRlVmFsdGVjaFByZXNldHMoKS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPHZkcy1hdmF0YXIgcHJlc2V0PVwicHJvZmlsZVwiIFtwcm9wc109XCJ7IGltYWdlOiAndXJsJyB9XCI+PC92ZHMtYXZhdGFyPlxuICAgKi9cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBdmF0YXIgY29uZmlndXJhdGlvbiBvYmplY3QuIFZhbHVlcyBoZXJlIG92ZXJyaWRlIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxBdmF0YXJNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IEF2YXRhck1ldGFkYXRhID0ge30gYXMgQXZhdGFyTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYXZhdGFyIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSBwcmVzZXQgY29uZmlndXJhdGlvbiB3aXRoIGV4cGxpY2l0IHByb3BzLlxuICAgKiBFeHBsaWNpdCBwcm9wcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciBwcmVzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlUHJvcHMoKTogdm9pZCB7XG4gICAgY29uc3QgcHJlc2V0UHJvcHMgPSB0aGlzLnByZXNldCA/ICh0aGlzLnByZXNldHMuZ2V0KCdhdmF0YXInLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxBdmF0YXJNZXRhZGF0YT4pIDoge307XG5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICAuLi5wcmVzZXRQcm9wcyxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgfSBhcyBBdmF0YXJNZXRhZGF0YTtcbiAgfVxuXG4gIG9uQ2xpY2tIYW5kbGVyKCkge1xuICAgIHRoaXMub25DbGljay5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,16 +5,16 @@ import { PresetService } from '../../../services/presets';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* vds-progress-bar
|
|
9
9
|
*
|
|
10
10
|
* A progress bar for indicating completion or loading state.
|
|
11
11
|
* Supports presets for reusable configurations.
|
|
12
12
|
*
|
|
13
13
|
* @example With preset:
|
|
14
|
-
* <
|
|
14
|
+
* <vds-progress-bar preset="default" [props]="{ progress: 0.5 }"></vds-progress-bar>
|
|
15
15
|
*
|
|
16
16
|
* @example Static:
|
|
17
|
-
* <
|
|
17
|
+
* <vds-progress-bar [props]="{ progress: 0.5, color: 'success', size: 'small' }"></vds-progress-bar>
|
|
18
18
|
*
|
|
19
19
|
* @input preset: string - Name of preset to apply
|
|
20
20
|
* @input props: ProgressBarMetadata - Configuration for the progress bar (progress, color, size, etc.)
|
|
@@ -38,6 +38,9 @@ export class ProgressBarComponent {
|
|
|
38
38
|
*/
|
|
39
39
|
this.resolvedProps = {};
|
|
40
40
|
}
|
|
41
|
+
get colorClass() {
|
|
42
|
+
return `color-${this.resolvedProps.color || 'primary'}`;
|
|
43
|
+
}
|
|
41
44
|
ngOnInit() {
|
|
42
45
|
this.resolveProps();
|
|
43
46
|
}
|
|
@@ -61,34 +64,32 @@ export class ProgressBarComponent {
|
|
|
61
64
|
};
|
|
62
65
|
}
|
|
63
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
-
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: `
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressBarComponent, isStandalone: true, selector: "val-progress-bar, vds-progress-bar", inputs: { preset: "preset", props: "props" }, usesOnChanges: true, ngImport: i0, template: `
|
|
65
68
|
<ion-progress-bar
|
|
66
|
-
[ngClass]="[resolvedProps.size]"
|
|
69
|
+
[ngClass]="[resolvedProps.size, colorClass]"
|
|
67
70
|
[class.rounded]="resolvedProps.rounded"
|
|
68
71
|
[value]="resolvedProps.progress"
|
|
69
|
-
[color]="resolvedProps.color"
|
|
70
72
|
[buffer]="resolvedProps.buffer"
|
|
71
73
|
[type]="resolvedProps.type"
|
|
72
74
|
[attr.aria-label]="resolvedProps.label || 'Progreso'"
|
|
73
75
|
></ion-progress-bar>
|
|
74
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}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"] }] }); }
|
|
76
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-progress-bar{--background: var(--vds-progress-bar-track-bg, var(--vds-bg-muted, rgba(148, 163, 184, .22)));--buffer-background: var( --vds-progress-bar-buffer-bg, var(--vds-bg-subtle, rgba(148, 163, 184, .32)) );--progress-background: var( --vds-progress-bar-color, var(--vds-primary, var(--ion-color-primary, #2563eb)) )}ion-progress-bar.rounded{border-radius:.5rem}.color-primary{--vds-progress-bar-color: var( --vds-primary, var(--vds-action-primary, var(--ion-color-primary, #2563eb)) )}.color-secondary{--vds-progress-bar-color: var(--vds-secondary, var(--ion-color-secondary, #64748b))}.color-tertiary{--vds-progress-bar-color: var(--vds-tertiary, var(--ion-color-tertiary, #7c3aed))}.color-success{--vds-progress-bar-color: var(--vds-success, var(--ion-color-success, #16a34a))}.color-warning{--vds-progress-bar-color: var(--vds-warning, var(--ion-color-warning, #d97706))}.color-danger{--vds-progress-bar-color: var(--vds-danger, var(--ion-color-danger, #dc2626))}.color-info{--vds-progress-bar-color: var(--vds-info, #0284c7)}.color-neutral{--vds-progress-bar-color: var(--vds-neutral, #64748b)}.color-light{--vds-progress-bar-color: var(--vds-light, var(--ion-color-light, #f8fafc))}.color-dark{--vds-progress-bar-color: var(--vds-dark, var(--ion-color-dark, #0f172a))}.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"] }] }); }
|
|
75
77
|
}
|
|
76
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
77
79
|
type: Component,
|
|
78
|
-
args: [{ selector: 'val-progress-bar', standalone: true, imports: [CommonModule, IonProgressBar], template: `
|
|
80
|
+
args: [{ selector: 'val-progress-bar, vds-progress-bar', standalone: true, imports: [CommonModule, IonProgressBar], template: `
|
|
79
81
|
<ion-progress-bar
|
|
80
|
-
[ngClass]="[resolvedProps.size]"
|
|
82
|
+
[ngClass]="[resolvedProps.size, colorClass]"
|
|
81
83
|
[class.rounded]="resolvedProps.rounded"
|
|
82
84
|
[value]="resolvedProps.progress"
|
|
83
|
-
[color]="resolvedProps.color"
|
|
84
85
|
[buffer]="resolvedProps.buffer"
|
|
85
86
|
[type]="resolvedProps.type"
|
|
86
87
|
[attr.aria-label]="resolvedProps.label || 'Progreso'"
|
|
87
88
|
></ion-progress-bar>
|
|
88
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-progress-bar.rounded{border-radius:.5rem}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"] }]
|
|
89
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #737478;--ion-color-medium-rgb: 115,116,120;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255,255,255;--ion-color-medium-shade: #65666a;--ion-color-medium-tint: #818286;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-progress-bar{--background: var(--vds-progress-bar-track-bg, var(--vds-bg-muted, rgba(148, 163, 184, .22)));--buffer-background: var( --vds-progress-bar-buffer-bg, var(--vds-bg-subtle, rgba(148, 163, 184, .32)) );--progress-background: var( --vds-progress-bar-color, var(--vds-primary, var(--ion-color-primary, #2563eb)) )}ion-progress-bar.rounded{border-radius:.5rem}.color-primary{--vds-progress-bar-color: var( --vds-primary, var(--vds-action-primary, var(--ion-color-primary, #2563eb)) )}.color-secondary{--vds-progress-bar-color: var(--vds-secondary, var(--ion-color-secondary, #64748b))}.color-tertiary{--vds-progress-bar-color: var(--vds-tertiary, var(--ion-color-tertiary, #7c3aed))}.color-success{--vds-progress-bar-color: var(--vds-success, var(--ion-color-success, #16a34a))}.color-warning{--vds-progress-bar-color: var(--vds-warning, var(--ion-color-warning, #d97706))}.color-danger{--vds-progress-bar-color: var(--vds-danger, var(--ion-color-danger, #dc2626))}.color-info{--vds-progress-bar-color: var(--vds-info, #0284c7)}.color-neutral{--vds-progress-bar-color: var(--vds-neutral, #64748b)}.color-light{--vds-progress-bar-color: var(--vds-light, var(--ion-color-light, #f8fafc))}.color-dark{--vds-progress-bar-color: var(--vds-dark, var(--ion-color-dark, #0f172a))}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"] }]
|
|
89
90
|
}], propDecorators: { preset: [{
|
|
90
91
|
type: Input
|
|
91
92
|
}], props: [{
|
|
92
93
|
type: Input
|
|
93
94
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFtQjFEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQS9CakM7UUFnQ1UsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQVF4Qzs7Ozs7Ozs7O1dBU0c7UUFDTSxVQUFLLEdBQWlDLEVBQUUsQ0FBQztRQUVsRDs7V0FFRztRQUNILGtCQUFhLEdBQXdCLEVBQXlCLENBQUM7S0ErQmhFO0lBN0JDLElBQUksVUFBVTtRQUNaLE9BQU8sU0FBUyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDN0IsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFrQztZQUNoRixDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixJQUFJLEVBQUUsUUFBUTtZQUNkLEdBQUcsV0FBVztZQUNkLEdBQUcsSUFBSSxDQUFDLEtBQUs7U0FDUyxDQUFDO0lBQzNCLENBQUM7K0dBdERVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGlLQTNCckI7Ozs7Ozs7OztHQVNULGkvSUFWUyxZQUFZLDZIQUFFLGNBQWM7OzRGQTRCM0Isb0JBQW9CO2tCQS9CaEMsU0FBUzsrQkFDRSxvQ0FBb0MsY0FDbEMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxZQUM3Qjs7Ozs7Ozs7O0dBU1Q7OEJBeUJRLE1BQU07c0JBQWQsS0FBSztnQkFZRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uUHJvZ3Jlc3NCYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IFByb2dyZXNzQmFyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXByb2dyZXNzLWJhciwgdmRzLXByb2dyZXNzLWJhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblByb2dyZXNzQmFyXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLXByb2dyZXNzLWJhclxuICAgICAgW25nQ2xhc3NdPVwiW3Jlc29sdmVkUHJvcHMuc2l6ZSwgY29sb3JDbGFzc11cIlxuICAgICAgW2NsYXNzLnJvdW5kZWRdPVwicmVzb2x2ZWRQcm9wcy5yb3VuZGVkXCJcbiAgICAgIFt2YWx1ZV09XCJyZXNvbHZlZFByb3BzLnByb2dyZXNzXCJcbiAgICAgIFtidWZmZXJdPVwicmVzb2x2ZWRQcm9wcy5idWZmZXJcIlxuICAgICAgW3R5cGVdPVwicmVzb2x2ZWRQcm9wcy50eXBlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRQcm9wcy5sYWJlbCB8fCAnUHJvZ3Jlc28nXCJcbiAgICA+PC9pb24tcHJvZ3Jlc3MtYmFyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZkcy1wcm9ncmVzcy1iYXJcbiAqXG4gKiBBIHByb2dyZXNzIGJhciBmb3IgaW5kaWNhdGluZyBjb21wbGV0aW9uIG9yIGxvYWRpbmcgc3RhdGUuXG4gKiBTdXBwb3J0cyBwcmVzZXRzIGZvciByZXVzYWJsZSBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXNldDpcbiAqIDx2ZHMtcHJvZ3Jlc3MtYmFyIHByZXNldD1cImRlZmF1bHRcIiBbcHJvcHNdPVwieyBwcm9ncmVzczogMC41IH1cIj48L3Zkcy1wcm9ncmVzcy1iYXI+XG4gKlxuICogQGV4YW1wbGUgU3RhdGljOlxuICogPHZkcy1wcm9ncmVzcy1iYXIgW3Byb3BzXT1cInsgcHJvZ3Jlc3M6IDAuNSwgY29sb3I6ICdzdWNjZXNzJywgc2l6ZTogJ3NtYWxsJyB9XCI+PC92ZHMtcHJvZ3Jlc3MtYmFyPlxuICpcbiAqIEBpbnB1dCBwcmVzZXQ6IHN0cmluZyAtIE5hbWUgb2YgcHJlc2V0IHRvIGFwcGx5XG4gKiBAaW5wdXQgcHJvcHM6IFByb2dyZXNzQmFyTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgcHJvZ3Jlc3MgYmFyIChwcm9ncmVzcywgY29sb3IsIHNpemUsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgcHJvZ3Jlc3MgYmFyIGNvbmZpZ3VyYXRpb25zXG4gICAqIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgYXQgYXBwIGxldmVsIHZpYSBwcm92aWRlVmFsdGVjaFByZXNldHMoKS5cbiAgICovXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvZ3Jlc3MgYmFyIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKiBAdHlwZSB7UHJvZ3Jlc3NCYXJNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IHByb2dyZXNzIC0gVGhlIHByb2dyZXNzIHZhbHVlICgwIHRvIDEpLlxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSBwcm9ncmVzcyBiYXIgc2l6ZSAoJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnKS5cbiAgICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIHByb2dyZXNzIGJhciBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKS5cbiAgICogQHByb3BlcnR5IGJ1ZmZlciAtIFRoZSBidWZmZXIgdmFsdWUgZm9yIHRoZSBiYXIuXG4gICAqIEBwcm9wZXJ0eSB0eXBlIC0gVGhlIHR5cGUgb2YgcHJvZ3Jlc3MgYmFyICgnZGV0ZXJtaW5hdGUnIHwgJ2luZGV0ZXJtaW5hdGUnKS5cbiAgICogQHByb3BlcnR5IHJvdW5kZWQgLSBXaGV0aGVyIHRoZSBiYXIgaGFzIHJvdW5kZWQgY29ybmVycy5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPFByb2dyZXNzQmFyTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBQcm9ncmVzc0Jhck1ldGFkYXRhID0ge30gYXMgUHJvZ3Jlc3NCYXJNZXRhZGF0YTtcblxuICBnZXQgY29sb3JDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY29sb3ItJHt0aGlzLnJlc29sdmVkUHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknfWA7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSBwcmVzZXQgY29uZmlndXJhdGlvbiB3aXRoIGV4cGxpY2l0IHByb3BzLlxuICAgKiBFeHBsaWNpdCBwcm9wcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciBwcmVzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlUHJvcHMoKTogdm9pZCB7XG4gICAgY29uc3QgcHJlc2V0UHJvcHMgPSB0aGlzLnByZXNldFxuICAgICAgPyAodGhpcy5wcmVzZXRzLmdldCgncHJvZ3Jlc3NCYXInLCB0aGlzLnByZXNldCkgYXMgUGFydGlhbDxQcm9ncmVzc0Jhck1ldGFkYXRhPilcbiAgICAgIDoge307XG5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIFByb2dyZXNzQmFyTWV0YWRhdGE7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,19 +6,19 @@ import { addIcons } from 'ionicons';
|
|
|
6
6
|
import { chevronForwardOutline } from 'ionicons/icons';
|
|
7
7
|
import { I18nService } from '../../../services/i18n';
|
|
8
8
|
import { NavigationService } from '../../../services/navigation';
|
|
9
|
-
import {
|
|
9
|
+
import { isIonicColor } from '../../../shared/utils/ionic-color';
|
|
10
10
|
import { ACTION_CARD_DEFAULTS } from './types';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
addIcons({ chevronForwardOutline });
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* vds-action-card
|
|
15
15
|
*
|
|
16
16
|
* A clickable card component with icon, title, description, and optional badge.
|
|
17
17
|
* Supports multiple icon formats: Ionicons, SVG paths, and image URLs.
|
|
18
18
|
*
|
|
19
19
|
* @example Basic usage with Ionicon
|
|
20
20
|
* ```html
|
|
21
|
-
* <
|
|
21
|
+
* <vds-action-card
|
|
22
22
|
* [props]="{
|
|
23
23
|
* icon: { ionicon: 'settings-outline' },
|
|
24
24
|
* title: 'Settings',
|
|
@@ -30,7 +30,7 @@ addIcons({ chevronForwardOutline });
|
|
|
30
30
|
*
|
|
31
31
|
* @example With routerLink navigation
|
|
32
32
|
* ```html
|
|
33
|
-
* <
|
|
33
|
+
* <vds-action-card
|
|
34
34
|
* [props]="{
|
|
35
35
|
* icon: { ionicon: 'person-outline', color: 'primary' },
|
|
36
36
|
* title: 'Profile',
|
|
@@ -43,7 +43,7 @@ addIcons({ chevronForwardOutline });
|
|
|
43
43
|
*
|
|
44
44
|
* @example With custom SVG icon
|
|
45
45
|
* ```html
|
|
46
|
-
* <
|
|
46
|
+
* <vds-action-card
|
|
47
47
|
* [props]="{
|
|
48
48
|
* icon: { svgPath: 'M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5' },
|
|
49
49
|
* title: 'Custom Feature',
|
|
@@ -59,13 +59,60 @@ export class ActionCardComponent {
|
|
|
59
59
|
this.navigation = inject(NavigationService);
|
|
60
60
|
/** Component configuration */
|
|
61
61
|
this.props = input({});
|
|
62
|
+
this.title = input();
|
|
63
|
+
this.titleKey = input();
|
|
64
|
+
this.description = input();
|
|
65
|
+
this.descriptionKey = input();
|
|
66
|
+
this.i18nNamespace = input();
|
|
67
|
+
this.icon = input();
|
|
68
|
+
this.size = input();
|
|
69
|
+
this.variant = input();
|
|
70
|
+
this.bordered = input();
|
|
71
|
+
this.borderColor = input();
|
|
72
|
+
this.backgroundColor = input();
|
|
73
|
+
this.shadowed = input();
|
|
74
|
+
this.disabled = input();
|
|
75
|
+
this.routerLink = input();
|
|
76
|
+
this.queryParams = input();
|
|
77
|
+
this.href = input();
|
|
78
|
+
this.badge = input();
|
|
79
|
+
this.showChevron = input();
|
|
80
|
+
this.token = input();
|
|
62
81
|
/** Event emitted when card is clicked */
|
|
63
82
|
this.onClick = new EventEmitter();
|
|
64
83
|
/** Merged configuration with defaults */
|
|
65
|
-
this.config = computed(() =>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
84
|
+
this.config = computed(() => {
|
|
85
|
+
const directProps = {};
|
|
86
|
+
this.assignIfDefined(directProps, 'title', this.title());
|
|
87
|
+
this.assignIfDefined(directProps, 'titleKey', this.titleKey());
|
|
88
|
+
this.assignIfDefined(directProps, 'description', this.description());
|
|
89
|
+
this.assignIfDefined(directProps, 'descriptionKey', this.descriptionKey());
|
|
90
|
+
this.assignIfDefined(directProps, 'i18nNamespace', this.i18nNamespace());
|
|
91
|
+
this.assignIfDefined(directProps, 'icon', this.icon());
|
|
92
|
+
this.assignIfDefined(directProps, 'size', this.size());
|
|
93
|
+
this.assignIfDefined(directProps, 'variant', this.variant());
|
|
94
|
+
this.assignIfDefined(directProps, 'bordered', this.bordered());
|
|
95
|
+
this.assignIfDefined(directProps, 'borderColor', this.borderColor());
|
|
96
|
+
this.assignIfDefined(directProps, 'backgroundColor', this.backgroundColor());
|
|
97
|
+
this.assignIfDefined(directProps, 'shadowed', this.shadowed());
|
|
98
|
+
this.assignIfDefined(directProps, 'disabled', this.disabled());
|
|
99
|
+
this.assignIfDefined(directProps, 'routerLink', this.routerLink());
|
|
100
|
+
this.assignIfDefined(directProps, 'queryParams', this.queryParams());
|
|
101
|
+
this.assignIfDefined(directProps, 'href', this.href());
|
|
102
|
+
this.assignIfDefined(directProps, 'badge', this.badge());
|
|
103
|
+
this.assignIfDefined(directProps, 'showChevron', this.showChevron());
|
|
104
|
+
this.assignIfDefined(directProps, 'token', this.token());
|
|
105
|
+
return {
|
|
106
|
+
...ACTION_CARD_DEFAULTS,
|
|
107
|
+
...this.props(),
|
|
108
|
+
...directProps,
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
assignIfDefined(target, key, value) {
|
|
113
|
+
if (value !== undefined) {
|
|
114
|
+
target[key] = value;
|
|
115
|
+
}
|
|
69
116
|
}
|
|
70
117
|
/** Get title with i18n support */
|
|
71
118
|
getTitle() {
|
|
@@ -85,30 +132,37 @@ export class ActionCardComponent {
|
|
|
85
132
|
}
|
|
86
133
|
return cfg.description || '';
|
|
87
134
|
}
|
|
88
|
-
/** Resolve
|
|
89
|
-
|
|
90
|
-
|
|
135
|
+
/** Resolve a public role to VDS first, then keep Ionic as the compatibility fallback. */
|
|
136
|
+
resolveRoleColor(color, part) {
|
|
137
|
+
if (!color)
|
|
138
|
+
return null;
|
|
139
|
+
if (!isIonicColor(color))
|
|
140
|
+
return color;
|
|
141
|
+
const suffix = part && part !== 'base' ? `-${part}` : '';
|
|
142
|
+
const ionicSuffix = part === 'fg' ? '-contrast' : '';
|
|
143
|
+
return `var(--vds-${color}${suffix}, var(--ion-color-${color}${ionicSuffix}))`;
|
|
91
144
|
}
|
|
92
145
|
getBackgroundColor() {
|
|
93
|
-
return this.
|
|
146
|
+
return this.resolveRoleColor(this.config().backgroundColor, 'tint');
|
|
94
147
|
}
|
|
95
148
|
getBorderColor() {
|
|
96
|
-
return this.
|
|
149
|
+
return (this.resolveRoleColor(this.config().borderColor, 'border') ||
|
|
150
|
+
'var(--vds-border-subtle, var(--ion-color-light-shade, rgba(148, 163, 184, 0.24)))');
|
|
97
151
|
}
|
|
98
152
|
getIconColor() {
|
|
99
|
-
return this.
|
|
153
|
+
return this.resolveRoleColor(this.config().icon?.color, 'text') || 'var(--vds-primary-text, #1d4ed8)';
|
|
100
154
|
}
|
|
101
155
|
getIconBackgroundColor() {
|
|
102
156
|
const bg = this.config().icon?.backgroundColor;
|
|
103
157
|
if (!bg)
|
|
104
|
-
return 'rgba(var(--ion-color-primary-rgb), 0.1)';
|
|
105
|
-
return this.
|
|
158
|
+
return 'var(--vds-primary-tint, rgba(var(--ion-color-primary-rgb), 0.1))';
|
|
159
|
+
return this.resolveRoleColor(bg, 'tint');
|
|
106
160
|
}
|
|
107
161
|
getBadgeColor() {
|
|
108
|
-
return this.
|
|
162
|
+
return this.resolveRoleColor(this.config().badge?.color, 'fg') || 'var(--vds-primary-fg, #ffffff)';
|
|
109
163
|
}
|
|
110
164
|
getBadgeBackgroundColor() {
|
|
111
|
-
return this.
|
|
165
|
+
return this.resolveRoleColor(this.config().badge?.backgroundColor) || 'var(--vds-primary, #2563eb)';
|
|
112
166
|
}
|
|
113
167
|
/** Handle card click */
|
|
114
168
|
handleClick(event) {
|
|
@@ -129,18 +183,23 @@ export class ActionCardComponent {
|
|
|
129
183
|
}
|
|
130
184
|
}
|
|
131
185
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ActionCardComponent, isStandalone: true, selector: "val-action-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
186
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ActionCardComponent, isStandalone: true, selector: "val-action-card, vds-action-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleKey: { classPropertyName: "titleKey", publicName: "titleKey", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, descriptionKey: { classPropertyName: "descriptionKey", publicName: "descriptionKey", isSignal: true, isRequired: false, transformFunction: null }, i18nNamespace: { classPropertyName: "i18nNamespace", publicName: "i18nNamespace", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, borderColor: { classPropertyName: "borderColor", publicName: "borderColor", isSignal: true, isRequired: false, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, shadowed: { classPropertyName: "shadowed", publicName: "shadowed", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, showChevron: { classPropertyName: "showChevron", publicName: "showChevron", isSignal: true, isRequired: false, transformFunction: null }, token: { classPropertyName: "token", publicName: "token", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
133
187
|
<div
|
|
134
188
|
class="action-card"
|
|
135
189
|
[class.action-card--small]="config().size === 'small'"
|
|
136
190
|
[class.action-card--medium]="config().size === 'medium'"
|
|
137
191
|
[class.action-card--large]="config().size === 'large'"
|
|
192
|
+
[class.action-card--marker]="config().variant === 'marker'"
|
|
138
193
|
[class.action-card--bordered]="config().bordered"
|
|
139
194
|
[class.action-card--shadowed]="config().shadowed"
|
|
140
195
|
[class.action-card--disabled]="config().disabled"
|
|
141
196
|
[class.action-card--clickable]="!config().disabled"
|
|
142
197
|
[style.--card-bg]="getBackgroundColor()"
|
|
143
198
|
[style.--card-border-color]="getBorderColor()"
|
|
199
|
+
[style.--card-icon-color]="getIconColor()"
|
|
200
|
+
[style.--card-icon-bg]="getIconBackgroundColor()"
|
|
201
|
+
[style.--card-badge-color]="getBadgeColor()"
|
|
202
|
+
[style.--card-badge-bg]="getBadgeBackgroundColor()"
|
|
144
203
|
[routerLink]="config().disabled ? null : config().routerLink"
|
|
145
204
|
[queryParams]="config().queryParams ?? null"
|
|
146
205
|
(click)="handleClick($event)"
|
|
@@ -152,17 +211,13 @@ export class ActionCardComponent {
|
|
|
152
211
|
|
|
153
212
|
<!-- Badge (top-right corner) -->
|
|
154
213
|
@if (config().badge) {
|
|
155
|
-
<span
|
|
156
|
-
class="action-card__badge"
|
|
157
|
-
[style.color]="getBadgeColor()"
|
|
158
|
-
[style.background-color]="getBadgeBackgroundColor()"
|
|
159
|
-
>
|
|
214
|
+
<span class="action-card__badge">
|
|
160
215
|
{{ config().badge!.text }}
|
|
161
216
|
</span>
|
|
162
217
|
}
|
|
163
218
|
|
|
164
219
|
<!-- Icon Container -->
|
|
165
|
-
<div class="action-card__icon"
|
|
220
|
+
<div class="action-card__icon">
|
|
166
221
|
@if (config().icon?.ionicon) {
|
|
167
222
|
<ion-icon [name]="config().icon!.ionicon!" aria-hidden="true"></ion-icon>
|
|
168
223
|
} @else if (config().icon?.svgPath) {
|
|
@@ -194,22 +249,27 @@ export class ActionCardComponent {
|
|
|
194
249
|
<ion-icon name="chevron-forward-outline" class="action-card__chevron" aria-hidden="true"></ion-icon>
|
|
195
250
|
}
|
|
196
251
|
</div>
|
|
197
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column}.action-card{position:relative;display:flex;align-items:center;flex:1;gap:1rem;padding:1rem;background:var(--card-bg, var(--ion-card-background, var(--ion-background-color)));border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--ion-color-primary)}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:1.125rem;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:1.5rem;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:1.75rem;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--
|
|
252
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column}.action-card{position:relative;display:flex;align-items:center;flex:1;gap:1rem;padding:1rem;background:var(--card-bg, var(--vds-bg-surface, var(--ion-card-background, var(--ion-background-color))));border-radius:var(--vds-action-card-radius, var(--vds-radius-surface, 12px));cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--vds-primary, var(--ion-color-primary, #2563eb))}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:1.125rem;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:1.5rem;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:1.75rem;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--marker{align-items:flex-start;border:1px solid var(--card-border-color);box-shadow:none}.action-card--marker .action-card__icon{width:12px;height:12px;margin-top:.35rem;border-radius:var(--vds-radius-pill, 9999px);background-color:var(--card-icon-color, var(--vds-primary, #2563eb))}.action-card--marker .action-card__icon ion-icon,.action-card--marker .action-card__icon svg,.action-card--marker .action-card__icon img{display:none}.action-card--bordered{border:1px solid var(--card-border-color)}.action-card--shadowed{box-shadow:var(--vds-action-card-shadow, var(--vds-shadow-sm, 0 2px 8px rgba(15, 23, 42, .08)))}.action-card--clickable:hover{transform:translateY(-2px);box-shadow:var(--vds-action-card-hover-shadow, var(--vds-shadow-md, 0 4px 16px rgba(15, 23, 42, .12)))}.action-card--clickable:focus-visible{outline:var(--vds-focus-ring-width, 2px) solid var(--vds-focus-ring-color, var(--vds-primary, #2563eb));outline-offset:2px}.action-card--clickable:active{transform:translateY(0)}.action-card--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.action-card__badge{position:absolute;top:8px;right:8px;padding:2px 8px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;z-index:1;background-color:var(--card-badge-bg, var(--vds-primary, #2563eb));color:var(--card-badge-color, var(--vds-primary-fg, #ffffff))}.action-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--card-icon-bg, var(--vds-primary-tint, rgba(var(--ion-color-primary-rgb), .1)));color:var(--card-icon-color, var(--vds-primary-text, #1d4ed8))}.action-card__icon ion-icon{font-size:inherit}.action-card__icon svg{display:block}.action-card__icon-image{width:100%;height:100%;object-fit:cover;border-radius:8px}.action-card__content{flex:1;min-width:0}.action-card__title{margin:0 0 .25rem;font-weight:600;color:var(--vds-fg-base, var(--ion-text-color, #0f172a));line-height:1.3}.action-card__description{margin:0;color:var(--vds-fg-subtle, var(--ion-color-dark, #334155));line-height:1.4}.action-card__chevron{flex-shrink:0;font-size:1.25rem;color:var(--vds-fg-muted, var(--ion-color-dark, #64748b));transition:transform .2s ease}.action-card--clickable:hover .action-card__chevron{transform:translate(4px)}:host-context(.dark) .action-card--shadowed,:host-context(.ion-palette-dark) .action-card--shadowed,:host-context(html.ion-palette-dark) .action-card--shadowed,:host-context(body.dark) .action-card--shadowed,:host-context([data-theme=dark]) .action-card--shadowed{box-shadow:var(--vds-action-card-shadow, var(--vds-shadow-sm, 0 2px 8px rgba(0, 0, 0, .3)))}:host-context(.dark) .action-card--clickable:hover,:host-context(.ion-palette-dark) .action-card--clickable:hover,:host-context(html.ion-palette-dark) .action-card--clickable:hover,:host-context(body.dark) .action-card--clickable:hover,:host-context([data-theme=dark]) .action-card--clickable:hover{box-shadow:var(--vds-action-card-hover-shadow, var(--vds-shadow-md, 0 4px 16px rgba(0, 0, 0, .4)))}\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"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
|
|
198
253
|
}
|
|
199
254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionCardComponent, decorators: [{
|
|
200
255
|
type: Component,
|
|
201
|
-
args: [{ selector: 'val-action-card', standalone: true, imports: [CommonModule, RouterLink, IonIcon, IonRippleEffect], template: `
|
|
256
|
+
args: [{ selector: 'val-action-card, vds-action-card', standalone: true, imports: [CommonModule, RouterLink, IonIcon, IonRippleEffect], template: `
|
|
202
257
|
<div
|
|
203
258
|
class="action-card"
|
|
204
259
|
[class.action-card--small]="config().size === 'small'"
|
|
205
260
|
[class.action-card--medium]="config().size === 'medium'"
|
|
206
261
|
[class.action-card--large]="config().size === 'large'"
|
|
262
|
+
[class.action-card--marker]="config().variant === 'marker'"
|
|
207
263
|
[class.action-card--bordered]="config().bordered"
|
|
208
264
|
[class.action-card--shadowed]="config().shadowed"
|
|
209
265
|
[class.action-card--disabled]="config().disabled"
|
|
210
266
|
[class.action-card--clickable]="!config().disabled"
|
|
211
267
|
[style.--card-bg]="getBackgroundColor()"
|
|
212
268
|
[style.--card-border-color]="getBorderColor()"
|
|
269
|
+
[style.--card-icon-color]="getIconColor()"
|
|
270
|
+
[style.--card-icon-bg]="getIconBackgroundColor()"
|
|
271
|
+
[style.--card-badge-color]="getBadgeColor()"
|
|
272
|
+
[style.--card-badge-bg]="getBadgeBackgroundColor()"
|
|
213
273
|
[routerLink]="config().disabled ? null : config().routerLink"
|
|
214
274
|
[queryParams]="config().queryParams ?? null"
|
|
215
275
|
(click)="handleClick($event)"
|
|
@@ -221,17 +281,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
221
281
|
|
|
222
282
|
<!-- Badge (top-right corner) -->
|
|
223
283
|
@if (config().badge) {
|
|
224
|
-
<span
|
|
225
|
-
class="action-card__badge"
|
|
226
|
-
[style.color]="getBadgeColor()"
|
|
227
|
-
[style.background-color]="getBadgeBackgroundColor()"
|
|
228
|
-
>
|
|
284
|
+
<span class="action-card__badge">
|
|
229
285
|
{{ config().badge!.text }}
|
|
230
286
|
</span>
|
|
231
287
|
}
|
|
232
288
|
|
|
233
289
|
<!-- Icon Container -->
|
|
234
|
-
<div class="action-card__icon"
|
|
290
|
+
<div class="action-card__icon">
|
|
235
291
|
@if (config().icon?.ionicon) {
|
|
236
292
|
<ion-icon [name]="config().icon!.ionicon!" aria-hidden="true"></ion-icon>
|
|
237
293
|
} @else if (config().icon?.svgPath) {
|
|
@@ -263,8 +319,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
263
319
|
<ion-icon name="chevron-forward-outline" class="action-card__chevron" aria-hidden="true"></ion-icon>
|
|
264
320
|
}
|
|
265
321
|
</div>
|
|
266
|
-
`, styles: [":host{display:flex;flex-direction:column}.action-card{position:relative;display:flex;align-items:center;flex:1;gap:1rem;padding:1rem;background:var(--card-bg, var(--ion-card-background, var(--ion-background-color)));border-radius:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--ion-color-primary)}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:1.125rem;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:1.5rem;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:1.75rem;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--
|
|
322
|
+
`, styles: [":host{display:flex;flex-direction:column}.action-card{position:relative;display:flex;align-items:center;flex:1;gap:1rem;padding:1rem;background:var(--card-bg, var(--vds-bg-surface, var(--ion-card-background, var(--ion-background-color))));border-radius:var(--vds-action-card-radius, var(--vds-radius-surface, 12px));cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;text-decoration:none;overflow:hidden;--ripple-color: var(--vds-primary, var(--ion-color-primary, #2563eb))}.action-card--small{padding:.75rem;gap:.75rem}.action-card--small .action-card__icon{width:36px;height:36px;font-size:1.125rem;border-radius:8px}.action-card--small .action-card__icon svg{width:18px;height:18px}.action-card--small .action-card__title{font-size:.9rem}.action-card--small .action-card__description{font-size:.8rem}.action-card--medium{padding:1rem;gap:1rem}.action-card--medium .action-card__icon{width:48px;height:48px;font-size:1.5rem;border-radius:10px}.action-card--medium .action-card__icon svg{width:24px;height:24px}.action-card--medium .action-card__title{font-size:1rem}.action-card--medium .action-card__description{font-size:.875rem}.action-card--large{padding:1.25rem;gap:1.25rem}.action-card--large .action-card__icon{width:56px;height:56px;font-size:1.75rem;border-radius:12px}.action-card--large .action-card__icon svg{width:28px;height:28px}.action-card--large .action-card__title{font-size:1.1rem}.action-card--large .action-card__description{font-size:.9rem}.action-card--marker{align-items:flex-start;border:1px solid var(--card-border-color);box-shadow:none}.action-card--marker .action-card__icon{width:12px;height:12px;margin-top:.35rem;border-radius:var(--vds-radius-pill, 9999px);background-color:var(--card-icon-color, var(--vds-primary, #2563eb))}.action-card--marker .action-card__icon ion-icon,.action-card--marker .action-card__icon svg,.action-card--marker .action-card__icon img{display:none}.action-card--bordered{border:1px solid var(--card-border-color)}.action-card--shadowed{box-shadow:var(--vds-action-card-shadow, var(--vds-shadow-sm, 0 2px 8px rgba(15, 23, 42, .08)))}.action-card--clickable:hover{transform:translateY(-2px);box-shadow:var(--vds-action-card-hover-shadow, var(--vds-shadow-md, 0 4px 16px rgba(15, 23, 42, .12)))}.action-card--clickable:focus-visible{outline:var(--vds-focus-ring-width, 2px) solid var(--vds-focus-ring-color, var(--vds-primary, #2563eb));outline-offset:2px}.action-card--clickable:active{transform:translateY(0)}.action-card--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.action-card__badge{position:absolute;top:8px;right:8px;padding:2px 8px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;z-index:1;background-color:var(--card-badge-bg, var(--vds-primary, #2563eb));color:var(--card-badge-color, var(--vds-primary-fg, #ffffff))}.action-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--card-icon-bg, var(--vds-primary-tint, rgba(var(--ion-color-primary-rgb), .1)));color:var(--card-icon-color, var(--vds-primary-text, #1d4ed8))}.action-card__icon ion-icon{font-size:inherit}.action-card__icon svg{display:block}.action-card__icon-image{width:100%;height:100%;object-fit:cover;border-radius:8px}.action-card__content{flex:1;min-width:0}.action-card__title{margin:0 0 .25rem;font-weight:600;color:var(--vds-fg-base, var(--ion-text-color, #0f172a));line-height:1.3}.action-card__description{margin:0;color:var(--vds-fg-subtle, var(--ion-color-dark, #334155));line-height:1.4}.action-card__chevron{flex-shrink:0;font-size:1.25rem;color:var(--vds-fg-muted, var(--ion-color-dark, #64748b));transition:transform .2s ease}.action-card--clickable:hover .action-card__chevron{transform:translate(4px)}:host-context(.dark) .action-card--shadowed,:host-context(.ion-palette-dark) .action-card--shadowed,:host-context(html.ion-palette-dark) .action-card--shadowed,:host-context(body.dark) .action-card--shadowed,:host-context([data-theme=dark]) .action-card--shadowed{box-shadow:var(--vds-action-card-shadow, var(--vds-shadow-sm, 0 2px 8px rgba(0, 0, 0, .3)))}:host-context(.dark) .action-card--clickable:hover,:host-context(.ion-palette-dark) .action-card--clickable:hover,:host-context(html.ion-palette-dark) .action-card--clickable:hover,:host-context(body.dark) .action-card--clickable:hover,:host-context([data-theme=dark]) .action-card--clickable:hover{box-shadow:var(--vds-action-card-hover-shadow, var(--vds-shadow-md, 0 4px 16px rgba(0, 0, 0, .4)))}\n"] }]
|
|
267
323
|
}], propDecorators: { onClick: [{
|
|
268
324
|
type: Output
|
|
269
325
|
}] } });
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQTRDLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV6RixRQUFRLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7QUFFcEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDRztBQXlFSCxNQUFNLE9BQU8sbUJBQW1CO0lBeEVoQztRQXlFVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUvQyw4QkFB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RSxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFFRCxtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLFNBQVMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7U0FDMUMsQ0FBQyxDQUFDO1FBRUgsc0JBQXNCO1FBQ3RCLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDOytHQXZGVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixnUEFwRXBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlFVCxxMEdBbEVTLFlBQVksK0JBQUUsVUFBVSxvT0FBRSxPQUFPLDJKQUFFLGVBQWU7OzRGQXFFakQsbUJBQW1CO2tCQXhFL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsWUFDbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUVUOzhCQVdTLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25Gb3J3YXJkT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgcmVzb2x2ZUlvbmljQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvaW9uaWMtY29sb3InO1xuaW1wb3J0IHsgQWN0aW9uQ2FyZE1ldGFkYXRhLCBBY3Rpb25DYXJkQ2xpY2tFdmVudCwgQUNUSU9OX0NBUkRfREVGQVVMVFMgfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyBjaGV2cm9uRm9yd2FyZE91dGxpbmUgfSk7XG5cbi8qKlxuICogdmFsLWFjdGlvbi1jYXJkXG4gKlxuICogQSBjbGlja2FibGUgY2FyZCBjb21wb25lbnQgd2l0aCBpY29uLCB0aXRsZSwgZGVzY3JpcHRpb24sIGFuZCBvcHRpb25hbCBiYWRnZS5cbiAqIFN1cHBvcnRzIG11bHRpcGxlIGljb24gZm9ybWF0czogSW9uaWNvbnMsIFNWRyBwYXRocywgYW5kIGltYWdlIFVSTHMuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2Ugd2l0aCBJb25pY29uXG4gKiBgYGBodG1sXG4gKiA8dmFsLWFjdGlvbi1jYXJkXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaWNvbjogeyBpb25pY29uOiAnc2V0dGluZ3Mtb3V0bGluZScgfSxcbiAqICAgICB0aXRsZTogJ1NldHRpbmdzJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ01hbmFnZSB5b3VyIHByZWZlcmVuY2VzJ1xuICogICB9XCJcbiAqICAgKG9uQ2xpY2spPVwib25DYXJkQ2xpY2soJGV2ZW50KVwiXG4gKiAvPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgV2l0aCByb3V0ZXJMaW5rIG5hdmlnYXRpb25cbiAqIGBgYGh0bWxcbiAqIDx2YWwtYWN0aW9uLWNhcmRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBpY29uOiB7IGlvbmljb246ICdwZXJzb24tb3V0bGluZScsIGNvbG9yOiAncHJpbWFyeScgfSxcbiAqICAgICB0aXRsZTogJ1Byb2ZpbGUnLFxuICogICAgIGRlc2NyaXB0aW9uOiAnVmlldyBhbmQgZWRpdCB5b3VyIHByb2ZpbGUnLFxuICogICAgIHJvdXRlckxpbms6ICcvc2V0dGluZ3MvcHJvZmlsZScsXG4gKiAgICAgc2hvd0NoZXZyb246IHRydWVcbiAqICAgfVwiXG4gKiAvPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgV2l0aCBjdXN0b20gU1ZHIGljb25cbiAqIGBgYGh0bWxcbiAqIDx2YWwtYWN0aW9uLWNhcmRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBpY29uOiB7IHN2Z1BhdGg6ICdNMTIgMkwyIDdsMTAgNSAxMC01LTEwLTV6TTIgMTdsMTAgNSAxMC01TTIgMTJsMTAgNSAxMC01JyB9LFxuICogICAgIHRpdGxlOiAnQ3VzdG9tIEZlYXR1cmUnLFxuICogICAgIGRlc2NyaXB0aW9uOiAnQSBmZWF0dXJlIHdpdGggY3VzdG9tIFNWRyBpY29uJyxcbiAqICAgICBiYWRnZTogeyB0ZXh0OiAnTkVXJywgY29sb3I6ICdsaWdodCcsIGJhY2tncm91bmRDb2xvcjogJ3ByaW1hcnknIH1cbiAqICAgfVwiXG4gKiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hY3Rpb24tY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlckxpbmssIElvbkljb24sIElvblJpcHBsZUVmZmVjdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJhY3Rpb24tY2FyZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLXNtYWxsXT1cImNvbmZpZygpLnNpemUgPT09ICdzbWFsbCdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1tZWRpdW1dPVwiY29uZmlnKCkuc2l6ZSA9PT0gJ21lZGl1bSdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1sYXJnZV09XCJjb25maWcoKS5zaXplID09PSAnbGFyZ2UnXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tYm9yZGVyZWRdPVwiY29uZmlnKCkuYm9yZGVyZWRcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1zaGFkb3dlZF09XCJjb25maWcoKS5zaGFkb3dlZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLWRpc2FibGVkXT1cImNvbmZpZygpLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tY2xpY2thYmxlXT1cIiFjb25maWcoKS5kaXNhYmxlZFwiXG4gICAgICBbc3R5bGUuLS1jYXJkLWJnXT1cImdldEJhY2tncm91bmRDb2xvcigpXCJcbiAgICAgIFtzdHlsZS4tLWNhcmQtYm9yZGVyLWNvbG9yXT1cImdldEJvcmRlckNvbG9yKClcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiY29uZmlnKCkuZGlzYWJsZWQgPyBudWxsIDogY29uZmlnKCkucm91dGVyTGlua1wiXG4gICAgICBbcXVlcnlQYXJhbXNdPVwiY29uZmlnKCkucXVlcnlQYXJhbXMgPz8gbnVsbFwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCJjb25maWcoKS5kaXNhYmxlZCA/IC0xIDogMFwiXG4gICAgICBbYXR0ci5yb2xlXT1cIididXR0b24nXCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiY29uZmlnKCkuZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuXG4gICAgICA8IS0tIEJhZGdlICh0b3AtcmlnaHQgY29ybmVyKSAtLT5cbiAgICAgIEBpZiAoY29uZmlnKCkuYmFkZ2UpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImFjdGlvbi1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldEJhZGdlQ29sb3IoKVwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VCYWNrZ3JvdW5kQ29sb3IoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjb25maWcoKS5iYWRnZSEudGV4dCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gSWNvbiBDb250YWluZXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWNhcmRfX2ljb25cIiBbc3R5bGUuY29sb3JdPVwiZ2V0SWNvbkNvbG9yKClcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRJY29uQmFja2dyb3VuZENvbG9yKClcIj5cbiAgICAgICAgQGlmIChjb25maWcoKS5pY29uPy5pb25pY29uKSB7XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImNvbmZpZygpLmljb24hLmlvbmljb24hXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoY29uZmlnKCkuaWNvbj8uc3ZnUGF0aCkge1xuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImNvbmZpZygpLmljb24hLnN2Z1BhdGhcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICB9IEBlbHNlIGlmIChjb25maWcoKS5pY29uPy5pbWFnZVVybCkge1xuICAgICAgICAgIDxpbWcgW3NyY109XCJjb25maWcoKS5pY29uIS5pbWFnZVVybFwiIFthbHRdPVwiZ2V0VGl0bGUoKVwiIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2ljb24taW1hZ2VcIiAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImFjdGlvbi1jYXJkX190aXRsZVwiPnt7IGdldFRpdGxlKCkgfX08L2gzPlxuICAgICAgICBAaWYgKGdldERlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgICA8cCBjbGFzcz1cImFjdGlvbi1jYXJkX19kZXNjcmlwdGlvblwiPnt7IGdldERlc2NyaXB0aW9uKCkgfX08L3A+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIENoZXZyb24gKG9wdGlvbmFsKSAtLT5cbiAgICAgIEBpZiAoY29uZmlnKCkuc2hvd0NoZXZyb24gJiYgIWNvbmZpZygpLmRpc2FibGVkKSB7XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkLW91dGxpbmVcIiBjbGFzcz1cImFjdGlvbi1jYXJkX19jaGV2cm9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYWN0aW9uLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQ2FyZENvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG5cbiAgLyoqIENvbXBvbmVudCBjb25maWd1cmF0aW9uICovXG4gIHJlYWRvbmx5IHByb3BzID0gaW5wdXQ8UGFydGlhbDxBY3Rpb25DYXJkTWV0YWRhdGE+Pih7fSk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBjYXJkIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbkNhcmRDbGlja0V2ZW50PigpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQUNUSU9OX0NBUkRfREVGQVVMVFMsXG4gICAgLi4udGhpcy5wcm9wcygpLFxuICB9KSk7XG5cbiAgLyoqIEdldCB0aXRsZSB3aXRoIGkxOG4gc3VwcG9ydCAqL1xuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgaWYgKGNmZy5pMThuTmFtZXNwYWNlICYmIGNmZy50aXRsZUtleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KGNmZy50aXRsZUtleSwgY2ZnLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gY2ZnLnRpdGxlIHx8ICcnO1xuICB9XG5cbiAgLyoqIEdldCBkZXNjcmlwdGlvbiB3aXRoIGkxOG4gc3VwcG9ydCAqL1xuICBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgaWYgKGNmZy5pMThuTmFtZXNwYWNlICYmIGNmZy5kZXNjcmlwdGlvbktleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KGNmZy5kZXNjcmlwdGlvbktleSwgY2ZnLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gY2ZnLmRlc2NyaXB0aW9uIHx8ICcnO1xuICB9XG5cbiAgLyoqIFJlc29sdmUgY29sb3IgdG8gQ1NTIHZhbHVlIChuYW1lZCBJb25pYyB0b2tlbiDihpIgQ1NTIHZhciwgZWxzZSBwYXNzdGhyb3VnaCkgKi9cbiAgcHJpdmF0ZSByZXNvbHZlQ29sb3IoY29sb3I/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZUlvbmljQ29sb3IoY29sb3IpID8/IG51bGw7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFja2dyb3VuZENvbG9yIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRCb3JkZXJDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5ib3JkZXJDb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUpJztcbiAgfVxuXG4gIGdldEljb25Db2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IodGhpcy5jb25maWcoKS5pY29uPy5jb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICB9XG5cbiAgZ2V0SWNvbkJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBiZyA9IHRoaXMuY29uZmlnKCkuaWNvbj8uYmFja2dyb3VuZENvbG9yO1xuICAgIGlmICghYmcpIHJldHVybiAncmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IpLCAwLjEpJztcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlQ29sb3IoYmcgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIGdldEJhZGdlQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFkZ2U/LmNvbG9yIGFzIHN0cmluZykgfHwgJ3doaXRlJztcbiAgfVxuXG4gIGdldEJhZGdlQmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVDb2xvcih0aGlzLmNvbmZpZygpLmJhZGdlPy5iYWNrZ3JvdW5kQ29sb3IgYXMgc3RyaW5nKSB8fCAndmFyKC0taW9uLWNvbG9yLXByaW1hcnkpJztcbiAgfVxuXG4gIC8qKiBIYW5kbGUgY2FyZCBjbGljayAqL1xuICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG5cbiAgICBpZiAoY2ZnLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRW1pdCBjbGljayBldmVudFxuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIHRva2VuOiBjZmcudG9rZW4sXG4gICAgICBuYXZpZ2F0ZWQ6ICEhY2ZnLnJvdXRlckxpbmsgfHwgISFjZmcuaHJlZixcbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBleHRlcm5hbCBVUkxcbiAgICBpZiAoY2ZnLmhyZWYpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5vcGVuSW5OZXdUYWIoY2ZnLmhyZWYpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUE0QyxvQkFBb0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFekYsUUFBUSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0FBRXBDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ0c7QUEwRUgsTUFBTSxPQUFPLG1CQUFtQjtJQXpFaEM7UUEwRVUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFL0MsOEJBQThCO1FBQ3JCLFVBQUssR0FBRyxLQUFLLENBQThCLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLFVBQUssR0FBRyxLQUFLLEVBQXNCLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssRUFBc0IsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLEtBQUssRUFBc0IsQ0FBQztRQUMxQyxtQkFBYyxHQUFHLEtBQUssRUFBc0IsQ0FBQztRQUM3QyxrQkFBYSxHQUFHLEtBQUssRUFBc0IsQ0FBQztRQUM1QyxTQUFJLEdBQUcsS0FBSyxFQUEwQyxDQUFDO1FBQ3ZELFNBQUksR0FBRyxLQUFLLEVBQTBDLENBQUM7UUFDdkQsWUFBTyxHQUFHLEtBQUssRUFBNkMsQ0FBQztRQUM3RCxhQUFRLEdBQUcsS0FBSyxFQUF1QixDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsS0FBSyxFQUFpRCxDQUFDO1FBQ3JFLG9CQUFlLEdBQUcsS0FBSyxFQUFxRCxDQUFDO1FBQzdFLGFBQVEsR0FBRyxLQUFLLEVBQXVCLENBQUM7UUFDeEMsYUFBUSxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxFQUFnRCxDQUFDO1FBQ25FLGdCQUFXLEdBQUcsS0FBSyxFQUFpRCxDQUFDO1FBQ3JFLFNBQUksR0FBRyxLQUFLLEVBQXNCLENBQUM7UUFDbkMsVUFBSyxHQUFHLEtBQUssRUFBMkMsQ0FBQztRQUN6RCxnQkFBVyxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUMzQyxVQUFLLEdBQUcsS0FBSyxFQUFzQixDQUFDO1FBRTdDLHlDQUF5QztRQUMvQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFFN0QseUNBQXlDO1FBQ3pDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE1BQU0sV0FBVyxHQUFnQyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUV6RCxPQUFPO2dCQUNMLEdBQUcsb0JBQW9CO2dCQUN2QixHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2YsR0FBRyxXQUFXO2FBQ2YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0tBNEZKO0lBMUZTLGVBQWUsQ0FDckIsTUFBbUMsRUFDbkMsR0FBTSxFQUNOLEtBQXdDO1FBRXhDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsUUFBUTtRQUNOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7WUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGNBQWM7UUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsYUFBYSxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsd0NBQXdDO1lBQzFELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELHlGQUF5RjtJQUNqRixnQkFBZ0IsQ0FBQyxLQUFjLEVBQUUsSUFBMkQ7UUFDbEcsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRXZDLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckQsT0FBTyxhQUFhLEtBQUssR0FBRyxNQUFNLHFCQUFxQixLQUFLLEdBQUcsV0FBVyxJQUFJLENBQUM7SUFDakYsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsZUFBeUIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sQ0FDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQXFCLEVBQUUsUUFBUSxDQUFDO1lBQ3BFLG1GQUFtRixDQUNwRixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxrQ0FBa0MsQ0FBQztJQUNsSCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDO1FBQy9DLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTyxrRUFBa0UsQ0FBQztRQUNuRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQztJQUMvRyxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsZUFBeUIsQ0FBQyxJQUFJLDZCQUE2QixDQUFDO0lBQ2hILENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUxQixJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJO1NBQzFDLENBQUMsQ0FBQztRQUVILHNCQUFzQjtRQUN0QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQzsrR0FwSlUsbUJBQW1CO21HQUFuQixtQkFBbUIsa3JGQXJFcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtFVCw2aEpBbkVTLFlBQVksK0JBQUUsVUFBVSxvT0FBRSxPQUFPLDJKQUFFLGVBQWU7OzRGQXNFakQsbUJBQW1CO2tCQXpFL0IsU0FBUzsrQkFDRSxrQ0FBa0MsY0FDaEMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLFlBQ25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrRVQ7OEJBOEJTLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25Gb3J3YXJkT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgaXNJb25pY0NvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2lvbmljLWNvbG9yJztcbmltcG9ydCB7IEFjdGlvbkNhcmRNZXRhZGF0YSwgQWN0aW9uQ2FyZENsaWNrRXZlbnQsIEFDVElPTl9DQVJEX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHsgY2hldnJvbkZvcndhcmRPdXRsaW5lIH0pO1xuXG4vKipcbiAqIHZkcy1hY3Rpb24tY2FyZFxuICpcbiAqIEEgY2xpY2thYmxlIGNhcmQgY29tcG9uZW50IHdpdGggaWNvbiwgdGl0bGUsIGRlc2NyaXB0aW9uLCBhbmQgb3B0aW9uYWwgYmFkZ2UuXG4gKiBTdXBwb3J0cyBtdWx0aXBsZSBpY29uIGZvcm1hdHM6IElvbmljb25zLCBTVkcgcGF0aHMsIGFuZCBpbWFnZSBVUkxzLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlIHdpdGggSW9uaWNvblxuICogYGBgaHRtbFxuICogPHZkcy1hY3Rpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGljb246IHsgaW9uaWNvbjogJ3NldHRpbmdzLW91dGxpbmUnIH0sXG4gKiAgICAgdGl0bGU6ICdTZXR0aW5ncycsXG4gKiAgICAgZGVzY3JpcHRpb246ICdNYW5hZ2UgeW91ciBwcmVmZXJlbmNlcydcbiAqICAgfVwiXG4gKiAgIChvbkNsaWNrKT1cIm9uQ2FyZENsaWNrKCRldmVudClcIlxuICogLz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggcm91dGVyTGluayBuYXZpZ2F0aW9uXG4gKiBgYGBodG1sXG4gKiA8dmRzLWFjdGlvbi1jYXJkXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaWNvbjogeyBpb25pY29uOiAncGVyc29uLW91dGxpbmUnLCBjb2xvcjogJ3ByaW1hcnknIH0sXG4gKiAgICAgdGl0bGU6ICdQcm9maWxlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ1ZpZXcgYW5kIGVkaXQgeW91ciBwcm9maWxlJyxcbiAqICAgICByb3V0ZXJMaW5rOiAnL3NldHRpbmdzL3Byb2ZpbGUnLFxuICogICAgIHNob3dDaGV2cm9uOiB0cnVlXG4gKiAgIH1cIlxuICogLz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggY3VzdG9tIFNWRyBpY29uXG4gKiBgYGBodG1sXG4gKiA8dmRzLWFjdGlvbi1jYXJkXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaWNvbjogeyBzdmdQYXRoOiAnTTEyIDJMMiA3bDEwIDUgMTAtNS0xMC01ek0yIDE3bDEwIDUgMTAtNU0yIDEybDEwIDUgMTAtNScgfSxcbiAqICAgICB0aXRsZTogJ0N1c3RvbSBGZWF0dXJlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ0EgZmVhdHVyZSB3aXRoIGN1c3RvbSBTVkcgaWNvbicsXG4gKiAgICAgYmFkZ2U6IHsgdGV4dDogJ05FVycsIGNvbG9yOiAnbGlnaHQnLCBiYWNrZ3JvdW5kQ29sb3I6ICdwcmltYXJ5JyB9XG4gKiAgIH1cIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYWN0aW9uLWNhcmQsIHZkcy1hY3Rpb24tY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlckxpbmssIElvbkljb24sIElvblJpcHBsZUVmZmVjdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJhY3Rpb24tY2FyZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLXNtYWxsXT1cImNvbmZpZygpLnNpemUgPT09ICdzbWFsbCdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1tZWRpdW1dPVwiY29uZmlnKCkuc2l6ZSA9PT0gJ21lZGl1bSdcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1sYXJnZV09XCJjb25maWcoKS5zaXplID09PSAnbGFyZ2UnXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tbWFya2VyXT1cImNvbmZpZygpLnZhcmlhbnQgPT09ICdtYXJrZXInXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tYm9yZGVyZWRdPVwiY29uZmlnKCkuYm9yZGVyZWRcIlxuICAgICAgW2NsYXNzLmFjdGlvbi1jYXJkLS1zaGFkb3dlZF09XCJjb25maWcoKS5zaGFkb3dlZFwiXG4gICAgICBbY2xhc3MuYWN0aW9uLWNhcmQtLWRpc2FibGVkXT1cImNvbmZpZygpLmRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy5hY3Rpb24tY2FyZC0tY2xpY2thYmxlXT1cIiFjb25maWcoKS5kaXNhYmxlZFwiXG4gICAgICBbc3R5bGUuLS1jYXJkLWJnXT1cImdldEJhY2tncm91bmRDb2xvcigpXCJcbiAgICAgIFtzdHlsZS4tLWNhcmQtYm9yZGVyLWNvbG9yXT1cImdldEJvcmRlckNvbG9yKClcIlxuICAgICAgW3N0eWxlLi0tY2FyZC1pY29uLWNvbG9yXT1cImdldEljb25Db2xvcigpXCJcbiAgICAgIFtzdHlsZS4tLWNhcmQtaWNvbi1iZ109XCJnZXRJY29uQmFja2dyb3VuZENvbG9yKClcIlxuICAgICAgW3N0eWxlLi0tY2FyZC1iYWRnZS1jb2xvcl09XCJnZXRCYWRnZUNvbG9yKClcIlxuICAgICAgW3N0eWxlLi0tY2FyZC1iYWRnZS1iZ109XCJnZXRCYWRnZUJhY2tncm91bmRDb2xvcigpXCJcbiAgICAgIFtyb3V0ZXJMaW5rXT1cImNvbmZpZygpLmRpc2FibGVkID8gbnVsbCA6IGNvbmZpZygpLnJvdXRlckxpbmtcIlxuICAgICAgW3F1ZXJ5UGFyYW1zXT1cImNvbmZpZygpLnF1ZXJ5UGFyYW1zID8/IG51bGxcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwiY29uZmlnKCkuZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgW2F0dHIucm9sZV09XCInYnV0dG9uJ1wiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImNvbmZpZygpLmRpc2FibGVkXCJcbiAgICA+XG4gICAgICA8aW9uLXJpcHBsZS1lZmZlY3Q+PC9pb24tcmlwcGxlLWVmZmVjdD5cblxuICAgICAgPCEtLSBCYWRnZSAodG9wLXJpZ2h0IGNvcm5lcikgLS0+XG4gICAgICBAaWYgKGNvbmZpZygpLmJhZGdlKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLWNhcmRfX2JhZGdlXCI+XG4gICAgICAgICAge3sgY29uZmlnKCkuYmFkZ2UhLnRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuXG4gICAgICA8IS0tIEljb24gQ29udGFpbmVyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1jYXJkX19pY29uXCI+XG4gICAgICAgIEBpZiAoY29uZmlnKCkuaWNvbj8uaW9uaWNvbikge1xuICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJjb25maWcoKS5pY29uIS5pb25pY29uIVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgIH0gQGVsc2UgaWYgKGNvbmZpZygpLmljb24/LnN2Z1BhdGgpIHtcbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJjb25maWcoKS5pY29uIS5zdmdQYXRoXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgfSBAZWxzZSBpZiAoY29uZmlnKCkuaWNvbj8uaW1hZ2VVcmwpIHtcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiY29uZmlnKCkuaWNvbiEuaW1hZ2VVcmxcIiBbYWx0XT1cImdldFRpdGxlKClcIiBjbGFzcz1cImFjdGlvbi1jYXJkX19pY29uLWltYWdlXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tY2FyZF9fY29udGVudFwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJhY3Rpb24tY2FyZF9fdGl0bGVcIj57eyBnZXRUaXRsZSgpIH19PC9oMz5cbiAgICAgICAgQGlmIChnZXREZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJhY3Rpb24tY2FyZF9fZGVzY3JpcHRpb25cIj57eyBnZXREZXNjcmlwdGlvbigpIH19PC9wPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDaGV2cm9uIChvcHRpb25hbCkgLS0+XG4gICAgICBAaWYgKGNvbmZpZygpLnNob3dDaGV2cm9uICYmICFjb25maWcoKS5kaXNhYmxlZCkge1xuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tZm9yd2FyZC1vdXRsaW5lXCIgY2xhc3M9XCJhY3Rpb24tY2FyZF9fY2hldnJvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkNhcmRDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG5hdmlnYXRpb24gPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PFBhcnRpYWw8QWN0aW9uQ2FyZE1ldGFkYXRhPj4oe30pO1xuICByZWFkb25seSB0aXRsZSA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgdGl0bGVLZXkgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBkZXNjcmlwdGlvbktleSA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgaTE4bk5hbWVzcGFjZSA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgaWNvbiA9IGlucHV0PEFjdGlvbkNhcmRNZXRhZGF0YVsnaWNvbiddIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBzaXplID0gaW5wdXQ8QWN0aW9uQ2FyZE1ldGFkYXRhWydzaXplJ10gfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxBY3Rpb25DYXJkTWV0YWRhdGFbJ3ZhcmlhbnQnXSB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgYm9yZGVyZWQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBib3JkZXJDb2xvciA9IGlucHV0PEFjdGlvbkNhcmRNZXRhZGF0YVsnYm9yZGVyQ29sb3InXSB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgYmFja2dyb3VuZENvbG9yID0gaW5wdXQ8QWN0aW9uQ2FyZE1ldGFkYXRhWydiYWNrZ3JvdW5kQ29sb3InXSB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgc2hhZG93ZWQgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IHJvdXRlckxpbmsgPSBpbnB1dDxBY3Rpb25DYXJkTWV0YWRhdGFbJ3JvdXRlckxpbmsnXSB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgcXVlcnlQYXJhbXMgPSBpbnB1dDxBY3Rpb25DYXJkTWV0YWRhdGFbJ3F1ZXJ5UGFyYW1zJ10gfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGhyZWYgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGJhZGdlID0gaW5wdXQ8QWN0aW9uQ2FyZE1ldGFkYXRhWydiYWRnZSddIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBzaG93Q2hldnJvbiA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IHRva2VuID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gY2FyZCBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25DYXJkQ2xpY2tFdmVudD4oKTtcblxuICAvKiogTWVyZ2VkIGNvbmZpZ3VyYXRpb24gd2l0aCBkZWZhdWx0cyAqL1xuICBjb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZGlyZWN0UHJvcHM6IFBhcnRpYWw8QWN0aW9uQ2FyZE1ldGFkYXRhPiA9IHt9O1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAndGl0bGUnLCB0aGlzLnRpdGxlKCkpO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAndGl0bGVLZXknLCB0aGlzLnRpdGxlS2V5KCkpO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAnZGVzY3JpcHRpb24nLCB0aGlzLmRlc2NyaXB0aW9uKCkpO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAnZGVzY3JpcHRpb25LZXknLCB0aGlzLmRlc2NyaXB0aW9uS2V5KCkpO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAnaTE4bk5hbWVzcGFjZScsIHRoaXMuaTE4bk5hbWVzcGFjZSgpKTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChkaXJlY3RQcm9wcywgJ2ljb24nLCB0aGlzLmljb24oKSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoZGlyZWN0UHJvcHMsICdzaXplJywgdGhpcy5zaXplKCkpO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAndmFyaWFudCcsIHRoaXMudmFyaWFudCgpKTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChkaXJlY3RQcm9wcywgJ2JvcmRlcmVkJywgdGhpcy5ib3JkZXJlZCgpKTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChkaXJlY3RQcm9wcywgJ2JvcmRlckNvbG9yJywgdGhpcy5ib3JkZXJDb2xvcigpKTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChkaXJlY3RQcm9wcywgJ2JhY2tncm91bmRDb2xvcicsIHRoaXMuYmFja2dyb3VuZENvbG9yKCkpO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAnc2hhZG93ZWQnLCB0aGlzLnNoYWRvd2VkKCkpO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAnZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkKCkpO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGRpcmVjdFByb3BzLCAncm91dGVyTGluaycsIHRoaXMucm91dGVyTGluaygpKTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChkaXJlY3RQcm9wcywgJ3F1ZXJ5UGFyYW1zJywgdGhpcy5xdWVyeVBhcmFtcygpKTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChkaXJlY3RQcm9wcywgJ2hyZWYnLCB0aGlzLmhyZWYoKSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoZGlyZWN0UHJvcHMsICdiYWRnZScsIHRoaXMuYmFkZ2UoKSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoZGlyZWN0UHJvcHMsICdzaG93Q2hldnJvbicsIHRoaXMuc2hvd0NoZXZyb24oKSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoZGlyZWN0UHJvcHMsICd0b2tlbicsIHRoaXMudG9rZW4oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uQUNUSU9OX0NBUkRfREVGQVVMVFMsXG4gICAgICAuLi50aGlzLnByb3BzKCksXG4gICAgICAuLi5kaXJlY3RQcm9wcyxcbiAgICB9O1xuICB9KTtcblxuICBwcml2YXRlIGFzc2lnbklmRGVmaW5lZDxLIGV4dGVuZHMga2V5b2YgQWN0aW9uQ2FyZE1ldGFkYXRhPihcbiAgICB0YXJnZXQ6IFBhcnRpYWw8QWN0aW9uQ2FyZE1ldGFkYXRhPixcbiAgICBrZXk6IEssXG4gICAgdmFsdWU6IEFjdGlvbkNhcmRNZXRhZGF0YVtLXSB8IHVuZGVmaW5lZFxuICApOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogR2V0IHRpdGxlIHdpdGggaTE4biBzdXBwb3J0ICovXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoY2ZnLmkxOG5OYW1lc3BhY2UgJiYgY2ZnLnRpdGxlS2V5KSB7XG4gICAgICB0aGlzLmkxOG4ubGFuZygpOyAvLyBUcmFjayBsYW5ndWFnZSBjaGFuZ2VzIGZvciByZWFjdGl2aXR5XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQoY2ZnLnRpdGxlS2V5LCBjZmcuaTE4bk5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHJldHVybiBjZmcudGl0bGUgfHwgJyc7XG4gIH1cblxuICAvKiogR2V0IGRlc2NyaXB0aW9uIHdpdGggaTE4biBzdXBwb3J0ICovXG4gIGdldERlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoY2ZnLmkxOG5OYW1lc3BhY2UgJiYgY2ZnLmRlc2NyaXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLmkxOG4ubGFuZygpOyAvLyBUcmFjayBsYW5ndWFnZSBjaGFuZ2VzIGZvciByZWFjdGl2aXR5XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQoY2ZnLmRlc2NyaXB0aW9uS2V5LCBjZmcuaTE4bk5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHJldHVybiBjZmcuZGVzY3JpcHRpb24gfHwgJyc7XG4gIH1cblxuICAvKiogUmVzb2x2ZSBhIHB1YmxpYyByb2xlIHRvIFZEUyBmaXJzdCwgdGhlbiBrZWVwIElvbmljIGFzIHRoZSBjb21wYXRpYmlsaXR5IGZhbGxiYWNrLiAqL1xuICBwcml2YXRlIHJlc29sdmVSb2xlQ29sb3IoY29sb3I/OiBzdHJpbmcsIHBhcnQ/OiAnYmFzZScgfCAnaG92ZXInIHwgJ2ZnJyB8ICd0aW50JyB8ICdib3JkZXInIHwgJ3RleHQnKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFjb2xvcikgcmV0dXJuIG51bGw7XG4gICAgaWYgKCFpc0lvbmljQ29sb3IoY29sb3IpKSByZXR1cm4gY29sb3I7XG5cbiAgICBjb25zdCBzdWZmaXggPSBwYXJ0ICYmIHBhcnQgIT09ICdiYXNlJyA/IGAtJHtwYXJ0fWAgOiAnJztcbiAgICBjb25zdCBpb25pY1N1ZmZpeCA9IHBhcnQgPT09ICdmZycgPyAnLWNvbnRyYXN0JyA6ICcnO1xuICAgIHJldHVybiBgdmFyKC0tdmRzLSR7Y29sb3J9JHtzdWZmaXh9LCB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0ke2lvbmljU3VmZml4fSkpYDtcbiAgfVxuXG4gIGdldEJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlUm9sZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFja2dyb3VuZENvbG9yIGFzIHN0cmluZywgJ3RpbnQnKTtcbiAgfVxuXG4gIGdldEJvcmRlckNvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnJlc29sdmVSb2xlQ29sb3IodGhpcy5jb25maWcoKS5ib3JkZXJDb2xvciBhcyBzdHJpbmcsICdib3JkZXInKSB8fFxuICAgICAgJ3ZhcigtLXZkcy1ib3JkZXItc3VidGxlLCB2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUsIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yNCkpKSdcbiAgICApO1xuICB9XG5cbiAgZ2V0SWNvbkNvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVSb2xlQ29sb3IodGhpcy5jb25maWcoKS5pY29uPy5jb2xvciBhcyBzdHJpbmcsICd0ZXh0JykgfHwgJ3ZhcigtLXZkcy1wcmltYXJ5LXRleHQsICMxZDRlZDgpJztcbiAgfVxuXG4gIGdldEljb25CYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgYmcgPSB0aGlzLmNvbmZpZygpLmljb24/LmJhY2tncm91bmRDb2xvcjtcbiAgICBpZiAoIWJnKSByZXR1cm4gJ3ZhcigtLXZkcy1wcmltYXJ5LXRpbnQsIHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiKSwgMC4xKSknO1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVSb2xlQ29sb3IoYmcgYXMgc3RyaW5nLCAndGludCcpO1xuICB9XG5cbiAgZ2V0QmFkZ2VDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlUm9sZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFkZ2U/LmNvbG9yIGFzIHN0cmluZywgJ2ZnJykgfHwgJ3ZhcigtLXZkcy1wcmltYXJ5LWZnLCAjZmZmZmZmKSc7XG4gIH1cblxuICBnZXRCYWRnZUJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlUm9sZUNvbG9yKHRoaXMuY29uZmlnKCkuYmFkZ2U/LmJhY2tncm91bmRDb2xvciBhcyBzdHJpbmcpIHx8ICd2YXIoLS12ZHMtcHJpbWFyeSwgIzI1NjNlYiknO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBjYXJkIGNsaWNrICovXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy5jb25maWcoKTtcblxuICAgIGlmIChjZmcuZGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFbWl0IGNsaWNrIGV2ZW50XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgdG9rZW46IGNmZy50b2tlbixcbiAgICAgIG5hdmlnYXRlZDogISFjZmcucm91dGVyTGluayB8fCAhIWNmZy5ocmVmLFxuICAgIH0pO1xuXG4gICAgLy8gSGFuZGxlIGV4dGVybmFsIFVSTFxuICAgIGlmIChjZmcuaHJlZikge1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uLm9wZW5Jbk5ld1RhYihjZmcuaHJlZik7XG4gICAgfVxuICB9XG59XG4iXX0=
|