@agorapulse/ui-components 15.1.2 → 15.1.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.
Files changed (34) hide show
  1. package/agorapulse-ui-components-15.1.4.tgz +0 -0
  2. package/esm2020/avatar/avatar.component.mjs +3 -2
  3. package/esm2020/index.mjs +2 -1
  4. package/esm2020/paginator/paginator-button/paginator-button.component.mjs +2 -2
  5. package/esm2020/paginator/paginator.component.mjs +92 -29
  6. package/esm2020/radio/agorapulse-ui-components-radio.mjs +5 -0
  7. package/esm2020/radio/public_api.mjs +3 -0
  8. package/esm2020/radio/radio-control.registry.mjs +104 -0
  9. package/esm2020/radio/radio.component.mjs +199 -0
  10. package/fesm2015/agorapulse-ui-components-avatar.mjs +2 -1
  11. package/fesm2015/agorapulse-ui-components-avatar.mjs.map +1 -1
  12. package/fesm2015/agorapulse-ui-components-paginator.mjs +93 -30
  13. package/fesm2015/agorapulse-ui-components-paginator.mjs.map +1 -1
  14. package/fesm2015/agorapulse-ui-components-radio.mjs +306 -0
  15. package/fesm2015/agorapulse-ui-components-radio.mjs.map +1 -0
  16. package/fesm2015/agorapulse-ui-components.mjs +1 -0
  17. package/fesm2015/agorapulse-ui-components.mjs.map +1 -1
  18. package/fesm2020/agorapulse-ui-components-avatar.mjs +2 -1
  19. package/fesm2020/agorapulse-ui-components-avatar.mjs.map +1 -1
  20. package/fesm2020/agorapulse-ui-components-paginator.mjs +93 -30
  21. package/fesm2020/agorapulse-ui-components-paginator.mjs.map +1 -1
  22. package/fesm2020/agorapulse-ui-components-radio.mjs +305 -0
  23. package/fesm2020/agorapulse-ui-components-radio.mjs.map +1 -0
  24. package/fesm2020/agorapulse-ui-components.mjs +1 -0
  25. package/fesm2020/agorapulse-ui-components.mjs.map +1 -1
  26. package/index.d.ts +1 -0
  27. package/package.json +9 -1
  28. package/paginator/paginator.component.d.ts +26 -8
  29. package/radio/index.d.ts +5 -0
  30. package/radio/public_api.d.ts +2 -0
  31. package/radio/radio-control.registry.d.ts +22 -0
  32. package/radio/radio.component.d.ts +57 -0
  33. package/snackbars-thread/component/snackbars-thread.component.d.ts +1 -1
  34. package/agorapulse-ui-components-15.1.2.tgz +0 -0
