@agorapulse/ui-components 17.5.2 → 17.5.4
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/agorapulse-ui-components-17.5.4.tgz +0 -0
- package/avatar/avatar.component.d.ts +6 -4
- package/esm2022/avatar/avatar.component.mjs +25 -23
- package/esm2022/toggle/toggle.component.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-avatar.mjs +24 -22
- package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-toggle.mjs +2 -2
- package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
- package/package.json +42 -42
- package/agorapulse-ui-components-17.5.2.tgz +0 -0
|
Binary file
|
|
@@ -36,24 +36,26 @@ export declare class AvatarComponent {
|
|
|
36
36
|
alt: import("@angular/core").InputSignal<string>;
|
|
37
37
|
network: import("@angular/core").InputSignalWithTransform<"bluesky" | "facebook" | "instagram" | "linkedin" | "twitter" | "youtube" | "google" | "pinterest" | "threads" | "tiktok" | "webBlog" | "webNews" | "X" | undefined, string | undefined>;
|
|
38
38
|
size: import("@angular/core").InputSignal<AvatarSize | "16" | "32" | "24" | "56" | "48" | "40" | "36">;
|
|
39
|
-
username: import("@angular/core").InputSignal<string>;
|
|
39
|
+
username: import("@angular/core").InputSignal<string | undefined>;
|
|
40
40
|
showInitials: import("@angular/core").InputSignal<string | boolean | undefined>;
|
|
41
41
|
bigNetwork: import("@angular/core").InputSignal<boolean>;
|
|
42
42
|
anonymous: import("@angular/core").InputSignal<boolean>;
|
|
43
43
|
online: import("@angular/core").InputSignal<boolean>;
|
|
44
|
-
|
|
44
|
+
hideBigNetwork: import("@angular/core").InputSignal<boolean>;
|
|
45
45
|
rounded: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
46
46
|
private imageError;
|
|
47
47
|
backgroundView: import("@angular/core").Signal<BackgroundView>;
|
|
48
48
|
overlayView: import("@angular/core").Signal<OverlayView>;
|
|
49
|
-
|
|
49
|
+
private useBigNetwork;
|
|
50
50
|
private automaticBigSymbolNetwork;
|
|
51
|
+
protected showBigNetworkBackground: import("@angular/core").Signal<boolean | undefined>;
|
|
52
|
+
private validProfilePicture;
|
|
51
53
|
constructor(symbolRegistry: SymbolRegistry, ngStyle: NgStyle);
|
|
52
54
|
onImageError(): void;
|
|
53
55
|
private buildBackgroundView;
|
|
54
56
|
private buildOverlayView;
|
|
55
57
|
private buildHostStyle;
|
|
56
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
57
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "ap-avatar", never, { "profilePicture": { "alias": "profilePicture"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "network": { "alias": "network"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "username": { "alias": "username"; "required": false; "isSignal": true; }; "showInitials": { "alias": "showInitials"; "required": false; "isSignal": true; }; "bigNetwork": { "alias": "bigNetwork"; "required": false; "isSignal": true; }; "anonymous": { "alias": "anonymous"; "required": false; "isSignal": true; }; "online": { "alias": "online"; "required": false; "isSignal": true; }; "
|
|
59
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "ap-avatar", never, { "profilePicture": { "alias": "profilePicture"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "network": { "alias": "network"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "username": { "alias": "username"; "required": false; "isSignal": true; }; "showInitials": { "alias": "showInitials"; "required": false; "isSignal": true; }; "bigNetwork": { "alias": "bigNetwork"; "required": false; "isSignal": true; }; "anonymous": { "alias": "anonymous"; "required": false; "isSignal": true; }; "online": { "alias": "online"; "required": false; "isSignal": true; }; "hideBigNetwork": { "alias": "youtubeAvatarMode"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgStyle; inputs: {}; outputs: {}; }]>;
|
|
58
60
|
}
|
|
59
61
|
export {};
|
|
@@ -49,22 +49,28 @@ export class AvatarComponent {
|
|
|
49
49
|
transform: (v) => (v !== undefined ? v : v),
|
|
50
50
|
});
|
|
51
51
|
size = input(40);
|
|
52
|
-
username = input(
|
|
52
|
+
username = input();
|
|
53
53
|
showInitials = input();
|
|
54
54
|
bigNetwork = input(false);
|
|
55
55
|
anonymous = input(false);
|
|
56
56
|
online = input(false);
|
|
57
|
-
|
|
57
|
+
hideBigNetwork = input(false, { alias: 'youtubeAvatarMode' });
|
|
58
58
|
rounded = input(true, { transform: booleanAttribute });
|
|
59
59
|
imageError = signal(false);
|
|
60
60
|
backgroundView = computed(() => this.buildBackgroundView());
|
|
61
61
|
overlayView = computed(() => this.buildOverlayView());
|
|
62
62
|
useBigNetwork = computed(() => {
|
|
63
|
-
return (this.automaticBigSymbolNetwork() || this.bigNetwork()) &&
|
|
63
|
+
return (this.automaticBigSymbolNetwork() || this.bigNetwork()) && this.network();
|
|
64
64
|
});
|
|
65
65
|
automaticBigSymbolNetwork = computed(() => {
|
|
66
66
|
return automaticBigSymbolNetwork.includes(this.network());
|
|
67
67
|
});
|
|
68
|
+
showBigNetworkBackground = computed(() => {
|
|
69
|
+
return !this.anonymous() && this.useBigNetwork() && (!this.validProfilePicture() || !this.hideBigNetwork());
|
|
70
|
+
});
|
|
71
|
+
validProfilePicture = computed(() => {
|
|
72
|
+
return !this.imageError() ? this.profilePicture() : undefined;
|
|
73
|
+
});
|
|
68
74
|
constructor(symbolRegistry, ngStyle) {
|
|
69
75
|
this.ngStyle = ngStyle;
|
|
70
76
|
const networkSymbols = Object.values(networkDescription) //
|
|
@@ -83,16 +89,16 @@ export class AvatarComponent {
|
|
|
83
89
|
this.imageError.set(true);
|
|
84
90
|
}
|
|
85
91
|
buildBackgroundView() {
|
|
86
|
-
let bgView
|
|
87
|
-
if (this.
|
|
92
|
+
let bgView;
|
|
93
|
+
if (this.showBigNetworkBackground()) {
|
|
88
94
|
bgView = { mode: 'symbol', symbolId: toNetworkSymbol(this.network()), big: true };
|
|
89
95
|
}
|
|
90
96
|
else if (this.anonymous()) {
|
|
91
97
|
bgView = { mode: 'symbol', symbolId: apShowTheaterMaskHappy.name };
|
|
92
98
|
}
|
|
93
99
|
else {
|
|
94
|
-
const profilePicture = this.
|
|
95
|
-
if (profilePicture
|
|
100
|
+
const profilePicture = this.validProfilePicture();
|
|
101
|
+
if (profilePicture) {
|
|
96
102
|
bgView = {
|
|
97
103
|
mode: 'image',
|
|
98
104
|
image: {
|
|
@@ -106,13 +112,11 @@ export class AvatarComponent {
|
|
|
106
112
|
const initials = this.showInitials();
|
|
107
113
|
if (initials !== false && initials !== undefined) {
|
|
108
114
|
const useDefault = initials === true || initials === '';
|
|
109
|
-
const candidateName = (useDefault ? this.username()
|
|
115
|
+
const candidateName = (useDefault ? this.username()?.charAt(0) ?? '' : initials.slice(0, 2)).toUpperCase();
|
|
110
116
|
bgView = { mode: 'initials', text: candidateName };
|
|
111
117
|
}
|
|
112
118
|
else {
|
|
113
|
-
|
|
114
|
-
bgView = { mode: 'symbol', symbolId: apSingleNeutral.name };
|
|
115
|
-
}
|
|
119
|
+
bgView = { mode: 'symbol', symbolId: apSingleNeutral.name };
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
122
|
}
|
|
@@ -121,15 +125,13 @@ export class AvatarComponent {
|
|
|
121
125
|
buildOverlayView() {
|
|
122
126
|
let ovlView = {};
|
|
123
127
|
const network = this.network();
|
|
124
|
-
if (
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
ovlView = { mode: 'online' };
|
|
132
|
-
}
|
|
128
|
+
if (this.online()) {
|
|
129
|
+
ovlView = { mode: 'online' };
|
|
130
|
+
}
|
|
131
|
+
else if (network && !this.showBigNetworkBackground() && !this.automaticBigSymbolNetwork()) {
|
|
132
|
+
// unit tests in platform repo gives random network values which are unchecked by the compiler
|
|
133
|
+
const { round } = networkDescription[network] ?? {};
|
|
134
|
+
ovlView = { mode: 'network', network, round };
|
|
133
135
|
}
|
|
134
136
|
return ovlView;
|
|
135
137
|
}
|
|
@@ -147,12 +149,12 @@ export class AvatarComponent {
|
|
|
147
149
|
};
|
|
148
150
|
}
|
|
149
151
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.SymbolRegistry }, { token: i2.NgStyle }], target: i0.ɵɵFactoryTarget.Component });
|
|
150
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { profilePicture: { classPropertyName: "profilePicture", publicName: "profilePicture", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, network: { classPropertyName: "network", publicName: "network", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, showInitials: { classPropertyName: "showInitials", publicName: "showInitials", isSignal: true, isRequired: false, transformFunction: null }, bigNetwork: { classPropertyName: "bigNetwork", publicName: "bigNetwork", isSignal: true, isRequired: false, transformFunction: null }, anonymous: { classPropertyName: "anonymous", publicName: "anonymous", isSignal: true, isRequired: false, transformFunction: null }, online: { classPropertyName: "online", publicName: "online", isSignal: true, isRequired: false, transformFunction: null },
|
|
152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { profilePicture: { classPropertyName: "profilePicture", publicName: "profilePicture", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, network: { classPropertyName: "network", publicName: "network", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, showInitials: { classPropertyName: "showInitials", publicName: "showInitials", isSignal: true, isRequired: false, transformFunction: null }, bigNetwork: { classPropertyName: "bigNetwork", publicName: "bigNetwork", isSignal: true, isRequired: false, transformFunction: null }, anonymous: { classPropertyName: "anonymous", publicName: "anonymous", isSignal: true, isRequired: false, transformFunction: null }, online: { classPropertyName: "online", publicName: "online", isSignal: true, isRequired: false, transformFunction: null }, hideBigNetwork: { classPropertyName: "hideBigNetwork", publicName: "youtubeAvatarMode", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.background-default": "!showBigNetworkBackground()" } }, hostDirectives: [{ directive: i2.NgStyle }], ngImport: i0, template: "<!-- background -->\n@if (backgroundView(); as bgView) {\n @switch (bgView.mode) {\n @case ('image') {\n <img\n class=\"bg-image\"\n [ngSrc]=\"bgView.image.src\"\n [width]=\"bgView.image.size\"\n [height]=\"bgView.image.size\"\n [alt]=\"bgView.image.alt\"\n (error)=\"onImageError()\" />\n }\n @case ('initials') {\n <div class=\"bg-initials\">\n {{ bgView.text }}\n </div>\n }\n @case ('symbol') {\n <div\n class=\"bg-symbol\"\n [ngClass]=\"['sym-' + bgView.symbolId, bgView.big ? 'big' : '']\">\n <ap-symbol [symbolId]=\"bgView.symbolId\" />\n </div>\n }\n }\n}\n\n<!-- overlay -->\n@if (overlayView(); as ovlView) {\n @switch (ovlView.mode) {\n @case ('network') {\n <div\n class=\"ovl-network\"\n [class.round]=\"ovlView.round\"\n [ngClass]=\"ovlView.network\">\n <ap-symbol [symbolId]=\"ovlView.network | networkSymbol\" />\n </div>\n }\n @case ('online') {\n <div class=\"ovl-online\"></div>\n }\n }\n}\n", styles: [":host{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);box-sizing:border-box;position:relative;border-radius:var(--ap-avatar-border-radius)}:host.background-default{background:var(--ref-color-grey-40);box-shadow:0 0 0 1px var(--ref-color-grey-10)}.bg-image{overflow:hidden;box-sizing:border-box;border-radius:var(--ap-avatar-border-radius)}.bg-symbol{display:flex;justify-content:center;align-items:center}.bg-symbol:not(.big) ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}.bg-symbol.big ap-symbol ::ng-deep .svg{top:unset!important;left:unset!important;width:104.35%!important;height:unset!important}.bg-initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}.ovl-network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}.ovl-network.round{border-radius:100%}.ovl-network.instagram{border-radius:28%}.ovl-network.linkedin{border-radius:6%}.ovl-network.googleMyBusiness,.ovl-network.google{box-shadow:none;border-radius:unset}.ovl-network ap-symbol ::ng-deep img{border-radius:0;border:none}.ovl-online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}\n"], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: NetworkSymbolPipe, name: "networkSymbol" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
151
153
|
}
|
|
152
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
153
155
|
type: Component,
|
|
154
156
|
args: [{ selector: 'ap-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgOptimizedImage, SymbolComponent, NgClass, NetworkSymbolPipe], hostDirectives: [NgStyle], host: {
|
|
155
|
-
'[class.background-default]': '!
|
|
157
|
+
'[class.background-default]': '!showBigNetworkBackground()',
|
|
156
158
|
}, template: "<!-- background -->\n@if (backgroundView(); as bgView) {\n @switch (bgView.mode) {\n @case ('image') {\n <img\n class=\"bg-image\"\n [ngSrc]=\"bgView.image.src\"\n [width]=\"bgView.image.size\"\n [height]=\"bgView.image.size\"\n [alt]=\"bgView.image.alt\"\n (error)=\"onImageError()\" />\n }\n @case ('initials') {\n <div class=\"bg-initials\">\n {{ bgView.text }}\n </div>\n }\n @case ('symbol') {\n <div\n class=\"bg-symbol\"\n [ngClass]=\"['sym-' + bgView.symbolId, bgView.big ? 'big' : '']\">\n <ap-symbol [symbolId]=\"bgView.symbolId\" />\n </div>\n }\n }\n}\n\n<!-- overlay -->\n@if (overlayView(); as ovlView) {\n @switch (ovlView.mode) {\n @case ('network') {\n <div\n class=\"ovl-network\"\n [class.round]=\"ovlView.round\"\n [ngClass]=\"ovlView.network\">\n <ap-symbol [symbolId]=\"ovlView.network | networkSymbol\" />\n </div>\n }\n @case ('online') {\n <div class=\"ovl-online\"></div>\n }\n }\n}\n", styles: [":host{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);box-sizing:border-box;position:relative;border-radius:var(--ap-avatar-border-radius)}:host.background-default{background:var(--ref-color-grey-40);box-shadow:0 0 0 1px var(--ref-color-grey-10)}.bg-image{overflow:hidden;box-sizing:border-box;border-radius:var(--ap-avatar-border-radius)}.bg-symbol{display:flex;justify-content:center;align-items:center}.bg-symbol:not(.big) ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}.bg-symbol.big ap-symbol ::ng-deep .svg{top:unset!important;left:unset!important;width:104.35%!important;height:unset!important}.bg-initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}.ovl-network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}.ovl-network.round{border-radius:100%}.ovl-network.instagram{border-radius:28%}.ovl-network.linkedin{border-radius:6%}.ovl-network.googleMyBusiness,.ovl-network.google{box-shadow:none;border-radius:unset}.ovl-network ap-symbol ::ng-deep img{border-radius:0;border:none}.ovl-online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}\n"] }]
|
|
157
159
|
}], ctorParameters: () => [{ type: i1.SymbolRegistry }, { type: i2.NgStyle }] });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9hdmF0YXIvc3JjL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvYXZhdGFyL3NyYy9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHNCQUFzQixFQUN0QixlQUFlLEVBQ2Ysa0JBQWtCLEVBRWxCLGlCQUFpQixFQUNqQixlQUFlLEVBRWYsZUFBZSxHQUNsQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBS2pJLE1BQU0sMEJBQTBCLEdBQStCO0lBQzNELEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxDQUFDO0lBQ0wsRUFBRSxFQUFFLENBQUM7SUFDTCxFQUFFLEVBQUUsQ0FBQztJQUNMLEVBQUUsRUFBRSxDQUFDO0NBQ1IsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQStCO0lBQ3ZELEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxDQUFDO0NBQ1IsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQStCO0lBQ3hELEVBQUUsRUFBRSxFQUFF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LElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqSCwwQkFBMEIsRUFBRSxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUYsOEJBQThCLEVBQUUsT0FBTyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3JHLENBQUM7SUFDTixDQUFDO3VHQXBIUSxlQUFlOzJGQUFmLGVBQWUsa21EQy9FNUIsNHdDQTJDQSwwMEVEOEJjLGdCQUFnQixnUEFBRSxlQUFlLHNIQUFFLE9BQU8sK0VBQUUsaUJBQWlCOzsyRkFNOUQsZUFBZTtrQkFaM0IsU0FBUzsrQkFDSSxXQUFXLG1CQUNKLHVCQUF1QixDQUFDLE1BQU0sY0FHbkMsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxrQkFDeEQsQ0FBQyxPQUFPLENBQUMsUUFDbkI7d0JBQ0YsNEJBQTRCLEVBQUUsa0JBQWtCO3FCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgYWdvcmFwdWxzZVN5bWJvbCxcbiAgICBhcFNob3dUaGVhdGVyTWFza0hhcHB5LFxuICAgIGFwU2luZ2xlTmV1dHJhbCxcbiAgICBuZXR3b3JrRGVzY3JpcHRpb24sXG4gICAgTmV0d29ya05hbWUsXG4gICAgTmV0d29ya1N5bWJvbFBpcGUsXG4gICAgU3ltYm9sQ29tcG9uZW50LFxuICAgIFN5bWJvbFJlZ2lzdHJ5LFxuICAgIHRvTmV0d29ya1N5bWJvbCxcbn0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nT3B0aW1pemVkSW1hZ2UsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEF2YXRhck5ldHdvcmsgPSBOZXR3b3JrTmFtZTtcbmV4cG9ydCB0eXBlIEF2YXRhclNpemUgPSA1NiB8IDQ4IHwgNDAgfCAzNiB8IDMyIHwgMjQgfCAxNjtcblxuY29uc3Qgb25saW5lSWNvblNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAxNixcbiAgICA0ODogMTIsXG4gICAgNDA6IDEyLFxuICAgIDM2OiA4LFxuICAgIDMyOiA4LFxuICAgIDI0OiA2LFxuICAgIDE2OiA2LFxufTtcblxuY29uc3Qgc3ltYm9sU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjAsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxNixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBuZXR3b3JrU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDE2LFxuICAgIDQ4OiAxNixcbiAgICA0MDogMTYsXG4gICAgMzY6IDE2LFxuICAgIDMyOiAxMixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBpbml0aWFsU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjIsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxOCxcbiAgICAyNDogMTQsXG4gICAgMTY6IDEwLFxufTtcblxuY29uc3QgYXV0b21hdGljQmlnU3ltYm9sTmV0d29yazogQXZhdGFyTmV0d29ya1tdID0gWyd5b3V0dWJlJ107XG5cbnR5cGUgQmFja2dyb3VuZFZpZXcgPVxuICAgIHwgeyBtb2RlOiAnaW1hZ2UnOyBpbWFnZTogeyBzcmM6IHN0cmluZzsgc2l6ZTogbnVtYmVyOyBhbHQ/OiBzdHJpbmcgfSB9XG4gICAgfCB7IG1vZGU6ICdpbml0aWFscyc7IHRleHQ6IHN0cmluZyB9XG4gICAgfCB7IG1vZGU6ICdzeW1ib2wnOyBzeW1ib2xJZDogYWdvcmFwdWxzZVN5bWJvbDsgYmlnPzogYm9vbGVhbiB9XG4gICAgfCB7IG1vZGU/OiBuZXZlciB9O1xuXG50eXBlIE92ZXJsYXlWaWV3ID0geyBtb2RlOiAnb25saW5lJyB9IHwgeyBtb2RlOiAnbmV0d29yayc7IG5ldHdvcms6IE5ldHdvcmtOYW1lOyByb3VuZDogYm9vbGVhbiB9IHwgeyBtb2RlPzogbmV2ZXIgfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1hdmF0YXInLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nT3B0aW1pemVkSW1hZ2UsIFN5bWJvbENvbXBvbmVudCwgTmdDbGFzcywgTmV0d29ya1N5bWJvbFBpcGVdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbTmdTdHlsZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmJhY2tncm91bmQtZGVmYXVsdF0nOiAnIXVzZUJpZ05ldHdvcmsoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IHtcbiAgICBwcm9maWxlUGljdHVyZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBhbHQgPSBpbnB1dCgnJyk7XG4gICAgbmV0d29yayA9IGlucHV0KHVuZGVmaW5lZCwge1xuICAgICAgICB0cmFuc2Zvcm06ICh2PzogQXZhdGFyTmV0d29yayB8IHN0cmluZykgPT4gKHYgIT09IHVuZGVmaW5lZCA/ICh2IGFzIEF2YXRhck5ldHdvcmspIDogdiksXG4gICAgfSk7XG4gICAgc2l6ZSA9IGlucHV0PEF2YXRhclNpemUgfCBgJHtBdmF0YXJTaXplfWA+KDQwKTtcbiAgICB1c2VybmFtZSA9IGlucHV0KCcnKTtcbiAgICBzaG93SW5pdGlhbHMgPSBpbnB1dDxib29sZWFuIHwgc3RyaW5nPigpO1xuICAgIGJpZ05ldHdvcmsgPSBpbnB1dChmYWxzZSk7XG4gICAgYW5vbnltb3VzID0gaW5wdXQoZmFsc2UpO1xuICAgIG9ubGluZSA9IGlucHV0KGZhbHNlKTtcbiAgICBoaWRlTmV0d29yayA9IGlucHV0KGZhbHNlLCB7IGFsaWFzOiAneW91dHViZUF2YXRhck1vZGUnIH0pO1xuICAgIHJvdW5kZWQgPSBpbnB1dCh0cnVlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIHByaXZhdGUgaW1hZ2VFcnJvciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBiYWNrZ3JvdW5kVmlldyA9IGNvbXB1dGVkPEJhY2tncm91bmRWaWV3PigoKSA9PiB0aGlzLmJ1aWxkQmFja2dyb3VuZFZpZXcoKSk7XG4gICAgb3ZlcmxheVZpZXcgPSBjb21wdXRlZDxPdmVybGF5Vmlldz4oKCkgPT4gdGhpcy5idWlsZE92ZXJsYXlWaWV3KCkpO1xuICAgIHByb3RlY3RlZCB1c2VCaWdOZXR3b3JrID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuYXV0b21hdGljQmlnU3ltYm9sTmV0d29yaygpIHx8IHRoaXMuYmlnTmV0d29yaygpKSAmJiAhdGhpcy5oaWRlTmV0d29yaygpO1xuICAgIH0pO1xuICAgIHByaXZhdGUgYXV0b21hdGljQmlnU3ltYm9sTmV0d29yayA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGF1dG9tYXRpY0JpZ1N5bWJvbE5ldHdvcmsuaW5jbHVkZXModGhpcy5uZXR3b3JrKCkgYXMgQXZhdGFyTmV0d29yayk7XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5LFxuICAgICAgICBwcml2YXRlIG5nU3R5bGU6IE5nU3R5bGVcbiAgICApIHtcbiAgICAgICAgY29uc3QgbmV0d29ya1N5bWJvbHMgPSBPYmplY3QudmFsdWVzKG5ldHdvcmtEZXNjcmlwdGlvbikgLy9cbiAgICAgICAgICAgIC5mbGF0TWFwKCh7IHN5bWJvbCB9KSA9PiAodHlwZW9mIHN5bWJvbCAhPT0gJ3N0cmluZycgPyBbc3ltYm9sXSA6IFtdKSk7XG5cbiAgICAgICAgc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFsuLi5uZXR3b3JrU3ltYm9scywgYXBTaW5nbGVOZXV0cmFsLCBhcFNob3dUaGVhdGVyTWFza0hhcHB5XSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmdTdHlsZS5uZ1N0eWxlID0gdGhpcy5idWlsZEhvc3RTdHlsZSgpO1xuICAgICAgICAgICAgdGhpcy5uZ1N0eWxlLm5nRG9DaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvZmlsZVBpY3R1cmUoKTsgLy8gb24gY2hhbmdlXG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5pbWFnZUVycm9yLnNldChmYWxzZSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkltYWdlRXJyb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW1hZ2VFcnJvci5zZXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEJhY2tncm91bmRWaWV3KCk6IEJhY2tncm91bmRWaWV3IHtcbiAgICAgICAgbGV0IGJnVmlldzogQmFja2dyb3VuZFZpZXcgPSB7fTtcblxuICAgICAgICBpZiAodGhpcy51c2VCaWdOZXR3b3JrKCkpIHtcbiAgICAgICAgICAgIGJnVmlldyA9IHsgbW9kZTogJ3N5bWJvbCcsIHN5bWJvbElkOiB0b05ldHdvcmtTeW1ib2wodGhpcy5uZXR3b3JrKCkhKSwgYmlnOiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hbm9ueW1vdXMoKSkge1xuICAgICAgICAgICAgYmdWaWV3ID0geyBtb2RlOiAnc3ltYm9sJywgc3ltYm9sSWQ6IGFwU2hvd1RoZWF0ZXJNYXNrSGFwcHkubmFtZSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcHJvZmlsZVBpY3R1cmUgPSB0aGlzLnByb2ZpbGVQaWN0dXJlKCk7XG5cbiAgICAgICAgICAgIGlmIChwcm9maWxlUGljdHVyZSAmJiAhdGhpcy51c2VCaWdOZXR3b3JrKCkgJiYgIXRoaXMuaW1hZ2VFcnJvcigpKSB7XG4gICAgICAgICAgICAgICAgYmdWaWV3ID0ge1xuICAgICAgICAgICAgICAgICAgICBtb2RlOiAnaW1hZ2UnLFxuICAgICAgICAgICAgICAgICAgICBpbWFnZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3JjOiBwcm9maWxlUGljdHVyZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6ICt0aGlzLnNpemUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdDogdGhpcy5hbHQoKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbml0aWFscyA9IHRoaXMuc2hvd0luaXRpYWxzKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbHMgIT09IGZhbHNlICYmIGluaXRpYWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNlRGVmYXVsdCA9IGluaXRpYWxzID09PSB0cnVlIHx8IGluaXRpYWxzID09PSAnJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlTmFtZSA9ICh1c2VEZWZhdWx0ID8gdGhpcy51c2VybmFtZSgpLmNoYXJBdCgwKSA6IGluaXRpYWxzLnNsaWNlKDAsIDIpKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBiZ1ZpZXcgPSB7IG1vZGU6ICdpbml0aWFscycsIHRleHQ6IGNhbmRpZGF0ZU5hbWUgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudXNlQmlnTmV0d29yaygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZ1ZpZXcgPSB7IG1vZGU6ICdzeW1ib2wnLCBzeW1ib2xJZDogYXBTaW5nbGVOZXV0cmFsLm5hbWUgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBiZ1ZpZXc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZE92ZXJsYXlWaWV3KCk6IE92ZXJsYXlWaWV3IHtcbiAgICAgICAgbGV0IG92bFZpZXc6IE92ZXJsYXlWaWV3ID0ge307XG4gICAgICAgIGNvbnN0IG5ldHdvcmsgPSB0aGlzLm5ldHdvcmsoKTtcblxuICAgICAgICBpZiAoIXRoaXMuYXV0b21hdGljQmlnU3ltYm9sTmV0d29yaygpKSB7XG4gICAgICAgICAgICBpZiAobmV0d29yayAmJiAhdGhpcy5iaWdOZXR3b3JrKCkgJiYgIXRoaXMuaGlkZU5ldHdvcmsoKSkge1xuICAgICAgICAgICAgICAgIC8vIHVuaXQgdGVzdHMgaW4gcGxhdGZvcm0gcmVwbyBnaXZlcyByYW5kb20gbmV0d29yayB2YWx1ZXMgd2hpY2ggYXJlIHVuY2hlY2tlZCBieSB0aGUgY29tcGlsZXJcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJvdW5kIH0gPSBuZXR3b3JrRGVzY3JpcHRpb25bbmV0d29ya10gPz8ge307XG4gICAgICAgICAgICAgICAgb3ZsVmlldyA9IHsgbW9kZTogJ25ldHdvcmsnLCBuZXR3b3JrLCByb3VuZCB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9ubGluZSgpKSB7XG4gICAgICAgICAgICAgICAgb3ZsVmlldyA9IHsgbW9kZTogJ29ubGluZScgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdmxWaWV3O1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRIb3N0U3R5bGUoKSB7XG4gICAgICAgIGNvbnN0IGJnVmlldyA9IHRoaXMuYmFja2dyb3VuZFZpZXcoKTtcbiAgICAgICAgY29uc3Qgb3ZsTW9kZSA9IHRoaXMub3ZlcmxheVZpZXcoKS5tb2RlO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5zaXplKCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICctLWFwLWF2YXRhci1zaXplJzogYCR7c2l6ZX1weGAsXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItYm9yZGVyLXJhZGl1cyc6IHRoaXMucm91bmRlZCgpID8gJzEwMCUnIDogJ3ZhcigtLXN5cy1ib3JkZXItcmFkaXVzLXNtKScsXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItaW5pdGlhbHMtc2l6ZSc6IGJnVmlldy5tb2RlID09ICdpbml0aWFscycgPyBgJHtpbml0aWFsU2l6ZUJ5QXZhdGFyU2l6ZVtzaXplXX1weGAgOiAnJyxcbiAgICAgICAgICAgICctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZSc6IGJnVmlldy5tb2RlID09ICdzeW1ib2wnID8gYCR7YmdWaWV3LmJpZyA/IHNpemUgOiBzeW1ib2xTaXplQnlBdmF0YXJTaXplW3NpemVdfXB4YCA6ICcnLFxuICAgICAgICAgICAgJy0tYXAtYXZhdGFyLW5ldHdvcmstc2l6ZSc6IG92bE1vZGUgPT0gJ25ldHdvcmsnID8gYCR7bmV0d29ya1NpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgIDogJycsXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItb25saW5lLWljb24tc2l6ZSc6IG92bE1vZGUgPT0gJ29ubGluZScgPyBgJHtvbmxpbmVJY29uU2l6ZUJ5QXZhdGFyU2l6ZVtzaXplXX1weGAgOiAnJyxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8IS0tIGJhY2tncm91bmQgLS0+XG5AaWYgKGJhY2tncm91bmRWaWV3KCk7IGFzIGJnVmlldykge1xuICAgIEBzd2l0Y2ggKGJnVmlldy5tb2RlKSB7XG4gICAgICAgIEBjYXNlICgnaW1hZ2UnKSB7XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1pbWFnZVwiXG4gICAgICAgICAgICAgICAgW25nU3JjXT1cImJnVmlldy5pbWFnZS5zcmNcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJiZ1ZpZXcuaW1hZ2Uuc2l6ZVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJiZ1ZpZXcuaW1hZ2Uuc2l6ZVwiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJiZ1ZpZXcuaW1hZ2UuYWx0XCJcbiAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnaW5pdGlhbHMnKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctaW5pdGlhbHNcIj5cbiAgICAgICAgICAgICAgICB7eyBiZ1ZpZXcudGV4dCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdzeW1ib2wnKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1zeW1ib2xcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnc3ltLScgKyBiZ1ZpZXcuc3ltYm9sSWQsIGJnVmlldy5iaWcgPyAnYmlnJyA6ICcnXVwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2wgW3N5bWJvbElkXT1cImJnVmlldy5zeW1ib2xJZFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuPCEtLSBvdmVybGF5IC0tPlxuQGlmIChvdmVybGF5VmlldygpOyBhcyBvdmxWaWV3KSB7XG4gICAgQHN3aXRjaCAob3ZsVmlldy5tb2RlKSB7XG4gICAgICAgIEBjYXNlICgnbmV0d29yaycpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm92bC1uZXR3b3JrXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mucm91bmRdPVwib3ZsVmlldy5yb3VuZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwib3ZsVmlldy5uZXR3b3JrXCI+XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbCBbc3ltYm9sSWRdPVwib3ZsVmlldy5uZXR3b3JrIHwgbmV0d29ya1N5bWJvbFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ29ubGluZScpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmwtb25saW5lXCI+PC9kaXY+XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9hdmF0YXIvc3JjL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvYXZhdGFyL3NyYy9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHNCQUFzQixFQUN0QixlQUFlLEVBQ2Ysa0JBQWtCLEVBRWxCLGlCQUFpQixFQUNqQixlQUFlLEVBRWYsZUFBZSxHQUNsQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBS2pJLE1BQU0sMEJBQTBCLEdBQStCO0lBQzNELEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxDQUFDO0lBQ0wsRUFBRSxFQUFFLENBQUM7SUFDTCxFQUFFLEVBQUUsQ0FBQztJQUNMLEVBQUUsRUFBRSxDQUFDO0NBQ1IsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQStCO0lBQ3ZELEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxDQUFDO0NBQ1IsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQStCO0lBQ3hELEVBQUUsRUFBRSxFQUFF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QVUsQ0FBQyxDQUFDLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xHLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqSCwwQkFBMEIsRUFBRSxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUYsOEJBQThCLEVBQUUsT0FBTyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3JHLENBQUM7SUFDTixDQUFDO3VHQXRIUSxlQUFlOzJGQUFmLGVBQWUsbW5EQy9FNUIsNHdDQTJDQSwwMEVEOEJjLGdCQUFnQixnUEFBRSxlQUFlLHNIQUFFLE9BQU8sK0VBQUUsaUJBQWlCOzsyRkFNOUQsZUFBZTtrQkFaM0IsU0FBUzsrQkFDSSxXQUFXLG1CQUNKLHVCQUF1QixDQUFDLE1BQU0sY0FHbkMsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxrQkFDeEQsQ0FBQyxPQUFPLENBQUMsUUFDbkI7d0JBQ0YsNEJBQTRCLEVBQUUsNkJBQTZCO3FCQUM5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgYWdvcmFwdWxzZVN5bWJvbCxcbiAgICBhcFNob3dUaGVhdGVyTWFza0hhcHB5LFxuICAgIGFwU2luZ2xlTmV1dHJhbCxcbiAgICBuZXR3b3JrRGVzY3JpcHRpb24sXG4gICAgTmV0d29ya05hbWUsXG4gICAgTmV0d29ya1N5bWJvbFBpcGUsXG4gICAgU3ltYm9sQ29tcG9uZW50LFxuICAgIFN5bWJvbFJlZ2lzdHJ5LFxuICAgIHRvTmV0d29ya1N5bWJvbCxcbn0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nT3B0aW1pemVkSW1hZ2UsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEF2YXRhck5ldHdvcmsgPSBOZXR3b3JrTmFtZTtcbmV4cG9ydCB0eXBlIEF2YXRhclNpemUgPSA1NiB8IDQ4IHwgNDAgfCAzNiB8IDMyIHwgMjQgfCAxNjtcblxuY29uc3Qgb25saW5lSWNvblNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAxNixcbiAgICA0ODogMTIsXG4gICAgNDA6IDEyLFxuICAgIDM2OiA4LFxuICAgIDMyOiA4LFxuICAgIDI0OiA2LFxuICAgIDE2OiA2LFxufTtcblxuY29uc3Qgc3ltYm9sU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjAsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxNixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBuZXR3b3JrU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDE2LFxuICAgIDQ4OiAxNixcbiAgICA0MDogMTYsXG4gICAgMzY6IDE2LFxuICAgIDMyOiAxMixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBpbml0aWFsU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjIsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxOCxcbiAgICAyNDogMTQsXG4gICAgMTY6IDEwLFxufTtcblxuY29uc3QgYXV0b21hdGljQmlnU3ltYm9sTmV0d29yazogQXZhdGFyTmV0d29ya1tdID0gWyd5b3V0dWJlJ107XG5cbnR5cGUgQmFja2dyb3VuZFZpZXcgPVxuICAgIHwgeyBtb2RlOiAnaW1hZ2UnOyBpbWFnZTogeyBzcmM6IHN0cmluZzsgc2l6ZTogbnVtYmVyOyBhbHQ/OiBzdHJpbmcgfSB9XG4gICAgfCB7IG1vZGU6ICdpbml0aWFscyc7IHRleHQ6IHN0cmluZyB9XG4gICAgfCB7IG1vZGU6ICdzeW1ib2wnOyBzeW1ib2xJZDogYWdvcmFwdWxzZVN5bWJvbDsgYmlnPzogYm9vbGVhbiB9XG4gICAgfCB7IG1vZGU/OiBuZXZlciB9O1xuXG50eXBlIE92ZXJsYXlWaWV3ID0geyBtb2RlOiAnb25saW5lJyB9IHwgeyBtb2RlOiAnbmV0d29yayc7IG5ldHdvcms6IE5ldHdvcmtOYW1lOyByb3VuZDogYm9vbGVhbiB9IHwgeyBtb2RlPzogbmV2ZXIgfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1hdmF0YXInLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nT3B0aW1pemVkSW1hZ2UsIFN5bWJvbENvbXBvbmVudCwgTmdDbGFzcywgTmV0d29ya1N5bWJvbFBpcGVdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbTmdTdHlsZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmJhY2tncm91bmQtZGVmYXVsdF0nOiAnIXNob3dCaWdOZXR3b3JrQmFja2dyb3VuZCgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQge1xuICAgIHByb2ZpbGVQaWN0dXJlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGFsdCA9IGlucHV0KCcnKTtcbiAgICBuZXR3b3JrID0gaW5wdXQodW5kZWZpbmVkLCB7XG4gICAgICAgIHRyYW5zZm9ybTogKHY/OiBBdmF0YXJOZXR3b3JrIHwgc3RyaW5nKSA9PiAodiAhPT0gdW5kZWZpbmVkID8gKHYgYXMgQXZhdGFyTmV0d29yaykgOiB2KSxcbiAgICB9KTtcbiAgICBzaXplID0gaW5wdXQ8QXZhdGFyU2l6ZSB8IGAke0F2YXRhclNpemV9YD4oNDApO1xuICAgIHVzZXJuYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHNob3dJbml0aWFscyA9IGlucHV0PGJvb2xlYW4gfCBzdHJpbmc+KCk7XG4gICAgYmlnTmV0d29yayA9IGlucHV0KGZhbHNlKTtcbiAgICBhbm9ueW1vdXMgPSBpbnB1dChmYWxzZSk7XG4gICAgb25saW5lID0gaW5wdXQoZmFsc2UpO1xuICAgIGhpZGVCaWdOZXR3b3JrID0gaW5wdXQoZmFsc2UsIHsgYWxpYXM6ICd5b3V0dWJlQXZhdGFyTW9kZScgfSk7XG4gICAgcm91bmRlZCA9IGlucHV0KHRydWUsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgcHJpdmF0ZSBpbWFnZUVycm9yID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIGJhY2tncm91bmRWaWV3ID0gY29tcHV0ZWQ8QmFja2dyb3VuZFZpZXc+KCgpID0+IHRoaXMuYnVpbGRCYWNrZ3JvdW5kVmlldygpKTtcbiAgICBvdmVybGF5VmlldyA9IGNvbXB1dGVkPE92ZXJsYXlWaWV3PigoKSA9PiB0aGlzLmJ1aWxkT3ZlcmxheVZpZXcoKSk7XG4gICAgcHJpdmF0ZSB1c2VCaWdOZXR3b3JrID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuYXV0b21hdGljQmlnU3ltYm9sTmV0d29yaygpIHx8IHRoaXMuYmlnTmV0d29yaygpKSAmJiB0aGlzLm5ldHdvcmsoKTtcbiAgICB9KTtcbiAgICBwcml2YXRlIGF1dG9tYXRpY0JpZ1N5bWJvbE5ldHdvcmsgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBhdXRvbWF0aWNCaWdTeW1ib2xOZXR3b3JrLmluY2x1ZGVzKHRoaXMubmV0d29yaygpIGFzIEF2YXRhck5ldHdvcmspO1xuICAgIH0pO1xuICAgIHByb3RlY3RlZCBzaG93QmlnTmV0d29ya0JhY2tncm91bmQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5hbm9ueW1vdXMoKSAmJiB0aGlzLnVzZUJpZ05ldHdvcmsoKSAmJiAoIXRoaXMudmFsaWRQcm9maWxlUGljdHVyZSgpIHx8ICF0aGlzLmhpZGVCaWdOZXR3b3JrKCkpO1xuICAgIH0pO1xuICAgIHByaXZhdGUgdmFsaWRQcm9maWxlUGljdHVyZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmltYWdlRXJyb3IoKSA/IHRoaXMucHJvZmlsZVBpY3R1cmUoKSA6IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnksXG4gICAgICAgIHByaXZhdGUgbmdTdHlsZTogTmdTdHlsZVxuICAgICkge1xuICAgICAgICBjb25zdCBuZXR3b3JrU3ltYm9scyA9IE9iamVjdC52YWx1ZXMobmV0d29ya0Rlc2NyaXB0aW9uKSAvL1xuICAgICAgICAgICAgLmZsYXRNYXAoKHsgc3ltYm9sIH0pID0+ICh0eXBlb2Ygc3ltYm9sICE9PSAnc3RyaW5nJyA/IFtzeW1ib2xdIDogW10pKTtcblxuICAgICAgICBzeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoWy4uLm5ldHdvcmtTeW1ib2xzLCBhcFNpbmdsZU5ldXRyYWwsIGFwU2hvd1RoZWF0ZXJNYXNrSGFwcHldKTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ1N0eWxlLm5nU3R5bGUgPSB0aGlzLmJ1aWxkSG9zdFN0eWxlKCk7XG4gICAgICAgICAgICB0aGlzLm5nU3R5bGUubmdEb0NoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSgpOyAvLyBvbiBjaGFuZ2VcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB0aGlzLmltYWdlRXJyb3Iuc2V0KGZhbHNlKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uSW1hZ2VFcnJvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbWFnZUVycm9yLnNldCh0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkQmFja2dyb3VuZFZpZXcoKTogQmFja2dyb3VuZFZpZXcge1xuICAgICAgICBsZXQgYmdWaWV3OiBCYWNrZ3JvdW5kVmlldztcblxuICAgICAgICBpZiAodGhpcy5zaG93QmlnTmV0d29ya0JhY2tncm91bmQoKSkge1xuICAgICAgICAgICAgYmdWaWV3ID0geyBtb2RlOiAnc3ltYm9sJywgc3ltYm9sSWQ6IHRvTmV0d29ya1N5bWJvbCh0aGlzLm5ldHdvcmsoKSEpLCBiaWc6IHRydWUgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFub255bW91cygpKSB7XG4gICAgICAgICAgICBiZ1ZpZXcgPSB7IG1vZGU6ICdzeW1ib2wnLCBzeW1ib2xJZDogYXBTaG93VGhlYXRlck1hc2tIYXBweS5uYW1lIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwcm9maWxlUGljdHVyZSA9IHRoaXMudmFsaWRQcm9maWxlUGljdHVyZSgpO1xuXG4gICAgICAgICAgICBpZiAocHJvZmlsZVBpY3R1cmUpIHtcbiAgICAgICAgICAgICAgICBiZ1ZpZXcgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGU6ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM6IHByb2ZpbGVQaWN0dXJlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogK3RoaXMuc2l6ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiB0aGlzLmFsdCgpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxzID0gdGhpcy5zaG93SW5pdGlhbHMoKTtcblxuICAgICAgICAgICAgICAgIGlmIChpbml0aWFscyAhPT0gZmFsc2UgJiYgaW5pdGlhbHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VEZWZhdWx0ID0gaW5pdGlhbHMgPT09IHRydWUgfHwgaW5pdGlhbHMgPT09ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVOYW1lID0gKHVzZURlZmF1bHQgPyB0aGlzLnVzZXJuYW1lKCk/LmNoYXJBdCgwKSA/PyAnJyA6IGluaXRpYWxzLnNsaWNlKDAsIDIpKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBiZ1ZpZXcgPSB7IG1vZGU6ICdpbml0aWFscycsIHRleHQ6IGNhbmRpZGF0ZU5hbWUgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBiZ1ZpZXcgPSB7IG1vZGU6ICdzeW1ib2wnLCBzeW1ib2xJZDogYXBTaW5nbGVOZXV0cmFsLm5hbWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYmdWaWV3O1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRPdmVybGF5VmlldygpOiBPdmVybGF5VmlldyB7XG4gICAgICAgIGxldCBvdmxWaWV3OiBPdmVybGF5VmlldyA9IHt9O1xuICAgICAgICBjb25zdCBuZXR3b3JrID0gdGhpcy5uZXR3b3JrKCk7XG5cbiAgICAgICAgaWYgKHRoaXMub25saW5lKCkpIHtcbiAgICAgICAgICAgIG92bFZpZXcgPSB7IG1vZGU6ICdvbmxpbmUnIH07XG4gICAgICAgIH0gZWxzZSBpZiAobmV0d29yayAmJiAhdGhpcy5zaG93QmlnTmV0d29ya0JhY2tncm91bmQoKSAmJiAhdGhpcy5hdXRvbWF0aWNCaWdTeW1ib2xOZXR3b3JrKCkpIHtcbiAgICAgICAgICAgIC8vIHVuaXQgdGVzdHMgaW4gcGxhdGZvcm0gcmVwbyBnaXZlcyByYW5kb20gbmV0d29yayB2YWx1ZXMgd2hpY2ggYXJlIHVuY2hlY2tlZCBieSB0aGUgY29tcGlsZXJcbiAgICAgICAgICAgIGNvbnN0IHsgcm91bmQgfSA9IG5ldHdvcmtEZXNjcmlwdGlvbltuZXR3b3JrXSA/PyB7fTtcbiAgICAgICAgICAgIG92bFZpZXcgPSB7IG1vZGU6ICduZXR3b3JrJywgbmV0d29yaywgcm91bmQgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdmxWaWV3O1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRIb3N0U3R5bGUoKSB7XG4gICAgICAgIGNvbnN0IGJnVmlldyA9IHRoaXMuYmFja2dyb3VuZFZpZXcoKTtcbiAgICAgICAgY29uc3Qgb3ZsTW9kZSA9IHRoaXMub3ZlcmxheVZpZXcoKS5tb2RlO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5zaXplKCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICctLWFwLWF2YXRhci1zaXplJzogYCR7c2l6ZX1weGAsXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItYm9yZGVyLXJhZGl1cyc6IHRoaXMucm91bmRlZCgpID8gJzEwMCUnIDogJ3ZhcigtLXN5cy1ib3JkZXItcmFkaXVzLXNtKScsXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItaW5pdGlhbHMtc2l6ZSc6IGJnVmlldy5tb2RlID09ICdpbml0aWFscycgPyBgJHtpbml0aWFsU2l6ZUJ5QXZhdGFyU2l6ZVtzaXplXX1weGAgOiAnJyxcbiAgICAgICAgICAgICctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZSc6IGJnVmlldy5tb2RlID09ICdzeW1ib2wnID8gYCR7YmdWaWV3LmJpZyA/IHNpemUgOiBzeW1ib2xTaXplQnlBdmF0YXJTaXplW3NpemVdfXB4YCA6ICcnLFxuICAgICAgICAgICAgJy0tYXAtYXZhdGFyLW5ldHdvcmstc2l6ZSc6IG92bE1vZGUgPT0gJ25ldHdvcmsnID8gYCR7bmV0d29ya1NpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgIDogJycsXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItb25saW5lLWljb24tc2l6ZSc6IG92bE1vZGUgPT0gJ29ubGluZScgPyBgJHtvbmxpbmVJY29uU2l6ZUJ5QXZhdGFyU2l6ZVtzaXplXX1weGAgOiAnJyxcbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCI8IS0tIGJhY2tncm91bmQgLS0+XG5AaWYgKGJhY2tncm91bmRWaWV3KCk7IGFzIGJnVmlldykge1xuICAgIEBzd2l0Y2ggKGJnVmlldy5tb2RlKSB7XG4gICAgICAgIEBjYXNlICgnaW1hZ2UnKSB7XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1pbWFnZVwiXG4gICAgICAgICAgICAgICAgW25nU3JjXT1cImJnVmlldy5pbWFnZS5zcmNcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJiZ1ZpZXcuaW1hZ2Uuc2l6ZVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJiZ1ZpZXcuaW1hZ2Uuc2l6ZVwiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJiZ1ZpZXcuaW1hZ2UuYWx0XCJcbiAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnaW5pdGlhbHMnKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctaW5pdGlhbHNcIj5cbiAgICAgICAgICAgICAgICB7eyBiZ1ZpZXcudGV4dCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdzeW1ib2wnKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiZy1zeW1ib2xcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnc3ltLScgKyBiZ1ZpZXcuc3ltYm9sSWQsIGJnVmlldy5iaWcgPyAnYmlnJyA6ICcnXVwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2wgW3N5bWJvbElkXT1cImJnVmlldy5zeW1ib2xJZFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuPCEtLSBvdmVybGF5IC0tPlxuQGlmIChvdmVybGF5VmlldygpOyBhcyBvdmxWaWV3KSB7XG4gICAgQHN3aXRjaCAob3ZsVmlldy5tb2RlKSB7XG4gICAgICAgIEBjYXNlICgnbmV0d29yaycpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm92bC1uZXR3b3JrXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mucm91bmRdPVwib3ZsVmlldy5yb3VuZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwib3ZsVmlldy5uZXR3b3JrXCI+XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbCBbc3ltYm9sSWRdPVwib3ZsVmlldy5uZXR3b3JrIHwgbmV0d29ya1N5bWJvbFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ29ubGluZScpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmwtb25saW5lXCI+PC9kaXY+XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -145,7 +145,7 @@ export class ToggleComponent {
|
|
|
145
145
|
multi: true,
|
|
146
146
|
},
|
|
147
147
|
MatDialog,
|
|
148
|
-
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-60);transition:background-color .25s}ap-toggle .toggle .switch-container .switch:hover{
|
|
148
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-60);transition:background-color .25s;cursor:pointer}ap-toggle .toggle .switch-container .switch:hover,ap-toggle .toggle .switch-container .switch:focus,ap-toggle .toggle .switch-container .switch:active{background:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch .knob{color:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch .knob.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch .knob.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch.checked:hover,ap-toggle .toggle .switch-container .switch.checked:focus{background:var(--ref-color-electric-blue-80)}ap-toggle .toggle .switch-container .switch.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked .knob{left:18px}ap-toggle .toggle .switch-container .switch.checked .knob ap-symbol,ap-toggle .toggle .switch-container .switch.checked .knob ap-symbol svg{color:var(--ref-color-electric-blue-150)}ap-toggle .toggle .switch-container .switch.disabled{background:var(--ref-color-grey-20)}ap-toggle .toggle .switch-container .switch.disabled .knob ap-symbol,ap-toggle .toggle .switch-container .switch.disabled .knob ap-symbol svg{color:var(--ref-color-grey-40)}ap-toggle .toggle .switch-container .switch .knob{width:12px;height:12px;background:#fff;border-radius:100%;position:absolute;transition:left .25s ease-in-out;left:2px}ap-toggle .toggle .switch-container .switch .knob ap-symbol,ap-toggle .toggle .switch-container .switch .knob ap-symbol svg{width:10px;height:10px;min-width:10px;max-width:10px;max-height:10px}ap-toggle .toggle .switch-container label{display:flex;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height)}ap-toggle .toggle .switch-container label:empty{display:none}ap-toggle .toggle .switch-container label.disabled{color:var(--ref-color-grey-60)}ap-toggle .toggle .switch-container label:hover:not(.disabled){cursor:pointer}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
149
149
|
}
|
|
150
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ToggleComponent, decorators: [{
|
|
151
151
|
type: Component,
|
|
@@ -157,7 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
157
157
|
multi: true,
|
|
158
158
|
},
|
|
159
159
|
MatDialog,
|
|
160
|
-
], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-60);transition:background-color .25s}ap-toggle .toggle .switch-container .switch:hover{
|
|
160
|
+
], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-60);transition:background-color .25s;cursor:pointer}ap-toggle .toggle .switch-container .switch:hover,ap-toggle .toggle .switch-container .switch:focus,ap-toggle .toggle .switch-container .switch:active{background:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch .knob{color:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch .knob.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch .knob.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch.checked:hover,ap-toggle .toggle .switch-container .switch.checked:focus{background:var(--ref-color-electric-blue-80)}ap-toggle .toggle .switch-container .switch.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked .knob{left:18px}ap-toggle .toggle .switch-container .switch.checked .knob ap-symbol,ap-toggle .toggle .switch-container .switch.checked .knob ap-symbol svg{color:var(--ref-color-electric-blue-150)}ap-toggle .toggle .switch-container .switch.disabled{background:var(--ref-color-grey-20)}ap-toggle .toggle .switch-container .switch.disabled .knob ap-symbol,ap-toggle .toggle .switch-container .switch.disabled .knob ap-symbol svg{color:var(--ref-color-grey-40)}ap-toggle .toggle .switch-container .switch .knob{width:12px;height:12px;background:#fff;border-radius:100%;position:absolute;transition:left .25s ease-in-out;left:2px}ap-toggle .toggle .switch-container .switch .knob ap-symbol,ap-toggle .toggle .switch-container .switch .knob ap-symbol svg{width:10px;height:10px;min-width:10px;max-width:10px;max-height:10px}ap-toggle .toggle .switch-container label{display:flex;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height)}ap-toggle .toggle .switch-container label:empty{display:none}ap-toggle .toggle .switch-container label.disabled{color:var(--ref-color-grey-60)}ap-toggle .toggle .switch-container label:hover:not(.disabled){cursor:pointer}\n"] }]
|
|
161
161
|
}], propDecorators: { inputElement: [{
|
|
162
162
|
type: ViewChild,
|
|
163
163
|
args: ['input']
|
|
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
205
205
|
}], change: [{
|
|
206
206
|
type: Output
|
|
207
207
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy90b2dnbGUvc3JjL3RvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvdG9nZ2xlL3NyYy90b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFGLE9BQU8sRUFBcUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFdkMsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUc7SUFDOUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztJQUM5QyxLQUFLLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFvQkYsTUFBTSxPQUFPLGVBQWU7SUFDUCxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsR0FBRyxHQUFHLE1BQU0sQ0FB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QyxJQUFJOzhCQU9qQixZQUFZO3NCQUEvQixTQUFTO3VCQUFDLE9BQU87Z0JBQ0UsWUFBWTtzQkFBL0IsU0FBUzt1QkFBQyxPQUFPO2dCQUNHLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFDTyxjQUFjO3NCQUF2QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDRyxlQUFlO3NCQUF6QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDaEIsYUFBYTtzQkFBckIsS0FBSztnQkFJTixRQUFRO3NCQUhQLEtBQUs7dUJBQUM7d0JBQ0gsU0FBUyxFQUFFLGdCQUFnQjtxQkFDOUI7Z0JBRVEsT0FBTztzQkFBZixLQUFLO2dCQUlOLFFBQVE7c0JBSFAsS0FBSzt1QkFBQzt3QkFDSCxTQUFTLEVBQUUsZ0JBQWdCO3FCQUM5QjtnQkFFUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJRixJQUFJO3NCQUhQLEtBQUs7dUJBQUM7d0JBQ0gsUUFBUSxFQUFFLElBQUk7cUJBQ2pCO2dCQVlrQixNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpcm1Nb2RhbENvbXBvbmVudCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvY29uZmlybS1tb2RhbCc7XG5pbXBvcnQgeyBhcENoZWNrLCBhcENsb3NlLCBTeW1ib2xDb21wb25lbnQsIFN5bWJvbFJlZ2lzdHJ5IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBBUF9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRvZ2dsZUNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLXRvZ2dsZScsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbU3ltYm9sQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQVBfQ0hFQ0tCT1hfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUb2dnbGVDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgTWF0RGlhbG9nLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN5bWJvbFJlZ2lzdHJ5ID0gaW5qZWN0KFN5bWJvbFJlZ2lzdHJ5KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdsYWJlbCcpIGxhYmVsRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gICAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoJ2FyaWEtbGFiZWxsZWRieScpIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKSBhcmlhRGVzY3JpYmVkYnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICB9KVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgY2hlY2tlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICB9KVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgY29uZmlybSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGNvbmZpcm1NZXNzYWdlID0gJ0lmIHlvdSB0b2dnbGUgdGhpcywgaXQgd2lsbCBhZmZlY3Qgb3RoZXIgdGhpbmdzLiBBcmUgeW91IHN1cmUnO1xuICAgIEBJbnB1dCgpIGNvbmZpcm1PayA9ICdDb25maXJtJztcbiAgICBASW5wdXQoKSBjb25maXJtQ2FuY2VsID0gJ0NhbmNlbCc7XG4gICAgQElucHV0KCkgY29uZmlybVRpdGxlID0gJ0FyZSB5b3Ugc3VyZT8nO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pXG4gICAgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbmFtZS5lbmRzV2l0aCgnQ2hlY2tib3gnKSkge1xuICAgICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWUgKyAnQ2hlY2tib3gnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGhhc0xhYmVsOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4hOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgb25Ub3VjaGVkITogKCkgPT4gdm9pZDtcblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzTGFiZWwgPSAhIXRoaXMubGFiZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ/LnRyaW0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbYXBDaGVjaywgYXBDbG9zZV0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWxFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhhc0xhYmVsID0gISF0aGlzLmxhYmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maXJtKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmFsdWUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlQ29uZmlybU1vZGFsID0ge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50VGV4dDogdGhpcy5jb25maXJtTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyVGl0bGU6IHRoaXMuY29uZmlybVRpdGxlLFxuICAgICAgICAgICAgICAgICAgICBmb290ZXJDYW5jZWxCdXR0b25MYWJlbDogdGhpcy5jb25maXJtQ2FuY2VsLFxuICAgICAgICAgICAgICAgICAgICBmb290ZXJDb25maXJtQnV0dG9uTGFiZWw6IHRoaXMuY29uZmlybU9rLFxuICAgICAgICAgICAgICAgICAgICBmb290ZXJDb25maXJtQnV0dG9uSWQ6ICdjb25maXJtJyxcbiAgICAgICAgICAgICAgICAgICAgZm9vdGVyQ2FuY2VsQnV0dG9uSWQ6ICdjYW5jZWwnLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kYWxDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdERpYWxvZ0NvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxDbGFzczogJ2Rlc2lnbi1zeXN0ZW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1NTBweCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IENvbmZpcm1Nb2RhbENvbXBvbmVudC5vcGVuKHRoaXMuZGlhbG9nLCB0b2dnbGVDb25maXJtTW9kYWwsIG1vZGFsQ29uZmlnKTtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWZcbiAgICAgICAgICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbmdlVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWQpO1xuICAgICAgICBpZiAodGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbikge1xuICAgICAgICAgICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLmNoZWNrZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXNzaWduaW5nIHRoZSB2YWx1ZSBhZ2FpbiBoZXJlIGlzIHJlZHVuZGFudCwgYnV0IHdlIGhhdmUgdG8gZG8gaXQgaW4gY2FzZSBpdCB3YXNcbiAgICAgICAgLy8gY2hhbmdlZCBpbnNpZGUgdGhlIGBjaGFuZ2VgIGxpc3RlbmVyIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGlucHV0IHRvIGJlIG91dCBvZiBzeW5jLlxuICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gdmFsdWU7XG4gICAgfVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuID0gZm47XG4gICAgfVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh7IHZhbHVlIH06IEZvcm1Db250cm9sKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkICYmXG4gICAgICAgICAgICAhdmFsdWUgJiYge1xuICAgICAgICAgICAgICAgIGludmFsaWQ6IHRydWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgX3ByZXZlbnRCdWJibGluZ0Zyb21MYWJlbChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoISFldmVudC50YXJnZXQgJiYgdGhpcy5sYWJlbEVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInRvZ2dsZVwiXG4gICAgKGNsaWNrKT1cIl9wcmV2ZW50QnViYmxpbmdGcm9tTGFiZWwoJGV2ZW50KVwiPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgICAgW2lkXT1cIm5hbWVcIlxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgIFtjbGFzcy5jaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICAoY2xpY2spPVwib25WYWx1ZUNoYW5nZSgpXCIgLz5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic3dpdGNoLWNvbnRhaW5lclwiXG4gICAgICAgIFtjbGFzcy5sYWJlbC1sZWZ0XT1cImxhYmVsUG9zaXRpb24gPT09ICdsZWZ0J1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInN3aXRjaFwiXG4gICAgICAgICAgICBbY2xhc3MuY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25WYWx1ZUNoYW5nZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia25vYlwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzeW1ib2xJZF09XCJjaGVja2VkID8gJ2NoZWNrJyA6ICdjbG9zZSdcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgI2xhYmVsXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2Zvcl09XCJuYW1lXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy90b2dnbGUvc3JjL3RvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvdG9nZ2xlL3NyYy90b2dnbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFGLE9BQU8sRUFBcUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFdkMsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUc7SUFDOUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztJQUM5QyxLQUFLLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFvQkYsTUFBTSxPQUFPLGVBQWU7SUFDUCxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsR0FBRyxHQUFHLE1BQU0sQ0FB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QyxJQUFJOzhCQU9qQixZQUFZO3NCQUEvQixTQUFTO3VCQUFDLE9BQU87Z0JBQ0UsWUFBWTtzQkFBL0IsU0FBUzt1QkFBQyxPQUFPO2dCQUNHLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFDTyxjQUFjO3NCQUF2QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDRyxlQUFlO3NCQUF6QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDaEIsYUFBYTtzQkFBckIsS0FBSztnQkFJTixRQUFRO3NCQUhQLEtBQUs7dUJBQUM7d0JBQ0gsU0FBUyxFQUFFLGdCQUFnQjtxQkFDOUI7Z0JBRVEsT0FBTztzQkFBZixLQUFLO2dCQUlOLFFBQVE7c0JBSFAsS0FBSzt1QkFBQzt3QkFDSCxTQUFTLEVBQUUsZ0JBQWdCO3FCQUM5QjtnQkFFUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJRixJQUFJO3NCQUhQLEtBQUs7dUJBQUM7d0JBQ0gsUUFBUSxFQUFFLElBQUk7cUJBQ2pCO2dCQVlrQixNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpcm1Nb2RhbENvbXBvbmVudCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvY29uZmlybS1tb2RhbCc7XG5pbXBvcnQgeyBhcENoZWNrLCBhcENsb3NlLCBTeW1ib2xDb21wb25lbnQsIFN5bWJvbFJlZ2lzdHJ5IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBBUF9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRvZ2dsZUNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLXRvZ2dsZScsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbU3ltYm9sQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQVBfQ0hFQ0tCT1hfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUb2dnbGVDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgTWF0RGlhbG9nLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN5bWJvbFJlZ2lzdHJ5ID0gaW5qZWN0KFN5bWJvbFJlZ2lzdHJ5KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdsYWJlbCcpIGxhYmVsRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gICAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoJ2FyaWEtbGFiZWxsZWRieScpIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKSBhcmlhRGVzY3JpYmVkYnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICB9KVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgY2hlY2tlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICB9KVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgY29uZmlybSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGNvbmZpcm1NZXNzYWdlID0gJ0lmIHlvdSB0b2dnbGUgdGhpcywgaXQgd2lsbCBhZmZlY3Qgb3RoZXIgdGhpbmdzLiBBcmUgeW91IHN1cmUnO1xuICAgIEBJbnB1dCgpIGNvbmZpcm1PayA9ICdDb25maXJtJztcbiAgICBASW5wdXQoKSBjb25maXJtQ2FuY2VsID0gJ0NhbmNlbCc7XG4gICAgQElucHV0KCkgY29uZmlybVRpdGxlID0gJ0FyZSB5b3Ugc3VyZT8nO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pXG4gICAgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbmFtZS5lbmRzV2l0aCgnQ2hlY2tib3gnKSkge1xuICAgICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWUgKyAnQ2hlY2tib3gnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGhhc0xhYmVsOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4hOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgb25Ub3VjaGVkITogKCkgPT4gdm9pZDtcblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzTGFiZWwgPSAhIXRoaXMubGFiZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ/LnRyaW0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbYXBDaGVjaywgYXBDbG9zZV0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWxFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhhc0xhYmVsID0gISF0aGlzLmxhYmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maXJtKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmFsdWUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlQ29uZmlybU1vZGFsID0ge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50VGV4dDogdGhpcy5jb25maXJtTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyVGl0bGU6IHRoaXMuY29uZmlybVRpdGxlLFxuICAgICAgICAgICAgICAgICAgICBmb290ZXJDYW5jZWxCdXR0b25MYWJlbDogdGhpcy5jb25maXJtQ2FuY2VsLFxuICAgICAgICAgICAgICAgICAgICBmb290ZXJDb25maXJtQnV0dG9uTGFiZWw6IHRoaXMuY29uZmlybU9rLFxuICAgICAgICAgICAgICAgICAgICBmb290ZXJDb25maXJtQnV0dG9uSWQ6ICdjb25maXJtJyxcbiAgICAgICAgICAgICAgICAgICAgZm9vdGVyQ2FuY2VsQnV0dG9uSWQ6ICdjYW5jZWwnLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kYWxDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdERpYWxvZ0NvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxDbGFzczogJ2Rlc2lnbi1zeXN0ZW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1NTBweCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IENvbmZpcm1Nb2RhbENvbXBvbmVudC5vcGVuKHRoaXMuZGlhbG9nLCB0b2dnbGVDb25maXJtTW9kYWwsIG1vZGFsQ29uZmlnKTtcbiAgICAgICAgICAgICAgICBkaWFsb2dSZWZcbiAgICAgICAgICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbmdlVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWQpO1xuICAgICAgICBpZiAodGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbikge1xuICAgICAgICAgICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLmNoZWNrZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXNzaWduaW5nIHRoZSB2YWx1ZSBhZ2FpbiBoZXJlIGlzIHJlZHVuZGFudCwgYnV0IHdlIGhhdmUgdG8gZG8gaXQgaW4gY2FzZSBpdCB3YXNcbiAgICAgICAgLy8gY2hhbmdlZCBpbnNpZGUgdGhlIGBjaGFuZ2VgIGxpc3RlbmVyIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGlucHV0IHRvIGJlIG91dCBvZiBzeW5jLlxuICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMuY2hlY2tlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gdmFsdWU7XG4gICAgfVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuID0gZm47XG4gICAgfVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh7IHZhbHVlIH06IEZvcm1Db250cm9sKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkICYmXG4gICAgICAgICAgICAhdmFsdWUgJiYge1xuICAgICAgICAgICAgICAgIGludmFsaWQ6IHRydWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgX3ByZXZlbnRCdWJibGluZ0Zyb21MYWJlbChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoISFldmVudC50YXJnZXQgJiYgdGhpcy5sYWJlbEVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cInRvZ2dsZVwiXG4gICAgKGNsaWNrKT1cIl9wcmV2ZW50QnViYmxpbmdGcm9tTGFiZWwoJGV2ZW50KVwiPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgICAgW2lkXT1cIm5hbWVcIlxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmRhdGEtdGVzdF09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgIFtjbGFzcy5jaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgICAoY2xpY2spPVwib25WYWx1ZUNoYW5nZSgpXCIgLz5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic3dpdGNoLWNvbnRhaW5lclwiXG4gICAgICAgIFtjbGFzcy5sYWJlbC1sZWZ0XT1cImxhYmVsUG9zaXRpb24gPT09ICdsZWZ0J1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInN3aXRjaFwiXG4gICAgICAgICAgICBbY2xhc3MuY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25WYWx1ZUNoYW5nZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia25vYlwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzeW1ib2xJZF09XCJjaGVja2VkID8gJ2NoZWNrJyA6ICdjbG9zZSdcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgI2xhYmVsXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2Zvcl09XCJuYW1lXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -50,22 +50,28 @@ class AvatarComponent {
|
|
|
50
50
|
transform: (v) => (v !== undefined ? v : v),
|
|
51
51
|
});
|
|
52
52
|
size = input(40);
|
|
53
|
-
username = input(
|
|
53
|
+
username = input();
|
|
54
54
|
showInitials = input();
|
|
55
55
|
bigNetwork = input(false);
|
|
56
56
|
anonymous = input(false);
|
|
57
57
|
online = input(false);
|
|
58
|
-
|
|
58
|
+
hideBigNetwork = input(false, { alias: 'youtubeAvatarMode' });
|
|
59
59
|
rounded = input(true, { transform: booleanAttribute });
|
|
60
60
|
imageError = signal(false);
|
|
61
61
|
backgroundView = computed(() => this.buildBackgroundView());
|
|
62
62
|
overlayView = computed(() => this.buildOverlayView());
|
|
63
63
|
useBigNetwork = computed(() => {
|
|
64
|
-
return (this.automaticBigSymbolNetwork() || this.bigNetwork()) &&
|
|
64
|
+
return (this.automaticBigSymbolNetwork() || this.bigNetwork()) && this.network();
|
|
65
65
|
});
|
|
66
66
|
automaticBigSymbolNetwork = computed(() => {
|
|
67
67
|
return automaticBigSymbolNetwork.includes(this.network());
|
|
68
68
|
});
|
|
69
|
+
showBigNetworkBackground = computed(() => {
|
|
70
|
+
return !this.anonymous() && this.useBigNetwork() && (!this.validProfilePicture() || !this.hideBigNetwork());
|
|
71
|
+
});
|
|
72
|
+
validProfilePicture = computed(() => {
|
|
73
|
+
return !this.imageError() ? this.profilePicture() : undefined;
|
|
74
|
+
});
|
|
69
75
|
constructor(symbolRegistry, ngStyle) {
|
|
70
76
|
this.ngStyle = ngStyle;
|
|
71
77
|
const networkSymbols = Object.values(networkDescription) //
|
|
@@ -84,16 +90,16 @@ class AvatarComponent {
|
|
|
84
90
|
this.imageError.set(true);
|
|
85
91
|
}
|
|
86
92
|
buildBackgroundView() {
|
|
87
|
-
let bgView
|
|
88
|
-
if (this.
|
|
93
|
+
let bgView;
|
|
94
|
+
if (this.showBigNetworkBackground()) {
|
|
89
95
|
bgView = { mode: 'symbol', symbolId: toNetworkSymbol(this.network()), big: true };
|
|
90
96
|
}
|
|
91
97
|
else if (this.anonymous()) {
|
|
92
98
|
bgView = { mode: 'symbol', symbolId: apShowTheaterMaskHappy.name };
|
|
93
99
|
}
|
|
94
100
|
else {
|
|
95
|
-
const profilePicture = this.
|
|
96
|
-
if (profilePicture
|
|
101
|
+
const profilePicture = this.validProfilePicture();
|
|
102
|
+
if (profilePicture) {
|
|
97
103
|
bgView = {
|
|
98
104
|
mode: 'image',
|
|
99
105
|
image: {
|
|
@@ -107,13 +113,11 @@ class AvatarComponent {
|
|
|
107
113
|
const initials = this.showInitials();
|
|
108
114
|
if (initials !== false && initials !== undefined) {
|
|
109
115
|
const useDefault = initials === true || initials === '';
|
|
110
|
-
const candidateName = (useDefault ? this.username()
|
|
116
|
+
const candidateName = (useDefault ? this.username()?.charAt(0) ?? '' : initials.slice(0, 2)).toUpperCase();
|
|
111
117
|
bgView = { mode: 'initials', text: candidateName };
|
|
112
118
|
}
|
|
113
119
|
else {
|
|
114
|
-
|
|
115
|
-
bgView = { mode: 'symbol', symbolId: apSingleNeutral.name };
|
|
116
|
-
}
|
|
120
|
+
bgView = { mode: 'symbol', symbolId: apSingleNeutral.name };
|
|
117
121
|
}
|
|
118
122
|
}
|
|
119
123
|
}
|
|
@@ -122,15 +126,13 @@ class AvatarComponent {
|
|
|
122
126
|
buildOverlayView() {
|
|
123
127
|
let ovlView = {};
|
|
124
128
|
const network = this.network();
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
ovlView = { mode: 'online' };
|
|
133
|
-
}
|
|
129
|
+
if (this.online()) {
|
|
130
|
+
ovlView = { mode: 'online' };
|
|
131
|
+
}
|
|
132
|
+
else if (network && !this.showBigNetworkBackground() && !this.automaticBigSymbolNetwork()) {
|
|
133
|
+
// unit tests in platform repo gives random network values which are unchecked by the compiler
|
|
134
|
+
const { round } = networkDescription[network] ?? {};
|
|
135
|
+
ovlView = { mode: 'network', network, round };
|
|
134
136
|
}
|
|
135
137
|
return ovlView;
|
|
136
138
|
}
|
|
@@ -148,12 +150,12 @@ class AvatarComponent {
|
|
|
148
150
|
};
|
|
149
151
|
}
|
|
150
152
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.SymbolRegistry }, { token: i2.NgStyle }], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { profilePicture: { classPropertyName: "profilePicture", publicName: "profilePicture", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, network: { classPropertyName: "network", publicName: "network", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, showInitials: { classPropertyName: "showInitials", publicName: "showInitials", isSignal: true, isRequired: false, transformFunction: null }, bigNetwork: { classPropertyName: "bigNetwork", publicName: "bigNetwork", isSignal: true, isRequired: false, transformFunction: null }, anonymous: { classPropertyName: "anonymous", publicName: "anonymous", isSignal: true, isRequired: false, transformFunction: null }, online: { classPropertyName: "online", publicName: "online", isSignal: true, isRequired: false, transformFunction: null },
|
|
153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { profilePicture: { classPropertyName: "profilePicture", publicName: "profilePicture", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, network: { classPropertyName: "network", publicName: "network", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, showInitials: { classPropertyName: "showInitials", publicName: "showInitials", isSignal: true, isRequired: false, transformFunction: null }, bigNetwork: { classPropertyName: "bigNetwork", publicName: "bigNetwork", isSignal: true, isRequired: false, transformFunction: null }, anonymous: { classPropertyName: "anonymous", publicName: "anonymous", isSignal: true, isRequired: false, transformFunction: null }, online: { classPropertyName: "online", publicName: "online", isSignal: true, isRequired: false, transformFunction: null }, hideBigNetwork: { classPropertyName: "hideBigNetwork", publicName: "youtubeAvatarMode", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.background-default": "!showBigNetworkBackground()" } }, hostDirectives: [{ directive: i2.NgStyle }], ngImport: i0, template: "<!-- background -->\n@if (backgroundView(); as bgView) {\n @switch (bgView.mode) {\n @case ('image') {\n <img\n class=\"bg-image\"\n [ngSrc]=\"bgView.image.src\"\n [width]=\"bgView.image.size\"\n [height]=\"bgView.image.size\"\n [alt]=\"bgView.image.alt\"\n (error)=\"onImageError()\" />\n }\n @case ('initials') {\n <div class=\"bg-initials\">\n {{ bgView.text }}\n </div>\n }\n @case ('symbol') {\n <div\n class=\"bg-symbol\"\n [ngClass]=\"['sym-' + bgView.symbolId, bgView.big ? 'big' : '']\">\n <ap-symbol [symbolId]=\"bgView.symbolId\" />\n </div>\n }\n }\n}\n\n<!-- overlay -->\n@if (overlayView(); as ovlView) {\n @switch (ovlView.mode) {\n @case ('network') {\n <div\n class=\"ovl-network\"\n [class.round]=\"ovlView.round\"\n [ngClass]=\"ovlView.network\">\n <ap-symbol [symbolId]=\"ovlView.network | networkSymbol\" />\n </div>\n }\n @case ('online') {\n <div class=\"ovl-online\"></div>\n }\n }\n}\n", styles: [":host{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);box-sizing:border-box;position:relative;border-radius:var(--ap-avatar-border-radius)}:host.background-default{background:var(--ref-color-grey-40);box-shadow:0 0 0 1px var(--ref-color-grey-10)}.bg-image{overflow:hidden;box-sizing:border-box;border-radius:var(--ap-avatar-border-radius)}.bg-symbol{display:flex;justify-content:center;align-items:center}.bg-symbol:not(.big) ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}.bg-symbol.big ap-symbol ::ng-deep .svg{top:unset!important;left:unset!important;width:104.35%!important;height:unset!important}.bg-initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}.ovl-network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}.ovl-network.round{border-radius:100%}.ovl-network.instagram{border-radius:28%}.ovl-network.linkedin{border-radius:6%}.ovl-network.googleMyBusiness,.ovl-network.google{box-shadow:none;border-radius:unset}.ovl-network ap-symbol ::ng-deep img{border-radius:0;border:none}.ovl-online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}\n"], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: NetworkSymbolPipe, name: "networkSymbol" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
152
154
|
}
|
|
153
155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
154
156
|
type: Component,
|
|
155
157
|
args: [{ selector: 'ap-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgOptimizedImage, SymbolComponent, NgClass, NetworkSymbolPipe], hostDirectives: [NgStyle], host: {
|
|
156
|
-
'[class.background-default]': '!
|
|
158
|
+
'[class.background-default]': '!showBigNetworkBackground()',
|
|
157
159
|
}, template: "<!-- background -->\n@if (backgroundView(); as bgView) {\n @switch (bgView.mode) {\n @case ('image') {\n <img\n class=\"bg-image\"\n [ngSrc]=\"bgView.image.src\"\n [width]=\"bgView.image.size\"\n [height]=\"bgView.image.size\"\n [alt]=\"bgView.image.alt\"\n (error)=\"onImageError()\" />\n }\n @case ('initials') {\n <div class=\"bg-initials\">\n {{ bgView.text }}\n </div>\n }\n @case ('symbol') {\n <div\n class=\"bg-symbol\"\n [ngClass]=\"['sym-' + bgView.symbolId, bgView.big ? 'big' : '']\">\n <ap-symbol [symbolId]=\"bgView.symbolId\" />\n </div>\n }\n }\n}\n\n<!-- overlay -->\n@if (overlayView(); as ovlView) {\n @switch (ovlView.mode) {\n @case ('network') {\n <div\n class=\"ovl-network\"\n [class.round]=\"ovlView.round\"\n [ngClass]=\"ovlView.network\">\n <ap-symbol [symbolId]=\"ovlView.network | networkSymbol\" />\n </div>\n }\n @case ('online') {\n <div class=\"ovl-online\"></div>\n }\n }\n}\n", styles: [":host{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);box-sizing:border-box;position:relative;border-radius:var(--ap-avatar-border-radius)}:host.background-default{background:var(--ref-color-grey-40);box-shadow:0 0 0 1px var(--ref-color-grey-10)}.bg-image{overflow:hidden;box-sizing:border-box;border-radius:var(--ap-avatar-border-radius)}.bg-symbol{display:flex;justify-content:center;align-items:center}.bg-symbol:not(.big) ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}.bg-symbol.big ap-symbol ::ng-deep .svg{top:unset!important;left:unset!important;width:104.35%!important;height:unset!important}.bg-initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}.ovl-network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}.ovl-network.round{border-radius:100%}.ovl-network.instagram{border-radius:28%}.ovl-network.linkedin{border-radius:6%}.ovl-network.googleMyBusiness,.ovl-network.google{box-shadow:none;border-radius:unset}.ovl-network ap-symbol ::ng-deep img{border-radius:0;border:none}.ovl-online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}\n"] }]
|
|
158
160
|
}], ctorParameters: () => [{ type: i1.SymbolRegistry }, { type: i2.NgStyle }] });
|
|
159
161
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-avatar.mjs","sources":["../../../libs/ui-components/avatar/src/avatar.component.ts","../../../libs/ui-components/avatar/src/avatar.component.html","../../../libs/ui-components/avatar/src/agorapulse-ui-components-avatar.ts"],"sourcesContent":["import {\n agorapulseSymbol,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n networkDescription,\n NetworkName,\n NetworkSymbolPipe,\n SymbolComponent,\n SymbolRegistry,\n toNetworkSymbol,\n} from '@agorapulse/ui-symbol';\nimport { NgClass, NgOptimizedImage, NgStyle } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, input, signal, untracked } from '@angular/core';\n\nexport type AvatarNetwork = NetworkName;\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\n\nconst onlineIconSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 12,\n 40: 12,\n 36: 8,\n 32: 8,\n 24: 6,\n 16: 6,\n};\n\nconst symbolSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 20,\n 36: 18,\n 32: 16,\n 24: 12,\n 16: 8,\n};\n\nconst networkSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 16,\n 40: 16,\n 36: 16,\n 32: 12,\n 24: 12,\n 16: 8,\n};\n\nconst initialSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 22,\n 36: 18,\n 32: 18,\n 24: 14,\n 16: 10,\n};\n\nconst automaticBigSymbolNetwork: AvatarNetwork[] = ['youtube'];\n\ntype BackgroundView =\n | { mode: 'image'; image: { src: string; size: number; alt?: string } }\n | { mode: 'initials'; text: string }\n | { mode: 'symbol'; symbolId: agorapulseSymbol; big?: boolean }\n | { mode?: never };\n\ntype OverlayView = { mode: 'online' } | { mode: 'network'; network: NetworkName; round: boolean } | { mode?: never };\n\n@Component({\n selector: 'ap-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgOptimizedImage, SymbolComponent, NgClass, NetworkSymbolPipe],\n hostDirectives: [NgStyle],\n host: {\n '[class.background-default]': '!useBigNetwork()',\n },\n})\nexport class AvatarComponent {\n profilePicture = input<string>();\n alt = input('');\n network = input(undefined, {\n transform: (v?: AvatarNetwork | string) => (v !== undefined ? (v as AvatarNetwork) : v),\n });\n size = input<AvatarSize | `${AvatarSize}`>(40);\n username = input('');\n showInitials = input<boolean | string>();\n bigNetwork = input(false);\n anonymous = input(false);\n online = input(false);\n hideNetwork = input(false, { alias: 'youtubeAvatarMode' });\n rounded = input(true, { transform: booleanAttribute });\n\n private imageError = signal(false);\n\n backgroundView = computed<BackgroundView>(() => this.buildBackgroundView());\n overlayView = computed<OverlayView>(() => this.buildOverlayView());\n protected useBigNetwork = computed(() => {\n return (this.automaticBigSymbolNetwork() || this.bigNetwork()) && !this.hideNetwork();\n });\n private automaticBigSymbolNetwork = computed(() => {\n return automaticBigSymbolNetwork.includes(this.network() as AvatarNetwork);\n });\n\n constructor(\n symbolRegistry: SymbolRegistry,\n private ngStyle: NgStyle\n ) {\n const networkSymbols = Object.values(networkDescription) //\n .flatMap(({ symbol }) => (typeof symbol !== 'string' ? [symbol] : []));\n\n symbolRegistry.registerSymbols([...networkSymbols, apSingleNeutral, apShowTheaterMaskHappy]);\n\n effect(() => {\n this.ngStyle.ngStyle = this.buildHostStyle();\n this.ngStyle.ngDoCheck();\n });\n effect(() => {\n this.profilePicture(); // on change\n untracked(() => this.imageError.set(false));\n });\n }\n\n onImageError(): void {\n this.imageError.set(true);\n }\n\n private buildBackgroundView(): BackgroundView {\n let bgView: BackgroundView = {};\n\n if (this.useBigNetwork()) {\n bgView = { mode: 'symbol', symbolId: toNetworkSymbol(this.network()!), big: true };\n } else if (this.anonymous()) {\n bgView = { mode: 'symbol', symbolId: apShowTheaterMaskHappy.name };\n } else {\n const profilePicture = this.profilePicture();\n\n if (profilePicture && !this.useBigNetwork() && !this.imageError()) {\n bgView = {\n mode: 'image',\n image: {\n src: profilePicture,\n size: +this.size(),\n alt: this.alt(),\n },\n };\n } else {\n const initials = this.showInitials();\n\n if (initials !== false && initials !== undefined) {\n const useDefault = initials === true || initials === '';\n const candidateName = (useDefault ? this.username().charAt(0) : initials.slice(0, 2)).toUpperCase();\n bgView = { mode: 'initials', text: candidateName };\n } else {\n if (!this.useBigNetwork()) {\n bgView = { mode: 'symbol', symbolId: apSingleNeutral.name };\n }\n }\n }\n }\n\n return bgView;\n }\n\n private buildOverlayView(): OverlayView {\n let ovlView: OverlayView = {};\n const network = this.network();\n\n if (!this.automaticBigSymbolNetwork()) {\n if (network && !this.bigNetwork() && !this.hideNetwork()) {\n // unit tests in platform repo gives random network values which are unchecked by the compiler\n const { round } = networkDescription[network] ?? {};\n ovlView = { mode: 'network', network, round };\n } else if (this.online()) {\n ovlView = { mode: 'online' };\n }\n }\n\n return ovlView;\n }\n\n private buildHostStyle() {\n const bgView = this.backgroundView();\n const ovlMode = this.overlayView().mode;\n const size = this.size();\n\n return {\n '--ap-avatar-size': `${size}px`,\n '--ap-avatar-border-radius': this.rounded() ? '100%' : 'var(--sys-border-radius-sm)',\n '--ap-avatar-initials-size': bgView.mode == 'initials' ? `${initialSizeByAvatarSize[size]}px` : '',\n '--ap-avatar-symbol-size': bgView.mode == 'symbol' ? `${bgView.big ? size : symbolSizeByAvatarSize[size]}px` : '',\n '--ap-avatar-network-size': ovlMode == 'network' ? `${networkSizeByAvatarSize[size]}px` : '',\n '--ap-avatar-online-icon-size': ovlMode == 'online' ? `${onlineIconSizeByAvatarSize[size]}px` : '',\n };\n }\n}\n","<!-- background -->\n@if (backgroundView(); as bgView) {\n @switch (bgView.mode) {\n @case ('image') {\n <img\n class=\"bg-image\"\n [ngSrc]=\"bgView.image.src\"\n [width]=\"bgView.image.size\"\n [height]=\"bgView.image.size\"\n [alt]=\"bgView.image.alt\"\n (error)=\"onImageError()\" />\n }\n @case ('initials') {\n <div class=\"bg-initials\">\n {{ bgView.text }}\n </div>\n }\n @case ('symbol') {\n <div\n class=\"bg-symbol\"\n [ngClass]=\"['sym-' + bgView.symbolId, bgView.big ? 'big' : '']\">\n <ap-symbol [symbolId]=\"bgView.symbolId\" />\n </div>\n }\n }\n}\n\n<!-- overlay -->\n@if (overlayView(); as ovlView) {\n @switch (ovlView.mode) {\n @case ('network') {\n <div\n class=\"ovl-network\"\n [class.round]=\"ovlView.round\"\n [ngClass]=\"ovlView.network\">\n <ap-symbol [symbolId]=\"ovlView.network | networkSymbol\" />\n </div>\n }\n @case ('online') {\n <div class=\"ovl-online\"></div>\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-avatar.mjs","sources":["../../../libs/ui-components/avatar/src/avatar.component.ts","../../../libs/ui-components/avatar/src/avatar.component.html","../../../libs/ui-components/avatar/src/agorapulse-ui-components-avatar.ts"],"sourcesContent":["import {\n agorapulseSymbol,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n networkDescription,\n NetworkName,\n NetworkSymbolPipe,\n SymbolComponent,\n SymbolRegistry,\n toNetworkSymbol,\n} from '@agorapulse/ui-symbol';\nimport { NgClass, NgOptimizedImage, NgStyle } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, input, signal, untracked } from '@angular/core';\n\nexport type AvatarNetwork = NetworkName;\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\n\nconst onlineIconSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 12,\n 40: 12,\n 36: 8,\n 32: 8,\n 24: 6,\n 16: 6,\n};\n\nconst symbolSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 20,\n 36: 18,\n 32: 16,\n 24: 12,\n 16: 8,\n};\n\nconst networkSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 16,\n 40: 16,\n 36: 16,\n 32: 12,\n 24: 12,\n 16: 8,\n};\n\nconst initialSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 22,\n 36: 18,\n 32: 18,\n 24: 14,\n 16: 10,\n};\n\nconst automaticBigSymbolNetwork: AvatarNetwork[] = ['youtube'];\n\ntype BackgroundView =\n | { mode: 'image'; image: { src: string; size: number; alt?: string } }\n | { mode: 'initials'; text: string }\n | { mode: 'symbol'; symbolId: agorapulseSymbol; big?: boolean }\n | { mode?: never };\n\ntype OverlayView = { mode: 'online' } | { mode: 'network'; network: NetworkName; round: boolean } | { mode?: never };\n\n@Component({\n selector: 'ap-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgOptimizedImage, SymbolComponent, NgClass, NetworkSymbolPipe],\n hostDirectives: [NgStyle],\n host: {\n '[class.background-default]': '!showBigNetworkBackground()',\n },\n})\nexport class AvatarComponent {\n profilePicture = input<string>();\n alt = input('');\n network = input(undefined, {\n transform: (v?: AvatarNetwork | string) => (v !== undefined ? (v as AvatarNetwork) : v),\n });\n size = input<AvatarSize | `${AvatarSize}`>(40);\n username = input<string>();\n showInitials = input<boolean | string>();\n bigNetwork = input(false);\n anonymous = input(false);\n online = input(false);\n hideBigNetwork = input(false, { alias: 'youtubeAvatarMode' });\n rounded = input(true, { transform: booleanAttribute });\n\n private imageError = signal(false);\n\n backgroundView = computed<BackgroundView>(() => this.buildBackgroundView());\n overlayView = computed<OverlayView>(() => this.buildOverlayView());\n private useBigNetwork = computed(() => {\n return (this.automaticBigSymbolNetwork() || this.bigNetwork()) && this.network();\n });\n private automaticBigSymbolNetwork = computed(() => {\n return automaticBigSymbolNetwork.includes(this.network() as AvatarNetwork);\n });\n protected showBigNetworkBackground = computed(() => {\n return !this.anonymous() && this.useBigNetwork() && (!this.validProfilePicture() || !this.hideBigNetwork());\n });\n private validProfilePicture = computed(() => {\n return !this.imageError() ? this.profilePicture() : undefined;\n });\n\n constructor(\n symbolRegistry: SymbolRegistry,\n private ngStyle: NgStyle\n ) {\n const networkSymbols = Object.values(networkDescription) //\n .flatMap(({ symbol }) => (typeof symbol !== 'string' ? [symbol] : []));\n\n symbolRegistry.registerSymbols([...networkSymbols, apSingleNeutral, apShowTheaterMaskHappy]);\n\n effect(() => {\n this.ngStyle.ngStyle = this.buildHostStyle();\n this.ngStyle.ngDoCheck();\n });\n effect(() => {\n this.profilePicture(); // on change\n untracked(() => this.imageError.set(false));\n });\n }\n\n onImageError(): void {\n this.imageError.set(true);\n }\n\n private buildBackgroundView(): BackgroundView {\n let bgView: BackgroundView;\n\n if (this.showBigNetworkBackground()) {\n bgView = { mode: 'symbol', symbolId: toNetworkSymbol(this.network()!), big: true };\n } else if (this.anonymous()) {\n bgView = { mode: 'symbol', symbolId: apShowTheaterMaskHappy.name };\n } else {\n const profilePicture = this.validProfilePicture();\n\n if (profilePicture) {\n bgView = {\n mode: 'image',\n image: {\n src: profilePicture,\n size: +this.size(),\n alt: this.alt(),\n },\n };\n } else {\n const initials = this.showInitials();\n\n if (initials !== false && initials !== undefined) {\n const useDefault = initials === true || initials === '';\n const candidateName = (useDefault ? this.username()?.charAt(0) ?? '' : initials.slice(0, 2)).toUpperCase();\n bgView = { mode: 'initials', text: candidateName };\n } else {\n bgView = { mode: 'symbol', symbolId: apSingleNeutral.name };\n }\n }\n }\n\n return bgView;\n }\n\n private buildOverlayView(): OverlayView {\n let ovlView: OverlayView = {};\n const network = this.network();\n\n if (this.online()) {\n ovlView = { mode: 'online' };\n } else if (network && !this.showBigNetworkBackground() && !this.automaticBigSymbolNetwork()) {\n // unit tests in platform repo gives random network values which are unchecked by the compiler\n const { round } = networkDescription[network] ?? {};\n ovlView = { mode: 'network', network, round };\n }\n\n return ovlView;\n }\n\n private buildHostStyle() {\n const bgView = this.backgroundView();\n const ovlMode = this.overlayView().mode;\n const size = this.size();\n\n return {\n '--ap-avatar-size': `${size}px`,\n '--ap-avatar-border-radius': this.rounded() ? '100%' : 'var(--sys-border-radius-sm)',\n '--ap-avatar-initials-size': bgView.mode == 'initials' ? `${initialSizeByAvatarSize[size]}px` : '',\n '--ap-avatar-symbol-size': bgView.mode == 'symbol' ? `${bgView.big ? size : symbolSizeByAvatarSize[size]}px` : '',\n '--ap-avatar-network-size': ovlMode == 'network' ? `${networkSizeByAvatarSize[size]}px` : '',\n '--ap-avatar-online-icon-size': ovlMode == 'online' ? `${onlineIconSizeByAvatarSize[size]}px` : '',\n };\n }\n}\n","<!-- background -->\n@if (backgroundView(); as bgView) {\n @switch (bgView.mode) {\n @case ('image') {\n <img\n class=\"bg-image\"\n [ngSrc]=\"bgView.image.src\"\n [width]=\"bgView.image.size\"\n [height]=\"bgView.image.size\"\n [alt]=\"bgView.image.alt\"\n (error)=\"onImageError()\" />\n }\n @case ('initials') {\n <div class=\"bg-initials\">\n {{ bgView.text }}\n </div>\n }\n @case ('symbol') {\n <div\n class=\"bg-symbol\"\n [ngClass]=\"['sym-' + bgView.symbolId, bgView.big ? 'big' : '']\">\n <ap-symbol [symbolId]=\"bgView.symbolId\" />\n </div>\n }\n }\n}\n\n<!-- overlay -->\n@if (overlayView(); as ovlView) {\n @switch (ovlView.mode) {\n @case ('network') {\n <div\n class=\"ovl-network\"\n [class.round]=\"ovlView.round\"\n [ngClass]=\"ovlView.network\">\n <ap-symbol [symbolId]=\"ovlView.network | networkSymbol\" />\n </div>\n }\n @case ('online') {\n <div class=\"ovl-online\"></div>\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -146,7 +146,7 @@ class ToggleComponent {
|
|
|
146
146
|
multi: true,
|
|
147
147
|
},
|
|
148
148
|
MatDialog,
|
|
149
|
-
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-60);transition:background-color .25s}ap-toggle .toggle .switch-container .switch:hover{
|
|
149
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-60);transition:background-color .25s;cursor:pointer}ap-toggle .toggle .switch-container .switch:hover,ap-toggle .toggle .switch-container .switch:focus,ap-toggle .toggle .switch-container .switch:active{background:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch .knob{color:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch .knob.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch .knob.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch.checked:hover,ap-toggle .toggle .switch-container .switch.checked:focus{background:var(--ref-color-electric-blue-80)}ap-toggle .toggle .switch-container .switch.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked .knob{left:18px}ap-toggle .toggle .switch-container .switch.checked .knob ap-symbol,ap-toggle .toggle .switch-container .switch.checked .knob ap-symbol svg{color:var(--ref-color-electric-blue-150)}ap-toggle .toggle .switch-container .switch.disabled{background:var(--ref-color-grey-20)}ap-toggle .toggle .switch-container .switch.disabled .knob ap-symbol,ap-toggle .toggle .switch-container .switch.disabled .knob ap-symbol svg{color:var(--ref-color-grey-40)}ap-toggle .toggle .switch-container .switch .knob{width:12px;height:12px;background:#fff;border-radius:100%;position:absolute;transition:left .25s ease-in-out;left:2px}ap-toggle .toggle .switch-container .switch .knob ap-symbol,ap-toggle .toggle .switch-container .switch .knob ap-symbol svg{width:10px;height:10px;min-width:10px;max-width:10px;max-height:10px}ap-toggle .toggle .switch-container label{display:flex;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height)}ap-toggle .toggle .switch-container label:empty{display:none}ap-toggle .toggle .switch-container label.disabled{color:var(--ref-color-grey-60)}ap-toggle .toggle .switch-container label:hover:not(.disabled){cursor:pointer}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
150
150
|
}
|
|
151
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ToggleComponent, decorators: [{
|
|
152
152
|
type: Component,
|
|
@@ -158,7 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
158
158
|
multi: true,
|
|
159
159
|
},
|
|
160
160
|
MatDialog,
|
|
161
|
-
], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-60);transition:background-color .25s}ap-toggle .toggle .switch-container .switch:hover{
|
|
161
|
+
], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n", styles: ["ap-toggle{position:relative}ap-toggle .toggle{display:flex;gap:8px;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);line-height:var(--sys-text-style-body-line-height);color:var(--ref-color-grey-100)}ap-toggle .toggle input.hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}ap-toggle .toggle input[type=checkbox]{margin:0;padding:0;width:0;height:0;transform:scale(0)}@media (hover: hover){ap-toggle .toggle input[type=checkbox]:focus:not(.disabled)~.switch-container .switch{outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px}}ap-toggle .toggle input[type=checkbox]:disabled~.switch-container .switch{pointer-events:none;cursor:default}ap-toggle .toggle .switch-container{display:flex;gap:var(--ref-spacing-xs);align-items:center}ap-toggle .toggle .switch-container.label-left{flex-direction:row-reverse}ap-toggle .toggle .switch-container .switch{box-sizing:content-box;position:relative;display:flex;align-items:center;padding:2px;width:28px;height:12px;border-radius:16px;background:var(--ref-color-grey-60);transition:background-color .25s;cursor:pointer}ap-toggle .toggle .switch-container .switch:hover,ap-toggle .toggle .switch-container .switch:focus,ap-toggle .toggle .switch-container .switch:active{background:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch .knob{color:var(--ref-color-grey-80)}ap-toggle .toggle .switch-container .switch .knob.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch .knob.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked{background:var(--ref-color-electric-blue-100)}ap-toggle .toggle .switch-container .switch.checked:hover,ap-toggle .toggle .switch-container .switch.checked:focus{background:var(--ref-color-electric-blue-80)}ap-toggle .toggle .switch-container .switch.checked:active{background:var(--ref-color-electric-blue-60)}ap-toggle .toggle .switch-container .switch.checked .knob{left:18px}ap-toggle .toggle .switch-container .switch.checked .knob ap-symbol,ap-toggle .toggle .switch-container .switch.checked .knob ap-symbol svg{color:var(--ref-color-electric-blue-150)}ap-toggle .toggle .switch-container .switch.disabled{background:var(--ref-color-grey-20)}ap-toggle .toggle .switch-container .switch.disabled .knob ap-symbol,ap-toggle .toggle .switch-container .switch.disabled .knob ap-symbol svg{color:var(--ref-color-grey-40)}ap-toggle .toggle .switch-container .switch .knob{width:12px;height:12px;background:#fff;border-radius:100%;position:absolute;transition:left .25s ease-in-out;left:2px}ap-toggle .toggle .switch-container .switch .knob ap-symbol,ap-toggle .toggle .switch-container .switch .knob ap-symbol svg{width:10px;height:10px;min-width:10px;max-width:10px;max-height:10px}ap-toggle .toggle .switch-container label{display:flex;align-items:center;font-family:var(--sys-text-style-body-font-family);font-size:var(--sys-text-style-body-size);font-weight:var(--sys-text-style-body-weight);line-height:var(--sys-text-style-body-line-height)}ap-toggle .toggle .switch-container label:empty{display:none}ap-toggle .toggle .switch-container label.disabled{color:var(--ref-color-grey-60)}ap-toggle .toggle .switch-container label:hover:not(.disabled){cursor:pointer}\n"] }]
|
|
162
162
|
}], propDecorators: { inputElement: [{
|
|
163
163
|
type: ViewChild,
|
|
164
164
|
args: ['input']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-toggle.mjs","sources":["../../../libs/ui-components/toggle/src/toggle.component.ts","../../../libs/ui-components/toggle/src/toggle.component.html","../../../libs/ui-components/toggle/src/agorapulse-ui-components-toggle.ts"],"sourcesContent":["import {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ConfirmModalComponent } from '@agorapulse/ui-components/confirm-modal';\nimport { apCheck, apClose, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { first } from 'rxjs/operators';\n\nexport const AP_CHECKBOX_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-toggle',\n styleUrls: ['./toggle.component.scss'],\n standalone: true,\n imports: [SymbolComponent],\n providers: [\n AP_CHECKBOX_CONTROL_VALUE_ACCESSOR,\n {\n provide: NG_VALIDATORS,\n useExisting: ToggleComponent,\n multi: true,\n },\n MatDialog,\n ],\n templateUrl: './toggle.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class ToggleComponent implements ControlValueAccessor, AfterContentInit, OnChanges, OnInit {\n private readonly symbolRegistry = inject(SymbolRegistry);\n private readonly dialog = inject(MatDialog);\n private readonly cdr = inject(ChangeDetectorRef);\n\n @ViewChild('input') inputElement!: ElementRef<HTMLInputElement>;\n @ViewChild('label') labelElement!: ElementRef<HTMLInputElement>;\n @Input('aria-label') ariaLabel: string = '';\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n @Input('aria-describedby') ariaDescribedby: string | null = null;\n @Input() labelPosition: 'left' | 'right' = 'right';\n @Input({\n transform: booleanAttribute,\n })\n disabled = false;\n @Input() checked = false;\n @Input({\n transform: booleanAttribute,\n })\n required = false;\n @Input() confirm = false;\n @Input() confirmMessage = 'If you toggle this, it will affect other things. Are you sure';\n @Input() confirmOk = 'Confirm';\n @Input() confirmCancel = 'Cancel';\n @Input() confirmTitle = 'Are you sure?';\n @Input({\n required: true,\n })\n set name(name: string) {\n if (!name.endsWith('Checkbox')) {\n this._name = name + 'Checkbox';\n } else {\n this._name = name;\n }\n }\n get name(): string {\n return this._name;\n }\n // eslint-disable-next-line\n @Output() readonly change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n hasLabel: boolean = false;\n private _name = '';\n private _controlValueAccessorChangeFn!: (value: boolean) => void;\n onTouched!: () => void;\n\n ngOnChanges(): void {\n if (this.labelElement) {\n this.hasLabel = !!this.labelElement.nativeElement.textContent?.trim();\n }\n }\n\n ngOnInit() {\n this.symbolRegistry.registerSymbols([apCheck, apClose]);\n }\n\n ngAfterContentInit(): void {\n if (this.labelElement) {\n this.hasLabel = !!this.labelElement.nativeElement.textContent?.trim();\n }\n }\n\n onValueChange() {\n if (!this.disabled) {\n if (!this.confirm) {\n if (this.onTouched) {\n this.onTouched();\n }\n this.changeValue();\n } else {\n const toggleConfirmModal = {\n contentText: this.confirmMessage,\n headerTitle: this.confirmTitle,\n footerCancelButtonLabel: this.confirmCancel,\n footerConfirmButtonLabel: this.confirmOk,\n footerConfirmButtonId: 'confirm',\n footerCancelButtonId: 'cancel',\n };\n const modalConfig = {\n matDialogConfig: {\n panelClass: 'design-system',\n width: '550px',\n },\n };\n\n const dialogRef = ConfirmModalComponent.open(this.dialog, toggleConfirmModal, modalConfig);\n dialogRef\n .afterClosed()\n .pipe(first())\n .subscribe(result => {\n if (result) {\n if (this.onTouched) {\n this.onTouched();\n }\n this.changeValue();\n }\n });\n }\n }\n }\n\n changeValue(): void {\n this.checked = !this.checked;\n this.focus();\n this.change.emit(this.checked);\n if (this._controlValueAccessorChangeFn) {\n this._controlValueAccessorChangeFn(this.checked);\n }\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this.inputElement) {\n this.inputElement.nativeElement.checked = this.checked;\n }\n this.cdr.markForCheck();\n }\n\n focus() {\n this.inputElement.nativeElement.focus();\n }\n\n writeValue(value: boolean): void {\n this.checked = value;\n }\n registerOnChange(fn: (value: boolean) => void): void {\n this._controlValueAccessorChangeFn = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n validate({ value }: FormControl) {\n return (\n this.required &&\n !value && {\n invalid: true,\n }\n );\n }\n\n _preventBubblingFromLabel(event: MouseEvent) {\n if (!!event.target && this.labelElement.nativeElement.contains(event.target as HTMLElement)) {\n event.stopPropagation();\n }\n }\n}\n","<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-toggle.mjs","sources":["../../../libs/ui-components/toggle/src/toggle.component.ts","../../../libs/ui-components/toggle/src/toggle.component.html","../../../libs/ui-components/toggle/src/agorapulse-ui-components-toggle.ts"],"sourcesContent":["import {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { ConfirmModalComponent } from '@agorapulse/ui-components/confirm-modal';\nimport { apCheck, apClose, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { first } from 'rxjs/operators';\n\nexport const AP_CHECKBOX_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-toggle',\n styleUrls: ['./toggle.component.scss'],\n standalone: true,\n imports: [SymbolComponent],\n providers: [\n AP_CHECKBOX_CONTROL_VALUE_ACCESSOR,\n {\n provide: NG_VALIDATORS,\n useExisting: ToggleComponent,\n multi: true,\n },\n MatDialog,\n ],\n templateUrl: './toggle.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class ToggleComponent implements ControlValueAccessor, AfterContentInit, OnChanges, OnInit {\n private readonly symbolRegistry = inject(SymbolRegistry);\n private readonly dialog = inject(MatDialog);\n private readonly cdr = inject(ChangeDetectorRef);\n\n @ViewChild('input') inputElement!: ElementRef<HTMLInputElement>;\n @ViewChild('label') labelElement!: ElementRef<HTMLInputElement>;\n @Input('aria-label') ariaLabel: string = '';\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n @Input('aria-describedby') ariaDescribedby: string | null = null;\n @Input() labelPosition: 'left' | 'right' = 'right';\n @Input({\n transform: booleanAttribute,\n })\n disabled = false;\n @Input() checked = false;\n @Input({\n transform: booleanAttribute,\n })\n required = false;\n @Input() confirm = false;\n @Input() confirmMessage = 'If you toggle this, it will affect other things. Are you sure';\n @Input() confirmOk = 'Confirm';\n @Input() confirmCancel = 'Cancel';\n @Input() confirmTitle = 'Are you sure?';\n @Input({\n required: true,\n })\n set name(name: string) {\n if (!name.endsWith('Checkbox')) {\n this._name = name + 'Checkbox';\n } else {\n this._name = name;\n }\n }\n get name(): string {\n return this._name;\n }\n // eslint-disable-next-line\n @Output() readonly change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n hasLabel: boolean = false;\n private _name = '';\n private _controlValueAccessorChangeFn!: (value: boolean) => void;\n onTouched!: () => void;\n\n ngOnChanges(): void {\n if (this.labelElement) {\n this.hasLabel = !!this.labelElement.nativeElement.textContent?.trim();\n }\n }\n\n ngOnInit() {\n this.symbolRegistry.registerSymbols([apCheck, apClose]);\n }\n\n ngAfterContentInit(): void {\n if (this.labelElement) {\n this.hasLabel = !!this.labelElement.nativeElement.textContent?.trim();\n }\n }\n\n onValueChange() {\n if (!this.disabled) {\n if (!this.confirm) {\n if (this.onTouched) {\n this.onTouched();\n }\n this.changeValue();\n } else {\n const toggleConfirmModal = {\n contentText: this.confirmMessage,\n headerTitle: this.confirmTitle,\n footerCancelButtonLabel: this.confirmCancel,\n footerConfirmButtonLabel: this.confirmOk,\n footerConfirmButtonId: 'confirm',\n footerCancelButtonId: 'cancel',\n };\n const modalConfig = {\n matDialogConfig: {\n panelClass: 'design-system',\n width: '550px',\n },\n };\n\n const dialogRef = ConfirmModalComponent.open(this.dialog, toggleConfirmModal, modalConfig);\n dialogRef\n .afterClosed()\n .pipe(first())\n .subscribe(result => {\n if (result) {\n if (this.onTouched) {\n this.onTouched();\n }\n this.changeValue();\n }\n });\n }\n }\n }\n\n changeValue(): void {\n this.checked = !this.checked;\n this.focus();\n this.change.emit(this.checked);\n if (this._controlValueAccessorChangeFn) {\n this._controlValueAccessorChangeFn(this.checked);\n }\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this.inputElement) {\n this.inputElement.nativeElement.checked = this.checked;\n }\n this.cdr.markForCheck();\n }\n\n focus() {\n this.inputElement.nativeElement.focus();\n }\n\n writeValue(value: boolean): void {\n this.checked = value;\n }\n registerOnChange(fn: (value: boolean) => void): void {\n this._controlValueAccessorChangeFn = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n validate({ value }: FormControl) {\n return (\n this.required &&\n !value && {\n invalid: true,\n }\n );\n }\n\n _preventBubblingFromLabel(event: MouseEvent) {\n if (!!event.target && this.labelElement.nativeElement.contains(event.target as HTMLElement)) {\n event.stopPropagation();\n }\n }\n}\n","<div\n class=\"toggle\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <input\n #input\n class=\"hidden\"\n type=\"checkbox\"\n role=\"switch\"\n [id]=\"name\"\n [name]=\"name\"\n [checked]=\"checked\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.data-test]=\"name\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"checked\"\n [class.checked]=\"checked\"\n (click)=\"onValueChange()\" />\n <div\n class=\"switch-container\"\n [class.label-left]=\"labelPosition === 'left'\">\n <div\n class=\"switch\"\n [class.checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (click)=\"onValueChange()\">\n <div class=\"knob\">\n <ap-symbol\n [class.checked]=\"checked\"\n [symbolId]=\"checked ? 'check' : 'close'\"\n />\n </div>\n </div>\n <label\n #label\n [class.disabled]=\"disabled\"\n [for]=\"name\">\n <ng-content />\n </label>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agorapulse/ui-components",
|
|
3
3
|
"description": "Agorapulse UI Components Library",
|
|
4
|
-
"version": "17.5.
|
|
4
|
+
"version": "17.5.4",
|
|
5
5
|
"author": "Benoit Hediard",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -61,6 +61,12 @@
|
|
|
61
61
|
"esm": "./esm2022/avatar/agorapulse-ui-components-avatar.mjs",
|
|
62
62
|
"default": "./fesm2022/agorapulse-ui-components-avatar.mjs"
|
|
63
63
|
},
|
|
64
|
+
"./button": {
|
|
65
|
+
"types": "./button/index.d.ts",
|
|
66
|
+
"esm2022": "./esm2022/button/agorapulse-ui-components-button.mjs",
|
|
67
|
+
"esm": "./esm2022/button/agorapulse-ui-components-button.mjs",
|
|
68
|
+
"default": "./fesm2022/agorapulse-ui-components-button.mjs"
|
|
69
|
+
},
|
|
64
70
|
"./checkbox": {
|
|
65
71
|
"types": "./checkbox/index.d.ts",
|
|
66
72
|
"esm2022": "./esm2022/checkbox/agorapulse-ui-components-checkbox.mjs",
|
|
@@ -73,12 +79,6 @@
|
|
|
73
79
|
"esm": "./esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs",
|
|
74
80
|
"default": "./fesm2022/agorapulse-ui-components-confirm-modal.mjs"
|
|
75
81
|
},
|
|
76
|
-
"./button": {
|
|
77
|
-
"types": "./button/index.d.ts",
|
|
78
|
-
"esm2022": "./esm2022/button/agorapulse-ui-components-button.mjs",
|
|
79
|
-
"esm": "./esm2022/button/agorapulse-ui-components-button.mjs",
|
|
80
|
-
"default": "./fesm2022/agorapulse-ui-components-button.mjs"
|
|
81
|
-
},
|
|
82
82
|
"./counter": {
|
|
83
83
|
"types": "./counter/index.d.ts",
|
|
84
84
|
"esm2022": "./esm2022/counter/agorapulse-ui-components-counter.mjs",
|
|
@@ -91,18 +91,18 @@
|
|
|
91
91
|
"esm": "./esm2022/datepicker/agorapulse-ui-components-datepicker.mjs",
|
|
92
92
|
"default": "./fesm2022/agorapulse-ui-components-datepicker.mjs"
|
|
93
93
|
},
|
|
94
|
-
"./directives": {
|
|
95
|
-
"types": "./directives/index.d.ts",
|
|
96
|
-
"esm2022": "./esm2022/directives/agorapulse-ui-components-directives.mjs",
|
|
97
|
-
"esm": "./esm2022/directives/agorapulse-ui-components-directives.mjs",
|
|
98
|
-
"default": "./fesm2022/agorapulse-ui-components-directives.mjs"
|
|
99
|
-
},
|
|
100
94
|
"./dot-stepper": {
|
|
101
95
|
"types": "./dot-stepper/index.d.ts",
|
|
102
96
|
"esm2022": "./esm2022/dot-stepper/agorapulse-ui-components-dot-stepper.mjs",
|
|
103
97
|
"esm": "./esm2022/dot-stepper/agorapulse-ui-components-dot-stepper.mjs",
|
|
104
98
|
"default": "./fesm2022/agorapulse-ui-components-dot-stepper.mjs"
|
|
105
99
|
},
|
|
100
|
+
"./directives": {
|
|
101
|
+
"types": "./directives/index.d.ts",
|
|
102
|
+
"esm2022": "./esm2022/directives/agorapulse-ui-components-directives.mjs",
|
|
103
|
+
"esm": "./esm2022/directives/agorapulse-ui-components-directives.mjs",
|
|
104
|
+
"default": "./fesm2022/agorapulse-ui-components-directives.mjs"
|
|
105
|
+
},
|
|
106
106
|
"./form-field": {
|
|
107
107
|
"types": "./form-field/index.d.ts",
|
|
108
108
|
"esm2022": "./esm2022/form-field/agorapulse-ui-components-form-field.mjs",
|
|
@@ -205,18 +205,18 @@
|
|
|
205
205
|
"esm": "./esm2022/popmenu/agorapulse-ui-components-popmenu.mjs",
|
|
206
206
|
"default": "./fesm2022/agorapulse-ui-components-popmenu.mjs"
|
|
207
207
|
},
|
|
208
|
-
"./radio": {
|
|
209
|
-
"types": "./radio/index.d.ts",
|
|
210
|
-
"esm2022": "./esm2022/radio/agorapulse-ui-components-radio.mjs",
|
|
211
|
-
"esm": "./esm2022/radio/agorapulse-ui-components-radio.mjs",
|
|
212
|
-
"default": "./fesm2022/agorapulse-ui-components-radio.mjs"
|
|
213
|
-
},
|
|
214
208
|
"./range-slider": {
|
|
215
209
|
"types": "./range-slider/index.d.ts",
|
|
216
210
|
"esm2022": "./esm2022/range-slider/agorapulse-ui-components-range-slider.mjs",
|
|
217
211
|
"esm": "./esm2022/range-slider/agorapulse-ui-components-range-slider.mjs",
|
|
218
212
|
"default": "./fesm2022/agorapulse-ui-components-range-slider.mjs"
|
|
219
213
|
},
|
|
214
|
+
"./radio": {
|
|
215
|
+
"types": "./radio/index.d.ts",
|
|
216
|
+
"esm2022": "./esm2022/radio/agorapulse-ui-components-radio.mjs",
|
|
217
|
+
"esm": "./esm2022/radio/agorapulse-ui-components-radio.mjs",
|
|
218
|
+
"default": "./fesm2022/agorapulse-ui-components-radio.mjs"
|
|
219
|
+
},
|
|
220
220
|
"./select": {
|
|
221
221
|
"types": "./select/index.d.ts",
|
|
222
222
|
"esm2022": "./esm2022/select/agorapulse-ui-components-select.mjs",
|
|
@@ -229,12 +229,6 @@
|
|
|
229
229
|
"esm": "./esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs",
|
|
230
230
|
"default": "./fesm2022/agorapulse-ui-components-slide-toggle.mjs"
|
|
231
231
|
},
|
|
232
|
-
"./snackbars-thread": {
|
|
233
|
-
"types": "./snackbars-thread/index.d.ts",
|
|
234
|
-
"esm2022": "./esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs",
|
|
235
|
-
"esm": "./esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs",
|
|
236
|
-
"default": "./fesm2022/agorapulse-ui-components-snackbars-thread.mjs"
|
|
237
|
-
},
|
|
238
232
|
"./social-button": {
|
|
239
233
|
"types": "./social-button/index.d.ts",
|
|
240
234
|
"esm2022": "./esm2022/social-button/agorapulse-ui-components-social-button.mjs",
|
|
@@ -247,17 +241,23 @@
|
|
|
247
241
|
"esm": "./esm2022/split-button/agorapulse-ui-components-split-button.mjs",
|
|
248
242
|
"default": "./fesm2022/agorapulse-ui-components-split-button.mjs"
|
|
249
243
|
},
|
|
244
|
+
"./snackbars-thread": {
|
|
245
|
+
"types": "./snackbars-thread/index.d.ts",
|
|
246
|
+
"esm2022": "./esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs",
|
|
247
|
+
"esm": "./esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs",
|
|
248
|
+
"default": "./fesm2022/agorapulse-ui-components-snackbars-thread.mjs"
|
|
249
|
+
},
|
|
250
250
|
"./status": {
|
|
251
251
|
"types": "./status/index.d.ts",
|
|
252
252
|
"esm2022": "./esm2022/status/agorapulse-ui-components-status.mjs",
|
|
253
253
|
"esm": "./esm2022/status/agorapulse-ui-components-status.mjs",
|
|
254
254
|
"default": "./fesm2022/agorapulse-ui-components-status.mjs"
|
|
255
255
|
},
|
|
256
|
-
"./
|
|
257
|
-
"types": "./
|
|
258
|
-
"esm2022": "./esm2022/
|
|
259
|
-
"esm": "./esm2022/
|
|
260
|
-
"default": "./fesm2022/agorapulse-ui-components-
|
|
256
|
+
"./tag": {
|
|
257
|
+
"types": "./tag/index.d.ts",
|
|
258
|
+
"esm2022": "./esm2022/tag/agorapulse-ui-components-tag.mjs",
|
|
259
|
+
"esm": "./esm2022/tag/agorapulse-ui-components-tag.mjs",
|
|
260
|
+
"default": "./fesm2022/agorapulse-ui-components-tag.mjs"
|
|
261
261
|
},
|
|
262
262
|
"./stepper": {
|
|
263
263
|
"types": "./stepper/index.d.ts",
|
|
@@ -265,18 +265,18 @@
|
|
|
265
265
|
"esm": "./esm2022/stepper/agorapulse-ui-components-stepper.mjs",
|
|
266
266
|
"default": "./fesm2022/agorapulse-ui-components-stepper.mjs"
|
|
267
267
|
},
|
|
268
|
-
"./tag": {
|
|
269
|
-
"types": "./tag/index.d.ts",
|
|
270
|
-
"esm2022": "./esm2022/tag/agorapulse-ui-components-tag.mjs",
|
|
271
|
-
"esm": "./esm2022/tag/agorapulse-ui-components-tag.mjs",
|
|
272
|
-
"default": "./fesm2022/agorapulse-ui-components-tag.mjs"
|
|
273
|
-
},
|
|
274
268
|
"./text-measurement": {
|
|
275
269
|
"types": "./text-measurement/index.d.ts",
|
|
276
270
|
"esm2022": "./esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs",
|
|
277
271
|
"esm": "./esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs",
|
|
278
272
|
"default": "./fesm2022/agorapulse-ui-components-text-measurement.mjs"
|
|
279
273
|
},
|
|
274
|
+
"./status-card": {
|
|
275
|
+
"types": "./status-card/index.d.ts",
|
|
276
|
+
"esm2022": "./esm2022/status-card/agorapulse-ui-components-status-card.mjs",
|
|
277
|
+
"esm": "./esm2022/status-card/agorapulse-ui-components-status-card.mjs",
|
|
278
|
+
"default": "./fesm2022/agorapulse-ui-components-status-card.mjs"
|
|
279
|
+
},
|
|
280
280
|
"./textarea": {
|
|
281
281
|
"types": "./textarea/index.d.ts",
|
|
282
282
|
"esm2022": "./esm2022/textarea/agorapulse-ui-components-textarea.mjs",
|
|
@@ -295,18 +295,18 @@
|
|
|
295
295
|
"esm": "./esm2022/tooltip/agorapulse-ui-components-tooltip.mjs",
|
|
296
296
|
"default": "./fesm2022/agorapulse-ui-components-tooltip.mjs"
|
|
297
297
|
},
|
|
298
|
-
"./legacy/input": {
|
|
299
|
-
"types": "./legacy/input/index.d.ts",
|
|
300
|
-
"esm2022": "./esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs",
|
|
301
|
-
"esm": "./esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs",
|
|
302
|
-
"default": "./fesm2022/agorapulse-ui-components-legacy-input.mjs"
|
|
303
|
-
},
|
|
304
298
|
"./legacy/select": {
|
|
305
299
|
"types": "./legacy/select/index.d.ts",
|
|
306
300
|
"esm2022": "./esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs",
|
|
307
301
|
"esm": "./esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs",
|
|
308
302
|
"default": "./fesm2022/agorapulse-ui-components-legacy-select.mjs"
|
|
309
303
|
},
|
|
304
|
+
"./legacy/input": {
|
|
305
|
+
"types": "./legacy/input/index.d.ts",
|
|
306
|
+
"esm2022": "./esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs",
|
|
307
|
+
"esm": "./esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs",
|
|
308
|
+
"default": "./fesm2022/agorapulse-ui-components-legacy-input.mjs"
|
|
309
|
+
},
|
|
310
310
|
"./legacy/textarea": {
|
|
311
311
|
"types": "./legacy/textarea/index.d.ts",
|
|
312
312
|
"esm2022": "./esm2022/legacy/textarea/agorapulse-ui-components-legacy-textarea.mjs",
|
|
Binary file
|