@lucca-front/ng 19.3.3-rc.4 → 19.3.3-rc.7

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.
@@ -1,5 +1,5 @@
1
- import { Observable } from 'rxjs';
2
1
  import { DialogRef } from '@angular/cdk/dialog';
2
+ import { Observable, Subscription } from 'rxjs';
3
3
  import { LuDialogConfig, LuDialogResult } from './dialog-config';
4
4
  export declare const DISMISSED_VALUE: {};
5
5
  export declare class LuDialogRef<C = unknown> {
@@ -9,6 +9,11 @@ export declare class LuDialogRef<C = unknown> {
9
9
  * Instance of the component that's inside the dialog
10
10
  */
11
11
  get instance(): C;
12
+ /**
13
+ * Subscription to the detachments of the dialog
14
+ * This is used to close the dialog when it is detached
15
+ */
16
+ detachSubscription: Subscription | null;
12
17
  /**
13
18
  * Emits when the dialog is closed
14
19
  *
@@ -5,7 +5,7 @@ import { ButtonComponent } from '@lucca-front/ng/button';
5
5
  import { getIntl } from '@lucca-front/ng/core';
6
6
  import { IconComponent } from '@lucca-front/ng/icon';
7
7
  import { isObservable, of, take, merge, firstValueFrom, from, combineLatest, map as map$1, concat } from 'rxjs';
8
- import { map, filter, switchMap, takeUntil } from 'rxjs/operators';
8
+ import { map, filter, takeUntil, switchMap } from 'rxjs/operators';
9
9
  import { DIALOG_DATA, Dialog, DialogModule } from '@angular/cdk/dialog';
10
10
  import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
11
  import { Router, ActivatedRoute } from '@angular/router';
@@ -53,6 +53,11 @@ class LuDialogRef {
53
53
  constructor(cdkRef, config) {
54
54
  this.cdkRef = cdkRef;
55
55
  this.config = config;
56
+ /**
57
+ * Subscription to the detachments of the dialog
58
+ * This is used to close the dialog when it is detached
59
+ */
60
+ this.detachSubscription = null;
56
61
  /**
57
62
  * Emits when the dialog is closed
58
63
  *
@@ -67,6 +72,12 @@ class LuDialogRef {
67
72
  * Emits the result if it has a value that's not DISMISSED_VALUE
68
73
  */
69
74
  this.result$ = this.cdkRef.closed.pipe(filter((res) => !isDismissed(res)));
75
+ this.detachSubscription = cdkRef.overlayRef
76
+ .detachments()
77
+ .pipe(takeUntil(this.closed$))
78
+ .subscribe(() => {
79
+ cdkRef.close(DISMISSED_VALUE);
80
+ });
70
81
  }
71
82
  dismiss() {
72
83
  // If we can't dismiss this dialog box, just ignore the dismiss call.
@@ -77,11 +88,13 @@ class LuDialogRef {
77
88
  const canClose$ = isObservable(canClose) ? canClose : of(canClose);
78
89
  canClose$.pipe(take(1)).subscribe((close) => {
79
90
  if (close) {
91
+ this.detachSubscription?.unsubscribe();
80
92
  this.cdkRef.close(DISMISSED_VALUE);
81
93
  }
82
94
  });
83
95
  }
84
96
  close(res) {
97
+ this.detachSubscription?.unsubscribe();
85
98
  this.cdkRef.close(res);
86
99
  }
87
100
  }
@@ -222,16 +235,11 @@ class LuDialogService {
222
235
  }), takeUntil(luDialogRef.closed$))
223
236
  .subscribe((canClose) => {
224
237
  if (canClose) {
238
+ luDialogRef.detachSubscription?.unsubscribe();
225
239
  cdkRef.close(DISMISSED_VALUE);
226
240
  }
227
241
  });
228
242
  }
229
- cdkRef.overlayRef
230
- .detachments()
231
- .pipe(takeUntil(luDialogRef.closed$))
232
- .subscribe(() => {
233
- cdkRef.close(DISMISSED_VALUE);
234
- });
235
243
  return luDialogRef;
236
244
  }
