@lucca-front/ng 21.0.0-rc.3 → 21.0.0-rc.5
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/callout/index.d.ts +2 -9
- package/comment/index.d.ts +1 -1
- package/core/index.d.ts +5 -2
- package/data-table/index.d.ts +2 -1
- package/dialog/index.d.ts +19 -3
- package/fancy-box/index.d.ts +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +3 -71
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-comment.mjs +3 -3
- package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +3 -1
- 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.map +1 -1
- package/fesm2022/lucca-front-ng-fancy-box.mjs +4 -4
- package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +7 -7
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +1 -1
- 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-skeleton.mjs +12 -18
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tooltip.mjs +6 -0
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +29 -27
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/forms/index.d.ts +4 -4
- package/package.json +42 -42
- package/read-more/index.d.ts +1 -1
- package/skeleton/index.d.ts +3 -3
- package/tooltip/index.d.ts +2 -0
- package/user/index.d.ts +8 -5
package/callout/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
3
3
|
import { LuccaIcon } from '@lucca-front/icons';
|
|
4
4
|
import { PortalContent, Palette, LuTranslation } from '@lucca-front/ng/core';
|
|
5
5
|
|
|
@@ -51,10 +51,7 @@ declare class CalloutFeedbackListComponent {
|
|
|
51
51
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalloutFeedbackListComponent, "ul[lu-callout-feedback-list]", never, { "palette": { "alias": "palette"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
declare class CalloutPopoverComponent
|
|
55
|
-
#private;
|
|
56
|
-
readonly overlayOrigin: _angular_core.Signal<ElementRef<any>>;
|
|
57
|
-
readonly overlayContent: _angular_core.Signal<TemplateRef<unknown>>;
|
|
54
|
+
declare class CalloutPopoverComponent {
|
|
58
55
|
/**
|
|
59
56
|
* Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)
|
|
60
57
|
*/
|
|
@@ -108,10 +105,6 @@ declare class CalloutPopoverComponent implements OnDestroy {
|
|
|
108
105
|
readonly calloutOverlayHeadClasses: _angular_core.Signal<{
|
|
109
106
|
[x: string]: boolean;
|
|
110
107
|
}>;
|
|
111
|
-
showContent(): void;
|
|
112
|
-
private createPanelContent;
|
|
113
|
-
hideContent(event: MouseEvent | null): void;
|
|
114
|
-
ngOnDestroy(): void;
|
|
115
108
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalloutPopoverComponent, never>;
|
|
116
109
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalloutPopoverComponent, "lu-callout-popover", never, { "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; "buttonAlt": { "alias": "buttonAlt"; "required": false; "isSignal": true; }; "headingHiddenIfSingleItem": { "alias": "headingHiddenIfSingleItem"; "required": false; "isSignal": true; }; "palette": { "alias": "palette"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; }, {}, ["feedbackItems"], ["*"], true, never>;
|
|
117
110
|
}
|
package/comment/index.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ declare class CommentBlockComponent {
|
|
|
36
36
|
readonly size: _angular_core.InputSignal<"S" | "M">;
|
|
37
37
|
readonly noAvatar: _angular_core.Signal<boolean>;
|
|
38
38
|
readonly isSingleComment: _angular_core.Signal<boolean>;
|
|
39
|
-
readonly role
|
|
39
|
+
readonly role = "listitem";
|
|
40
40
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommentBlockComponent, never>;
|
|
41
41
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommentBlockComponent, "lu-comment-block", never, { "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "small": { "alias": "small"; "required": false; "isSignal": true; }; "chatAnswer": { "alias": "chatAnswer"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, ["comments"], ["*"], true, never>;
|
|
42
42
|
}
|
package/core/index.d.ts
CHANGED
|
@@ -153,8 +153,11 @@ interface ILuGroup<TItem, TKey> {
|
|
|
153
153
|
|
|
154
154
|
declare function generateId(): string;
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
type Nil = null | undefined;
|
|
157
|
+
declare const isNil: <T>(value: T | Nil) => value is Nil;
|
|
157
158
|
declare const isNotNil: <T>(value: T) => value is NonNullable<T>;
|
|
159
|
+
declare const isNilOrEmptyString: (str: string | Nil) => str is Nil | "";
|
|
160
|
+
declare const isNotNilOrEmptyString: (str: string | Nil) => str is string;
|
|
158
161
|
|
|
159
162
|
type PortalContent<T = unknown> = string | TemplateRef<T> | Type<unknown>;
|
|
160
163
|
declare const PORTAL_CONTEXT: InjectionToken<unknown>;
|
|
@@ -236,5 +239,5 @@ interface ILuTree<T> {
|
|
|
236
239
|
disabled?: boolean;
|
|
237
240
|
}
|
|
238
241
|
|
|
239
|
-
export { ALuDateAdapter, ALuOnCloseSubscriber, ALuOnOpenSubscriber, ALuOnScrollBottomSubscriber, ELuDateGranularity, IntlParamsPipe, LU_NATIVE_DATE_ADAPTER_OPTIONS, LuClass, LuNativeDateAdapter, LuStringDateAdapter, PORTAL_CONTEXT, PortalDirective, generateId, getIntl, isNil, isNotNil, luDefaultNativeDateAdapterOptions, ɵeffectWithDeps };
|
|
242
|
+
export { ALuDateAdapter, ALuOnCloseSubscriber, ALuOnOpenSubscriber, ALuOnScrollBottomSubscriber, ELuDateGranularity, IntlParamsPipe, LU_NATIVE_DATE_ADAPTER_OPTIONS, LuClass, LuNativeDateAdapter, LuStringDateAdapter, PORTAL_CONTEXT, PortalDirective, generateId, getIntl, isNil, isNilOrEmptyString, isNotNil, isNotNilOrEmptyString, luDefaultNativeDateAdapterOptions, ɵeffectWithDeps };
|
|
240
243
|
export type { At, Breakpoint, DecorativePalette, EffectWithDepsInput, EnumValue, ILuDateAdapter, ILuGroup, ILuNativeDateAdapterOptions, ILuOnCloseSubscriber, ILuOnOpenSubscriber, ILuOnScrollBottomSubscriber, ILuTranslation, ILuTree, LuDateGranularity, LuTranslation, Palette, PortalContent, ResponsiveConfig, ResponsiveProperty };
|
package/data-table/index.d.ts
CHANGED
|
@@ -94,6 +94,7 @@ declare class DataTableComponent implements OnInit {
|
|
|
94
94
|
readonly cellBorder: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
95
95
|
readonly nested: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
96
96
|
readonly drag: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
97
|
+
readonly noOverflow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
97
98
|
readonly responsive: _angular_core.InputSignal<Partial<Record<"layoutFixedAtMediaMinXXXS" | "layoutFixedAtMediaMinXXS" | "layoutFixedAtMediaMinXS" | "layoutFixedAtMediaMinS" | "layoutFixedAtMediaMinM" | "layoutFixedAtMediaMinL" | "layoutFixedAtMediaMinXL" | "layoutFixedAtMediaMinXXL" | "layoutFixedAtMediaMinXXXL" | "layoutFixedAtContainerMinXXXS" | "layoutFixedAtContainerMinXXS" | "layoutFixedAtContainerMinXS" | "layoutFixedAtContainerMinS" | "layoutFixedAtContainerMinM" | "layoutFixedAtContainerMinL" | "layoutFixedAtContainerMinXL" | "layoutFixedAtContainerMinXXL" | "layoutFixedAtContainerMinXXXL", true>>>;
|
|
98
99
|
readonly verticalAlign: _angular_core.InputSignal<"top" | "middle" | "bottom">;
|
|
99
100
|
readonly rows: _angular_core.Signal<readonly DataTableRowComponent[]>;
|
|
@@ -129,7 +130,7 @@ declare class DataTableComponent implements OnInit {
|
|
|
129
130
|
constructor();
|
|
130
131
|
ngOnInit(): void;
|
|
131
132
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataTableComponent, never>;
|
|
132
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataTableComponent, "lu-data-table", never, { "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "layoutFixed": { "alias": "layoutFixed"; "required": false; "isSignal": true; }; "cellBorder": { "alias": "cellBorder"; "required": false; "isSignal": true; }; "nested": { "alias": "nested"; "required": false; "isSignal": true; }; "drag": { "alias": "drag"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "verticalAlign": { "alias": "verticalAlign"; "required": false; "isSignal": true; }; "stickyColsStart": { "alias": "stickyColsStart"; "required": false; "isSignal": true; }; "stickyColsEnd": { "alias": "stickyColsEnd"; "required": false; "isSignal": true; }; }, {}, ["rows", "header"], ["*", "[dataTablePagination]"], true, never>;
|
|
133
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataTableComponent, "lu-data-table", never, { "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "layoutFixed": { "alias": "layoutFixed"; "required": false; "isSignal": true; }; "cellBorder": { "alias": "cellBorder"; "required": false; "isSignal": true; }; "nested": { "alias": "nested"; "required": false; "isSignal": true; }; "drag": { "alias": "drag"; "required": false; "isSignal": true; }; "noOverflow": { "alias": "noOverflow"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "verticalAlign": { "alias": "verticalAlign"; "required": false; "isSignal": true; }; "stickyColsStart": { "alias": "stickyColsStart"; "required": false; "isSignal": true; }; "stickyColsEnd": { "alias": "stickyColsEnd"; "required": false; "isSignal": true; }; }, {}, ["rows", "header"], ["*", "[dataTablePagination]"], true, never>;
|
|
133
134
|
}
|
|
134
135
|
|
|
135
136
|
export { DataTableBodyComponent, DataTableComponent, DataTableFootComponent, DataTableHeadComponent, DataTableRowCellComponent, DataTableRowCellHeaderComponent, DataTableRowComponent };
|
package/dialog/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, OnInit, EnvironmentProviders, Provider, TemplateRef, AfterViewInit, OnDestroy, Injector } from '@angular/core';
|
|
3
3
|
import { LuTranslation } from '@lucca-front/ng/core';
|
|
4
|
+
import * as _angular_cdk_dialog from '@angular/cdk/dialog';
|
|
4
5
|
import { AutoFocusTarget, DialogConfig, DialogRef } from '@angular/cdk/dialog';
|
|
5
6
|
import { ComponentType } from '@angular/cdk/overlay';
|
|
7
|
+
import * as rxjs from 'rxjs';
|
|
6
8
|
import { Observable, Subscription } from 'rxjs';
|
|
9
|
+
import * as _angular_cdk_portal_directives_d_DbeNrI5D from '@angular/cdk/portal-directives.d-DbeNrI5D';
|
|
7
10
|
import { Route, CanDeactivateFn, DeprecatedGuard, GuardResult } from '@angular/router';
|
|
8
11
|
|
|
9
12
|
declare class DialogContentComponent {
|
|
@@ -55,7 +58,7 @@ type DialogRefProps<C> = {
|
|
|
55
58
|
[K in keyof C]: C[K] extends ɵDialogResultFlag<unknown> ? K : never;
|
|
56
59
|
}[keyof C] & keyof C;
|
|
57
60
|
type LuDialogResult<C> = DialogRefProps<C> extends never ? void : C[DialogRefProps<C>] extends ɵDialogResultFlag<infer T> ? T : void;
|
|
58
|
-
|
|
61
|
+
type BaseLuDialogConfig<C, TData = LuDialogData<C>> = {
|
|
59
62
|
/**
|
|
60
63
|
* The component or template to put inside the dialog container
|
|
61
64
|
*/
|
|
@@ -116,7 +119,7 @@ interface BaseLuDialogConfig<C, TData = LuDialogData<C>> {
|
|
|
116
119
|
* Classes to add to the panel
|
|
117
120
|
*/
|
|
118
121
|
panelClasses?: string[];
|
|
119
|
-
}
|
|
122
|
+
};
|
|
120
123
|
type LuDialogConfig<T, TData = LuDialogData<T>> = [TData] extends [never] ? Omit<BaseLuDialogConfig<T, TData>, 'data'> : BaseLuDialogConfig<T, TData>;
|
|
121
124
|
|
|
122
125
|
declare const DISMISSED_VALUE: {};
|
|
@@ -192,7 +195,20 @@ declare class DialogDismissDirective {
|
|
|
192
195
|
declare class DialogOpenDirective {
|
|
193
196
|
#private;
|
|
194
197
|
readonly dialog: i0.InputSignal<TemplateRef<void>>;
|
|
195
|
-
readonly luDialogConfig: i0.InputSignal<
|
|
198
|
+
readonly luDialogConfig: i0.InputSignal<Omit<{
|
|
199
|
+
content: _angular_cdk_portal_directives_d_DbeNrI5D.a<unknown> | TemplateRef<unknown>;
|
|
200
|
+
data: never;
|
|
201
|
+
modal?: boolean;
|
|
202
|
+
alert?: boolean;
|
|
203
|
+
ariaLabel?: string;
|
|
204
|
+
autoFocus?: _angular_cdk_dialog.AutoFocusTarget | "first-input" | string;
|
|
205
|
+
cdkConfigOverride?: _angular_cdk_dialog.DialogConfig<unknown, unknown, _angular_cdk_portal_directives_d_DbeNrI5D.B>;
|
|
206
|
+
canClose?: (comp: unknown) => boolean | rxjs.Observable<boolean>;
|
|
207
|
+
canCloseWithBackdrop?: boolean;
|
|
208
|
+
size?: "XS" | "S" | "M" | "L" | "XL" | "XXL" | "fitContent" | `maxContent` | "fullScreen";
|
|
209
|
+
mode?: "default" | "drawer" | "drawer-from-bottom";
|
|
210
|
+
panelClasses?: string[];
|
|
211
|
+
}, "data">>;
|
|
196
212
|
click(): void;
|
|
197
213
|
static ɵfac: i0.ɵɵFactoryDeclaration<DialogOpenDirective, never>;
|
|
198
214
|
static ɵdir: i0.ɵɵDirectiveDeclaration<DialogOpenDirective, "[luDialogOpen]", never, { "dialog": { "alias": "luDialogOpen"; "required": true; "isSignal": true; }; "luDialogConfig": { "alias": "luDialogConfig"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
package/fancy-box/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
|
|
3
3
|
declare class FancyBoxComponent {
|
|
4
|
+
#private;
|
|
4
5
|
readonly foreground: _angular_core.InputSignal<string>;
|
|
5
6
|
readonly backgroundLeft: _angular_core.InputSignal<string>;
|
|
6
7
|
readonly backgroundRight: _angular_core.InputSignal<string>;
|
|
@@ -8,7 +9,6 @@ declare class FancyBoxComponent {
|
|
|
8
9
|
readonly foregroundStyle: _angular_core.Signal<string>;
|
|
9
10
|
readonly backgroundLeftStyle: _angular_core.Signal<string>;
|
|
10
11
|
readonly backgroundRightStyle: _angular_core.Signal<string>;
|
|
11
|
-
buildUrl(text: string): string;
|
|
12
12
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FancyBoxComponent, never>;
|
|
13
13
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FancyBoxComponent, "lu-fancy-box", never, { "foreground": { "alias": "foreground"; "required": false; "isSignal": true; }; "backgroundLeft": { "alias": "backgroundLeft"; "required": true; "isSignal": true; }; "backgroundRight": { "alias": "backgroundRight"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
14
14
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, booleanAttribute, ChangeDetectionStrategy, ViewEncapsulation, Component, Pipe, computed, output, Directive, inject,
|
|
2
|
+
import { input, booleanAttribute, ChangeDetectionStrategy, ViewEncapsulation, Component, Pipe, computed, output, Directive, inject, numberAttribute, contentChildren, InjectionToken, linkedSignal } from '@angular/core';
|
|
3
3
|
import { PortalDirective, LuClass, ɵeffectWithDeps as _effectWithDeps, getIntl } from '@lucca-front/ng/core';
|
|
4
4
|
import { IconComponent } from '@lucca-front/ng/icon';
|
|
5
|
-
import { Overlay } from '@angular/cdk/overlay';
|
|
6
|
-
import { TemplatePortal } from '@angular/cdk/portal';
|
|
7
5
|
import { PopoverDirective } from '@lucca-front/ng/popover2';
|
|
8
6
|
|
|
9
7
|
class CalloutActionsComponent {
|
|
@@ -165,11 +163,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
165
163
|
|
|
166
164
|
class CalloutPopoverComponent {
|
|
167
165
|
constructor() {
|
|
168
|
-
this.#overlay = inject(Overlay);
|
|
169
|
-
this.#viewContainerRef = inject(ViewContainerRef);
|
|
170
|
-
this.#elementRef = inject(ElementRef);
|
|
171
|
-
this.overlayOrigin = viewChild('overlayOriginRef');
|
|
172
|
-
this.overlayContent = viewChild('overlayContentRef');
|
|
173
166
|
/**
|
|
174
167
|
* Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)
|
|
175
168
|
*/
|
|
@@ -231,73 +224,12 @@ class CalloutPopoverComponent {
|
|
|
231
224
|
[`palette-${this.calloutPalette()}`]: !!this.calloutPalette(),
|
|
232
225
|
}));
|
|
233
226
|
}
|
|
234
|
-
#overlay;
|
|
235
|
-
#viewContainerRef;
|
|
236
|
-
#elementRef;
|
|
237
|
-
#overlayRef;
|
|
238
|
-
// Using unknown here because it's using Node types for whatever reason but it's a number
|
|
239
|
-
#hideDelayId;
|
|
240
|
-
// Using unknown here because it's using Node types for whatever reason but it's a number
|
|
241
|
-
#showDelayId;
|
|
242
|
-
showContent() {
|
|
243
|
-
clearTimeout(this.#hideDelayId);
|
|
244
|
-
// Don't open if we still have one opened
|
|
245
|
-
if (this.#showDelayId) {
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
this.#showDelayId = setTimeout(() => {
|
|
249
|
-
this.createPanelContent();
|
|
250
|
-
this.#hideDelayId = undefined;
|
|
251
|
-
}, this.openDelay());
|
|
252
|
-
}
|
|
253
|
-
createPanelContent() {
|
|
254
|
-
const positionStrategy = this.#overlay
|
|
255
|
-
.position()
|
|
256
|
-
.flexibleConnectedTo(this.overlayOrigin())
|
|
257
|
-
.withPositions([
|
|
258
|
-
{
|
|
259
|
-
originX: 'center',
|
|
260
|
-
originY: 'top',
|
|
261
|
-
overlayX: 'center',
|
|
262
|
-
overlayY: 'bottom',
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
originX: 'center',
|
|
266
|
-
originY: 'bottom',
|
|
267
|
-
overlayX: 'center',
|
|
268
|
-
overlayY: 'top',
|
|
269
|
-
},
|
|
270
|
-
]);
|
|
271
|
-
this.#overlayRef = this.#overlay.create({
|
|
272
|
-
positionStrategy,
|
|
273
|
-
});
|
|
274
|
-
const portal = new TemplatePortal(this.overlayContent(), this.#viewContainerRef);
|
|
275
|
-
this.#overlayRef.attach(portal);
|
|
276
|
-
}
|
|
277
|
-
hideContent(event) {
|
|
278
|
-
clearTimeout(this.#showDelayId);
|
|
279
|
-
this.#hideDelayId = setTimeout(() => {
|
|
280
|
-
const newTarget = event?.relatedTarget;
|
|
281
|
-
// This is to prevent tooltip closing when user puts cursor on tooltip, thus leaving the origin trigger
|
|
282
|
-
if (!newTarget || !(this.#overlayRef?.overlayElement?.contains(newTarget) || this.#elementRef?.nativeElement?.contains(newTarget))) {
|
|
283
|
-
// Remove the tooltip if needed.
|
|
284
|
-
if (this.#overlayRef) {
|
|
285
|
-
this.#overlayRef.dispose();
|
|
286
|
-
this.#showDelayId = undefined;
|
|
287
|
-
this.#hideDelayId = undefined;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
}, this.closeDelay());
|
|
291
|
-
}
|
|
292
|
-
ngOnDestroy() {
|
|
293
|
-
this.hideContent(null);
|
|
294
|
-
}
|
|
295
227
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CalloutPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
296
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CalloutPopoverComponent, isStandalone: true, selector: "lu-callout-popover", inputs: { openDelay: { classPropertyName: "openDelay", publicName: "openDelay", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, buttonAlt: { classPropertyName: "buttonAlt", publicName: "buttonAlt", isSignal: true, isRequired: false, transformFunction: null }, headingHiddenIfSingleItem: { classPropertyName: "headingHiddenIfSingleItem", publicName: "headingHiddenIfSingleItem", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "feedbackItems", predicate: CalloutFeedbackItemComponent, descendants: true, isSignal: true }],
|
|
228
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CalloutPopoverComponent, isStandalone: true, selector: "lu-callout-popover", inputs: { openDelay: { classPropertyName: "openDelay", publicName: "openDelay", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, buttonAlt: { classPropertyName: "buttonAlt", publicName: "buttonAlt", isSignal: true, isRequired: false, transformFunction: null }, headingHiddenIfSingleItem: { classPropertyName: "headingHiddenIfSingleItem", publicName: "headingHiddenIfSingleItem", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "feedbackItems", predicate: CalloutFeedbackItemComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@let calloutIcon = state() | luCalloutIcon: icon();\n\n<button\n\ttype=\"button\"\n\tclass=\"calloutPopover\"\n\t[class]=\"calloutClasses()\"\n\t[luPopover2]=\"overlayContentRef\"\n\t[luPopoverTrigger]=\"'click+hover'\"\n\t[luPopoverOpenDelay]=\"openDelay()\"\n\t[luPopoverCloseDelay]=\"closeDelay()\"\n\t#overlayOriginRef\n>\n\t@if (calloutIcon) {\n\t\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"calloutIcon\" />\n\t}\n\t<span class=\"calloutPopover-content\" aria-hidden=\"true\">{{ buttonLabel() }}</span>\n\t<span class=\"pr-u-mask\">{{ buttonAlt() || buttonLabel() }}</span>\n</button>\n<ng-template #overlayContentRef>\n\t<div class=\"lu-popover-content calloutPopover-overlay\" [class]=\"calloutOverlayClasses()\">\n\t\t@if (calloutIcon) {\n\t\t\t<div class=\"pr-u-flexShrink0\">\n\t\t\t\t<lu-icon class=\"calloutPopover-overlay-icon\" [class]=\"calloutOverlayHeadClasses()\" [icon]=\"calloutIcon\" />\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"pr-u-flexGrow1\">\n\t\t\t@if (heading()) {\n\t\t\t\t@if (!headingHiddenIfSingleItem() || feedbackItems().length !== 1) {\n\t\t\t\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t\t\t\t<ng-container *luPortal=\"heading()\" />\n\t\t\t\t\t\t</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>\n", styles: ["@layer components{.calloutPopover{display:inline-flex;gap:var(--pr-t-spacings-75);align-items:center;padding:var(--pr-t-spacings-100);border-radius:var(--pr-t-border-radius-default);background-color:var(--palettes-50, var(--palettes-neutral-50));border:0;box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));cursor:pointer}.calloutPopover:hover{background-color:var(--palettes-100, var(--palettes-neutral-100))}.calloutPopover:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.calloutPopover-content:empty{display:none}.calloutPopover-icon{color:var(--palettes-700, var(--palettes-neutral-700))}.calloutPopover-overlay{inline-size:var(--components-calloutPopover-width);max-inline-size:100vw;display:flex;gap:var(--pr-t-spacings-100)}.calloutPopover-overlay-head-title{display:block;font:var(--pr-t-font-body-M);font-weight:var(--pr-t-font-fontWeight-semibold);padding:0;margin:0;padding-block-end:var(--pr-t-spacings-100);margin-block-end:var(--pr-t-spacings-100);border-block-end:var(--commons-divider-width) solid var(--palettes-neutral-200)}.calloutPopover-overlay-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-neutral-700))}.calloutPopover-overlay-content{margin-block-end:var(--pr-t-spacings-100)}:root{--components-calloutPopover-width: 30rem}}@layer mods{.calloutPopover.mod-S{font:var(--pr-t-font-body-S);padding:var(--pr-t-spacings-75)}.calloutPopover.mod-S .calloutPopover-icon{--icon-size: 1.25rem}.calloutPopover.mod-XS{font:var(--pr-t-font-body-XS);padding-block:var(--pr-t-spacings-25);padding-inline:var(--pr-t-spacings-50);gap:var(--pr-t-spacings-50);border-radius:var(--pr-t-border-radius-small)}.calloutPopover.mod-XS .calloutPopover-icon{--icon-size: 1rem}}@layer mods{.calloutPopover-overlay.mod-S{--components-calloutPopover-width: 20rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-icon{--icon-size: 1.25rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-title{font:var(--pr-t-font-body-S);font-weight:var(--pr-t-font-fontWeight-semibold)}.calloutPopover-overlay.mod-S .calloutFeedbackList{--components-calloutFeedbackList-gap: var(--pr-t-spacings-100);--components-calloutFeedbackList-font: var(--pr-t-font-body-S);--components-calloutFeedbackList-fontSize: var(--pr-t-font-body-S-fontSize);--components-calloutFeedbackList-lineHeight: var(--pr-t-font-body-S-lineHeight)}.calloutPopover-overlay.mod-S .calloutFeedbackList .button{--icon-size: 1rem;--components-button-font: var(--pr-t-font-body-XS);--components-button-paddingBlock: var(--pr-t-spacings-50);--components-button-paddingInline: var(--pr-t-spacings-75);--components-button-gap: var(--pr-t-spacings-50);--components-button-borderRadius: var(--pr-t-border-radius-small);--components-button-font-size: var(--pr-t-font-body-XS-fontSize);--components-button-line-height: var(--pr-t-font-body-XS-lineHeight)}.calloutPopover-overlay.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.calloutPopover-overlay.mod-iconless .calloutPopover-overlay-icon{display:none}}@layer base{lu-callout-popover{display:inline-flex}}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "directive", type: PopoverDirective, selector: "[luPopover2]", inputs: ["luPopover2", "luPopoverPosition", "luPopoverDisabled", "luPopoverTrigger", "customPositions", "luPopoverNoCloseButton", "luPopoverAnchor", "luPopoverOpenDelay", "luPopoverCloseDelay"], outputs: ["luPopoverTriggerChange", "luPopoverClosed", "luPopoverOpened"], exportAs: ["luPopover2"] }, { kind: "pipe", type: CalloutIconPipe, name: "luCalloutIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
297
229
|
}
|
|
298
230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CalloutPopoverComponent, decorators: [{
|
|
299
231
|
type: Component,
|
|
300
|
-
args: [{ selector: 'lu-callout-popover', imports: [IconComponent, PortalDirective, PopoverDirective, CalloutIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@let calloutIcon = state() | luCalloutIcon: icon();\n\n<button
|
|
232
|
+
args: [{ selector: 'lu-callout-popover', imports: [IconComponent, PortalDirective, PopoverDirective, CalloutIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@let calloutIcon = state() | luCalloutIcon: icon();\n\n<button\n\ttype=\"button\"\n\tclass=\"calloutPopover\"\n\t[class]=\"calloutClasses()\"\n\t[luPopover2]=\"overlayContentRef\"\n\t[luPopoverTrigger]=\"'click+hover'\"\n\t[luPopoverOpenDelay]=\"openDelay()\"\n\t[luPopoverCloseDelay]=\"closeDelay()\"\n\t#overlayOriginRef\n>\n\t@if (calloutIcon) {\n\t\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"calloutIcon\" />\n\t}\n\t<span class=\"calloutPopover-content\" aria-hidden=\"true\">{{ buttonLabel() }}</span>\n\t<span class=\"pr-u-mask\">{{ buttonAlt() || buttonLabel() }}</span>\n</button>\n<ng-template #overlayContentRef>\n\t<div class=\"lu-popover-content calloutPopover-overlay\" [class]=\"calloutOverlayClasses()\">\n\t\t@if (calloutIcon) {\n\t\t\t<div class=\"pr-u-flexShrink0\">\n\t\t\t\t<lu-icon class=\"calloutPopover-overlay-icon\" [class]=\"calloutOverlayHeadClasses()\" [icon]=\"calloutIcon\" />\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"pr-u-flexGrow1\">\n\t\t\t@if (heading()) {\n\t\t\t\t@if (!headingHiddenIfSingleItem() || feedbackItems().length !== 1) {\n\t\t\t\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t\t\t\t<ng-container *luPortal=\"heading()\" />\n\t\t\t\t\t\t</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>\n", styles: ["@layer components{.calloutPopover{display:inline-flex;gap:var(--pr-t-spacings-75);align-items:center;padding:var(--pr-t-spacings-100);border-radius:var(--pr-t-border-radius-default);background-color:var(--palettes-50, var(--palettes-neutral-50));border:0;box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));cursor:pointer}.calloutPopover:hover{background-color:var(--palettes-100, var(--palettes-neutral-100))}.calloutPopover:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.calloutPopover-content:empty{display:none}.calloutPopover-icon{color:var(--palettes-700, var(--palettes-neutral-700))}.calloutPopover-overlay{inline-size:var(--components-calloutPopover-width);max-inline-size:100vw;display:flex;gap:var(--pr-t-spacings-100)}.calloutPopover-overlay-head-title{display:block;font:var(--pr-t-font-body-M);font-weight:var(--pr-t-font-fontWeight-semibold);padding:0;margin:0;padding-block-end:var(--pr-t-spacings-100);margin-block-end:var(--pr-t-spacings-100);border-block-end:var(--commons-divider-width) solid var(--palettes-neutral-200)}.calloutPopover-overlay-icon{--icon-size: 1.5rem;color:var(--palettes-700, var(--palettes-neutral-700))}.calloutPopover-overlay-content{margin-block-end:var(--pr-t-spacings-100)}:root{--components-calloutPopover-width: 30rem}}@layer mods{.calloutPopover.mod-S{font:var(--pr-t-font-body-S);padding:var(--pr-t-spacings-75)}.calloutPopover.mod-S .calloutPopover-icon{--icon-size: 1.25rem}.calloutPopover.mod-XS{font:var(--pr-t-font-body-XS);padding-block:var(--pr-t-spacings-25);padding-inline:var(--pr-t-spacings-50);gap:var(--pr-t-spacings-50);border-radius:var(--pr-t-border-radius-small)}.calloutPopover.mod-XS .calloutPopover-icon{--icon-size: 1rem}}@layer mods{.calloutPopover-overlay.mod-S{--components-calloutPopover-width: 20rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-icon{--icon-size: 1.25rem}.calloutPopover-overlay.mod-S .calloutPopover-overlay-head-title{font:var(--pr-t-font-body-S);font-weight:var(--pr-t-font-fontWeight-semibold)}.calloutPopover-overlay.mod-S .calloutFeedbackList{--components-calloutFeedbackList-gap: var(--pr-t-spacings-100);--components-calloutFeedbackList-font: var(--pr-t-font-body-S);--components-calloutFeedbackList-fontSize: var(--pr-t-font-body-S-fontSize);--components-calloutFeedbackList-lineHeight: var(--pr-t-font-body-S-lineHeight)}.calloutPopover-overlay.mod-S .calloutFeedbackList .button{--icon-size: 1rem;--components-button-font: var(--pr-t-font-body-XS);--components-button-paddingBlock: var(--pr-t-spacings-50);--components-button-paddingInline: var(--pr-t-spacings-75);--components-button-gap: var(--pr-t-spacings-50);--components-button-borderRadius: var(--pr-t-border-radius-small);--components-button-font-size: var(--pr-t-font-body-XS-fontSize);--components-button-line-height: var(--pr-t-font-body-XS-lineHeight)}.calloutPopover-overlay.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.calloutPopover-overlay.mod-iconless .calloutPopover-overlay-icon{display:none}}@layer base{lu-callout-popover{display:inline-flex}}\n"] }]
|
|
301
233
|
}] });
|
|
302
234
|
|
|
303
235
|
const Translations = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-callout.mjs","sources":["../../../packages/ng/callout/callout-actions/callout-actions.component.ts","../../../packages/ng/callout/callout-state.ts","../../../packages/ng/callout/callout.utils.ts","../../../packages/ng/callout/callout-icon.pipe.ts","../../../packages/ng/callout/callout-disclosure/callout-disclosure.component.ts","../../../packages/ng/callout/callout-disclosure/callout-disclosure.component.html","../../../packages/ng/callout/callout-feedback-item/callout-feedback-item.component.ts","../../../packages/ng/callout/callout-feedback-item/callout-feedback-item.component.html","../../../packages/ng/callout/callout-feedback-list/callout-feedback-list.component.ts","../../../packages/ng/callout/callout-popover/callout-popover.component.ts","../../../packages/ng/callout/callout-popover/callout-popover.component.html","../../../packages/ng/callout/translations.ts","../../../packages/ng/callout/callout.translate.ts","../../../packages/ng/callout/callout/callout.component.ts","../../../packages/ng/callout/callout/callout.component.html","../../../packages/ng/callout/lucca-front-ng-callout.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-callout-actions',\n\ttemplate: '<ng-content />',\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'callout-content-description-actions',\n\t\t'[class.mod-inline]': 'inline()',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutActionsComponent {\n\treadonly inline = input(false, { transform: booleanAttribute });\n}\n","import { LuccaIcon } from '@lucca-front/icons';\nimport { Palette } from '@lucca-front/ng/core';\n\nexport const CalloutStates = ['success', 'warning', 'error'] as const;\n\nexport type CalloutState = (typeof CalloutStates)[number];\n\nexport const CalloutStateMap: Record<CalloutState, { icon: LuccaIcon; palette: Palette }> = {\n\tsuccess: {\n\t\ticon: 'signSuccess',\n\t\tpalette: 'success',\n\t},\n\twarning: {\n\t\ticon: 'signWarning',\n\t\tpalette: 'warning',\n\t},\n\terror: {\n\t\ticon: 'signError',\n\t\tpalette: 'error',\n\t},\n};\n","import { LuccaIcon } from '@lucca-front/icons';\nimport { Palette } from '@lucca-front/ng/core';\nimport { CalloutState, CalloutStateMap } from './callout-state';\n\n/**\n * Get icon for callout\n *\n * If the icon is defined then it takes priority over the callout state icon\n */\nexport function getCalloutIcon(state: CalloutState | undefined, icon: LuccaIcon | undefined): LuccaIcon | undefined {\n\tconst stateMap = CalloutStateMap[state] ?? { icon };\n\treturn icon ?? stateMap.icon;\n}\n\n/**\n * Get palette for callout\n *\n * If the palette is different from \"none\" then it takes priority over the callout state palette\n */\nexport function getCalloutPalette(state: CalloutState | undefined, palette: Palette): string {\n\tconst stateMap = CalloutStateMap[state] ?? { palette };\n\treturn palette !== 'none' ? palette : stateMap.palette;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { CalloutState } from './callout-state';\nimport { getCalloutIcon } from './callout.utils';\n\n/**\n * Get icon for callout\n *\n * If the icon is defined then it takes priority over the callout state icon\n */\n@Pipe({\n\tname: 'luCalloutIcon',\n})\nexport class CalloutIconPipe implements PipeTransform {\n\ttransform(state: CalloutState, icon: LuccaIcon): LuccaIcon | undefined {\n\t\treturn getCalloutIcon(state, icon);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, output, input, computed } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { CalloutIconPipe } from '../callout-icon.pipe';\nimport { CalloutState } from '../callout-state';\nimport { getCalloutPalette } from '../callout.utils';\n\n@Component({\n\tselector: 'lu-callout-disclosure',\n\timports: [IconComponent, PortalDirective, CalloutIconPipe],\n\ttemplateUrl: './callout-disclosure.component.html',\n\tstyleUrl: './callout-disclosure.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutDisclosureComponent {\n\treadonly heading = input.required<PortalContent>();\n\n\treadonly icon = input<LuccaIcon>();\n\n\treadonly palette = input<Palette>('none');\n\n\treadonly size = input<'M' | 'S'>('M');\n\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\treadonly state = input<CalloutState>();\n\n\treadonly open = input(false, { transform: booleanAttribute });\n\n\treadonly calloutPalette = computed<string>(() => {\n\t\treturn getCalloutPalette(this.state(), this.palette());\n\t});\n\n\treadonly calloutClasses = computed(() => {\n\t\tconst palette = this.calloutPalette();\n\t\treturn {\n\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t[`palette-${palette}`]: !!palette,\n\t\t};\n\t});\n\n\topenChange = output<boolean>();\n\n\tpublic onToggle(event: Event) {\n\t\tif (event.target instanceof HTMLDetailsElement) {\n\t\t\tthis.openChange.emit(event.target.open);\n\t\t}\n\t}\n}\n","@let calloutIcon = state() | luCalloutIcon: icon();\n\n<details\n\tclass=\"calloutDisclosure\"\n\t[class]=\"calloutClasses()\"\n\t[class.mod-iconless]=\"!calloutIcon\"\n\t[open]=\"open()\"\n\t(toggle)=\"onToggle($event)\"\n>\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (calloutIcon) {\n\t\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" [icon]=\"calloutIcon\" />\n\t\t}\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading()\" />\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\" />\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content />\n\t</div>\n</details>\n","import { ChangeDetectionStrategy, Component, Directive, ViewEncapsulation } from '@angular/core';\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-feedback-item-description',\n})\nexport class CalloutFeedbackItemDescriptionDirective {}\n\n@Component({\n\tselector: 'li[lu-callout-feedback-item]',\n\timports: [],\n\ttemplateUrl: './callout-feedback-item.component.html',\n\tstyleUrl: './callout-feedback-item.component.scss',\n\thost: {\n\t\tclass: 'calloutFeedbackList-item',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutFeedbackItemComponent {}\n","<span class=\"calloutFeedbackList-item-description\">\n\t<ng-content select=\"lu-feedback-item-description\" />\n</span>\n<div class=\"calloutFeedbackList-item-actions\">\n\t<ng-content select=\"[lu-feedback-item-action]\" />\n</div>\n","import { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { LuClass, Palette, ɵeffectWithDeps } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'ul[lu-callout-feedback-list]',\n\ttemplate: '<ng-content />',\n\tstyleUrl: './callout-feedback-list.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'calloutFeedbackList',\n\t},\n\tproviders: [LuClass],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutFeedbackListComponent {\n\t#luClass = inject(LuClass);\n\n\treadonly palette = input<Palette>();\n\n\treadonly size = input<'M' | 'S'>();\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.palette, this.size], (palette, size) => {\n\t\t\tthis.#luClass.setState({ [`palette-${palette}`]: !!palette, [`mod-${size}`]: !!size });\n\t\t});\n\t}\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tElementRef,\n\tinject,\n\tinput,\n\tnumberAttribute,\n\tOnDestroy,\n\tTemplateRef,\n\tviewChild,\n\tViewContainerRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { CalloutFeedbackItemComponent } from '../callout-feedback-item/callout-feedback-item.component';\nimport { CalloutIconPipe } from '../callout-icon.pipe';\nimport { CalloutState } from '../callout-state';\nimport { getCalloutPalette } from '../callout.utils';\n\n@Component({\n\tselector: 'lu-callout-popover',\n\timports: [IconComponent, PortalDirective, PopoverDirective, CalloutIconPipe],\n\ttemplateUrl: './callout-popover.component.html',\n\tstyleUrl: './callout-popover.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutPopoverComponent implements OnDestroy {\n\t#overlay = inject(Overlay);\n\t#viewContainerRef = inject(ViewContainerRef);\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly overlayOrigin = viewChild<ElementRef>('overlayOriginRef');\n\n\treadonly overlayContent = viewChild<TemplateRef<unknown>>('overlayContentRef');\n\n\t#overlayRef: OverlayRef;\n\n\t// Using unknown here because it's using Node types for whatever reason but it's a number\n\t#hideDelayId: unknown | undefined;\n\n\t// Using unknown here because it's using Node types for whatever reason but it's a number\n\t#showDelayId: unknown | undefined;\n\n\t/**\n\t * Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)\n\t */\n\treadonly openDelay = input(50, { transform: numberAttribute });\n\n\t/**\n\t * Debounce for the popover to close (mouse will have to be out of both popover and trigger for closeDelay milliseconds for it to close)\n\t */\n\treadonly closeDelay = input(500, { transform: numberAttribute });\n\n\t/**\n\t * Label (visual only) to put inside the button, often used to show just a number\n\t */\n\treadonly buttonLabel = input<string>();\n\n\t/**\n\t * Alternative for the button\n\t */\n\treadonly buttonAlt = input<string>('');\n\n\treadonly headingHiddenIfSingleItem = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Palette for both the button and the popover content\n\t */\n\treadonly palette = input<Palette>('none');\n\n\t/**\n\t * Size for both button and popover content\n\t */\n\treadonly size = input<'M' | 'S' | 'XS'>();\n\n\t/**\n\t * Icon shows in button and next to popover's title\n\t */\n\treadonly icon = input<LuccaIcon>();\n\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\treadonly state = input<CalloutState>();\n\n\t/**\n\t * Heading for the details popover\n\t */\n\treadonly heading = input<PortalContent>();\n\n\treadonly feedbackItems = contentChildren(CalloutFeedbackItemComponent, { descendants: true });\n\n\treadonly contentSize = computed<'S' | 'M' | undefined>(() => {\n\t\tconst size = this.size();\n\t\treturn size === 'XS' ? 'S' : size;\n\t});\n\n\treadonly calloutOverlayClasses = computed(() => ({\n\t\t[`mod-${this.contentSize()}`]: !!this.contentSize(),\n\t}));\n\n\treadonly calloutPalette = computed(() => getCalloutPalette(this.state(), this.palette()));\n\n\treadonly calloutClasses = computed(() => {\n\t\tconst palette = this.calloutPalette();\n\t\treturn {\n\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t[`palette-${palette}`]: !!palette,\n\t\t};\n\t});\n\n\treadonly calloutOverlayHeadClasses = computed(() => ({\n\t\t[`palette-${this.calloutPalette()}`]: !!this.calloutPalette(),\n\t}));\n\n\tpublic showContent() {\n\t\tclearTimeout(this.#hideDelayId as number);\n\t\t// Don't open if we still have one opened\n\t\tif (this.#showDelayId) {\n\t\t\treturn;\n\t\t}\n\t\tthis.#showDelayId = setTimeout(() => {\n\t\t\tthis.createPanelContent();\n\t\t\tthis.#hideDelayId = undefined;\n\t\t}, this.openDelay());\n\t}\n\n\tprivate createPanelContent() {\n\t\tconst positionStrategy = this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.overlayOrigin())\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: 'center',\n\t\t\t\t\toriginY: 'top',\n\t\t\t\t\toverlayX: 'center',\n\t\t\t\t\toverlayY: 'bottom',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: 'center',\n\t\t\t\t\toriginY: 'bottom',\n\t\t\t\t\toverlayX: 'center',\n\t\t\t\t\toverlayY: 'top',\n\t\t\t\t},\n\t\t\t]);\n\n\t\tthis.#overlayRef = this.#overlay.create({\n\t\t\tpositionStrategy,\n\t\t});\n\n\t\tconst portal = new TemplatePortal(this.overlayContent(), this.#viewContainerRef);\n\n\t\tthis.#overlayRef.attach(portal);\n\t}\n\n\tpublic hideContent(event: MouseEvent | null) {\n\t\tclearTimeout(this.#showDelayId as number);\n\t\tthis.#hideDelayId = setTimeout(() => {\n\t\t\tconst newTarget = event?.relatedTarget as Node | null;\n\t\t\t// This is to prevent tooltip closing when user puts cursor on tooltip, thus leaving the origin trigger\n\t\t\tif (!newTarget || !(this.#overlayRef?.overlayElement?.contains(newTarget) || this.#elementRef?.nativeElement?.contains(newTarget))) {\n\t\t\t\t// Remove the tooltip if needed.\n\t\t\t\tif (this.#overlayRef) {\n\t\t\t\t\tthis.#overlayRef.dispose();\n\t\t\t\t\tthis.#showDelayId = undefined;\n\t\t\t\t\tthis.#hideDelayId = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}, this.closeDelay());\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.hideContent(null);\n\t}\n}\n","@let calloutIcon = state() | luCalloutIcon: icon();\n\n<button type=\"button\" class=\"calloutPopover\" [class]=\"calloutClasses()\" #overlayOriginRef>\n\t@if (calloutIcon) {\n\t\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"calloutIcon\" />\n\t}\n\t<span class=\"calloutPopover-content\" aria-hidden=\"true\">{{ buttonLabel() }}</span>\n\t<span class=\"pr-u-mask\">{{ buttonAlt() || buttonLabel() }}</span>\n</button>\n<ng-template #overlayContentRef>\n\t<div\n\t\t[@tooltip]=\"'open'\"\n\t\tclass=\"lu-popover-content calloutPopover-overlay\"\n\t\t[class]=\"calloutOverlayClasses()\"\n\t\t(mouseenter)=\"showContent()\"\n\t\t(mouseleave)=\"hideContent($event)\"\n\t>\n\t\t@if (calloutIcon) {\n\t\t\t<div class=\"pr-u-flexShrink0\">\n\t\t\t\t<lu-icon class=\"calloutPopover-overlay-icon\" [class]=\"calloutOverlayHeadClasses()\" [icon]=\"calloutIcon\" />\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"pr-u-flexGrow1\">\n\t\t\t@if (heading()) {\n\t\t\t\t@if (!headingHiddenIfSingleItem() || feedbackItems().length !== 1) {\n\t\t\t\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t\t\t\t<ng-container *luPortal=\"heading()\" />\n\t\t\t\t\t\t</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>\n","export const Translations = {\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\ten: {\n\t\tclose: 'Close',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CALLOUT_TRANSLATIONS = new InjectionToken('LuCalloutTranslations', {\n\tfactory: () => luCalloutTranslations,\n});\n\nexport interface LuCalloutLabel {\n\tclose: string;\n}\n\nexport const luCalloutTranslations: LuTranslation<LuCalloutLabel> = Translations;\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, linkedSignal, output, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { getIntl, Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { CalloutIconPipe } from '../callout-icon.pipe';\nimport { CalloutState } from '../callout-state';\nimport { LU_CALLOUT_TRANSLATIONS } from '../callout.translate';\nimport { getCalloutPalette } from '../callout.utils';\n\n@Component({\n\tselector: 'lu-callout',\n\timports: [PortalDirective, CalloutIconPipe, IconComponent],\n\ttemplateUrl: './callout.component.html',\n\tstyleUrl: './callout.component.scss',\n\thost: {\n\t\t'[attr.hidden]': 'removed() ? \"hidden\" : null',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutComponent {\n\tpublic intl = getIntl(LU_CALLOUT_TRANSLATIONS);\n\n\t/**\n\t * The title of the callout\n\t */\n\treadonly heading = input<PortalContent>();\n\n\t/**\n\t * Which palette should be used for the entire callout.\n\t * Defaults to none (inherits parent palette)\n\t */\n\treadonly palette = input<Palette>('none');\n\n\t/**\n\t * Which size should the callout be? Defaults to medium\n\t */\n\treadonly size = input<'M' | 'S'>();\n\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\treadonly state = input<CalloutState>();\n\n\t/**\n\t * Which icon should we display in the callout if any?\n\t * Defaults to no icon.\n\t */\n\treadonly icon = input<LuccaIcon>();\n\n\t/**\n\t * Should we display the remove icon?\n\t */\n\treadonly removable = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Is the callout removed? Works with two way binding too.\n\t */\n\n\treadonly removed = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the icon’s alt attribute used for accessibility\n\t */\n\treadonly iconAlt = input<string | null>(null);\n\n\t/**\n\t * Displayed in AI mode\n\t */\n\treadonly AI = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Emit event when button removed is click\n\t */\n\treadonly removedChange = output<boolean>();\n\n\treadonly removedRef = linkedSignal(() => this.removed());\n\n\treadonly calloutClasses = computed(() => {\n\t\tconst palette = getCalloutPalette(this.state(), this.palette());\n\t\tconst size = this.size();\n\t\tconst AI = this.AI();\n\t\treturn {\n\t\t\t[`mod-${size}`]: !!size,\n\t\t\t[`palette-${palette}`]: !AI && !!palette,\n\t\t};\n\t});\n}\n","@if (!removedRef()) {\n\t<div class=\"callout\" [class]=\"calloutClasses()\" [class.mod-AI]=\"AI()\">\n\t\t@if (state() | luCalloutIcon: icon(); as calloutIcon) {\n\t\t\t<div class=\"callout-icon\">\n\t\t\t\t<lu-icon [icon]=\"calloutIcon\" [alt]=\"iconAlt()\" />\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"callout-content\">\n\t\t\t@if (heading()) {\n\t\t\t\t<strong class=\"callout-content-title\">\n\t\t\t\t\t<ng-container *luPortal=\"heading()\" />\n\t\t\t\t</strong>\n\t\t\t}\n\t\t\t<div class=\"callout-content-description\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\t\t</div>\n\t\t@if (removable()) {\n\t\t\t<button type=\"button\" class=\"callout-kill\" (click)=\"removedRef.set(true); removedChange.emit(true)\">\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t}\n\t</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-callout.mjs","sources":["../../../packages/ng/callout/callout-actions/callout-actions.component.ts","../../../packages/ng/callout/callout-state.ts","../../../packages/ng/callout/callout.utils.ts","../../../packages/ng/callout/callout-icon.pipe.ts","../../../packages/ng/callout/callout-disclosure/callout-disclosure.component.ts","../../../packages/ng/callout/callout-disclosure/callout-disclosure.component.html","../../../packages/ng/callout/callout-feedback-item/callout-feedback-item.component.ts","../../../packages/ng/callout/callout-feedback-item/callout-feedback-item.component.html","../../../packages/ng/callout/callout-feedback-list/callout-feedback-list.component.ts","../../../packages/ng/callout/callout-popover/callout-popover.component.ts","../../../packages/ng/callout/callout-popover/callout-popover.component.html","../../../packages/ng/callout/translations.ts","../../../packages/ng/callout/callout.translate.ts","../../../packages/ng/callout/callout/callout.component.ts","../../../packages/ng/callout/callout/callout.component.html","../../../packages/ng/callout/lucca-front-ng-callout.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-callout-actions',\n\ttemplate: '<ng-content />',\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'callout-content-description-actions',\n\t\t'[class.mod-inline]': 'inline()',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutActionsComponent {\n\treadonly inline = input(false, { transform: booleanAttribute });\n}\n","import { LuccaIcon } from '@lucca-front/icons';\nimport { Palette } from '@lucca-front/ng/core';\n\nexport const CalloutStates = ['success', 'warning', 'error'] as const;\n\nexport type CalloutState = (typeof CalloutStates)[number];\n\nexport const CalloutStateMap: Record<CalloutState, { icon: LuccaIcon; palette: Palette }> = {\n\tsuccess: {\n\t\ticon: 'signSuccess',\n\t\tpalette: 'success',\n\t},\n\twarning: {\n\t\ticon: 'signWarning',\n\t\tpalette: 'warning',\n\t},\n\terror: {\n\t\ticon: 'signError',\n\t\tpalette: 'error',\n\t},\n};\n","import { LuccaIcon } from '@lucca-front/icons';\nimport { Palette } from '@lucca-front/ng/core';\nimport { CalloutState, CalloutStateMap } from './callout-state';\n\n/**\n * Get icon for callout\n *\n * If the icon is defined then it takes priority over the callout state icon\n */\nexport function getCalloutIcon(state: CalloutState | undefined, icon: LuccaIcon | undefined): LuccaIcon | undefined {\n\tconst stateMap = CalloutStateMap[state] ?? { icon };\n\treturn icon ?? stateMap.icon;\n}\n\n/**\n * Get palette for callout\n *\n * If the palette is different from \"none\" then it takes priority over the callout state palette\n */\nexport function getCalloutPalette(state: CalloutState | undefined, palette: Palette): string {\n\tconst stateMap = CalloutStateMap[state] ?? { palette };\n\treturn palette !== 'none' ? palette : stateMap.palette;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { CalloutState } from './callout-state';\nimport { getCalloutIcon } from './callout.utils';\n\n/**\n * Get icon for callout\n *\n * If the icon is defined then it takes priority over the callout state icon\n */\n@Pipe({\n\tname: 'luCalloutIcon',\n})\nexport class CalloutIconPipe implements PipeTransform {\n\ttransform(state: CalloutState, icon: LuccaIcon): LuccaIcon | undefined {\n\t\treturn getCalloutIcon(state, icon);\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, output, input, computed } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { CalloutIconPipe } from '../callout-icon.pipe';\nimport { CalloutState } from '../callout-state';\nimport { getCalloutPalette } from '../callout.utils';\n\n@Component({\n\tselector: 'lu-callout-disclosure',\n\timports: [IconComponent, PortalDirective, CalloutIconPipe],\n\ttemplateUrl: './callout-disclosure.component.html',\n\tstyleUrl: './callout-disclosure.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutDisclosureComponent {\n\treadonly heading = input.required<PortalContent>();\n\n\treadonly icon = input<LuccaIcon>();\n\n\treadonly palette = input<Palette>('none');\n\n\treadonly size = input<'M' | 'S'>('M');\n\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\treadonly state = input<CalloutState>();\n\n\treadonly open = input(false, { transform: booleanAttribute });\n\n\treadonly calloutPalette = computed<string>(() => {\n\t\treturn getCalloutPalette(this.state(), this.palette());\n\t});\n\n\treadonly calloutClasses = computed(() => {\n\t\tconst palette = this.calloutPalette();\n\t\treturn {\n\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t[`palette-${palette}`]: !!palette,\n\t\t};\n\t});\n\n\topenChange = output<boolean>();\n\n\tpublic onToggle(event: Event) {\n\t\tif (event.target instanceof HTMLDetailsElement) {\n\t\t\tthis.openChange.emit(event.target.open);\n\t\t}\n\t}\n}\n","@let calloutIcon = state() | luCalloutIcon: icon();\n\n<details\n\tclass=\"calloutDisclosure\"\n\t[class]=\"calloutClasses()\"\n\t[class.mod-iconless]=\"!calloutIcon\"\n\t[open]=\"open()\"\n\t(toggle)=\"onToggle($event)\"\n>\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (calloutIcon) {\n\t\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" [icon]=\"calloutIcon\" />\n\t\t}\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading()\" />\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\" />\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content />\n\t</div>\n</details>\n","import { ChangeDetectionStrategy, Component, Directive, ViewEncapsulation } from '@angular/core';\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-feedback-item-description',\n})\nexport class CalloutFeedbackItemDescriptionDirective {}\n\n@Component({\n\tselector: 'li[lu-callout-feedback-item]',\n\timports: [],\n\ttemplateUrl: './callout-feedback-item.component.html',\n\tstyleUrl: './callout-feedback-item.component.scss',\n\thost: {\n\t\tclass: 'calloutFeedbackList-item',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutFeedbackItemComponent {}\n","<span class=\"calloutFeedbackList-item-description\">\n\t<ng-content select=\"lu-feedback-item-description\" />\n</span>\n<div class=\"calloutFeedbackList-item-actions\">\n\t<ng-content select=\"[lu-feedback-item-action]\" />\n</div>\n","import { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { LuClass, Palette, ɵeffectWithDeps } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'ul[lu-callout-feedback-list]',\n\ttemplate: '<ng-content />',\n\tstyleUrl: './callout-feedback-list.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'calloutFeedbackList',\n\t},\n\tproviders: [LuClass],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutFeedbackListComponent {\n\t#luClass = inject(LuClass);\n\n\treadonly palette = input<Palette>();\n\n\treadonly size = input<'M' | 'S'>();\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.palette, this.size], (palette, size) => {\n\t\t\tthis.#luClass.setState({ [`palette-${palette}`]: !!palette, [`mod-${size}`]: !!size });\n\t\t});\n\t}\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { CalloutFeedbackItemComponent } from '../callout-feedback-item/callout-feedback-item.component';\nimport { CalloutIconPipe } from '../callout-icon.pipe';\nimport { CalloutState } from '../callout-state';\nimport { getCalloutPalette } from '../callout.utils';\n\n@Component({\n\tselector: 'lu-callout-popover',\n\timports: [IconComponent, PortalDirective, PopoverDirective, CalloutIconPipe],\n\ttemplateUrl: './callout-popover.component.html',\n\tstyleUrl: './callout-popover.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutPopoverComponent {\n\t/**\n\t * Debounce for the popover to open (mouse will have to be on the element fox openDelay milliseconds for popover to show)\n\t */\n\treadonly openDelay = input(50, { transform: numberAttribute });\n\n\t/**\n\t * Debounce for the popover to close (mouse will have to be out of both popover and trigger for closeDelay milliseconds for it to close)\n\t */\n\treadonly closeDelay = input(500, { transform: numberAttribute });\n\n\t/**\n\t * Label (visual only) to put inside the button, often used to show just a number\n\t */\n\treadonly buttonLabel = input<string>();\n\n\t/**\n\t * Alternative for the button\n\t */\n\treadonly buttonAlt = input<string>('');\n\n\treadonly headingHiddenIfSingleItem = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Palette for both the button and the popover content\n\t */\n\treadonly palette = input<Palette>('none');\n\n\t/**\n\t * Size for both button and popover content\n\t */\n\treadonly size = input<'M' | 'S' | 'XS'>();\n\n\t/**\n\t * Icon shows in button and next to popover's title\n\t */\n\treadonly icon = input<LuccaIcon>();\n\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\treadonly state = input<CalloutState>();\n\n\t/**\n\t * Heading for the details popover\n\t */\n\treadonly heading = input<PortalContent>();\n\n\treadonly feedbackItems = contentChildren(CalloutFeedbackItemComponent, { descendants: true });\n\n\treadonly contentSize = computed<'S' | 'M' | undefined>(() => {\n\t\tconst size = this.size();\n\t\treturn size === 'XS' ? 'S' : size;\n\t});\n\n\treadonly calloutOverlayClasses = computed(() => ({\n\t\t[`mod-${this.contentSize()}`]: !!this.contentSize(),\n\t}));\n\n\treadonly calloutPalette = computed(() => getCalloutPalette(this.state(), this.palette()));\n\n\treadonly calloutClasses = computed(() => {\n\t\tconst palette = this.calloutPalette();\n\t\treturn {\n\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t[`palette-${palette}`]: !!palette,\n\t\t};\n\t});\n\n\treadonly calloutOverlayHeadClasses = computed(() => ({\n\t\t[`palette-${this.calloutPalette()}`]: !!this.calloutPalette(),\n\t}));\n}\n","@let calloutIcon = state() | luCalloutIcon: icon();\n\n<button\n\ttype=\"button\"\n\tclass=\"calloutPopover\"\n\t[class]=\"calloutClasses()\"\n\t[luPopover2]=\"overlayContentRef\"\n\t[luPopoverTrigger]=\"'click+hover'\"\n\t[luPopoverOpenDelay]=\"openDelay()\"\n\t[luPopoverCloseDelay]=\"closeDelay()\"\n\t#overlayOriginRef\n>\n\t@if (calloutIcon) {\n\t\t<lu-icon class=\"calloutPopover-icon\" [icon]=\"calloutIcon\" />\n\t}\n\t<span class=\"calloutPopover-content\" aria-hidden=\"true\">{{ buttonLabel() }}</span>\n\t<span class=\"pr-u-mask\">{{ buttonAlt() || buttonLabel() }}</span>\n</button>\n<ng-template #overlayContentRef>\n\t<div class=\"lu-popover-content calloutPopover-overlay\" [class]=\"calloutOverlayClasses()\">\n\t\t@if (calloutIcon) {\n\t\t\t<div class=\"pr-u-flexShrink0\">\n\t\t\t\t<lu-icon class=\"calloutPopover-overlay-icon\" [class]=\"calloutOverlayHeadClasses()\" [icon]=\"calloutIcon\" />\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"pr-u-flexGrow1\">\n\t\t\t@if (heading()) {\n\t\t\t\t@if (!headingHiddenIfSingleItem() || feedbackItems().length !== 1) {\n\t\t\t\t\t<div class=\"calloutPopover-overlay-head\">\n\t\t\t\t\t\t<strong class=\"calloutPopover-overlay-head-title\">\n\t\t\t\t\t\t\t<ng-container *luPortal=\"heading()\" />\n\t\t\t\t\t\t</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<div class=\"calloutPopover-overlay-content\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>\n","export const Translations = {\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\ten: {\n\t\tclose: 'Close',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CALLOUT_TRANSLATIONS = new InjectionToken('LuCalloutTranslations', {\n\tfactory: () => luCalloutTranslations,\n});\n\nexport interface LuCalloutLabel {\n\tclose: string;\n}\n\nexport const luCalloutTranslations: LuTranslation<LuCalloutLabel> = Translations;\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, linkedSignal, output, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { getIntl, Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { CalloutIconPipe } from '../callout-icon.pipe';\nimport { CalloutState } from '../callout-state';\nimport { LU_CALLOUT_TRANSLATIONS } from '../callout.translate';\nimport { getCalloutPalette } from '../callout.utils';\n\n@Component({\n\tselector: 'lu-callout',\n\timports: [PortalDirective, CalloutIconPipe, IconComponent],\n\ttemplateUrl: './callout.component.html',\n\tstyleUrl: './callout.component.scss',\n\thost: {\n\t\t'[attr.hidden]': 'removed() ? \"hidden\" : null',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class CalloutComponent {\n\tpublic intl = getIntl(LU_CALLOUT_TRANSLATIONS);\n\n\t/**\n\t * The title of the callout\n\t */\n\treadonly heading = input<PortalContent>();\n\n\t/**\n\t * Which palette should be used for the entire callout.\n\t * Defaults to none (inherits parent palette)\n\t */\n\treadonly palette = input<Palette>('none');\n\n\t/**\n\t * Which size should the callout be? Defaults to medium\n\t */\n\treadonly size = input<'M' | 'S'>();\n\n\t/**\n\t * State is a shorthand to set the icon and the palette to the recommended values for the icon and palette based on\n\t * the provided state.\n\t *\n\t * If one of the icon or palette inputs are filled along with the state input, their values will have the priority over\n\t * state (so setting state to success and palette to warning will make the palette warning)\n\t */\n\treadonly state = input<CalloutState>();\n\n\t/**\n\t * Which icon should we display in the callout if any?\n\t * Defaults to no icon.\n\t */\n\treadonly icon = input<LuccaIcon>();\n\n\t/**\n\t * Should we display the remove icon?\n\t */\n\treadonly removable = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Is the callout removed? Works with two way binding too.\n\t */\n\n\treadonly removed = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the icon’s alt attribute used for accessibility\n\t */\n\treadonly iconAlt = input<string | null>(null);\n\n\t/**\n\t * Displayed in AI mode\n\t */\n\treadonly AI = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Emit event when button removed is click\n\t */\n\treadonly removedChange = output<boolean>();\n\n\treadonly removedRef = linkedSignal(() => this.removed());\n\n\treadonly calloutClasses = computed(() => {\n\t\tconst palette = getCalloutPalette(this.state(), this.palette());\n\t\tconst size = this.size();\n\t\tconst AI = this.AI();\n\t\treturn {\n\t\t\t[`mod-${size}`]: !!size,\n\t\t\t[`palette-${palette}`]: !AI && !!palette,\n\t\t};\n\t});\n}\n","@if (!removedRef()) {\n\t<div class=\"callout\" [class]=\"calloutClasses()\" [class.mod-AI]=\"AI()\">\n\t\t@if (state() | luCalloutIcon: icon(); as calloutIcon) {\n\t\t\t<div class=\"callout-icon\">\n\t\t\t\t<lu-icon [icon]=\"calloutIcon\" [alt]=\"iconAlt()\" />\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"callout-content\">\n\t\t\t@if (heading()) {\n\t\t\t\t<strong class=\"callout-content-title\">\n\t\t\t\t\t<ng-container *luPortal=\"heading()\" />\n\t\t\t\t</strong>\n\t\t\t}\n\t\t\t<div class=\"callout-content-description\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\t\t</div>\n\t\t@if (removable()) {\n\t\t\t<button type=\"button\" class=\"callout-kill\" (click)=\"removedRef.set(true); removedChange.emit(true)\">\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t}\n\t</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":";;;;;;MAYa,uBAAuB,CAAA;AAVpC,IAAA,WAAA,GAAA;QAWU,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC/D;8GAFY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,sUARzB,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAQd,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,IAAI,EAAE;AACL,wBAAA,KAAK,EAAE,qCAAqC;AAC5C,wBAAA,oBAAoB,EAAE,UAAU;AAChC,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,iBAAA;;;ACRY,MAAA,aAAa,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO;AAI9C,MAAA,eAAe,GAAgE;AAC3F,IAAA,OAAO,EAAE;AACR,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,OAAO,EAAE,SAAS;AAClB,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,OAAO,EAAE,SAAS;AAClB,KAAA;AACD,IAAA,KAAK,EAAE;AACN,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,OAAO,EAAE,OAAO;AAChB,KAAA;;;ACfF;;;;AAIG;AACa,SAAA,cAAc,CAAC,KAA+B,EAAE,IAA2B,EAAA;IAC1F,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;AACnD,IAAA,OAAO,IAAI,IAAI,QAAQ,CAAC,IAAI;AAC7B;AAEA;;;;AAIG;AACa,SAAA,iBAAiB,CAAC,KAA+B,EAAE,OAAgB,EAAA;IAClF,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AACtD,IAAA,OAAO,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,OAAO;AACvD;;ACjBA;;;;AAIG;MAIU,eAAe,CAAA;IAC3B,SAAS,CAAC,KAAmB,EAAE,IAAe,EAAA;AAC7C,QAAA,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC;;8GAFvB,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,eAAe;AACrB,iBAAA;;;MCIY,0BAA0B,CAAA;AARvC,IAAA,WAAA,GAAA;AASU,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAiB;QAEzC,IAAI,CAAA,IAAA,GAAG,KAAK,EAAa;AAEzB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,MAAM,CAAC;AAEhC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAY,GAAG,CAAC;AAErC;;;;;;AAMG;QACM,IAAK,CAAA,KAAA,GAAG,KAAK,EAAgB;QAE7B,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAS,MAAK;AAC/C,YAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACvD,SAAC,CAAC;AAEO,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;YACrC,OAAO;AACN,gBAAA,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACrC,gBAAA,CAAC,WAAW,OAAO,CAAA,CAAE,GAAG,CAAC,CAAC,OAAO;aACjC;AACF,SAAC,CAAC;QAEF,IAAU,CAAA,UAAA,GAAG,MAAM,EAAW;AAO9B;AALO,IAAA,QAAQ,CAAC,KAAY,EAAA;AAC3B,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,kBAAkB,EAAE;YAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;;;8GApC7B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,s1BChBvC,yrBAsBA,EAAA,MAAA,EAAA,CAAA,kpIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZW,aAAa,EAAE,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,2FAAE,eAAe,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAM7C,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACxB,OAAA,EAAA,CAAC,aAAa,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,eAAA,EAGzC,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,yrBAAA,EAAA,MAAA,EAAA,CAAA,kpIAAA,CAAA,EAAA;;;MERzB,uCAAuC,CAAA;8GAAvC,uCAAuC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvC,uCAAuC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAvC,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBAJnD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEV,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,iBAAA;;MAcY,4BAA4B,CAAA;8GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,8ICnBzC,6OAMA,EAAA,MAAA,EAAA,CAAA,+uGAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDaa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAXxC,SAAS;+BACC,8BAA8B,EAAA,OAAA,EAC/B,EAAE,EAGL,IAAA,EAAA;AACL,wBAAA,KAAK,EAAE,0BAA0B;AACjC,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6OAAA,EAAA,MAAA,EAAA,CAAA,+uGAAA,CAAA,EAAA;;;MEHnC,4BAA4B,CAAA;AACxC,IAAA,QAAQ;AAMR,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAEjB,IAAO,CAAA,OAAA,GAAG,KAAK,EAAW;QAE1B,IAAI,CAAA,IAAA,GAAG,KAAK,EAAa;AAGjC,QAAAA,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,KAAI;YAC5D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAW,QAAA,EAAA,OAAO,CAAE,CAAA,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAO,IAAA,EAAA,IAAI,CAAE,CAAA,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACvF,SAAC,CAAC;;8GAVS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAH7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,OAAO,CAAC,0BANV,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+uGAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FASd,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAXxC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,YAC9B,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACL,wBAAA,KAAK,EAAE,qBAAqB;AAC5B,qBAAA,EAAA,SAAA,EACU,CAAC,OAAO,CAAC,EACL,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,+uGAAA,CAAA,EAAA;;;MCMzB,uBAAuB,CAAA;AARpC,IAAA,WAAA,GAAA;AASC;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAE9D;;AAEG;QACM,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAEhE;;AAEG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,EAAU;AAEtC;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,EAAE,CAAC;QAE7B,IAAyB,CAAA,yBAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAElF;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,MAAM,CAAC;AAEzC;;AAEG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,EAAoB;AAEzC;;AAEG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,EAAa;AAElC;;;;;;AAMG;QACM,IAAK,CAAA,KAAA,GAAG,KAAK,EAAgB;AAEtC;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,EAAiB;QAEhC,IAAa,CAAA,aAAA,GAAG,eAAe,CAAC,4BAA4B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAEpF,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAwB,MAAK;AAC3D,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACxB,OAAO,IAAI,KAAK,IAAI,GAAG,GAAG,GAAG,IAAI;AAClC,SAAC,CAAC;AAEO,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,OAAO;AAChD,YAAA,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,WAAW,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;AACnD,SAAA,CAAC,CAAC;AAEM,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAEhF,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;YACrC,OAAO;AACN,gBAAA,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACrC,gBAAA,CAAC,WAAW,OAAO,CAAA,CAAE,GAAG,CAAC,CAAC,OAAO;aACjC;AACF,SAAC,CAAC;AAEO,QAAA,IAAA,CAAA,yBAAyB,GAAG,QAAQ,CAAC,OAAO;AACpD,YAAA,CAAC,CAAW,QAAA,EAAA,IAAI,CAAC,cAAc,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;AAC7D,SAAA,CAAC,CAAC;AACH;8GA5EY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAoDM,4BAA4B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtEtE,q6CAyCA,EAAA,MAAA,EAAA,CAAA,61GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED7BW,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAM/D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WACrB,CAAC,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,CAAC,mBAG3D,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,q6CAAA,EAAA,MAAA,EAAA,CAAA,61GAAA,CAAA,EAAA;;;AEhB/B,MAAM,YAAY,GAAG;AAC3B,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,KAAK,EAAE,SAAS;AAChB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,SAAS;AAChB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,UAAU;AACjB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,WAAW;AAClB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,OAAO;AACd,KAAA;CACD;;MCrBY,uBAAuB,GAAG,IAAI,cAAc,CAAC,uBAAuB,EAAE;AAClF,IAAA,OAAO,EAAE,MAAM,qBAAqB;AACpC,CAAA;AAMM,MAAM,qBAAqB,GAAkC;;MCQvD,gBAAgB,CAAA;AAX7B,IAAA,WAAA,GAAA;AAYQ,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC,uBAAuB,CAAC;AAE9C;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,EAAiB;AAEzC;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAU,MAAM,CAAC;AAEzC;;AAEG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,EAAa;AAElC;;;;;;AAMG;QACM,IAAK,CAAA,KAAA,GAAG,KAAK,EAAgB;AAEtC;;;AAGG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,EAAa;AAElC;;AAEG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAElE;;AAEG;QAEM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAEhE;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAgB,IAAI,CAAC;AAE7C;;AAEG;QACM,IAAE,CAAA,EAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAE3D;;AAEG;QACM,IAAa,CAAA,aAAA,GAAG,MAAM,EAAW;QAEjC,IAAU,CAAA,UAAA,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAE/C,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/D,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;YACpB,OAAO;AACN,gBAAA,CAAC,OAAO,IAAI,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI;gBACvB,CAAC,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO;aACxC;AACF,SAAC,CAAC;AACF;8GAvEY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,sxCCpB7B,+yBAwBA,EAAA,MAAA,EAAA,CAAA,uqPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDbW,eAAe,EAAE,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,eAAe,sDAAE,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAS7C,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;+BACC,YAAY,EAAA,OAAA,EACb,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,CAAC,EAGpD,IAAA,EAAA;AACL,wBAAA,eAAe,EAAE,6BAA6B;AAC9C,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+yBAAA,EAAA,MAAA,EAAA,CAAA,uqPAAA,CAAA,EAAA;;;AElBtC;;AAEG;;;;"}
|
|
@@ -73,11 +73,11 @@ class CommentBlockComponent {
|
|
|
73
73
|
this.size = input();
|
|
74
74
|
this.noAvatar = computed(() => !this.avatar());
|
|
75
75
|
this.isSingleComment = computed(() => this.comments().length === 1);
|
|
76
|
-
this.role =
|
|
76
|
+
this.role = this.#chatBlock ? 'listitem' : null;
|
|
77
77
|
}
|
|
78
78
|
#chatBlock;
|
|
79
79
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CommentBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CommentBlockComponent, isStandalone: true, selector: "lu-comment-block", inputs: { compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null }, chatAnswer: { classPropertyName: "chatAnswer", publicName: "chatAnswer", isSignal: true, isRequired: false, transformFunction: null }, authorName: { classPropertyName: "authorName", publicName: "authorName", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role
|
|
80
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CommentBlockComponent, isStandalone: true, selector: "lu-comment-block", inputs: { compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null }, chatAnswer: { classPropertyName: "chatAnswer", publicName: "chatAnswer", isSignal: true, isRequired: false, transformFunction: null }, authorName: { classPropertyName: "authorName", publicName: "authorName", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role" } }, providers: [
|
|
81
81
|
{
|
|
82
82
|
provide: COMMENT_BLOCK_INSTANCE,
|
|
83
83
|
useExisting: forwardRef(() => CommentBlockComponent),
|
|
@@ -87,7 +87,7 @@ class CommentBlockComponent {
|
|
|
87
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CommentBlockComponent, decorators: [{
|
|
88
88
|
type: Component,
|
|
89
89
|
args: [{ selector: 'lu-comment-block', imports: [NgTemplateOutlet], host: {
|
|
90
|
-
'[attr.role]': 'role
|
|
90
|
+
'[attr.role]': 'role',
|
|
91
91
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
92
92
|
{
|
|
93
93
|
provide: COMMENT_BLOCK_INSTANCE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-comment.mjs","sources":["../../../packages/ng/comment/token.ts","../../../packages/ng/comment/comment/comment.component.ts","../../../packages/ng/comment/comment/comment.component.html","../../../packages/ng/comment/comment-block/comment-block.component.ts","../../../packages/ng/comment/comment-block/comment-block.component.html","../../../packages/ng/comment/comment-chat/comment-chat.component.ts","../../../packages/ng/comment/comment-chat/comment-chat.component.html","../../../packages/ng/comment/lucca-front-ng-comment.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { CommentBlockComponent } from './comment-block/comment-block.component';\nimport { CommentChatComponent } from './comment-chat/comment-chat.component';\n\nexport const COMMENT_BLOCK_INSTANCE = new InjectionToken<CommentBlockComponent>('COMMENT_BLOCK_INSTANCE');\nexport const COMMENT_CHAT_INSTANCE = new InjectionToken<CommentChatComponent>('COMMENT_CHAT_INSTANCE');\n","import { DatePipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject, input, LOCALE_ID, ViewEncapsulation } from '@angular/core';\nimport { PortalDirective } from '@lucca-front/ng/core';\nimport { LuUserPictureModule } from '@lucca-front/ng/user';\nimport { COMMENT_BLOCK_INSTANCE } from '../token';\n\n@Component({\n\tselector: 'lu-comment',\n\timports: [PortalDirective, DatePipe, LuUserPictureModule, NgTemplateOutlet],\n\ttemplateUrl: './comment.component.html',\n\tstyleUrl: './comment.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'commentWrapper-item',\n\t},\n})\nexport class CommentComponent {\n\t#locale = inject(LOCALE_ID);\n\t#intlDateTimeFormat = new Intl.DateTimeFormat(this.#locale, {\n\t\tweekday: 'long',\n\t\tyear: 'numeric',\n\t\tmonth: 'short',\n\t\tday: 'numeric',\n\t\thour: 'numeric',\n\t\tminute: 'numeric',\n\t});\n\n\t#parentBlock = inject(COMMENT_BLOCK_INSTANCE);\n\n\tnoAvatar = computed(() => this.#parentBlock.noAvatar());\n\n\tavatar = computed(() => this.#parentBlock.avatar());\n\n\tauthorName = computed(() => this.#parentBlock.authorName());\n\n\tsize = computed(() => this.#parentBlock.size());\n\n\tdate = input<Date>();\n\n\t/**\n\t * format given to the date pipe for display.\n\t *\n\t * See https://angular.dev/api/common/DatePipe#custom-format-options\n\t */\n\tdatePipeFormat = input<string | undefined>(undefined);\n\n\tcontent = input<string>();\n\n\tcontentIsHTML = computed(() => {\n\t\treturn /<\\/?[a-z][\\s\\S]*>/i.test(this.content());\n\t});\n\n\tdateDisplay = computed(() => {\n\t\tconst formatted = this.#intlDateTimeFormat.format(this.date());\n\t\treturn `${formatted[0].toUpperCase()}${formatted.slice(1)}`;\n\t});\n\n\trole = computed(() => {\n\t\treturn this.#parentBlock.isSingleComment() ? null : 'listitem';\n\t});\n\n\t@HostBinding('attr.role')\n\tget roleAttr(): string {\n\t\treturn this.role();\n\t}\n}\n","<div class=\"comment\" [class.mod-noAvatar]=\"noAvatar()\" [class.mod-S]=\"size() === 'S'\">\n\t<div class=\"comment-infos\">\n\t\t@if (!noAvatar()) {\n\t\t\t<div class=\"pr-u-displayContents\" aria-hidden=\"true\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"avatar()\" />\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"comment-infos-content\">\n\t\t\t<span class=\"comment-infos-name\"><ng-container *luPortal=\"authorName()\" /></span>&ngsp;\n\t\t\t<time class=\"comment-infos-date\" [attr.datetime]=\"date().toISOString()\">\n\t\t\t\t@if (datePipeFormat()) {\n\t\t\t\t\t{{ date() | date: datePipeFormat() }}\n\t\t\t\t} @else if (dateDisplay()) {\n\t\t\t\t\t<ng-container *luPortal=\"dateDisplay()\" />\n\t\t\t\t} @else {\n\t\t\t\t\t{{ date() | date }}\n\t\t\t\t}\n\t\t\t</time>\n\t\t</div>\n\t</div>\n\t<blockquote class=\"comment-content\">\n\t\t@if (contentIsHTML()) {\n\t\t\t<div class=\"comment-content-textContainerOptional\" [innerHTML]=\"content()\"></div>\n\t\t} @else {\n\t\t\t<p class=\"comment-content-text\" [innerHTML]=\"content()\"></p>\n\t\t}\n\t</blockquote>\n</div>\n\n<ng-template #contentTpl>\n\t<ng-content />\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, forwardRef, inject, input, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { PortalContent } from '@lucca-front/ng/core';\nimport { CommentComponent } from '../comment/comment.component';\nimport { COMMENT_BLOCK_INSTANCE, COMMENT_CHAT_INSTANCE } from '../token';\n\n@Component({\n\tselector: 'lu-comment-block',\n\timports: [NgTemplateOutlet],\n\ttemplateUrl: './comment-block.component.html',\n\thost: {\n\t\t'[attr.role]': 'role()',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: COMMENT_BLOCK_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => CommentBlockComponent),\n\t\t},\n\t],\n})\nexport class CommentBlockComponent {\n\t#chatBlock = inject(COMMENT_CHAT_INSTANCE, { optional: true });\n\n\treadonly comments = contentChildren(CommentComponent, { read: CommentComponent, descendants: true });\n\n\treadonly compact = input(false, { transform: booleanAttribute });\n\n\treadonly small = input(false, { transform: booleanAttribute });\n\n\treadonly chatAnswer = input(false, { transform: booleanAttribute });\n\n\treadonly authorName = input<PortalContent>();\n\n\treadonly avatar = input<TemplateRef<unknown>>();\n\n\treadonly size = input<'S' | 'M'>();\n\n\treadonly noAvatar = computed(() => !this.avatar());\n\treadonly isSingleComment = computed(() => this.comments().length === 1);\n\treadonly role = computed(() => (this.#chatBlock ? 'listitem' : null));\n}\n","<ng-template #content><ng-content /></ng-template>\n\n@if (isSingleComment()) {\n\t<div class=\"commentWrapper\" [class.mod-S]=\"small()\" [class.mod-compact]=\"compact()\" [class.mod-chatAnswer]=\"chatAnswer()\">\n\t\t<ng-container *ngTemplateOutlet=\"content\" />\n\t</div>\n} @else {\n\t<ol class=\"commentWrapper\" [class.mod-S]=\"small()\" [class.mod-compact]=\"compact()\" [class.mod-chatAnswer]=\"chatAnswer()\">\n\t\t<ng-container *ngTemplateOutlet=\"content\" />\n\t</ol>\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { COMMENT_CHAT_INSTANCE } from '../token';\n\n@Component({\n\tselector: 'lu-comment-chat',\n\timports: [],\n\ttemplateUrl: './comment-chat.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\n\tproviders: [\n\t\t{\n\t\t\tprovide: COMMENT_CHAT_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => CommentChatComponent),\n\t\t},\n\t],\n})\nexport class CommentChatComponent {}\n","<ol class=\"commentWrapperChat\">\n\t<ng-content />\n</ol>\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":"lucca-front-ng-comment.mjs","sources":["../../../packages/ng/comment/token.ts","../../../packages/ng/comment/comment/comment.component.ts","../../../packages/ng/comment/comment/comment.component.html","../../../packages/ng/comment/comment-block/comment-block.component.ts","../../../packages/ng/comment/comment-block/comment-block.component.html","../../../packages/ng/comment/comment-chat/comment-chat.component.ts","../../../packages/ng/comment/comment-chat/comment-chat.component.html","../../../packages/ng/comment/lucca-front-ng-comment.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { CommentBlockComponent } from './comment-block/comment-block.component';\nimport { CommentChatComponent } from './comment-chat/comment-chat.component';\n\nexport const COMMENT_BLOCK_INSTANCE = new InjectionToken<CommentBlockComponent>('COMMENT_BLOCK_INSTANCE');\nexport const COMMENT_CHAT_INSTANCE = new InjectionToken<CommentChatComponent>('COMMENT_CHAT_INSTANCE');\n","import { DatePipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject, input, LOCALE_ID, ViewEncapsulation } from '@angular/core';\nimport { PortalDirective } from '@lucca-front/ng/core';\nimport { LuUserPictureModule } from '@lucca-front/ng/user';\nimport { COMMENT_BLOCK_INSTANCE } from '../token';\n\n@Component({\n\tselector: 'lu-comment',\n\timports: [PortalDirective, DatePipe, LuUserPictureModule, NgTemplateOutlet],\n\ttemplateUrl: './comment.component.html',\n\tstyleUrl: './comment.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'commentWrapper-item',\n\t},\n})\nexport class CommentComponent {\n\t#locale = inject(LOCALE_ID);\n\t#intlDateTimeFormat = new Intl.DateTimeFormat(this.#locale, {\n\t\tweekday: 'long',\n\t\tyear: 'numeric',\n\t\tmonth: 'short',\n\t\tday: 'numeric',\n\t\thour: 'numeric',\n\t\tminute: 'numeric',\n\t});\n\n\t#parentBlock = inject(COMMENT_BLOCK_INSTANCE);\n\n\tnoAvatar = computed(() => this.#parentBlock.noAvatar());\n\n\tavatar = computed(() => this.#parentBlock.avatar());\n\n\tauthorName = computed(() => this.#parentBlock.authorName());\n\n\tsize = computed(() => this.#parentBlock.size());\n\n\tdate = input<Date>();\n\n\t/**\n\t * format given to the date pipe for display.\n\t *\n\t * See https://angular.dev/api/common/DatePipe#custom-format-options\n\t */\n\tdatePipeFormat = input<string | undefined>(undefined);\n\n\tcontent = input<string>();\n\n\tcontentIsHTML = computed(() => {\n\t\treturn /<\\/?[a-z][\\s\\S]*>/i.test(this.content());\n\t});\n\n\tdateDisplay = computed(() => {\n\t\tconst formatted = this.#intlDateTimeFormat.format(this.date());\n\t\treturn `${formatted[0].toUpperCase()}${formatted.slice(1)}`;\n\t});\n\n\trole = computed(() => {\n\t\treturn this.#parentBlock.isSingleComment() ? null : 'listitem';\n\t});\n\n\t@HostBinding('attr.role')\n\tget roleAttr(): string {\n\t\treturn this.role();\n\t}\n}\n","<div class=\"comment\" [class.mod-noAvatar]=\"noAvatar()\" [class.mod-S]=\"size() === 'S'\">\n\t<div class=\"comment-infos\">\n\t\t@if (!noAvatar()) {\n\t\t\t<div class=\"pr-u-displayContents\" aria-hidden=\"true\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"avatar()\" />\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"comment-infos-content\">\n\t\t\t<span class=\"comment-infos-name\"><ng-container *luPortal=\"authorName()\" /></span>&ngsp;\n\t\t\t<time class=\"comment-infos-date\" [attr.datetime]=\"date().toISOString()\">\n\t\t\t\t@if (datePipeFormat()) {\n\t\t\t\t\t{{ date() | date: datePipeFormat() }}\n\t\t\t\t} @else if (dateDisplay()) {\n\t\t\t\t\t<ng-container *luPortal=\"dateDisplay()\" />\n\t\t\t\t} @else {\n\t\t\t\t\t{{ date() | date }}\n\t\t\t\t}\n\t\t\t</time>\n\t\t</div>\n\t</div>\n\t<blockquote class=\"comment-content\">\n\t\t@if (contentIsHTML()) {\n\t\t\t<div class=\"comment-content-textContainerOptional\" [innerHTML]=\"content()\"></div>\n\t\t} @else {\n\t\t\t<p class=\"comment-content-text\" [innerHTML]=\"content()\"></p>\n\t\t}\n\t</blockquote>\n</div>\n\n<ng-template #contentTpl>\n\t<ng-content />\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, forwardRef, inject, input, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { PortalContent } from '@lucca-front/ng/core';\nimport { CommentComponent } from '../comment/comment.component';\nimport { COMMENT_BLOCK_INSTANCE, COMMENT_CHAT_INSTANCE } from '../token';\n\n@Component({\n\tselector: 'lu-comment-block',\n\timports: [NgTemplateOutlet],\n\ttemplateUrl: './comment-block.component.html',\n\thost: {\n\t\t'[attr.role]': 'role',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: COMMENT_BLOCK_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => CommentBlockComponent),\n\t\t},\n\t],\n})\nexport class CommentBlockComponent {\n\t#chatBlock = inject(COMMENT_CHAT_INSTANCE, { optional: true });\n\n\treadonly comments = contentChildren(CommentComponent, { read: CommentComponent, descendants: true });\n\n\treadonly compact = input(false, { transform: booleanAttribute });\n\n\treadonly small = input(false, { transform: booleanAttribute });\n\n\treadonly chatAnswer = input(false, { transform: booleanAttribute });\n\n\treadonly authorName = input<PortalContent>();\n\n\treadonly avatar = input<TemplateRef<unknown>>();\n\n\treadonly size = input<'S' | 'M'>();\n\n\treadonly noAvatar = computed(() => !this.avatar());\n\treadonly isSingleComment = computed(() => this.comments().length === 1);\n\treadonly role = this.#chatBlock ? 'listitem' : null;\n}\n","<ng-template #content><ng-content /></ng-template>\n\n@if (isSingleComment()) {\n\t<div class=\"commentWrapper\" [class.mod-S]=\"small()\" [class.mod-compact]=\"compact()\" [class.mod-chatAnswer]=\"chatAnswer()\">\n\t\t<ng-container *ngTemplateOutlet=\"content\" />\n\t</div>\n} @else {\n\t<ol class=\"commentWrapper\" [class.mod-S]=\"small()\" [class.mod-compact]=\"compact()\" [class.mod-chatAnswer]=\"chatAnswer()\">\n\t\t<ng-container *ngTemplateOutlet=\"content\" />\n\t</ol>\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { COMMENT_CHAT_INSTANCE } from '../token';\n\n@Component({\n\tselector: 'lu-comment-chat',\n\timports: [],\n\ttemplateUrl: './comment-chat.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\n\tproviders: [\n\t\t{\n\t\t\tprovide: COMMENT_CHAT_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => CommentChatComponent),\n\t\t},\n\t],\n})\nexport class CommentChatComponent {}\n","<ol class=\"commentWrapperChat\">\n\t<ng-content />\n</ol>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -396,6 +396,8 @@ function generateId() {
|
|
|
396
396
|
|
|
397
397
|
const isNil = (value) => typeof value === 'undefined' || value === null;
|
|
398
398
|
const isNotNil = (value) => !isNil(value);
|
|
399
|
+
const isNilOrEmptyString = (str) => isNil(str) || str === '';
|
|
400
|
+
const isNotNilOrEmptyString = (str) => !isNilOrEmptyString(str);
|
|
399
401
|
|
|
400
402
|
const PORTAL_CONTEXT = new InjectionToken('PORTAL_CONTEXT');
|
|
401
403
|
|
|
@@ -635,5 +637,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
635
637
|
* Generated bundle index. Do not edit.
|
|
636
638
|
*/
|
|
637
639
|
|
|
638
|
-
export { ALuDateAdapter, ALuOnCloseSubscriber, ALuOnOpenSubscriber, ALuOnScrollBottomSubscriber, ELuDateGranularity, IntlParamsPipe, LU_NATIVE_DATE_ADAPTER_OPTIONS, LuClass, LuNativeDateAdapter, LuStringDateAdapter, PORTAL_CONTEXT, PortalDirective, generateId, getIntl, isNil, isNotNil, luDefaultNativeDateAdapterOptions, ɵeffectWithDeps };
|
|
640
|
+
export { ALuDateAdapter, ALuOnCloseSubscriber, ALuOnOpenSubscriber, ALuOnScrollBottomSubscriber, ELuDateGranularity, IntlParamsPipe, LU_NATIVE_DATE_ADAPTER_OPTIONS, LuClass, LuNativeDateAdapter, LuStringDateAdapter, PORTAL_CONTEXT, PortalDirective, generateId, getIntl, isNil, isNilOrEmptyString, isNotNil, isNotNilOrEmptyString, luDefaultNativeDateAdapterOptions, ɵeffectWithDeps };
|
|
639
641
|
//# sourceMappingURL=lucca-front-ng-core.mjs.map
|