@agorapulse/ui-components 17.4.15 → 17.5.0-beta.1
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-1.0.0-SNAPSHOT.tgz +0 -0
- package/agorapulse-ui-components-17.5.0-beta.1.tgz +0 -0
- package/avatar/avatar.component.d.ts +145 -45
- package/esm2022/autocomplete/autocomplete.component.mjs +2 -2
- package/esm2022/avatar/avatar.component.mjs +162 -190
- package/esm2022/legacy/select/select.component.mjs +2 -2
- package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +2 -2
- package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +2 -2
- package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +2 -2
- package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +2 -2
- package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +2 -2
- package/esm2022/select/select-label-single/select-label-single.component.mjs +1 -1
- package/esm2022/toggle/toggle.component.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs +1 -1
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-avatar.mjs +162 -190
- package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-dot-stepper.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-select.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-textarea.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-toggle.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
- package/package.json +54 -54
- package/select/select-label-multiple/select-label-multiple.component.d.ts +1 -1
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/agorapulse-ui-components-17.4.15.tgz +0 -0
|
@@ -1,12 +1,66 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NgClass, NgOptimizedImage } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component,
|
|
4
|
-
import { LetDirective } from '@ngrx/component';
|
|
5
|
-
import { BehaviorSubject, Observable, combineLatest, map, of } from 'rxjs';
|
|
1
|
+
import { apBlueskyOfficial, apFacebookOfficial, apGoogleMyBusinessOfficial, apLinkedinOfficial, apNsThreadsLogo, apPinterestOfficial, apTiktokOfficial, apWebBlogs, apWebNews, apXOfficial, apYoutubeOfficial, SymbolComponent, } from '@agorapulse/ui-symbol';
|
|
2
|
+
import { NgClass, NgOptimizedImage, NgStyle } from '@angular/common';
|
|
3
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, input, signal, untracked } from '@angular/core';
|
|
6
4
|
import * as i0 from "@angular/core";
|
|
7
5
|
import * as i1 from "@agorapulse/ui-symbol";
|
|
8
|
-
|
|
9
|
-
const
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export const networkSymbolByNetwork = {
|
|
8
|
+
bluesky: {
|
|
9
|
+
round: true,
|
|
10
|
+
symbol: apBlueskyOfficial,
|
|
11
|
+
},
|
|
12
|
+
facebook: {
|
|
13
|
+
round: true,
|
|
14
|
+
symbol: apFacebookOfficial,
|
|
15
|
+
},
|
|
16
|
+
google: {
|
|
17
|
+
round: false,
|
|
18
|
+
symbol: apGoogleMyBusinessOfficial,
|
|
19
|
+
},
|
|
20
|
+
instagram: {
|
|
21
|
+
round: false,
|
|
22
|
+
symbol: 'instagram-official', // embedded
|
|
23
|
+
},
|
|
24
|
+
linkedin: {
|
|
25
|
+
round: false,
|
|
26
|
+
symbol: apLinkedinOfficial,
|
|
27
|
+
},
|
|
28
|
+
pinterest: {
|
|
29
|
+
round: true,
|
|
30
|
+
symbol: apPinterestOfficial,
|
|
31
|
+
},
|
|
32
|
+
threads: {
|
|
33
|
+
round: true,
|
|
34
|
+
symbol: apNsThreadsLogo,
|
|
35
|
+
},
|
|
36
|
+
tiktok: {
|
|
37
|
+
round: true,
|
|
38
|
+
symbol: apTiktokOfficial,
|
|
39
|
+
},
|
|
40
|
+
twitter: {
|
|
41
|
+
round: true,
|
|
42
|
+
symbol: apXOfficial,
|
|
43
|
+
},
|
|
44
|
+
webBlog: {
|
|
45
|
+
round: true,
|
|
46
|
+
symbol: apWebBlogs,
|
|
47
|
+
},
|
|
48
|
+
webNews: {
|
|
49
|
+
round: true,
|
|
50
|
+
symbol: apWebNews,
|
|
51
|
+
},
|
|
52
|
+
X: {
|
|
53
|
+
round: true,
|
|
54
|
+
symbol: apXOfficial,
|
|
55
|
+
},
|
|
56
|
+
youtube: {
|
|
57
|
+
round: true,
|
|
58
|
+
symbol: apYoutubeOfficial,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
function toSymbol(symbol) {
|
|
62
|
+
return typeof symbol == 'string' ? symbol : symbol.name;
|
|
63
|
+
}
|
|
10
64
|
const onlineIconSizeByAvatarSize = {
|
|
11
65
|
56: 16,
|
|
12
66
|
48: 12,
|
|
@@ -43,198 +97,116 @@ const initialSizeByAvatarSize = {
|
|
|
43
97
|
24: 14,
|
|
44
98
|
16: 10,
|
|
45
99
|
};
|
|
100
|
+
const automaticBigSymbolNetwork = ['youtube'];
|
|
46
101
|
export class AvatarComponent {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
102
|
+
ngStyle;
|
|
103
|
+
profilePicture = input();
|
|
104
|
+
alt = input('');
|
|
105
|
+
network = input(undefined, {
|
|
106
|
+
transform: (v) => (v !== undefined ? v : v),
|
|
107
|
+
});
|
|
108
|
+
size = input(40);
|
|
109
|
+
username = input('');
|
|
110
|
+
showInitials = input();
|
|
111
|
+
bigNetwork = input(false);
|
|
112
|
+
anonymous = input(false);
|
|
113
|
+
online = input(false);
|
|
114
|
+
hideNetwork = input(false, { alias: 'youtubeAvatarMode' });
|
|
115
|
+
rounded = input(true, { transform: booleanAttribute });
|
|
116
|
+
imageError = signal(false);
|
|
117
|
+
backgroundView = computed(() => this.buildBackgroundView());
|
|
118
|
+
overlayView = computed(() => this.buildOverlayView());
|
|
119
|
+
useBigNetwork = computed(() => {
|
|
120
|
+
return (this.automaticBigSymbolNetwork() || this.bigNetwork()) && !this.hideNetwork();
|
|
121
|
+
});
|
|
122
|
+
automaticBigSymbolNetwork = computed(() => {
|
|
123
|
+
return automaticBigSymbolNetwork.includes(this.network());
|
|
124
|
+
});
|
|
125
|
+
constructor(symbolRegistry, ngStyle) {
|
|
126
|
+
this.ngStyle = ngStyle;
|
|
127
|
+
symbolRegistry.registerSymbols(Object.values(networkSymbolByNetwork).flatMap(({ symbol }) => (typeof symbol !== 'string' ? [symbol] : [])));
|
|
128
|
+
effect(() => {
|
|
129
|
+
this.ngStyle.ngStyle = this.buildHostStyle();
|
|
130
|
+
this.ngStyle.ngDoCheck();
|
|
131
|
+
});
|
|
132
|
+
effect(() => {
|
|
133
|
+
this.profilePicture(); // on change
|
|
134
|
+
untracked(() => this.imageError.set(false));
|
|
135
|
+
});
|
|
76
136
|
}
|
|
77
|
-
|
|
78
|
-
this.
|
|
79
|
-
}
|
|
80
|
-
set username(username) {
|
|
81
|
-
this.username$.next(username);
|
|
137
|
+
onImageError() {
|
|
138
|
+
this.imageError.set(true);
|
|
82
139
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (
|
|
86
|
-
this.
|
|
140
|
+
buildBackgroundView() {
|
|
141
|
+
let bgView = {};
|
|
142
|
+
if (this.useBigNetwork()) {
|
|
143
|
+
bgView = { mode: 'symbol', symbolId: toSymbol(networkSymbolByNetwork[this.network()].symbol), big: true };
|
|
87
144
|
}
|
|
88
|
-
this.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
displayAnonymous$ = new Observable();
|
|
119
|
-
displayNetwork$ = new Observable();
|
|
120
|
-
displayOnline$ = new Observable();
|
|
121
|
-
imageError$ = new BehaviorSubject(false);
|
|
122
|
-
initials$ = new Observable();
|
|
123
|
-
initialsAvailable$ = of(false);
|
|
124
|
-
socialNetwork$ = of(false);
|
|
125
|
-
constructor(symbolRegistry, elementRef) {
|
|
126
|
-
this.symbolRegistry = symbolRegistry;
|
|
127
|
-
this.elementRef = elementRef;
|
|
128
|
-
this.symbolRegistry.registerSymbols([
|
|
129
|
-
apSingleNeutral,
|
|
130
|
-
apShowTheaterMaskHappy,
|
|
131
|
-
apFacebookOfficial,
|
|
132
|
-
apLinkedinOfficial,
|
|
133
|
-
apYoutubeOfficial,
|
|
134
|
-
apTiktokOfficial,
|
|
135
|
-
apGoogleMyBusinessOfficial,
|
|
136
|
-
apPinterestOfficial,
|
|
137
|
-
apNsThreadsLogo,
|
|
138
|
-
apXOfficial,
|
|
139
|
-
apBlueskyOfficial,
|
|
140
|
-
apWebBlogs,
|
|
141
|
-
apWebNews,
|
|
142
|
-
]);
|
|
143
|
-
this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);
|
|
144
|
-
this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[this.size$.value]}px`);
|
|
145
|
+
else if (this.anonymous()) {
|
|
146
|
+
bgView = { mode: 'symbol', symbolId: 'show-theater-mask-happy' };
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
const profilePicture = this.profilePicture();
|
|
150
|
+
if (profilePicture && !this.useBigNetwork() && !this.imageError()) {
|
|
151
|
+
bgView = {
|
|
152
|
+
mode: 'image',
|
|
153
|
+
image: {
|
|
154
|
+
src: profilePicture,
|
|
155
|
+
size: +this.size(),
|
|
156
|
+
alt: this.alt(),
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
const initials = this.showInitials();
|
|
162
|
+
if (initials !== false && initials !== undefined) {
|
|
163
|
+
const useDefault = initials === true || initials === '';
|
|
164
|
+
const candidateName = (useDefault ? this.username().charAt(0) : initials.slice(0, 2)).toUpperCase();
|
|
165
|
+
bgView = { mode: 'initials', text: candidateName };
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
if (!this.useBigNetwork()) {
|
|
169
|
+
bgView = { mode: 'symbol', symbolId: 'single-neutral' };
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return bgView;
|
|
145
175
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
this.displayInitials$ = combineLatest([
|
|
154
|
-
this.showInitials$,
|
|
155
|
-
this.anonymous$,
|
|
156
|
-
this.initialsAvailable$,
|
|
157
|
-
this.displayProfilePicture$,
|
|
158
|
-
]).pipe(map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {
|
|
159
|
-
return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;
|
|
160
|
-
}));
|
|
161
|
-
this.displaySingleNeutralSvg$ = combineLatest([
|
|
162
|
-
this.profilePicture$,
|
|
163
|
-
this.imageError$,
|
|
164
|
-
this.initialsAvailable$,
|
|
165
|
-
this.showInitials$,
|
|
166
|
-
this.anonymous$,
|
|
167
|
-
this.displayInitials$,
|
|
168
|
-
this.displayProfilePicture$,
|
|
169
|
-
]).pipe(map(([profilePicture, imageError, initialsAvailable, showInitials, anonymous, displayInitials, displayProfilePicture]) => {
|
|
170
|
-
return ((!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&
|
|
171
|
-
!anonymous &&
|
|
172
|
-
!displayInitials &&
|
|
173
|
-
!displayProfilePicture);
|
|
174
|
-
}));
|
|
175
|
-
this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(map(([anonymous, rounded]) => {
|
|
176
|
-
return anonymous && rounded;
|
|
177
|
-
}));
|
|
178
|
-
this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(map(([online, rounded]) => {
|
|
179
|
-
return online && rounded;
|
|
180
|
-
}));
|
|
181
|
-
this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(map(([network, rounded]) => {
|
|
182
|
-
return !!network && rounded;
|
|
183
|
-
}));
|
|
184
|
-
this.socialNetwork$ = this.network$.pipe(map(network => {
|
|
185
|
-
if (!network) {
|
|
186
|
-
return false;
|
|
176
|
+
buildOverlayView() {
|
|
177
|
+
let ovlView = {};
|
|
178
|
+
const network = this.network();
|
|
179
|
+
if (!this.automaticBigSymbolNetwork()) {
|
|
180
|
+
if (network && !this.bigNetwork() && !this.hideNetwork()) {
|
|
181
|
+
const { symbol, round } = networkSymbolByNetwork[network];
|
|
182
|
+
ovlView = { mode: 'network', network, symbolId: toSymbol(symbol), round };
|
|
187
183
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(map(([displayInitials, username]) => {
|
|
191
|
-
if ((displayInitials && !username) || !displayInitials) {
|
|
192
|
-
return '';
|
|
184
|
+
else if (this.online()) {
|
|
185
|
+
ovlView = { mode: 'online' };
|
|
193
186
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
return `${names[0].charAt(0).toUpperCase()}`;
|
|
197
|
-
}));
|
|
187
|
+
}
|
|
188
|
+
return ovlView;
|
|
198
189
|
}
|
|
199
|
-
|
|
200
|
-
this.
|
|
190
|
+
buildHostStyle() {
|
|
191
|
+
const bgView = this.backgroundView();
|
|
192
|
+
const ovlMode = this.overlayView().mode;
|
|
193
|
+
const size = this.size();
|
|
194
|
+
return {
|
|
195
|
+
'--ap-avatar-size': `${size}px`,
|
|
196
|
+
'--ap-avatar-border-radius': this.rounded() ? '100%' : 'var(--sys-border-radius-sm)',
|
|
197
|
+
'--ap-avatar-initials-size': bgView.mode == 'initials' ? `${initialSizeByAvatarSize[size]}px` : '',
|
|
198
|
+
'--ap-avatar-symbol-size': bgView.mode == 'symbol' ? `${bgView.big ? size : symbolSizeByAvatarSize[size]}px` : '',
|
|
199
|
+
'--ap-avatar-network-size': ovlMode == 'network' ? `${networkSizeByAvatarSize[size]}px` : '',
|
|
200
|
+
'--ap-avatar-online-icon-size': ovlMode == 'online' ? `${onlineIconSizeByAvatarSize[size]}px` : '',
|
|
201
|
+
};
|
|
201
202
|
}
|
|
202
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.SymbolRegistry }, { token:
|
|
203
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: {
|
|
203
|
+
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 });
|
|
204
|
+
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 }, hideNetwork: { classPropertyName: "hideNetwork", publicName: "youtubeAvatarMode", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.background-default": "!useBigNetwork()" } }, 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.symbolId\" />\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: ["color", "symbolId", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
204
205
|
}
|
|
205
206
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
206
207
|
type: Component,
|
|
207
|
-
args: [{
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
type: Input
|
|
212
|
-
}], username: [{
|
|
213
|
-
type: Input
|
|
214
|
-
}], network: [{
|
|
215
|
-
type: Input
|
|
216
|
-
}], online: [{
|
|
217
|
-
type: Input
|
|
218
|
-
}], profilePicture: [{
|
|
219
|
-
type: Input
|
|
220
|
-
}], showInitials: [{
|
|
221
|
-
type: Input
|
|
222
|
-
}], alt: [{
|
|
223
|
-
type: Input
|
|
224
|
-
}], youtubeAvatarMode: [{
|
|
225
|
-
type: Input
|
|
226
|
-
}], roundedAvatar: [{
|
|
227
|
-
type: HostBinding,
|
|
228
|
-
args: ['class.rounded-avatar']
|
|
229
|
-
}], youtubeAvatar: [{
|
|
230
|
-
type: HostBinding,
|
|
231
|
-
args: ['class.youtube-avatar']
|
|
232
|
-
}], rounded: [{
|
|
233
|
-
type: Input,
|
|
234
|
-
args: [{
|
|
235
|
-
transform: booleanAttribute,
|
|
236
|
-
}]
|
|
237
|
-
}], size: [{
|
|
238
|
-
type: Input
|
|
239
|
-
}] } });
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9hdmF0YXIvc3JjL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvYXZhdGFyL3NyYy9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFFZixrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixTQUFTLEVBQ1QsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixpQkFBaUIsR0FDcEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFFTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBSTNFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDdE0sTUFBTSwyQkFB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QVk7c0JBQXhCLEtBQUs7Z0JBR0csR0FBRztzQkFBWCxLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHTixhQUFhO3NCQURaLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUluQyxhQUFhO3NCQURaLFdBQVc7dUJBQUMsc0JBQXNCO2dCQU0vQixPQUFPO3NCQUhWLEtBQUs7dUJBQUM7d0JBQ0gsU0FBUyxFQUFFLGdCQUFnQjtxQkFDOUI7Z0JBUUcsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgU3ltYm9sUmVnaXN0cnksXG4gICAgYXBGYWNlYm9va09mZmljaWFsLFxuICAgIGFwR29vZ2xlTXlCdXNpbmVzc09mZmljaWFsLFxuICAgIGFwTGlua2VkaW5PZmZpY2lhbCxcbiAgICBhcFBpbnRlcmVzdE9mZmljaWFsLFxuICAgIGFwTnNUaHJlYWRzTG9nbyxcbiAgICBhcFNob3dUaGVhdGVyTWFza0hhcHB5LFxuICAgIGFwU2luZ2xlTmV1dHJhbCxcbiAgICBhcFRpa3Rva09mZmljaWFsLFxuICAgIGFwV2ViQmxvZ3MsXG4gICAgYXBXZWJOZXdzLFxuICAgIGFwWE9mZmljaWFsLFxuICAgIGFwWW91dHViZU9mZmljaWFsLFxuICAgIGFwQmx1ZXNreU9mZmljaWFsLFxufSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHtOZ0NsYXNzLCBOZ09wdGltaXplZEltYWdlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEF2YXRhclNpemUgPSA1NiB8IDQ4IHwgNDAgfCAzNiB8IDMyIHwgMjQgfCAxNjtcblxuZXhwb3J0IGNvbnN0IEFWQVRBUl9ORVRXT1JLX0FSUkFZID0gWydmYWNlYm9vaycsICdsaW5rZWRpbicsICd0d2l0dGVyJywgJ1gnLCAneW91dHViZScsICdnb29nbGVNeUJ1c2luZXNzJywgJ2dvb2dsZScsICdpbnN0YWdyYW0nLCAndGhyZWFkcycsICd0aWt0b2snLCAncGludGVyZXN0JywgJ3dlYkJsb2cnLCAnd2ViTmV3cycsICdibHVlc2t5J107XG5jb25zdCBST1VORF9CT1JERVJfQVZBVEFSX05FVFdPUks6IHR5cGVvZiBBVkFUQVJfTkVUV09SS19BUlJBWVtudW1iZXJdW10gPSBbJ2ZhY2Vib29rJywgJ3R3aXR0ZXInLCAneW91dHViZScsICd0aWt0b2snLCAnWCcsICdwaW50ZXJlc3QnLCAnd2ViQmxvZycsICd3ZWJOZXdzJywgJ3RocmVhZHMnLCAnYmx1ZXNreSddO1xuZXhwb3J0IHR5cGUgQXZhdGFyTmV0d29yayA9IHR5cGVvZiBBVkFUQVJfTkVUV09SS19BUlJBWVtudW1iZXJdO1xuXG5jb25zdCBvbmxpbmVJY29uU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDE2LFxuICAgIDQ4OiAxMixcbiAgICA0MDogMTIsXG4gICAgMzY6IDgsXG4gICAgMzI6IDgsXG4gICAgMjQ6IDYsXG4gICAgMTY6IDYsXG59O1xuXG5jb25zdCBzeW1ib2xTaXplQnlBdmF0YXJTaXplOiBSZWNvcmQ8QXZhdGFyU2l6ZSwgbnVtYmVyPiA9IHtcbiAgICA1NjogMjgsXG4gICAgNDg6IDI0LFxuICAgIDQwOiAyMCxcbiAgICAzNjogMTgsXG4gICAgMzI6IDE2LFxuICAgIDI0OiAxMixcbiAgICAxNjogOCxcbn07XG5cbmNvbnN0IG5ldHdvcmtTaXplQnlBdmF0YXJTaXplOiBSZWNvcmQ8QXZhdGFyU2l6ZSwgbnVtYmVyPiA9IHtcbiAgICA1NjogMTYsXG4gICAgNDg6IDE2LFxuICAgIDQwOiAxNixcbiAgICAzNjogMTYsXG4gICAgMzI6IDEyLFxuICAgIDI0OiAxMixcbiAgICAxNjogOCxcbn07XG5cbmNvbnN0IGluaXRpYWxTaXplQnlBdmF0YXJTaXplOiBSZWNvcmQ8QXZhdGFyU2l6ZSwgbnVtYmVyPiA9IHtcbiAgICA1NjogMjgsXG4gICAgNDg6IDI0LFxuICAgIDQwOiAyMixcbiAgICAzNjogMTgsXG4gICAgMzI6IDE4LFxuICAgIDI0OiAxNCxcbiAgICAxNjogMTAsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLWF2YXRhcicsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdPcHRpbWl6ZWRJbWFnZSwgU3ltYm9sQ29tcG9uZW50LCBMZXREaXJlY3RpdmUsIE5nQ2xhc3NdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgbmV0d29ya1N5bWJvbEJ5TmV0d29yazogUmVjb3JkPEF2YXRhck5ldHdvcmssIHN0cmluZz4gPSB7XG4gICAgICAgIGZhY2Vib29rOiAnZmFjZWJvb2stb2ZmaWNpYWwnLFxuICAgICAgICBpbnN0YWdyYW06ICdpbnN0YWdyYW0tb2ZmaWNpYWwnLFxuICAgICAgICBYOiAneC1vZmZpY2lhbCcsXG4gICAgICAgIHR3aXR0ZXI6ICd4LW9mZmljaWFsJyxcbiAgICAgICAgbGlua2VkaW46ICdsaW5rZWRpbi1vZmZpY2lhbCcsXG4gICAgICAgIHRpa3RvazogJ3Rpa3Rvay1vZmZpY2lhbCcsXG4gICAgICAgIHlvdXR1YmU6ICd5b3V0dWJlLW9mZmljaWFsJyxcbiAgICAgICAgcGludGVyZXN0OiAncGludGVyZXN0LW9mZmljaWFsJyxcbiAgICAgICAgdGhyZWFkczogJ25zLXRocmVhZHMtbG9nbycsXG4gICAgICAgIGdvb2dsZU15QnVzaW5lc3M6ICdnb29nbGUtbXktYnVzaW5lc3Mtb2ZmaWNpYWwnLFxuICAgICAgICBnb29nbGU6ICdnb29nbGUtbXktYnVzaW5lc3Mtb2ZmaWNpYWwnLFxuICAgICAgICB3ZWJOZXdzOiAnd2ViLW5ld3MnLFxuICAgICAgICB3ZWJCbG9nOiAnd2ViLWJsb2dzJyxcbiAgICAgICAgYmx1ZXNreTogJ2JsdWVza3ktb2ZmaWNpYWwnXG4gICAgfTtcblxuICAgIHNpemUkOiBCZWhhdmlvclN1YmplY3Q8QXZhdGFyU2l6ZT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF2YXRhclNpemU+KDQwKTtcbiAgICBwcm9maWxlUGljdHVyZSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KCcnKTtcbiAgICBuZXR3b3JrJDogQmVoYXZpb3JTdWJqZWN0PEF2YXRhck5ldHdvcmsgfCB1bmRlZmluZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdmF0YXJOZXR3b3JrIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgcHJpdmF0ZSBhbHRlcm5hdGl2ZVRleHQkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBhbm9ueW1vdXMkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHVzZXJuYW1lJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHByaXZhdGUgb25saW5lJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBzaG93SW5pdGlhbHMkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHJvdW5kZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgQElucHV0KCkgc2V0IGFsdGVybmF0aXZlVGV4dChhbHRlcm5hdGl2ZVRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmFsdGVybmF0aXZlVGV4dCQubmV4dChhbHRlcm5hdGl2ZVRleHQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBhbm9ueW1vdXMoYW5vbnltb3VzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuYW5vbnltb3VzJC5uZXh0KGFub255bW91cyk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHVzZXJuYW1lKHVzZXJuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51c2VybmFtZSQubmV4dCh1c2VybmFtZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG5ldHdvcmsobmV0d29yazogQXZhdGFyTmV0d29yayB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm5ldHdvcmskLm5leHQobmV0d29yayk7XG5cbiAgICAgICAgaWYgKG5ldHdvcmsgPT09ICd5b3V0dWJlJykge1xuICAgICAgICAgICAgdGhpcy55b3V0dWJlQXZhdGFyID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFwLWF2YXRhci1uZXR3b3JrLXNpemUnLCBgJHtuZXR3b3JrU2l6ZUJ5QXZhdGFyU2l6ZVt0aGlzLnNpemUkLnZhbHVlXX1weGApO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvbmxpbmUob25saW5lOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub25saW5lJC5uZXh0KG9ubGluZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHByb2ZpbGVQaWN0dXJlKHByb2ZpbGVQaWN0dXJlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQubmV4dChwcm9maWxlUGljdHVyZSk7XG4gICAgICAgIHRoaXMuaW1hZ2VFcnJvciQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNob3dJbml0aWFscyhzaG93SW5pdGlhbHM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zaG93SW5pdGlhbHMkLm5leHQoc2hvd0luaXRpYWxzKTtcbiAgICB9XG4gICAgQElucHV0KCkgYWx0ID0gJyc7XG5cbiAgICBASW5wdXQoKSB5b3V0dWJlQXZhdGFyTW9kZSA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb3VuZGVkLWF2YXRhcicpXG4gICAgcm91bmRlZEF2YXRhciA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnlvdXR1YmUtYXZhdGFyJylcbiAgICB5b3V0dWJlQXZhdGFyID0gZmFsc2U7XG5cbiAgICBASW5wdXQoe1xuICAgICAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgfSlcbiAgICBzZXQgcm91bmRlZChyb3VuZGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMucm91bmRlZEF2YXRhciA9IHJvdW5kZWQ7XG4gICAgICAgIHRoaXMucm91bmRlZCQubmV4dChyb3VuZGVkKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPIC0gbWlncmF0ZSB0byBzaWduYWwgaW5wdXQgYW5kIHJlbW92ZSBzaXplIGlucHV0XG4gICAgQElucHV0KClcbiAgICBzZXQgc2l6ZShzaXplOiBBdmF0YXJTaXplIHwgYCR7QXZhdGFyU2l6ZX1gKSB7XG4gICAgICAgIHRoaXMuc2l6ZSQubmV4dCgrc2l6ZSBhcyBBdmF0YXJTaXplKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXAtYXZhdGFyLXNpemUnLCBgJHtzaXplfXB4YCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZScsIGAke3N5bWJvbFNpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXAtYXZhdGFyLW9ubGluZS1pY29uLXNpemUnLCBgJHtvbmxpbmVJY29uU2l6ZUJ5QXZhdGFyU2l6ZVtzaXplXX1weGApO1xuICAgIH1cblxuICAgIGRpc3BsYXlQcm9maWxlUGljdHVyZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAgIGRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheUluaXRpYWxzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheUFub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAgIGRpc3BsYXlOZXR3b3JrJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheU9ubGluZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAgIGltYWdlRXJyb3IkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBpbml0aWFscyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKTtcbiAgICBpbml0aWFsc0F2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBvZihmYWxzZSk7XG4gICAgc29jaWFsTmV0d29yayQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBvZihmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnksXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICB0aGlzLnN5bWJvbFJlZ2lzdHJ5LnJlZ2lzdGVyU3ltYm9scyhbXG4gICAgICAgICAgICBhcFNpbmdsZU5ldXRyYWwsXG4gICAgICAgICAgICBhcFNob3dUaGVhdGVyTWFza0hhcHB5LFxuICAgICAgICAgICAgYXBGYWNlYm9va09mZmljaWFsLFxuICAgICAgICAgICAgYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgICAgICAgICAgYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFRpa3Rva09mZmljaWFsLFxuICAgICAgICAgICAgYXBHb29nbGVNeUJ1c2luZXNzT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFBpbnRlcmVzdE9mZmljaWFsLFxuICAgICAgICAgICAgYXBOc1RocmVhZHNMb2dvLFxuICAgICAgICAgICAgYXBYT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcEJsdWVza3lPZmZpY2lhbCxcbiAgICAgICAgICAgIGFwV2ViQmxvZ3MsXG4gICAgICAgICAgICBhcFdlYk5ld3MsXG4gICAgICAgIF0pO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1hcC1hdmF0YXItc2l6ZScsIGA0MHB4YCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZScsIGAke3N5bWJvbFNpemVCeUF2YXRhclNpemVbdGhpcy5zaXplJC52YWx1ZV19cHhgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsc0F2YWlsYWJsZSQgPSB0aGlzLnVzZXJuYW1lJC5waXBlKFxuICAgICAgICAgICAgbWFwKHVzZXJuYW1lID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISF1c2VybmFtZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5UHJvZmlsZVBpY3R1cmUkID0gY29tYmluZUxhdGVzdChbdGhpcy5wcm9maWxlUGljdHVyZSQsIHRoaXMuYW5vbnltb3VzJCwgdGhpcy5pbWFnZUVycm9yJCwgdGhpcy5zaG93SW5pdGlhbHMkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Byb2ZpbGVQaWN0dXJlLCBhbm9ueW1vdXMsIGltYWdlRXJyb3JdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhcHJvZmlsZVBpY3R1cmUgJiYgIWFub255bW91cyAmJiAhaW1hZ2VFcnJvcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5SW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxzQXZhaWxhYmxlJCxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVByb2ZpbGVQaWN0dXJlJCxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Nob3dJbml0aWFscywgYW5vbnltb3VzLCBpbml0aWFsc0F2YWlsYWJsZSwgZGlzcGxheVByb2ZpbGVQaWN0dXJlXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaG93SW5pdGlhbHMgJiYgIWFub255bW91cyAmJiBpbml0aWFsc0F2YWlsYWJsZSAmJiAhZGlzcGxheVByb2ZpbGVQaWN0dXJlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQsXG4gICAgICAgICAgICB0aGlzLmltYWdlRXJyb3IkLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsc0F2YWlsYWJsZSQsXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtwcm9maWxlUGljdHVyZSwgaW1hZ2VFcnJvciwgaW5pdGlhbHNBdmFpbGFibGUsIHNob3dJbml0aWFscywgYW5vbnltb3VzLCBkaXNwbGF5SW5pdGlhbHMsIGRpc3BsYXlQcm9maWxlUGljdHVyZV0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAoIXByb2ZpbGVQaWN0dXJlIHx8IGltYWdlRXJyb3IgfHwgIWluaXRpYWxzQXZhaWxhYmxlIHx8IChpbml0aWFsc0F2YWlsYWJsZSAmJiAhc2hvd0luaXRpYWxzKSkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWFub255bW91cyAmJlxuICAgICAgICAgICAgICAgICAgICAhZGlzcGxheUluaXRpYWxzICYmXG4gICAgICAgICAgICAgICAgICAgICFkaXNwbGF5UHJvZmlsZVBpY3R1cmVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlBbm9ueW1vdXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5hbm9ueW1vdXMkLCB0aGlzLnJvdW5kZWQkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2Fub255bW91cywgcm91bmRlZF0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYW5vbnltb3VzICYmIHJvdW5kZWQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheU9ubGluZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm9ubGluZSQsIHRoaXMucm91bmRlZCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbb25saW5lLCByb3VuZGVkXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBvbmxpbmUgJiYgcm91bmRlZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5TmV0d29yayQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm5ldHdvcmskLCB0aGlzLnJvdW5kZWQkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW25ldHdvcmssIHJvdW5kZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbmV0d29yayAmJiByb3VuZGVkO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNvY2lhbE5ldHdvcmskID0gdGhpcy5uZXR3b3JrJC5waXBlKG1hcChuZXR3b3JrID0+IHtcbiAgICAgICAgICAgIGlmICghbmV0d29yaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIFJPVU5EX0JPUkRFUl9BVkFUQVJfTkVUV09SSy5pbmRleE9mKG5ldHdvcmspID4gLTE7XG4gICAgICAgIH0pKTtcblxuXG4gICAgICAgIHRoaXMuaW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbdGhpcy5kaXNwbGF5SW5pdGlhbHMkLCB0aGlzLnVzZXJuYW1lJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtkaXNwbGF5SW5pdGlhbHMsIHVzZXJuYW1lXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgoZGlzcGxheUluaXRpYWxzICYmICF1c2VybmFtZSkgfHwgIWRpc3BsYXlJbml0aWFscykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAnLS1hcC1hdmF0YXItaW5pdGlhbHMtc2l6ZScsXG4gICAgICAgICAgICAgICAgICAgIGAke2luaXRpYWxTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZXMgPSB1c2VybmFtZT8uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZXNbMF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlRXJyb3IkLm5leHQodHJ1ZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ3J4TGV0PVwie1xuICAgICAgICBkaXNwbGF5UHJvZmlsZVBpY3R1cmU6IGRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIGRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnOiBkaXNwbGF5U2luZ2xlTmV1dHJhbFN2ZyQsXG4gICAgICAgIGRpc3BsYXlJbml0aWFsczogZGlzcGxheUluaXRpYWxzJCxcbiAgICAgICAgZGlzcGxheUFub255bW91czogZGlzcGxheUFub255bW91cyQsXG4gICAgICAgIGRpc3BsYXlPbmxpbmU6IGRpc3BsYXlPbmxpbmUkLFxuICAgICAgICBkaXNwbGF5TmV0d29yazogZGlzcGxheU5ldHdvcmskLFxuICAgICAgICBpbml0aWFsczogaW5pdGlhbHMkLFxuICAgICAgICBwcm9maWxlUGljdHVyZTogcHJvZmlsZVBpY3R1cmUkLFxuICAgICAgICBzaXplOiBzaXplJCxcbiAgICAgICAgbmV0d29yazogbmV0d29yayQsXG4gICAgICAgIHNvY2lhbE5ldHdvcms6IHNvY2lhbE5ldHdvcmskXG4gICAgfSBhcyBhdmF0YXJWaWV3TW9kZWxcIj5cbiAgICBAaWYgKGF2YXRhclZpZXdNb2RlbC5kaXNwbGF5UHJvZmlsZVBpY3R1cmUpIHtcbiAgICAgICAgQGlmIChhdmF0YXJWaWV3TW9kZWwubmV0d29yayAhPT0gJ3lvdXR1YmUnIHx8IHlvdXR1YmVBdmF0YXJNb2RlKSB7XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgW3NyY109XCJhdmF0YXJWaWV3TW9kZWwucHJvZmlsZVBpY3R1cmVcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJhdmF0YXJWaWV3TW9kZWwuc2l6ZVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJhdmF0YXJWaWV3TW9kZWwuc2l6ZVwiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJhbHRcIlxuICAgICAgICAgICAgICAgIChlcnJvcik9XCJvbkltYWdlRXJyb3IoKVwiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGFwLXN5bWJvbCBbc3ltYm9sSWRdPVwibmV0d29ya1N5bWJvbEJ5TmV0d29ya1thdmF0YXJWaWV3TW9kZWwubmV0d29ya11cIiAvPlxuICAgICAgICB9XG4gICAgfVxuICAgIEBpZiAoYXZhdGFyVmlld01vZGVsLmRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuby1wcm9maWxlLXBpY3R1cmVcIj5cbiAgICAgICAgICAgIDxhcC1zeW1ib2wgc3ltYm9sSWQ9XCJzaW5nbGUtbmV1dHJhbFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoYXZhdGFyVmlld01vZGVsLmRpc3BsYXlBbm9ueW1vdXMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImFub255bW91c1wiPlxuICAgICAgICAgICAgPGFwLXN5bWJvbCBzeW1ib2xJZD1cInNob3ctdGhlYXRlci1tYXNrLWhhcHB5XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoYXZhdGFyVmlld01vZGVsLmRpc3BsYXlPbmxpbmUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm9ubGluZVwiPjwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGF2YXRhclZpZXdNb2RlbC5kaXNwbGF5TmV0d29yayAmJiBhdmF0YXJWaWV3TW9kZWwubmV0d29yayAmJiBhdmF0YXJWaWV3TW9kZWwubmV0d29yayAhPT0gJ3lvdXR1YmUnKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibmV0d29ya1wiXG4gICAgICAgICAgICBbY2xhc3Muc29jaWFsLW5ldHdvcmtdPVwiYXZhdGFyVmlld01vZGVsLnNvY2lhbE5ldHdvcmtcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmtcIj5cbiAgICAgICAgICAgIDxhcC1zeW1ib2wgW3N5bWJvbElkXT1cIm5ldHdvcmtTeW1ib2xCeU5ldHdvcmtbYXZhdGFyVmlld01vZGVsLm5ldHdvcmtdXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChhdmF0YXJWaWV3TW9kZWwuZGlzcGxheUluaXRpYWxzKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbml0aWFsc1wiPlxuICAgICAgICAgICAge3sgYXZhdGFyVmlld01vZGVsLmluaXRpYWxzIH19XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
208
|
+
args: [{ selector: 'ap-avatar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgOptimizedImage, SymbolComponent, NgClass], hostDirectives: [NgStyle], host: {
|
|
209
|
+
'[class.background-default]': '!useBigNetwork()',
|
|
210
|
+
}, 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.symbolId\" />\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"] }]
|
|
211
|
+
}], ctorParameters: () => [{ type: i1.SymbolRegistry }, { type: i2.NgStyle }] });
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9hdmF0YXIvc3JjL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvYXZhdGFyL3NyYy9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZUFBZSxHQUVsQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRWpJLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ2xDLE9BQU8sRUFBRTtRQUNMLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLGlCQUFpQjtLQUM1QjtJQUNELFFBQVEsRUFBRTtRQUNOLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLGtCQUFrQjtLQUM3QjtJQUNELE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxLQUFLO1FBQ1osTUFBTSxFQUFFLDBCQUEwQjtLQUNyQztJQUNELFNBQVMsRUFBRTtRQUNQLEtBQUssRUFBRSxLQUFLO1FBQ1osTUFBTSxFQUFFLG9CQUFvQixFQUFFLFdBQVc7S0FDNUM7SUFDRCxRQUFRLEVBQUU7UUFDTixLQUFL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QyxDQUFDLENBQUMsRUFBRTtZQUNsRyx5QkFBeUIsRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakgsMEJBQTBCLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVGLDhCQUE4QixFQUFFLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUNyRyxDQUFDO0lBQ04sQ0FBQzt1R0FsSFEsZUFBZTsyRkFBZixlQUFlLGttREMxSjVCLDZ2Q0EyQ0EsMDBFRHlHYyxnQkFBZ0IsZ1BBQUUsZUFBZSw2RkFBRSxPQUFPOzsyRkFNM0MsZUFBZTtrQkFaM0IsU0FBUzsrQkFDSSxXQUFXLG1CQUNKLHVCQUF1QixDQUFDLE1BQU0sY0FHbkMsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxrQkFDckMsQ0FBQyxPQUFPLENBQUMsUUFDbkI7d0JBQ0YsNEJBQTRCLEVBQUUsa0JBQWtCO3FCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWdvcmFwdWxzZVN5bWJvbCxcbiAgICBhZ29yYXB1bHNlU3ltYm9sLFxuICAgIGFwQmx1ZXNreU9mZmljaWFsLFxuICAgIGFwRmFjZWJvb2tPZmZpY2lhbCxcbiAgICBhcEdvb2dsZU15QnVzaW5lc3NPZmZpY2lhbCxcbiAgICBhcExpbmtlZGluT2ZmaWNpYWwsXG4gICAgYXBOc1RocmVhZHNMb2dvLFxuICAgIGFwUGludGVyZXN0T2ZmaWNpYWwsXG4gICAgYXBUaWt0b2tPZmZpY2lhbCxcbiAgICBhcFdlYkJsb2dzLFxuICAgIGFwV2ViTmV3cyxcbiAgICBhcFhPZmZpY2lhbCxcbiAgICBhcFlvdXR1YmVPZmZpY2lhbCxcbiAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgU3ltYm9sUmVnaXN0cnksXG59IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ09wdGltaXplZEltYWdlLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgbmV0d29ya1N5bWJvbEJ5TmV0d29yayA9IHtcbiAgICBibHVlc2t5OiB7XG4gICAgICAgIHJvdW5kOiB0cnVlLFxuICAgICAgICBzeW1ib2w6IGFwQmx1ZXNreU9mZmljaWFsLFxuICAgIH0sXG4gICAgZmFjZWJvb2s6IHtcbiAgICAgICAgcm91bmQ6IHRydWUsXG4gICAgICAgIHN5bWJvbDogYXBGYWNlYm9va09mZmljaWFsLFxuICAgIH0sXG4gICAgZ29vZ2xlOiB7XG4gICAgICAgIHJvdW5kOiBmYWxzZSxcbiAgICAgICAgc3ltYm9sOiBhcEdvb2dsZU15QnVzaW5lc3NPZmZpY2lhbCxcbiAgICB9LFxuICAgIGluc3RhZ3JhbToge1xuICAgICAgICByb3VuZDogZmFsc2UsXG4gICAgICAgIHN5bWJvbDogJ2luc3RhZ3JhbS1vZmZpY2lhbCcsIC8vIGVtYmVkZGVkXG4gICAgfSxcbiAgICBsaW5rZWRpbjoge1xuICAgICAgICByb3VuZDogZmFsc2UsXG4gICAgICAgIHN5bWJvbDogYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgIH0sXG4gICAgcGludGVyZXN0OiB7XG4gICAgICAgIHJvdW5kOiB0cnVlLFxuICAgICAgICBzeW1ib2w6IGFwUGludGVyZXN0T2ZmaWNpYWwsXG4gICAgfSxcbiAgICB0aHJlYWRzOiB7XG4gICAgICAgIHJvdW5kOiB0cnVlLFxuICAgICAgICBzeW1ib2w6IGFwTnNUaHJlYWRzTG9nbyxcbiAgICB9LFxuICAgIHRpa3Rvazoge1xuICAgICAgICByb3VuZDogdHJ1ZSxcbiAgICAgICAgc3ltYm9sOiBhcFRpa3Rva09mZmljaWFsLFxuICAgIH0sXG4gICAgdHdpdHRlcjoge1xuICAgICAgICByb3VuZDogdHJ1ZSxcbiAgICAgICAgc3ltYm9sOiBhcFhPZmZpY2lhbCxcbiAgICB9LFxuICAgIHdlYkJsb2c6IHtcbiAgICAgICAgcm91bmQ6IHRydWUsXG4gICAgICAgIHN5bWJvbDogYXBXZWJCbG9ncyxcbiAgICB9LFxuICAgIHdlYk5ld3M6IHtcbiAgICAgICAgcm91bmQ6IHRydWUsXG4gICAgICAgIHN5bWJvbDogYXBXZWJOZXdzLFxuICAgIH0sXG4gICAgWDoge1xuICAgICAgICByb3VuZDogdHJ1ZSxcbiAgICAgICAgc3ltYm9sOiBhcFhPZmZpY2lhbCxcbiAgICB9LFxuICAgIHlvdXR1YmU6IHtcbiAgICAgICAgcm91bmQ6IHRydWUsXG4gICAgICAgIHN5bWJvbDogYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgICByb3VuZDogYm9vbGVhbjtcbiAgICAgICAgc3ltYm9sOiBBZ29yYXB1bHNlU3ltYm9sIHwgc3RyaW5nO1xuICAgIH1cbj47XG5cbmV4cG9ydCB0eXBlIEF2YXRhck5ldHdvcmsgPSBrZXlvZiB0eXBlb2YgbmV0d29ya1N5bWJvbEJ5TmV0d29yaztcblxuZnVuY3Rpb24gdG9TeW1ib2woc3ltYm9sOiBBZ29yYXB1bHNlU3ltYm9sIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHN5bWJvbCA9PSAnc3RyaW5nJyA/IHN5bWJvbCA6IHN5bWJvbC5uYW1lO1xufVxuXG5leHBvcnQgdHlwZSBBdmF0YXJTaXplID0gNTYgfCA0OCB8IDQwIHwgMzYgfCAzMiB8IDI0IHwgMTY7XG5cbmNvbnN0IG9ubGluZUljb25TaXplQnlBdmF0YXJTaXplOiBSZWNvcmQ8QXZhdGFyU2l6ZSwgbnVtYmVyPiA9IHtcbiAgICA1NjogMTYsXG4gICAgNDg6IDEyLFxuICAgIDQwOiAxMixcbiAgICAzNjogOCxcbiAgICAzMjogOCxcbiAgICAyNDogNixcbiAgICAxNjogNixcbn07XG5cbmNvbnN0IHN5bWJvbFNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAyOCxcbiAgICA0ODogMjQsXG4gICAgNDA6IDIwLFxuICAgIDM2OiAxOCxcbiAgICAzMjogMTYsXG4gICAgMjQ6IDEyLFxuICAgIDE2OiA4LFxufTtcblxuY29uc3QgbmV0d29ya1NpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAxNixcbiAgICA0ODogMTYsXG4gICAgNDA6IDE2LFxuICAgIDM2OiAxNixcbiAgICAzMjogMTIsXG4gICAgMjQ6IDEyLFxuICAgIDE2OiA4LFxufTtcblxuY29uc3QgaW5pdGlhbFNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAyOCxcbiAgICA0ODogMjQsXG4gICAgNDA6IDIyLFxuICAgIDM2OiAxOCxcbiAgICAzMjogMTgsXG4gICAgMjQ6IDE0LFxuICAgIDE2OiAxMCxcbn07XG5cbmNvbnN0IGF1dG9tYXRpY0JpZ1N5bWJvbE5ldHdvcms6IEF2YXRhck5ldHdvcmtbXSA9IFsneW91dHViZSddO1xuXG50eXBlIEJhY2tncm91bmRWaWV3ID1cbiAgICB8IHsgbW9kZTogJ2ltYWdlJzsgaW1hZ2U6IHsgc3JjOiBzdHJpbmc7IHNpemU6IG51bWJlcjsgYWx0Pzogc3RyaW5nIH0gfVxuICAgIHwgeyBtb2RlOiAnaW5pdGlhbHMnOyB0ZXh0OiBzdHJpbmcgfVxuICAgIHwgeyBtb2RlOiAnc3ltYm9sJzsgc3ltYm9sSWQ6IGFnb3JhcHVsc2VTeW1ib2w7IGJpZz86IGJvb2xlYW4gfVxuICAgIHwgeyBtb2RlPzogbmV2ZXIgfTtcblxudHlwZSBPdmVybGF5VmlldyA9XG4gICAgfCB7IG1vZGU6ICdvbmxpbmUnIH1cbiAgICB8IHsgbW9kZTogJ25ldHdvcmsnOyBuZXR3b3JrOiBBdmF0YXJOZXR3b3JrOyBzeW1ib2xJZDogYWdvcmFwdWxzZVN5bWJvbDsgcm91bmQ6IGJvb2xlYW4gfVxuICAgIHwgeyBtb2RlPzogbmV2ZXIgfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1hdmF0YXInLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nT3B0aW1pemVkSW1hZ2UsIFN5bWJvbENvbXBvbmVudCwgTmdDbGFzc10sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtOZ1N0eWxlXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuYmFja2dyb3VuZC1kZWZhdWx0XSc6ICchdXNlQmlnTmV0d29yaygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQge1xuICAgIHByb2ZpbGVQaWN0dXJlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGFsdCA9IGlucHV0KCcnKTtcbiAgICBuZXR3b3JrID0gaW5wdXQodW5kZWZpbmVkLCB7XG4gICAgICAgIHRyYW5zZm9ybTogKHY/OiBBdmF0YXJOZXR3b3JrIHwgc3RyaW5nKSA9PiAodiAhPT0gdW5kZWZpbmVkID8gKHYgYXMgQXZhdGFyTmV0d29yaykgOiB2KSxcbiAgICB9KTtcbiAgICBzaXplID0gaW5wdXQ8QXZhdGFyU2l6ZSB8IGAke0F2YXRhclNpemV9YD4oNDApO1xuICAgIHVzZXJuYW1lID0gaW5wdXQoJycpO1xuICAgIHNob3dJbml0aWFscyA9IGlucHV0PGJvb2xlYW4gfCBzdHJpbmc+KCk7XG4gICAgYmlnTmV0d29yayA9IGlucHV0KGZhbHNlKTtcbiAgICBhbm9ueW1vdXMgPSBpbnB1dChmYWxzZSk7XG4gICAgb25saW5lID0gaW5wdXQoZmFsc2UpO1xuICAgIGhpZGVOZXR3b3JrID0gaW5wdXQoZmFsc2UsIHsgYWxpYXM6ICd5b3V0dWJlQXZhdGFyTW9kZScgfSk7XG4gICAgcm91bmRlZCA9IGlucHV0KHRydWUsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgcHJpdmF0ZSBpbWFnZUVycm9yID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIGJhY2tncm91bmRWaWV3ID0gY29tcHV0ZWQ8QmFja2dyb3VuZFZpZXc+KCgpID0+IHRoaXMuYnVpbGRCYWNrZ3JvdW5kVmlldygpKTtcbiAgICBvdmVybGF5VmlldyA9IGNvbXB1dGVkPE92ZXJsYXlWaWV3PigoKSA9PiB0aGlzLmJ1aWxkT3ZlcmxheVZpZXcoKSk7XG4gICAgcHJvdGVjdGVkIHVzZUJpZ05ldHdvcmsgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAodGhpcy5hdXRvbWF0aWNCaWdTeW1ib2xOZXR3b3JrKCkgfHwgdGhpcy5iaWdOZXR3b3JrKCkpICYmICF0aGlzLmhpZGVOZXR3b3JrKCk7XG4gICAgfSk7XG4gICAgcHJpdmF0ZSBhdXRvbWF0aWNCaWdTeW1ib2xOZXR3b3JrID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gYXV0b21hdGljQmlnU3ltYm9sTmV0d29yay5pbmNsdWRlcyh0aGlzLm5ldHdvcmsoKSBhcyBBdmF0YXJOZXR3b3JrKTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnksXG4gICAgICAgIHByaXZhdGUgbmdTdHlsZTogTmdTdHlsZVxuICAgICkge1xuICAgICAgICBzeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoXG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKG5ldHdvcmtTeW1ib2xCeU5ldHdvcmspLmZsYXRNYXAoKHsgc3ltYm9sIH0pID0+ICh0eXBlb2Ygc3ltYm9sICE9PSAnc3RyaW5nJyA/IFtzeW1ib2xdIDogW10pKVxuICAgICAgICApO1xuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5nU3R5bGUubmdTdHlsZSA9IHRoaXMuYnVpbGRIb3N0U3R5bGUoKTtcbiAgICAgICAgICAgIHRoaXMubmdTdHlsZS5uZ0RvQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2ZpbGVQaWN0dXJlKCk7IC8vIG9uIGNoYW5nZVxuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMuaW1hZ2VFcnJvci5zZXQoZmFsc2UpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlRXJyb3Iuc2V0KHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRCYWNrZ3JvdW5kVmlldygpOiBCYWNrZ3JvdW5kVmlldyB7XG4gICAgICAgIGxldCBiZ1ZpZXc6IEJhY2tncm91bmRWaWV3ID0ge307XG5cbiAgICAgICAgaWYgKHRoaXMudXNlQmlnTmV0d29yaygpKSB7XG4gICAgICAgICAgICBiZ1ZpZXcgPSB7IG1vZGU6ICdzeW1ib2wnLCBzeW1ib2xJZDogdG9TeW1ib2wobmV0d29ya1N5bWJvbEJ5TmV0d29ya1t0aGlzLm5ldHdvcmsoKSFdLnN5bWJvbCksIGJpZzogdHJ1ZSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYW5vbnltb3VzKCkpIHtcbiAgICAgICAgICAgIGJnVmlldyA9IHsgbW9kZTogJ3N5bWJvbCcsIHN5bWJvbElkOiAnc2hvdy10aGVhdGVyLW1hc2staGFwcHknIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwcm9maWxlUGljdHVyZSA9IHRoaXMucHJvZmlsZVBpY3R1cmUoKTtcblxuICAgICAgICAgICAgaWYgKHByb2ZpbGVQaWN0dXJlICYmICF0aGlzLnVzZUJpZ05ldHdvcmsoKSAmJiAhdGhpcy5pbWFnZUVycm9yKCkpIHtcbiAgICAgICAgICAgICAgICBiZ1ZpZXcgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGU6ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM6IHByb2ZpbGVQaWN0dXJlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogK3RoaXMuc2l6ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0OiB0aGlzLmFsdCgpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxzID0gdGhpcy5zaG93SW5pdGlhbHMoKTtcblxuICAgICAgICAgICAgICAgIGlmIChpbml0aWFscyAhPT0gZmFsc2UgJiYgaW5pdGlhbHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VEZWZhdWx0ID0gaW5pdGlhbHMgPT09IHRydWUgfHwgaW5pdGlhbHMgPT09ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVOYW1lID0gKHVzZURlZmF1bHQgPyB0aGlzLnVzZXJuYW1lKCkuY2hhckF0KDApIDogaW5pdGlhbHMuc2xpY2UoMCwgMikpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJnVmlldyA9IHsgbW9kZTogJ2luaXRpYWxzJywgdGV4dDogY2FuZGlkYXRlTmFtZSB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy51c2VCaWdOZXR3b3JrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJnVmlldyA9IHsgbW9kZTogJ3N5bWJvbCcsIHN5bWJvbElkOiAnc2luZ2xlLW5ldXRyYWwnIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYmdWaWV3O1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRPdmVybGF5VmlldygpOiBPdmVybGF5VmlldyB7XG4gICAgICAgIGxldCBvdmxWaWV3OiBPdmVybGF5VmlldyA9IHt9O1xuICAgICAgICBjb25zdCBuZXR3b3JrID0gdGhpcy5uZXR3b3JrKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmF1dG9tYXRpY0JpZ1N5bWJvbE5ldHdvcmsoKSkge1xuICAgICAgICAgICAgaWYgKG5ldHdvcmsgJiYgIXRoaXMuYmlnTmV0d29yaygpICYmICF0aGlzLmhpZGVOZXR3b3JrKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHN5bWJvbCwgcm91bmQgfSA9IG5ldHdvcmtTeW1ib2xCeU5ldHdvcmtbbmV0d29ya107XG4gICAgICAgICAgICAgICAgb3ZsVmlldyA9IHsgbW9kZTogJ25ldHdvcmsnLCBuZXR3b3JrLCBzeW1ib2xJZDogdG9TeW1ib2woc3ltYm9sKSwgcm91bmQgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vbmxpbmUoKSkge1xuICAgICAgICAgICAgICAgIG92bFZpZXcgPSB7IG1vZGU6ICdvbmxpbmUnIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb3ZsVmlldztcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkSG9zdFN0eWxlKCkge1xuICAgICAgICBjb25zdCBiZ1ZpZXcgPSB0aGlzLmJhY2tncm91bmRWaWV3KCk7XG4gICAgICAgIGNvbnN0IG92bE1vZGUgPSB0aGlzLm92ZXJsYXlWaWV3KCkubW9kZTtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZSgpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItc2l6ZSc6IGAke3NpemV9cHhgLFxuICAgICAgICAgICAgJy0tYXAtYXZhdGFyLWJvcmRlci1yYWRpdXMnOiB0aGlzLnJvdW5kZWQoKSA/ICcxMDAlJyA6ICd2YXIoLS1zeXMtYm9yZGVyLXJhZGl1cy1zbSknLFxuICAgICAgICAgICAgJy0tYXAtYXZhdGFyLWluaXRpYWxzLXNpemUnOiBiZ1ZpZXcubW9kZSA9PSAnaW5pdGlhbHMnID8gYCR7aW5pdGlhbFNpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgIDogJycsXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItc3ltYm9sLXNpemUnOiBiZ1ZpZXcubW9kZSA9PSAnc3ltYm9sJyA/IGAke2JnVmlldy5iaWcgPyBzaXplIDogc3ltYm9sU2l6ZUJ5QXZhdGFyU2l6ZVtzaXplXX1weGAgOiAnJyxcbiAgICAgICAgICAgICctLWFwLWF2YXRhci1uZXR3b3JrLXNpemUnOiBvdmxNb2RlID09ICduZXR3b3JrJyA/IGAke25ldHdvcmtTaXplQnlBdmF0YXJTaXplW3NpemVdfXB4YCA6ICcnLFxuICAgICAgICAgICAgJy0tYXAtYXZhdGFyLW9ubGluZS1pY29uLXNpemUnOiBvdmxNb2RlID09ICdvbmxpbmUnID8gYCR7b25saW5lSWNvblNpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgIDogJycsXG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiPCEtLSBiYWNrZ3JvdW5kIC0tPlxuQGlmIChiYWNrZ3JvdW5kVmlldygpOyBhcyBiZ1ZpZXcpIHtcbiAgICBAc3dpdGNoIChiZ1ZpZXcubW9kZSkge1xuICAgICAgICBAY2FzZSAoJ2ltYWdlJykge1xuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctaW1hZ2VcIlxuICAgICAgICAgICAgICAgIFtuZ1NyY109XCJiZ1ZpZXcuaW1hZ2Uuc3JjXCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiYmdWaWV3LmltYWdlLnNpemVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiYmdWaWV3LmltYWdlLnNpemVcIlxuICAgICAgICAgICAgICAgIFthbHRdPVwiYmdWaWV3LmltYWdlLmFsdFwiXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigpXCIgLz5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2luaXRpYWxzJykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLWluaXRpYWxzXCI+XG4gICAgICAgICAgICAgICAge3sgYmdWaWV3LnRleHQgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnc3ltYm9sJykge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctc3ltYm9sXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ3N5bS0nICsgYmdWaWV3LnN5bWJvbElkLCBiZ1ZpZXcuYmlnID8gJ2JpZycgOiAnJ11cIj5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sIFtzeW1ib2xJZF09XCJiZ1ZpZXcuc3ltYm9sSWRcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9XG59XG5cbjwhLS0gb3ZlcmxheSAtLT5cbkBpZiAob3ZlcmxheVZpZXcoKTsgYXMgb3ZsVmlldykge1xuICAgIEBzd2l0Y2ggKG92bFZpZXcubW9kZSkge1xuICAgICAgICBAY2FzZSAoJ25ldHdvcmsnKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvdmwtbmV0d29ya1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnJvdW5kXT1cIm92bFZpZXcucm91bmRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm92bFZpZXcubmV0d29ya1wiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2wgW3N5bWJvbElkXT1cIm92bFZpZXcuc3ltYm9sSWRcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdvbmxpbmUnKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZsLW9ubGluZVwiPjwvZGl2PlxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|