237
245
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: LuDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-dialog.mjs","sources":["../../../packages/ng/dialog/dialog-content/dialog-content.component.ts","../../../packages/ng/dialog/dialog-footer/dialog-footer.component.ts","../../../packages/ng/dialog/model/dialog-ref.ts","../../../packages/ng/dialog/model/dialog-config.ts","../../../packages/ng/dialog/model/injectors.ts","../../../packages/ng/dialog/dialog-header/translations.ts","../../../packages/ng/dialog/dialog-header/dialog-header.translate.ts","../../../packages/ng/dialog/dialog-header/dialog-header.component.ts","../../../packages/ng/dialog/dialog-header/dialog-header.component.html","../../../packages/ng/dialog/dialog.service.ts","../../../packages/ng/dialog/dialog.providers.ts","../../../packages/ng/dialog/dialog/dialog.component.ts","../../../packages/ng/dialog/directives/dialog-close.directive.ts","../../../packages/ng/dialog/directives/dialog-dismiss.directive.ts","../../../packages/ng/dialog/directives/dialog-open.directive.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.utils.ts","../../../packages/ng/dialog/dialog-routing/outlet-component-instance.directive.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.component.ts","../../../packages/ng/dialog/lucca-front-ng-dialog.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-dialog-content',\n\tstandalone: true,\n\ttemplate: '<ng-content></ng-content>',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'dialog-inside-content',\n\t},\n})\nexport class DialogContentComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-dialog-footer',\n\tstandalone: true,\n\ttemplate: `<ng-content />`,\n\tstyleUrl: './dialog-footer.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'dialog-inside-footer footer',\n\t},\n})\nexport class DialogFooterComponent {}\n","import { isObservable, Observable, of, take } from 'rxjs';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { LuDialogConfig, LuDialogResult } from './dialog-config';\nimport { filter, map } from 'rxjs/operators';\n\nexport const DISMISSED_VALUE = {} as const;\n\nfunction isDismissed(v: unknown): v is typeof DISMISSED_VALUE {\n\treturn v === DISMISSED_VALUE;\n}\n\nexport class LuDialogRef<C = unknown> {\n\t/**\n\t * Instance of the component that's inside the dialog\n\t */\n\tget instance(): C {\n\t\treturn this.cdkRef.componentInstance;\n\t}\n\n\t/**\n\t * Emits when the dialog is closed\n\t *\n\t * Emits either the output of result$ or undefined depending on how it has been closed\n\t */\n\tclosed$: Observable<LuDialogResult<C> | undefined> = this.cdkRef.closed.pipe(map((res): LuDialogResult<C> | undefined => (isDismissed(res) ? undefined : res)));\n\n\t/**\n\t * Emits void when the dialog is dismissed\n\t */\n\tdismissed$: Observable<void> = this.cdkRef.closed.pipe(\n\t\tfilter((res) => res === DISMISSED_VALUE),\n\t\tmap((): void => undefined),\n\t);\n\n\t/**\n\t * Emits the result if it has a value that's not DISMISSED_VALUE\n\t */\n\tresult$: Observable<LuDialogResult<C>> = this.cdkRef.closed.pipe(filter((res): res is LuDialogResult<C> => !isDismissed(res)));\n\n\tconstructor(\n\t\tpublic readonly cdkRef: DialogRef<LuDialogResult<C> | typeof DISMISSED_VALUE, C>,\n\t\tpublic readonly config: LuDialogConfig<C>,\n\t) {}\n\n\tdismiss(): void {\n\t\t// If we can't dismiss this dialog box, just ignore the dismiss call.\n\t\tif (this.config.alert) {\n\t\t\treturn;\n\t\t}\n\t\tconst canClose = this.config.canClose?.(this.instance) ?? true;\n\t\tconst canClose$ = isObservable(canClose) ? canClose : of(canClose);\n\t\tcanClose$.pipe(take(1)).subscribe((close) => {\n\t\t\tif (close) {\n\t\t\t\tthis.cdkRef.close(DISMISSED_VALUE);\n\t\t\t}\n\t\t});\n\t}\n\n\tclose(res: LuDialogResult<C>): void {\n\t\tthis.cdkRef.close(res);\n\t}\n}\n\nexport type LuDialogSelfRef<R> = { dismiss(): void; close(res: R): void };\n","import { AutoFocusTarget, DialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/overlay';\nimport { TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nconst ɵdialogData = Symbol.for('luDialogData');\nconst ɵdialogResult = Symbol.for('luDialogResult');\n\nexport type ɵDialogDataFlag = { [ɵdialogData]: unknown };\nexport type ɵDialogResultFlag<R> = { [ɵdialogResult]: R };\n\nexport type LuDialogData<T> = {\n\t[K in keyof T]: T[K] extends ɵDialogDataFlag ? Omit<T[K], typeof ɵdialogData> : never;\n}[keyof T];\n\ntype DialogRefProps<C> = { [K in keyof C]: C[K] extends ɵDialogResultFlag<unknown> ? K : never }[keyof C] & keyof C;\nexport type LuDialogResult<C> = DialogRefProps<C> extends never ? void : C[DialogRefProps<C>] extends ɵDialogResultFlag<infer T> ? T : void;\n\ninterface BaseLuDialogConfig<C> {\n\t/**\n\t * The component or template to put inside the dialog container\n\t */\n\tcontent: ComponentType<C> | TemplateRef<C>;\n\n\t/**\n\t * Data to pass to the component, will be required if the component used `injectDialogData` in a field, specifying the data that's needed.\n\t */\n\tdata: LuDialogData<C>;\n\n\t/**\n\t * Should we put a backdrop? Defaults to true\n\t */\n\tmodal?: boolean;\n\n\t/**\n\t * Is this dialog a blocking popup that cannot be dismissed ?\n\t *\n\t * Defaults to false, setting this to true will also remove the close button in the header\n\t * if you're using `lu-dialog-header`.\n\t */\n\talert?: boolean;\n\n\t/**\n\t * Can be used if you don't have a header or aren't using the default one, to set an aria-label\n\t * instead of aria-labelledby on the dialog container\n\t */\n\tariaLabel?: string;\n\n\t/**\n\t * Autofocus target\n\t *\n\t * Defaults to the close button from the header, first-input is added by us to focus the first available input\n\t * or the first input that is contained inside a node that has the `.luDialog-autofocus` class\n\t */\n\tautoFocus?: AutoFocusTarget | 'first-input' | string;\n\n\t/**\n\t * This provides a way to override any of the configuration parameters expected by cdk's `Dialog.open` method.\n\t *\n\t * WARNING: this will take full authority and override with your values no matter what's computed by LuDialogService,\n\t * use with caution.\n\t */\n\tcdkConfigOverride?: DialogConfig<C>;\n\n\t/**\n\t * A hook function to determine if the current dialog can be closed or not, if provided.\n\t *\n\t * @param comp the instance of the component that's inside the dialog box.\n\t */\n\tcanClose?: (comp: C) => boolean | Observable<boolean>;\n\n\t/**\n\t * Determine if the current dialog can be close by a click on backdrop or escape key\n\t */\n\tcanCloseWithBackdrop?: boolean;\n\n\t/**\n\t * The size of the panel used for the dialog\n\t */\n\tsize?: 'XS' | 'S' | 'M' | 'L' | 'XL' | 'fitContent' | `maxContent` | 'fullScreen';\n\n\t/**\n\t * Should it be a modal (default), a drawer? a drawer from bottom?\n\t */\n\tmode?: 'default' | 'drawer' | 'drawer-from-bottom';\n\n\t/**\n\t * Classes to add to the panel\n\t */\n\tpanelClasses?: string[];\n}\n\nexport type LuDialogConfig<T> = LuDialogData<T> extends never ? Omit<BaseLuDialogConfig<T>, 'data'> : BaseLuDialogConfig<T>;\n","import { LuDialogRef, LuDialogSelfRef } from './dialog-ref';\nimport { ɵDialogDataFlag, ɵDialogResultFlag } from './dialog-config';\nimport { inject } from '@angular/core';\nimport { DIALOG_DATA } from '@angular/cdk/dialog';\n\nexport function injectDialogData<TData>(): TData & ɵDialogDataFlag {\n\treturn inject<TData & ɵDialogDataFlag>(DIALOG_DATA);\n}\n\nexport function injectDialogRef<R = void>(): LuDialogSelfRef<R> & ɵDialogResultFlag<R> {\n\treturn inject<LuDialogSelfRef<R>>(LuDialogRef) as LuDialogSelfRef<R> & ɵDialogResultFlag<R>;\n}\n","export const Translations = {\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DIALOG_HEADER_TRANSLATIONS = new InjectionToken('LuDialogHeaderTranslations', {\n\tfactory: () => luDialogHeaderTranslations,\n});\n\nexport interface LuDialogHeaderTranslations {\n\tclose: string;\n}\n\nexport const luDialogHeaderTranslations: LuTranslation<LuDialogHeaderTranslations> = Translations;\n","import { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { LuDialogRef } from '../model';\nimport { LU_DIALOG_HEADER_TRANSLATIONS } from './dialog-header.translate';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-dialog-header',\n\tstandalone: true,\n\timports: [IconComponent, ButtonComponent, NgIf],\n\ttemplateUrl: './dialog-header.component.html',\n\tstyleUrl: './dialog-header.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'dialog-inside-header',\n\t},\n})\nexport class DialogHeaderComponent implements OnInit {\n\t#ref = inject(LuDialogRef);\n\n\tintl = getIntl(LU_DIALOG_HEADER_TRANSLATIONS);\n\n\tdismissible = !this.#ref.config.alert;\n\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t#renderer = inject(Renderer2);\n\n\tclose(): void {\n\t\tthis.#ref.dismiss();\n\t}\n\n\tngOnInit(): void {\n\t\t// Using setTimeout here to make sure this will be handled in the next Cd cycle, not the current one.\n\t\tsetTimeout(() => {\n\t\t\tconst header = this.#elementRef.nativeElement.querySelector('h1');\n\t\t\tconst id = header?.id || `lu-dialog-header-${nextId++}`;\n\t\t\tif (header) {\n\t\t\t\tthis.#renderer.setAttribute(header, 'id', id);\n\t\t\t\tthis.#renderer.addClass(header, 'dialog-inside-header-container-title');\n\t\t\t}\n\t\t\t(this.#ref.cdkRef.containerInstance as CdkDialogContainer)?._addAriaLabelledBy(id);\n\t\t});\n\t}\n}\n","<button class=\"dialog-inside-header-button button\" type=\"button\" (click)=\"close()\" *ngIf=\"dismissible\">\n\t<lu-icon icon=\"signClose\" [alt]=\"intl.close\" />\n</button>\n\n<div class=\"dialog-inside-header-container\">\n\t<ng-content></ng-content>\n</div>\n","import { Dialog, DialogRef } from '@angular/cdk/dialog';\nimport { inject, Injectable, Injector, Renderer2 } from '@angular/core';\nimport { isObservable, merge, of, take } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\nimport { LuDialogConfig, LuDialogRef, LuDialogResult } from './model';\nimport { DISMISSED_VALUE } from './model/dialog-ref';\n\n@Injectable()\nexport class LuDialogService {\n\t#cdkDialog = inject(Dialog);\n\n\t#injector = inject(Injector);\n\n\topen<C>(config: LuDialogConfig<C>): LuDialogRef<C> {\n\t\tlet luDialogRef: LuDialogRef<C>;\n\t\tlet modeClasses: string[] = [];\n\t\tswitch (config.mode) {\n\t\t\tcase 'drawer':\n\t\t\t\tmodeClasses = ['mod-drawer'];\n\t\t\t\tbreak;\n\t\t\tcase 'drawer-from-bottom':\n\t\t\t\tmodeClasses = ['mod-drawer', 'mod-fromBottom'];\n\t\t\t\tbreak;\n\t\t}\n\t\tconst cdkRef = this.#cdkDialog.open(config.content, {\n\t\t\tariaModal: config.modal ?? true,\n\t\t\thasBackdrop: config.modal ?? true,\n\t\t\tdata: 'data' in config ? config.data : null,\n\t\t\tdisableClose: true,\n\t\t\tcloseOnDestroy: true,\n\t\t\trole: config.alert ? 'alertdialog' : 'dialog',\n\t\t\trestoreFocus: true,\n\t\t\tbackdropClass: 'dialog_backdrop',\n\t\t\tpanelClass: ['dialog', `mod-${config.size || 'M'}`, ...modeClasses, ...(config.panelClasses || [])],\n\t\t\tariaLabel: config.ariaLabel,\n\t\t\t// Handle manually\n\t\t\tcloseOnOverlayDetachments: false,\n\t\t\t// If focus is first-input, focus dialog and let the component do the rest\n\t\t\t// Else, just set it to config value or default to first-tabbable\n\t\t\tautoFocus: config.autoFocus === 'first-input' ? 'dialog' : (config.autoFocus ?? 'first-tabbable'),\n\t\t\ttemplateContext: () => ({ dialogRef: luDialogRef }),\n\t\t\tinjector: this.#injector,\n\t\t\tproviders: (ref: DialogRef<LuDialogResult<C>, C>) => {\n\t\t\t\tluDialogRef = new LuDialogRef(ref, config);\n\t\t\t\treturn [\n\t\t\t\t\t{\n\t\t\t\t\t\tprovide: LuDialogRef,\n\t\t\t\t\t\tuseValue: luDialogRef,\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t},\n\t\t\t...(config.cdkConfigOverride || {}),\n\t\t});\n\n\t\tif (cdkRef.componentRef) {\n\t\t\tconst renderer = cdkRef.componentRef.injector.get(Renderer2);\n\t\t\trenderer.setStyle(cdkRef.componentRef.location.nativeElement, 'display', 'contents');\n\t\t}\n\n\t\tif (!config.alert) {\n\t\t\t// Setup close listeners on backdrop click and escape key by ourselves so we can hook the `canClose` method to it.\n\t\t\tmerge(cdkRef.backdropClick, cdkRef.keydownEvents.pipe(filter((e) => e.key === 'Escape' && !e.defaultPrevented)))\n\t\t\t\t.pipe(\n\t\t\t\t\tfilter(() => config.canCloseWithBackdrop ?? true),\n\t\t\t\t\tswitchMap(() => {\n\t\t\t\t\t\tconst canClose = config.canClose?.(cdkRef.componentInstance) ?? true;\n\t\t\t\t\t\tconst canClose$ = isObservable(canClose) ? canClose : of(canClose);\n\t\t\t\t\t\treturn canClose$.pipe(take(1));\n\t\t\t\t\t}),\n\t\t\t\t\ttakeUntil(luDialogRef.closed$),\n\t\t\t\t)\n\t\t\t\t.subscribe((canClose) => {\n\t\t\t\t\tif (canClose) {\n\t\t\t\t\t\tcdkRef.close(DISMISSED_VALUE);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tcdkRef.overlayRef\n\t\t\t.detachments()\n\t\t\t.pipe(takeUntil(luDialogRef.closed$))\n\t\t\t.subscribe(() => {\n\t\t\t\tcdkRef.close(DISMISSED_VALUE);\n\t\t\t});\n\n\t\treturn luDialogRef;\n\t}\n}\n","import { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { LuDialogService } from './dialog.service';\n\nexport function configureLuDialog(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([importProvidersFrom(DialogModule)]);\n}\n\nexport function provideLuDialog(): Provider {\n\treturn LuDialogService;\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, inject, ViewEncapsulation } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Component({\n\tselector: 'lu-dialog',\n\tstandalone: true,\n\ttemplate: '<ng-content></ng-content>',\n\tstyleUrl: './dialog.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'dialog-inside',\n\t},\n})\nexport class DialogComponent implements AfterViewInit {\n\tpublic readonly dialogRef = inject<LuDialogRef>(LuDialogRef);\n\n\t#htmlElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n\tclose(): void {\n\t\tthis.dialogRef.close();\n\t}\n\n\tdismiss(): void {\n\t\tthis.dialogRef.dismiss();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (this.dialogRef.config.autoFocus === 'first-input' && !this.dialogRef.config.cdkConfigOverride?.autoFocus) {\n\t\t\tconst focusable: HTMLElement =\n\t\t\t\tthis.#htmlElement.querySelector('.luDialog-autofocus .luNativeInput') || this.#htmlElement.querySelector('.luDialog-autofocus') || this.#htmlElement.querySelector('.luNativeInput');\n\t\t\tfocusable?.focus();\n\t\t}\n\t}\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Directive({\n\tselector: '[luDialogClose]',\n\tstandalone: true,\n})\nexport class DialogCloseDirective {\n\t#ref = inject<LuDialogRef>(LuDialogRef);\n\n\t@HostListener('click')\n\tclose(): void {\n\t\tthis.#ref.close();\n\t}\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Directive({\n\tselector: '[luDialogDismiss]',\n\tstandalone: true,\n})\nexport class DialogDismissDirective {\n\t#ref = inject<LuDialogRef>(LuDialogRef);\n\n\t@HostListener('click')\n\tclose(): void {\n\t\tthis.#ref.dismiss();\n\t}\n}\n","import { Directive, HostListener, inject, Input, TemplateRef } from '@angular/core';\nimport { LuDialogService } from '../dialog.service';\nimport { LuDialogConfig } from '../model';\nimport { provideLuDialog } from '../dialog.providers';\n\n@Directive({\n\tselector: '[luDialogOpen]',\n\tstandalone: true,\n\tproviders: [provideLuDialog()],\n})\nexport class DialogOpenDirective {\n\t#dialogService = inject(LuDialogService);\n\n\t@Input({\n\t\trequired: true,\n\t\talias: 'luDialogOpen',\n\t})\n\tdialog: TemplateRef<void>;\n\n\t@Input()\n\tluDialogConfig: LuDialogConfig<unknown>;\n\n\t@HostListener('click')\n\tclick(): void {\n\t\tthis.#dialogService.open({\n\t\t\t...this.luDialogConfig,\n\t\t\tcontent: this.dialog,\n\t\t});\n\t}\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken } from '@angular/core';\nimport { Route } from '@angular/router';\nimport { Observable, firstValueFrom, from, isObservable, of } from 'rxjs';\nimport { LuDialogConfig, LuDialogData } from '../model';\nimport { DialogRoutingComponent } from './dialog-routing.component';\nimport { DialogRouteConfig } from './dialog-routing.models';\n\nexport type Deferrable<T> = Promise<T> | Observable<T> | T;\n\nexport async function deferrableToPromise<T>(deferrable: Promise<T> | Observable<T> | T): Promise<T> {\n\treturn isObservable(deferrable) ? firstValueFrom(deferrable) : deferrable;\n}\n\nexport function deferrableToObservable<T>(deferrable: Promise<T> | Observable<T> | T): Observable<T> {\n\treturn isObservable(deferrable) ? deferrable : deferrable instanceof Promise ? from(deferrable) : of(deferrable);\n}\n\nexport const DIALOG_ROUTE_CONFIG = new InjectionToken<DialogRouteConfig<unknown>>('DIALOG_ROUTE_CONFIG');\n\nexport function createDialogRoute<C>(config: DialogRouteConfig<C>): Route {\n\t// Remove `canDeactivate` from the route config and handle it in the dialog component\n\tconst { canDeactivate, ...rest } = config;\n\treturn {\n\t\t...rest,\n\t\tcomponent: DialogRoutingComponent,\n\t\tproviders: [{ provide: DIALOG_ROUTE_CONFIG, useValue: config }, ...(config.providers ?? [])],\n\t};\n}\n\nexport type DialogFactoryResultOptions<C> = { path: string; dialogRouteConfig?: Partial<Omit<DialogRouteConfig<C>, 'path'>> } & (LuDialogData<C> extends never\n\t? { dataFactory?: never }\n\t: {\n\t\t\tdataFactory: () => Deferrable<LuDialogData<C>>;\n\t\t});\n\nexport type DialogFactoryResult<C> = (options: DialogFactoryResultOptions<C>) => Route;\n\nexport type DialogFactoryConfig<C> = Partial<{\n\tdialogConfig: Omit<LuDialogConfig<C>, 'data' | 'content'>;\n\tdialogRouteConfig: Partial<DialogRouteConfig<C>>;\n}>;\n\nexport function dialogRouteFactory<C>(component: ComponentType<C>, config?: DialogFactoryConfig<C>): DialogFactoryResult<C> {\n\treturn ({ path, dataFactory, dialogRouteConfig }) =>\n\t\tcreateDialogRoute({\n\t\t\tpath,\n\t\t\tdialogConfigFactory: async () => ({\n\t\t\t\t...config?.dialogConfig,\n\t\t\t\tcontent: component,\n\t\t\t\tdata: dataFactory ? await deferrableToPromise(dataFactory()) : undefined,\n\t\t\t}),\n\t\t\t...mergeRouteConfig(config?.dialogRouteConfig, dialogRouteConfig),\n\t\t});\n}\n\nfunction mergeRouteConfig(config1: Partial<Route>, config2: Partial<Route>): Partial<Route> {\n\tif (!config1) {\n\t\treturn config2;\n\t}\n\n\tif (!config2) {\n\t\treturn config1;\n\t}\n\n\tconst result: Partial<Route> = { ...config1, ...config2 };\n\n\t// If both configs have the same key, we merge the arrays\n\tconst mergedArrays = (['providers', 'canActivate', 'children', 'canDeactivate', 'canLoad', 'canActivateChild'] as const satisfies Array<keyof Route>).filter(\n\t\t(key) => key in config1 && key in config2,\n\t);\n\n\tfor (const key of mergedArrays) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tresult[key] = [...(config1[key] ?? []), ...(config2[key] ?? [])];\n\t}\n\n\t// If both configs have the same data key, we merge the objects\n\tif (config1.data && config2.data) {\n\t\tresult.data = { ...config1.data, ...config2.data };\n\t}\n\n\treturn result;\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport { Directive, OnInit, inject, output } from '@angular/core';\n\n@Directive({\n\tselector: '[luOutletComponentInstance]',\n\tstandalone: true,\n})\nexport class OutletComponentInstanceDirective<C> implements OnInit {\n\t// TODO add a generic type to NgComponentOutlet<C> when Angular 19.0 support is dropped\n\t#outlet = inject<NgComponentOutlet>(NgComponentOutlet);\n\n\tinstanceCreated = output<C>();\n\n\tngOnInit(): void {\n\t\t// TODO use this.#outlet.componentInstance when Angular 19.0 support is dropped\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n\t\tconst instance = (this.#outlet as any)._componentRef?.instance ?? null;\n\n\t\tif (instance) {\n\t\t\tthis.instanceCreated.emit(instance as C); // TODO remove cast when Angular 19.0 support is dropped\n\t\t}\n\t}\n}\n","import { DIALOG_DATA } from '@angular/cdk/dialog';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, DestroyRef, inject, Injector, OnInit, runInInjectionContext, signal, TemplateRef, viewChild } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, CanDeactivateFn, GuardResult, Router } from '@angular/router';\nimport { combineLatest, concat, from, map, Observable } from 'rxjs';\nimport { provideLuDialog } from '../dialog.providers';\nimport { LuDialogService } from '../dialog.service';\nimport { LuDialogConfig, LuDialogRef } from '../model';\nimport { DialogRouteConfig } from './dialog-routing.models';\nimport { deferrableToObservable, deferrableToPromise, DIALOG_ROUTE_CONFIG } from './dialog-routing.utils';\nimport { OutletComponentInstanceDirective } from './outlet-component-instance.directive';\n\nexport const defaultOnClosedFn = <C>(router = inject(Router), route = inject(ActivatedRoute), config = inject<DialogRouteConfig<C>>(DIALOG_ROUTE_CONFIG)): void =>\n\tvoid router.navigate(\n\t\t[\n\t\t\tconfig.path\n\t\t\t\t.split('/')\n\t\t\t\t.map(() => '..')\n\t\t\t\t.join('/'),\n\t\t],\n\t\t{\n\t\t\trelativeTo: route,\n\t\t\tqueryParamsHandling: 'preserve',\n\t\t},\n\t);\n\n@Component({\n\tselector: 'lu-dialog-routing',\n\ttemplate: `\n\t\t<ng-template>\n\t\t\t@if (dialogComponentContent(); as componentType) {\n\t\t\t\t<ng-container luOutletComponentInstance [ngComponentOutlet]=\"componentType\" [ngComponentOutletInjector]=\"customInjector\" (instanceCreated)=\"componentInstance.set($event)\" />\n\t\t\t}\n\t\t\t@if (dialogTemplateContent(); as templateRef) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletInjector]=\"customInjector\" />\n\t\t\t}\n\t\t</ng-template>\n\t`,\n\tstandalone: true,\n\timports: [NgComponentOutlet, NgTemplateOutlet, OutletComponentInstanceDirective],\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t`,\n\t],\n\tproviders: [provideLuDialog()],\n})\nexport class DialogRoutingComponent<C> implements OnInit {\n\treadonly #route = inject(ActivatedRoute);\n\treadonly #router = inject(Router);\n\treadonly #destroyRef = inject(DestroyRef);\n\treadonly #dialog = inject(LuDialogService);\n\treadonly injector = inject(Injector);\n\treadonly #config = inject<DialogRouteConfig<C>>(DIALOG_ROUTE_CONFIG);\n\treadonly #dialogConfig = deferrableToPromise(this.#config.dialogConfigFactory());\n\n\treadonly dialogConfig = toSignal(from(this.#dialogConfig), {\n\t\tinitialValue: null,\n\t});\n\treadonly dialogTemplateContent = computed(() => {\n\t\tconst config = this.dialogConfig();\n\t\treturn config && config.content instanceof TemplateRef ? config.content : null;\n\t});\n\treadonly dialogComponentContent = computed(() => {\n\t\tconst config = this.dialogConfig();\n\t\treturn config && !(config.content instanceof TemplateRef) ? config.content : null;\n\t});\n\n\tprotected readonly dialogTemplate = viewChild.required(TemplateRef);\n\n\treadonly customInjector = Injector.create({\n\t\tparent: this.injector,\n\t\tproviders: [\n\t\t\t{\n\t\t\t\tprovide: DIALOG_DATA,\n\t\t\t\tuseFactory: () => {\n\t\t\t\t\tconst config = this.dialogConfig();\n\t\t\t\t\treturn config && 'data' in config ? config.data : null;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tprovide: LuDialogRef,\n\t\t\t\tuseFactory: () => this.#ref,\n\t\t\t},\n\t\t],\n\t});\n\n\treadonly componentInstance = signal<C | null>(null);\n\n\t#ref?: LuDialogRef<C>;\n\n\tngOnInit(): void {\n\t\tvoid this.#openDialog();\n\t}\n\n\tasync #openDialog(): Promise<void> {\n\t\tconst dialogConfig = await this.#dialogConfig;\n\t\tthis.#ref = this.#dialog.open<C>({\n\t\t\t...dialogConfig,\n\t\t\tcontent: this.dialogTemplate(),\n\t\t\tcanClose: this.#getCanCloseFn(dialogConfig),\n\t\t});\n\n\t\tthis.#ref.result$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((result) =>\n\t\t\trunInInjectionContext(this.injector, () => {\n\t\t\t\tif (this.#config.onClosed) {\n\t\t\t\t\tthis.#config.onClosed(result);\n\t\t\t\t} else {\n\t\t\t\t\tdefaultOnClosedFn();\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\tthis.#ref.dismissed$\n\t\t\t.pipe(takeUntilDestroyed(this.#destroyRef))\n\t\t\t.subscribe(() => runInInjectionContext(this.injector, () => (this.#config.onDismissed ? this.#config.onDismissed() : defaultOnClosedFn())));\n\t}\n\n\t#getCanCloseFn(config: LuDialogConfig<C>): ((c: C) => Observable<boolean>) | undefined {\n\t\tconst canCloseFns: ((c: C) => Observable<boolean>)[] = [];\n\n\t\tif (config.canClose) {\n\t\t\tcanCloseFns.push((c: C) => deferrableToObservable(config.canClose(c)));\n\t\t}\n\n\t\tif (this.#config.canDeactivate) {\n\t\t\tcanCloseFns.push(this.#getCanCloseFromGuardDialogFn(this.#config.canDeactivate));\n\t\t}\n\n\t\treturn canCloseFns.length ? (c: C) => combineLatest(canCloseFns.map((fn) => fn(c))).pipe(map((results) => results.every((r) => r))) : undefined;\n\t}\n\n\t#getCanCloseFromGuardDialogFn(canDeactivate: CanDeactivateFn<C>[]): () => Observable<boolean> {\n\t\treturn () => {\n\t\t\tconst results$ = canDeactivate.map((cD) => this.#callCanDeactivateFn(cD));\n\n\t\t\treturn concat(...results$).pipe(\n\t\t\t\tmap((guardResult) => {\n\t\t\t\t\tif (typeof guardResult === 'boolean') {\n\t\t\t\t\t\treturn guardResult;\n\t\t\t\t\t}\n\t\t\t\t\tvoid this.#router.navigate([guardResult]);\n\t\t\t\t\treturn true;\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\t}\n\n\t#callCanDeactivateFn(canDeactivateFn: CanDeactivateFn<C>): Observable<GuardResult> {\n\t\tconst args = [this.componentInstance(), this.#route.snapshot, this.#router.routerState.snapshot, this.#router.routerState.snapshot] as const;\n\t\tconst maybeAsyncResult = runInInjectionContext(this.injector, () => canDeactivateFn(...args));\n\t\treturn deferrableToObservable(maybeAsyncResult);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-dialog.mjs","sources":["../../../packages/ng/dialog/dialog-content/dialog-content.component.ts","../../../packages/ng/dialog/dialog-footer/dialog-footer.component.ts","../../../packages/ng/dialog/model/dialog-ref.ts","../../../packages/ng/dialog/model/dialog-config.ts","../../../packages/ng/dialog/model/injectors.ts","../../../packages/ng/dialog/dialog-header/translations.ts","../../../packages/ng/dialog/dialog-header/dialog-header.translate.ts","../../../packages/ng/dialog/dialog-header/dialog-header.component.ts","../../../packages/ng/dialog/dialog-header/dialog-header.component.html","../../../packages/ng/dialog/dialog.service.ts","../../../packages/ng/dialog/dialog.providers.ts","../../../packages/ng/dialog/dialog/dialog.component.ts","../../../packages/ng/dialog/directives/dialog-close.directive.ts","../../../packages/ng/dialog/directives/dialog-dismiss.directive.ts","../../../packages/ng/dialog/directives/dialog-open.directive.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.utils.ts","../../../packages/ng/dialog/dialog-routing/outlet-component-instance.directive.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.component.ts","../../../packages/ng/dialog/lucca-front-ng-dialog.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-dialog-content',\n\tstandalone: true,\n\ttemplate: '<ng-content></ng-content>',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'dialog-inside-content',\n\t},\n})\nexport class DialogContentComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-dialog-footer',\n\tstandalone: true,\n\ttemplate: `<ng-content />`,\n\tstyleUrl: './dialog-footer.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'dialog-inside-footer footer',\n\t},\n})\nexport class DialogFooterComponent {}\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { isObservable, Observable, of, Subscription, take } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\nimport { LuDialogConfig, LuDialogResult } from './dialog-config';\n\nexport const DISMISSED_VALUE = {} as const;\n\nfunction isDismissed(v: unknown): v is typeof DISMISSED_VALUE {\n\treturn v === DISMISSED_VALUE;\n}\n\nexport class LuDialogRef<C = unknown> {\n\t/**\n\t * Instance of the component that's inside the dialog\n\t */\n\tget instance(): C {\n\t\treturn this.cdkRef.componentInstance;\n\t}\n\n\t/**\n\t * Subscription to the detachments of the dialog\n\t * This is used to close the dialog when it is detached\n\t */\n\tdetachSubscription: Subscription | null = null;\n\n\t/**\n\t * Emits when the dialog is closed\n\t *\n\t * Emits either the output of result$ or undefined depending on how it has been closed\n\t */\n\tclosed$: Observable<LuDialogResult<C> | undefined> = this.cdkRef.closed.pipe(map((res): LuDialogResult<C> | undefined => (isDismissed(res) ? undefined : res)));\n\n\t/**\n\t * Emits void when the dialog is dismissed\n\t */\n\tdismissed$: Observable<void> = this.cdkRef.closed.pipe(\n\t\tfilter((res) => res === DISMISSED_VALUE),\n\t\tmap((): void => undefined),\n\t);\n\n\t/**\n\t * Emits the result if it has a value that's not DISMISSED_VALUE\n\t */\n\tresult$: Observable<LuDialogResult<C>> = this.cdkRef.closed.pipe(filter((res): res is LuDialogResult<C> => !isDismissed(res)));\n\n\tconstructor(\n\t\tpublic readonly cdkRef: DialogRef<LuDialogResult<C> | typeof DISMISSED_VALUE, C>,\n\t\tpublic readonly config: LuDialogConfig<C>,\n\t) {\n\t\tthis.detachSubscription = cdkRef.overlayRef\n\t\t\t.detachments()\n\t\t\t.pipe(takeUntil(this.closed$))\n\t\t\t.subscribe(() => {\n\t\t\t\tcdkRef.close(DISMISSED_VALUE);\n\t\t\t});\n\t}\n\n\tdismiss(): void {\n\t\t// If we can't dismiss this dialog box, just ignore the dismiss call.\n\t\tif (this.config.alert) {\n\t\t\treturn;\n\t\t}\n\t\tconst canClose = this.config.canClose?.(this.instance) ?? true;\n\t\tconst canClose$ = isObservable(canClose) ? canClose : of(canClose);\n\t\tcanClose$.pipe(take(1)).subscribe((close) => {\n\t\t\tif (close) {\n\t\t\t\tthis.detachSubscription?.unsubscribe();\n\t\t\t\tthis.cdkRef.close(DISMISSED_VALUE);\n\t\t\t}\n\t\t});\n\t}\n\n\tclose(res: LuDialogResult<C>): void {\n\t\tthis.detachSubscription?.unsubscribe();\n\t\tthis.cdkRef.close(res);\n\t}\n}\n\nexport type LuDialogSelfRef<R> = { dismiss(): void; close(res: R): void };\n","import { AutoFocusTarget, DialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/overlay';\nimport { TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nconst ɵdialogData = Symbol.for('luDialogData');\nconst ɵdialogResult = Symbol.for('luDialogResult');\n\nexport type ɵDialogDataFlag = { [ɵdialogData]: unknown };\nexport type ɵDialogResultFlag<R> = { [ɵdialogResult]: R };\n\nexport type LuDialogData<T> = {\n\t[K in keyof T]: T[K] extends ɵDialogDataFlag ? Omit<T[K], typeof ɵdialogData> : never;\n}[keyof T];\n\ntype DialogRefProps<C> = { [K in keyof C]: C[K] extends ɵDialogResultFlag<unknown> ? K : never }[keyof C] & keyof C;\nexport type LuDialogResult<C> = DialogRefProps<C> extends never ? void : C[DialogRefProps<C>] extends ɵDialogResultFlag<infer T> ? T : void;\n\ninterface BaseLuDialogConfig<C> {\n\t/**\n\t * The component or template to put inside the dialog container\n\t */\n\tcontent: ComponentType<C> | TemplateRef<C>;\n\n\t/**\n\t * Data to pass to the component, will be required if the component used `injectDialogData` in a field, specifying the data that's needed.\n\t */\n\tdata: LuDialogData<C>;\n\n\t/**\n\t * Should we put a backdrop? Defaults to true\n\t */\n\tmodal?: boolean;\n\n\t/**\n\t * Is this dialog a blocking popup that cannot be dismissed ?\n\t *\n\t * Defaults to false, setting this to true will also remove the close button in the header\n\t * if you're using `lu-dialog-header`.\n\t */\n\talert?: boolean;\n\n\t/**\n\t * Can be used if you don't have a header or aren't using the default one, to set an aria-label\n\t * instead of aria-labelledby on the dialog container\n\t */\n\tariaLabel?: string;\n\n\t/**\n\t * Autofocus target\n\t *\n\t * Defaults to the close button from the header, first-input is added by us to focus the first available input\n\t * or the first input that is contained inside a node that has the `.luDialog-autofocus` class\n\t */\n\tautoFocus?: AutoFocusTarget | 'first-input' | string;\n\n\t/**\n\t * This provides a way to override any of the configuration parameters expected by cdk's `Dialog.open` method.\n\t *\n\t * WARNING: this will take full authority and override with your values no matter what's computed by LuDialogService,\n\t * use with caution.\n\t */\n\tcdkConfigOverride?: DialogConfig<C>;\n\n\t/**\n\t * A hook function to determine if the current dialog can be closed or not, if provided.\n\t *\n\t * @param comp the instance of the component that's inside the dialog box.\n\t */\n\tcanClose?: (comp: C) => boolean | Observable<boolean>;\n\n\t/**\n\t * Determine if the current dialog can be close by a click on backdrop or escape key\n\t */\n\tcanCloseWithBackdrop?: boolean;\n\n\t/**\n\t * The size of the panel used for the dialog\n\t */\n\tsize?: 'XS' | 'S' | 'M' | 'L' | 'XL' | 'fitContent' | `maxContent` | 'fullScreen';\n\n\t/**\n\t * Should it be a modal (default), a drawer? a drawer from bottom?\n\t */\n\tmode?: 'default' | 'drawer' | 'drawer-from-bottom';\n\n\t/**\n\t * Classes to add to the panel\n\t */\n\tpanelClasses?: string[];\n}\n\nexport type LuDialogConfig<T> = LuDialogData<T> extends never ? Omit<BaseLuDialogConfig<T>, 'data'> : BaseLuDialogConfig<T>;\n","import { LuDialogRef, LuDialogSelfRef } from './dialog-ref';\nimport { ɵDialogDataFlag, ɵDialogResultFlag } from './dialog-config';\nimport { inject } from '@angular/core';\nimport { DIALOG_DATA } from '@angular/cdk/dialog';\n\nexport function injectDialogData<TData>(): TData & ɵDialogDataFlag {\n\treturn inject<TData & ɵDialogDataFlag>(DIALOG_DATA);\n}\n\nexport function injectDialogRef<R = void>(): LuDialogSelfRef<R> & ɵDialogResultFlag<R> {\n\treturn inject<LuDialogSelfRef<R>>(LuDialogRef) as LuDialogSelfRef<R> & ɵDialogResultFlag<R>;\n}\n","export const Translations = {\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DIALOG_HEADER_TRANSLATIONS = new InjectionToken('LuDialogHeaderTranslations', {\n\tfactory: () => luDialogHeaderTranslations,\n});\n\nexport interface LuDialogHeaderTranslations {\n\tclose: string;\n}\n\nexport const luDialogHeaderTranslations: LuTranslation<LuDialogHeaderTranslations> = Translations;\n","import { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { LuDialogRef } from '../model';\nimport { LU_DIALOG_HEADER_TRANSLATIONS } from './dialog-header.translate';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-dialog-header',\n\tstandalone: true,\n\timports: [IconComponent, ButtonComponent, NgIf],\n\ttemplateUrl: './dialog-header.component.html',\n\tstyleUrl: './dialog-header.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'dialog-inside-header',\n\t},\n})\nexport class DialogHeaderComponent implements OnInit {\n\t#ref = inject(LuDialogRef);\n\n\tintl = getIntl(LU_DIALOG_HEADER_TRANSLATIONS);\n\n\tdismissible = !this.#ref.config.alert;\n\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t#renderer = inject(Renderer2);\n\n\tclose(): void {\n\t\tthis.#ref.dismiss();\n\t}\n\n\tngOnInit(): void {\n\t\t// Using setTimeout here to make sure this will be handled in the next Cd cycle, not the current one.\n\t\tsetTimeout(() => {\n\t\t\tconst header = this.#elementRef.nativeElement.querySelector('h1');\n\t\t\tconst id = header?.id || `lu-dialog-header-${nextId++}`;\n\t\t\tif (header) {\n\t\t\t\tthis.#renderer.setAttribute(header, 'id', id);\n\t\t\t\tthis.#renderer.addClass(header, 'dialog-inside-header-container-title');\n\t\t\t}\n\t\t\t(this.#ref.cdkRef.containerInstance as CdkDialogContainer)?._addAriaLabelledBy(id);\n\t\t});\n\t}\n}\n","<button class=\"dialog-inside-header-button button\" type=\"button\" (click)=\"close()\" *ngIf=\"dismissible\">\n\t<lu-icon icon=\"signClose\" [alt]=\"intl.close\" />\n</button>\n\n<div class=\"dialog-inside-header-container\">\n\t<ng-content></ng-content>\n</div>\n","import { Dialog, DialogRef } from '@angular/cdk/dialog';\nimport { inject, Injectable, Injector, Renderer2 } from '@angular/core';\nimport { isObservable, merge, of, take } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\nimport { LuDialogConfig, LuDialogRef, LuDialogResult } from './model';\nimport { DISMISSED_VALUE } from './model/dialog-ref';\n\n@Injectable()\nexport class LuDialogService {\n\t#cdkDialog = inject(Dialog);\n\n\t#injector = inject(Injector);\n\n\topen<C>(config: LuDialogConfig<C>): LuDialogRef<C> {\n\t\tlet luDialogRef: LuDialogRef<C>;\n\t\tlet modeClasses: string[] = [];\n\t\tswitch (config.mode) {\n\t\t\tcase 'drawer':\n\t\t\t\tmodeClasses = ['mod-drawer'];\n\t\t\t\tbreak;\n\t\t\tcase 'drawer-from-bottom':\n\t\t\t\tmodeClasses = ['mod-drawer', 'mod-fromBottom'];\n\t\t\t\tbreak;\n\t\t}\n\t\tconst cdkRef = this.#cdkDialog.open(config.content, {\n\t\t\tariaModal: config.modal ?? true,\n\t\t\thasBackdrop: config.modal ?? true,\n\t\t\tdata: 'data' in config ? config.data : null,\n\t\t\tdisableClose: true,\n\t\t\tcloseOnDestroy: true,\n\t\t\trole: config.alert ? 'alertdialog' : 'dialog',\n\t\t\trestoreFocus: true,\n\t\t\tbackdropClass: 'dialog_backdrop',\n\t\t\tpanelClass: ['dialog', `mod-${config.size || 'M'}`, ...modeClasses, ...(config.panelClasses || [])],\n\t\t\tariaLabel: config.ariaLabel,\n\t\t\t// Handle manually\n\t\t\tcloseOnOverlayDetachments: false,\n\t\t\t// If focus is first-input, focus dialog and let the component do the rest\n\t\t\t// Else, just set it to config value or default to first-tabbable\n\t\t\tautoFocus: config.autoFocus === 'first-input' ? 'dialog' : (config.autoFocus ?? 'first-tabbable'),\n\t\t\ttemplateContext: () => ({ dialogRef: luDialogRef }),\n\t\t\tinjector: this.#injector,\n\t\t\tproviders: (ref: DialogRef<LuDialogResult<C>, C>) => {\n\t\t\t\tluDialogRef = new LuDialogRef(ref, config);\n\t\t\t\treturn [\n\t\t\t\t\t{\n\t\t\t\t\t\tprovide: LuDialogRef,\n\t\t\t\t\t\tuseValue: luDialogRef,\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t},\n\t\t\t...(config.cdkConfigOverride || {}),\n\t\t});\n\n\t\tif (cdkRef.componentRef) {\n\t\t\tconst renderer = cdkRef.componentRef.injector.get(Renderer2);\n\t\t\trenderer.setStyle(cdkRef.componentRef.location.nativeElement, 'display', 'contents');\n\t\t}\n\n\t\tif (!config.alert) {\n\t\t\t// Setup close listeners on backdrop click and escape key by ourselves so we can hook the `canClose` method to it.\n\t\t\tmerge(cdkRef.backdropClick, cdkRef.keydownEvents.pipe(filter((e) => e.key === 'Escape' && !e.defaultPrevented)))\n\t\t\t\t.pipe(\n\t\t\t\t\tfilter(() => config.canCloseWithBackdrop ?? true),\n\t\t\t\t\tswitchMap(() => {\n\t\t\t\t\t\tconst canClose = config.canClose?.(cdkRef.componentInstance) ?? true;\n\t\t\t\t\t\tconst canClose$ = isObservable(canClose) ? canClose : of(canClose);\n\t\t\t\t\t\treturn canClose$.pipe(take(1));\n\t\t\t\t\t}),\n\t\t\t\t\ttakeUntil(luDialogRef.closed$),\n\t\t\t\t)\n\t\t\t\t.subscribe((canClose) => {\n\t\t\t\t\tif (canClose) {\n\t\t\t\t\t\tluDialogRef.detachSubscription?.unsubscribe();\n\t\t\t\t\t\tcdkRef.close(DISMISSED_VALUE);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\treturn luDialogRef;\n\t}\n}\n","import { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { LuDialogService } from './dialog.service';\n\nexport function configureLuDialog(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([importProvidersFrom(DialogModule)]);\n}\n\nexport function provideLuDialog(): Provider {\n\treturn LuDialogService;\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, inject, ViewEncapsulation } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Component({\n\tselector: 'lu-dialog',\n\tstandalone: true,\n\ttemplate: '<ng-content></ng-content>',\n\tstyleUrl: './dialog.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'dialog-inside',\n\t},\n})\nexport class DialogComponent implements AfterViewInit {\n\tpublic readonly dialogRef = inject<LuDialogRef>(LuDialogRef);\n\n\t#htmlElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n\tclose(): void {\n\t\tthis.dialogRef.close();\n\t}\n\n\tdismiss(): void {\n\t\tthis.dialogRef.dismiss();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (this.dialogRef.config.autoFocus === 'first-input' && !this.dialogRef.config.cdkConfigOverride?.autoFocus) {\n\t\t\tconst focusable: HTMLElement =\n\t\t\t\tthis.#htmlElement.querySelector('.luDialog-autofocus .luNativeInput') || this.#htmlElement.querySelector('.luDialog-autofocus') || this.#htmlElement.querySelector('.luNativeInput');\n\t\t\tfocusable?.focus();\n\t\t}\n\t}\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Directive({\n\tselector: '[luDialogClose]',\n\tstandalone: true,\n})\nexport class DialogCloseDirective {\n\t#ref = inject<LuDialogRef>(LuDialogRef);\n\n\t@HostListener('click')\n\tclose(): void {\n\t\tthis.#ref.close();\n\t}\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Directive({\n\tselector: '[luDialogDismiss]',\n\tstandalone: true,\n})\nexport class DialogDismissDirective {\n\t#ref = inject<LuDialogRef>(LuDialogRef);\n\n\t@HostListener('click')\n\tclose(): void {\n\t\tthis.#ref.dismiss();\n\t}\n}\n","import { Directive, HostListener, inject, Input, TemplateRef } from '@angular/core';\nimport { LuDialogService } from '../dialog.service';\nimport { LuDialogConfig } from '../model';\nimport { provideLuDialog } from '../dialog.providers';\n\n@Directive({\n\tselector: '[luDialogOpen]',\n\tstandalone: true,\n\tproviders: [provideLuDialog()],\n})\nexport class DialogOpenDirective {\n\t#dialogService = inject(LuDialogService);\n\n\t@Input({\n\t\trequired: true,\n\t\talias: 'luDialogOpen',\n\t})\n\tdialog: TemplateRef<void>;\n\n\t@Input()\n\tluDialogConfig: LuDialogConfig<unknown>;\n\n\t@HostListener('click')\n\tclick(): void {\n\t\tthis.#dialogService.open({\n\t\t\t...this.luDialogConfig,\n\t\t\tcontent: this.dialog,\n\t\t});\n\t}\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { InjectionToken } from '@angular/core';\nimport { Route } from '@angular/router';\nimport { Observable, firstValueFrom, from, isObservable, of } from 'rxjs';\nimport { LuDialogConfig, LuDialogData } from '../model';\nimport { DialogRoutingComponent } from './dialog-routing.component';\nimport { DialogRouteConfig } from './dialog-routing.models';\n\nexport type Deferrable<T> = Promise<T> | Observable<T> | T;\n\nexport async function deferrableToPromise<T>(deferrable: Promise<T> | Observable<T> | T): Promise<T> {\n\treturn isObservable(deferrable) ? firstValueFrom(deferrable) : deferrable;\n}\n\nexport function deferrableToObservable<T>(deferrable: Promise<T> | Observable<T> | T): Observable<T> {\n\treturn isObservable(deferrable) ? deferrable : deferrable instanceof Promise ? from(deferrable) : of(deferrable);\n}\n\nexport const DIALOG_ROUTE_CONFIG = new InjectionToken<DialogRouteConfig<unknown>>('DIALOG_ROUTE_CONFIG');\n\nexport function createDialogRoute<C>(config: DialogRouteConfig<C>): Route {\n\t// Remove `canDeactivate` from the route config and handle it in the dialog component\n\tconst { canDeactivate, ...rest } = config;\n\treturn {\n\t\t...rest,\n\t\tcomponent: DialogRoutingComponent,\n\t\tproviders: [{ provide: DIALOG_ROUTE_CONFIG, useValue: config }, ...(config.providers ?? [])],\n\t};\n}\n\nexport type DialogFactoryResultOptions<C> = { path: string; dialogRouteConfig?: Partial<Omit<DialogRouteConfig<C>, 'path'>> } & (LuDialogData<C> extends never\n\t? { dataFactory?: never }\n\t: {\n\t\t\tdataFactory: () => Deferrable<LuDialogData<C>>;\n\t\t});\n\nexport type DialogFactoryResult<C> = (options: DialogFactoryResultOptions<C>) => Route;\n\nexport type DialogFactoryConfig<C> = Partial<{\n\tdialogConfig: Omit<LuDialogConfig<C>, 'data' | 'content'>;\n\tdialogRouteConfig: Partial<DialogRouteConfig<C>>;\n}>;\n\nexport function dialogRouteFactory<C>(component: ComponentType<C>, config?: DialogFactoryConfig<C>): DialogFactoryResult<C> {\n\treturn ({ path, dataFactory, dialogRouteConfig }) =>\n\t\tcreateDialogRoute({\n\t\t\tpath,\n\t\t\tdialogConfigFactory: async () => ({\n\t\t\t\t...config?.dialogConfig,\n\t\t\t\tcontent: component,\n\t\t\t\tdata: dataFactory ? await deferrableToPromise(dataFactory()) : undefined,\n\t\t\t}),\n\t\t\t...mergeRouteConfig(config?.dialogRouteConfig, dialogRouteConfig),\n\t\t});\n}\n\nfunction mergeRouteConfig(config1: Partial<Route>, config2: Partial<Route>): Partial<Route> {\n\tif (!config1) {\n\t\treturn config2;\n\t}\n\n\tif (!config2) {\n\t\treturn config1;\n\t}\n\n\tconst result: Partial<Route> = { ...config1, ...config2 };\n\n\t// If both configs have the same key, we merge the arrays\n\tconst mergedArrays = (['providers', 'canActivate', 'children', 'canDeactivate', 'canLoad', 'canActivateChild'] as const satisfies Array<keyof Route>).filter(\n\t\t(key) => key in config1 && key in config2,\n\t);\n\n\tfor (const key of mergedArrays) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tresult[key] = [...(config1[key] ?? []), ...(config2[key] ?? [])];\n\t}\n\n\t// If both configs have the same data key, we merge the objects\n\tif (config1.data && config2.data) {\n\t\tresult.data = { ...config1.data, ...config2.data };\n\t}\n\n\treturn result;\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport { Directive, OnInit, inject, output } from '@angular/core';\n\n@Directive({\n\tselector: '[luOutletComponentInstance]',\n\tstandalone: true,\n})\nexport class OutletComponentInstanceDirective<C> implements OnInit {\n\t// TODO add a generic type to NgComponentOutlet<C> when Angular 19.0 support is dropped\n\t#outlet = inject<NgComponentOutlet>(NgComponentOutlet);\n\n\tinstanceCreated = output<C>();\n\n\tngOnInit(): void {\n\t\t// TODO use this.#outlet.componentInstance when Angular 19.0 support is dropped\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n\t\tconst instance = (this.#outlet as any)._componentRef?.instance ?? null;\n\n\t\tif (instance) {\n\t\t\tthis.instanceCreated.emit(instance as C); // TODO remove cast when Angular 19.0 support is dropped\n\t\t}\n\t}\n}\n","import { DIALOG_DATA } from '@angular/cdk/dialog';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, DestroyRef, inject, Injector, OnInit, runInInjectionContext, signal, TemplateRef, viewChild } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, CanDeactivateFn, GuardResult, Router } from '@angular/router';\nimport { combineLatest, concat, from, map, Observable } from 'rxjs';\nimport { provideLuDialog } from '../dialog.providers';\nimport { LuDialogService } from '../dialog.service';\nimport { LuDialogConfig, LuDialogRef } from '../model';\nimport { DialogRouteConfig } from './dialog-routing.models';\nimport { deferrableToObservable, deferrableToPromise, DIALOG_ROUTE_CONFIG } from './dialog-routing.utils';\nimport { OutletComponentInstanceDirective } from './outlet-component-instance.directive';\n\nexport const defaultOnClosedFn = <C>(router = inject(Router), route = inject(ActivatedRoute), config = inject<DialogRouteConfig<C>>(DIALOG_ROUTE_CONFIG)): void =>\n\tvoid router.navigate(\n\t\t[\n\t\t\tconfig.path\n\t\t\t\t.split('/')\n\t\t\t\t.map(() => '..')\n\t\t\t\t.join('/'),\n\t\t],\n\t\t{\n\t\t\trelativeTo: route,\n\t\t\tqueryParamsHandling: 'preserve',\n\t\t},\n\t);\n\n@Component({\n\tselector: 'lu-dialog-routing',\n\ttemplate: `\n\t\t<ng-template>\n\t\t\t@if (dialogComponentContent(); as componentType) {\n\t\t\t\t<ng-container luOutletComponentInstance [ngComponentOutlet]=\"componentType\" [ngComponentOutletInjector]=\"customInjector\" (instanceCreated)=\"componentInstance.set($event)\" />\n\t\t\t}\n\t\t\t@if (dialogTemplateContent(); as templateRef) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletInjector]=\"customInjector\" />\n\t\t\t}\n\t\t</ng-template>\n\t`,\n\tstandalone: true,\n\timports: [NgComponentOutlet, NgTemplateOutlet, OutletComponentInstanceDirective],\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t`,\n\t],\n\tproviders: [provideLuDialog()],\n})\nexport class DialogRoutingComponent<C> implements OnInit {\n\treadonly #route = inject(ActivatedRoute);\n\treadonly #router = inject(Router);\n\treadonly #destroyRef = inject(DestroyRef);\n\treadonly #dialog = inject(LuDialogService);\n\treadonly injector = inject(Injector);\n\treadonly #config = inject<DialogRouteConfig<C>>(DIALOG_ROUTE_CONFIG);\n\treadonly #dialogConfig = deferrableToPromise(this.#config.dialogConfigFactory());\n\n\treadonly dialogConfig = toSignal(from(this.#dialogConfig), {\n\t\tinitialValue: null,\n\t});\n\treadonly dialogTemplateContent = computed(() => {\n\t\tconst config = this.dialogConfig();\n\t\treturn config && config.content instanceof TemplateRef ? config.content : null;\n\t});\n\treadonly dialogComponentContent = computed(() => {\n\t\tconst config = this.dialogConfig();\n\t\treturn config && !(config.content instanceof TemplateRef) ? config.content : null;\n\t});\n\n\tprotected readonly dialogTemplate = viewChild.required(TemplateRef);\n\n\treadonly customInjector = Injector.create({\n\t\tparent: this.injector,\n\t\tproviders: [\n\t\t\t{\n\t\t\t\tprovide: DIALOG_DATA,\n\t\t\t\tuseFactory: () => {\n\t\t\t\t\tconst config = this.dialogConfig();\n\t\t\t\t\treturn config && 'data' in config ? config.data : null;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tprovide: LuDialogRef,\n\t\t\t\tuseFactory: () => this.#ref,\n\t\t\t},\n\t\t],\n\t});\n\n\treadonly componentInstance = signal<C | null>(null);\n\n\t#ref?: LuDialogRef<C>;\n\n\tngOnInit(): void {\n\t\tvoid this.#openDialog();\n\t}\n\n\tasync #openDialog(): Promise<void> {\n\t\tconst dialogConfig = await this.#dialogConfig;\n\t\tthis.#ref = this.#dialog.open<C>({\n\t\t\t...dialogConfig,\n\t\t\tcontent: this.dialogTemplate(),\n\t\t\tcanClose: this.#getCanCloseFn(dialogConfig),\n\t\t});\n\n\t\tthis.#ref.result$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((result) =>\n\t\t\trunInInjectionContext(this.injector, () => {\n\t\t\t\tif (this.#config.onClosed) {\n\t\t\t\t\tthis.#config.onClosed(result);\n\t\t\t\t} else {\n\t\t\t\t\tdefaultOnClosedFn();\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\tthis.#ref.dismissed$\n\t\t\t.pipe(takeUntilDestroyed(this.#destroyRef))\n\t\t\t.subscribe(() => runInInjectionContext(this.injector, () => (this.#config.onDismissed ? this.#config.onDismissed() : defaultOnClosedFn())));\n\t}\n\n\t#getCanCloseFn(config: LuDialogConfig<C>): ((c: C) => Observable<boolean>) | undefined {\n\t\tconst canCloseFns: ((c: C) => Observable<boolean>)[] = [];\n\n\t\tif (config.canClose) {\n\t\t\tcanCloseFns.push((c: C) => deferrableToObservable(config.canClose(c)));\n\t\t}\n\n\t\tif (this.#config.canDeactivate) {\n\t\t\tcanCloseFns.push(this.#getCanCloseFromGuardDialogFn(this.#config.canDeactivate));\n\t\t}\n\n\t\treturn canCloseFns.length ? (c: C) => combineLatest(canCloseFns.map((fn) => fn(c))).pipe(map((results) => results.every((r) => r))) : undefined;\n\t}\n\n\t#getCanCloseFromGuardDialogFn(canDeactivate: CanDeactivateFn<C>[]): () => Observable<boolean> {\n\t\treturn () => {\n\t\t\tconst results$ = canDeactivate.map((cD) => this.#callCanDeactivateFn(cD));\n\n\t\t\treturn concat(...results$).pipe(\n\t\t\t\tmap((guardResult) => {\n\t\t\t\t\tif (typeof guardResult === 'boolean') {\n\t\t\t\t\t\treturn guardResult;\n\t\t\t\t\t}\n\t\t\t\t\tvoid this.#router.navigate([guardResult]);\n\t\t\t\t\treturn true;\n\t\t\t\t}),\n\t\t\t);\n\t\t};\n\t}\n\n\t#callCanDeactivateFn(canDeactivateFn: CanDeactivateFn<C>): Observable<GuardResult> {\n\t\tconst args = [this.componentInstance(), this.#route.snapshot, this.#router.routerState.snapshot, this.#router.routerState.snapshot] as const;\n\t\tconst maybeAsyncResult = runInInjectionContext(this.injector, () => canDeactivateFn(...args));\n\t\treturn deferrableToObservable(maybeAsyncResult);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map"],"mappings":"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"}
@@ -56,13 +56,13 @@ class HighlightDataComponent {
56
56
  });
