@lucca-front/ng 22.0.5 → 22.1.0-rc.2
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-activity-feed.mjs +12 -9
- package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-approbation-inbox.mjs +1 -1
- package/fesm2022/lucca-front-ng-approbation-inbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +236 -8
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +5 -1
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-data-table.mjs +2 -2
- package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +217 -159
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +2 -2
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-fancy-box.mjs +47 -24
- package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills-core.mjs +55 -0
- package/fesm2022/lucca-front-ng-filter-pills-core.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-filter-pills.mjs +74 -69
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +37 -5
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-label.mjs +1 -1
- package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form.mjs +42 -5
- package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +3 -3
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +12 -6
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-highlight-data.mjs +6 -7
- package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-impersonation.mjs +19 -4
- package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +8 -3
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-markdown.mjs +51 -0
- package/fesm2022/lucca-front-ng-markdown.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-multi-select.mjs +147 -43
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +11 -5
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-priority-levels.mjs +128 -0
- package/fesm2022/lucca-front-ng-priority-levels.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-safe-content.mjs +5 -2
- package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +63 -12
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +1 -1
- package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user-popover.mjs +3 -2
- package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
- package/package.json +17 -4
- package/src/components/cdk/_overlay.scss +3 -1
- package/types/lucca-front-ng-activity-feed.d.ts +3 -1
- package/types/lucca-front-ng-core-select.d.ts +90 -7
- package/types/lucca-front-ng-core.d.ts +3 -1
- package/types/lucca-front-ng-date2.d.ts +31 -5
- package/types/lucca-front-ng-fancy-box.d.ts +29 -12
- package/types/lucca-front-ng-filter-pills-core.d.ts +69 -0
- package/types/lucca-front-ng-filter-pills.d.ts +28 -55
- package/types/lucca-front-ng-form-field.d.ts +12 -4
- package/types/lucca-front-ng-form.d.ts +7 -1
- package/types/lucca-front-ng-forms.d.ts +7 -2
- package/types/lucca-front-ng-highlight-data.d.ts +1 -2
- package/types/lucca-front-ng-impersonation.d.ts +14 -1
- package/types/lucca-front-ng-link.d.ts +5 -1
- package/types/lucca-front-ng-markdown.d.ts +24 -0
- package/types/lucca-front-ng-multi-select.d.ts +10 -1
- package/types/lucca-front-ng-popover2.d.ts +7 -1
- package/types/lucca-front-ng-priority-levels.d.ts +44 -0
- package/types/lucca-front-ng-simple-select.d.ts +4 -0
|
@@ -211,6 +211,12 @@ class PopoverDirective {
|
|
|
211
211
|
*/
|
|
212
212
|
this.luPopoverAnchor = input(this.elementRef, /* @ts-ignore */
|
|
213
213
|
...(ngDevMode ? [{ debugName: "luPopoverAnchor" }] : /* istanbul ignore next */ []));
|
|
214
|
+
/**
|
|
215
|
+
* Renders a transparent backdrop catching the outside click instead of letting it through to the page.
|
|
216
|
+
* Reserved for menu-like popovers (a filter dropdown, where the click that closes the panel shouldn't
|
|
217
|
+
* also hit what's underneath): a description popover must stay non-blocking, see #5012.
|
|
218
|
+
*/
|
|
219
|
+
this.luPopoverBackdrop = input(false, { ...(ngDevMode ? { debugName: "luPopoverBackdrop" } : /* istanbul ignore next */ {}), transform: luBooleanAttribute });
|
|
214
220
|
/**
|
|
215
221
|
* Extra element(s) to treat as "inside" the popover for outside-pointer detection. Pointer events
|
|
216
222
|
* originating from them won't close the popover. Useful when an external control opens the popover
|
|
@@ -333,9 +339,9 @@ class PopoverDirective {
|
|
|
333
339
|
.withPositions(this.customPositions() || this.#buildPositions())
|
|
334
340
|
.withGrowAfterOpen(true),
|
|
335
341
|
scrollStrategy: this.overlay.scrollStrategies[this.overlayScrollStrategy() ?? 'reposition'](),
|
|
336
|
-
// No blocking backdrop: outside interactions are handled via outsidePointerEvents() below.
|
|
337
|
-
hasBackdrop:
|
|
338
|
-
backdropClass: '',
|
|
342
|
+
// No blocking backdrop by default: outside interactions are handled via outsidePointerEvents() below.
|
|
343
|
+
hasBackdrop: this.luPopoverBackdrop(),
|
|
344
|
+
backdropClass: this.luPopoverBackdrop() ? 'cdk-overlay-transparent-backdrop' : '',
|
|
339
345
|
disposeOnNavigation: true,
|
|
340
346
|
});
|
|
341
347
|
// Close on outside interaction WITHOUT a blocking backdrop that would
|
|
@@ -441,7 +447,7 @@ class PopoverDirective {
|
|
|
441
447
|
return [this.positionPairs[this.luPopoverPositionRef()], this.positionPairs[opposite[this.luPopoverPositionRef()]], ...remaining[this.luPopoverPositionRef()].map((r) => this.positionPairs[r])];
|
|
442
448
|
}
|
|
443
449
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PopoverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
444
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: PopoverDirective, isStandalone: true, selector: "[luPopover2]", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, luPopover2: { classPropertyName: "luPopover2", publicName: "luPopover2", isSignal: true, isRequired: false, transformFunction: null }, luPopoverPosition: { classPropertyName: "luPopoverPosition", publicName: "luPopoverPosition", isSignal: true, isRequired: false, transformFunction: null }, luPopoverMaxBlockSize: { classPropertyName: "luPopoverMaxBlockSize", publicName: "luPopoverMaxBlockSize", isSignal: true, isRequired: false, transformFunction: null }, luPopoverMaxInlineSize: { classPropertyName: "luPopoverMaxInlineSize", publicName: "luPopoverMaxInlineSize", isSignal: true, isRequired: false, transformFunction: null }, overlayScrollStrategy: { classPropertyName: "overlayScrollStrategy", publicName: "overlayScrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, luPopoverDisabledInput: { classPropertyName: "luPopoverDisabledInput", publicName: "luPopoverDisabled", isSignal: true, isRequired: false, transformFunction: null }, luPopoverTrigger: { classPropertyName: "luPopoverTrigger", publicName: "luPopoverTrigger", isSignal: true, isRequired: false, transformFunction: null }, customPositionsInput: { classPropertyName: "customPositionsInput", publicName: "customPositions", isSignal: true, isRequired: false, transformFunction: null }, luPopoverNoCloseButtonInput: { classPropertyName: "luPopoverNoCloseButtonInput", publicName: "luPopoverNoCloseButton", isSignal: true, isRequired: false, transformFunction: null }, luPopoverAnchor: { classPropertyName: "luPopoverAnchor", publicName: "luPopoverAnchor", isSignal: true, isRequired: false, transformFunction: null }, luPopoverIgnoredOutsidePointerTargets: { classPropertyName: "luPopoverIgnoredOutsidePointerTargets", publicName: "luPopoverIgnoredOutsidePointerTargets", isSignal: true, isRequired: false, transformFunction: null }, luPopoverOpenDelay: { classPropertyName: "luPopoverOpenDelay", publicName: "luPopoverOpenDelay", isSignal: true, isRequired: false, transformFunction: null }, luPopoverCloseDelay: { classPropertyName: "luPopoverCloseDelay", publicName: "luPopoverCloseDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { luPopoverTrigger: "luPopoverTriggerChange", luPopoverClosed: "luPopoverClosed", luPopoverOpened: "luPopoverOpened" }, host: { listeners: { "click": "onMouseClick()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "mouseenter": "onMouseEnter()", "keydown.Tab": "focusBackToContent($event)", "keydown.Shift.Tab": "focusOutBefore()" }, properties: { "attr.aria-expanded": "opened()", "attr.aria-controls": "opened() ? ariaControls : null" } }, exportAs: ["luPopover2"], ngImport: i0 }); }
|
|
450
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: PopoverDirective, isStandalone: true, selector: "[luPopover2]", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, luPopover2: { classPropertyName: "luPopover2", publicName: "luPopover2", isSignal: true, isRequired: false, transformFunction: null }, luPopoverPosition: { classPropertyName: "luPopoverPosition", publicName: "luPopoverPosition", isSignal: true, isRequired: false, transformFunction: null }, luPopoverMaxBlockSize: { classPropertyName: "luPopoverMaxBlockSize", publicName: "luPopoverMaxBlockSize", isSignal: true, isRequired: false, transformFunction: null }, luPopoverMaxInlineSize: { classPropertyName: "luPopoverMaxInlineSize", publicName: "luPopoverMaxInlineSize", isSignal: true, isRequired: false, transformFunction: null }, overlayScrollStrategy: { classPropertyName: "overlayScrollStrategy", publicName: "overlayScrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, luPopoverDisabledInput: { classPropertyName: "luPopoverDisabledInput", publicName: "luPopoverDisabled", isSignal: true, isRequired: false, transformFunction: null }, luPopoverTrigger: { classPropertyName: "luPopoverTrigger", publicName: "luPopoverTrigger", isSignal: true, isRequired: false, transformFunction: null }, customPositionsInput: { classPropertyName: "customPositionsInput", publicName: "customPositions", isSignal: true, isRequired: false, transformFunction: null }, luPopoverNoCloseButtonInput: { classPropertyName: "luPopoverNoCloseButtonInput", publicName: "luPopoverNoCloseButton", isSignal: true, isRequired: false, transformFunction: null }, luPopoverAnchor: { classPropertyName: "luPopoverAnchor", publicName: "luPopoverAnchor", isSignal: true, isRequired: false, transformFunction: null }, luPopoverBackdrop: { classPropertyName: "luPopoverBackdrop", publicName: "luPopoverBackdrop", isSignal: true, isRequired: false, transformFunction: null }, luPopoverIgnoredOutsidePointerTargets: { classPropertyName: "luPopoverIgnoredOutsidePointerTargets", publicName: "luPopoverIgnoredOutsidePointerTargets", isSignal: true, isRequired: false, transformFunction: null }, luPopoverOpenDelay: { classPropertyName: "luPopoverOpenDelay", publicName: "luPopoverOpenDelay", isSignal: true, isRequired: false, transformFunction: null }, luPopoverCloseDelay: { classPropertyName: "luPopoverCloseDelay", publicName: "luPopoverCloseDelay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { luPopoverTrigger: "luPopoverTriggerChange", luPopoverClosed: "luPopoverClosed", luPopoverOpened: "luPopoverOpened" }, host: { listeners: { "click": "onMouseClick()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "mouseenter": "onMouseEnter()", "keydown.Tab": "focusBackToContent($event)", "keydown.Shift.Tab": "focusOutBefore()" }, properties: { "attr.aria-expanded": "opened()", "attr.aria-controls": "opened() ? ariaControls : null" } }, exportAs: ["luPopover2"], ngImport: i0 }); }
|
|
445
451
|
}
|
|
446
452
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PopoverDirective, decorators: [{
|
|
447
453
|
type: Directive,
|
|
@@ -459,7 +465,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
459
465
|
},
|
|
460
466
|
exportAs: 'luPopover2',
|
|
461
467
|
}]
|
|
462
|
-
}], ctorParameters: () => [], propDecorators: { intl: [{ type: i0.Input, args: [{ isSignal: true, alias: "intl", required: false }] }], luPopover2: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopover2", required: false }] }], luPopoverPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverPosition", required: false }] }], luPopoverMaxBlockSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverMaxBlockSize", required: false }] }], luPopoverMaxInlineSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverMaxInlineSize", required: false }] }], overlayScrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "overlayScrollStrategy", required: false }] }], luPopoverDisabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverDisabled", required: false }] }], luPopoverTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverTrigger", required: false }] }, { type: i0.Output, args: ["luPopoverTriggerChange"] }], customPositionsInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "customPositions", required: false }] }], luPopoverNoCloseButtonInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverNoCloseButton", required: false }] }], luPopoverAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverAnchor", required: false }] }], luPopoverIgnoredOutsidePointerTargets: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverIgnoredOutsidePointerTargets", required: false }] }], luPopoverOpenDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverOpenDelay", required: false }] }], luPopoverCloseDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverCloseDelay", required: false }] }], luPopoverClosed: [{ type: i0.Output, args: ["luPopoverClosed"] }], luPopoverOpened: [{ type: i0.Output, args: ["luPopoverOpened"] }] } });
|
|
468
|
+
}], ctorParameters: () => [], propDecorators: { intl: [{ type: i0.Input, args: [{ isSignal: true, alias: "intl", required: false }] }], luPopover2: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopover2", required: false }] }], luPopoverPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverPosition", required: false }] }], luPopoverMaxBlockSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverMaxBlockSize", required: false }] }], luPopoverMaxInlineSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverMaxInlineSize", required: false }] }], overlayScrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "overlayScrollStrategy", required: false }] }], luPopoverDisabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverDisabled", required: false }] }], luPopoverTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverTrigger", required: false }] }, { type: i0.Output, args: ["luPopoverTriggerChange"] }], customPositionsInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "customPositions", required: false }] }], luPopoverNoCloseButtonInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverNoCloseButton", required: false }] }], luPopoverAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverAnchor", required: false }] }], luPopoverBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverBackdrop", required: false }] }], luPopoverIgnoredOutsidePointerTargets: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverIgnoredOutsidePointerTargets", required: false }] }], luPopoverOpenDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverOpenDelay", required: false }] }], luPopoverCloseDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverCloseDelay", required: false }] }], luPopoverClosed: [{ type: i0.Output, args: ["luPopoverClosed"] }], luPopoverOpened: [{ type: i0.Output, args: ["luPopoverOpened"] }] } });
|
|
463
469
|
|
|
464
470
|
function configureLuPopover() {
|
|
465
471
|
return makeEnvironmentProviders([importProvidersFrom(OverlayModule)]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-popover2.mjs","sources":["../../../packages/ng/popover2/popover-focus-trap.ts","../../../packages/ng/popover2/popover-tokens.ts","../../../packages/ng/popover2/translations.ts","../../../packages/ng/popover2/popover.translate.ts","../../../packages/ng/popover2/content/popover-content/popover-content.component.ts","../../../packages/ng/popover2/content/popover-content/popover-content.component.html","../../../packages/ng/popover2/popover2.translate.ts","../../../packages/ng/popover2/popover.directive.ts","../../../packages/ng/popover2/popover.providers.ts","../../../packages/ng/popover2/lucca-front-ng-popover2.ts"],"sourcesContent":["import { FocusTrap, InteractivityChecker } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injector, NgZone } from '@angular/core';\n\nexport class PopoverFocusTrap extends FocusTrap {\n\toverride startAnchorListener = () => {\n\t\tthis.triggerElement.focus();\n\t\treturn true;\n\t};\n\n\toverride endAnchorListener = () => {\n\t\tthis.triggerElement.focus();\n\t\treturn true;\n\t};\n\n\tconstructor(\n\t\telement: HTMLElement,\n\t\tprivate triggerElement: HTMLElement,\n\t\tprivate injector: Injector,\n\t) {\n\t\tsuper(element, inject(InteractivityChecker), inject(NgZone), inject(DOCUMENT), true, injector);\n\t}\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { OverlayRef } from '@angular/cdk/overlay';\n\nexport interface PopoverConfig {\n\ttriggerElement: HTMLElement;\n\tcontent: TemplateRef<unknown> | Type<unknown>;\n\tref: OverlayRef;\n\tcontentId: string;\n\tmaxBlockSize: string | null;\n\tmaxInlineSize: string | null;\n\tdisableCloseButtonFocus: boolean;\n\tdisableInitialTriggerFocus: boolean;\n\tnoCloseButton: boolean;\n}\n\nexport const POPOVER_CONFIG = new InjectionToken<PopoverConfig>('Popover:Config');\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\tpl: {\n\t\tclose: 'Zamknij',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_POPOVER2_TRANSLATIONS = new InjectionToken('LuPopover2Translations', {\n\tfactory: () => luPopoverTranslations,\n});\n\nexport interface ILuPopover2Label {\n\tclose: string;\n}\n\nexport const luPopoverTranslations: LuTranslation<ILuPopover2Label> = Translations;\n","import { CdkObserveContent } from '@angular/cdk/observers';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Injector, input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { Subject } from 'rxjs';\nimport { PopoverFocusTrap } from '../../popover-focus-trap';\nimport { POPOVER_CONFIG } from '../../popover-tokens';\nimport { LU_POPOVER2_TRANSLATIONS } from '../../popover.translate';\n\n@Component({\n\tselector: 'lu-popover-content',\n\timports: [ButtonComponent, IconComponent, CdkObserveContent, PortalDirective],\n\ttemplateUrl: './popover-content.component.html',\n\tstyleUrl: './popover-content.component.scss',\n\thost: {\n\t\t'[attr.id]': 'contentId',\n\t\t'(mouseenter)': 'mouseEnter()',\n\t\t'(mouseleave)': 'mouseLeave()',\n\t\t'(window:keydown.escape)': 'close()',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PopoverContentComponent implements AfterViewInit, OnDestroy {\n\treadonly intl = input(...intlInputOptions(LU_POPOVER2_TRANSLATIONS));\n\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly config = inject(POPOVER_CONFIG);\n\n\treadonly destroyRef = inject(DestroyRef);\n\n\tcontentId = this.config.contentId;\n\n\tcontent = this.config.content;\n\n\t#focusManager = new PopoverFocusTrap(this.#elementRef.nativeElement, this.config.triggerElement, inject(Injector));\n\n\treadonly closed$ = new Subject<void>();\n\n\tcontentChangedDebounceTime = 100;\n\n\treadonly mouseEnter$ = new Subject<void>();\n\n\tmouseEnter(): void {\n\t\tthis.mouseEnter$.next();\n\t}\n\n\treadonly mouseLeave$ = new Subject<void>();\n\n\tmouseLeave(): void {\n\t\tthis.mouseLeave$.next();\n\t}\n\n\tcontentChanged() {\n\t\tthis.config.ref.updatePosition();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#destroyEvents();\n\t\tthis.#focusManager.destroy();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.#focusManager.attachAnchors();\n\t\tif (!this.config.disableCloseButtonFocus) {\n\t\t\tvoid this.#focusManager.focusInitialElementWhenReady();\n\t\t}\n\t}\n\n\tgrabFocus(): void {\n\t\tthis.#focusManager.focusInitialElement();\n\t}\n\n\tclose(): void {\n\t\tif (!this.config.disableInitialTriggerFocus) {\n\t\t\t// Focus initial trigger element\n\t\t\tthis.config.triggerElement.focus();\n\t\t}\n\t\t// Tell the directive we're closed now\n\t\tthis.#destroyEvents();\n\t\t// Detach overlay\n\t\tthis.config.ref.dispose();\n\t}\n\n\t#destroyEvents(): void {\n\t\tthis.closed$.next();\n\t\tthis.closed$.complete();\n\t\tthis.mouseEnter$.complete();\n\t\tthis.mouseLeave$.complete();\n\t}\n}\n","<div\n\tclass=\"popover\"\n\t(cdkObserveContent)=\"contentChanged()\"\n\t[debounce]=\"contentChangedDebounceTime\"\n\t[style.--components-popover-content-maxBlockSize]=\"config.maxBlockSize\"\n\t[style.--components-popover-content-maxInlineSize]=\"config.maxInlineSize\"\n>\n\t@if (!config.noCloseButton) {\n\t\t<div>\n\t\t\t<button type=\"button\" luButton class=\"popover-close button\" (click)=\"close()\">\n\t\t\t\t<lu-icon icon=\"signClose\" />\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl().close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n\t<div class=\"popover-content\">\n\t\t<ng-container *luPortal=\"content\" />\n\t</div>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_POPOVER2_TRANSLATIONS = new InjectionToken('LuPopover2Translations', {\n\tfactory: () => luPopover2Translations,\n});\n\nexport interface LuCalloutLabel {\n\tscreenReaderDescription: string;\n}\n\nexport const luPopover2Translations: LuTranslation<LuCalloutLabel> = {\n\ten: {\n\t\tscreenReaderDescription: '(Tab key to enter panel.)',\n\t},\n\tfr: {\n\t\tscreenReaderDescription: '(Touche de tabulation pour entrer dans le panneau.)',\n\t},\n\tes: {\n\t\tscreenReaderDescription: '(Tabulador para entrar en el panel.)',\n\t},\n\tde: {\n\t\tscreenReaderDescription: '(Tabulatortaste, um in das Panel zu gelangen.)',\n\t},\n};\n","import { ConnectedPosition, ConnectionPositionPair, FlexibleConnectedPositionStrategyOrigin, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n\tDestroyRef,\n\tDirective,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tInputSignalWithTransform,\n\tlinkedSignal,\n\tmodel,\n\tOnDestroy,\n\toutput,\n\tProvider,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tType,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { getPushPanelViewportMargin, intlInputOptions, isNotNil, luBooleanAttribute, luNumberAttribute } from '@lucca-front/ng/core';\nimport { combineLatest, debounce, filter, map, merge, Subject, switchMap, take, timer } from 'rxjs';\nimport { PopoverContentComponent } from './content/popover-content/popover-content.component';\nimport { POPOVER_CONFIG, PopoverConfig } from './popover-tokens';\nimport { LU_POPOVER2_TRANSLATIONS } from './popover2.translate';\n\nexport type PopoverPosition = 'above' | 'below' | 'before' | 'after';\n\nexport interface PopoverOpenOptions {\n\t/** Prevents focusing the close button (or first focusable element) when the popover opens. */\n\tdisableCloseButtonFocus?: boolean;\n\t/** Prevents giving the focus back to the trigger element when the popover closes. */\n\tdisableInitialTriggerFocus?: boolean;\n}\n\nlet nextId = 0;\n\nconst defaultPositionPairs: Record<PopoverPosition, ConnectionPositionPair> = {\n\tabove: new ConnectionPositionPair(\n\t\t{ originX: 'center', originY: 'top' },\n\t\t{\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t),\n\tbelow: new ConnectionPositionPair(\n\t\t{ originX: 'center', originY: 'bottom' },\n\t\t{\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'top',\n\t\t},\n\t),\n\tbefore: new ConnectionPositionPair(\n\t\t{ originX: 'start', originY: 'center' },\n\t\t{\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'center',\n\t\t},\n\t),\n\tafter: new ConnectionPositionPair(\n\t\t{ originX: 'end', originY: 'center' },\n\t\t{\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'center',\n\t\t},\n\t),\n};\n\n@Directive({\n\tselector: '[luPopover2]',\n\thost: {\n\t\t'[attr.aria-expanded]': 'opened()',\n\t\t'[attr.aria-controls]': 'opened() ? ariaControls : null',\n\t\t'(click)': 'onMouseClick()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(keydown.Tab)': 'focusBackToContent($event)',\n\t\t'(keydown.Shift.Tab)': 'focusOutBefore()',\n\t},\n\texportAs: 'luPopover2',\n})\nexport class PopoverDirective implements OnDestroy {\n\treadonly overlay = inject(Overlay);\n\n\treadonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t#injector = inject(Injector);\n\n\t#destroyRef = inject(DestroyRef);\n\n\t#renderer = inject(Renderer2);\n\n\treadonly intl = input(...intlInputOptions(LU_POPOVER2_TRANSLATIONS));\n\n\treadonly luPopover2 = input<TemplateRef<unknown> | Type<unknown>>();\n\n\treadonly luPopoverPosition = input<PopoverPosition | null>(null);\n\n\treadonly luPopoverMaxBlockSize = input<string | null>(null);\n\n\treadonly luPopoverMaxInlineSize = input<string | null>(null);\n\n\treadonly overlayScrollStrategy = input<'reposition' | 'block' | 'close'>('reposition');\n\n\treadonly luPopoverDisabledInput = input(false, { transform: luBooleanAttribute, alias: 'luPopoverDisabled' });\n\n\treadonly luPopoverTrigger = model<'click' | 'click+hover' | 'hover+focus'>('click');\n\n\treadonly customPositionsInput = input<ConnectionPositionPair[] | null>(null, { alias: 'customPositions' });\n\n\t/**\n\t * Removes close button entirely, this is bad for a11y but sometimes we want it.\n\t */\n\treadonly luPopoverNoCloseButtonInput = input(false, { transform: luBooleanAttribute, alias: 'luPopoverNoCloseButton' });\n\n\t/**\n\t * Allows to anchor the popover to another element instead of the trigger one\n\t * for placement purpose\n\t */\n\treadonly luPopoverAnchor = input<FlexibleConnectedPositionStrategyOrigin>(this.elementRef);\n\n\t/**\n\t * Extra element(s) to treat as \"inside\" the popover for outside-pointer detection. Pointer events\n\t * originating from them won't close the popover. Useful when an external control opens the popover\n\t * (e.g. an input opening it on focus) and clicking it again should not trigger a close-then-reopen.\n\t */\n\treadonly luPopoverIgnoredOutsidePointerTargets = input<HTMLElement | HTMLElement[] | null>(null);\n\n\t// We have to type these two for Compodoc to find the right type and tell Storybook these aren't strings\n\treadonly luPopoverOpenDelay: InputSignalWithTransform<number, number | `${number}`> = input(300, { transform: luNumberAttribute });\n\n\treadonly luPopoverCloseDelay: InputSignalWithTransform<number, number | `${number}`> = input(100, { transform: luNumberAttribute });\n\n\treadonly luPopoverPositionRef = linkedSignal(() => this.luPopoverPosition() || 'above');\n\n\treadonly open$ = new Subject<'focus' | 'click' | 'hover'>();\n\n\treadonly close$ = new Subject<void>();\n\n\treadonly luPopoverClosed = output<void>();\n\n\treadonly luPopoverOpened = output<void>();\n\n\treadonly content = linkedSignal(() => this.luPopover2());\n\treadonly luPopoverDisabled = linkedSignal(() => this.luPopoverDisabledInput());\n\treadonly customPositions = linkedSignal(() => this.customPositionsInput());\n\treadonly luPopoverNoCloseButton = linkedSignal(() => this.luPopoverNoCloseButtonInput());\n\n\t#listenToMouseLeave = false;\n\t#listenToMouseEnter = true;\n\t#skipNextFocus = false;\n\n\t#overlayRef: OverlayRef;\n\n\t#componentRef?: PopoverContentComponent;\n\n\tpositionPairs: Record<PopoverPosition, ConnectionPositionPair> = defaultPositionPairs;\n\n\treadonly opened = signal(false);\n\n\treadonly ariaControls = `popover-content-${nextId++}`;\n\n\t#screenReaderDescription?: HTMLSpanElement;\n\n\t// For when we need to extend this popover and add some extra providers to the panel\n\tprotected additionalProviders: Provider[] = [];\n\n\tconstructor() {\n\t\tcombineLatest([toObservable(this.luPopoverOpenDelay), toObservable(this.luPopoverCloseDelay), toObservable(this.luPopoverTrigger)])\n\t\t\t.pipe(\n\t\t\t\tfilter(([, , trigger]) => {\n\t\t\t\t\treturn trigger.includes('hover') || trigger.includes('focus');\n\t\t\t\t}),\n\t\t\t\tswitchMap(([openDelay, closeDelay]) => {\n\t\t\t\t\treturn merge(this.open$.pipe(map((type) => ['open', type])), this.close$.pipe(map(() => ['close']))).pipe(\n\t\t\t\t\t\tdebounce(([event]) => {\n\t\t\t\t\t\t\treturn timer(event === 'open' ? openDelay : closeDelay);\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe(([event, type]: ['open' | 'close', 'focus' | 'click' | 'hover']) => {\n\t\t\t\tif (event === 'open') {\n\t\t\t\t\tthis.openPopover({ disableCloseButtonFocus: true, disableInitialTriggerFocus: type === 'hover' });\n\t\t\t\t\tthis.#listenToMouseLeave = type !== 'click';\n\t\t\t\t\tif (type === 'focus' && !this.#screenReaderDescription) {\n\t\t\t\t\t\tthis.#screenReaderDescription = this.#renderer.createElement('span') as HTMLSpanElement;\n\t\t\t\t\t\tthis.#screenReaderDescription.innerText = this.intl().screenReaderDescription;\n\t\t\t\t\t\tthis.#renderer.addClass(this.#screenReaderDescription, 'pr-u-mask');\n\t\t\t\t\t\tthis.#renderer.appendChild(this.elementRef.nativeElement, this.#screenReaderDescription);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.opened()) {\n\t\t\t\t\tthis.#componentRef?.close();\n\t\t\t\t\tthis.#listenToMouseEnter = true;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#componentRef?.close();\n\t}\n\n\tonMouseEnter() {\n\t\tif (this.#listenToMouseEnter && this.luPopoverTrigger().includes('hover')) {\n\t\t\tthis.open$.next('hover');\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t}\n\t}\n\n\tonFocus() {\n\t\tif (this.luPopoverTrigger().includes('focus')) {\n\t\t\tif (this.#skipNextFocus) {\n\t\t\t\tthis.#skipNextFocus = false;\n\t\t\t} else {\n\t\t\t\tthis.open$.next('focus');\n\t\t\t\tthis.#listenToMouseLeave = true;\n\t\t\t\tthis.#skipNextFocus = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tonMouseLeave() {\n\t\tif (this.#listenToMouseLeave && this.luPopoverTrigger().includes('hover')) {\n\t\t\tthis.close$.next();\n\t\t\tthis.#listenToMouseEnter = true;\n\t\t}\n\t}\n\n\tonMouseClick(): void {\n\t\tif (this.opened()) {\n\t\t\tthis.#componentRef?.close();\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t} else {\n\t\t\tthis.openPopover();\n\t\t\tthis.#listenToMouseLeave = false;\n\t\t\tthis.#listenToMouseEnter = false;\n\t\t}\n\t}\n\n\tclose(): void {\n\t\tif (this.opened()) {\n\t\t\tthis.#componentRef?.close();\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t}\n\t}\n\n\topenPopover(options?: PopoverOpenOptions): void;\n\t/**\n\t * @deprecated The boolean signature is kept only for backward compatibility. `withBackdrop` is now ignored\n\t * (the popover no longer creates a blocking backdrop). Prefer `openPopover({ disableCloseButtonFocus, disableInitialTriggerFocus })`.\n\t */\n\topenPopover(withBackdrop?: boolean, disableCloseButtonFocus?: boolean, disableInitialTriggerFocus?: boolean): void;\n\topenPopover(optionsOrWithBackdrop?: PopoverOpenOptions | boolean, disableCloseButtonFocusArg?: boolean, disableInitialTriggerFocusArg?: boolean): void {\n\t\t// New options-object form vs deprecated boolean form. With the boolean form the first\n\t\t// positional argument is the now-ignored `withBackdrop`, so the focus flags shift by one.\n\t\tconst options: PopoverOpenOptions =\n\t\t\ttypeof optionsOrWithBackdrop === 'object' && optionsOrWithBackdrop !== null\n\t\t\t\t? optionsOrWithBackdrop\n\t\t\t\t: { disableCloseButtonFocus: disableCloseButtonFocusArg, disableInitialTriggerFocus: disableInitialTriggerFocusArg };\n\t\tconst disableCloseButtonFocus = options.disableCloseButtonFocus ?? false;\n\t\tconst disableInitialTriggerFocus = options.disableInitialTriggerFocus ?? false;\n\t\tconst content = this.content();\n\n\t\tif (!this.opened() && !this.luPopoverDisabled() && isNotNil(content)) {\n\t\t\tthis.opened.set(true);\n\t\t\tthis.luPopoverOpened.emit();\n\t\t\tthis.#overlayRef = this.overlay.create({\n\t\t\t\tpositionStrategy: this.overlay\n\t\t\t\t\t.position()\n\t\t\t\t\t.flexibleConnectedTo(this.luPopoverAnchor())\n\t\t\t\t\t.withViewportMargin(getPushPanelViewportMargin(this.elementRef.nativeElement))\n\t\t\t\t\t.withPositions(this.customPositions() || this.#buildPositions())\n\t\t\t\t\t.withGrowAfterOpen(true),\n\t\t\t\tscrollStrategy: this.overlay.scrollStrategies[this.overlayScrollStrategy() ?? 'reposition'](),\n\t\t\t\t// No blocking backdrop: outside interactions are handled via outsidePointerEvents() below.\n\t\t\t\thasBackdrop: false,\n\t\t\t\tbackdropClass: '',\n\t\t\t\tdisposeOnNavigation: true,\n\t\t\t});\n\t\t\t// Close on outside interaction WITHOUT a blocking backdrop that would\n\t\t\t// intercept pointer events on the rest of the page.\n\t\t\tthis.#overlayRef\n\t\t\t\t.outsidePointerEvents()\n\t\t\t\t.pipe(takeUntilDestroyed(this.#destroyRef))\n\t\t\t\t.subscribe((event) => {\n\t\t\t\t\t// Re-opening from the trigger (or from the anchor element, which may be a wrapper\n\t\t\t\t\t// containing other interactive parts), as well as from explicitly ignored external\n\t\t\t\t\t// controls, is handled by their own open handlers (e.g. the click() HostListener or\n\t\t\t\t\t// an input opening on focus). Ignore those here, otherwise we'd close on pointerdown\n\t\t\t\t\t// then immediately reopen on click.\n\t\t\t\t\tconst target = event.target;\n\t\t\t\t\tif (target instanceof Node && (this.elementRef.nativeElement.contains(target) || this.#anchorElement?.contains(target) || this.#isIgnoredOutsidePointerTarget(target))) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.#componentRef?.close();\n\t\t\t\t\tthis.#listenToMouseLeave = true;\n\t\t\t\t});\n\t\t\tconst config: PopoverConfig = {\n\t\t\t\tcontent: content,\n\t\t\t\tref: this.#overlayRef,\n\t\t\t\tcontentId: this.ariaControls,\n\t\t\t\ttriggerElement: this.elementRef.nativeElement,\n\t\t\t\tmaxBlockSize: this.luPopoverMaxBlockSize(),\n\t\t\t\tmaxInlineSize: this.luPopoverMaxInlineSize(),\n\t\t\t\tdisableCloseButtonFocus: disableCloseButtonFocus,\n\t\t\t\tdisableInitialTriggerFocus: disableInitialTriggerFocus,\n\t\t\t\tnoCloseButton: this.luPopoverNoCloseButton(),\n\t\t\t};\n\t\t\tthis.#componentRef = this.#overlayRef.attach(\n\t\t\t\tnew ComponentPortal(\n\t\t\t\t\tPopoverContentComponent,\n\t\t\t\t\t// No ViewContainerRef: the host must be created in the HTML namespace, even when the trigger is an SVG element\n\t\t\t\t\tnull,\n\t\t\t\t\tInjector.create({\n\t\t\t\t\t\tparent: this.#injector,\n\t\t\t\t\t\tproviders: [{ provide: POPOVER_CONFIG, useValue: config }, { provide: PopoverContentComponent, useValue: this.#componentRef }, ...this.additionalProviders],\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t).instance;\n\t\t\t// On tooltip leave => trigger close\n\t\t\tthis.#componentRef.mouseLeave$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.close$.next());\n\t\t\t// On tooltip enter => trigger open to keep it opened\n\t\t\tthis.#componentRef.mouseEnter$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.open$.next('hover'));\n\t\t\tthis.#componentRef.closed$.pipe(take(1), takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\t\tthis.opened.set(false);\n\t\t\t\tthis.#skipNextFocus = false;\n\t\t\t\tthis.luPopoverClosed.emit();\n\t\t\t\tthis.#listenToMouseLeave = false;\n\t\t\t\tif (this.#screenReaderDescription) {\n\t\t\t\t\tthis.#screenReaderDescription.remove();\n\t\t\t\t\tthis.#screenReaderDescription = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tfocusBackToContent(event: Event): void {\n\t\tif (this.opened()) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.#componentRef?.grabFocus();\n\t\t}\n\t}\n\n\tfocusOutBefore(): void {\n\t\tif (this.opened() && this.luPopoverTrigger().includes('focus')) {\n\t\t\tthis.#componentRef?.close();\n\t\t}\n\t}\n\n\tupdatePosition() {\n\t\tthis.#overlayRef?.updatePosition();\n\t}\n\n\t#isIgnoredOutsidePointerTarget(target: Node): boolean {\n\t\tconst ignored = this.luPopoverIgnoredOutsidePointerTargets();\n\t\tif (!ignored) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (Array.isArray(ignored) ? ignored : [ignored]).some((element) => element.contains(target));\n\t}\n\n\t/**\n\t * Resolves the anchor to its native element, when it is one. The anchor can be an ElementRef,\n\t * an Element or a plain coordinate (Point); only element-based anchors can contain a pointer target.\n\t */\n\tget #anchorElement(): Element | null {\n\t\tconst anchor = this.luPopoverAnchor();\n\t\tif (anchor instanceof ElementRef) {\n\t\t\treturn anchor.nativeElement as Element;\n\t\t}\n\t\tif (anchor instanceof Element) {\n\t\t\treturn anchor;\n\t\t}\n\t\treturn null;\n\t}\n\n\t#buildPositions(): ConnectedPosition[] {\n\t\tconst opposite: Record<PopoverPosition, PopoverPosition> = {\n\t\t\tbefore: 'after',\n\t\t\tafter: 'before',\n\t\t\tabove: 'below',\n\t\t\tbelow: 'above',\n\t\t};\n\t\t// Once we have opposite, what's remaining?\n\t\tconst remaining: Record<PopoverPosition, PopoverPosition[]> = {\n\t\t\tbefore: ['above', 'below'],\n\t\t\tafter: ['above', 'below'],\n\t\t\tabove: ['before', 'after'],\n\t\t\tbelow: ['before', 'after'],\n\t\t};\n\t\treturn [this.positionPairs[this.luPopoverPositionRef()], this.positionPairs[opposite[this.luPopoverPositionRef()]], ...remaining[this.luPopoverPositionRef()].map((r) => this.positionPairs[r])];\n\t}\n}\n","import { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nexport function configureLuPopover(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([importProvidersFrom(OverlayModule)]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["LU_POPOVER2_TRANSLATIONS"],"mappings":";;;;;;;;;;;;;AAIM,MAAO,gBAAiB,SAAQ,SAAS,CAAA;AAW9C,IAAA,WAAA,CACC,OAAoB,EACZ,cAA2B,EAC3B,QAAkB,EAAA;QAE1B,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC;QAHtF,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAbR,IAAA,CAAA,mBAAmB,GAAG,MAAK;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,YAAA,OAAO,IAAI;AACZ,QAAA,CAAC;QAEQ,IAAA,CAAA,iBAAiB,GAAG,MAAK;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,YAAA,OAAO,IAAI;AACZ,QAAA,CAAC;IAQD;AACA;;MCPY,cAAc,GAAG,IAAI,cAAc,CAAgB,gBAAgB;;ACfzE,MAAM,YAAY,GAAG;AAC3B,IAAA,OAAO,EAAE;AACR,QAAA,KAAK,EAAE,SAAS;AAChB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,SAAS;AAChB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,UAAU;AACjB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,QAAQ;AACf,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,WAAW;AAClB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,OAAO;AACd,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,SAAS;AAChB,KAAA;CACD;;MCxBYA,0BAAwB,GAAG,IAAI,cAAc,CAAC,wBAAwB,EAAE;AACpF,IAAA,OAAO,EAAE,MAAM,qBAAqB;AACpC,CAAA;AAMM,MAAM,qBAAqB,GAAoC;;MCYzD,uBAAuB,CAAA;AAdpC,IAAA,WAAA,GAAA;AAeU,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAACA,0BAAwB,CAAC;iFAAC;AAEpE,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC;AAEhD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAE/B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAExC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;AAEjC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;QAE7B,IAAA,CAAA,aAAa,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEzG,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAQ;QAEtC,IAAA,CAAA,0BAA0B,GAAG,GAAG;AAEvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;AAMjC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;AA2C1C,IAAA;AAjEA,IAAA,WAAW;AAUX,IAAA,aAAa;IAQb,UAAU,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IACxB;IAIA,UAAU,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IACxB;IAEA,cAAc,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;IACjC;IAEA,WAAW,GAAA;QACV,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;IAC7B;IAEA,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;AACzC,YAAA,KAAK,IAAI,CAAC,aAAa,CAAC,4BAA4B,EAAE;QACvD;IACD;IAEA,SAAS,GAAA;AACR,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE;IACzC;IAEA,KAAK,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE;;AAE5C,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;QACnC;;QAEA,IAAI,CAAC,cAAc,EAAE;;AAErB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;IAC1B;IAEA,cAAc,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;IAC5B;8GAnEY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBpC,qoBAmBA,EAAA,MAAA,EAAA,CAAA,k9wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDPW,eAAe,gQAAE,aAAa,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAYhE,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAdnC,SAAS;+BACC,oBAAoB,EAAA,OAAA,EACrB,CAAC,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,CAAC,EAAA,IAAA,EAGvE;AACL,wBAAA,WAAW,EAAE,WAAW;AACxB,wBAAA,cAAc,EAAE,cAAc;AAC9B,wBAAA,cAAc,EAAE,cAAc;AAC9B,wBAAA,yBAAyB,EAAE,SAAS;AACpC,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qoBAAA,EAAA,MAAA,EAAA,CAAA,k9wBAAA,CAAA,EAAA;;;AEnBzC,MAAM,wBAAwB,GAAG,IAAI,cAAc,CAAC,wBAAwB,EAAE;AACpF,IAAA,OAAO,EAAE,MAAM,sBAAsB;AACrC,CAAA,CAAC;AAMK,MAAM,sBAAsB,GAAkC;AACpE,IAAA,EAAE,EAAE;AACH,QAAA,uBAAuB,EAAE,2BAA2B;AACpD,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,uBAAuB,EAAE,qDAAqD;AAC9E,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,uBAAuB,EAAE,sCAAsC;AAC/D,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,uBAAuB,EAAE,gDAAgD;AACzE,KAAA;CACD;;ACYD,IAAI,MAAM,GAAG,CAAC;AAEd,MAAM,oBAAoB,GAAoD;AAC7E,IAAA,KAAK,EAAE,IAAI,sBAAsB,CAChC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EACrC;AACC,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,QAAQ;KAClB,CACD;AACD,IAAA,KAAK,EAAE,IAAI,sBAAsB,CAChC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EACxC;AACC,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,KAAK;KACf,CACD;AACD,IAAA,MAAM,EAAE,IAAI,sBAAsB,CACjC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EACvC;AACC,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;KAClB,CACD;AACD,IAAA,KAAK,EAAE,IAAI,sBAAsB,CAChC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrC;AACC,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;KAClB,CACD;CACD;MAgBY,gBAAgB,CAAA;AAK5B,IAAA,SAAS;AAET,IAAA,WAAW;AAEX,IAAA,SAAS;AA0DT,IAAA,mBAAmB;AACnB,IAAA,mBAAmB;AACnB,IAAA,cAAc;AAEd,IAAA,WAAW;AAEX,IAAA,aAAa;AAQb,IAAA,wBAAwB;AAKxB,IAAA,WAAA,GAAA;AArFS,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAEzB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AAEjE,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAEpB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,wBAAwB,CAAC;iFAAC;AAE3D,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK;kGAAwC;QAE1D,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAyB,IAAI;8FAAC;QAEvD,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAgB,IAAI;kGAAC;QAElD,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAgB,IAAI;mGAAC;QAEnD,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAmC,YAAY;kGAAC;AAE7E,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,GAAG;QAEpG,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAA0C,OAAO;6FAAC;QAE1E,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAkC,IAAI,4FAAI,KAAK,EAAE,iBAAiB,EAAA,CAAG;AAE1G;;AAEG;AACM,QAAA,IAAA,CAAA,2BAA2B,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,wBAAwB,GAAG;AAEvH;;;AAGG;AACM,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAA0C,IAAI,CAAC,UAAU;4FAAC;AAE1F;;;;AAIG;QACM,IAAA,CAAA,qCAAqC,GAAG,KAAK,CAAqC,IAAI;kHAAC;;QAGvF,IAAA,CAAA,kBAAkB,GAA2D,KAAK,CAAC,GAAG,0FAAI,SAAS,EAAE,iBAAiB,EAAA,CAAG;QAEzH,IAAA,CAAA,mBAAmB,GAA2D,KAAK,CAAC,GAAG,2FAAI,SAAS,EAAE,iBAAiB,EAAA,CAAG;QAE1H,IAAA,CAAA,oBAAoB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,OAAO;iGAAC;AAE9E,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,OAAO,EAA+B;AAElD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAQ;QAE5B,IAAA,CAAA,eAAe,GAAG,MAAM,EAAQ;QAEhC,IAAA,CAAA,eAAe,GAAG,MAAM,EAAQ;QAEhC,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE;oFAAC;QAC/C,IAAA,CAAA,iBAAiB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE;8FAAC;QACrE,IAAA,CAAA,eAAe,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE;4FAAC;QACjE,IAAA,CAAA,sBAAsB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,2BAA2B,EAAE;mGAAC;QAExF,IAAA,CAAA,mBAAmB,GAAG,KAAK;QAC3B,IAAA,CAAA,mBAAmB,GAAG,IAAI;QAC1B,IAAA,CAAA,cAAc,GAAG,KAAK;QAMtB,IAAA,CAAA,aAAa,GAAoD,oBAAoB;QAE5E,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,KAAK;mFAAC;AAEtB,QAAA,IAAA,CAAA,YAAY,GAAG,CAAA,gBAAA,EAAmB,MAAM,EAAE,EAAE;;QAK3C,IAAA,CAAA,mBAAmB,GAAe,EAAE;QAG7C,aAAa,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAChI,IAAI,CACJ,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,KAAI;AACxB,YAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9D,CAAC,CAAC,EACF,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,KAAI;YACrC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACxG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI;AACpB,gBAAA,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;YACxD,CAAC,CAAC,CACF;QACF,CAAC,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aAEpC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAkD,KAAI;AAC7E,YAAA,IAAI,KAAK,KAAK,MAAM,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;AACjG,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,KAAK,OAAO;gBAC3C,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBACvD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAoB;oBACvF,IAAI,CAAC,wBAAwB,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,uBAAuB;oBAC7E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,WAAW,CAAC;AACnE,oBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,wBAAwB,CAAC;gBACzF;YACD;AAAO,iBAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACzB,gBAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;AAC3B,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;YAChC;AACD,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;IAC5B;IAEA,YAAY,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAChC;IACD;IAEA,OAAO,GAAA;QACN,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC9C,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;YAC5B;iBAAO;AACN,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;YAC3B;QACD;IACD;IAEA,YAAY,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAClB,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAChC;IACD;IAEA,YAAY,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAChC;aAAO;YACN,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QACjC;IACD;IAEA,KAAK,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAChC;IACD;AAQA,IAAA,WAAW,CAAC,qBAAoD,EAAE,0BAAoC,EAAE,6BAAuC,EAAA;;;QAG9I,MAAM,OAAO,GACZ,OAAO,qBAAqB,KAAK,QAAQ,IAAI,qBAAqB,KAAK;AACtE,cAAE;cACA,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,6BAA6B,EAAE;AACtH,QAAA,MAAM,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,KAAK;AACxE,QAAA,MAAM,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,IAAI,KAAK;AAC9E,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAE9B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACtC,gBAAgB,EAAE,IAAI,CAAC;AACrB,qBAAA,QAAQ;AACR,qBAAA,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE;qBAC1C,kBAAkB,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;qBAC5E,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;qBAC9D,iBAAiB,CAAC,IAAI,CAAC;AACzB,gBAAA,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,YAAY,CAAC,EAAE;;AAE7F,gBAAA,WAAW,EAAE,KAAK;AAClB,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,mBAAmB,EAAE,IAAI;AACzB,aAAA,CAAC;;;AAGF,YAAA,IAAI,CAAC;AACH,iBAAA,oBAAoB;AACpB,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;;;;;;AAMpB,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3B,gBAAA,IAAI,MAAM,YAAY,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC,EAAE;oBACvK;gBACD;AACA,gBAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;AAC3B,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAChC,YAAA,CAAC,CAAC;AACH,YAAA,MAAM,MAAM,GAAkB;AAC7B,gBAAA,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,IAAI,CAAC,WAAW;gBACrB,SAAS,EAAE,IAAI,CAAC,YAAY;AAC5B,gBAAA,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa;AAC7C,gBAAA,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE;AAC1C,gBAAA,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAAE;AAC5C,gBAAA,uBAAuB,EAAE,uBAAuB;AAChD,gBAAA,0BAA0B,EAAE,0BAA0B;AACtD,gBAAA,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAAE;aAC5C;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAC3C,IAAI,eAAe,CAClB,uBAAuB;;AAEvB,YAAA,IAAI,EACJ,QAAQ,CAAC,MAAM,CAAC;gBACf,MAAM,EAAE,IAAI,CAAC,SAAS;AACtB,gBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAC3J,aAAA,CAAC,CACF,CACD,CAAC,QAAQ;;AAEV,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;;AAEhK,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtK,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAChJ,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,gBAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAClC,oBAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE;AACtC,oBAAA,IAAI,CAAC,wBAAwB,GAAG,SAAS;gBAC1C;AACD,YAAA,CAAC,CAAC;QACH;IACD;AAEA,IAAA,kBAAkB,CAAC,KAAY,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE;QAChC;IACD;IAEA,cAAc,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC/D,YAAA,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE;QAC5B;IACD;IAEA,cAAc,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE;IACnC;AAEA,IAAA,8BAA8B,CAAC,MAAY,EAAA;AAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,qCAAqC,EAAE;QAC5D,IAAI,CAAC,OAAO,EAAE;AACb,YAAA,OAAO,KAAK;QACb;AACA,QAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClG;AAEA;;;AAGG;AACH,IAAA,IAAI,cAAc,GAAA;AACjB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE;AACrC,QAAA,IAAI,MAAM,YAAY,UAAU,EAAE;YACjC,OAAO,MAAM,CAAC,aAAwB;QACvC;AACA,QAAA,IAAI,MAAM,YAAY,OAAO,EAAE;AAC9B,YAAA,OAAO,MAAM;QACd;AACA,QAAA,OAAO,IAAI;IACZ;IAEA,eAAe,GAAA;AACd,QAAA,MAAM,QAAQ,GAA6C;AAC1D,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;SACd;;AAED,QAAA,MAAM,SAAS,GAA+C;AAC7D,YAAA,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AAC1B,YAAA,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AACzB,YAAA,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC1B,YAAA,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;SAC1B;QACD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACjM;8GAvTY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,2BAAA,EAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qCAAA,EAAA,EAAA,iBAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,uCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,4BAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACL,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,sBAAsB,EAAE,gCAAgC;AACxD,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,cAAc,EAAE,gBAAgB;AAChC,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,cAAc,EAAE,gBAAgB;AAChC,wBAAA,eAAe,EAAE,4BAA4B;AAC7C,wBAAA,qBAAqB,EAAE,kBAAkB;AACzC,qBAAA;AACD,oBAAA,QAAQ,EAAE,YAAY;AACtB,iBAAA;;;SC/Ee,kBAAkB,GAAA;IACjC,OAAO,wBAAwB,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;AACtE;;ACLA;;AAEG;;"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-popover2.mjs","sources":["../../../packages/ng/popover2/popover-focus-trap.ts","../../../packages/ng/popover2/popover-tokens.ts","../../../packages/ng/popover2/translations.ts","../../../packages/ng/popover2/popover.translate.ts","../../../packages/ng/popover2/content/popover-content/popover-content.component.ts","../../../packages/ng/popover2/content/popover-content/popover-content.component.html","../../../packages/ng/popover2/popover2.translate.ts","../../../packages/ng/popover2/popover.directive.ts","../../../packages/ng/popover2/popover.providers.ts","../../../packages/ng/popover2/lucca-front-ng-popover2.ts"],"sourcesContent":["import { FocusTrap, InteractivityChecker } from '@angular/cdk/a11y';\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injector, NgZone } from '@angular/core';\n\nexport class PopoverFocusTrap extends FocusTrap {\n\toverride startAnchorListener = () => {\n\t\tthis.triggerElement.focus();\n\t\treturn true;\n\t};\n\n\toverride endAnchorListener = () => {\n\t\tthis.triggerElement.focus();\n\t\treturn true;\n\t};\n\n\tconstructor(\n\t\telement: HTMLElement,\n\t\tprivate triggerElement: HTMLElement,\n\t\tprivate injector: Injector,\n\t) {\n\t\tsuper(element, inject(InteractivityChecker), inject(NgZone), inject(DOCUMENT), true, injector);\n\t}\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { OverlayRef } from '@angular/cdk/overlay';\n\nexport interface PopoverConfig {\n\ttriggerElement: HTMLElement;\n\tcontent: TemplateRef<unknown> | Type<unknown>;\n\tref: OverlayRef;\n\tcontentId: string;\n\tmaxBlockSize: string | null;\n\tmaxInlineSize: string | null;\n\tdisableCloseButtonFocus: boolean;\n\tdisableInitialTriggerFocus: boolean;\n\tnoCloseButton: boolean;\n}\n\nexport const POPOVER_CONFIG = new InjectionToken<PopoverConfig>('Popover:Config');\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\tpl: {\n\t\tclose: 'Zamknij',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_POPOVER2_TRANSLATIONS = new InjectionToken('LuPopover2Translations', {\n\tfactory: () => luPopoverTranslations,\n});\n\nexport interface ILuPopover2Label {\n\tclose: string;\n}\n\nexport const luPopoverTranslations: LuTranslation<ILuPopover2Label> = Translations;\n","import { CdkObserveContent } from '@angular/cdk/observers';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Injector, input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { Subject } from 'rxjs';\nimport { PopoverFocusTrap } from '../../popover-focus-trap';\nimport { POPOVER_CONFIG } from '../../popover-tokens';\nimport { LU_POPOVER2_TRANSLATIONS } from '../../popover.translate';\n\n@Component({\n\tselector: 'lu-popover-content',\n\timports: [ButtonComponent, IconComponent, CdkObserveContent, PortalDirective],\n\ttemplateUrl: './popover-content.component.html',\n\tstyleUrl: './popover-content.component.scss',\n\thost: {\n\t\t'[attr.id]': 'contentId',\n\t\t'(mouseenter)': 'mouseEnter()',\n\t\t'(mouseleave)': 'mouseLeave()',\n\t\t'(window:keydown.escape)': 'close()',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PopoverContentComponent implements AfterViewInit, OnDestroy {\n\treadonly intl = input(...intlInputOptions(LU_POPOVER2_TRANSLATIONS));\n\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly config = inject(POPOVER_CONFIG);\n\n\treadonly destroyRef = inject(DestroyRef);\n\n\tcontentId = this.config.contentId;\n\n\tcontent = this.config.content;\n\n\t#focusManager = new PopoverFocusTrap(this.#elementRef.nativeElement, this.config.triggerElement, inject(Injector));\n\n\treadonly closed$ = new Subject<void>();\n\n\tcontentChangedDebounceTime = 100;\n\n\treadonly mouseEnter$ = new Subject<void>();\n\n\tmouseEnter(): void {\n\t\tthis.mouseEnter$.next();\n\t}\n\n\treadonly mouseLeave$ = new Subject<void>();\n\n\tmouseLeave(): void {\n\t\tthis.mouseLeave$.next();\n\t}\n\n\tcontentChanged() {\n\t\tthis.config.ref.updatePosition();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#destroyEvents();\n\t\tthis.#focusManager.destroy();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.#focusManager.attachAnchors();\n\t\tif (!this.config.disableCloseButtonFocus) {\n\t\t\tvoid this.#focusManager.focusInitialElementWhenReady();\n\t\t}\n\t}\n\n\tgrabFocus(): void {\n\t\tthis.#focusManager.focusInitialElement();\n\t}\n\n\tclose(): void {\n\t\tif (!this.config.disableInitialTriggerFocus) {\n\t\t\t// Focus initial trigger element\n\t\t\tthis.config.triggerElement.focus();\n\t\t}\n\t\t// Tell the directive we're closed now\n\t\tthis.#destroyEvents();\n\t\t// Detach overlay\n\t\tthis.config.ref.dispose();\n\t}\n\n\t#destroyEvents(): void {\n\t\tthis.closed$.next();\n\t\tthis.closed$.complete();\n\t\tthis.mouseEnter$.complete();\n\t\tthis.mouseLeave$.complete();\n\t}\n}\n","<div\n\tclass=\"popover\"\n\t(cdkObserveContent)=\"contentChanged()\"\n\t[debounce]=\"contentChangedDebounceTime\"\n\t[style.--components-popover-content-maxBlockSize]=\"config.maxBlockSize\"\n\t[style.--components-popover-content-maxInlineSize]=\"config.maxInlineSize\"\n>\n\t@if (!config.noCloseButton) {\n\t\t<div>\n\t\t\t<button type=\"button\" luButton class=\"popover-close button\" (click)=\"close()\">\n\t\t\t\t<lu-icon icon=\"signClose\" />\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl().close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n\t<div class=\"popover-content\">\n\t\t<ng-container *luPortal=\"content\" />\n\t</div>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_POPOVER2_TRANSLATIONS = new InjectionToken('LuPopover2Translations', {\n\tfactory: () => luPopover2Translations,\n});\n\nexport interface LuCalloutLabel {\n\tscreenReaderDescription: string;\n}\n\nexport const luPopover2Translations: LuTranslation<LuCalloutLabel> = {\n\ten: {\n\t\tscreenReaderDescription: '(Tab key to enter panel.)',\n\t},\n\tfr: {\n\t\tscreenReaderDescription: '(Touche de tabulation pour entrer dans le panneau.)',\n\t},\n\tes: {\n\t\tscreenReaderDescription: '(Tabulador para entrar en el panel.)',\n\t},\n\tde: {\n\t\tscreenReaderDescription: '(Tabulatortaste, um in das Panel zu gelangen.)',\n\t},\n};\n","import { ConnectedPosition, ConnectionPositionPair, FlexibleConnectedPositionStrategyOrigin, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n\tDestroyRef,\n\tDirective,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tInputSignalWithTransform,\n\tlinkedSignal,\n\tmodel,\n\tOnDestroy,\n\toutput,\n\tProvider,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tType,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { getPushPanelViewportMargin, intlInputOptions, isNotNil, luBooleanAttribute, luNumberAttribute } from '@lucca-front/ng/core';\nimport { combineLatest, debounce, filter, map, merge, Subject, switchMap, take, timer } from 'rxjs';\nimport { PopoverContentComponent } from './content/popover-content/popover-content.component';\nimport { POPOVER_CONFIG, PopoverConfig } from './popover-tokens';\nimport { LU_POPOVER2_TRANSLATIONS } from './popover2.translate';\n\nexport type PopoverPosition = 'above' | 'below' | 'before' | 'after';\n\nexport interface PopoverOpenOptions {\n\t/** Prevents focusing the close button (or first focusable element) when the popover opens. */\n\tdisableCloseButtonFocus?: boolean;\n\t/** Prevents giving the focus back to the trigger element when the popover closes. */\n\tdisableInitialTriggerFocus?: boolean;\n}\n\nlet nextId = 0;\n\nconst defaultPositionPairs: Record<PopoverPosition, ConnectionPositionPair> = {\n\tabove: new ConnectionPositionPair(\n\t\t{ originX: 'center', originY: 'top' },\n\t\t{\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t),\n\tbelow: new ConnectionPositionPair(\n\t\t{ originX: 'center', originY: 'bottom' },\n\t\t{\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'top',\n\t\t},\n\t),\n\tbefore: new ConnectionPositionPair(\n\t\t{ originX: 'start', originY: 'center' },\n\t\t{\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'center',\n\t\t},\n\t),\n\tafter: new ConnectionPositionPair(\n\t\t{ originX: 'end', originY: 'center' },\n\t\t{\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'center',\n\t\t},\n\t),\n};\n\n@Directive({\n\tselector: '[luPopover2]',\n\thost: {\n\t\t'[attr.aria-expanded]': 'opened()',\n\t\t'[attr.aria-controls]': 'opened() ? ariaControls : null',\n\t\t'(click)': 'onMouseClick()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(keydown.Tab)': 'focusBackToContent($event)',\n\t\t'(keydown.Shift.Tab)': 'focusOutBefore()',\n\t},\n\texportAs: 'luPopover2',\n})\nexport class PopoverDirective implements OnDestroy {\n\treadonly overlay = inject(Overlay);\n\n\treadonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t#injector = inject(Injector);\n\n\t#destroyRef = inject(DestroyRef);\n\n\t#renderer = inject(Renderer2);\n\n\treadonly intl = input(...intlInputOptions(LU_POPOVER2_TRANSLATIONS));\n\n\treadonly luPopover2 = input<TemplateRef<unknown> | Type<unknown>>();\n\n\treadonly luPopoverPosition = input<PopoverPosition | null>(null);\n\n\treadonly luPopoverMaxBlockSize = input<string | null>(null);\n\n\treadonly luPopoverMaxInlineSize = input<string | null>(null);\n\n\treadonly overlayScrollStrategy = input<'reposition' | 'block' | 'close'>('reposition');\n\n\treadonly luPopoverDisabledInput = input(false, { transform: luBooleanAttribute, alias: 'luPopoverDisabled' });\n\n\treadonly luPopoverTrigger = model<'click' | 'click+hover' | 'hover+focus'>('click');\n\n\treadonly customPositionsInput = input<ConnectionPositionPair[] | null>(null, { alias: 'customPositions' });\n\n\t/**\n\t * Removes close button entirely, this is bad for a11y but sometimes we want it.\n\t */\n\treadonly luPopoverNoCloseButtonInput = input(false, { transform: luBooleanAttribute, alias: 'luPopoverNoCloseButton' });\n\n\t/**\n\t * Allows to anchor the popover to another element instead of the trigger one\n\t * for placement purpose\n\t */\n\treadonly luPopoverAnchor = input<FlexibleConnectedPositionStrategyOrigin>(this.elementRef);\n\n\t/**\n\t * Renders a transparent backdrop catching the outside click instead of letting it through to the page.\n\t * Reserved for menu-like popovers (a filter dropdown, where the click that closes the panel shouldn't\n\t * also hit what's underneath): a description popover must stay non-blocking, see #5012.\n\t */\n\treadonly luPopoverBackdrop = input(false, { transform: luBooleanAttribute });\n\n\t/**\n\t * Extra element(s) to treat as \"inside\" the popover for outside-pointer detection. Pointer events\n\t * originating from them won't close the popover. Useful when an external control opens the popover\n\t * (e.g. an input opening it on focus) and clicking it again should not trigger a close-then-reopen.\n\t */\n\treadonly luPopoverIgnoredOutsidePointerTargets = input<HTMLElement | HTMLElement[] | null>(null);\n\n\t// We have to type these two for Compodoc to find the right type and tell Storybook these aren't strings\n\treadonly luPopoverOpenDelay: InputSignalWithTransform<number, number | `${number}`> = input(300, { transform: luNumberAttribute });\n\n\treadonly luPopoverCloseDelay: InputSignalWithTransform<number, number | `${number}`> = input(100, { transform: luNumberAttribute });\n\n\treadonly luPopoverPositionRef = linkedSignal(() => this.luPopoverPosition() || 'above');\n\n\treadonly open$ = new Subject<'focus' | 'click' | 'hover'>();\n\n\treadonly close$ = new Subject<void>();\n\n\treadonly luPopoverClosed = output<void>();\n\n\treadonly luPopoverOpened = output<void>();\n\n\treadonly content = linkedSignal(() => this.luPopover2());\n\treadonly luPopoverDisabled = linkedSignal(() => this.luPopoverDisabledInput());\n\treadonly customPositions = linkedSignal(() => this.customPositionsInput());\n\treadonly luPopoverNoCloseButton = linkedSignal(() => this.luPopoverNoCloseButtonInput());\n\n\t#listenToMouseLeave = false;\n\t#listenToMouseEnter = true;\n\t#skipNextFocus = false;\n\n\t#overlayRef: OverlayRef;\n\n\t#componentRef?: PopoverContentComponent;\n\n\tpositionPairs: Record<PopoverPosition, ConnectionPositionPair> = defaultPositionPairs;\n\n\treadonly opened = signal(false);\n\n\treadonly ariaControls = `popover-content-${nextId++}`;\n\n\t#screenReaderDescription?: HTMLSpanElement;\n\n\t// For when we need to extend this popover and add some extra providers to the panel\n\tprotected additionalProviders: Provider[] = [];\n\n\tconstructor() {\n\t\tcombineLatest([toObservable(this.luPopoverOpenDelay), toObservable(this.luPopoverCloseDelay), toObservable(this.luPopoverTrigger)])\n\t\t\t.pipe(\n\t\t\t\tfilter(([, , trigger]) => {\n\t\t\t\t\treturn trigger.includes('hover') || trigger.includes('focus');\n\t\t\t\t}),\n\t\t\t\tswitchMap(([openDelay, closeDelay]) => {\n\t\t\t\t\treturn merge(this.open$.pipe(map((type) => ['open', type])), this.close$.pipe(map(() => ['close']))).pipe(\n\t\t\t\t\t\tdebounce(([event]) => {\n\t\t\t\t\t\t\treturn timer(event === 'open' ? openDelay : closeDelay);\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe(([event, type]: ['open' | 'close', 'focus' | 'click' | 'hover']) => {\n\t\t\t\tif (event === 'open') {\n\t\t\t\t\tthis.openPopover({ disableCloseButtonFocus: true, disableInitialTriggerFocus: type === 'hover' });\n\t\t\t\t\tthis.#listenToMouseLeave = type !== 'click';\n\t\t\t\t\tif (type === 'focus' && !this.#screenReaderDescription) {\n\t\t\t\t\t\tthis.#screenReaderDescription = this.#renderer.createElement('span') as HTMLSpanElement;\n\t\t\t\t\t\tthis.#screenReaderDescription.innerText = this.intl().screenReaderDescription;\n\t\t\t\t\t\tthis.#renderer.addClass(this.#screenReaderDescription, 'pr-u-mask');\n\t\t\t\t\t\tthis.#renderer.appendChild(this.elementRef.nativeElement, this.#screenReaderDescription);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.opened()) {\n\t\t\t\t\tthis.#componentRef?.close();\n\t\t\t\t\tthis.#listenToMouseEnter = true;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#componentRef?.close();\n\t}\n\n\tonMouseEnter() {\n\t\tif (this.#listenToMouseEnter && this.luPopoverTrigger().includes('hover')) {\n\t\t\tthis.open$.next('hover');\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t}\n\t}\n\n\tonFocus() {\n\t\tif (this.luPopoverTrigger().includes('focus')) {\n\t\t\tif (this.#skipNextFocus) {\n\t\t\t\tthis.#skipNextFocus = false;\n\t\t\t} else {\n\t\t\t\tthis.open$.next('focus');\n\t\t\t\tthis.#listenToMouseLeave = true;\n\t\t\t\tthis.#skipNextFocus = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tonMouseLeave() {\n\t\tif (this.#listenToMouseLeave && this.luPopoverTrigger().includes('hover')) {\n\t\t\tthis.close$.next();\n\t\t\tthis.#listenToMouseEnter = true;\n\t\t}\n\t}\n\n\tonMouseClick(): void {\n\t\tif (this.opened()) {\n\t\t\tthis.#componentRef?.close();\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t} else {\n\t\t\tthis.openPopover();\n\t\t\tthis.#listenToMouseLeave = false;\n\t\t\tthis.#listenToMouseEnter = false;\n\t\t}\n\t}\n\n\tclose(): void {\n\t\tif (this.opened()) {\n\t\t\tthis.#componentRef?.close();\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t}\n\t}\n\n\topenPopover(options?: PopoverOpenOptions): void;\n\t/**\n\t * @deprecated The boolean signature is kept only for backward compatibility. `withBackdrop` is now ignored\n\t * (the popover no longer creates a blocking backdrop). Prefer `openPopover({ disableCloseButtonFocus, disableInitialTriggerFocus })`.\n\t */\n\topenPopover(withBackdrop?: boolean, disableCloseButtonFocus?: boolean, disableInitialTriggerFocus?: boolean): void;\n\topenPopover(optionsOrWithBackdrop?: PopoverOpenOptions | boolean, disableCloseButtonFocusArg?: boolean, disableInitialTriggerFocusArg?: boolean): void {\n\t\t// New options-object form vs deprecated boolean form. With the boolean form the first\n\t\t// positional argument is the now-ignored `withBackdrop`, so the focus flags shift by one.\n\t\tconst options: PopoverOpenOptions =\n\t\t\ttypeof optionsOrWithBackdrop === 'object' && optionsOrWithBackdrop !== null\n\t\t\t\t? optionsOrWithBackdrop\n\t\t\t\t: { disableCloseButtonFocus: disableCloseButtonFocusArg, disableInitialTriggerFocus: disableInitialTriggerFocusArg };\n\t\tconst disableCloseButtonFocus = options.disableCloseButtonFocus ?? false;\n\t\tconst disableInitialTriggerFocus = options.disableInitialTriggerFocus ?? false;\n\t\tconst content = this.content();\n\n\t\tif (!this.opened() && !this.luPopoverDisabled() && isNotNil(content)) {\n\t\t\tthis.opened.set(true);\n\t\t\tthis.luPopoverOpened.emit();\n\t\t\tthis.#overlayRef = this.overlay.create({\n\t\t\t\tpositionStrategy: this.overlay\n\t\t\t\t\t.position()\n\t\t\t\t\t.flexibleConnectedTo(this.luPopoverAnchor())\n\t\t\t\t\t.withViewportMargin(getPushPanelViewportMargin(this.elementRef.nativeElement))\n\t\t\t\t\t.withPositions(this.customPositions() || this.#buildPositions())\n\t\t\t\t\t.withGrowAfterOpen(true),\n\t\t\t\tscrollStrategy: this.overlay.scrollStrategies[this.overlayScrollStrategy() ?? 'reposition'](),\n\t\t\t\t// No blocking backdrop by default: outside interactions are handled via outsidePointerEvents() below.\n\t\t\t\thasBackdrop: this.luPopoverBackdrop(),\n\t\t\t\tbackdropClass: this.luPopoverBackdrop() ? 'cdk-overlay-transparent-backdrop' : '',\n\t\t\t\tdisposeOnNavigation: true,\n\t\t\t});\n\t\t\t// Close on outside interaction WITHOUT a blocking backdrop that would\n\t\t\t// intercept pointer events on the rest of the page.\n\t\t\tthis.#overlayRef\n\t\t\t\t.outsidePointerEvents()\n\t\t\t\t.pipe(takeUntilDestroyed(this.#destroyRef))\n\t\t\t\t.subscribe((event) => {\n\t\t\t\t\t// Re-opening from the trigger (or from the anchor element, which may be a wrapper\n\t\t\t\t\t// containing other interactive parts), as well as from explicitly ignored external\n\t\t\t\t\t// controls, is handled by their own open handlers (e.g. the click() HostListener or\n\t\t\t\t\t// an input opening on focus). Ignore those here, otherwise we'd close on pointerdown\n\t\t\t\t\t// then immediately reopen on click.\n\t\t\t\t\tconst target = event.target;\n\t\t\t\t\tif (target instanceof Node && (this.elementRef.nativeElement.contains(target) || this.#anchorElement?.contains(target) || this.#isIgnoredOutsidePointerTarget(target))) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.#componentRef?.close();\n\t\t\t\t\tthis.#listenToMouseLeave = true;\n\t\t\t\t});\n\t\t\tconst config: PopoverConfig = {\n\t\t\t\tcontent: content,\n\t\t\t\tref: this.#overlayRef,\n\t\t\t\tcontentId: this.ariaControls,\n\t\t\t\ttriggerElement: this.elementRef.nativeElement,\n\t\t\t\tmaxBlockSize: this.luPopoverMaxBlockSize(),\n\t\t\t\tmaxInlineSize: this.luPopoverMaxInlineSize(),\n\t\t\t\tdisableCloseButtonFocus: disableCloseButtonFocus,\n\t\t\t\tdisableInitialTriggerFocus: disableInitialTriggerFocus,\n\t\t\t\tnoCloseButton: this.luPopoverNoCloseButton(),\n\t\t\t};\n\t\t\tthis.#componentRef = this.#overlayRef.attach(\n\t\t\t\tnew ComponentPortal(\n\t\t\t\t\tPopoverContentComponent,\n\t\t\t\t\t// No ViewContainerRef: the host must be created in the HTML namespace, even when the trigger is an SVG element\n\t\t\t\t\tnull,\n\t\t\t\t\tInjector.create({\n\t\t\t\t\t\tparent: this.#injector,\n\t\t\t\t\t\tproviders: [{ provide: POPOVER_CONFIG, useValue: config }, { provide: PopoverContentComponent, useValue: this.#componentRef }, ...this.additionalProviders],\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t).instance;\n\t\t\t// On tooltip leave => trigger close\n\t\t\tthis.#componentRef.mouseLeave$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.close$.next());\n\t\t\t// On tooltip enter => trigger open to keep it opened\n\t\t\tthis.#componentRef.mouseEnter$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.open$.next('hover'));\n\t\t\tthis.#componentRef.closed$.pipe(take(1), takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\t\tthis.opened.set(false);\n\t\t\t\tthis.#skipNextFocus = false;\n\t\t\t\tthis.luPopoverClosed.emit();\n\t\t\t\tthis.#listenToMouseLeave = false;\n\t\t\t\tif (this.#screenReaderDescription) {\n\t\t\t\t\tthis.#screenReaderDescription.remove();\n\t\t\t\t\tthis.#screenReaderDescription = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tfocusBackToContent(event: Event): void {\n\t\tif (this.opened()) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.#componentRef?.grabFocus();\n\t\t}\n\t}\n\n\tfocusOutBefore(): void {\n\t\tif (this.opened() && this.luPopoverTrigger().includes('focus')) {\n\t\t\tthis.#componentRef?.close();\n\t\t}\n\t}\n\n\tupdatePosition() {\n\t\tthis.#overlayRef?.updatePosition();\n\t}\n\n\t#isIgnoredOutsidePointerTarget(target: Node): boolean {\n\t\tconst ignored = this.luPopoverIgnoredOutsidePointerTargets();\n\t\tif (!ignored) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (Array.isArray(ignored) ? ignored : [ignored]).some((element) => element.contains(target));\n\t}\n\n\t/**\n\t * Resolves the anchor to its native element, when it is one. The anchor can be an ElementRef,\n\t * an Element or a plain coordinate (Point); only element-based anchors can contain a pointer target.\n\t */\n\tget #anchorElement(): Element | null {\n\t\tconst anchor = this.luPopoverAnchor();\n\t\tif (anchor instanceof ElementRef) {\n\t\t\treturn anchor.nativeElement as Element;\n\t\t}\n\t\tif (anchor instanceof Element) {\n\t\t\treturn anchor;\n\t\t}\n\t\treturn null;\n\t}\n\n\t#buildPositions(): ConnectedPosition[] {\n\t\tconst opposite: Record<PopoverPosition, PopoverPosition> = {\n\t\t\tbefore: 'after',\n\t\t\tafter: 'before',\n\t\t\tabove: 'below',\n\t\t\tbelow: 'above',\n\t\t};\n\t\t// Once we have opposite, what's remaining?\n\t\tconst remaining: Record<PopoverPosition, PopoverPosition[]> = {\n\t\t\tbefore: ['above', 'below'],\n\t\t\tafter: ['above', 'below'],\n\t\t\tabove: ['before', 'after'],\n\t\t\tbelow: ['before', 'after'],\n\t\t};\n\t\treturn [this.positionPairs[this.luPopoverPositionRef()], this.positionPairs[opposite[this.luPopoverPositionRef()]], ...remaining[this.luPopoverPositionRef()].map((r) => this.positionPairs[r])];\n\t}\n}\n","import { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nexport function configureLuPopover(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([importProvidersFrom(OverlayModule)]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["LU_POPOVER2_TRANSLATIONS"],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, input, booleanAttribute, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { luNumberAttribute, intlInputOptions } from '@lucca-front/ng/core';
|
|
4
|
+
import { IconComponent } from '@lucca-front/ng/icon';
|
|
5
|
+
import { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';
|
|
6
|
+
|
|
7
|
+
const Translations = {
|
|
8
|
+
en: {
|
|
9
|
+
low: 'Low',
|
|
10
|
+
medium: 'Medium',
|
|
11
|
+
high: 'High',
|
|
12
|
+
},
|
|
13
|
+
de: {
|
|
14
|
+
low: 'Niedrig',
|
|
15
|
+
medium: 'Mittel',
|
|
16
|
+
high: 'Hoch',
|
|
17
|
+
},
|
|
18
|
+
fr: {
|
|
19
|
+
low: 'Basse',
|
|
20
|
+
medium: 'Moyenne',
|
|
21
|
+
high: 'Haute',
|
|
22
|
+
},
|
|
23
|
+
it: {
|
|
24
|
+
low: 'Bassa',
|
|
25
|
+
medium: 'Media',
|
|
26
|
+
high: 'Alta',
|
|
27
|
+
},
|
|
28
|
+
nl: {
|
|
29
|
+
low: 'Laag',
|
|
30
|
+
medium: 'Gemiddeld',
|
|
31
|
+
high: 'Hoog',
|
|
32
|
+
},
|
|
33
|
+
'nl-BE': {
|
|
34
|
+
low: 'Laag',
|
|
35
|
+
medium: 'Gemiddeld',
|
|
36
|
+
high: 'Hoog',
|
|
37
|
+
},
|
|
38
|
+
es: {
|
|
39
|
+
low: 'Baja',
|
|
40
|
+
medium: 'Media',
|
|
41
|
+
high: 'Alta',
|
|
42
|
+
},
|
|
43
|
+
pt: {
|
|
44
|
+
low: 'Baixa',
|
|
45
|
+
medium: 'Média',
|
|
46
|
+
high: 'Alta',
|
|
47
|
+
},
|
|
48
|
+
pl: {
|
|
49
|
+
low: 'Niski',
|
|
50
|
+
medium: 'Średni',
|
|
51
|
+
high: 'Wysoki',
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const LU_PRIORITY_LEVELS_TRANSLATIONS = new InjectionToken('luPriorityLevelsTranslations', {
|
|
56
|
+
factory: () => luPriorityLevelsTranslations,
|
|
57
|
+
});
|
|
58
|
+
const luPriorityLevelsTranslations = Translations;
|
|
59
|
+
|
|
60
|
+
const LEVEL_TRANSLATION_KEYS = {
|
|
61
|
+
1: 'low',
|
|
62
|
+
2: 'medium',
|
|
63
|
+
3: 'high',
|
|
64
|
+
};
|
|
65
|
+
class PriorityLevelsComponent {
|
|
66
|
+
constructor() {
|
|
67
|
+
/**
|
|
68
|
+
* Which priority level should be displayed (1 = low, 2 = medium, 3 = high)
|
|
69
|
+
*/
|
|
70
|
+
this.level = input.required({ ...(ngDevMode ? { debugName: "level" } : /* istanbul ignore next */ {}), transform: (luNumberAttribute) });
|
|
71
|
+
/**
|
|
72
|
+
* Which size should the component be? Defaults to M
|
|
73
|
+
*/
|
|
74
|
+
this.size = input('M', /* @ts-ignore */
|
|
75
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
76
|
+
/**
|
|
77
|
+
* Overrides for the default translations
|
|
78
|
+
*/
|
|
79
|
+
this.intl = input(...intlInputOptions(LU_PRIORITY_LEVELS_TRANSLATIONS), /* @ts-ignore */
|
|
80
|
+
...(ngDevMode ? [{ debugName: "intl" }] : /* istanbul ignore next */ []));
|
|
81
|
+
/**
|
|
82
|
+
* Visually hides the label while keeping it in the DOM for screen readers, and shows it in a tooltip on the icon instead
|
|
83
|
+
*/
|
|
84
|
+
this.hiddenLabel = input(false, { ...(ngDevMode ? { debugName: "hiddenLabel" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
85
|
+
this.label = computed(() => this.intl()[LEVEL_TRANSLATION_KEYS[this.level()]], /* @ts-ignore */
|
|
86
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
87
|
+
this.iconSize = computed(() => {
|
|
88
|
+
switch (this.size()) {
|
|
89
|
+
case 'S':
|
|
90
|
+
return 'XXS';
|
|
91
|
+
case 'L':
|
|
92
|
+
return 'S';
|
|
93
|
+
default:
|
|
94
|
+
return 'XS';
|
|
95
|
+
}
|
|
96
|
+
}, /* @ts-ignore */
|
|
97
|
+
...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
|
|
98
|
+
}
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PriorityLevelsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: PriorityLevelsComponent, isStandalone: true, selector: "lu-priority-levels", inputs: { level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, hiddenLabel: { classPropertyName: "hiddenLabel", publicName: "hiddenLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mod-low": "level() === 1", "class.mod-medium": "level() === 2", "class.mod-high": "level() === 3", "class.mod-S": "size() === 'S'", "class.mod-L": "size() === 'L'" }, classAttribute: "priorityLevels" }, ngImport: i0, template: "<lu-icon\n\ticon=\"priorityLevels\"\n\tclass=\"priorityLevels-icon\"\n\t[size]=\"iconSize()\"\n\t[luTooltip]=\"label()\"\n\tluTooltipOnlyForDisplay\n\t[luTooltipDisabled]=\"!hiddenLabel()\"\n/>\n<span class=\"priorityLevels-label\" [class.pr-u-mask]=\"hiddenLabel()\">{{ label() }}</span>\n", styles: ["@layer components{.priorityLevels{--components-priorityLevels-font: var(--pr-t-font-body-S);--components-priorityLevels-minBlockSize: var(--pr-t-font-body-S-lineHeight);--components-priorityLevels-gap: var(--pr-t-spacings-50);--components-priorityLevels-icon-color1: var(--palettes-neutral-400);--components-priorityLevels-icon-color2: var(--palettes-neutral-400);--components-priorityLevels-icon-color3: var(--palettes-neutral-400);display:flex;align-items:center;color:var(--pr-t-color-text);font:var(--components-priorityLevels-font);gap:var(--components-priorityLevels-gap);min-block-size:var(--components-priorityLevels-minBlockSize)}.priorityLevels-icon{display:inline-flex}.priorityLevels-icon:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:var(--pr-t-border-radius-small)}.priorityLevels-icon .lucca-icon:before{background:linear-gradient(to right,var(--components-priorityLevels-icon-color1) 0%,var(--components-priorityLevels-icon-color1) 33.3333333333%,var(--components-priorityLevels-icon-color2) 33.3333333333%,var(--components-priorityLevels-icon-color2) 66.6666666667%,var(--components-priorityLevels-icon-color3) 66.6666666667%,var(--components-priorityLevels-icon-color3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}}@layer mods{.priorityLevels.mod-low{--components-priorityLevels-icon-color1: var(--pr-t-color-text);--components-priorityLevels-icon-color2: var(--palettes-neutral-400);--components-priorityLevels-icon-color3: var(--palettes-neutral-400)}.priorityLevels.mod-medium{--components-priorityLevels-icon-color1: var(--palettes-warning-800);--components-priorityLevels-icon-color2: var(--palettes-warning-800);--components-priorityLevels-icon-color3: var(--palettes-neutral-400)}.priorityLevels.mod-high{--components-priorityLevels-icon-color1: var(--palettes-critical-800);--components-priorityLevels-icon-color2: var(--palettes-critical-800);--components-priorityLevels-icon-color3: var(--palettes-critical-800)}.priorityLevels.mod-S{--components-priorityLevels-font: var(--pr-t-font-body-XS);--components-priorityLevels-minBlockSize: var(--pr-t-font-body-XS-lineHeight);--components-priorityLevels-gap: var(--pr-t-spacings-25)}.priorityLevels.mod-L{--components-priorityLevels-font: var(--pr-t-font-body-M);--components-priorityLevels-minBlockSize: var(--pr-t-font-body-M-lineHeight)}}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "directive", type: LuTooltipTriggerDirective, selector: "[luTooltip],[prTooltip]", inputs: ["luTooltip", "prTooltip", "luTooltipEnterDelay", "prTooltipEnterDelay", "luTooltipLeaveDelay", "prTooltipLeaveDelay", "luTooltipDisabled", "prTooltipDisabled", "luTooltipOnlyForDisplay", "prTooltipOnlyForDisplay", "luTooltipPosition", "prTooltipPosition", "luTooltipWhenEllipsis", "prTooltipWhenEllipsis", "luTooltipAnchor", "prTooltipAnchor", "luTooltipTriggerAnchor", "prTooltipTriggerAnchor", "id"], exportAs: ["luTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
101
|
+
}
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PriorityLevelsComponent, decorators: [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{ selector: 'lu-priority-levels', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [IconComponent, LuTooltipTriggerDirective], host: {
|
|
105
|
+
class: 'priorityLevels',
|
|
106
|
+
'[class.mod-low]': 'level() === 1',
|
|
107
|
+
'[class.mod-medium]': 'level() === 2',
|
|
108
|
+
'[class.mod-high]': 'level() === 3',
|
|
109
|
+
'[class.mod-S]': "size() === 'S'",
|
|
110
|
+
'[class.mod-L]': "size() === 'L'",
|
|
111
|
+
}, template: "<lu-icon\n\ticon=\"priorityLevels\"\n\tclass=\"priorityLevels-icon\"\n\t[size]=\"iconSize()\"\n\t[luTooltip]=\"label()\"\n\tluTooltipOnlyForDisplay\n\t[luTooltipDisabled]=\"!hiddenLabel()\"\n/>\n<span class=\"priorityLevels-label\" [class.pr-u-mask]=\"hiddenLabel()\">{{ label() }}</span>\n", styles: ["@layer components{.priorityLevels{--components-priorityLevels-font: var(--pr-t-font-body-S);--components-priorityLevels-minBlockSize: var(--pr-t-font-body-S-lineHeight);--components-priorityLevels-gap: var(--pr-t-spacings-50);--components-priorityLevels-icon-color1: var(--palettes-neutral-400);--components-priorityLevels-icon-color2: var(--palettes-neutral-400);--components-priorityLevels-icon-color3: var(--palettes-neutral-400);display:flex;align-items:center;color:var(--pr-t-color-text);font:var(--components-priorityLevels-font);gap:var(--components-priorityLevels-gap);min-block-size:var(--components-priorityLevels-minBlockSize)}.priorityLevels-icon{display:inline-flex}.priorityLevels-icon:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:var(--pr-t-border-radius-small)}.priorityLevels-icon .lucca-icon:before{background:linear-gradient(to right,var(--components-priorityLevels-icon-color1) 0%,var(--components-priorityLevels-icon-color1) 33.3333333333%,var(--components-priorityLevels-icon-color2) 33.3333333333%,var(--components-priorityLevels-icon-color2) 66.6666666667%,var(--components-priorityLevels-icon-color3) 66.6666666667%,var(--components-priorityLevels-icon-color3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}}@layer mods{.priorityLevels.mod-low{--components-priorityLevels-icon-color1: var(--pr-t-color-text);--components-priorityLevels-icon-color2: var(--palettes-neutral-400);--components-priorityLevels-icon-color3: var(--palettes-neutral-400)}.priorityLevels.mod-medium{--components-priorityLevels-icon-color1: var(--palettes-warning-800);--components-priorityLevels-icon-color2: var(--palettes-warning-800);--components-priorityLevels-icon-color3: var(--palettes-neutral-400)}.priorityLevels.mod-high{--components-priorityLevels-icon-color1: var(--palettes-critical-800);--components-priorityLevels-icon-color2: var(--palettes-critical-800);--components-priorityLevels-icon-color3: var(--palettes-critical-800)}.priorityLevels.mod-S{--components-priorityLevels-font: var(--pr-t-font-body-XS);--components-priorityLevels-minBlockSize: var(--pr-t-font-body-XS-lineHeight);--components-priorityLevels-gap: var(--pr-t-spacings-25)}.priorityLevels.mod-L{--components-priorityLevels-font: var(--pr-t-font-body-M);--components-priorityLevels-minBlockSize: var(--pr-t-font-body-M-lineHeight)}}\n"] }]
|
|
112
|
+
}], propDecorators: { level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], intl: [{ type: i0.Input, args: [{ isSignal: true, alias: "intl", required: false }] }], hiddenLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "hiddenLabel", required: false }] }] } });
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Available PriorityLevelsComponent levels (1 = low, 2 = medium, 3 = high)
|
|
116
|
+
*/
|
|
117
|
+
const PRIORITY_LEVELS = [1, 2, 3];
|
|
118
|
+
/**
|
|
119
|
+
* Available PriorityLevelsComponent sizes
|
|
120
|
+
*/
|
|
121
|
+
const PRIORITY_LEVELS_SIZES = ['S', 'M', 'L'];
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Generated bundle index. Do not edit.
|
|
125
|
+
*/
|
|
126
|
+
|
|
127
|
+
export { PRIORITY_LEVELS, PRIORITY_LEVELS_SIZES, PriorityLevelsComponent };
|
|
128
|
+
//# sourceMappingURL=lucca-front-ng-priority-levels.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-priority-levels.mjs","sources":["../../../packages/ng/priority-levels/translations.ts","../../../packages/ng/priority-levels/priority-levels.translate.ts","../../../packages/ng/priority-levels/priority-levels.component.ts","../../../packages/ng/priority-levels/priority-levels.component.html","../../../packages/ng/priority-levels/priority-levels.type.ts","../../../packages/ng/priority-levels/lucca-front-ng-priority-levels.ts"],"sourcesContent":["export const Translations = {\n\ten: {\n\t\tlow: 'Low',\n\t\tmedium: 'Medium',\n\t\thigh: 'High',\n\t},\n\tde: {\n\t\tlow: 'Niedrig',\n\t\tmedium: 'Mittel',\n\t\thigh: 'Hoch',\n\t},\n\tfr: {\n\t\tlow: 'Basse',\n\t\tmedium: 'Moyenne',\n\t\thigh: 'Haute',\n\t},\n\tit: {\n\t\tlow: 'Bassa',\n\t\tmedium: 'Media',\n\t\thigh: 'Alta',\n\t},\n\tnl: {\n\t\tlow: 'Laag',\n\t\tmedium: 'Gemiddeld',\n\t\thigh: 'Hoog',\n\t},\n\t'nl-BE': {\n\t\tlow: 'Laag',\n\t\tmedium: 'Gemiddeld',\n\t\thigh: 'Hoog',\n\t},\n\tes: {\n\t\tlow: 'Baja',\n\t\tmedium: 'Media',\n\t\thigh: 'Alta',\n\t},\n\tpt: {\n\t\tlow: 'Baixa',\n\t\tmedium: 'Média',\n\t\thigh: 'Alta',\n\t},\n\tpl: {\n\t\tlow: 'Niski',\n\t\tmedium: 'Średni',\n\t\thigh: 'Wysoki',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_PRIORITY_LEVELS_TRANSLATIONS = new InjectionToken('luPriorityLevelsTranslations', {\n\tfactory: () => luPriorityLevelsTranslations,\n});\n\nexport interface PriorityLevelsTranslate {\n\tlow: string;\n\tmedium: string;\n\thigh: string;\n}\n\nexport const luPriorityLevelsTranslations: LuTranslation<PriorityLevelsTranslate> = Translations;\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { intlInputOptions, luNumberAttribute } from '@lucca-front/ng/core';\nimport { IconComponent, IconSize } from '@lucca-front/ng/icon';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { LU_PRIORITY_LEVELS_TRANSLATIONS } from './priority-levels.translate';\nimport { PriorityLevel, PriorityLevelsSize } from './priority-levels.type';\n\nconst LEVEL_TRANSLATION_KEYS = {\n\t1: 'low',\n\t2: 'medium',\n\t3: 'high',\n} as const;\n\n@Component({\n\tselector: 'lu-priority-levels',\n\ttemplateUrl: './priority-levels.component.html',\n\tstyleUrl: './priority-levels.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent, LuTooltipTriggerDirective],\n\thost: {\n\t\tclass: 'priorityLevels',\n\t\t'[class.mod-low]': 'level() === 1',\n\t\t'[class.mod-medium]': 'level() === 2',\n\t\t'[class.mod-high]': 'level() === 3',\n\t\t'[class.mod-S]': \"size() === 'S'\",\n\t\t'[class.mod-L]': \"size() === 'L'\",\n\t},\n})\nexport class PriorityLevelsComponent {\n\t/**\n\t * Which priority level should be displayed (1 = low, 2 = medium, 3 = high)\n\t */\n\treadonly level = input.required({ transform: luNumberAttribute<PriorityLevel> });\n\n\t/**\n\t * Which size should the component be? Defaults to M\n\t */\n\treadonly size = input<PriorityLevelsSize>('M');\n\n\t/**\n\t * Overrides for the default translations\n\t */\n\treadonly intl = input(...intlInputOptions(LU_PRIORITY_LEVELS_TRANSLATIONS));\n\n\t/**\n\t * Visually hides the label while keeping it in the DOM for screen readers, and shows it in a tooltip on the icon instead\n\t */\n\treadonly hiddenLabel = input(false, { transform: booleanAttribute });\n\n\treadonly label = computed(() => this.intl()[LEVEL_TRANSLATION_KEYS[this.level()]]);\n\n\treadonly iconSize = computed<IconSize>(() => {\n\t\tswitch (this.size()) {\n\t\t\tcase 'S':\n\t\t\t\treturn 'XXS';\n\t\t\tcase 'L':\n\t\t\t\treturn 'S';\n\t\t\tdefault:\n\t\t\t\treturn 'XS';\n\t\t}\n\t});\n}\n","<lu-icon\n\ticon=\"priorityLevels\"\n\tclass=\"priorityLevels-icon\"\n\t[size]=\"iconSize()\"\n\t[luTooltip]=\"label()\"\n\tluTooltipOnlyForDisplay\n\t[luTooltipDisabled]=\"!hiddenLabel()\"\n/>\n<span class=\"priorityLevels-label\" [class.pr-u-mask]=\"hiddenLabel()\">{{ label() }}</span>\n","/**\n * Available PriorityLevelsComponent levels (1 = low, 2 = medium, 3 = high)\n */\n\nexport const PRIORITY_LEVELS = [1, 2, 3] as const;\nexport type PriorityLevel = (typeof PRIORITY_LEVELS)[number];\n\n/**\n * Available PriorityLevelsComponent sizes\n */\n\nexport const PRIORITY_LEVELS_SIZES = ['S', 'M', 'L'] as const;\nexport type PriorityLevelsSize = (typeof PRIORITY_LEVELS_SIZES)[number];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import DOMPurify from 'isomorphic-dompurify';
|
|
|
4
4
|
import * as i1 from '@angular/platform-browser';
|
|
5
5
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
6
|
import { HttpClient } from '@angular/common/http';
|
|
7
|
-
import { map } from 'rxjs';
|
|
7
|
+
import { map, catchError, of } from 'rxjs';
|
|
8
8
|
|
|
9
9
|
class LuSafeHtmlPipe {
|
|
10
10
|
constructor(sanitizer) {
|
|
@@ -55,7 +55,10 @@ class LuSafeExternalSvgPipe {
|
|
|
55
55
|
this.#subscription?.unsubscribe();
|
|
56
56
|
this.#subscription = this.#httpClient
|
|
57
57
|
.get(url, { responseType: 'text' })
|
|
58
|
-
.pipe(map((svg) => DOMPurify.sanitize(svg, { USE_PROFILES: { svg: true } })), map((svg) => this.#domSanitizer.bypassSecurityTrustHtml(svg))
|
|
58
|
+
.pipe(map((svg) => DOMPurify.sanitize(svg, { USE_PROFILES: { svg: true } })), map((svg) => this.#domSanitizer.bypassSecurityTrustHtml(svg)),
|
|
59
|
+
// The illustrations are decorative and hosted on an external CDN: a failed fetch
|
|
60
|
+
// must degrade to no illustration, not surface as an uncaught error in the host app.
|
|
61
|
+
catchError(() => of('')))
|
|
59
62
|
.subscribe((svg) => {
|
|
60
63
|
this.#lastSvgValue = svg;
|
|
61
64
|
this.#cdr.markForCheck();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-safe-content.mjs","sources":["../../../packages/ng/safe-content/safe-html.pipe.ts","../../../packages/ng/safe-content/safe-content.module.ts","../../../packages/ng/safe-content/safe-external-svg.pipe.ts","../../../packages/ng/safe-content/lucca-front-ng-safe-content.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport DOMPurify from 'isomorphic-dompurify';\nimport type { Config } from 'isomorphic-dompurify';\n\ntype SanitizerConfig = Config & { RETURN_DOM_FRAGMENT?: false | undefined; RETURN_DOM?: false | undefined };\n\n@Pipe({ name: 'luSafeHtml', standalone: true })\nexport class LuSafeHtmlPipe implements PipeTransform {\n\tconstructor(protected sanitizer: DomSanitizer) {}\n\n\tpublic transform(value: string, config?: SanitizerConfig): SafeHtml {\n\t\treturn this.sanitizer.bypassSecurityTrustHtml(DOMPurify.sanitize(value, config));\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { LuSafeHtmlPipe } from './safe-html.pipe';\n\n/**\n * @deprecated use `LuSafeHtmlPipe` instead\n */\n@NgModule({\n\timports: [LuSafeHtmlPipe],\n\texports: [LuSafeHtmlPipe],\n})\nexport class LuSafeContentModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { ChangeDetectorRef, inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport DOMPurify from 'isomorphic-dompurify';\nimport { map, Subscription } from 'rxjs';\n\n@Pipe({\n\tname: 'luSafeExternalSvg',\n\tpure: false,\n})\nexport class LuSafeExternalSvgPipe implements PipeTransform {\n\t#httpClient = inject(HttpClient);\n\t#domSanitizer = inject(DomSanitizer);\n\t#cdr = inject(ChangeDetectorRef);\n\t#lastSvgUrl?: string;\n\t#lastSvgValue: SafeHtml = '';\n\t#subscription?: Subscription;\n\n\ttransform(url: string): SafeHtml {\n\t\tif (url && url !== this.#lastSvgUrl) {\n\t\t\tthis.#lastSvgUrl = url;\n\t\t\tthis.#subscribeToSvg(url);\n\t\t}\n\n\t\treturn this.#lastSvgValue;\n\t}\n\n\t#subscribeToSvg(url: string) {\n\t\tthis.#subscription?.unsubscribe();\n\t\tthis.#subscription = this.#httpClient\n\t\t\t.get(url, { responseType: 'text' })\n\t\t\t.pipe(\n\t\t\t\tmap((svg) => DOMPurify.sanitize(svg, { USE_PROFILES: { svg: true } })),\n\t\t\t\tmap((svg) => this.#domSanitizer.bypassSecurityTrustHtml(svg)),\n\t\t\t)\n\t\t\t.subscribe((svg) => {\n\t\t\t\tthis.#lastSvgValue = svg;\n\t\t\t\tthis.#cdr.markForCheck();\n\t\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAQa,cAAc,CAAA;AAC1B,IAAA,WAAA,CAAsB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;IAAiB;IAEzC,SAAS,CAAC,KAAa,EAAE,MAAwB,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjF;8GALY,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;;;ACJ9C;;AAEG;MAKU,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAnB,mBAAmB,EAAA,OAAA,EAAA,CAHrB,cAAc,CAAA,EAAA,OAAA,EAAA,CACd,cAAc,CAAA,EAAA,CAAA,CAAA;+GAEZ,mBAAmB,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,OAAO,EAAE,CAAC,cAAc,CAAC;AACzB,iBAAA;;;MCCY,qBAAqB,CAAA;AACjC,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;AACpC,IAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChC,IAAA,WAAW;IACX,aAAa,GAAa,EAAE;AAC5B,IAAA,aAAa;AAEb,IAAA,SAAS,CAAC,GAAW,EAAA;QACpB,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,GAAG;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;QAC1B;QAEA,OAAO,IAAI,CAAC,aAAa;IAC1B;AAEA,IAAA,eAAe,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aACxB,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;AACjC,aAAA,IAAI,CACJ,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EACtE,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-safe-content.mjs","sources":["../../../packages/ng/safe-content/safe-html.pipe.ts","../../../packages/ng/safe-content/safe-content.module.ts","../../../packages/ng/safe-content/safe-external-svg.pipe.ts","../../../packages/ng/safe-content/lucca-front-ng-safe-content.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport DOMPurify from 'isomorphic-dompurify';\nimport type { Config } from 'isomorphic-dompurify';\n\ntype SanitizerConfig = Config & { RETURN_DOM_FRAGMENT?: false | undefined; RETURN_DOM?: false | undefined };\n\n@Pipe({ name: 'luSafeHtml', standalone: true })\nexport class LuSafeHtmlPipe implements PipeTransform {\n\tconstructor(protected sanitizer: DomSanitizer) {}\n\n\tpublic transform(value: string, config?: SanitizerConfig): SafeHtml {\n\t\treturn this.sanitizer.bypassSecurityTrustHtml(DOMPurify.sanitize(value, config));\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { LuSafeHtmlPipe } from './safe-html.pipe';\n\n/**\n * @deprecated use `LuSafeHtmlPipe` instead\n */\n@NgModule({\n\timports: [LuSafeHtmlPipe],\n\texports: [LuSafeHtmlPipe],\n})\nexport class LuSafeContentModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { ChangeDetectorRef, inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport DOMPurify from 'isomorphic-dompurify';\nimport { catchError, map, of, Subscription } from 'rxjs';\n\n@Pipe({\n\tname: 'luSafeExternalSvg',\n\tpure: false,\n})\nexport class LuSafeExternalSvgPipe implements PipeTransform {\n\t#httpClient = inject(HttpClient);\n\t#domSanitizer = inject(DomSanitizer);\n\t#cdr = inject(ChangeDetectorRef);\n\t#lastSvgUrl?: string;\n\t#lastSvgValue: SafeHtml = '';\n\t#subscription?: Subscription;\n\n\ttransform(url: string): SafeHtml {\n\t\tif (url && url !== this.#lastSvgUrl) {\n\t\t\tthis.#lastSvgUrl = url;\n\t\t\tthis.#subscribeToSvg(url);\n\t\t}\n\n\t\treturn this.#lastSvgValue;\n\t}\n\n\t#subscribeToSvg(url: string) {\n\t\tthis.#subscription?.unsubscribe();\n\t\tthis.#subscription = this.#httpClient\n\t\t\t.get(url, { responseType: 'text' })\n\t\t\t.pipe(\n\t\t\t\tmap((svg) => DOMPurify.sanitize(svg, { USE_PROFILES: { svg: true } })),\n\t\t\t\tmap((svg) => this.#domSanitizer.bypassSecurityTrustHtml(svg)),\n\t\t\t\t// The illustrations are decorative and hosted on an external CDN: a failed fetch\n\t\t\t\t// must degrade to no illustration, not surface as an uncaught error in the host app.\n\t\t\t\tcatchError(() => of<SafeHtml>('')),\n\t\t\t)\n\t\t\t.subscribe((svg) => {\n\t\t\t\tthis.#lastSvgValue = svg;\n\t\t\t\tthis.#cdr.markForCheck();\n\t\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAQa,cAAc,CAAA;AAC1B,IAAA,WAAA,CAAsB,SAAuB,EAAA;QAAvB,IAAA,CAAA,SAAS,GAAT,SAAS;IAAiB;IAEzC,SAAS,CAAC,KAAa,EAAE,MAAwB,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjF;8GALY,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;;;ACJ9C;;AAEG;MAKU,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAnB,mBAAmB,EAAA,OAAA,EAAA,CAHrB,cAAc,CAAA,EAAA,OAAA,EAAA,CACd,cAAc,CAAA,EAAA,CAAA,CAAA;+GAEZ,mBAAmB,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,OAAO,EAAE,CAAC,cAAc,CAAC;AACzB,iBAAA;;;MCCY,qBAAqB,CAAA;AACjC,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;AACpC,IAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChC,IAAA,WAAW;IACX,aAAa,GAAa,EAAE;AAC5B,IAAA,aAAa;AAEb,IAAA,SAAS,CAAC,GAAW,EAAA;QACpB,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,GAAG;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;QAC1B;QAEA,OAAO,IAAI,CAAC,aAAa;IAC1B;AAEA,IAAA,eAAe,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aACxB,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;AACjC,aAAA,IAAI,CACJ,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EACtE,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;;;QAG7D,UAAU,CAAC,MAAM,EAAE,CAAW,EAAE,CAAC,CAAC;AAElC,aAAA,SAAS,CAAC,CAAC,GAAG,KAAI;AAClB,YAAA,IAAI,CAAC,aAAa,GAAG,GAAG;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACzB,QAAA,CAAC,CAAC;IACJ;8GAhCY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,IAAI,EAAE,KAAK;AACX,iBAAA;;;ACTD;;AAEG;;"}
|