@lucca-front/ng 21.0.0-rc.3 → 21.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app-layout/index.d.ts +1 -1
- package/box/index.d.ts +3 -3
- package/breadcrumbs/index.d.ts +3 -3
- package/button/index.d.ts +21 -26
- package/callout/index.d.ts +58 -73
- package/chip/index.d.ts +1 -1
- package/code/index.d.ts +1 -1
- package/comment/index.d.ts +14 -11
- package/core/index.d.ts +5 -5
- package/core-select/index.d.ts +4 -6
- package/core-select/user/index.d.ts +2 -3
- package/data-table/index.d.ts +2 -1
- package/dialog/index.d.ts +3 -3
- package/empty-state/index.d.ts +26 -23
- package/fancy-box/index.d.ts +10 -11
- package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-button.mjs +90 -59
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +131 -165
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-code.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-comment.mjs +35 -15
- package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-api.mjs +3 -3
- package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +11 -14
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +20 -14
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +3 -3
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-data-table.mjs +5 -3
- package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +25 -22
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-empty-state.mjs +68 -27
- package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-fancy-box.mjs +28 -14
- package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +17 -15
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +2 -2
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +184 -96
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-icon.mjs +19 -14
- package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-inline-message.mjs +22 -15
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +28 -20
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-mobile-push.mjs +8 -4
- package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-new-badge.mjs +11 -7
- package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +39 -40
- package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-page-header.mjs +2 -2
- package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-plg-push.mjs +17 -8
- package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-scroll.mjs +29 -19
- package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +44 -34
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs +42 -31
- package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-time.mjs +18 -8
- package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-toast.mjs +60 -55
- package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tooltip.mjs +107 -80
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +84 -44
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs +6 -6
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
- package/forms/index.d.ts +61 -53
- package/forms/phone-number-input/index.d.ts +13 -13
- package/icon/index.d.ts +10 -10
- package/inline-message/index.d.ts +11 -9
- package/link/index.d.ts +13 -11
- package/mobile-push/index.d.ts +6 -5
- package/new-badge/index.d.ts +3 -2
- package/numeric-badge/index.d.ts +11 -14
- package/package.json +31 -31
- package/plg-push/index.d.ts +8 -6
- package/scroll/index.d.ts +22 -20
- package/skeleton/index.d.ts +32 -27
- package/tag/index.d.ts +15 -17
- package/time/index.d.ts +5 -5
- package/toast/index.d.ts +25 -23
- package/tooltip/index.d.ts +41 -33
- package/user/index.d.ts +28 -17
- package/vertical-navigation/index.d.ts +16 -16
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, Pipe, NgModule, input, booleanAttribute, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, effect, Injectable, forwardRef, Inject,
|
|
3
|
-
import {
|
|
2
|
+
import { InjectionToken, inject, Pipe, NgModule, input, booleanAttribute, computed, Input, Optional, ViewEncapsulation, ChangeDetectionStrategy, Component, ChangeDetectorRef, effect, Injectable, forwardRef, Inject, SkipSelf, Self, Directive, ElementRef, Output, ViewChild, HostBinding } from '@angular/core';
|
|
3
|
+
import { LuClass, ALuOnOpenSubscriber, getIntl, ALuOnCloseSubscriber, ALuOnScrollBottomSubscriber } from '@lucca-front/ng/core';
|
|
4
4
|
import { NgStyle, AsyncPipe } from '@angular/common';
|
|
5
|
+
import { IconComponent } from '@lucca-front/ng/icon';
|
|
5
6
|
import * as i1$1 from '@angular/cdk/overlay';
|
|
6
7
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
7
8
|
import * as i1 from '@angular/forms';
|
|
@@ -151,33 +152,37 @@ class LuUserPictureComponent {
|
|
|
151
152
|
* User Display format.
|
|
152
153
|
* It is set to 'LU_DEFAULT_DISPLAY_POLICY' by default
|
|
153
154
|
*/
|
|
154
|
-
this.displayFormat =
|
|
155
|
-
this.user = input();
|
|
156
|
-
this.AI = input(false, { transform: booleanAttribute });
|
|
157
|
-
this.size = input('M');
|
|
155
|
+
this.displayFormat = displayPictureFormatRecord[inject(LU_DEFAULT_DISPLAY_POLICY)];
|
|
158
156
|
/**
|
|
159
157
|
* Image loading attribute
|
|
160
158
|
* It is set to 'lazy' by default
|
|
161
159
|
*
|
|
162
160
|
* (more info: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#loading)
|
|
163
161
|
*/
|
|
164
|
-
this.imageLoadingAttribute =
|
|
165
|
-
this.
|
|
166
|
-
this.
|
|
162
|
+
this.imageLoadingAttribute = 'lazy';
|
|
163
|
+
this.AI = input(false, { transform: booleanAttribute });
|
|
164
|
+
this.size = input('M');
|
|
165
|
+
this.initials = '';
|
|
167
166
|
this.hasPicture = false;
|
|
168
167
|
this.pictureHref = '';
|
|
169
168
|
this.style = {};
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
}
|
|
169
|
+
this.modSize = computed(() => `mod-${this.size()}`);
|
|
170
|
+
}
|
|
171
|
+
set user(user) {
|
|
172
|
+
this._user = user;
|
|
173
|
+
const pictureHref = user?.picture?.href || user?.pictureHref;
|
|
174
|
+
this.hasPicture = !!pictureHref;
|
|
175
|
+
this.pictureHref = pictureHref;
|
|
176
|
+
if (!this.hasPicture) {
|
|
177
|
+
const hsl = this.getNameHue();
|
|
178
|
+
this.style = { 'background-color': `hsl(${hsl}, 60%, 60%)` };
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
get user() {
|
|
182
|
+
return this._user;
|
|
183
|
+
}
|
|
184
|
+
ngOnChanges() {
|
|
185
|
+
this.initials = luUserDisplay(this.user, this.displayFormat);
|
|
181
186
|
}
|
|
182
187
|
pictureError() {
|
|
183
188
|
this.hasPicture = false;
|
|
@@ -186,18 +191,18 @@ class LuUserPictureComponent {
|
|
|
186
191
|
}
|
|
187
192
|
getNameHue() {
|
|
188
193
|
// we sum the chars in user's firstname + lastname
|
|
189
|
-
const charSum = luUserDisplay(this.
|
|
194
|
+
const charSum = luUserDisplay(this._user, LuDisplayFullname.firstlast)
|
|
190
195
|
.split('')
|
|
191
196
|
.reduce((sum, a) => sum + a.charCodeAt(0), 0);
|
|
192
197
|
// and take a modulo 360 for hue
|
|
193
198
|
return charSum % 360;
|
|
194
199
|
}
|
|
195
200
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserPictureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
196
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: LuUserPictureComponent, isStandalone: true, selector: "lu-user-picture", inputs: { displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal:
|
|
201
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: LuUserPictureComponent, isStandalone: true, selector: "lu-user-picture", inputs: { displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: false, isRequired: false, transformFunction: null }, imageLoadingAttribute: { classPropertyName: "imageLoadingAttribute", publicName: "imageLoadingAttribute", isSignal: false, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: false, isRequired: false, transformFunction: null }, AI: { classPropertyName: "AI", publicName: "AI", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mod-AI": "AI()", "class.mod-XS": "size() === \"XS\"", "class.mod-S": "size() === \"S\"", "class.mod-M": "size() === \"M\"", "class.mod-L": "size() === \"L\"", "class.mod-XL": "size() === \"XL\"", "class.mod-XXL": "size() === \"XXL\"", "class.mod-XXXL": "size() === \"XXXL\"" }, classAttribute: "avatar" }, usesOnChanges: true, ngImport: i0, template: "@if (hasPicture) {\n\t<img class=\"avatar-picture\" [src]=\"pictureHref\" alt=\"\" (error)=\"pictureError()\" [loading]=\"imageLoadingAttribute\" />\n} @else {\n\t<div class=\"avatar-picture\" [ngStyle]=\"!AI() && style\">\n\t\t<span class=\"avatar-picture-initials\" translate=\"no\">{{ initials }}</span>\n\t</div>\n}\n", styles: ["@charset \"UTF-8\";@layer components{.avatar,.lu-user-picture{--components-avatar-size: 2.5rem;--components-avatar-fontSize: var(--pr-t-font-body-M-fontSize);--components-avatar-border: 2px;--components-avatar-scale: 1;--components-avatar-background: var(--pr-t-elevation-surface-default);--components-avatar-placeholder-size: 1.25rem;--components-avatar-AI-size: var(--pr-t-font-fontSize-200);--components-avatar-borderRadius: var(--pr-t-border-radius-full);--components-avatar-picture-background: var(--palettes-neutral-200);--components-avatar-picture-initials-display: block;display:inline-block;vertical-align:middle;border-radius:var(--components-avatar-borderRadius);inline-size:var(--components-avatar-size);aspect-ratio:1}.avatar-picture{background-color:var(--components-avatar-picture-background);border-radius:var(--components-avatar-borderRadius);background-position:center;background-size:cover;background-repeat:no-repeat;inline-size:var(--components-avatar-size);object-fit:cover;object-position:center;aspect-ratio:1;display:flex;justify-content:center;align-items:center}.avatar-picture-initials{font-size:var(--components-avatar-fontSize);font-weight:var(--pr-t-font-fontWeight-bold);font-family:var(--pr-t-font-family-brand);line-height:1;color:var(--pr-t-color-text-reverse);display:var(--components-avatar-picture-initials-display)}.avatarWrapper{margin:0;padding:0;list-style-type:none;display:flex;flex-wrap:wrap;align-content:flex-start;row-gap:var(--components-avatarWrapper-rowGap)}.avatarWrapper .avatar{box-shadow:0 0 0 var(--components-avatar-border) var(--components-avatar-background)}.avatarWrapper-item:not(:last-child){margin-inline-end:calc(var(--components-avatarWrapper-overlap) * -1)}.avatarWrapper-item-action{padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;cursor:pointer;display:flex;text-decoration:none;transition:transform var(--commons-animations-durations-fast);transform:scale(var(--components-avatarWrapper-scale));color:currentColor}.avatarWrapper-item-action:hover,.avatarWrapper-item-action:focus{--components-avatarWrapper-scale: 1.1}.avatarWrapper-item-action:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px;border-radius:var(--pr-t-border-radius-full)}.avatarWrapper-item-action-more{box-shadow:0 0 0 var(--components-avatar-border) var(--components-avatar-background);border-radius:var(--pr-t-border-radius-full);display:flex;align-items:center;justify-content:center;background-color:var(--palettes-neutral-200);inline-size:var(--components-avatar-size);block-size:var(--components-avatar-size);font-size:var(--components-avatarWrapper-fontSize)}}@layer mods{.avatar.mod-XS,.lu-user-picture.mod-XS{--components-avatar-size: 1.5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-150);--components-avatar-placeholder-size: .75rem;--components-avatar-border: 1px}.avatar.mod-S,.lu-user-picture.mod-S{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.avatar.mod-L,.lu-user-picture.mod-L{--components-avatar-size: 3rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-225);--components-avatar-placeholder-size: 1.75rem}.avatar.mod-XL,.lu-user-picture.mod-XL{--components-avatar-size: 4rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-275);--components-avatar-placeholder-size: 2rem}.avatar.mod-XXL,.lu-user-picture.mod-XXL{--components-avatar-size: 5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-350);--components-avatar-placeholder-size: 2.25rem}.avatar.mod-XXXL,.lu-user-picture.mod-XXXL{--components-avatar-size: 6rem;--components-avatar-fontSize: 2.25rem;--components-avatar-placeholder-size: 2.5rem}.avatar.mod-placeholder,.lu-user-picture.mod-placeholder{--components-avatar-picture-initials-display: none}.avatar.mod-placeholder .avatar-picture,.lu-user-picture.mod-placeholder .avatar-picture{background-color:var(--palettes-neutral-200)!important}.avatar.mod-placeholder .avatar-picture:before,.lu-user-picture.mod-placeholder .avatar-picture:before{--icon-content: \"\\e990\";display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none;color:var(--palettes-neutral-600);font-weight:var(--pr-t-font-fontWeight-regular);font-size:var(--components-avatar-placeholder-size)}}.avatar.mod-AI,.lu-user-picture.mod-AI{--components-avatar-borderRadius: var(--pr-t-border-radius-default);--components-avatar-picture-background: var(--palettes-neutral-0);--components-avatar-picture-initials-display: none}.avatar.mod-AI .avatar-picture:before,.lu-user-picture.mod-AI .avatar-picture:before{background-image:linear-gradient(135deg,var(--palettes-AI-600),var(--palettes-brand-500));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;--icon-content: \"\\e9f5\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none;font-size:var(--components-avatar-AI-size)}@layer components{.avatarWrapper{--components-avatar-size: 2.5rem;--components-avatar-fontSize: var(--pr-t-font-body-M-fontSize);--components-avatar-border: 2px;--components-avatar-scale: 1;--components-avatar-background: var(--pr-t-elevation-surface-default);--components-avatar-placeholder-size: 1.25rem;--components-avatar-AI-size: var(--pr-t-font-fontSize-200);--components-avatar-borderRadius: var(--pr-t-border-radius-full);--components-avatar-picture-background: var(--palettes-neutral-200);--components-avatar-picture-initials-display: block;--components-avatarWrapper-fontSize: var(--pr-t-font-body-M-fontSize);--components-avatarWrapper-overlap: var(--pr-t-spacings-100);--components-avatarWrapper-rowGap: var(--pr-t-spacings-50)}}@layer mods{.avatarWrapper.mod-XL .avatar,.avatarWrapper.mod-XL .avatarWrapper-item-action{--components-avatar-size: 4rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-275);--components-avatar-placeholder-size: 2rem}.avatarWrapper.mod-L .avatar,.avatarWrapper.mod-L .avatarWrapper-item-action{--components-avatar-size: 3rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-225);--components-avatar-placeholder-size: 1.75rem}.avatarWrapper.mod-S{--components-avatarWrapper-overlap: var(--pr-t-spacings-50);--components-avatarWrapper-rowGap: var(--pr-t-spacings-25)}.avatarWrapper.mod-S .avatar,.avatarWrapper.mod-S .avatarWrapper-item-action{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.avatarWrapper.mod-XS{--components-avatarWrapper-overlap: var(--pr-t-spacings-50);--components-avatarWrapper-rowGap: var(--pr-t-spacings-25)}.avatarWrapper.mod-XS .avatar,.avatarWrapper.mod-XS .avatarWrapper-item-action{--components-avatar-size: 1.5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-150);--components-avatar-placeholder-size: .75rem;--components-avatar-border: 1px}}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
197
202
|
}
|
|
198
203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserPictureComponent, decorators: [{
|
|
199
204
|
type: Component,
|
|
200
|
-
args: [{ selector: 'lu-user-picture', imports: [NgStyle], host: {
|
|
205
|
+
args: [{ selector: 'lu-user-picture', imports: [NgStyle, IconComponent], host: {
|
|
201
206
|
class: 'avatar',
|
|
202
207
|
'[class.mod-AI]': 'AI()',
|
|
203
208
|
'[class.mod-XS]': 'size() === "XS"',
|
|
@@ -207,8 +212,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
207
212
|
'[class.mod-XL]': 'size() === "XL"',
|
|
208
213
|
'[class.mod-XXL]': 'size() === "XXL"',
|
|
209
214
|
'[class.mod-XXXL]': 'size() === "XXXL"',
|
|
210
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (hasPicture) {\n\t<img class=\"avatar-picture\" [src]=\"pictureHref\" alt=\"\" (error)=\"pictureError()\" [loading]=\"imageLoadingAttribute
|
|
211
|
-
}],
|
|
215
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (hasPicture) {\n\t<img class=\"avatar-picture\" [src]=\"pictureHref\" alt=\"\" (error)=\"pictureError()\" [loading]=\"imageLoadingAttribute\" />\n} @else {\n\t<div class=\"avatar-picture\" [ngStyle]=\"!AI() && style\">\n\t\t<span class=\"avatar-picture-initials\" translate=\"no\">{{ initials }}</span>\n\t</div>\n}\n", styles: ["@charset \"UTF-8\";@layer components{.avatar,.lu-user-picture{--components-avatar-size: 2.5rem;--components-avatar-fontSize: var(--pr-t-font-body-M-fontSize);--components-avatar-border: 2px;--components-avatar-scale: 1;--components-avatar-background: var(--pr-t-elevation-surface-default);--components-avatar-placeholder-size: 1.25rem;--components-avatar-AI-size: var(--pr-t-font-fontSize-200);--components-avatar-borderRadius: var(--pr-t-border-radius-full);--components-avatar-picture-background: var(--palettes-neutral-200);--components-avatar-picture-initials-display: block;display:inline-block;vertical-align:middle;border-radius:var(--components-avatar-borderRadius);inline-size:var(--components-avatar-size);aspect-ratio:1}.avatar-picture{background-color:var(--components-avatar-picture-background);border-radius:var(--components-avatar-borderRadius);background-position:center;background-size:cover;background-repeat:no-repeat;inline-size:var(--components-avatar-size);object-fit:cover;object-position:center;aspect-ratio:1;display:flex;justify-content:center;align-items:center}.avatar-picture-initials{font-size:var(--components-avatar-fontSize);font-weight:var(--pr-t-font-fontWeight-bold);font-family:var(--pr-t-font-family-brand);line-height:1;color:var(--pr-t-color-text-reverse);display:var(--components-avatar-picture-initials-display)}.avatarWrapper{margin:0;padding:0;list-style-type:none;display:flex;flex-wrap:wrap;align-content:flex-start;row-gap:var(--components-avatarWrapper-rowGap)}.avatarWrapper .avatar{box-shadow:0 0 0 var(--components-avatar-border) var(--components-avatar-background)}.avatarWrapper-item:not(:last-child){margin-inline-end:calc(var(--components-avatarWrapper-overlap) * -1)}.avatarWrapper-item-action{padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;cursor:pointer;display:flex;text-decoration:none;transition:transform var(--commons-animations-durations-fast);transform:scale(var(--components-avatarWrapper-scale));color:currentColor}.avatarWrapper-item-action:hover,.avatarWrapper-item-action:focus{--components-avatarWrapper-scale: 1.1}.avatarWrapper-item-action:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px;border-radius:var(--pr-t-border-radius-full)}.avatarWrapper-item-action-more{box-shadow:0 0 0 var(--components-avatar-border) var(--components-avatar-background);border-radius:var(--pr-t-border-radius-full);display:flex;align-items:center;justify-content:center;background-color:var(--palettes-neutral-200);inline-size:var(--components-avatar-size);block-size:var(--components-avatar-size);font-size:var(--components-avatarWrapper-fontSize)}}@layer mods{.avatar.mod-XS,.lu-user-picture.mod-XS{--components-avatar-size: 1.5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-150);--components-avatar-placeholder-size: .75rem;--components-avatar-border: 1px}.avatar.mod-S,.lu-user-picture.mod-S{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.avatar.mod-L,.lu-user-picture.mod-L{--components-avatar-size: 3rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-225);--components-avatar-placeholder-size: 1.75rem}.avatar.mod-XL,.lu-user-picture.mod-XL{--components-avatar-size: 4rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-275);--components-avatar-placeholder-size: 2rem}.avatar.mod-XXL,.lu-user-picture.mod-XXL{--components-avatar-size: 5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-350);--components-avatar-placeholder-size: 2.25rem}.avatar.mod-XXXL,.lu-user-picture.mod-XXXL{--components-avatar-size: 6rem;--components-avatar-fontSize: 2.25rem;--components-avatar-placeholder-size: 2.5rem}.avatar.mod-placeholder,.lu-user-picture.mod-placeholder{--components-avatar-picture-initials-display: none}.avatar.mod-placeholder .avatar-picture,.lu-user-picture.mod-placeholder .avatar-picture{background-color:var(--palettes-neutral-200)!important}.avatar.mod-placeholder .avatar-picture:before,.lu-user-picture.mod-placeholder .avatar-picture:before{--icon-content: \"\\e990\";display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none;color:var(--palettes-neutral-600);font-weight:var(--pr-t-font-fontWeight-regular);font-size:var(--components-avatar-placeholder-size)}}.avatar.mod-AI,.lu-user-picture.mod-AI{--components-avatar-borderRadius: var(--pr-t-border-radius-default);--components-avatar-picture-background: var(--palettes-neutral-0);--components-avatar-picture-initials-display: none}.avatar.mod-AI .avatar-picture:before,.lu-user-picture.mod-AI .avatar-picture:before{background-image:linear-gradient(135deg,var(--palettes-AI-600),var(--palettes-brand-500));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;--icon-content: \"\\e9f5\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none;font-size:var(--components-avatar-AI-size)}@layer components{.avatarWrapper{--components-avatar-size: 2.5rem;--components-avatar-fontSize: var(--pr-t-font-body-M-fontSize);--components-avatar-border: 2px;--components-avatar-scale: 1;--components-avatar-background: var(--pr-t-elevation-surface-default);--components-avatar-placeholder-size: 1.25rem;--components-avatar-AI-size: var(--pr-t-font-fontSize-200);--components-avatar-borderRadius: var(--pr-t-border-radius-full);--components-avatar-picture-background: var(--palettes-neutral-200);--components-avatar-picture-initials-display: block;--components-avatarWrapper-fontSize: var(--pr-t-font-body-M-fontSize);--components-avatarWrapper-overlap: var(--pr-t-spacings-100);--components-avatarWrapper-rowGap: var(--pr-t-spacings-50)}}@layer mods{.avatarWrapper.mod-XL .avatar,.avatarWrapper.mod-XL .avatarWrapper-item-action{--components-avatar-size: 4rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-275);--components-avatar-placeholder-size: 2rem}.avatarWrapper.mod-L .avatar,.avatarWrapper.mod-L .avatarWrapper-item-action{--components-avatar-size: 3rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-225);--components-avatar-placeholder-size: 1.75rem}.avatarWrapper.mod-S{--components-avatarWrapper-overlap: var(--pr-t-spacings-50);--components-avatarWrapper-rowGap: var(--pr-t-spacings-25)}.avatarWrapper.mod-S .avatar,.avatarWrapper.mod-S .avatarWrapper-item-action{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.avatarWrapper.mod-XS{--components-avatarWrapper-overlap: var(--pr-t-spacings-50);--components-avatarWrapper-rowGap: var(--pr-t-spacings-25)}.avatarWrapper.mod-XS .avatar,.avatarWrapper.mod-XS .avatarWrapper-item-action{--components-avatar-size: 1.5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-150);--components-avatar-placeholder-size: .75rem;--components-avatar-border: 1px}}\n"] }]
|
|
216
|
+
}], propDecorators: { displayFormat: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}, {
|
|
219
|
+
type: Optional
|
|
220
|
+
}], imageLoadingAttribute: [{
|
|
221
|
+
type: Input
|
|
222
|
+
}], user: [{
|
|
223
|
+
type: Input
|
|
224
|
+
}] } });
|
|
212
225
|
|
|
213
226
|
/**
|
|
214
227
|
* Displays user picture and name. LuUserTileUserInput's role can be specified, and the footer is customizable.
|
|
@@ -216,27 +229,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
216
229
|
class LuUserTileComponent {
|
|
217
230
|
#luClass;
|
|
218
231
|
#defaultFormat;
|
|
232
|
+
#changeDetector;
|
|
233
|
+
/**
|
|
234
|
+
* LuUserTileUserInput to display.
|
|
235
|
+
*/
|
|
236
|
+
set user(user) {
|
|
237
|
+
this._user = user;
|
|
238
|
+
this.#changeDetector.markForCheck();
|
|
239
|
+
}
|
|
240
|
+
get user() {
|
|
241
|
+
return this._user;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* User Display format.
|
|
245
|
+
* It is set to 'LU_DEFAULT_DISPLAY_POLICY' by default
|
|
246
|
+
*/
|
|
247
|
+
set displayFormat(displayFormat) {
|
|
248
|
+
this._displayFormat = displayFormat;
|
|
249
|
+
this.displayPictureFormat = displayPictureFormatRecord[displayFormat];
|
|
250
|
+
this.#changeDetector.markForCheck();
|
|
251
|
+
}
|
|
252
|
+
get displayFormat() {
|
|
253
|
+
return this._displayFormat;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* LuUserTileUserInput role to display
|
|
257
|
+
*/
|
|
258
|
+
set role(role) {
|
|
259
|
+
this._role = role;
|
|
260
|
+
this.#changeDetector.markForCheck();
|
|
261
|
+
}
|
|
262
|
+
get role() {
|
|
263
|
+
return this._role;
|
|
264
|
+
}
|
|
219
265
|
constructor() {
|
|
220
266
|
this.#luClass = inject(LuClass);
|
|
221
267
|
this.#defaultFormat = inject(LU_DEFAULT_DISPLAY_POLICY);
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
*/
|
|
225
|
-
this.user = input();
|
|
226
|
-
/**
|
|
227
|
-
* User Display format.
|
|
228
|
-
* It is set to 'LU_DEFAULT_DISPLAY_POLICY' by default
|
|
229
|
-
*/
|
|
230
|
-
this.displayFormat = input();
|
|
231
|
-
/**
|
|
232
|
-
* LuUserTileUserInput role to display
|
|
233
|
-
*/
|
|
234
|
-
this.role = input();
|
|
268
|
+
this.#changeDetector = inject(ChangeDetectorRef);
|
|
269
|
+
this.displayPictureFormat = displayPictureFormatRecord[this.#defaultFormat];
|
|
235
270
|
/**
|
|
236
271
|
* Which size should the user tile be? Defaults to medium
|
|
237
272
|
*/
|
|
238
273
|
this.size = input();
|
|
239
|
-
this.displayPictureFormat = computed(() => (this.displayFormat() ? displayPictureFormatRecord[this.displayFormat()] : displayPictureFormatRecord[this.#defaultFormat]));
|
|
240
274
|
effect(() => {
|
|
241
275
|
this.#luClass.setState({
|
|
242
276
|
[`mod-${this.size()}`]: !!this.size(),
|
|
@@ -244,12 +278,18 @@ class LuUserTileComponent {
|
|
|
244
278
|
});
|
|
245
279
|
}
|
|
246
280
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
247
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: LuUserTileComponent, isStandalone: true, selector: "lu-user-tile", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal:
|
|
281
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: LuUserTileComponent, isStandalone: true, selector: "lu-user-tile", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: false, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: false, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "userTile" }, providers: [LuClass], ngImport: i0, template: "<lu-user-picture [user]=\"user\" [displayFormat]=\"displayPictureFormat\" />\n<div class=\"userTile-content\">\n\t<div class=\"userTile-content-name\" translate=\"no\">{{ user | luUserDisplay: displayFormat }}</div>\n\t@if (role || user?.jobTitle) {\n\t\t<div class=\"userTile-content-info\">{{ role ? role : user?.jobTitle }}</div>\n\t}\n\t<div class=\"userTile-content-slotBottom\">\n\t\t<ng-content />\n\t</div>\n</div>\n", styles: ["@layer components{.userTile{--components-userTile-title-fontSize: var(--pr-t-font-body-M-fontSize);--components-userTile-title-lineHeight: var(--pr-t-font-body-M-lineHeight);--components-userTile-info-fontSize: var(--pr-t-font-body-S-fontSize);--components-userTile-info-lineHeight: var(--pr-t-font-body-S-lineHeight);--components-userTile-gap: var(--pr-t-spacings-150);display:flex;align-items:center;gap:var(--components-userTile-gap);overflow-wrap:break-word}.userTile .avatar{display:flex;align-self:start;align-items:center;min-block-size:var(--components-avatar-size)}.userTile:has(.userTile-content-info) .avatar{block-size:calc(var(--components-userTile-title-lineHeight) + var(--components-userTile-info-lineHeight))}.userTile-content{display:flex;flex-direction:column;margin:0}.userTile-content-name{font-size:var(--components-userTile-title-fontSize);line-height:var(--components-userTile-title-lineHeight);color:var(--pr-t-color-text);margin:0}.userTile-content-info{font-size:var(--components-userTile-info-fontSize);line-height:var(--components-userTile-info-lineHeight);color:var(--palettes-neutral-600);margin:0}.userTile-content-slotBottom{font:var(--pr-t-font-body-S)}.userTile-content-slotBottom:empty{display:none}}@layer mods{.userTile.mod-XS{--components-userTile-gap: var(--pr-t-spacings-100);--components-userTile-title-fontSize: var(--pr-t-font-body-S-fontSize);--components-userTile-title-lineHeight: var(--pr-t-font-body-S-lineHeight);--components-userTile-info-fontSize: var(--pr-t-font-body-XS-fontSize);--components-userTile-info-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.userTile.mod-XS .avatar{--components-avatar-size: 1.5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-150);--components-avatar-placeholder-size: .75rem;--components-avatar-border: 1px}.userTile.mod-S{--components-userTile-gap: var(--pr-t-spacings-100)}.userTile.mod-S .avatar{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.userTile.mod-L .avatar{--components-avatar-size: 3rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-225);--components-avatar-placeholder-size: 1.75rem}.userTile.mod-XL .avatar{--components-avatar-size: 4rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-275);--components-avatar-placeholder-size: 2rem}.userTile.mod-XXL .avatar{--components-avatar-size: 5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-350);--components-avatar-placeholder-size: 2.25rem}.userTile.mod-XXXL .avatar{--components-avatar-size: 6rem;--components-avatar-fontSize: 2.25rem;--components-avatar-placeholder-size: 2.5rem}}\n"], dependencies: [{ kind: "pipe", type: LuUserDisplayPipe, name: "luUserDisplay" }, { kind: "component", type: LuUserPictureComponent, selector: "lu-user-picture", inputs: ["displayFormat", "imageLoadingAttribute", "user", "AI", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
248
282
|
}
|
|
249
283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserTileComponent, decorators: [{
|
|
250
284
|
type: Component,
|
|
251
|
-
args: [{ selector: 'lu-user-tile', imports: [LuUserDisplayPipe, LuUserPictureComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'userTile' }, encapsulation: ViewEncapsulation.None, providers: [LuClass], template: "<lu-user-picture [user]=\"user
|
|
252
|
-
}], ctorParameters: () => []
|
|
285
|
+
args: [{ selector: 'lu-user-tile', imports: [LuUserDisplayPipe, LuUserPictureComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'userTile' }, encapsulation: ViewEncapsulation.None, providers: [LuClass], template: "<lu-user-picture [user]=\"user\" [displayFormat]=\"displayPictureFormat\" />\n<div class=\"userTile-content\">\n\t<div class=\"userTile-content-name\" translate=\"no\">{{ user | luUserDisplay: displayFormat }}</div>\n\t@if (role || user?.jobTitle) {\n\t\t<div class=\"userTile-content-info\">{{ role ? role : user?.jobTitle }}</div>\n\t}\n\t<div class=\"userTile-content-slotBottom\">\n\t\t<ng-content />\n\t</div>\n</div>\n", styles: ["@layer components{.userTile{--components-userTile-title-fontSize: var(--pr-t-font-body-M-fontSize);--components-userTile-title-lineHeight: var(--pr-t-font-body-M-lineHeight);--components-userTile-info-fontSize: var(--pr-t-font-body-S-fontSize);--components-userTile-info-lineHeight: var(--pr-t-font-body-S-lineHeight);--components-userTile-gap: var(--pr-t-spacings-150);display:flex;align-items:center;gap:var(--components-userTile-gap);overflow-wrap:break-word}.userTile .avatar{display:flex;align-self:start;align-items:center;min-block-size:var(--components-avatar-size)}.userTile:has(.userTile-content-info) .avatar{block-size:calc(var(--components-userTile-title-lineHeight) + var(--components-userTile-info-lineHeight))}.userTile-content{display:flex;flex-direction:column;margin:0}.userTile-content-name{font-size:var(--components-userTile-title-fontSize);line-height:var(--components-userTile-title-lineHeight);color:var(--pr-t-color-text);margin:0}.userTile-content-info{font-size:var(--components-userTile-info-fontSize);line-height:var(--components-userTile-info-lineHeight);color:var(--palettes-neutral-600);margin:0}.userTile-content-slotBottom{font:var(--pr-t-font-body-S)}.userTile-content-slotBottom:empty{display:none}}@layer mods{.userTile.mod-XS{--components-userTile-gap: var(--pr-t-spacings-100);--components-userTile-title-fontSize: var(--pr-t-font-body-S-fontSize);--components-userTile-title-lineHeight: var(--pr-t-font-body-S-lineHeight);--components-userTile-info-fontSize: var(--pr-t-font-body-XS-fontSize);--components-userTile-info-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.userTile.mod-XS .avatar{--components-avatar-size: 1.5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-150);--components-avatar-placeholder-size: .75rem;--components-avatar-border: 1px}.userTile.mod-S{--components-userTile-gap: var(--pr-t-spacings-100)}.userTile.mod-S .avatar{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.userTile.mod-L .avatar{--components-avatar-size: 3rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-225);--components-avatar-placeholder-size: 1.75rem}.userTile.mod-XL .avatar{--components-avatar-size: 4rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-275);--components-avatar-placeholder-size: 2rem}.userTile.mod-XXL .avatar{--components-avatar-size: 5rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-350);--components-avatar-placeholder-size: 2.25rem}.userTile.mod-XXXL .avatar{--components-avatar-size: 6rem;--components-avatar-fontSize: 2.25rem;--components-avatar-placeholder-size: 2.5rem}}\n"] }]
|
|
286
|
+
}], ctorParameters: () => [], propDecorators: { user: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], displayFormat: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], role: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}] } });
|
|
253
293
|
|
|
254
294
|
/**
|
|
255
295
|
* @deprecated use `LuUserTileComponent` instead
|
|
@@ -257,7 +297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
257
297
|
class LuUserTileModule {
|
|
258
298
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserTileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
259
299
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: LuUserTileModule, imports: [LuUserTileComponent], exports: [LuUserTileComponent] }); }
|
|
260
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserTileModule }); }
|
|
300
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserTileModule, imports: [LuUserTileComponent] }); }
|
|
261
301
|
}
|
|
262
302
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserTileModule, decorators: [{
|
|
263
303
|
type: NgModule,
|
|
@@ -273,7 +313,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
273
313
|
class LuUserPictureModule {
|
|
274
314
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserPictureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
275
315
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: LuUserPictureModule, imports: [LuUserPictureComponent], exports: [LuUserPictureComponent] }); }
|
|
276
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserPictureModule }); }
|
|
316
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserPictureModule, imports: [LuUserPictureComponent] }); }
|
|
277
317
|
}
|
|
278
318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuUserPictureModule, decorators: [{
|
|
279
319
|
type: NgModule,
|