@@ -0,0 +1,306 @@
1
+ import * as i0 from '@angular/core';
2
+ import { forwardRef, Injectable, inject, Injector, ChangeDetectorRef, NgZone, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Input, Output } from '@angular/core';
3
+ import { CommonModule, NgIf } from '@angular/common';
4
+ import { SymbolComponent } from '@agorapulse/ui-symbol';
5
+ import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
6
+ import { Subject, fromEvent, takeUntil } from 'rxjs';
7
+
8
+ const RADIO_VALUE_ACCESSOR = {
9
+ provide: NG_VALUE_ACCESSOR,
10
+ useExisting: forwardRef(() => RadioComponent),
11
+ multi: true,
12
+ };
13
+ class RadioControlRegistry {
14
+ constructor() {
15
+ this.accessors = [];
16
+ }
17
+ add(control, accessor) {
18
+ this.accessors.push([control, accessor]);
19
+ }
20
+ remove(accessor) {
21
+ this.accessors = this.accessors.filter(([, radioComponent]) => {
22
+ return radioComponent !== accessor;
23
+ });
24
+ }
25
+ select(accessor) {
26
+ this.accessors.forEach(([ngControl, radioComponent]) => {
27
+ if (this.isSameGroup(ngControl, radioComponent, accessor) && radioComponent !== accessor) {
28
+ radioComponent.writeValue(accessor.value);
29
+ }
30
+ });
31
+ }
32
+ getIndex(accessor) {
33
+ return this.accessors.findIndex(([, radioComponent]) => {
34
+ return radioComponent === accessor;
35
+ });
36
+ }
37
+ getNextRadio(accessor) {
38
+ const index = this.getIndex(accessor);
39
+ const nextIndex = index + 1;
40
+ if (nextIndex >= this.accessors.length) {
41
+ return this.accessors[0][1];
42
+ }
43
+ const nextRadio = this.accessors[nextIndex];
44
+ return nextRadio ? nextRadio[1] : null;
45
+ }
46
+ getPreviousRadio(accessor) {
47
+ const index = this.getIndex(accessor);
48
+ if (index === 0) {
49
+ return this.accessors[this.accessors.length - 1][1];
50
+ }
51
+ const previousIndex = index - 1;
52
+ const previousRadio = this.accessors[previousIndex];
53
+ return previousRadio ? previousRadio[1] : null;
54
+ }
55
+ blurAllGroup(accessor) {
56
+ this.accessors.forEach(([, radioComponent]) => {
57
+ if (this.isSameGroup(accessor.control, radioComponent, accessor)) {
58
+ radioComponent.inputElement.nativeElement.blur();
59
+ }
60
+ });
61
+ }
62
+ setNegativeTabIndexToAllExcept(accessor) {
63
+ this.accessors.forEach(([, radioComponent]) => {
64
+ if (this.isSameGroup(accessor.control, radioComponent, accessor)) {
65
+ if (accessor.radioId !== radioComponent.radioId) {
66
+ radioComponent.inputElement.nativeElement.tabIndex = -1;
67
+ }
68
+ else {
69
+ radioComponent.inputElement.nativeElement.tabIndex = 0;
70
+ }
71
+ }
72
+ });
73
+ }
74
+ focusPrevious(accessor) {
75
+ const previousRadio = this.getPreviousRadio(accessor);
76
+ if (previousRadio) {
77
+ previousRadio.inputElement.nativeElement.focus();
78
+ }
79
+ }
80
+ focusNext(accessor) {
81
+ const nextRadio = this.getNextRadio(accessor);
82
+ if (nextRadio) {
83
+ nextRadio.inputElement.nativeElement.focus();
84
+ }
85
+ }
86
+ getFirstCheckedRadio() {
87
+ const checkedRadio = this.accessors.find(([, radioComponent]) => {
88
+ return radioComponent.checked;
89
+ });
90
+ return checkedRadio ? checkedRadio[1] : null;
91
+ }
92
+ isSameGroup(ngControl, radioComponent, accessor) {
93
+ if (!ngControl.control) {
94
+ return false;
95
+ }
96
+ return radioComponent.name === accessor.name;
97
+ }
98
+ }
99
+ RadioControlRegistry.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: RadioControlRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
100
+ RadioControlRegistry.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: RadioControlRegistry, providedIn: 'root' });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: RadioControlRegistry, decorators: [{
102
+ type: Injectable,
103
+ args: [{
104
+ providedIn: 'root',
105
+ }]
106
+ }] });
107
+
108
+ class RadioComponent {
109
+ set disabled(disabled) {
110
+ this._disabled = disabled;
111
+ }
112
+ get disabled() {
113
+ return this._disabled;
114
+ }
115
+ constructor(elementRef) {
116
+ this.elementRef = elementRef;
117
+ this.injector = inject(Injector);
118
+ this.changeDetectorRef = inject(ChangeDetectorRef);
119
+ this.radioControlRegistry = inject(RadioControlRegistry);
120
+ this.ngZone = inject(NgZone);
121
+ this.ariaLabel = '';
122
+ this.ariaLabelledby = null;
123
+ this.labelPosition = 'right';
124
+ // eslint-disable-next-line @angular-eslint/no-output-on-prefix
125
+ this.onClick = new EventEmitter();
126
+ // eslint-disable-next-line @angular-eslint/no-output-on-prefix
127
+ this.onFocus = new EventEmitter();
128
+ // eslint-disable-next-line @angular-eslint/no-output-on-prefix
129
+ this.onBlur = new EventEmitter();
130
+ this._disabled = false;
131
+ this.hasLabel = false;
132
+ this.focused = false;
133
+ this.radioIndex = 0;
134
+ this.destroy$ = new Subject();
135
+ this.onModelChange = () => {
136
+ // ignore
137
+ };
138
+ this.onModelTouched = () => {
139
+ // ignore
140
+ };
141
+ this.hostDataTest = elementRef.nativeElement.getAttribute('data-test');
142
+ this.ngZone.runOutsideAngular(() => {
143
+ fromEvent(window, 'keydown')
144
+ .pipe(takeUntil(this.destroy$))
145
+ .subscribe((event) => {
146
+ // Handle keydown event
147
+ switch (event.key) {
148
+ case 'ArrowDown':
149
+ case 'ArrowRight':
150
+ this.ngZone.run(() => {
151
+ if (this.focused) {
152
+ event.stopImmediatePropagation();
153
+ this.radioControlRegistry.blurAllGroup(this);
154
+ this.radioControlRegistry.focusNext(this);
155
+ }
156
+ });
157
+ break;
158
+ case 'ArrowUp':
159
+ case 'ArrowLeft':
160
+ this.ngZone.run(() => {
161
+ event.preventDefault();
162
+ if (this.focused) {
163
+ event.stopImmediatePropagation();
164
+ this.radioControlRegistry.blurAllGroup(this);
165
+ this.radioControlRegistry.focusPrevious(this);
166
+ }
167
+ });
168
+ break;
169
+ default:
170
+ return;
171
+ }
172
+ });
173
+ });
174
+ }
175
+ ngOnChanges() {
176
+ if (this.labelElement) {
177
+ this.hasLabel = !!this.labelElement.nativeElement.textContent.trim();
178
+ }
179
+ }
180
+ ngOnInit() {
181
+ this.control = this.injector.get(NgControl);
182
+ this.checkName();
183
+ this.radioControlRegistry.add(this.control, this);
184
+ this.radioIndex = this.radioControlRegistry.getIndex(this);
185
+ this.inputId = `${this.radioId}-${this.radioIndex}`;
186
+ }
187
+ ngAfterContentInit() {
188
+ if (this.labelElement) {
189
+ this.hasLabel = !!this.labelElement.nativeElement.textContent.trim();
190
+ }
191
+ }
192
+ ngOnDestroy() {
193
+ this.radioControlRegistry.remove(this);
194
+ this.destroy$.next();
195
+ this.destroy$.complete();
196
+ }
197
+ handleClick(event, radioButton) {
198
+ event.preventDefault();
199
+ if (this.disabled) {
200
+ return;
201
+ }
202
+ this.select(event);
203
+ radioButton.focus();
204
+ }
205
+ select(event) {
206
+ if (!this.disabled) {
207
+ this.inputElement.nativeElement.checked = true;
208
+ this.checked = true;
209
+ this.onModelChange(this.value);
210
+ this.radioControlRegistry.select(this);
211
+ this.onClick.emit({ originalEvent: event, value: this.value });
212
+ }
213
+ }
214
+ writeValue(value) {
215
+ var _a;
216
+ this.checked = value == this.value;
217
+ if ((_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.nativeElement) {
218
+ this.inputElement.nativeElement.checked = this.checked;
219
+ }
220
+ this.changeDetectorRef.markForCheck();
221
+ }
222
+ registerOnChange(fn) {
223
+ this.onModelChange = fn;
224
+ }
225
+ registerOnTouched(fn) {
226
+ this.onModelTouched = fn;
227
+ }
228
+ onInputFocus(event) {
229
+ this.radioControlRegistry.setNegativeTabIndexToAllExcept(this);
230
+ this.inputElement.nativeElement.checked = true;
231
+ this.checked = true;
232
+ this.onModelChange(this.value);
233
+ this.focused = true;
234
+ this.onFocus.emit(event);
235
+ }
236
+ onInputBlur(event) {
237
+ this.focused = false;
238
+ this.onModelTouched();
239
+ this.onBlur.emit(event);
240
+ }
241
+ onChange(event) {
242
+ this.select(event);
243
+ }
244
+ checkName() {
245
+ if (this.name && this.formControlName && this.name !== this.formControlName) {
246
+ this.throwNameError();
247
+ }
248
+ if (!this.name && this.formControlName) {
249
+ this.name = this.formControlName;
250
+ }
251
+ }
252
+ throwNameError() {
253
+ throw new Error(`
254
+ If you define both a name and a formControlName attribute on your radio button, their values
255
+ must match. Ex: <p-radioButton formControlName="food" name="food"></p-radioButton>
256
+ `);
257
+ }
258
+ }
259
+ RadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: RadioComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
260
+ RadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: RadioComponent, isStandalone: true, selector: "ap-radio[value][radioId]", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], disabled: "disabled", labelPosition: "labelPosition", radioId: "radioId", formControlName: "formControlName", value: "value", required: "required", name: "name" }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, providers: [RADIO_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "labelElement", first: true, predicate: ["label"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"radio-button-container\" [class.label-left]=\"labelPosition === 'left'\">\n <input\n #input\n type=\"radio\"\n tabindex=\"0\"\n [attr.id]=\"inputId\"\n [attr.name]=\"name + '-radio-' + radioIndex\"\n [attr.value]=\"value\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\" />\n <div class=\"radio-button\" [class.disabled]=\"disabled\" (click)=\"handleClick($event, input)\"></div>\n <label [for]=\"inputId\" (click)=\"select($event)\">\n <ng-content></ng-content>\n </label>\n</div>\n", styles: ["ap-radio .radio-button-container{display:flex;gap:var(--ref-spacing-xxs)}ap-radio .radio-button-container.label-left{flex-direction:row-reverse}ap-radio .radio-button-container input[type=radio]{transform:scale(0);position:absolute}ap-radio .radio-button-container input[type=radio]:checked~.radio-button{border-color:var(--ref-color-electric-blue-100);box-shadow:inset 0 0 0 3px var(--ref-color-white)}ap-radio .radio-button-container input[type=radio]:checked~.radio-button.disabled{background:var(--ref-color-grey-40);box-shadow:inset 0 0 0 3px var(--ref-color-grey-10)}ap-radio .radio-button-container input[type=radio]:checked:focus~.radio-button{border-color:var(--ref-color-electric-blue-100)}ap-radio .radio-button-container input[type=radio].disabled~.radio-button{pointer-events:none;cursor:default;box-shadow:inset 0 0 0 16px var(--ref-color-grey-10);border-color:var(--ref-color-grey-20)}ap-radio .radio-button-container input[type=radio].disabled~label{pointer-events:none;cursor:default;color:var(--ref-color-grey-60)}ap-radio .radio-button-container input[type=radio]:focus~.radio-button{outline:3px solid var(--ref-color-electric-blue-100);border-color:var(--ref-color-grey-80);outline-offset:1px}ap-radio .radio-button-container .radio-button{width:16px;height:16px;border-radius:100%;border:1px solid var(--ref-color-grey-60);background:var(--ref-color-electric-blue-100);box-shadow:inset 0 0 0 16px var(--ref-color-white);transition:box-shadow var(--comp-radio-transition-duration)}ap-radio .radio-button-container .radio-button:hover:not(.disabled){cursor:pointer;border-color:var(--ref-color-grey-80)}ap-radio .radio-button-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);color:var(--ref-color-grey-100)}ap-radio .radio-button-container label:empty{display:none}ap-radio .radio-button-container label.disabled{color:var(--ref-color-grey-60)}ap-radio .radio-button-container label:hover:not(.disabled){cursor:pointer}ap-radio.ng-invalid.ng-dirty .radio-button{border-color:var(--ref-color-red-100)}ap-radio.ng-invalid.ng-dirty .radio-button:hover{border-color:var(--ref-color-red-60)}ap-radio.ng-invalid.ng-dirty input[type=radio]:focus~.radio-button{border-color:var(--ref-color-red-60)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: RadioComponent, decorators: [{
262
+ type: Component,
263
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-radio[value][radioId]', standalone: true, imports: [NgIf, SymbolComponent, CommonModule], providers: [RADIO_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, template: "<div class=\"radio-button-container\" [class.label-left]=\"labelPosition === 'left'\">\n <input\n #input\n type=\"radio\"\n tabindex=\"0\"\n [attr.id]=\"inputId\"\n [attr.name]=\"name + '-radio-' + radioIndex\"\n [attr.value]=\"value\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\" />\n <div class=\"radio-button\" [class.disabled]=\"disabled\" (click)=\"handleClick($event, input)\"></div>\n <label [for]=\"inputId\" (click)=\"select($event)\">\n <ng-content></ng-content>\n </label>\n</div>\n", styles: ["ap-radio .radio-button-container{display:flex;gap:var(--ref-spacing-xxs)}ap-radio .radio-button-container.label-left{flex-direction:row-reverse}ap-radio .radio-button-container input[type=radio]{transform:scale(0);position:absolute}ap-radio .radio-button-container input[type=radio]:checked~.radio-button{border-color:var(--ref-color-electric-blue-100);box-shadow:inset 0 0 0 3px var(--ref-color-white)}ap-radio .radio-button-container input[type=radio]:checked~.radio-button.disabled{background:var(--ref-color-grey-40);box-shadow:inset 0 0 0 3px var(--ref-color-grey-10)}ap-radio .radio-button-container input[type=radio]:checked:focus~.radio-button{border-color:var(--ref-color-electric-blue-100)}ap-radio .radio-button-container input[type=radio].disabled~.radio-button{pointer-events:none;cursor:default;box-shadow:inset 0 0 0 16px var(--ref-color-grey-10);border-color:var(--ref-color-grey-20)}ap-radio .radio-button-container input[type=radio].disabled~label{pointer-events:none;cursor:default;color:var(--ref-color-grey-60)}ap-radio .radio-button-container input[type=radio]:focus~.radio-button{outline:3px solid var(--ref-color-electric-blue-100);border-color:var(--ref-color-grey-80);outline-offset:1px}ap-radio .radio-button-container .radio-button{width:16px;height:16px;border-radius:100%;border:1px solid var(--ref-color-grey-60);background:var(--ref-color-electric-blue-100);box-shadow:inset 0 0 0 16px var(--ref-color-white);transition:box-shadow var(--comp-radio-transition-duration)}ap-radio .radio-button-container .radio-button:hover:not(.disabled){cursor:pointer;border-color:var(--ref-color-grey-80)}ap-radio .radio-button-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);color:var(--ref-color-grey-100)}ap-radio .radio-button-container label:empty{display:none}ap-radio .radio-button-container label.disabled{color:var(--ref-color-grey-60)}ap-radio .radio-button-container label:hover:not(.disabled){cursor:pointer}ap-radio.ng-invalid.ng-dirty .radio-button{border-color:var(--ref-color-red-100)}ap-radio.ng-invalid.ng-dirty .radio-button:hover{border-color:var(--ref-color-red-60)}ap-radio.ng-invalid.ng-dirty input[type=radio]:focus~.radio-button{border-color:var(--ref-color-red-60)}\n"] }]
264
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { inputElement: [{
265
+ type: ViewChild,
266
+ args: ['input', { static: true }]
267
+ }], labelElement: [{
268
+ type: ViewChild,
269
+ args: ['label', { static: true }]
270
+ }], ariaLabel: [{
271
+ type: Input,
272
+ args: ['aria-label']
273
+ }], ariaLabelledby: [{
274
+ type: Input,
275
+ args: ['aria-labelledby']
276
+ }], ariaDescribedby: [{
277
+ type: Input,
278
+ args: ['aria-describedby']
279
+ }], disabled: [{
280
+ type: Input
281
+ }], labelPosition: [{
282
+ type: Input
283
+ }], radioId: [{
284
+ type: Input
285
+ }], formControlName: [{
286
+ type: Input
287
+ }], value: [{
288
+ type: Input
289
+ }], required: [{
290
+ type: Input
291
+ }], name: [{
292
+ type: Input
293
+ }], onClick: [{
294
+ type: Output
295
+ }], onFocus: [{
296
+ type: Output
297
+ }], onBlur: [{
298
+ type: Output
299
+ }] } });
300
+
301
+ /**
302
+ * Generated bundle index. Do not edit.
303
+ */
304
+
305
+ export { RADIO_VALUE_ACCESSOR, RadioComponent, RadioControlRegistry };
306
+ //# sourceMappingURL=agorapulse-ui-components-radio.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorapulse-ui-components-radio.mjs","sources":["../../../libs/ui-components/radio/src/radio-control.registry.ts","../../../libs/ui-components/radio/src/radio.component.ts","../../../libs/ui-components/radio/src/radio.component.html","../../../libs/ui-components/radio/src/agorapulse-ui-components-radio.ts"],"sourcesContent":["import {forwardRef, Injectable, Provider} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, NgControl} from '@angular/forms';\nimport {RadioComponent} from './radio.component';\n\nexport const RADIO_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioComponent),\n multi: true,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RadioControlRegistry {\n private accessors: [NgControl, RadioComponent][] = [];\n\n add(control: NgControl, accessor: RadioComponent) {\n this.accessors.push([control, accessor]);\n }\n\n remove(accessor: RadioComponent) {\n this.accessors = this.accessors.filter(([, radioComponent]) => {\n return radioComponent !== accessor;\n });\n }\n\n select(accessor: RadioComponent) {\n this.accessors.forEach(([ngControl, radioComponent]) => {\n if (this.isSameGroup(ngControl, radioComponent, accessor) && radioComponent !== accessor) {\n radioComponent.writeValue(accessor.value);\n }\n });\n }\n\n getIndex(accessor: RadioComponent): number {\n return this.accessors.findIndex(([, radioComponent]) => {\n return radioComponent === accessor;\n });\n }\n\n getNextRadio(accessor: RadioComponent): RadioComponent {\n const index = this.getIndex(accessor);\n const nextIndex = index + 1;\n if (nextIndex >= this.accessors.length) {\n return this.accessors[0][1];\n }\n const nextRadio = this.accessors[nextIndex];\n return nextRadio ? nextRadio[1] : null;\n }\n\n getPreviousRadio(accessor: RadioComponent): RadioComponent {\n const index = this.getIndex(accessor);\n if (index === 0) {\n return this.accessors[this.accessors.length - 1][1];\n }\n const previousIndex = index - 1;\n const previousRadio = this.accessors[previousIndex];\n return previousRadio ? previousRadio[1] : null;\n }\n\n blurAllGroup(accessor: RadioComponent): void {\n this.accessors.forEach(([, radioComponent]) => {\n if (this.isSameGroup(accessor.control, radioComponent, accessor)) {\n radioComponent.inputElement.nativeElement.blur();\n }\n });\n }\n\n setNegativeTabIndexToAllExcept(accessor: RadioComponent): void {\n this.accessors.forEach(([, radioComponent]) => {\n if (this.isSameGroup(accessor.control, radioComponent, accessor)) {\n if (accessor.radioId !== radioComponent.radioId) {\n radioComponent.inputElement.nativeElement.tabIndex = -1;\n } else {\n radioComponent.inputElement.nativeElement.tabIndex = 0;\n }\n }\n });\n }\n\n focusPrevious(accessor: RadioComponent): void {\n const previousRadio = this.getPreviousRadio(accessor);\n if (previousRadio) {\n previousRadio.inputElement.nativeElement.focus();\n }\n }\n\n focusNext(accessor: RadioComponent): void {\n const nextRadio = this.getNextRadio(accessor);\n if (nextRadio) {\n nextRadio.inputElement.nativeElement.focus();\n }\n }\n\n getFirstCheckedRadio(): RadioComponent | null {\n const checkedRadio = this.accessors.find(([, radioComponent]) => {\n return radioComponent.checked;\n });\n return checkedRadio ? checkedRadio[1] : null;\n }\n\n private isSameGroup(ngControl: NgControl, radioComponent: RadioComponent, accessor: RadioComponent): boolean {\n if (!ngControl.control) {\n return false;\n }\n return radioComponent.name === accessor.name;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CommonModule, NgIf} from '@angular/common';\nimport {SymbolComponent} from '@agorapulse/ui-symbol';\nimport {ControlValueAccessor, NgControl} from '@angular/forms';\nimport {RADIO_VALUE_ACCESSOR, RadioControlRegistry} from './radio-control.registry';\nimport {fromEvent, Subject, takeUntil} from 'rxjs';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-radio[value][radioId]',\n styleUrls: ['./radio.component.scss'],\n standalone: true,\n imports: [NgIf, SymbolComponent, CommonModule],\n providers: [RADIO_VALUE_ACCESSOR],\n templateUrl: './radio.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioComponent implements ControlValueAccessor, AfterContentInit, OnChanges, OnInit, OnDestroy {\n public readonly injector: Injector = inject(Injector);\n private readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n private readonly radioControlRegistry: RadioControlRegistry = inject(RadioControlRegistry);\n private readonly ngZone: NgZone = inject(NgZone);\n\n @ViewChild('input', {static: true}) inputElement: ElementRef<HTMLInputElement>;\n @ViewChild('label', {static: true}) labelElement: ElementRef<HTMLInputElement>;\n @Input('aria-label') ariaLabel: string = '';\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n @Input('aria-describedby') ariaDescribedby: string;\n @Input() set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n @Input() labelPosition: 'left' | 'right' = 'right';\n @Input() radioId: string;\n @Input() formControlName: string;\n @Input() value: unknown;\n @Input() required: boolean;\n @Input() name: string;\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onClick: EventEmitter<{\n originalEvent: Event;\n value: unknown;\n }> = new EventEmitter();\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onFocus: EventEmitter<FocusEvent> = new EventEmitter();\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onBlur: EventEmitter<FocusEvent> = new EventEmitter();\n\n inputId: string;\n _disabled: boolean = false;\n hasLabel: boolean = false;\n hostDataTest: string;\n control: NgControl;\n checked: boolean;\n focused: boolean = false;\n radioIndex: number = 0;\n private readonly destroy$: Subject<void> = new Subject<void>();\n\n public onModelChange: (value: unknown) => void = () => {\n // ignore\n };\n\n public onModelTouched: () => void = () => {\n // ignore\n };\n\n constructor(private elementRef: ElementRef) {\n this.hostDataTest = elementRef.nativeElement.getAttribute('data-test');\n\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'keydown')\n .pipe(takeUntil(this.destroy$))\n .subscribe((event: KeyboardEvent) => {\n // Handle keydown event\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n this.ngZone.run(() => {\n if (this.focused) {\n event.stopImmediatePropagation();\n this.radioControlRegistry.blurAllGroup(this);\n this.radioControlRegistry.focusNext(this);\n }\n });\n break;\n case 'ArrowUp':\n case 'ArrowLeft':\n this.ngZone.run(() => {\n event.preventDefault();\n if (this.focused) {\n event.stopImmediatePropagation();\n this.radioControlRegistry.blurAllGroup(this);\n this.radioControlRegistry.focusPrevious(this);\n }\n });\n break;\n default:\n return;\n }\n });\n });\n }\n\n ngOnChanges(): void {\n if (this.labelElement) {\n this.hasLabel = !!this.labelElement.nativeElement.textContent.trim();\n }\n }\n\n ngOnInit() {\n this.control = this.injector.get(NgControl);\n this.checkName();\n this.radioControlRegistry.add(this.control, this);\n this.radioIndex = this.radioControlRegistry.getIndex(this);\n this.inputId = `${this.radioId}-${this.radioIndex}`;\n }\n\n ngAfterContentInit(): void {\n if (this.labelElement) {\n this.hasLabel = !!this.labelElement.nativeElement.textContent.trim();\n }\n }\n\n ngOnDestroy() {\n this.radioControlRegistry.remove(this);\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n handleClick(event: MouseEvent, radioButton: HTMLInputElement) {\n event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n this.select(event);\n radioButton.focus();\n }\n\n select(event: Event) {\n if (!this.disabled) {\n this.inputElement.nativeElement.checked = true;\n this.checked = true;\n this.onModelChange(this.value);\n this.radioControlRegistry.select(this);\n this.onClick.emit({originalEvent: event, value: this.value});\n }\n }\n\n writeValue(value: unknown): void {\n this.checked = value == this.value;\n\n if (this.inputElement?.nativeElement) {\n this.inputElement.nativeElement.checked = this.checked;\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(fn: () => void): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onModelTouched = fn;\n }\n\n onInputFocus(event: FocusEvent) {\n this.radioControlRegistry.setNegativeTabIndexToAllExcept(this);\n this.inputElement.nativeElement.checked = true;\n this.checked = true;\n this.onModelChange(this.value);\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: FocusEvent) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onChange(event: Event) {\n this.select(event);\n }\n\n private checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName) {\n this.throwNameError();\n }\n if (!this.name && this.formControlName) {\n this.name = this.formControlName;\n }\n }\n\n private throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <p-radioButton formControlName=\"food\" name=\"food\"></p-radioButton>\n `);\n }\n}\n","<div class=\"radio-button-container\" [class.label-left]=\"labelPosition === 'left'\">\n <input\n #input\n type=\"radio\"\n tabindex=\"0\"\n [attr.id]=\"inputId\"\n [attr.name]=\"name + '-radio-' + radioIndex\"\n [attr.value]=\"value\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.data-test]=\"hostDataTest ?? name\"\n [checked]=\"checked\"\n [class.disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\" />\n <div class=\"radio-button\" [class.disabled]=\"disabled\" (click)=\"handleClick($event, input)\"></div>\n <label [for]=\"inputId\" (click)=\"select($event)\">\n <ng-content></ng-content>\n </label>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -48,6 +48,7 @@ export { IconButtonComponent } from '@agorapulse/ui-components/icon-button';
48
48
  export { ToggleComponent } from '@agorapulse/ui-components/toggle';
49
49
  export { ButtonComponent } from '@agorapulse/ui-components/button';
50
50
  export { SocialButtonComponent } from '@agorapulse/ui-components/social-button';
51
+ export { RadioComponent } from '@agorapulse/ui-components/radio';
51
52
 
52
53
  // Modules
53
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components.mjs","sources":["../../../libs/ui-components/src/lib/agorapulse-ui-components.module.ts","../../../libs/ui-components/index.ts","../../../libs/ui-components/agorapulse-ui-components.ts"],"sourcesContent":["// Modules\nimport {AddCommentComponent} from '@agorapulse/ui-components/add-comment';\nimport {AvatarComponent} from '@agorapulse/ui-components/avatar';\nimport {ConfirmModalComponent} from '@agorapulse/ui-components/confirm-modal';\nimport {DatepickerComponent} from '@agorapulse/ui-components/datepicker';\nimport {\n AutosizeTextareaDirective,\n DefaultImageDirective,\n EllipsisDirective,\n EqualValidatorDirective,\n FrozenGifDirective,\n MultiStyleTextDirective,\n TruncateTooltipDirective,\n} from '@agorapulse/ui-components/directives';\nimport {DotsStepperComponent} from '@agorapulse/ui-components/dots-stepper';\nimport {InfoboxComponent} from '@agorapulse/ui-components/infobox';\nimport {LabelComponent, LabelListComponent} from '@agorapulse/ui-components/labels';\nimport {LabelsSelectorComponent} from '@agorapulse/ui-components/labels-selector';\nimport {MediaDisplayOverlayDialogComponent} from '@agorapulse/ui-components/media-display-overlay';\nimport {ModalComponent} from '@agorapulse/ui-components/modal';\nimport {DayDisabledPipe, NeoDatepickerComponent} from '@agorapulse/ui-components/neo-datepicker';\nimport {NotificationComponent} from '@agorapulse/ui-components/notification';\nimport {PaginatorButtonComponent, PaginatorComponent} from '@agorapulse/ui-components/paginator';\nimport {PasswordInputComponent} from '@agorapulse/ui-components/password-input';\nimport {PopmenuModule} from '@agorapulse/ui-components/popmenu';\nimport {SlideToggleComponent} from '@agorapulse/ui-components/slide-toggle';\nimport {SnackBarComponent} from '@agorapulse/ui-components/snackbar';\nimport {SnackbarsThreadComponent} from '@agorapulse/ui-components/snackbars-thread';\nimport {StepperComponent} from '@agorapulse/ui-components/stepper';\nimport {TooltipNeoComponent, TooltipNeoDirective} from '@agorapulse/ui-components/tooltip-neo';\nimport {NgModule} from '@angular/core';\nimport {MAT_LEGACY_TABS_CONFIG as MAT_TABS_CONFIG} from '@angular/material/legacy-tabs';\n\n\n/**\n * @deprecated for better tree-shaking, use standalone component import instead\n */\n@NgModule({\n declarations: [],\n imports: [\n // Components\n AvatarComponent,\n StepperComponent,\n ConfirmModalComponent,\n DatepickerComponent,\n DotsStepperComponent,\n EllipsisDirective,\n InfoboxComponent,\n LabelListComponent,\n LabelsSelectorComponent,\n NeoDatepickerComponent,\n MediaDisplayOverlayDialogComponent,\n ModalComponent,\n PasswordInputComponent,\n SnackBarComponent,\n LabelComponent,\n NotificationComponent,\n PaginatorComponent,\n PaginatorButtonComponent,\n SlideToggleComponent,\n SnackbarsThreadComponent,\n TooltipNeoComponent,\n // Directives\n DefaultImageDirective,\n FrozenGifDirective,\n SlideToggleComponent,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TruncateTooltipDirective,\n TooltipNeoDirective,\n AddCommentComponent,\n AutosizeTextareaDirective,\n // Pipes\n DayDisabledPipe,\n ],\n exports: [\n // Components\n AddCommentComponent,\n AvatarComponent,\n StepperComponent,\n ConfirmModalComponent,\n DatepickerComponent,\n NeoDatepickerComponent,\n DotsStepperComponent,\n EllipsisDirective,\n InfoboxComponent,\n LabelComponent,\n LabelListComponent,\n MediaDisplayOverlayDialogComponent,\n ModalComponent,\n PasswordInputComponent,\n SnackBarComponent,\n LabelsSelectorComponent,\n NotificationComponent,\n PaginatorComponent,\n PaginatorButtonComponent,\n SlideToggleComponent,\n SnackbarsThreadComponent,\n // Pipes\n DayDisabledPipe,\n // Directives\n AutosizeTextareaDirective,\n DefaultImageDirective,\n FrozenGifDirective,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TruncateTooltipDirective,\n TooltipNeoDirective,\n // Modules\n PopmenuModule,\n ],\n providers: [\n // Disable ripple effect\n // {provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: {disabled: true}},\n // Disable tabs animation\n {provide: MAT_TABS_CONFIG, useValue: {animationDuration: '0ms'}},\n ],\n})\nexport class AgorapulseUiComponentsModule {}\n","/*\n * Public API Surface of ui\n */\n\n// Module\nexport {AgorapulseUiComponentsModule} from './src/lib/agorapulse-ui-components.module';\nexport {PopmenuModule} from '@agorapulse/ui-components/popmenu';\n\n// Directive\nexport {\n AutosizeTextareaDirective,\n DefaultImageDirective,\n EllipsisDirective,\n FrozenGifDirective,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TruncateTooltipDirective,\n} from '@agorapulse/ui-components/directives';\nexport {PopmenuDirective} from '@agorapulse/ui-components/popmenu';\nexport {TooltipNeoDirective} from '@agorapulse/ui-components/tooltip-neo';\n\n// Component\nexport {AddCommentComponent} from '@agorapulse/ui-components/add-comment';\nexport {AvatarComponent} from '@agorapulse/ui-components/avatar';\nexport {StepperComponent} from '@agorapulse/ui-components/stepper';\nexport {ConfirmModalComponent} from '@agorapulse/ui-components/confirm-modal';\nexport {DatepickerComponent, DatepickerMode, I18nDatePicker, Period} from '@agorapulse/ui-components/datepicker';\nexport {\n NeoDatepickerComponent,\n NeoDatePickerStartsOn,\n NeoDatePickerMode,\n NeoDatePickerLocale,\n DayDisabledPipe,\n} from '@agorapulse/ui-components/neo-datepicker';\nexport {DotsStepperComponent} from '@agorapulse/ui-components/dots-stepper';\nexport {InfoboxComponent} from '@agorapulse/ui-components/infobox';\nexport {LabelComponent} from '@agorapulse/ui-components/labels';\nexport {LabelListComponent} from '@agorapulse/ui-components/labels';\nexport {LabelsSelectorComponent} from '@agorapulse/ui-components/labels-selector';\nexport {MediaDisplayOverlayDialogComponent} from '@agorapulse/ui-components/media-display-overlay';\nexport {ModalComponent, ModalConfig} from '@agorapulse/ui-components/modal';\nexport {PaginatorComponent} from '@agorapulse/ui-components/paginator';\nexport {PasswordInputComponent} from '@agorapulse/ui-components/password-input';\nexport {PopmenuComponent} from '@agorapulse/ui-components/popmenu';\nexport {SnackBarComponent} from '@agorapulse/ui-components/snackbar';\nexport {NotificationComponent} from '@agorapulse/ui-components/notification';\nexport {PaginatorButtonComponent} from '@agorapulse/ui-components/paginator';\nexport {SlideToggleComponent} from '@agorapulse/ui-components/slide-toggle';\nexport {SnackbarsThreadComponent} from '@agorapulse/ui-components/snackbars-thread';\nexport {CheckboxComponent} from '@agorapulse/ui-components/checkbox';\nexport {IconButtonComponent} from '@agorapulse/ui-components/icon-button';\nexport {ToggleComponent} from '@agorapulse/ui-components/toggle';\nexport {ButtonComponent} from '@agorapulse/ui-components/button';\nexport {SocialButtonComponent} from '@agorapulse/ui-components/social-button';\n\n// Service\nexport {SnackbarsThreadService} from '@agorapulse/ui-components/snackbars-thread';\n\n// Model\nexport {Step} from '@agorapulse/ui-components/stepper';\nexport {ConfirmModalTexts} from '@agorapulse/ui-components/confirm-modal';\nexport {\n generateCodeStatus,\n CodeStatus,\n SnackbarsThreadBase,\n SnackbarTypeValues,\n externalSnackbarTypeAllowed,\n} from '@agorapulse/ui-components/snackbars-thread';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["MAT_TABS_CONFIG"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAkCA;;AAEG;MAkFU,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;0HAA5B,4BAA4B,EAAA,OAAA,EAAA;;QA7EjC,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;QACjB,gBAAgB;QAChB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,kCAAkC;QAClC,cAAc;QACd,sBAAsB;QACtB,iBAAiB;QACjB,cAAc;QACd,qBAAqB;QACrB,kBAAkB;QAClB,wBAAwB;QACxB,oBAAoB;QACpB,wBAAwB;QACxB,mBAAmB;;QAEnB,qBAAqB;QACrB,kBAAkB;QAClB,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;QACxB,mBAAmB;QACnB,mBAAmB;QACnB,yBAAyB;;QAEzB,eAAe;AAAA,KAAA,EAAA,OAAA,EAAA;;QAIf,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB;QACtB,oBAAoB;QACpB,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,kBAAkB;QAClB,kCAAkC;QAClC,cAAc;QACd,sBAAsB;QACtB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,kBAAkB;QAClB,wBAAwB;QACxB,oBAAoB;QACpB,wBAAwB;;QAExB,eAAe;;QAEf,yBAAyB;QACzB,qBAAqB;QACrB,kBAAkB;QAClB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;QACxB,mBAAmB;;QAEnB,aAAa;AAAA,KAAA,EAAA,CAAA,CAAA;AASR,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAP1B,SAAA,EAAA;;;;QAIP,EAAC,OAAO,EAAEA,sBAAe,EAAE,QAAQ,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,EAAC;AACnE,KAAA,EAAA,OAAA,EAAA;;QA3EG,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB;QACnB,oBAAoB;QAEpB,gBAAgB;QAChB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,kCAAkC;QAClC,cAAc;QACd,sBAAsB;QACtB,iBAAiB;QACjB,cAAc;QACd,qBAAqB;QACrB,kBAAkB;QAClB,wBAAwB;QACxB,oBAAoB;QACpB,wBAAwB;QACxB,mBAAmB;QAInB,oBAAoB;QAKpB,mBAAmB;;QAuCnB,aAAa;AAAA,KAAA,EAAA,CAAA,CAAA;2FASR,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAjFxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;;wBAEL,eAAe;wBACf,gBAAgB;wBAChB,qBAAqB;wBACrB,mBAAmB;wBACnB,oBAAoB;wBACpB,iBAAiB;wBACjB,gBAAgB;wBAChB,kBAAkB;wBAClB,uBAAuB;wBACvB,sBAAsB;wBACtB,kCAAkC;wBAClC,cAAc;wBACd,sBAAsB;wBACtB,iBAAiB;wBACjB,cAAc;wBACd,qBAAqB;wBACrB,kBAAkB;wBAClB,wBAAwB;wBACxB,oBAAoB;wBACpB,wBAAwB;wBACxB,mBAAmB;;wBAEnB,qBAAqB;wBACrB,kBAAkB;wBAClB,oBAAoB;wBACpB,uBAAuB;wBACvB,uBAAuB;wBACvB,wBAAwB;wBACxB,mBAAmB;wBACnB,mBAAmB;wBACnB,yBAAyB;;wBAEzB,eAAe;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;;wBAEL,mBAAmB;wBACnB,eAAe;wBACf,gBAAgB;wBAChB,qBAAqB;wBACrB,mBAAmB;wBACnB,sBAAsB;wBACtB,oBAAoB;wBACpB,iBAAiB;wBACjB,gBAAgB;wBAChB,cAAc;wBACd,kBAAkB;wBAClB,kCAAkC;wBAClC,cAAc;wBACd,sBAAsB;wBACtB,iBAAiB;wBACjB,uBAAuB;wBACvB,qBAAqB;wBACrB,kBAAkB;wBAClB,wBAAwB;wBACxB,oBAAoB;wBACpB,wBAAwB;;wBAExB,eAAe;;wBAEf,yBAAyB;wBACzB,qBAAqB;wBACrB,kBAAkB;wBAClB,uBAAuB;wBACvB,uBAAuB;wBACvB,wBAAwB;wBACxB,mBAAmB;;wBAEnB,aAAa;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE;;;;wBAIP,EAAC,OAAO,EAAEA,sBAAe,EAAE,QAAQ,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,EAAC;AACnE,qBAAA;iBACJ,CAAA;;;ACrHD;;AAEG;AAEH;;ACJA;;AAEG;;;;"}
1
+ {"version":3,"file":"agorapulse-ui-components.mjs","sources":["../../../libs/ui-components/src/lib/agorapulse-ui-components.module.ts","../../../libs/ui-components/index.ts","../../../libs/ui-components/agorapulse-ui-components.ts"],"sourcesContent":["// Modules\nimport {AddCommentComponent} from '@agorapulse/ui-components/add-comment';\nimport {AvatarComponent} from '@agorapulse/ui-components/avatar';\nimport {ConfirmModalComponent} from '@agorapulse/ui-components/confirm-modal';\nimport {DatepickerComponent} from '@agorapulse/ui-components/datepicker';\nimport {\n AutosizeTextareaDirective,\n DefaultImageDirective,\n EllipsisDirective,\n EqualValidatorDirective,\n FrozenGifDirective,\n MultiStyleTextDirective,\n TruncateTooltipDirective,\n} from '@agorapulse/ui-components/directives';\nimport {DotsStepperComponent} from '@agorapulse/ui-components/dots-stepper';\nimport {InfoboxComponent} from '@agorapulse/ui-components/infobox';\nimport {LabelComponent, LabelListComponent} from '@agorapulse/ui-components/labels';\nimport {LabelsSelectorComponent} from '@agorapulse/ui-components/labels-selector';\nimport {MediaDisplayOverlayDialogComponent} from '@agorapulse/ui-components/media-display-overlay';\nimport {ModalComponent} from '@agorapulse/ui-components/modal';\nimport {DayDisabledPipe, NeoDatepickerComponent} from '@agorapulse/ui-components/neo-datepicker';\nimport {NotificationComponent} from '@agorapulse/ui-components/notification';\nimport {PaginatorButtonComponent, PaginatorComponent} from '@agorapulse/ui-components/paginator';\nimport {PasswordInputComponent} from '@agorapulse/ui-components/password-input';\nimport {PopmenuModule} from '@agorapulse/ui-components/popmenu';\nimport {SlideToggleComponent} from '@agorapulse/ui-components/slide-toggle';\nimport {SnackBarComponent} from '@agorapulse/ui-components/snackbar';\nimport {SnackbarsThreadComponent} from '@agorapulse/ui-components/snackbars-thread';\nimport {StepperComponent} from '@agorapulse/ui-components/stepper';\nimport {TooltipNeoComponent, TooltipNeoDirective} from '@agorapulse/ui-components/tooltip-neo';\nimport {NgModule} from '@angular/core';\nimport {MAT_LEGACY_TABS_CONFIG as MAT_TABS_CONFIG} from '@angular/material/legacy-tabs';\n\n\n/**\n * @deprecated for better tree-shaking, use standalone component import instead\n */\n@NgModule({\n declarations: [],\n imports: [\n // Components\n AvatarComponent,\n StepperComponent,\n ConfirmModalComponent,\n DatepickerComponent,\n DotsStepperComponent,\n EllipsisDirective,\n InfoboxComponent,\n LabelListComponent,\n LabelsSelectorComponent,\n NeoDatepickerComponent,\n MediaDisplayOverlayDialogComponent,\n ModalComponent,\n PasswordInputComponent,\n SnackBarComponent,\n LabelComponent,\n NotificationComponent,\n PaginatorComponent,\n PaginatorButtonComponent,\n SlideToggleComponent,\n SnackbarsThreadComponent,\n TooltipNeoComponent,\n // Directives\n DefaultImageDirective,\n FrozenGifDirective,\n SlideToggleComponent,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TruncateTooltipDirective,\n TooltipNeoDirective,\n AddCommentComponent,\n AutosizeTextareaDirective,\n // Pipes\n DayDisabledPipe,\n ],\n exports: [\n // Components\n AddCommentComponent,\n AvatarComponent,\n StepperComponent,\n ConfirmModalComponent,\n DatepickerComponent,\n NeoDatepickerComponent,\n DotsStepperComponent,\n EllipsisDirective,\n InfoboxComponent,\n LabelComponent,\n LabelListComponent,\n MediaDisplayOverlayDialogComponent,\n ModalComponent,\n PasswordInputComponent,\n SnackBarComponent,\n LabelsSelectorComponent,\n NotificationComponent,\n PaginatorComponent,\n PaginatorButtonComponent,\n SlideToggleComponent,\n SnackbarsThreadComponent,\n // Pipes\n DayDisabledPipe,\n // Directives\n AutosizeTextareaDirective,\n DefaultImageDirective,\n FrozenGifDirective,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TruncateTooltipDirective,\n TooltipNeoDirective,\n // Modules\n PopmenuModule,\n ],\n providers: [\n // Disable ripple effect\n // {provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: {disabled: true}},\n // Disable tabs animation\n {provide: MAT_TABS_CONFIG, useValue: {animationDuration: '0ms'}},\n ],\n})\nexport class AgorapulseUiComponentsModule {}\n","/*\n * Public API Surface of ui\n */\n\n// Module\nexport {AgorapulseUiComponentsModule} from './src/lib/agorapulse-ui-components.module';\nexport {PopmenuModule} from '@agorapulse/ui-components/popmenu';\n\n// Directive\nexport {\n AutosizeTextareaDirective,\n DefaultImageDirective,\n EllipsisDirective,\n FrozenGifDirective,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TruncateTooltipDirective,\n} from '@agorapulse/ui-components/directives';\nexport {PopmenuDirective} from '@agorapulse/ui-components/popmenu';\nexport {TooltipNeoDirective} from '@agorapulse/ui-components/tooltip-neo';\n\n// Component\nexport {AddCommentComponent} from '@agorapulse/ui-components/add-comment';\nexport {AvatarComponent} from '@agorapulse/ui-components/avatar';\nexport {StepperComponent} from '@agorapulse/ui-components/stepper';\nexport {ConfirmModalComponent} from '@agorapulse/ui-components/confirm-modal';\nexport {DatepickerComponent, DatepickerMode, I18nDatePicker, Period} from '@agorapulse/ui-components/datepicker';\nexport {\n NeoDatepickerComponent,\n NeoDatePickerStartsOn,\n NeoDatePickerMode,\n NeoDatePickerLocale,\n DayDisabledPipe,\n} from '@agorapulse/ui-components/neo-datepicker';\nexport {DotsStepperComponent} from '@agorapulse/ui-components/dots-stepper';\nexport {InfoboxComponent} from '@agorapulse/ui-components/infobox';\nexport {LabelComponent} from '@agorapulse/ui-components/labels';\nexport {LabelListComponent} from '@agorapulse/ui-components/labels';\nexport {LabelsSelectorComponent} from '@agorapulse/ui-components/labels-selector';\nexport {MediaDisplayOverlayDialogComponent} from '@agorapulse/ui-components/media-display-overlay';\nexport {ModalComponent, ModalConfig} from '@agorapulse/ui-components/modal';\nexport {PaginatorComponent} from '@agorapulse/ui-components/paginator';\nexport {PasswordInputComponent} from '@agorapulse/ui-components/password-input';\nexport {PopmenuComponent} from '@agorapulse/ui-components/popmenu';\nexport {SnackBarComponent} from '@agorapulse/ui-components/snackbar';\nexport {NotificationComponent} from '@agorapulse/ui-components/notification';\nexport {PaginatorButtonComponent} from '@agorapulse/ui-components/paginator';\nexport {SlideToggleComponent} from '@agorapulse/ui-components/slide-toggle';\nexport {SnackbarsThreadComponent} from '@agorapulse/ui-components/snackbars-thread';\nexport {CheckboxComponent} from '@agorapulse/ui-components/checkbox';\nexport {IconButtonComponent} from '@agorapulse/ui-components/icon-button';\nexport {ToggleComponent} from '@agorapulse/ui-components/toggle';\nexport {ButtonComponent} from '@agorapulse/ui-components/button';\nexport {SocialButtonComponent} from '@agorapulse/ui-components/social-button';\nexport {RadioComponent} from '@agorapulse/ui-components/radio';\n\n// Service\nexport {SnackbarsThreadService} from '@agorapulse/ui-components/snackbars-thread';\n\n// Model\nexport {Step} from '@agorapulse/ui-components/stepper';\nexport {ConfirmModalTexts} from '@agorapulse/ui-components/confirm-modal';\nexport {\n generateCodeStatus,\n CodeStatus,\n SnackbarsThreadBase,\n SnackbarTypeValues,\n externalSnackbarTypeAllowed,\n} from '@agorapulse/ui-components/snackbars-thread';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["MAT_TABS_CONFIG"],"mappings":"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"}
@@ -98,7 +98,8 @@ class AvatarComponent {
98
98
  this.username$ = new BehaviorSubject('');
99
99
  this.online$ = new BehaviorSubject(false);
100
100
  this.showInitials$ = new BehaviorSubject(false);
101
- this.rounded$ = new BehaviorSubject(false);
101
+ this.rounded$ = new BehaviorSubject(true);
102
+ this.roundedAvatar = true;
102
103
  this.displayProfilePicture$ = new Observable();
103
104
  this.displaySingleNeutralSvg$ = new Observable();
104
105
  this.displayInitials$ = new Observable();
@@ -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 apFacebookOfficial,\n apGoogleMyBusinessOfficial,\n apLinkedinOfficial,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n apTiktokOfficial,\n apTwitterOfficial,\n apYoutubeOfficial,\n apPinterestOfficial,\n SymbolComponent,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\nimport {NgForOf, NgIf, NgOptimizedImage} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, of} from 'rxjs';\nimport {LetModule} from '@ngrx/component';\n\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\nexport type AvatarNetwork =\n | 'facebook'\n | 'instagram'\n | 'twitter'\n | 'linkedin'\n | 'tiktok'\n | 'youtube'\n | 'pinterest'\n | 'googleMyBusiness';\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\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-avatar',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule],\n templateUrl: './avatar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AvatarComponent implements OnInit {\n readonly networkSymbolByNetwork: Record<AvatarNetwork, string> = {\n facebook: 'facebook-official',\n instagram: 'instagram-official',\n twitter: 'twitter-official',\n linkedin: 'linkedin-official',\n tiktok: 'tiktok-official',\n youtube: 'youtube-official',\n pinterest: 'pinterest-official',\n googleMyBusiness: 'google-my-business-official',\n };\n\n size$: BehaviorSubject<AvatarSize> = new BehaviorSubject<AvatarSize>(40);\n profilePicture$: BehaviorSubject<string | undefined> = new BehaviorSubject<string>('');\n network$: BehaviorSubject<AvatarNetwork> = new BehaviorSubject<AvatarNetwork>('facebook');\n\n private alternativeText$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private anonymous$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private username$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private online$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private showInitials$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private rounded$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n @Input() set alternativeText(alternativeText: string) {\n this.alternativeText$.next(alternativeText);\n }\n\n @Input() set anonymous(anonymous: boolean) {\n this.anonymous$.next(anonymous);\n }\n\n @Input() set username(username: string) {\n this.username$.next(username);\n }\n\n @Input() set network(network: AvatarNetwork) {\n this.network$.next(network);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-network-size',\n `${networkSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n @Input() set online(online: boolean) {\n this.online$.next(online);\n }\n\n @Input() set profilePicture(profilePicture: string | undefined) {\n this.profilePicture$.next(profilePicture);\n this.imageError$.next(false);\n }\n\n @Input() set showInitials(showInitials: boolean) {\n this.showInitials$.next(showInitials);\n }\n @Input() alt: string;\n\n @HostBinding('class.rounded-avatar')\n roundedAvatar: boolean;\n\n @Input()\n set rounded(rounded: boolean) {\n this.roundedAvatar = rounded;\n this.rounded$.next(rounded);\n }\n\n @Input() set size(size: AvatarSize) {\n this.size$.next(size);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `${size}px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[size]}px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-online-icon-size',\n `${onlineIconSizeByAvatarSize[size]}px`\n );\n }\n\n displayProfilePicture$: Observable<boolean> = new Observable<boolean>();\n displaySingleNeutralSvg$: Observable<boolean> = new Observable<boolean>();\n displayInitials$: Observable<boolean> = new Observable<boolean>();\n displayAnonymous$: Observable<boolean> = new Observable<boolean>();\n displayNetwork$: Observable<boolean> = new Observable<boolean>();\n displayOnline$: Observable<boolean> = new Observable<boolean>();\n imageError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n initials$: Observable<string> = new Observable<string>();\n initialsAvailable$: Observable<boolean> = of(false);\n\n constructor(private symbolRegistry: SymbolRegistry, private elementRef: ElementRef) {\n this.symbolRegistry.registerSymbols([\n apSingleNeutral,\n apShowTheaterMaskHappy,\n apFacebookOfficial,\n apTwitterOfficial,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apTiktokOfficial,\n apGoogleMyBusinessOfficial,\n apPinterestOfficial,\n ]);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-symbol-size',\n `${symbolSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n ngOnInit(): void {\n this.initialsAvailable$ = this.username$.pipe(\n map(username => {\n return !!username;\n })\n );\n\n this.displayProfilePicture$ = combineLatest([\n this.profilePicture$,\n this.anonymous$,\n this.imageError$,\n this.showInitials$,\n ]).pipe(\n map(([profilePicture, anonymous, imageError]) => {\n return !!profilePicture && !anonymous && !imageError;\n })\n );\n\n this.displayInitials$ = combineLatest([\n this.showInitials$,\n this.anonymous$,\n this.initialsAvailable$,\n this.displayProfilePicture$,\n ]).pipe(\n map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {\n return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;\n })\n );\n\n this.displaySingleNeutralSvg$ = combineLatest([\n this.profilePicture$,\n this.imageError$,\n this.initialsAvailable$,\n this.showInitials$,\n this.anonymous$,\n this.displayInitials$,\n this.displayProfilePicture$,\n ]).pipe(\n map(\n ([\n profilePicture,\n imageError,\n initialsAvailable,\n showInitials,\n anonymous,\n displayInitials,\n displayProfilePicture,\n ]) => {\n return (\n (!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&\n !anonymous &&\n !displayInitials &&\n !displayProfilePicture\n );\n }\n )\n );\n\n this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(\n map(([anonymous, rounded]) => {\n return anonymous && rounded;\n })\n );\n\n this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(\n map(([online, rounded]) => {\n return online && rounded;\n })\n );\n\n this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(\n map(([network, rounded]) => {\n return !!network && rounded;\n })\n );\n\n this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(\n map(([displayInitials, username]) => {\n if (displayInitials && !username) {\n return '';\n }\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-initials-size',\n `${initialSizeByAvatarSize[this.size$.value]}px`\n );\n const names = username.split(' ');\n if (names.length === 1) {\n return `${names[0].charAt(0).toUpperCase()}${names[0].charAt(1).toUpperCase()}`;\n }\n return `${names[0].charAt(0).toUpperCase()}${names[names.length - 1].charAt(0).toUpperCase()}`;\n })\n );\n }\n\n onImageError(): void {\n this.imageError$.next(true);\n }\n}\n","<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [ngSrc]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"avatarViewModel.network === 'googleMyBusiness'\"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\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 apFacebookOfficial,\n apGoogleMyBusinessOfficial,\n apLinkedinOfficial,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n apTiktokOfficial,\n apTwitterOfficial,\n apYoutubeOfficial,\n apPinterestOfficial,\n SymbolComponent,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\nimport {NgForOf, NgIf, NgOptimizedImage} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, of} from 'rxjs';\nimport {LetModule} from '@ngrx/component';\n\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\nexport type AvatarNetwork =\n | 'facebook'\n | 'instagram'\n | 'twitter'\n | 'linkedin'\n | 'tiktok'\n | 'youtube'\n | 'pinterest'\n | 'googleMyBusiness';\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\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-avatar',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule],\n templateUrl: './avatar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AvatarComponent implements OnInit {\n readonly networkSymbolByNetwork: Record<AvatarNetwork, string> = {\n facebook: 'facebook-official',\n instagram: 'instagram-official',\n twitter: 'twitter-official',\n linkedin: 'linkedin-official',\n tiktok: 'tiktok-official',\n youtube: 'youtube-official',\n pinterest: 'pinterest-official',\n googleMyBusiness: 'google-my-business-official',\n };\n\n size$: BehaviorSubject<AvatarSize> = new BehaviorSubject<AvatarSize>(40);\n profilePicture$: BehaviorSubject<string | undefined> = new BehaviorSubject<string>('');\n network$: BehaviorSubject<AvatarNetwork> = new BehaviorSubject<AvatarNetwork>('facebook');\n\n private alternativeText$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private anonymous$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private username$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private online$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private showInitials$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private rounded$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n @Input() set alternativeText(alternativeText: string) {\n this.alternativeText$.next(alternativeText);\n }\n\n @Input() set anonymous(anonymous: boolean) {\n this.anonymous$.next(anonymous);\n }\n\n @Input() set username(username: string) {\n this.username$.next(username);\n }\n\n @Input() set network(network: AvatarNetwork) {\n this.network$.next(network);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-network-size',\n `${networkSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n @Input() set online(online: boolean) {\n this.online$.next(online);\n }\n\n @Input() set profilePicture(profilePicture: string | undefined) {\n this.profilePicture$.next(profilePicture);\n this.imageError$.next(false);\n }\n\n @Input() set showInitials(showInitials: boolean) {\n this.showInitials$.next(showInitials);\n }\n @Input() alt: string;\n\n @HostBinding('class.rounded-avatar')\n roundedAvatar: boolean = true;\n\n @Input()\n set rounded(rounded: boolean) {\n this.roundedAvatar = rounded;\n this.rounded$.next(rounded);\n }\n\n @Input() set size(size: AvatarSize) {\n this.size$.next(size);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `${size}px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[size]}px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-online-icon-size',\n `${onlineIconSizeByAvatarSize[size]}px`\n );\n }\n\n displayProfilePicture$: Observable<boolean> = new Observable<boolean>();\n displaySingleNeutralSvg$: Observable<boolean> = new Observable<boolean>();\n displayInitials$: Observable<boolean> = new Observable<boolean>();\n displayAnonymous$: Observable<boolean> = new Observable<boolean>();\n displayNetwork$: Observable<boolean> = new Observable<boolean>();\n displayOnline$: Observable<boolean> = new Observable<boolean>();\n imageError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n initials$: Observable<string> = new Observable<string>();\n initialsAvailable$: Observable<boolean> = of(false);\n\n constructor(private symbolRegistry: SymbolRegistry, private elementRef: ElementRef) {\n this.symbolRegistry.registerSymbols([\n apSingleNeutral,\n apShowTheaterMaskHappy,\n apFacebookOfficial,\n apTwitterOfficial,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apTiktokOfficial,\n apGoogleMyBusinessOfficial,\n apPinterestOfficial,\n ]);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-symbol-size',\n `${symbolSizeByAvatarSize[this.size$.value]}px`\n );\n }\n\n ngOnInit(): void {\n this.initialsAvailable$ = this.username$.pipe(\n map(username => {\n return !!username;\n })\n );\n\n this.displayProfilePicture$ = combineLatest([\n this.profilePicture$,\n this.anonymous$,\n this.imageError$,\n this.showInitials$,\n ]).pipe(\n map(([profilePicture, anonymous, imageError]) => {\n return !!profilePicture && !anonymous && !imageError;\n })\n );\n\n this.displayInitials$ = combineLatest([\n this.showInitials$,\n this.anonymous$,\n this.initialsAvailable$,\n this.displayProfilePicture$,\n ]).pipe(\n map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {\n return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;\n })\n );\n\n this.displaySingleNeutralSvg$ = combineLatest([\n this.profilePicture$,\n this.imageError$,\n this.initialsAvailable$,\n this.showInitials$,\n this.anonymous$,\n this.displayInitials$,\n this.displayProfilePicture$,\n ]).pipe(\n map(\n ([\n profilePicture,\n imageError,\n initialsAvailable,\n showInitials,\n anonymous,\n displayInitials,\n displayProfilePicture,\n ]) => {\n return (\n (!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&\n !anonymous &&\n !displayInitials &&\n !displayProfilePicture\n );\n }\n )\n );\n\n this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(\n map(([anonymous, rounded]) => {\n return anonymous && rounded;\n })\n );\n\n this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(\n map(([online, rounded]) => {\n return online && rounded;\n })\n );\n\n this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(\n map(([network, rounded]) => {\n return !!network && rounded;\n })\n );\n\n this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(\n map(([displayInitials, username]) => {\n if (displayInitials && !username) {\n return '';\n }\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-initials-size',\n `${initialSizeByAvatarSize[this.size$.value]}px`\n );\n const names = username.split(' ');\n if (names.length === 1) {\n return `${names[0].charAt(0).toUpperCase()}${names[0].charAt(1).toUpperCase()}`;\n }\n return `${names[0].charAt(0).toUpperCase()}${names[names.length - 1].charAt(0).toUpperCase()}`;\n })\n );\n }\n\n onImageError(): void {\n this.imageError$.next(true);\n }\n}\n","<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [ngSrc]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"avatarViewModel.network === 'googleMyBusiness'\"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}