@lucca-front/ng 21.1.0-rc.0 → 21.1.0-split.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/lucca-front-ng-a11y.mjs +6 -6
- package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-api.mjs +3 -3
- package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-box.mjs +1 -1
- package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-breadcrumbs.mjs +5 -5
- package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-bubble-icon.mjs +51 -0
- package/fesm2022/lucca-front-ng-bubble-icon.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-bubble-illustration.mjs +135 -0
- package/fesm2022/lucca-front-ng-bubble-illustration.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-button.mjs +1 -98
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +7 -7
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-chip.mjs +6 -6
- package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-clear.mjs +6 -6
- package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-color.mjs +28 -0
- package/fesm2022/lucca-front-ng-color.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-container.mjs +2 -2
- package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +12 -12
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +67 -48
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +15 -75
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-data-table.mjs +8 -8
- package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +63 -64
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +41 -45
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-department.mjs +7 -7
- package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +31 -8
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-empty-state.mjs +52 -10
- package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-establishment.mjs +10 -10
- package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs +40 -34
- package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills.mjs +14 -13
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +9 -63
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form.mjs +2 -2
- package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-formly.mjs +4 -4
- package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +8 -9
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +48 -48
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +119 -98
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +2 -2
- package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-icon.mjs +1 -27
- package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-index-table.mjs +3 -3
- package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-input.mjs +7 -7
- package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +6 -6
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listbox.mjs +1 -1
- package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listing.mjs +1 -1
- package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-main-layout.mjs +2 -2
- package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-mobile-push.mjs +6 -6
- package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +29 -29
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-option.mjs +26 -24
- package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-pagination.mjs +5 -5
- package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-plg-push.mjs +5 -5
- package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +13 -13
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-read-more.mjs +23 -21
- package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-resource-card.mjs +2 -2
- package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +18 -27
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +2 -2
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-sortable-list.mjs +1 -1
- package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-time.mjs +13 -13
- package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-toast.mjs +5 -5
- package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tooltip.mjs +8 -6
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tree-select.mjs +1 -1
- package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user-popover.mjs +6 -6
- package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +11 -11
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs +2 -2
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
- package/package.json +17 -3
- package/schematics/lib/local-deps/package-lock.json +2 -0
- package/schematics/lib/local-deps/package.json +1 -2
- package/types/lucca-front-ng-a11y.d.ts +3 -3
- package/types/lucca-front-ng-breadcrumbs.d.ts +9 -9
- package/types/lucca-front-ng-bubble-icon.d.ts +20 -0
- package/types/lucca-front-ng-bubble-illustration.d.ts +24 -0
- package/types/lucca-front-ng-button.d.ts +1 -40
- package/types/lucca-front-ng-callout.d.ts +2 -2
- package/types/lucca-front-ng-chip.d.ts +2 -2
- package/types/lucca-front-ng-clear.d.ts +2 -2
- package/types/lucca-front-ng-color.d.ts +12 -0
- package/types/lucca-front-ng-core-select.d.ts +21 -17
- package/types/lucca-front-ng-core.d.ts +25 -19
- package/types/lucca-front-ng-data-table.d.ts +2 -2
- package/types/lucca-front-ng-date.d.ts +5 -5
- package/types/lucca-front-ng-date2.d.ts +7 -7
- package/types/lucca-front-ng-department.d.ts +2 -2
- package/types/lucca-front-ng-dialog.d.ts +12 -5
- package/types/lucca-front-ng-empty-state.d.ts +6 -4
- package/types/lucca-front-ng-establishment.d.ts +2 -2
- package/types/lucca-front-ng-file-upload.d.ts +18 -8
- package/types/lucca-front-ng-filter-pills.d.ts +6 -5
- package/types/lucca-front-ng-form-field.d.ts +5 -26
- package/types/lucca-front-ng-forms-phone-number-input.d.ts +0 -1
- package/types/lucca-front-ng-forms-rich-text-input.d.ts +14 -16
- package/types/lucca-front-ng-forms.d.ts +40 -23
- package/types/lucca-front-ng-icon.d.ts +1 -17
- package/types/lucca-front-ng-input.d.ts +2 -2
- package/types/lucca-front-ng-link.d.ts +2 -2
- package/types/lucca-front-ng-mobile-push.d.ts +2 -2
- package/types/lucca-front-ng-multi-select.d.ts +26 -24
- package/types/lucca-front-ng-option.d.ts +8 -8
- package/types/lucca-front-ng-pagination.d.ts +2 -2
- package/types/lucca-front-ng-plg-push.d.ts +2 -2
- package/types/lucca-front-ng-popover2.d.ts +4 -4
- package/types/lucca-front-ng-read-more.d.ts +9 -9
- package/types/lucca-front-ng-simple-select.d.ts +5 -4
- package/types/lucca-front-ng-time.d.ts +6 -6
- package/types/lucca-front-ng-toast.d.ts +2 -2
- package/types/lucca-front-ng-tooltip.d.ts +5 -3
- package/types/lucca-front-ng-user-popover.d.ts +6 -7
- package/types/lucca-front-ng-user.d.ts +4 -4
|
@@ -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-config.ts","../../../packages/ng/dialog/model/dialog-ref.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-routing/dialog-routing.models.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.utils.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.component.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/lucca-front-ng-dialog.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-dialog-content',\n\ttemplate: '<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\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 { 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\ntype BaseLuDialogConfig<C, TData = LuDialogData<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: TData;\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' | 'XXL' | '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, TData = LuDialogData<T>> = [TData] extends [never] ? Omit<BaseLuDialogConfig<T, TData>, 'data'> : BaseLuDialogConfig<T, TData>;\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { isObservable, Observable, of, Subscription, take } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\nimport { LuDialogConfig, LuDialogData, 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, TData = LuDialogData<C>> {\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, TData>,\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 { DIALOG_DATA } from '@angular/cdk/dialog';\nimport { inject } from '@angular/core';\nimport { ɵDialogDataFlag, ɵDialogResultFlag } from './dialog-config';\nimport { LuDialogRef, LuDialogSelfRef } from './dialog-ref';\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\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\ten: {\n\t\tclose: 'Close',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_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 { ChangeDetectionStrategy, Component, contentChild, Directive, 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@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[dialogHeaderAction]',\n})\nexport class DialogHeaderAction {}\n\n@Component({\n\tselector: 'lu-dialog-header',\n\tstandalone: true,\n\timports: [IconComponent, ButtonComponent],\n\ttemplateUrl: './dialog-header.component.html',\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\toptionalAction = contentChild(DialogHeaderAction);\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","@if (dismissible) {\n\t<button class=\"dialog-inside-header-button\" type=\"button\" luButton (click)=\"close()\">\n\t\t<lu-icon icon=\"signClose\" [alt]=\"intl.close\" />\n\t</button>\n}\n@if (optionalAction()) {\n\t<div class=\"dialog-inside-header-actionOptional\"><ng-content select=\"[dialogHeaderAction]\" /></div>\n}\n\n<div class=\"dialog-inside-header-container\">\n\t<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, LuDialogData, 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, TData = LuDialogData<C>>(config: LuDialogConfig<C, NoInfer<TData>>): LuDialogRef<C, TData> {\n\t\tlet luDialogRef: LuDialogRef<C, TData>;\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 { ComponentType } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\nimport { Route } from '@angular/router';\nimport { LuDialogConfig, LuDialogData, LuDialogResult } from '../model';\nimport { DialogResolveFn } from './dialog-routing.utils';\n\nexport type DialogRouteComponentLoader<C> =\n\t| {\n\t\t\tcomponent: ComponentType<C>;\n\t }\n\t| {\n\t\t\tloadComponent: () => Promise<ComponentType<C>>;\n\t };\n\nexport type DialogRouteCloseTrigger = 'navigation' | 'dialog:closed';\nexport type DialogRouteDismissTrigger = 'navigation' | 'dialog:dismissed';\n\nexport type DialogRouteConfig<C> = DialogRouteComponentLoader<C> & {\n\tdialogConfigFactory: DialogResolveFn<DialogRouteDialogConfig<C>>;\n\tdataFactory: LuDialogData<C> extends never ? undefined : DialogResolveFn<LuDialogData<C>>;\n\t/**\n\t * When the dialog is closed, this callback is called with the result of the dialog.\n\t * This callback is called within injection context, so you can inject services in it.\n\t *\n\t * If needed, the reason the dialog was closed can retrieved using `inject(DIALOG_ROUTE_CLOSE_TRIGGER)`\n\t */\n\tonClosed?: (res: LuDialogResult<C>) => unknown;\n\t/**\n\t * When the dialog is dismissed, this callback is called.\n\t * This callback is called within injection context, so you can inject services in it.\n\t *\n\t * If needed, the reason the dialog was dismissed can retrieved using `inject(DIALOG_ROUTE_DISMISS_TRIGGER)`\n\t */\n\tonDismissed?: () => unknown;\n} & Omit<Route, 'component' | 'loadComponent'>;\n\nexport type DialogRouteDialogConfig<C> = Omit<LuDialogConfig<C>, 'data' | 'content'>;\n\nexport interface DialogRouteData<C> {\n\tdialogRouteConfig: DialogRouteConfig<C>;\n}\n\nexport const DIALOG_ROUTE_CLOSE_TRIGGER = new InjectionToken<DialogRouteCloseTrigger>('DIALOG_ROUTE_CLOSE_TRIGGER');\nexport const DIALOG_ROUTE_DISMISS_TRIGGER = new InjectionToken<DialogRouteDismissTrigger>('DIALOG_ROUTE_DISMISS_TRIGGER');\nexport const DIALOG_ROUTE_CONFIG = new InjectionToken<DialogRouteConfig<unknown>>('DIALOG_ROUTE_CONFIG');\n","import { ComponentType } from '@angular/cdk/overlay';\nimport { inject } from '@angular/core';\nimport { CanActivate, CanDeactivateFn, DeprecatedGuard, Route } from '@angular/router';\nimport { firstValueFrom, from, isObservable, Observable, of } from 'rxjs';\nimport { LuDialogData } from '../model';\nimport { DialogRoutingContainerComponent } from './dialog-routing.component';\nimport { DialogRouteConfig, DialogRouteData, DialogRouteDialogConfig } from './dialog-routing.models';\n\nexport type Deferrable<T> = Promise<T> | Observable<T> | T;\nexport type DialogResolveFn<T> = () => Deferrable<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 function createDialogRoute<C>(dialogRouteConfig: DialogRouteConfig<C>): Route {\n\tconst { dialogConfigFactory, dataFactory, canMatch, ...baseRoute } = dialogRouteConfig;\n\n\tconst data: DialogRouteData<C> = { dialogRouteConfig };\n\n\treturn {\n\t\tpath: dialogRouteConfig.path,\n\t\tcomponent: DialogRoutingContainerComponent,\n\t\tdata,\n\t\tcanMatch,\n\t\tchildren: [\n\t\t\t{\n\t\t\t\t...baseRoute,\n\t\t\t\tpath: '',\n\t\t\t\tcanDeactivate: dialogRouteConfig.canDeactivate\n\t\t\t\t\t?.map((fn) => toCanDeactivateFn(fn))\n\t\t\t\t\t?.map(\n\t\t\t\t\t\t(guard): CanDeactivateFn<C> =>\n\t\t\t\t\t\t\t(dialogComponentInstance, route, state, nextState) => {\n\t\t\t\t\t\t\t\t// If dialogComponentInstance is null, it means the dialog is already closed. We allow deactivation in this case.\n\t\t\t\t\t\t\t\tif (!dialogComponentInstance) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn guard(dialogComponentInstance, route, state, nextState);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport type DialogFactoryResultOptions<C> = {\n\tpath: string;\n\tdialogRouteConfig?: Partial<Omit<DialogRouteConfig<C>, 'path' | 'component' | 'loadComponent' | 'dataFactory'>>;\n} & (LuDialogData<C> extends never\n\t? { dataFactory?: never }\n\t: {\n\t\t\tdataFactory: DialogResolveFn<LuDialogData<C>>;\n\t\t});\n\nexport type DialogFactoryResult<C> = (options: DialogFactoryResultOptions<C>) => Route;\n\nexport type DialogFactoryConfig<C> = Partial<{\n\tdialogConfig: DialogRouteDialogConfig<C>;\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<C>({\n\t\t\tpath,\n\t\t\tcomponent,\n\t\t\tdataFactory: dataFactory as LuDialogData<C> extends never ? undefined : DialogResolveFn<LuDialogData<C>>,\n\t\t\tdialogConfigFactory: () => config?.dialogConfig ?? ({} as DialogRouteDialogConfig<C>),\n\t\t\t...mergeRouteConfig(config?.dialogRouteConfig, dialogRouteConfig),\n\t\t});\n}\n\nexport function dialogLazyRouteFactory<C>(loadComponent: () => Promise<ComponentType<C>>, config?: DialogFactoryConfig<C>): DialogFactoryResult<C> {\n\treturn ({ path, dataFactory, dialogRouteConfig }) =>\n\t\tcreateDialogRoute<C>({\n\t\t\tpath,\n\t\t\tloadComponent,\n\t\t\tdataFactory: dataFactory as LuDialogData<C> extends never ? undefined : DialogResolveFn<LuDialogData<C>>,\n\t\t\tdialogConfigFactory: () => config?.dialogConfig ?? ({} as DialogRouteDialogConfig<C>),\n\t\t\t...mergeRouteConfig(config?.dialogRouteConfig, dialogRouteConfig),\n\t\t});\n}\n\nfunction mergeRouteConfig<C>(config1: Partial<DialogRouteConfig<C>>, config2: Partial<DialogRouteConfig<C>>): Partial<DialogRouteConfig<C>> {\n\tif (!config1) {\n\t\treturn config2;\n\t}\n\n\tif (!config2) {\n\t\treturn config1;\n\t}\n\n\tconst result: Partial<DialogRouteConfig<C>> = { ...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-explicit-any\n\t\tresult[key] = [...(config1[key] ?? []), ...(config2[key] ?? [])] as any[];\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\t// If both configs have the same resolve key, we merge the objects\n\tif (config1.resolve && config2.resolve) {\n\t\tresult.resolve = { ...config1.resolve, ...config2.resolve };\n\t}\n\n\treturn result;\n}\n\nexport function toCanDeactivateFn<C>(guard: DeprecatedGuard | CanDeactivateFn<C>): CanDeactivateFn<C> {\n\tif (typeof guard === 'string') {\n\t\tthrow new Error('String guards are not supported in dialog routes');\n\t}\n\n\ttry {\n\t\tconst deprectedGuard = inject(guard) as CanActivate;\n\t\treturn (_component, currentRoute, _currentState, nextState) => deprectedGuard.canActivate(currentRoute, nextState);\n\t} catch {\n\t\treturn guard as CanDeactivateFn<C>;\n\t}\n}\n","import { assertInInjectionContext, ChangeDetectionStrategy, Component, DestroyRef, inject, Injector, OnDestroy, OnInit, runInInjectionContext, signal, TemplateRef, viewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, CanDeactivateFn, DeprecatedGuard, GuardResult, Router, RouterOutlet } from '@angular/router';\nimport { combineLatest, concat, map, Observable, of } from 'rxjs';\nimport { provideLuDialog } from '../dialog.providers';\nimport { LuDialogService } from '../dialog.service';\nimport { LuDialogRef, LuDialogResult } from '../model';\nimport {\n\tDIALOG_ROUTE_CLOSE_TRIGGER,\n\tDIALOG_ROUTE_CONFIG,\n\tDIALOG_ROUTE_DISMISS_TRIGGER,\n\tDialogRouteCloseTrigger,\n\tDialogRouteData,\n\tDialogRouteDialogConfig,\n\tDialogRouteDismissTrigger,\n} from './dialog-routing.models';\nimport { deferrableToObservable, deferrableToPromise, DialogResolveFn, toCanDeactivateFn } from './dialog-routing.utils';\n\n/**\n * Default onClosed/onDismissed function that navigates back to the parent route when the dialog is closed or dismissed.\n */\nexport function defaultOnClosedFn(): void;\n/**\n * Default onClosed/onDismissed function that navigates back to the parent route when the dialog is closed or dismissed.\n * @deprecated Use non-generic version instead.\n */\nexport function defaultOnClosedFn<_C>(): void;\nexport function defaultOnClosedFn<C>(): void {\n\tlet trigger: DialogRouteCloseTrigger | DialogRouteDismissTrigger | null = null;\n\n\ttry {\n\t\tassertInInjectionContext(defaultOnClosedFn);\n\t\ttrigger = inject(DIALOG_ROUTE_CLOSE_TRIGGER, { optional: true }) ?? inject(DIALOG_ROUTE_DISMISS_TRIGGER, { optional: true });\n\t} catch {\n\t\t// Not in injection context, do nothing\n\t}\n\n\tif (trigger === 'navigation') {\n\t\t// If the dialog is closed because of a navigation, we don't need to do anything.\n\t\t// It would cancel the navigation that is already in progress.\n\t\treturn;\n\t}\n\n\tconst router = inject(Router);\n\tconst route = inject(ActivatedRoute);\n\tconst routeData = route.snapshot.data as DialogRouteData<C>;\n\tconst next = routeData.dialogRouteConfig.path\n\t\t.split('/')\n\t\t.map(() => '..')\n\t\t.join('/');\n\n\treturn void router.navigate([next], {\n\t\trelativeTo: route.children[0],\n\t\tqueryParamsHandling: 'preserve',\n\t});\n}\n\n@Component({\n\tselector: 'lu-dialog-routing-container',\n\timports: [RouterOutlet],\n\ttemplate: `\n\t\t<ng-template>\n\t\t\t<router-outlet (activate)=\"dialogComponentInstance.set($event)\" (deactivate)=\"dialogComponentInstance.set(null)\" />\n\t\t</ng-template>\n\t`,\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\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\tprovideLuDialog(),\n\t\t{\n\t\t\tprovide: DIALOG_ROUTE_CONFIG,\n\t\t\tuseFactory: () => inject(DialogRoutingContainerComponent).config,\n\t\t},\n\t],\n})\nexport class DialogRoutingContainerComponent<C> implements OnDestroy, 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 = this.#routeData.dialogRouteConfig;\n\tprotected readonly dialogComponentInstance = signal<C | null>(null);\n\tprotected readonly dialogTemplate = viewChild.required(TemplateRef);\n\t#closeTrigger?: DialogRouteCloseTrigger | DialogRouteDismissTrigger;\n\n\t#ref?: LuDialogRef<C>;\n\n\tget #routeData(): DialogRouteData<C> {\n\t\treturn this.#route.snapshot.data as DialogRouteData<C>;\n\t}\n\n\tngOnInit(): void {\n\t\tvoid this.#openDialog();\n\t}\n\n\t/**\n\t * In this context, ngOnDestroy is called when the user navigates away from the route.\n\t * The navigation can be triggered:\n\t * - from within the dialog (#ref.dismissed => config.onClosed/defaultOnClosedFn/config.onDismissed/defaultOnClosedFn => ngOnDestroy)\n\t * - from router navigation (ngOnDestroy => #ref.dismissed => config.onDismissed/defaultOnClosedFn)\n\t */\n\tngOnDestroy(): void {\n\t\tthis.#closeTrigger ??= 'navigation';\n\t\tthis.#ref?.dismiss();\n\t}\n\n\tasync #openDialog(): Promise<void> {\n\t\tconst [data, dialogConfig] = await Promise.all([this.#resolve(this.config.dataFactory), this.#resolve(this.config.dialogConfigFactory)]);\n\n\t\tthis.#ref = this.#dialog.open<C>({\n\t\t\t...dialogConfig,\n\t\t\tcontent: this.dialogTemplate(),\n\t\t\tdata,\n\t\t\tcanClose: this.#getCanCloseFn(dialogConfig),\n\t\t});\n\n\t\tthis.#ref.result$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((result) => this.#onDialogClosed(result));\n\t\tthis.#ref.dismissed$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.#onDialogDismissed());\n\t}\n\n\t#getCanCloseFn(config: DialogRouteDialogConfig<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> | DeprecatedGuard)[]): () => 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\tcallCanDeactivateFn(canDeactivateFn: CanDeactivateFn<C> | DeprecatedGuard): Observable<GuardResult> {\n\t\tconst instance = this.dialogComponentInstance();\n\n\t\tif (!instance) {\n\t\t\t// If instance is null, it means the dialog is already closed. We allow deactivation in this case.\n\t\t\treturn of(true);\n\t\t}\n\n\t\tconst maybeAsyncResult = runInInjectionContext(this.injector, () => {\n\t\t\tconst canDeactivate = toCanDeactivateFn(canDeactivateFn);\n\t\t\treturn canDeactivate(instance, this.#route.snapshot, this.#router.routerState.snapshot, this.#router.routerState.snapshot);\n\t\t});\n\t\treturn deferrableToObservable(maybeAsyncResult);\n\t}\n\n\t#onDialogDismissed(): void {\n\t\tthis.#closeTrigger ??= 'dialog:dismissed';\n\n\t\tif (this.#closeTrigger === 'dialog:closed') {\n\t\t\tthrow new Error('Dialog cannot be both closed and dismissed');\n\t\t}\n\n\t\tconst injector = Injector.create({\n\t\t\tparent: this.injector,\n\t\t\tproviders: [{ provide: DIALOG_ROUTE_DISMISS_TRIGGER, useValue: this.#closeTrigger }],\n\t\t});\n\n\t\trunInInjectionContext(injector, () => {\n\t\t\tif (this.config.onDismissed) {\n\t\t\t\tthis.config.onDismissed();\n\t\t\t} else {\n\t\t\t\tdefaultOnClosedFn();\n\t\t\t}\n\t\t});\n\n\t\tthis.#ref = undefined;\n\t}\n\n\t#onDialogClosed(result: LuDialogResult<C>): void {\n\t\tthis.#closeTrigger ??= 'dialog:closed';\n\n\t\tif (this.#closeTrigger === 'dialog:dismissed') {\n\t\t\tthrow new Error('Dialog cannot be both closed and dismissed');\n\t\t}\n\n\t\tconst injector = Injector.create({\n\t\t\tparent: this.injector,\n\t\t\tproviders: [{ provide: DIALOG_ROUTE_CLOSE_TRIGGER, useValue: this.#closeTrigger }],\n\t\t});\n\n\t\trunInInjectionContext(injector, () => {\n\t\t\tif (this.config.onClosed) {\n\t\t\t\tthis.config.onClosed(result);\n\t\t\t} else {\n\t\t\t\tdefaultOnClosedFn();\n\t\t\t}\n\t\t});\n\n\t\tthis.#ref = undefined;\n\t}\n\n\tasync #resolve<T>(resolveFn: DialogResolveFn<T>): Promise<T | undefined> {\n\t\tif (!resolveFn) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst resolved = runInInjectionContext(this.injector, resolveFn);\n\t\treturn deferrableToPromise(resolved);\n\t}\n}\n","import { AfterViewInit, booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, inject, input, ViewEncapsulation } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Component({\n\tselector: 'lu-dialog',\n\ttemplate: '<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\treadonly stacked = input(false, { transform: booleanAttribute });\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.stacked()) {\n\t\t\tthis.dialogRef.cdkRef.overlayRef.addPanelClass('mod-stacked');\n\t\t}\n\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, inject } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Directive({\n\tselector: '[luDialogClose]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class DialogCloseDirective {\n\t#ref = inject<LuDialogRef>(LuDialogRef);\n\n\tclose() {\n\t\tthis.#ref.close();\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Directive({\n\tselector: '[luDialogDismiss]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class DialogDismissDirective {\n\t#ref = inject<LuDialogRef>(LuDialogRef);\n\n\tclose() {\n\t\tthis.#ref.dismiss();\n\t}\n}\n","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport { provideLuDialog } from '../dialog.providers';\nimport { LuDialogService } from '../dialog.service';\nimport { LuDialogConfig } from '../model';\n\n@Directive({\n\tselector: '[luDialogOpen]',\n\tproviders: [provideLuDialog()],\n\thost: {\n\t\t'(click)': 'click()',\n\t},\n})\nexport class DialogOpenDirective {\n\t#dialogService = inject(LuDialogService);\n\n\treadonly dialog = input.required<TemplateRef<void>>({ alias: 'luDialogOpen' });\n\n\treadonly luDialogConfig = input<LuDialogConfig<unknown>>();\n\n\tclick() {\n\t\tthis.#dialogService.open({\n\t\t\t...this.luDialogConfig(),\n\t\t\tcontent: this.dialog(),\n\t\t});\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-config.ts","../../../packages/ng/dialog/model/dialog-ref.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-routing/dialog-routing.models.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.reuse-strategy.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.utils.ts","../../../packages/ng/dialog/dialog-routing/dialog-routing.component.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/lucca-front-ng-dialog.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-dialog-content',\n\ttemplate: '<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\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 { 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\ntype BaseLuDialogConfig<C, TData = LuDialogData<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: TData;\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' | 'XXL' | '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, TData = LuDialogData<T>> = [TData] extends [never] ? Omit<BaseLuDialogConfig<T, TData>, 'data'> : BaseLuDialogConfig<T, TData>;\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { isObservable, Observable, of, Subscription, take } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\nimport { LuDialogConfig, LuDialogData, 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, TData = LuDialogData<C>> {\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, TData>,\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 { DIALOG_DATA } from '@angular/cdk/dialog';\nimport { inject } from '@angular/core';\nimport { ɵDialogDataFlag, ɵDialogResultFlag } from './dialog-config';\nimport { LuDialogRef, LuDialogSelfRef } from './dialog-ref';\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\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\ten: {\n\t\tclose: 'Close',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_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 { ChangeDetectionStrategy, Component, contentChild, Directive, ElementRef, inject, input, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions } 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@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: '[dialogHeaderAction]',\n})\nexport class DialogHeaderAction {}\n\n@Component({\n\tselector: 'lu-dialog-header',\n\tstandalone: true,\n\timports: [IconComponent, ButtonComponent],\n\ttemplateUrl: './dialog-header.component.html',\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 = input(...intlInputOptions(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\toptionalAction = contentChild(DialogHeaderAction);\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","@if (dismissible) {\n\t<button class=\"dialog-inside-header-button\" type=\"button\" luButton (click)=\"close()\">\n\t\t<lu-icon icon=\"signClose\" [alt]=\"intl().close\" />\n\t</button>\n}\n@if (optionalAction()) {\n\t<div class=\"dialog-inside-header-actionOptional\"><ng-content select=\"[dialogHeaderAction]\" /></div>\n}\n\n<div class=\"dialog-inside-header-container\">\n\t<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, LuDialogData, 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, TData = LuDialogData<C>>(config: LuDialogConfig<C, NoInfer<TData>>): LuDialogRef<C, TData> {\n\t\tlet luDialogRef: LuDialogRef<C, TData>;\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 { ComponentType } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\nimport { Route } from '@angular/router';\nimport { LuDialogConfig, LuDialogData, LuDialogResult } from '../model';\nimport { DialogResolveFn } from './dialog-routing.utils';\n\nexport type DialogRouteComponentLoader<C> =\n\t| {\n\t\t\tcomponent: ComponentType<C>;\n\t }\n\t| {\n\t\t\tloadComponent: () => Promise<ComponentType<C>>;\n\t };\n\nexport type DialogRouteCloseTrigger = 'navigation' | 'dialog:closed';\nexport type DialogRouteDismissTrigger = 'navigation' | 'dialog:dismissed';\n\nexport type DialogRouteConfig<C> = DialogRouteComponentLoader<C> & {\n\tdialogConfigFactory: DialogResolveFn<DialogRouteDialogConfig<C>>;\n\tdataFactory: LuDialogData<C> extends never ? undefined : DialogResolveFn<LuDialogData<C>>;\n\t/**\n\t * When the dialog is closed, this callback is called with the result of the dialog.\n\t * This callback is called within injection context, so you can inject services in it.\n\t *\n\t * If needed, the reason the dialog was closed can retrieved using `inject(DIALOG_ROUTE_CLOSE_TRIGGER)`\n\t */\n\tonClosed?: (res: LuDialogResult<C>) => unknown;\n\t/**\n\t * When the dialog is dismissed, this callback is called.\n\t * This callback is called within injection context, so you can inject services in it.\n\t *\n\t * If needed, the reason the dialog was dismissed can retrieved using `inject(DIALOG_ROUTE_DISMISS_TRIGGER)`\n\t */\n\tonDismissed?: () => unknown;\n} & Omit<Route, 'component' | 'loadComponent'>;\n\nexport type DialogRouteDialogConfig<C> = Omit<LuDialogConfig<C>, 'data' | 'content'>;\n\nexport interface DialogRouteData<C> {\n\tdialogRouteConfig: DialogRouteConfig<C>;\n}\n\nexport const DIALOG_ROUTE_CLOSE_TRIGGER = new InjectionToken<DialogRouteCloseTrigger>('DIALOG_ROUTE_CLOSE_TRIGGER');\nexport const DIALOG_ROUTE_DISMISS_TRIGGER = new InjectionToken<DialogRouteDismissTrigger>('DIALOG_ROUTE_DISMISS_TRIGGER');\nexport const DIALOG_ROUTE_CONFIG = new InjectionToken<DialogRouteConfig<unknown>>('DIALOG_ROUTE_CONFIG');\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { ActivatedRouteSnapshot, BaseRouteReuseStrategy, RouteReuseStrategy } from '@angular/router';\n\nexport function provideDialogRoutingReuseStrategy(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([{ provide: RouteReuseStrategy, useClass: LuccaDialogRoutingReuseStrategy }]);\n}\n\nexport const noRouteReuseFlag = Symbol('ɵdoNotReuseComponentFlag');\n\nexport class LuccaDialogRoutingReuseStrategy extends BaseRouteReuseStrategy {\n\toverride shouldReuseRoute(future: ActivatedRouteSnapshot, current: ActivatedRouteSnapshot): boolean {\n\t\tconst base = super.shouldReuseRoute(future, current);\n\n\t\tif (!base) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Modal should close then re-open when navigating to the same route with different parameters\n\t\tif (future.component?.[noRouteReuseFlag]) {\n\t\t\tconst futureUrlSegments = future.url.map((s) => s.path).join('/');\n\t\t\tconst currentUrlSegments = current.url.map((s) => s.path).join('/');\n\t\t\treturn futureUrlSegments === currentUrlSegments;\n\t\t}\n\n\t\treturn true;\n\t}\n}\n","import { ComponentType } from '@angular/cdk/overlay';\nimport { inject } from '@angular/core';\nimport { CanActivate, CanDeactivateFn, DeprecatedGuard, Route } from '@angular/router';\nimport { firstValueFrom, from, isObservable, Observable, of } from 'rxjs';\nimport { LuDialogData } from '../model';\nimport { DialogRoutingContainerComponent } from './dialog-routing.component';\nimport { DialogRouteConfig, DialogRouteData, DialogRouteDialogConfig } from './dialog-routing.models';\n\nexport type Deferrable<T> = Promise<T> | Observable<T> | T;\nexport type DialogResolveFn<T> = () => Deferrable<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 function createDialogRoute<C>(dialogRouteConfig: DialogRouteConfig<C>): Route {\n\tconst { dialogConfigFactory, dataFactory, canMatch, ...baseRoute } = dialogRouteConfig;\n\n\tconst data: DialogRouteData<C> = { dialogRouteConfig };\n\n\treturn {\n\t\tpath: dialogRouteConfig.path,\n\t\tcomponent: DialogRoutingContainerComponent,\n\t\tdata,\n\t\tcanMatch,\n\t\tchildren: [\n\t\t\t{\n\t\t\t\t...baseRoute,\n\t\t\t\tpath: '',\n\t\t\t\tcanDeactivate: dialogRouteConfig.canDeactivate\n\t\t\t\t\t?.map((fn) => toCanDeactivateFn(fn))\n\t\t\t\t\t?.map(\n\t\t\t\t\t\t(guard): CanDeactivateFn<C> =>\n\t\t\t\t\t\t\t(dialogComponentInstance, route, state, nextState) => {\n\t\t\t\t\t\t\t\t// If dialogComponentInstance is null, it means the dialog is already closed. We allow deactivation in this case.\n\t\t\t\t\t\t\t\tif (!dialogComponentInstance) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn guard(dialogComponentInstance, route, state, nextState);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport type DialogFactoryResultOptions<C> = {\n\tpath: string;\n\tdialogRouteConfig?: Partial<Omit<DialogRouteConfig<C>, 'path' | 'component' | 'loadComponent' | 'dataFactory'>>;\n} & (LuDialogData<C> extends never\n\t? { dataFactory?: never }\n\t: {\n\t\t\tdataFactory: DialogResolveFn<LuDialogData<C>>;\n\t\t});\n\nexport type DialogFactoryResult<C> = (options: DialogFactoryResultOptions<C>) => Route;\n\nexport type DialogFactoryConfig<C> = Partial<{\n\tdialogConfig: DialogRouteDialogConfig<C>;\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<C>({\n\t\t\tpath,\n\t\t\tcomponent,\n\t\t\tdataFactory: dataFactory as LuDialogData<C> extends never ? undefined : DialogResolveFn<LuDialogData<C>>,\n\t\t\tdialogConfigFactory: () => config?.dialogConfig ?? ({} as DialogRouteDialogConfig<C>),\n\t\t\t...mergeRouteConfig(config?.dialogRouteConfig, dialogRouteConfig),\n\t\t});\n}\n\nexport function dialogLazyRouteFactory<C>(loadComponent: () => Promise<ComponentType<C>>, config?: DialogFactoryConfig<C>): DialogFactoryResult<C> {\n\treturn ({ path, dataFactory, dialogRouteConfig }) =>\n\t\tcreateDialogRoute<C>({\n\t\t\tpath,\n\t\t\tloadComponent,\n\t\t\tdataFactory: dataFactory as LuDialogData<C> extends never ? undefined : DialogResolveFn<LuDialogData<C>>,\n\t\t\tdialogConfigFactory: () => config?.dialogConfig ?? ({} as DialogRouteDialogConfig<C>),\n\t\t\t...mergeRouteConfig(config?.dialogRouteConfig, dialogRouteConfig),\n\t\t});\n}\n\nfunction mergeRouteConfig<C>(config1: Partial<DialogRouteConfig<C>>, config2: Partial<DialogRouteConfig<C>>): Partial<DialogRouteConfig<C>> {\n\tif (!config1) {\n\t\treturn config2;\n\t}\n\n\tif (!config2) {\n\t\treturn config1;\n\t}\n\n\tconst result: Partial<DialogRouteConfig<C>> = { ...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-explicit-any\n\t\tresult[key] = [...(config1[key] ?? []), ...(config2[key] ?? [])] as any[];\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\t// If both configs have the same resolve key, we merge the objects\n\tif (config1.resolve && config2.resolve) {\n\t\tresult.resolve = { ...config1.resolve, ...config2.resolve };\n\t}\n\n\treturn result;\n}\n\nexport function toCanDeactivateFn<C>(guard: DeprecatedGuard | CanDeactivateFn<C>): CanDeactivateFn<C> {\n\tif (typeof guard === 'string') {\n\t\tthrow new Error('String guards are not supported in dialog routes');\n\t}\n\n\ttry {\n\t\tconst deprectedGuard = inject(guard) as CanActivate;\n\t\treturn (_component, currentRoute, _currentState, nextState) => deprectedGuard.canActivate(currentRoute, nextState);\n\t} catch {\n\t\treturn guard as CanDeactivateFn<C>;\n\t}\n}\n","import { assertInInjectionContext, ChangeDetectionStrategy, Component, DestroyRef, inject, Injector, OnDestroy, OnInit, runInInjectionContext, signal, TemplateRef, viewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, CanDeactivateFn, DeprecatedGuard, GuardResult, Router, RouterOutlet } from '@angular/router';\nimport { combineLatest, concat, map, Observable, of } from 'rxjs';\nimport { provideLuDialog } from '../dialog.providers';\nimport { LuDialogService } from '../dialog.service';\nimport { LuDialogRef, LuDialogResult } from '../model';\nimport {\n\tDIALOG_ROUTE_CLOSE_TRIGGER,\n\tDIALOG_ROUTE_CONFIG,\n\tDIALOG_ROUTE_DISMISS_TRIGGER,\n\tDialogRouteCloseTrigger,\n\tDialogRouteData,\n\tDialogRouteDialogConfig,\n\tDialogRouteDismissTrigger,\n} from './dialog-routing.models';\nimport { noRouteReuseFlag } from './dialog-routing.reuse-strategy';\nimport { deferrableToObservable, deferrableToPromise, DialogResolveFn, toCanDeactivateFn } from './dialog-routing.utils';\n\n/**\n * Default onClosed/onDismissed function that navigates back to the parent route when the dialog is closed or dismissed.\n */\nexport function defaultOnClosedFn(): void;\n/**\n * Default onClosed/onDismissed function that navigates back to the parent route when the dialog is closed or dismissed.\n * @deprecated Use non-generic version instead.\n */\nexport function defaultOnClosedFn<_C>(): void;\nexport function defaultOnClosedFn<C>(): void {\n\tlet trigger: DialogRouteCloseTrigger | DialogRouteDismissTrigger | null = null;\n\n\ttry {\n\t\tassertInInjectionContext(defaultOnClosedFn);\n\t\ttrigger = inject(DIALOG_ROUTE_CLOSE_TRIGGER, { optional: true }) ?? inject(DIALOG_ROUTE_DISMISS_TRIGGER, { optional: true });\n\t} catch {\n\t\t// Not in injection context, do nothing\n\t}\n\n\tif (trigger === 'navigation') {\n\t\t// If the dialog is closed because of a navigation, we don't need to do anything.\n\t\t// It would cancel the navigation that is already in progress.\n\t\treturn;\n\t}\n\n\tconst router = inject(Router);\n\tconst route = inject(ActivatedRoute);\n\tconst routeData = route.snapshot.data as DialogRouteData<C>;\n\tconst next = routeData.dialogRouteConfig.path\n\t\t.split('/')\n\t\t.map(() => '..')\n\t\t.join('/');\n\n\treturn void router.navigate([next], {\n\t\trelativeTo: route.children[0],\n\t\tqueryParamsHandling: 'preserve',\n\t});\n}\n\n@Component({\n\tselector: 'lu-dialog-routing-container',\n\timports: [RouterOutlet],\n\ttemplate: `\n\t\t<ng-template>\n\t\t\t<router-outlet (activate)=\"dialogComponentInstance.set($event)\" (deactivate)=\"dialogComponentInstance.set(null)\" />\n\t\t</ng-template>\n\t`,\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\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\tprovideLuDialog(),\n\t\t{\n\t\t\tprovide: DIALOG_ROUTE_CONFIG,\n\t\t\tuseFactory: () => inject(DialogRoutingContainerComponent).config,\n\t\t},\n\t],\n})\nexport class DialogRoutingContainerComponent<C> implements OnDestroy, 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 = this.#routeData.dialogRouteConfig;\n\tprotected readonly dialogComponentInstance = signal<C | null>(null);\n\tprotected readonly dialogTemplate = viewChild.required(TemplateRef);\n\t#closeTrigger?: DialogRouteCloseTrigger | DialogRouteDismissTrigger;\n\n\t#ref?: LuDialogRef<C>;\n\n\tstatic [noRouteReuseFlag] = true;\n\n\tget #routeData(): DialogRouteData<C> {\n\t\treturn this.#route.snapshot.data as DialogRouteData<C>;\n\t}\n\n\tngOnInit(): void {\n\t\tvoid this.#openDialog();\n\t}\n\n\t/**\n\t * In this context, ngOnDestroy is called when the user navigates away from the route.\n\t * The navigation can be triggered:\n\t * - from within the dialog (#ref.dismissed => config.onClosed/defaultOnClosedFn/config.onDismissed/defaultOnClosedFn => ngOnDestroy)\n\t * - from router navigation (ngOnDestroy => #ref.dismissed => config.onDismissed/defaultOnClosedFn)\n\t */\n\tngOnDestroy(): void {\n\t\tthis.#closeTrigger ??= 'navigation';\n\t\tthis.#ref?.dismiss();\n\t}\n\n\tasync #openDialog(): Promise<void> {\n\t\tconst [data, dialogConfig] = await Promise.all([this.#resolve(this.config.dataFactory), this.#resolve(this.config.dialogConfigFactory)]);\n\n\t\tthis.#ref = this.#dialog.open<C>({\n\t\t\t...dialogConfig,\n\t\t\tcontent: this.dialogTemplate(),\n\t\t\tdata,\n\t\t\tcanClose: this.#getCanCloseFn(dialogConfig),\n\t\t});\n\n\t\tthis.#ref.result$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((result) => this.#onDialogClosed(result));\n\t\tthis.#ref.dismissed$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.#onDialogDismissed());\n\t}\n\n\t#getCanCloseFn(config: DialogRouteDialogConfig<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> | DeprecatedGuard)[]): () => 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\tcallCanDeactivateFn(canDeactivateFn: CanDeactivateFn<C> | DeprecatedGuard): Observable<GuardResult> {\n\t\tconst instance = this.dialogComponentInstance();\n\n\t\tif (!instance) {\n\t\t\t// If instance is null, it means the dialog is already closed. We allow deactivation in this case.\n\t\t\treturn of(true);\n\t\t}\n\n\t\tconst maybeAsyncResult = runInInjectionContext(this.injector, () => {\n\t\t\tconst canDeactivate = toCanDeactivateFn(canDeactivateFn);\n\t\t\treturn canDeactivate(instance, this.#route.snapshot, this.#router.routerState.snapshot, this.#router.routerState.snapshot);\n\t\t});\n\t\treturn deferrableToObservable(maybeAsyncResult);\n\t}\n\n\t#onDialogDismissed(): void {\n\t\tthis.#closeTrigger ??= 'dialog:dismissed';\n\n\t\tif (this.#closeTrigger === 'dialog:closed') {\n\t\t\tthrow new Error('Dialog cannot be both closed and dismissed');\n\t\t}\n\n\t\tconst injector = Injector.create({\n\t\t\tparent: this.injector,\n\t\t\tproviders: [{ provide: DIALOG_ROUTE_DISMISS_TRIGGER, useValue: this.#closeTrigger }],\n\t\t});\n\n\t\trunInInjectionContext(injector, () => {\n\t\t\tif (this.config.onDismissed) {\n\t\t\t\tthis.config.onDismissed();\n\t\t\t} else {\n\t\t\t\tdefaultOnClosedFn();\n\t\t\t}\n\t\t});\n\n\t\tthis.#ref = undefined;\n\t}\n\n\t#onDialogClosed(result: LuDialogResult<C>): void {\n\t\tthis.#closeTrigger ??= 'dialog:closed';\n\n\t\tif (this.#closeTrigger === 'dialog:dismissed') {\n\t\t\tthrow new Error('Dialog cannot be both closed and dismissed');\n\t\t}\n\n\t\tconst injector = Injector.create({\n\t\t\tparent: this.injector,\n\t\t\tproviders: [{ provide: DIALOG_ROUTE_CLOSE_TRIGGER, useValue: this.#closeTrigger }],\n\t\t});\n\n\t\trunInInjectionContext(injector, () => {\n\t\t\tif (this.config.onClosed) {\n\t\t\t\tthis.config.onClosed(result);\n\t\t\t} else {\n\t\t\t\tdefaultOnClosedFn();\n\t\t\t}\n\t\t});\n\n\t\tthis.#ref = undefined;\n\t}\n\n\tasync #resolve<T>(resolveFn: DialogResolveFn<T>): Promise<T | undefined> {\n\t\tif (!resolveFn) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst resolved = runInInjectionContext(this.injector, resolveFn);\n\t\treturn deferrableToPromise(resolved);\n\t}\n}\n","import { AfterViewInit, booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, inject, input, ViewEncapsulation } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Component({\n\tselector: 'lu-dialog',\n\ttemplate: '<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\treadonly stacked = input(false, { transform: booleanAttribute });\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.stacked()) {\n\t\t\tthis.dialogRef.cdkRef.overlayRef.addPanelClass('mod-stacked');\n\t\t}\n\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, inject } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Directive({\n\tselector: '[luDialogClose]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class DialogCloseDirective {\n\t#ref = inject<LuDialogRef>(LuDialogRef);\n\n\tclose() {\n\t\tthis.#ref.close();\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { LuDialogRef } from '../model';\n\n@Directive({\n\tselector: '[luDialogDismiss]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class DialogDismissDirective {\n\t#ref = inject<LuDialogRef>(LuDialogRef);\n\n\tclose() {\n\t\tthis.#ref.dismiss();\n\t}\n}\n","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport { provideLuDialog } from '../dialog.providers';\nimport { LuDialogService } from '../dialog.service';\nimport { LuDialogConfig } from '../model';\n\n@Directive({\n\tselector: '[luDialogOpen]',\n\tproviders: [provideLuDialog()],\n\thost: {\n\t\t'(click)': 'click()',\n\t},\n})\nexport class DialogOpenDirective {\n\t#dialogService = inject(LuDialogService);\n\n\treadonly dialog = input.required<TemplateRef<void>>({ alias: 'luDialogOpen' });\n\n\treadonly luDialogConfig = input<LuDialogConfig<unknown>>();\n\n\tclick() {\n\t\tthis.#dialogService.open({\n\t\t\t...this.luDialogConfig(),\n\t\t\tcontent: this.dialog(),\n\t\t});\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,7 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, numberAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component,
|
|
2
|
+
import { input, numberAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component, computed, booleanAttribute } from '@angular/core';
|
|
3
3
|
import { PortalDirective } from '@lucca-front/ng/core';
|
|
4
4
|
import { LuSafeExternalSvgPipe } from '@lucca-front/ng/safe-content';
|
|
5
|
+
import { BubbleIllustrationComponent } from '@lucca-front/ng/bubble-illustration';
|
|
5
6
|
|
|
6
7
|
class EmptyStatePageComponent {
|
|
7
8
|
constructor() {
|
|
@@ -35,21 +36,62 @@ class EmptyStatePageComponent {
|
|
|
35
36
|
this.hx = input(1, { ...(ngDevMode ? { debugName: "hx" } : {}), transform: numberAttribute });
|
|
36
37
|
}
|
|
37
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EmptyStatePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: EmptyStatePageComponent, isStandalone: true, selector: "lu-empty-state-page", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, topRightBackground: { classPropertyName: "topRightBackground", publicName: "topRightBackground", isSignal: true, isRequired: false, transformFunction: null }, topRightForeground: { classPropertyName: "topRightForeground", publicName: "topRightForeground", isSignal: true, isRequired: false, transformFunction: null }, bottomLeftBackground: { classPropertyName: "bottomLeftBackground", publicName: "bottomLeftBackground", isSignal: true, isRequired: false, transformFunction: null }, bottomLeftForeground: { classPropertyName: "bottomLeftForeground", publicName: "bottomLeftForeground", isSignal: true, isRequired: false, transformFunction: null }, contentBackgroundColor: { classPropertyName: "contentBackgroundColor", publicName: "contentBackgroundColor", isSignal: true, isRequired: false, transformFunction: null }, slotTop: { classPropertyName: "slotTop", publicName: "slotTop", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, hx: { classPropertyName: "hx", publicName: "hx", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "emptyState-wrapper" }, ngImport: i0, template: "<section\n\tclass=\"emptyState mod-page\"\n\t[attr.role]=\"heading() ? null : 'presentation'\"\n\t[style.--components-emptyState-background-color]=\"contentBackgroundColor()\"\n\tstyle.--components-emptyState-illustration-background-bottom-left=\"url({{ bottomLeftBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-bottom-left=\"url({{ bottomLeftForeground() }})\"\n\tstyle.--components-emptyState-illustration-background-top-right=\"url({{ topRightBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-top-right=\"url({{ topRightForeground() }})\"\n>\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (icon()) {\n\t\t\t\t<div class=\"emptyState-content-icon\" aria-hidden=\"true\" [innerHtml]=\"icon() | luSafeExternalSvg\"></div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (slotTop()) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ng-container *luPortal=\"slotTop()\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n", styles: ["@layer components{.emptyState{--components-emptyState-container-maxWidth: calc(100vw - var(--commons-navSide-width) - 7rem);--components-emptyState-container-left: calc(var(--commons-navSide-width) +
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: EmptyStatePageComponent, isStandalone: true, selector: "lu-empty-state-page", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, topRightBackground: { classPropertyName: "topRightBackground", publicName: "topRightBackground", isSignal: true, isRequired: false, transformFunction: null }, topRightForeground: { classPropertyName: "topRightForeground", publicName: "topRightForeground", isSignal: true, isRequired: false, transformFunction: null }, bottomLeftBackground: { classPropertyName: "bottomLeftBackground", publicName: "bottomLeftBackground", isSignal: true, isRequired: false, transformFunction: null }, bottomLeftForeground: { classPropertyName: "bottomLeftForeground", publicName: "bottomLeftForeground", isSignal: true, isRequired: false, transformFunction: null }, contentBackgroundColor: { classPropertyName: "contentBackgroundColor", publicName: "contentBackgroundColor", isSignal: true, isRequired: false, transformFunction: null }, slotTop: { classPropertyName: "slotTop", publicName: "slotTop", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, hx: { classPropertyName: "hx", publicName: "hx", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "emptyState-wrapper" }, ngImport: i0, template: "<section\n\tclass=\"emptyState mod-page\"\n\t[attr.role]=\"heading() ? null : 'presentation'\"\n\t[style.--components-emptyState-background-color]=\"contentBackgroundColor()\"\n\tstyle.--components-emptyState-illustration-background-bottom-left=\"url({{ bottomLeftBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-bottom-left=\"url({{ bottomLeftForeground() }})\"\n\tstyle.--components-emptyState-illustration-background-top-right=\"url({{ topRightBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-top-right=\"url({{ topRightForeground() }})\"\n>\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (icon()) {\n\t\t\t\t<div class=\"emptyState-content-icon\" aria-hidden=\"true\" [innerHtml]=\"icon() | luSafeExternalSvg\"></div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (slotTop()) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ng-container *luPortal=\"slotTop()\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n", styles: ["@layer components{.emptyState{--components-emptyState-container-maxWidth: calc(100vw - var(--commons-navSide-width) - 7rem);--components-emptyState-container-left: calc(var(--commons-navSide-width) + var(--pr-t-spacings-400));--components-emptyState-container-position: static;--components-emptyState-background-color: var(--pr-t-elevation-surface-default);--components-emptyState-illustration-top-right-offset-left: min( calc(100% + 5rem) , calc(var(--components-emptyState-container-maxWidth) - 8.5rem) );--components-emptyState-illustration-top-right-offset-left-S: min( calc(100% + 3.5rem) , calc(var(--components-emptyState-container-maxWidth) - 8.5rem) );--background-left-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-bottom-left-01.svg);--foreground-left-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/core-hr-01.svg);--background-right-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-top-right-01.svg);--foreground-right-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/generic/coffee-01.svg);--components-emptyState-illustration-background-bottom-left: var(--background-left-01);--components-emptyState-illustration-foreground-bottom-left: var(--foreground-left-01);--components-emptyState-illustration-background-top-right: var(--background-right-01);--components-emptyState-illustration-foreground-top-right: var(--foreground-right-01);display:flex;flex-direction:column;flex-grow:1;padding:var(--pr-t-spacings-200)}.emptyState-container{align-items:center;display:flex;flex-grow:1;justify-content:center;max-inline-size:var(--components-emptyState-container-maxWidth);inset-inline-start:var(--components-emptyState-container-left);padding:0;inline-size:100%;position:var(--components-emptyState-container-position)}.emptyState-content{border-radius:var(--pr-t-border-radius-structure);max-inline-size:100%;padding:var(--pr-t-spacings-50);inline-size:calc(25rem + var(--pr-t-spacings-50) * 2)}.emptyState-content-icon{--components-emptyState-icon-background-color: var(--palettes-100, var(--palettes-product-100));--components-emptyState-icon-action-color: var(--palettes-600, var(--palettes-brand-600));display:inline-flex;margin-block-end:var(--pr-t-spacings-200)}.emptyState-content-text{padding-inline:var(--pr-t-spacings-50)}.emptyState-content-heading{font:var(--pr-t-font-heading-3);margin-block-end:var(--pr-t-spacings-50)}.emptyState-content-description{margin:0}.emptyState-actions{display:flex;flex-wrap:wrap;align-items:center;margin-block-start:var(--pr-t-spacings-200);gap:var(--pr-t-spacings-200)}.emptyState-actions .button{margin:0}.emptyState-actions:empty{display:none}}@layer mods{.emptyState.mod-page{--components-emptyState-container-maxWidth: var(--commons-container-maxWidth);background-image:var(--components-emptyState-illustration-foreground-bottom-left),var(--components-emptyState-illustration-background-bottom-left),var(--components-emptyState-illustration-foreground-top-right),var(--components-emptyState-illustration-background-top-right);background-repeat:no-repeat;background-position:bottom left,bottom left,top left var(--components-emptyState-illustration-top-right-offset-left),top left var(--components-emptyState-illustration-top-right-offset-left)}@media not all and (min-width:50em){.emptyState.mod-page{background-position:bottom left,bottom left,top left var(--components-emptyState-illustration-top-right-offset-left-S),top left var(--components-emptyState-illustration-top-right-offset-left-S);background-size:auto 10.875rem}}.emptyState.mod-page .emptyState-content{background-color:var(--components-emptyState-background-color);box-shadow:0 0 8px 4px var(--components-emptyState-background-color)}.emptyState.mod-page .emptyState-content-text{padding:0}.emptyState.mod-page .emptyState-content-heading{font:var(--pr-t-font-heading-1)}@media not all and (min-width:30em){.emptyState.mod-page .emptyState-content-heading{font:var(--pr-t-font-heading-2)}}@media not all and (min-width:30em){.emptyState.mod-page .emptyState-actions .button{flex-basis:100%}}.emptyState.mod-center{text-align:center}.emptyState.mod-center .emptyState-actions{justify-content:center}.table .emptyState,.indexTable .emptyState,.dataTable .emptyState{--components-emptyState-container-position: sticky}.container .emptyState{--components-emptyState-container-maxWidth: none;--components-emptyState-container-left: auto}}@layer components{.emptyState-wrapper{display:flex;flex-direction:column;flex-grow:1}}\n"], dependencies: [{ kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "pipe", type: LuSafeExternalSvgPipe, name: "luSafeExternalSvg" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
39
40
|
}
|
|
40
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EmptyStatePageComponent, decorators: [{
|
|
41
42
|
type: Component,
|
|
42
43
|
args: [{ selector: 'lu-empty-state-page', imports: [LuSafeExternalSvgPipe, PortalDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
43
44
|
class: 'emptyState-wrapper',
|
|
44
|
-
}, template: "<section\n\tclass=\"emptyState mod-page\"\n\t[attr.role]=\"heading() ? null : 'presentation'\"\n\t[style.--components-emptyState-background-color]=\"contentBackgroundColor()\"\n\tstyle.--components-emptyState-illustration-background-bottom-left=\"url({{ bottomLeftBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-bottom-left=\"url({{ bottomLeftForeground() }})\"\n\tstyle.--components-emptyState-illustration-background-top-right=\"url({{ topRightBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-top-right=\"url({{ topRightForeground() }})\"\n>\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (icon()) {\n\t\t\t\t<div class=\"emptyState-content-icon\" aria-hidden=\"true\" [innerHtml]=\"icon() | luSafeExternalSvg\"></div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (slotTop()) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ng-container *luPortal=\"slotTop()\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n", styles: ["@layer components{.emptyState{--components-emptyState-container-maxWidth: calc(100vw - var(--commons-navSide-width) - 7rem);--components-emptyState-container-left: calc(var(--commons-navSide-width) +
|
|
45
|
+
}, template: "<section\n\tclass=\"emptyState mod-page\"\n\t[attr.role]=\"heading() ? null : 'presentation'\"\n\t[style.--components-emptyState-background-color]=\"contentBackgroundColor()\"\n\tstyle.--components-emptyState-illustration-background-bottom-left=\"url({{ bottomLeftBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-bottom-left=\"url({{ bottomLeftForeground() }})\"\n\tstyle.--components-emptyState-illustration-background-top-right=\"url({{ topRightBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-top-right=\"url({{ topRightForeground() }})\"\n>\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (icon()) {\n\t\t\t\t<div class=\"emptyState-content-icon\" aria-hidden=\"true\" [innerHtml]=\"icon() | luSafeExternalSvg\"></div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (slotTop()) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ng-container *luPortal=\"slotTop()\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n", styles: ["@layer components{.emptyState{--components-emptyState-container-maxWidth: calc(100vw - var(--commons-navSide-width) - 7rem);--components-emptyState-container-left: calc(var(--commons-navSide-width) + var(--pr-t-spacings-400));--components-emptyState-container-position: static;--components-emptyState-background-color: var(--pr-t-elevation-surface-default);--components-emptyState-illustration-top-right-offset-left: min( calc(100% + 5rem) , calc(var(--components-emptyState-container-maxWidth) - 8.5rem) );--components-emptyState-illustration-top-right-offset-left-S: min( calc(100% + 3.5rem) , calc(var(--components-emptyState-container-maxWidth) - 8.5rem) );--background-left-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-bottom-left-01.svg);--foreground-left-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/core-hr-01.svg);--background-right-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-top-right-01.svg);--foreground-right-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/generic/coffee-01.svg);--components-emptyState-illustration-background-bottom-left: var(--background-left-01);--components-emptyState-illustration-foreground-bottom-left: var(--foreground-left-01);--components-emptyState-illustration-background-top-right: var(--background-right-01);--components-emptyState-illustration-foreground-top-right: var(--foreground-right-01);display:flex;flex-direction:column;flex-grow:1;padding:var(--pr-t-spacings-200)}.emptyState-container{align-items:center;display:flex;flex-grow:1;justify-content:center;max-inline-size:var(--components-emptyState-container-maxWidth);inset-inline-start:var(--components-emptyState-container-left);padding:0;inline-size:100%;position:var(--components-emptyState-container-position)}.emptyState-content{border-radius:var(--pr-t-border-radius-structure);max-inline-size:100%;padding:var(--pr-t-spacings-50);inline-size:calc(25rem + var(--pr-t-spacings-50) * 2)}.emptyState-content-icon{--components-emptyState-icon-background-color: var(--palettes-100, var(--palettes-product-100));--components-emptyState-icon-action-color: var(--palettes-600, var(--palettes-brand-600));display:inline-flex;margin-block-end:var(--pr-t-spacings-200)}.emptyState-content-text{padding-inline:var(--pr-t-spacings-50)}.emptyState-content-heading{font:var(--pr-t-font-heading-3);margin-block-end:var(--pr-t-spacings-50)}.emptyState-content-description{margin:0}.emptyState-actions{display:flex;flex-wrap:wrap;align-items:center;margin-block-start:var(--pr-t-spacings-200);gap:var(--pr-t-spacings-200)}.emptyState-actions .button{margin:0}.emptyState-actions:empty{display:none}}@layer mods{.emptyState.mod-page{--components-emptyState-container-maxWidth: var(--commons-container-maxWidth);background-image:var(--components-emptyState-illustration-foreground-bottom-left),var(--components-emptyState-illustration-background-bottom-left),var(--components-emptyState-illustration-foreground-top-right),var(--components-emptyState-illustration-background-top-right);background-repeat:no-repeat;background-position:bottom left,bottom left,top left var(--components-emptyState-illustration-top-right-offset-left),top left var(--components-emptyState-illustration-top-right-offset-left)}@media not all and (min-width:50em){.emptyState.mod-page{background-position:bottom left,bottom left,top left var(--components-emptyState-illustration-top-right-offset-left-S),top left var(--components-emptyState-illustration-top-right-offset-left-S);background-size:auto 10.875rem}}.emptyState.mod-page .emptyState-content{background-color:var(--components-emptyState-background-color);box-shadow:0 0 8px 4px var(--components-emptyState-background-color)}.emptyState.mod-page .emptyState-content-text{padding:0}.emptyState.mod-page .emptyState-content-heading{font:var(--pr-t-font-heading-1)}@media not all and (min-width:30em){.emptyState.mod-page .emptyState-content-heading{font:var(--pr-t-font-heading-2)}}@media not all and (min-width:30em){.emptyState.mod-page .emptyState-actions .button{flex-basis:100%}}.emptyState.mod-center{text-align:center}.emptyState.mod-center .emptyState-actions{justify-content:center}.table .emptyState,.indexTable .emptyState,.dataTable .emptyState{--components-emptyState-container-position: sticky}.container .emptyState{--components-emptyState-container-maxWidth: none;--components-emptyState-container-left: auto}}@layer components{.emptyState-wrapper{display:flex;flex-direction:column;flex-grow:1}}\n"] }]
|
|
45
46
|
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], topRightBackground: [{ type: i0.Input, args: [{ isSignal: true, alias: "topRightBackground", required: false }] }], topRightForeground: [{ type: i0.Input, args: [{ isSignal: true, alias: "topRightForeground", required: false }] }], bottomLeftBackground: [{ type: i0.Input, args: [{ isSignal: true, alias: "bottomLeftBackground", required: false }] }], bottomLeftForeground: [{ type: i0.Input, args: [{ isSignal: true, alias: "bottomLeftForeground", required: false }] }], contentBackgroundColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentBackgroundColor", required: false }] }], slotTop: [{ type: i0.Input, args: [{ isSignal: true, alias: "slotTop", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], hx: [{ type: i0.Input, args: [{ isSignal: true, alias: "hx", required: false }] }] } });
|
|
46
47
|
|
|
48
|
+
const ICON_TO_ILLUSTRATION = {
|
|
49
|
+
Banknote: 'banknote',
|
|
50
|
+
Bell: 'bell',
|
|
51
|
+
Bulb: 'bulb',
|
|
52
|
+
Calendar: 'calendar',
|
|
53
|
+
Chat: 'chat',
|
|
54
|
+
Clock: 'clock',
|
|
55
|
+
Coffee: 'coffee',
|
|
56
|
+
CreditCard: 'paymentCards',
|
|
57
|
+
Folder: 'folder',
|
|
58
|
+
Gift: 'gift',
|
|
59
|
+
Graduate: 'graduate',
|
|
60
|
+
IDCard: 'polaroid',
|
|
61
|
+
Lock: 'lock',
|
|
62
|
+
Mail: 'mail',
|
|
63
|
+
Megaphone: 'megaphone',
|
|
64
|
+
Paint: 'paint',
|
|
65
|
+
Paper: 'invoice',
|
|
66
|
+
Party: 'party',
|
|
67
|
+
Picture: 'picture',
|
|
68
|
+
Poc: 'banknote',
|
|
69
|
+
Rocket: 'rocket',
|
|
70
|
+
Search: 'magnifyingGlass',
|
|
71
|
+
Temperature: 'temperature',
|
|
72
|
+
Thumb: 'thumbUp',
|
|
73
|
+
Warning: 'warning',
|
|
74
|
+
};
|
|
47
75
|
class EmptyStateSectionComponent {
|
|
48
76
|
constructor() {
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
77
|
+
/** @deprecated use illustration and action */
|
|
78
|
+
this.icon = input(null, ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
79
|
+
this.actionIllustration = computed(() => this.action() || this.icon()?.includes('Action.svg'), ...(ngDevMode ? [{ debugName: "actionIllustration" }] : []));
|
|
80
|
+
this.illustration = input(null, ...(ngDevMode ? [{ debugName: "illustration" }] : []));
|
|
81
|
+
this.action = input(false, { ...(ngDevMode ? { debugName: "action" } : {}), transform: booleanAttribute });
|
|
82
|
+
this.iconOrIllustration = computed(() => {
|
|
83
|
+
if (this.icon()) {
|
|
84
|
+
if (this.icon().includes('Success')) {
|
|
85
|
+
return 'thumbUp';
|
|
86
|
+
}
|
|
87
|
+
if (this.icon().includes('Error')) {
|
|
88
|
+
return 'error';
|
|
89
|
+
}
|
|
90
|
+
const iconName = this.icon().split('/').pop().replace('.svg', '').replace('ActionError', '').replace('ActionSuccess', '').replace('Action', '').replace('icon', '');
|
|
91
|
+
return ICON_TO_ILLUSTRATION[iconName];
|
|
92
|
+
}
|
|
93
|
+
return this.illustration();
|
|
94
|
+
}, ...(ngDevMode ? [{ debugName: "iconOrIllustration" }] : []));
|
|
53
95
|
this.palette = input('none', ...(ngDevMode ? [{ debugName: "palette" }] : []));
|
|
54
96
|
this.center = input(false, { ...(ngDevMode ? { debugName: "center" } : {}), transform: booleanAttribute });
|
|
55
97
|
this.heading = input(...(ngDevMode ? [undefined, { debugName: "heading" }] : []));
|
|
@@ -58,12 +100,12 @@ class EmptyStateSectionComponent {
|
|
|
58
100
|
this.emptyStateClasses = computed(() => ({ [`palette-${this.palette()}`]: !!this.palette() }), ...(ngDevMode ? [{ debugName: "emptyStateClasses" }] : []));
|
|
59
101
|
}
|
|
60
102
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EmptyStateSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: EmptyStateSectionComponent, isStandalone: true, selector: "lu-empty-state-section", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, center: { classPropertyName: "center", publicName: "center", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, hx: { classPropertyName: "hx", publicName: "hx", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<section class=\"emptyState\" [class.mod-center]=\"center()\" [attr.role]=\"heading() ? null : 'presentation'\">\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (
|
|
103
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: EmptyStateSectionComponent, isStandalone: true, selector: "lu-empty-state-section", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, illustration: { classPropertyName: "illustration", publicName: "illustration", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, center: { classPropertyName: "center", publicName: "center", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, hx: { classPropertyName: "hx", publicName: "hx", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<section class=\"emptyState\" [class.mod-center]=\"center()\" [attr.role]=\"heading() ? null : 'presentation'\">\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (iconOrIllustration()) {\n\t\t\t\t<div class=\"emptyState-content-icon\">\n\t\t\t\t\t<lu-bubble-illustration [action]=\"actionIllustration()\" [illustration]=\"iconOrIllustration()\" size=\"L\" [palette]=\"palette()\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n", styles: ["@layer components{.emptyState{--components-emptyState-container-maxWidth: calc(100vw - var(--commons-navSide-width) - 7rem);--components-emptyState-container-left: calc(var(--commons-navSide-width) + var(--pr-t-spacings-400));--components-emptyState-container-position: static;--components-emptyState-background-color: var(--pr-t-elevation-surface-default);--components-emptyState-illustration-top-right-offset-left: min( calc(100% + 5rem) , calc(var(--components-emptyState-container-maxWidth) - 8.5rem) );--components-emptyState-illustration-top-right-offset-left-S: min( calc(100% + 3.5rem) , calc(var(--components-emptyState-container-maxWidth) - 8.5rem) );--background-left-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-bottom-left-01.svg);--foreground-left-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/core-hr-01.svg);--background-right-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-top-right-01.svg);--foreground-right-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/generic/coffee-01.svg);--components-emptyState-illustration-background-bottom-left: var(--background-left-01);--components-emptyState-illustration-foreground-bottom-left: var(--foreground-left-01);--components-emptyState-illustration-background-top-right: var(--background-right-01);--components-emptyState-illustration-foreground-top-right: var(--foreground-right-01);display:flex;flex-direction:column;flex-grow:1;padding:var(--pr-t-spacings-200)}.emptyState-container{align-items:center;display:flex;flex-grow:1;justify-content:center;max-inline-size:var(--components-emptyState-container-maxWidth);inset-inline-start:var(--components-emptyState-container-left);padding:0;inline-size:100%;position:var(--components-emptyState-container-position)}.emptyState-content{border-radius:var(--pr-t-border-radius-structure);max-inline-size:100%;padding:var(--pr-t-spacings-50);inline-size:calc(25rem + var(--pr-t-spacings-50) * 2)}.emptyState-content-icon{--components-emptyState-icon-background-color: var(--palettes-100, var(--palettes-product-100));--components-emptyState-icon-action-color: var(--palettes-600, var(--palettes-brand-600));display:inline-flex;margin-block-end:var(--pr-t-spacings-200)}.emptyState-content-text{padding-inline:var(--pr-t-spacings-50)}.emptyState-content-heading{font:var(--pr-t-font-heading-3);margin-block-end:var(--pr-t-spacings-50)}.emptyState-content-description{margin:0}.emptyState-actions{display:flex;flex-wrap:wrap;align-items:center;margin-block-start:var(--pr-t-spacings-200);gap:var(--pr-t-spacings-200)}.emptyState-actions .button{margin:0}.emptyState-actions:empty{display:none}}@layer mods{.emptyState.mod-page{--components-emptyState-container-maxWidth: var(--commons-container-maxWidth);background-image:var(--components-emptyState-illustration-foreground-bottom-left),var(--components-emptyState-illustration-background-bottom-left),var(--components-emptyState-illustration-foreground-top-right),var(--components-emptyState-illustration-background-top-right);background-repeat:no-repeat;background-position:bottom left,bottom left,top left var(--components-emptyState-illustration-top-right-offset-left),top left var(--components-emptyState-illustration-top-right-offset-left)}@media not all and (min-width:50em){.emptyState.mod-page{background-position:bottom left,bottom left,top left var(--components-emptyState-illustration-top-right-offset-left-S),top left var(--components-emptyState-illustration-top-right-offset-left-S);background-size:auto 10.875rem}}.emptyState.mod-page .emptyState-content{background-color:var(--components-emptyState-background-color);box-shadow:0 0 8px 4px var(--components-emptyState-background-color)}.emptyState.mod-page .emptyState-content-text{padding:0}.emptyState.mod-page .emptyState-content-heading{font:var(--pr-t-font-heading-1)}@media not all and (min-width:30em){.emptyState.mod-page .emptyState-content-heading{font:var(--pr-t-font-heading-2)}}@media not all and (min-width:30em){.emptyState.mod-page .emptyState-actions .button{flex-basis:100%}}.emptyState.mod-center{text-align:center}.emptyState.mod-center .emptyState-actions{justify-content:center}.table .emptyState,.indexTable .emptyState,.dataTable .emptyState{--components-emptyState-container-position: sticky}.container .emptyState{--components-emptyState-container-maxWidth: none;--components-emptyState-container-left: auto}}@layer base{lu-empty-state-section{inline-size:100%}}\n"], dependencies: [{ kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "component", type: BubbleIllustrationComponent, selector: "lu-bubble-illustration", inputs: ["illustration", "palette", "size", "action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
62
104
|
}
|
|
63
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EmptyStateSectionComponent, decorators: [{
|
|
64
106
|
type: Component,
|
|
65
|
-
args: [{ selector: 'lu-empty-state-section', imports: [LuSafeExternalSvgPipe, PortalDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<section class=\"emptyState\" [class.mod-center]=\"center()\" [attr.role]=\"heading() ? null : 'presentation'\">\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (
|
|
66
|
-
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], palette: [{ type: i0.Input, args: [{ isSignal: true, alias: "palette", required: false }] }], center: [{ type: i0.Input, args: [{ isSignal: true, alias: "center", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], hx: [{ type: i0.Input, args: [{ isSignal: true, alias: "hx", required: false }] }] } });
|
|
107
|
+
args: [{ selector: 'lu-empty-state-section', imports: [LuSafeExternalSvgPipe, PortalDirective, BubbleIllustrationComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<section class=\"emptyState\" [class.mod-center]=\"center()\" [attr.role]=\"heading() ? null : 'presentation'\">\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (iconOrIllustration()) {\n\t\t\t\t<div class=\"emptyState-content-icon\">\n\t\t\t\t\t<lu-bubble-illustration [action]=\"actionIllustration()\" [illustration]=\"iconOrIllustration()\" size=\"L\" [palette]=\"palette()\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n", styles: ["@layer components{.emptyState{--components-emptyState-container-maxWidth: calc(100vw - var(--commons-navSide-width) - 7rem);--components-emptyState-container-left: calc(var(--commons-navSide-width) + var(--pr-t-spacings-400));--components-emptyState-container-position: static;--components-emptyState-background-color: var(--pr-t-elevation-surface-default);--components-emptyState-illustration-top-right-offset-left: min( calc(100% + 5rem) , calc(var(--components-emptyState-container-maxWidth) - 8.5rem) );--components-emptyState-illustration-top-right-offset-left-S: min( calc(100% + 3.5rem) , calc(var(--components-emptyState-container-maxWidth) - 8.5rem) );--background-left-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-bottom-left-01.svg);--foreground-left-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/core-hr-01.svg);--background-right-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-top-right-01.svg);--foreground-right-01: url(https://cdn.lucca.fr/lucca-front/assets/empty-states/generic/coffee-01.svg);--components-emptyState-illustration-background-bottom-left: var(--background-left-01);--components-emptyState-illustration-foreground-bottom-left: var(--foreground-left-01);--components-emptyState-illustration-background-top-right: var(--background-right-01);--components-emptyState-illustration-foreground-top-right: var(--foreground-right-01);display:flex;flex-direction:column;flex-grow:1;padding:var(--pr-t-spacings-200)}.emptyState-container{align-items:center;display:flex;flex-grow:1;justify-content:center;max-inline-size:var(--components-emptyState-container-maxWidth);inset-inline-start:var(--components-emptyState-container-left);padding:0;inline-size:100%;position:var(--components-emptyState-container-position)}.emptyState-content{border-radius:var(--pr-t-border-radius-structure);max-inline-size:100%;padding:var(--pr-t-spacings-50);inline-size:calc(25rem + var(--pr-t-spacings-50) * 2)}.emptyState-content-icon{--components-emptyState-icon-background-color: var(--palettes-100, var(--palettes-product-100));--components-emptyState-icon-action-color: var(--palettes-600, var(--palettes-brand-600));display:inline-flex;margin-block-end:var(--pr-t-spacings-200)}.emptyState-content-text{padding-inline:var(--pr-t-spacings-50)}.emptyState-content-heading{font:var(--pr-t-font-heading-3);margin-block-end:var(--pr-t-spacings-50)}.emptyState-content-description{margin:0}.emptyState-actions{display:flex;flex-wrap:wrap;align-items:center;margin-block-start:var(--pr-t-spacings-200);gap:var(--pr-t-spacings-200)}.emptyState-actions .button{margin:0}.emptyState-actions:empty{display:none}}@layer mods{.emptyState.mod-page{--components-emptyState-container-maxWidth: var(--commons-container-maxWidth);background-image:var(--components-emptyState-illustration-foreground-bottom-left),var(--components-emptyState-illustration-background-bottom-left),var(--components-emptyState-illustration-foreground-top-right),var(--components-emptyState-illustration-background-top-right);background-repeat:no-repeat;background-position:bottom left,bottom left,top left var(--components-emptyState-illustration-top-right-offset-left),top left var(--components-emptyState-illustration-top-right-offset-left)}@media not all and (min-width:50em){.emptyState.mod-page{background-position:bottom left,bottom left,top left var(--components-emptyState-illustration-top-right-offset-left-S),top left var(--components-emptyState-illustration-top-right-offset-left-S);background-size:auto 10.875rem}}.emptyState.mod-page .emptyState-content{background-color:var(--components-emptyState-background-color);box-shadow:0 0 8px 4px var(--components-emptyState-background-color)}.emptyState.mod-page .emptyState-content-text{padding:0}.emptyState.mod-page .emptyState-content-heading{font:var(--pr-t-font-heading-1)}@media not all and (min-width:30em){.emptyState.mod-page .emptyState-content-heading{font:var(--pr-t-font-heading-2)}}@media not all and (min-width:30em){.emptyState.mod-page .emptyState-actions .button{flex-basis:100%}}.emptyState.mod-center{text-align:center}.emptyState.mod-center .emptyState-actions{justify-content:center}.table .emptyState,.indexTable .emptyState,.dataTable .emptyState{--components-emptyState-container-position: sticky}.container .emptyState{--components-emptyState-container-maxWidth: none;--components-emptyState-container-left: auto}}@layer base{lu-empty-state-section{inline-size:100%}}\n"] }]
|
|
108
|
+
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], illustration: [{ type: i0.Input, args: [{ isSignal: true, alias: "illustration", required: false }] }], action: [{ type: i0.Input, args: [{ isSignal: true, alias: "action", required: false }] }], palette: [{ type: i0.Input, args: [{ isSignal: true, alias: "palette", required: false }] }], center: [{ type: i0.Input, args: [{ isSignal: true, alias: "center", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], hx: [{ type: i0.Input, args: [{ isSignal: true, alias: "hx", required: false }] }] } });
|
|
67
109
|
|
|
68
110
|
/**
|
|
69
111
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-empty-state.mjs","sources":["../../../packages/ng/empty-state/empty-state-page/empty-state-page.component.ts","../../../packages/ng/empty-state/empty-state-page/empty-state-page.component.html","../../../packages/ng/empty-state/empty-state-section/empty-state-section.component.ts","../../../packages/ng/empty-state/empty-state-section/empty-state-section.component.html","../../../packages/ng/empty-state/lucca-front-ng-empty-state.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LuSafeExternalSvgPipe } from '@lucca-front/ng/safe-content';\nimport { Hx } from '../empty-state.model';\n\n@Component({\n\tselector: 'lu-empty-state-page',\n\timports: [LuSafeExternalSvgPipe, PortalDirective],\n\ttemplateUrl: './empty-state-page.component.html',\n\tstyleUrl: './empty-state-page.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'emptyState-wrapper',\n\t},\n})\nexport class EmptyStatePageComponent {\n\t/**\n\t * Icon image (URL)\n\t */\n\treadonly icon = input<string | null>(null);\n\n\t/**\n\t * Top right background image (URL)\n\t */\n\treadonly topRightBackground = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-top-right-01.svg');\n\n\t/**\n\t * Top right foreground image (URL)\n\t */\n\n\treadonly topRightForeground = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/generic/coffee-01.svg');\n\n\t/**\n\t * Bottom left background image (URL)\n\t */\n\treadonly bottomLeftBackground = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-bottom-left-01.svg');\n\n\t/**\n\t * Bottom left foreground image (URL)\n\t */\n\treadonly bottomLeftForeground = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/core-hr-01.svg');\n\n\t/**\n\t * Background color for content (text)\n\t */\n\treadonly contentBackgroundColor = input<string>('var(--pr-t-elevation-surface-default)');\n\n\treadonly slotTop = input<PortalContent>();\n\n\treadonly heading = input<string>();\n\n\treadonly description = input<PortalContent>();\n\n\treadonly hx = input(1, { transform: numberAttribute as (value: Hx | `${Hx}`) => Hx });\n}\n","<section\n\tclass=\"emptyState mod-page\"\n\t[attr.role]=\"heading() ? null : 'presentation'\"\n\t[style.--components-emptyState-background-color]=\"contentBackgroundColor()\"\n\tstyle.--components-emptyState-illustration-background-bottom-left=\"url({{ bottomLeftBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-bottom-left=\"url({{ bottomLeftForeground() }})\"\n\tstyle.--components-emptyState-illustration-background-top-right=\"url({{ topRightBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-top-right=\"url({{ topRightForeground() }})\"\n>\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (icon()) {\n\t\t\t\t<div class=\"emptyState-content-icon\" aria-hidden=\"true\" [innerHtml]=\"icon() | luSafeExternalSvg\"></div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (slotTop()) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ng-container *luPortal=\"slotTop()\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, numberAttribute } from '@angular/core';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LuSafeExternalSvgPipe } from '@lucca-front/ng/safe-content';\nimport { Hx } from '../empty-state.model';\n\n@Component({\n\tselector: 'lu-empty-state-section',\n\timports: [LuSafeExternalSvgPipe, PortalDirective],\n\ttemplateUrl: './empty-state-section.component.html',\n\tstyleUrl: './empty-state-section.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class EmptyStateSectionComponent {\n\t/**\n\t * Icon URL\n\t */\n\treadonly icon = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/icons/iconBanknote.svg');\n\n\treadonly palette = input<Palette>('none');\n\n\treadonly center = input(false, { transform: booleanAttribute });\n\n\treadonly heading = input<string>();\n\n\treadonly description = input<PortalContent>();\n\n\treadonly hx = input(3, { transform: numberAttribute as (value: Hx | `${Hx}`) => Hx });\n\n\treadonly emptyStateClasses = computed(() => ({ [`palette-${this.palette()}`]: !!this.palette() }));\n}\n","<section class=\"emptyState\" [class.mod-center]=\"center()\" [attr.role]=\"heading() ? null : 'presentation'\">\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (icon()) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"emptyState-content-icon\"\n\t\t\t\t\t[class]=\"emptyStateClasses()\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t[innerHtml]=\"icon() | luSafeExternalSvg\"\n\t\t\t\t></div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\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-empty-state.mjs","sources":["../../../packages/ng/empty-state/empty-state-page/empty-state-page.component.ts","../../../packages/ng/empty-state/empty-state-page/empty-state-page.component.html","../../../packages/ng/empty-state/empty-state-section/empty-state-section.component.ts","../../../packages/ng/empty-state/empty-state-section/empty-state-section.component.html","../../../packages/ng/empty-state/lucca-front-ng-empty-state.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LuSafeExternalSvgPipe } from '@lucca-front/ng/safe-content';\nimport { Hx } from '../empty-state.model';\n\n@Component({\n\tselector: 'lu-empty-state-page',\n\timports: [LuSafeExternalSvgPipe, PortalDirective],\n\ttemplateUrl: './empty-state-page.component.html',\n\tstyleUrl: './empty-state-page.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'emptyState-wrapper',\n\t},\n})\nexport class EmptyStatePageComponent {\n\t/**\n\t * Icon image (URL)\n\t */\n\treadonly icon = input<string | null>(null);\n\n\t/**\n\t * Top right background image (URL)\n\t */\n\treadonly topRightBackground = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-top-right-01.svg');\n\n\t/**\n\t * Top right foreground image (URL)\n\t */\n\n\treadonly topRightForeground = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/generic/coffee-01.svg');\n\n\t/**\n\t * Bottom left background image (URL)\n\t */\n\treadonly bottomLeftBackground = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/bubbles-bottom-left-01.svg');\n\n\t/**\n\t * Bottom left foreground image (URL)\n\t */\n\treadonly bottomLeftForeground = input<string>('https://cdn.lucca.fr/lucca-front/assets/empty-states/poplee/core-hr-01.svg');\n\n\t/**\n\t * Background color for content (text)\n\t */\n\treadonly contentBackgroundColor = input<string>('var(--pr-t-elevation-surface-default)');\n\n\treadonly slotTop = input<PortalContent>();\n\n\treadonly heading = input<string>();\n\n\treadonly description = input<PortalContent>();\n\n\treadonly hx = input(1, { transform: numberAttribute as (value: Hx | `${Hx}`) => Hx });\n}\n","<section\n\tclass=\"emptyState mod-page\"\n\t[attr.role]=\"heading() ? null : 'presentation'\"\n\t[style.--components-emptyState-background-color]=\"contentBackgroundColor()\"\n\tstyle.--components-emptyState-illustration-background-bottom-left=\"url({{ bottomLeftBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-bottom-left=\"url({{ bottomLeftForeground() }})\"\n\tstyle.--components-emptyState-illustration-background-top-right=\"url({{ topRightBackground() }})\"\n\tstyle.--components-emptyState-illustration-foreground-top-right=\"url({{ topRightForeground() }})\"\n>\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (icon()) {\n\t\t\t\t<div class=\"emptyState-content-icon\" aria-hidden=\"true\" [innerHtml]=\"icon() | luSafeExternalSvg\"></div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (slotTop()) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ng-container *luPortal=\"slotTop()\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, numberAttribute } from '@angular/core';\nimport { BubbleIllustration, BubbleIllustrationComponent } from '@lucca-front/ng/bubble-illustration';\nimport { Palette, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LuSafeExternalSvgPipe } from '@lucca-front/ng/safe-content';\nimport { Hx } from '../empty-state.model';\n\nconst ICON_TO_ILLUSTRATION: Record<string, BubbleIllustration> = {\n\tBanknote: 'banknote',\n\tBell: 'bell',\n\tBulb: 'bulb',\n\tCalendar: 'calendar',\n\tChat: 'chat',\n\tClock: 'clock',\n\tCoffee: 'coffee',\n\tCreditCard: 'paymentCards',\n\tFolder: 'folder',\n\tGift: 'gift',\n\tGraduate: 'graduate',\n\tIDCard: 'polaroid',\n\tLock: 'lock',\n\tMail: 'mail',\n\tMegaphone: 'megaphone',\n\tPaint: 'paint',\n\tPaper: 'invoice',\n\tParty: 'party',\n\tPicture: 'picture',\n\tPoc: 'banknote',\n\tRocket: 'rocket',\n\tSearch: 'magnifyingGlass',\n\tTemperature: 'temperature',\n\tThumb: 'thumbUp',\n\tWarning: 'warning',\n};\n\n@Component({\n\tselector: 'lu-empty-state-section',\n\timports: [LuSafeExternalSvgPipe, PortalDirective, BubbleIllustrationComponent],\n\ttemplateUrl: './empty-state-section.component.html',\n\tstyleUrl: './empty-state-section.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class EmptyStateSectionComponent {\n\t/** @deprecated use illustration and action */\n\treadonly icon = input<string | null>(null);\n\treadonly actionIllustration = computed(() => this.action() || this.icon()?.includes('Action.svg'));\n\n\treadonly illustration = input<BubbleIllustration | null>(null);\n\treadonly action = input(false, { transform: booleanAttribute });\n\n\treadonly iconOrIllustration = computed(() => {\n\t\tif (this.icon()) {\n\t\t\tif (this.icon().includes('Success')) {\n\t\t\t\treturn 'thumbUp';\n\t\t\t}\n\t\t\tif (this.icon().includes('Error')) {\n\t\t\t\treturn 'error';\n\t\t\t}\n\t\t\tconst iconName = this.icon().split('/').pop().replace('.svg', '').replace('ActionError', '').replace('ActionSuccess', '').replace('Action', '').replace('icon', '');\n\n\t\t\treturn ICON_TO_ILLUSTRATION[iconName];\n\t\t}\n\n\t\treturn this.illustration();\n\t});\n\n\treadonly palette = input<Palette>('none');\n\n\treadonly center = input(false, { transform: booleanAttribute });\n\n\treadonly heading = input<string>();\n\n\treadonly description = input<PortalContent>();\n\n\treadonly hx = input(3, { transform: numberAttribute as (value: Hx | `${Hx}`) => Hx });\n\n\treadonly emptyStateClasses = computed(() => ({ [`palette-${this.palette()}`]: !!this.palette() }));\n}\n","<section class=\"emptyState\" [class.mod-center]=\"center()\" [attr.role]=\"heading() ? null : 'presentation'\">\n\t<div class=\"emptyState-container\">\n\t\t<div class=\"emptyState-content\">\n\t\t\t@if (iconOrIllustration()) {\n\t\t\t\t<div class=\"emptyState-content-icon\">\n\t\t\t\t\t<lu-bubble-illustration [action]=\"actionIllustration()\" [illustration]=\"iconOrIllustration()\" size=\"L\" [palette]=\"palette()\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"emptyState-content-text\">\n\t\t\t\t@if (heading()) {\n\t\t\t\t\t<div role=\"heading\" [attr.aria-level]=\"hx()\" class=\"emptyState-content-heading\">{{ heading() }}</div>\n\t\t\t\t}\n\t\t\t\t@if (description()) {\n\t\t\t\t\t<p class=\"emptyState-content-description\">\n\t\t\t\t\t\t<ng-container *luPortal=\"description()\" />\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t\t<div class=\"emptyState-actions\">\n\t\t\t\t\t<ng-content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|