57
57
  }
58
58
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: HighlightDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: HighlightDataComponent, isStandalone: true, selector: "lu-highlight-data", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, subText: { classPropertyName: "subText", publicName: "subText", isSignal: true, isRequired: false, transformFunction: null }, bubble: { classPropertyName: "bubble", publicName: "bubble", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, illustration: { classPropertyName: "illustration", publicName: "illustration", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, valueFirst: { classPropertyName: "valueFirst", publicName: "valueFirst", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mod-light": "this.lightClass", "class.mod-dark": "this.darkClass" }, classAttribute: "highlightData" }, providers: [LuClass], ngImport: i0, template: "<dl class=\"highlightData-content\">\n\t<dt class=\"highlightData-content-title\"><ng-container *luPortal=\"heading()\" /></dt>\n\t<dd class=\"highlightData-content-value\"><ng-container *luPortal=\"value()\" /></dd>\n\t@if (subText()) {\n\t<dd class=\"highlightData-content-subText\"><ng-container *luPortal=\"subText()\" /></dd>\n\t}\n\t<dd class=\"highlightData-content-action\"><ng-content></ng-content></dd>\n</dl>\n\n@if (bubble() || illustration()) {\n<div class=\"highlightData-illustrations\">\n\t@if (bubble()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-back\" [attr.src]=\"bubbleSrc()\" />\n\t} @if (illustration()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-front\" [attr.src]=\"illustrationSrc()\" />\n\t}\n</div>\n}\n", styles: [".highlightData{--components-highlightData-display: grid;--components-highlightData-alignItem: center;--components-highlightData-background: var(--pr-t-elevation-surface-raised);--components-highlightData-padding-inline: var(--pr-t-spacings-200);--components-highlightData-padding-block: var(--pr-t-spacings-150);--components-highlightData-padding: var(--components-highlightData-padding-block) var(--components-highlightData-padding-inline);--components-highlightData-gap: var(--components-highlightData-padding-inline);--components-highlightData-title-color: var(--palettes-neutral-200);--components-highlightData-value-order: 0;--components-highlightData-action-padding: 0;--components-highlightData-illustrations-width: 86px;--components-highlightData-illustrations-height: 72px;--components-highlightData-illustrations-display: grid;display:block;background-color:var(--components-highlightData-background);border-radius:var(--commons-borderRadius-L);overflow:hidden;padding:var(--components-highlightData-padding);position:relative}.highlightData-content{margin:0;display:var(--components-highlightData-display);grid-template-columns:1fr auto;grid-template-areas:\"title action\" \"value action\";align-items:var(--components-highlightData-alignItem);flex-direction:column;column-gap:var(--components-highlightData-gap)}.highlightData-content>dd,.highlightData-content>div>dd{margin:0}.highlightData-content-title{grid-area:title;font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);color:var(--palettes-neutral-700)}.highlightData-content-value{grid-area:value;margin-block-start:0;color:var(--palettes-neutral-900);text-rendering:geometricPrecision;text-wrap:pretty;font-weight:var(--components-title-weight, 600);font-size:var(--sizes-fontSize);line-height:var(--sizes-lineHeight);margin-block-end:0;padding:0;--sizes-verticalPadding: var(--sizes-XXL-verticalPadding);--sizes-fontSize: var(--sizes-XXL-fontSize);--sizes-lineHeight: var(--sizes-XXL-lineHeight);--components-title-weight: 900;order:var(--components-highlightData-value-order)}.highlightData-content-subText{font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);color:var(--palettes-neutral-700);margin-block-start:var(--pr-t-spacings-100)!important}.highlightData-content-action{grid-area:action;padding-block-start:var(--components-highlightData-action-padding)}.highlightData-content-action:empty{display:none}.highlightData-content-action .link{--commons-text-link-color: var(--palettes-700, var(--palettes-product-700));--commons-text-link-hover: var(--palettes-800, var(--palettes-product-800))}.highlightData-content-action .button{--palettes-text: var(--palettes-neutral-text);--palettes-0: var(--palettes-neutral-0);--palettes-25: var(--palettes-neutral-25);--palettes-50: var(--palettes-neutral-50);--palettes-100: var(--palettes-neutral-100);--palettes-200: var(--palettes-neutral-200);--palettes-300: var(--palettes-neutral-300);--palettes-400: var(--palettes-neutral-400);--palettes-500: var(--palettes-neutral-500);--palettes-600: var(--palettes-neutral-600);--palettes-700: var(--palettes-neutral-700);--palettes-800: var(--palettes-neutral-800);--palettes-900: var(--palettes-neutral-900)}.highlightData-illustrations{display:var(--components-highlightData-illustrations-display);place-content:center;position:absolute;inset-block-end:0;inset-inline-end:0}.highlightData-illustrations-back,.highlightData-illustrations-front{grid-area:1/1;block-size:var(--components-highlightData-illustrations-height);inline-size:var(--components-highlightData-illustrations-width)}.highlightData.mod-light{--components-highlightData-background: var(--palettes-50, var(--palettes-product-50))}.highlightData.mod-dark{--components-highlightData-background: var(--palettes-100, var(--palettes-product-100))}.highlightData.mod-valueFirst{--components-highlightData-value-order: -1}.highlightData.mod-S{--components-highlightData-illustrations-width: 82px;--components-highlightData-illustrations-height: 68px}.highlightData.mod-S .highlightData-content-value{--sizes-verticalPadding: var(--sizes-XL-verticalPadding);--sizes-fontSize: var(--sizes-XL-fontSize);--sizes-lineHeight: var(--sizes-XL-lineHeight);--components-title-weight: 700}.highlightData.mod-XS{--components-highlightData-illustrations-width: 77px;--components-highlightData-illustrations-height: 64px}.highlightData.mod-XS .highlightData-content-value{--sizes-verticalPadding: var(--sizes-L-verticalPadding);--sizes-fontSize: var(--sizes-L-fontSize);--sizes-lineHeight: var(--sizes-L-lineHeight);--components-title-weight: 700}.highlightData:has(.highlightData-illustrations){--components-highlightData-display: flex;--components-highlightData-alignItem: start;--components-highlightData-action-padding: var(--pr-t-spacings-150);padding-inline-end:calc(var(--components-highlightData-illustrations-width) + var(--components-highlightData-padding-inline))}\n"], dependencies: [{ kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: HighlightDataComponent, isStandalone: true, selector: "lu-highlight-data", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, subText: { classPropertyName: "subText", publicName: "subText", isSignal: true, isRequired: false, transformFunction: null }, bubble: { classPropertyName: "bubble", publicName: "bubble", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, illustration: { classPropertyName: "illustration", publicName: "illustration", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, valueFirst: { classPropertyName: "valueFirst", publicName: "valueFirst", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mod-light": "this.lightClass", "class.mod-dark": "this.darkClass" }, classAttribute: "highlightData" }, providers: [LuClass], ngImport: i0, template: "<dl class=\"highlightData-content\">\n\t<dt class=\"highlightData-content-title\"><ng-container *luPortal=\"heading()\" /></dt>\n\t<dd class=\"highlightData-content-value\"><ng-container *luPortal=\"value()\" /></dd>\n\t@if (subText()) {\n\t<dd class=\"highlightData-content-subText\"><ng-container *luPortal=\"subText()\" /></dd>\n\t}\n\t<dd class=\"highlightData-content-action\"><ng-content></ng-content></dd>\n</dl>\n\n@if (bubble() || illustration()) {\n<div class=\"highlightData-illustrations\">\n\t@if (bubble()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-back\" [attr.src]=\"bubbleSrc()\" />\n\t} @if (illustration()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-front\" [attr.src]=\"illustrationSrc()\" />\n\t}\n</div>\n}\n", styles: [".highlightData{--components-highlightData-display: grid;--components-highlightData-grid: \"title action\" \"value action\";--components-highlightData-alignItem: center;--components-highlightData-background: var(--pr-t-elevation-surface-raised);--components-highlightData-padding-inline: var(--pr-t-spacings-200);--components-highlightData-padding-block: var(--pr-t-spacings-150);--components-highlightData-padding: var(--components-highlightData-padding-block) var(--components-highlightData-padding-inline);--components-highlightData-gap: var(--components-highlightData-padding-inline);--components-highlightData-title-color: var(--palettes-neutral-200);--components-highlightData-value-order: 0;--components-highlightData-action-padding: 0;--components-highlightData-illustrations-width: 86px;--components-highlightData-illustrations-height: 72px;--components-highlightData-illustrations-display: grid;display:block;background-color:var(--components-highlightData-background);border-radius:var(--commons-borderRadius-L);overflow:hidden;padding:var(--components-highlightData-padding);position:relative}.highlightData-content{margin:0;display:var(--components-highlightData-display);grid-template-columns:1fr auto;grid-template-areas:var(--components-highlightData-grid);align-items:var(--components-highlightData-alignItem);flex-direction:column;column-gap:var(--components-highlightData-gap)}.highlightData-content>dd,.highlightData-content>div>dd{margin:0}.highlightData-content-title{grid-area:title;font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);color:var(--palettes-neutral-700)}.highlightData-content-value{grid-area:value;margin-block-start:0;color:var(--palettes-neutral-900);text-rendering:geometricPrecision;text-wrap:pretty;font-weight:var(--components-title-weight, 600);font-size:var(--sizes-fontSize);line-height:var(--sizes-lineHeight);margin-block-end:0;padding:0;--sizes-verticalPadding: var(--sizes-XXL-verticalPadding);--sizes-fontSize: var(--sizes-XXL-fontSize);--sizes-lineHeight: var(--sizes-XXL-lineHeight);--components-title-weight: 900;order:var(--components-highlightData-value-order)}.highlightData-content-subText{font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);color:var(--palettes-neutral-700);margin-block-start:var(--pr-t-spacings-100)!important}.highlightData-content-action{grid-area:action;padding-block-start:var(--components-highlightData-action-padding)}.highlightData-content-action:empty{display:none}.highlightData-content-action .link{--commons-text-link-color: var(--palettes-700, var(--palettes-product-700));--commons-text-link-hover: var(--palettes-800, var(--palettes-product-800))}.highlightData-content-action .button{--palettes-text: var(--palettes-neutral-text);--palettes-0: var(--palettes-neutral-0);--palettes-25: var(--palettes-neutral-25);--palettes-50: var(--palettes-neutral-50);--palettes-100: var(--palettes-neutral-100);--palettes-200: var(--palettes-neutral-200);--palettes-300: var(--palettes-neutral-300);--palettes-400: var(--palettes-neutral-400);--palettes-500: var(--palettes-neutral-500);--palettes-600: var(--palettes-neutral-600);--palettes-700: var(--palettes-neutral-700);--palettes-800: var(--palettes-neutral-800);--palettes-900: var(--palettes-neutral-900)}.highlightData-illustrations{display:var(--components-highlightData-illustrations-display);place-content:center;position:absolute;inset-block-end:0;inset-inline-end:0}.highlightData-illustrations-back,.highlightData-illustrations-front{grid-area:1/1;block-size:var(--components-highlightData-illustrations-height);inline-size:var(--components-highlightData-illustrations-width)}.highlightData.mod-light{--components-highlightData-background: var(--palettes-50, var(--palettes-product-50))}.highlightData.mod-dark{--components-highlightData-background: var(--palettes-100, var(--palettes-product-100))}.highlightData.mod-valueFirst{--components-highlightData-grid: \"value action\" \"title action\"}.highlightData.mod-S{--components-highlightData-illustrations-width: 82px;--components-highlightData-illustrations-height: 68px}.highlightData.mod-S .highlightData-content-value{--sizes-verticalPadding: var(--sizes-XL-verticalPadding);--sizes-fontSize: var(--sizes-XL-fontSize);--sizes-lineHeight: var(--sizes-XL-lineHeight);--components-title-weight: 700}.highlightData.mod-XS{--components-highlightData-illustrations-width: 77px;--components-highlightData-illustrations-height: 64px}.highlightData.mod-XS .highlightData-content-value{--sizes-verticalPadding: var(--sizes-L-verticalPadding);--sizes-fontSize: var(--sizes-L-fontSize);--sizes-lineHeight: var(--sizes-L-lineHeight);--components-title-weight: 700}.highlightData:has(.highlightData-illustrations){--components-highlightData-display: flex;--components-highlightData-alignItem: start;--components-highlightData-action-padding: var(--pr-t-spacings-150);padding-inline-end:calc(var(--components-highlightData-illustrations-width) + var(--components-highlightData-padding-inline))}.highlightData:has(.highlightData-illustrations).mod-valueFirst{--components-highlightData-value-order: -1}\n"], dependencies: [{ kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
60
60
  }
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: HighlightDataComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{ selector: 'lu-highlight-data', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [LuClass], host: {
64
64
  class: 'highlightData',
65
- }, imports: [PortalDirective], template: "<dl class=\"highlightData-content\">\n\t<dt class=\"highlightData-content-title\"><ng-container *luPortal=\"heading()\" /></dt>\n\t<dd class=\"highlightData-content-value\"><ng-container *luPortal=\"value()\" /></dd>\n\t@if (subText()) {\n\t<dd class=\"highlightData-content-subText\"><ng-container *luPortal=\"subText()\" /></dd>\n\t}\n\t<dd class=\"highlightData-content-action\"><ng-content></ng-content></dd>\n</dl>\n\n@if (bubble() || illustration()) {\n<div class=\"highlightData-illustrations\">\n\t@if (bubble()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-back\" [attr.src]=\"bubbleSrc()\" />\n\t} @if (illustration()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-front\" [attr.src]=\"illustrationSrc()\" />\n\t}\n</div>\n}\n", styles: [".highlightData{--components-highlightData-display: grid;--components-highlightData-alignItem: center;--components-highlightData-background: var(--pr-t-elevation-surface-raised);--components-highlightData-padding-inline: var(--pr-t-spacings-200);--components-highlightData-padding-block: var(--pr-t-spacings-150);--components-highlightData-padding: var(--components-highlightData-padding-block) var(--components-highlightData-padding-inline);--components-highlightData-gap: var(--components-highlightData-padding-inline);--components-highlightData-title-color: var(--palettes-neutral-200);--components-highlightData-value-order: 0;--components-highlightData-action-padding: 0;--components-highlightData-illustrations-width: 86px;--components-highlightData-illustrations-height: 72px;--components-highlightData-illustrations-display: grid;display:block;background-color:var(--components-highlightData-background);border-radius:var(--commons-borderRadius-L);overflow:hidden;padding:var(--components-highlightData-padding);position:relative}.highlightData-content{margin:0;display:var(--components-highlightData-display);grid-template-columns:1fr auto;grid-template-areas:\"title action\" \"value action\";align-items:var(--components-highlightData-alignItem);flex-direction:column;column-gap:var(--components-highlightData-gap)}.highlightData-content>dd,.highlightData-content>div>dd{margin:0}.highlightData-content-title{grid-area:title;font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);color:var(--palettes-neutral-700)}.highlightData-content-value{grid-area:value;margin-block-start:0;color:var(--palettes-neutral-900);text-rendering:geometricPrecision;text-wrap:pretty;font-weight:var(--components-title-weight, 600);font-size:var(--sizes-fontSize);line-height:var(--sizes-lineHeight);margin-block-end:0;padding:0;--sizes-verticalPadding: var(--sizes-XXL-verticalPadding);--sizes-fontSize: var(--sizes-XXL-fontSize);--sizes-lineHeight: var(--sizes-XXL-lineHeight);--components-title-weight: 900;order:var(--components-highlightData-value-order)}.highlightData-content-subText{font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);color:var(--palettes-neutral-700);margin-block-start:var(--pr-t-spacings-100)!important}.highlightData-content-action{grid-area:action;padding-block-start:var(--components-highlightData-action-padding)}.highlightData-content-action:empty{display:none}.highlightData-content-action .link{--commons-text-link-color: var(--palettes-700, var(--palettes-product-700));--commons-text-link-hover: var(--palettes-800, var(--palettes-product-800))}.highlightData-content-action .button{--palettes-text: var(--palettes-neutral-text);--palettes-0: var(--palettes-neutral-0);--palettes-25: var(--palettes-neutral-25);--palettes-50: var(--palettes-neutral-50);--palettes-100: var(--palettes-neutral-100);--palettes-200: var(--palettes-neutral-200);--palettes-300: var(--palettes-neutral-300);--palettes-400: var(--palettes-neutral-400);--palettes-500: var(--palettes-neutral-500);--palettes-600: var(--palettes-neutral-600);--palettes-700: var(--palettes-neutral-700);--palettes-800: var(--palettes-neutral-800);--palettes-900: var(--palettes-neutral-900)}.highlightData-illustrations{display:var(--components-highlightData-illustrations-display);place-content:center;position:absolute;inset-block-end:0;inset-inline-end:0}.highlightData-illustrations-back,.highlightData-illustrations-front{grid-area:1/1;block-size:var(--components-highlightData-illustrations-height);inline-size:var(--components-highlightData-illustrations-width)}.highlightData.mod-light{--components-highlightData-background: var(--palettes-50, var(--palettes-product-50))}.highlightData.mod-dark{--components-highlightData-background: var(--palettes-100, var(--palettes-product-100))}.highlightData.mod-valueFirst{--components-highlightData-value-order: -1}.highlightData.mod-S{--components-highlightData-illustrations-width: 82px;--components-highlightData-illustrations-height: 68px}.highlightData.mod-S .highlightData-content-value{--sizes-verticalPadding: var(--sizes-XL-verticalPadding);--sizes-fontSize: var(--sizes-XL-fontSize);--sizes-lineHeight: var(--sizes-XL-lineHeight);--components-title-weight: 700}.highlightData.mod-XS{--components-highlightData-illustrations-width: 77px;--components-highlightData-illustrations-height: 64px}.highlightData.mod-XS .highlightData-content-value{--sizes-verticalPadding: var(--sizes-L-verticalPadding);--sizes-fontSize: var(--sizes-L-fontSize);--sizes-lineHeight: var(--sizes-L-lineHeight);--components-title-weight: 700}.highlightData:has(.highlightData-illustrations){--components-highlightData-display: flex;--components-highlightData-alignItem: start;--components-highlightData-action-padding: var(--pr-t-spacings-150);padding-inline-end:calc(var(--components-highlightData-illustrations-width) + var(--components-highlightData-padding-inline))}\n"] }]
65
+ }, imports: [PortalDirective], template: "<dl class=\"highlightData-content\">\n\t<dt class=\"highlightData-content-title\"><ng-container *luPortal=\"heading()\" /></dt>\n\t<dd class=\"highlightData-content-value\"><ng-container *luPortal=\"value()\" /></dd>\n\t@if (subText()) {\n\t<dd class=\"highlightData-content-subText\"><ng-container *luPortal=\"subText()\" /></dd>\n\t}\n\t<dd class=\"highlightData-content-action\"><ng-content></ng-content></dd>\n</dl>\n\n@if (bubble() || illustration()) {\n<div class=\"highlightData-illustrations\">\n\t@if (bubble()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-back\" [attr.src]=\"bubbleSrc()\" />\n\t} @if (illustration()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-front\" [attr.src]=\"illustrationSrc()\" />\n\t}\n</div>\n}\n", styles: [".highlightData{--components-highlightData-display: grid;--components-highlightData-grid: \"title action\" \"value action\";--components-highlightData-alignItem: center;--components-highlightData-background: var(--pr-t-elevation-surface-raised);--components-highlightData-padding-inline: var(--pr-t-spacings-200);--components-highlightData-padding-block: var(--pr-t-spacings-150);--components-highlightData-padding: var(--components-highlightData-padding-block) var(--components-highlightData-padding-inline);--components-highlightData-gap: var(--components-highlightData-padding-inline);--components-highlightData-title-color: var(--palettes-neutral-200);--components-highlightData-value-order: 0;--components-highlightData-action-padding: 0;--components-highlightData-illustrations-width: 86px;--components-highlightData-illustrations-height: 72px;--components-highlightData-illustrations-display: grid;display:block;background-color:var(--components-highlightData-background);border-radius:var(--commons-borderRadius-L);overflow:hidden;padding:var(--components-highlightData-padding);position:relative}.highlightData-content{margin:0;display:var(--components-highlightData-display);grid-template-columns:1fr auto;grid-template-areas:var(--components-highlightData-grid);align-items:var(--components-highlightData-alignItem);flex-direction:column;column-gap:var(--components-highlightData-gap)}.highlightData-content>dd,.highlightData-content>div>dd{margin:0}.highlightData-content-title{grid-area:title;font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);color:var(--palettes-neutral-700)}.highlightData-content-value{grid-area:value;margin-block-start:0;color:var(--palettes-neutral-900);text-rendering:geometricPrecision;text-wrap:pretty;font-weight:var(--components-title-weight, 600);font-size:var(--sizes-fontSize);line-height:var(--sizes-lineHeight);margin-block-end:0;padding:0;--sizes-verticalPadding: var(--sizes-XXL-verticalPadding);--sizes-fontSize: var(--sizes-XXL-fontSize);--sizes-lineHeight: var(--sizes-XXL-lineHeight);--components-title-weight: 900;order:var(--components-highlightData-value-order)}.highlightData-content-subText{font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);color:var(--palettes-neutral-700);margin-block-start:var(--pr-t-spacings-100)!important}.highlightData-content-action{grid-area:action;padding-block-start:var(--components-highlightData-action-padding)}.highlightData-content-action:empty{display:none}.highlightData-content-action .link{--commons-text-link-color: var(--palettes-700, var(--palettes-product-700));--commons-text-link-hover: var(--palettes-800, var(--palettes-product-800))}.highlightData-content-action .button{--palettes-text: var(--palettes-neutral-text);--palettes-0: var(--palettes-neutral-0);--palettes-25: var(--palettes-neutral-25);--palettes-50: var(--palettes-neutral-50);--palettes-100: var(--palettes-neutral-100);--palettes-200: var(--palettes-neutral-200);--palettes-300: var(--palettes-neutral-300);--palettes-400: var(--palettes-neutral-400);--palettes-500: var(--palettes-neutral-500);--palettes-600: var(--palettes-neutral-600);--palettes-700: var(--palettes-neutral-700);--palettes-800: var(--palettes-neutral-800);--palettes-900: var(--palettes-neutral-900)}.highlightData-illustrations{display:var(--components-highlightData-illustrations-display);place-content:center;position:absolute;inset-block-end:0;inset-inline-end:0}.highlightData-illustrations-back,.highlightData-illustrations-front{grid-area:1/1;block-size:var(--components-highlightData-illustrations-height);inline-size:var(--components-highlightData-illustrations-width)}.highlightData.mod-light{--components-highlightData-background: var(--palettes-50, var(--palettes-product-50))}.highlightData.mod-dark{--components-highlightData-background: var(--palettes-100, var(--palettes-product-100))}.highlightData.mod-valueFirst{--components-highlightData-grid: \"value action\" \"title action\"}.highlightData.mod-S{--components-highlightData-illustrations-width: 82px;--components-highlightData-illustrations-height: 68px}.highlightData.mod-S .highlightData-content-value{--sizes-verticalPadding: var(--sizes-XL-verticalPadding);--sizes-fontSize: var(--sizes-XL-fontSize);--sizes-lineHeight: var(--sizes-XL-lineHeight);--components-title-weight: 700}.highlightData.mod-XS{--components-highlightData-illustrations-width: 77px;--components-highlightData-illustrations-height: 64px}.highlightData.mod-XS .highlightData-content-value{--sizes-verticalPadding: var(--sizes-L-verticalPadding);--sizes-fontSize: var(--sizes-L-fontSize);--sizes-lineHeight: var(--sizes-L-lineHeight);--components-title-weight: 700}.highlightData:has(.highlightData-illustrations){--components-highlightData-display: flex;--components-highlightData-alignItem: start;--components-highlightData-action-padding: var(--pr-t-spacings-150);padding-inline-end:calc(var(--components-highlightData-illustrations-width) + var(--components-highlightData-padding-inline))}.highlightData:has(.highlightData-illustrations).mod-valueFirst{--components-highlightData-value-order: -1}\n"] }]
66
66
  }], ctorParameters: () => [], propDecorators: { lightClass: [{
67
67
  type: HostBinding,
68
68
  args: ['class.mod-light']
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-highlight-data.mjs","sources":["../../../packages/ng/highlight-data/highlight-data.component.ts","../../../packages/ng/highlight-data/highlight-data.component.html","../../../packages/ng/highlight-data/lucca-front-ng-highlight-data.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, HostBinding, inject, input, ViewEncapsulation } from '@angular/core';\nimport { LuClass, PortalContent, PortalDirective } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-highlight-data',\n\tstandalone: true,\n\ttemplateUrl: './highlight-data.component.html',\n\tstyleUrls: ['./highlight-data.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [LuClass],\n\thost: {\n\t\tclass: 'highlightData',\n\t},\n\timports: [PortalDirective],\n})\nexport class HighlightDataComponent {\n\t#luClass = inject(LuClass);\n\theading = input.required<PortalContent>();\n\tvalue = input.required<PortalContent>();\n\tsubText = input<PortalContent>();\n\tbubble = input<1 | 2 | 3 | 4 | number>();\n\tbubbleSrc = computed(() => {\n\t\treturn `https://cdn.lucca.fr/transverse/prisme/visuals/highlight-data/${this.palette()}/bubbles-${this.bubbleTheme()}-${this.bubble()}.svg`;\n\t});\n\ttheme = input<'white' | 'light' | 'dark'>('white');\n\t/**\n\t * Apply product name to illustration URL and CSS component palette\n\t * This specific palette must be set up on config.scss\n\t */\n\tpalette = input<'lucca' | 'cleemy' | 'timmi' | 'poplee' | 'coreHR' | 'pagga' | 'cc' | 'success' | 'warning' | 'critical' | string>('lucca');\n\n\tbubbleTheme = computed(() => {\n\t\tif (this.theme() === 'dark') {\n\t\t\treturn 'dark';\n\t\t}\n\t\treturn 'light';\n\t});\n\n\t@HostBinding('class.mod-light')\n\tget lightClass() {\n\t\treturn this.theme() === 'light';\n\t}\n\n\t@HostBinding('class.mod-dark')\n\tget darkClass() {\n\t\treturn this.theme() === 'dark';\n\t}\n\n\t/**\n\t * Main illustration\n\t * An URL can be apply for custom images\n\t */\n\tillustration = input<\n\t\t'calculator' | 'calendar' | 'cleemy-card' | 'coffee' | 'headphone' | 'mail' | 'manifying-glass' | 'medallon' | 'piggy-bank' | 'polaroid-female' | 'polaroid-male' | 'polaroids' | string\n\t>();\n\tillustrationSrc = computed(() => {\n\t\tif (this.illustration().includes('/')) {\n\t\t\treturn this.illustration();\n\t\t}\n\t\treturn `https://cdn.lucca.fr/transverse/prisme/visuals/highlight-data/generic/${this.illustration()}.svg`;\n\t});\n\tsize = input<'XS' | 'S' | 'M' | null>(null);\n\t/**\n\t * Adjust layout to text value\n\t */\n\tvalueFirst = input(false, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.#luClass.setState({\n\t\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t\t'mod-valueFirst': this.valueFirst(),\n\t\t\t\t[`palette-${this.palette()}`]: !!this.palette(),\n\t\t\t});\n\t\t});\n\t}\n}\n","<dl class=\"highlightData-content\">\n\t<dt class=\"highlightData-content-title\"><ng-container *luPortal=\"heading()\" /></dt>\n\t<dd class=\"highlightData-content-value\"><ng-container *luPortal=\"value()\" /></dd>\n\t@if (subText()) {\n\t<dd class=\"highlightData-content-subText\"><ng-container *luPortal=\"subText()\" /></dd>\n\t}\n\t<dd class=\"highlightData-content-action\"><ng-content></ng-content></dd>\n</dl>\n\n@if (bubble() || illustration()) {\n<div class=\"highlightData-illustrations\">\n\t@if (bubble()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-back\" [attr.src]=\"bubbleSrc()\" />\n\t} @if (illustration()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-front\" [attr.src]=\"illustrationSrc()\" />\n\t}\n</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-highlight-data.mjs","sources":["../../../packages/ng/highlight-data/highlight-data.component.ts","../../../packages/ng/highlight-data/highlight-data.component.html","../../../packages/ng/highlight-data/lucca-front-ng-highlight-data.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, HostBinding, inject, input, ViewEncapsulation } from '@angular/core';\nimport { LuClass, PortalContent, PortalDirective } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-highlight-data',\n\tstandalone: true,\n\ttemplateUrl: './highlight-data.component.html',\n\tstyleUrls: ['./highlight-data.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [LuClass],\n\thost: {\n\t\tclass: 'highlightData',\n\t},\n\timports: [PortalDirective],\n})\nexport class HighlightDataComponent {\n\t#luClass = inject(LuClass);\n\theading = input.required<PortalContent>();\n\tvalue = input.required<PortalContent>();\n\tsubText = input<PortalContent>();\n\tbubble = input<1 | 2 | 3 | 4 | number>();\n\tbubbleSrc = computed(() => {\n\t\treturn `https://cdn.lucca.fr/transverse/prisme/visuals/highlight-data/${this.palette()}/bubbles-${this.bubbleTheme()}-${this.bubble()}.svg`;\n\t});\n\ttheme = input<'white' | 'light' | 'dark'>('white');\n\t/**\n\t * Apply product name to illustration URL and CSS component palette\n\t * This specific palette must be set up on config.scss\n\t */\n\tpalette = input<'lucca' | 'cleemy' | 'timmi' | 'poplee' | 'coreHR' | 'pagga' | 'cc' | 'success' | 'warning' | 'critical' | string>('lucca');\n\n\tbubbleTheme = computed(() => {\n\t\tif (this.theme() === 'dark') {\n\t\t\treturn 'dark';\n\t\t}\n\t\treturn 'light';\n\t});\n\n\t@HostBinding('class.mod-light')\n\tget lightClass() {\n\t\treturn this.theme() === 'light';\n\t}\n\n\t@HostBinding('class.mod-dark')\n\tget darkClass() {\n\t\treturn this.theme() === 'dark';\n\t}\n\n\t/**\n\t * Main illustration\n\t * An URL can be apply for custom images\n\t */\n\tillustration = input<\n\t\t'calculator' | 'calendar' | 'cleemy-card' | 'coffee' | 'headphone' | 'mail' | 'manifying-glass' | 'medallon' | 'piggy-bank' | 'polaroid-female' | 'polaroid-male' | 'polaroids' | string\n\t>();\n\tillustrationSrc = computed(() => {\n\t\tif (this.illustration().includes('/')) {\n\t\t\treturn this.illustration();\n\t\t}\n\t\treturn `https://cdn.lucca.fr/transverse/prisme/visuals/highlight-data/generic/${this.illustration()}.svg`;\n\t});\n\tsize = input<'XS' | 'S' | 'M' | null>(null);\n\t/**\n\t * Adjust layout to text value\n\t */\n\tvalueFirst = input(false, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.#luClass.setState({\n\t\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t\t'mod-valueFirst': this.valueFirst(),\n\t\t\t\t[`palette-${this.palette()}`]: !!this.palette(),\n\t\t\t});\n\t\t});\n\t}\n}\n","<dl class=\"highlightData-content\">\n\t<dt class=\"highlightData-content-title\"><ng-container *luPortal=\"heading()\" /></dt>\n\t<dd class=\"highlightData-content-value\"><ng-container *luPortal=\"value()\" /></dd>\n\t@if (subText()) {\n\t<dd class=\"highlightData-content-subText\"><ng-container *luPortal=\"subText()\" /></dd>\n\t}\n\t<dd class=\"highlightData-content-action\"><ng-content></ng-content></dd>\n</dl>\n\n@if (bubble() || illustration()) {\n<div class=\"highlightData-illustrations\">\n\t@if (bubble()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-back\" [attr.src]=\"bubbleSrc()\" />\n\t} @if (illustration()) {\n\t<img alt=\"\" class=\"highlightData-illustrations-front\" [attr.src]=\"illustrationSrc()\" />\n\t}\n</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAgBa,sBAAsB,CAAA;AAClC,IAAA,QAAQ;AAsBR,IAAA,IACI,UAAU,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,OAAO;;AAGhC,IAAA,IACI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,MAAM;;AAsB/B,IAAA,WAAA,GAAA;AAnDA,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAiB;AACzC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAiB;QACvC,IAAO,CAAA,OAAA,GAAG,KAAK,EAAiB;QAChC,IAAM,CAAA,MAAA,GAAG,KAAK,EAA0B;AACxC,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACzB,YAAA,OAAO,iEAAiE,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM;AAC5I,SAAC,CAAC;AACF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA6B,OAAO,CAAC;AAClD;;;AAGG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAoH,OAAO,CAAC;AAE3I,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC3B,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE;AAC5B,gBAAA,OAAO,MAAM;;AAEd,YAAA,OAAO,OAAO;AACf,SAAC,CAAC;AAYF;;;AAGG;QACH,IAAY,CAAA,YAAA,GAAG,KAAK,EAEjB;AACH,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;YAC/B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtC,gBAAA,OAAO,IAAI,CAAC,YAAY,EAAE;;AAE3B,YAAA,OAAO,yEAAyE,IAAI,CAAC,YAAY,EAAE,MAAM;AAC1G,SAAC,CAAC;AACF,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA0B,IAAI,CAAC;AAC3C;;AAEG;QACH,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAGzD,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtB,gBAAA,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACrC,gBAAA,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE;AACnC,gBAAA,CAAC,CAAW,QAAA,EAAA,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/C,aAAA,CAAC;AACH,SAAC,CAAC;;8GA3DS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,6zCANvB,CAAC,OAAO,CAAC,ECVrB,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qvBAkBA,skKDJW,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEb,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACjB,UAAA,EAAA,IAAI,EAGC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,OAAO,CAAC,EACd,IAAA,EAAA;AACL,wBAAA,KAAK,EAAE,eAAe;qBACtB,EACQ,OAAA,EAAA,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,qvBAAA,EAAA,MAAA,EAAA,CAAA,8gKAAA,CAAA,EAAA;wDA0BtB,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,iBAAiB;gBAM1B,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,gBAAgB;;;AE5C9B;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucca-front/ng",
3
- "version": "19.3.3-rc.4",
3
+ "version": "19.3.3-rc.7",
4
4
  "description": "A library of icons made by the team @Lucca",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,8 +26,8 @@
26
26
  "@angular/common": "^19.0.0",
27
27
  "@angular/core": "^19.0.0",
28
28
  "@angular/cdk": "^19.0.0",
29
- "@lucca-front/icons": "19.3.3-rc.4",
30
- "@lucca-front/scss": "19.3.3-rc.4",
29
+ "@lucca-front/icons": "19.3.3-rc.7",
30
+ "@lucca-front/scss": "19.3.3-rc.7",
31
31
  "isomorphic-dompurify": "^2.17.0",
32
32
  "date-fns": "^3.6.0",
33
33
  "rxjs": "^7.8.0",
@@ -95,9 +95,9 @@
95
95
  "types": "./callout/index.d.ts",
96
96
  "default": "./fesm2022/lucca-front-ng-callout.mjs"
97
97
  },
98
- "./breadcrumbs": {
99
- "types": "./breadcrumbs/index.d.ts",
100
- "default": "./fesm2022/lucca-front-ng-breadcrumbs.mjs"
98
+ "./button": {
99
+ "types": "./button/index.d.ts",
100
+ "default": "./fesm2022/lucca-front-ng-button.mjs"
101
101
  },
102
102
  "./chip": {
103
103
  "types": "./chip/index.d.ts",
@@ -107,21 +107,25 @@
107
107
  "types": "./comment/index.d.ts",
108
108
  "default": "./fesm2022/lucca-front-ng-comment.mjs"
109
109
  },
110
- "./button": {
111
- "types": "./button/index.d.ts",
112
- "default": "./fesm2022/lucca-front-ng-button.mjs"
110
+ "./breadcrumbs": {
111
+ "types": "./breadcrumbs/index.d.ts",
112
+ "default": "./fesm2022/lucca-front-ng-breadcrumbs.mjs"
113
113
  },
114
114
  "./core": {
115
115
  "types": "./core/index.d.ts",
116
116
  "default": "./fesm2022/lucca-front-ng-core.mjs"
117
117
  },
118
+ "./date": {
119
+ "types": "./date/index.d.ts",
120
+ "default": "./fesm2022/lucca-front-ng-date.mjs"
121
+ },
118
122
  "./core-select": {
119
123
  "types": "./core-select/index.d.ts",
120
124
  "default": "./fesm2022/lucca-front-ng-core-select.mjs"
121
125
  },
122
- "./date": {
123
- "types": "./date/index.d.ts",
124
- "default": "./fesm2022/lucca-front-ng-date.mjs"
126
+ "./date2": {
127
+ "types": "./date2/index.d.ts",
128
+ "default": "./fesm2022/lucca-front-ng-date2.mjs"
125
129
  },
126
130
  "./department": {
127
131
  "types": "./department/index.d.ts",
@@ -135,10 +139,6 @@
135
139
  "types": "./divider/index.d.ts",
136
140
  "default": "./fesm2022/lucca-front-ng-divider.mjs"
137
141
  },
138
- "./date2": {
139
- "types": "./date2/index.d.ts",
140
- "default": "./fesm2022/lucca-front-ng-date2.mjs"
141
- },
142
142
  "./dropdown": {
143
143
  "types": "./dropdown/index.d.ts",
144
144
  "default": "./fesm2022/lucca-front-ng-dropdown.mjs"