@lucca-front/ng 21.3.0-rc.4 → 21.3.0-rc.6

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.
Files changed (54) hide show
  1. package/fesm2022/lucca-front-ng-callout.mjs +1 -1
  2. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-color.mjs +2 -2
  4. package/fesm2022/lucca-front-ng-color.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-core-select-user.mjs +2 -2
  6. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-core-select.mjs +135 -102
  8. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-date2.mjs +3 -3
  10. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-filter-pills.mjs +2 -2
  12. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-form-field.mjs +2 -2
  14. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +1 -1
  16. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-forms.mjs +86 -35
  18. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-impersonation.mjs +1 -1
  20. package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-multi-select.mjs +18 -5
  22. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-option.mjs +4 -4
  24. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-popover2.mjs +8 -4
  26. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-simple-select.mjs +20 -7
  28. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-skeleton.mjs +2 -2
  30. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +1 -1
  32. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-time.mjs +22 -10
  34. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-title.mjs +17 -2
  36. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  37. package/package.json +4 -4
  38. package/schematics/collection.json +10 -0
  39. package/schematics/deprecated-resolver/index.js +70 -0
  40. package/schematics/deprecated-resolver/migration.spec.js +25 -0
  41. package/schematics/deprecated-resolver/schema.json +23 -0
  42. package/schematics/lib/deprecated-mapper.js +109 -0
  43. package/schematics/lib/index.js +1 -0
  44. package/schematics/lu-grid/index.js +23 -0
  45. package/schematics/lu-grid/migration.js +264 -0
  46. package/schematics/lu-grid/migration.spec.js +23 -0
  47. package/schematics/lu-grid/schema.json +23 -0
  48. package/src/definitions/option/_option-item.scss +4 -24
  49. package/types/lucca-front-ng-core-select.d.ts +5 -0
  50. package/types/lucca-front-ng-forms.d.ts +30 -5
  51. package/types/lucca-front-ng-popover2.d.ts +5 -1
  52. package/types/lucca-front-ng-simple-select.d.ts +3 -0
  53. package/types/lucca-front-ng-time.d.ts +3 -1
  54. package/types/lucca-front-ng-title.d.ts +5 -1
@@ -102,7 +102,7 @@ class ImpersonationComponent {
102
102
  });
103
103
  }
104
104
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ImpersonationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ImpersonationComponent, isStandalone: true, selector: "lu-impersonation", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, selectedUser: { classPropertyName: "selectedUser", publicName: "selectedUser", isSignal: true, isRequired: false, transformFunction: null }, enableFormerEmployees: { classPropertyName: "enableFormerEmployees", publicName: "enableFormerEmployees", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedUser: "selectedUserChange", clear: "clear" }, host: { classAttribute: "impersonation" }, viewQueries: [{ propertyName: "inputComponentRef", first: true, predicate: LuSimpleSelectInputComponent, descendants: true, isSignal: true }, { propertyName: "popoverRef", first: true, predicate: PopoverDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<button\n\ttype=\"button\"\n\tclass=\"impersonation-trigger\"\n\t[class.is-active]=\"isNotMe() && selectedUser()\"\n\t[luPopover2]=\"impersonationPopover\"\n\t[luPopoverNoCloseButton]=\"true\"\n\t[customPositions]=\"popoverPositions\"\n\t[luPopoverAnchor]=\"elementRef\"\n\t#popoverRef=\"luPopover2\"\n\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n>\n\t<span class=\"pr-u-mask\">{{ intl().switchProfile }}</span>\n\n\t@let user = selectedUser();\n\t@if (user) {\n\t\t<lu-user-picture aria-hidden=\"true\" [user]=\"user\" size=\"S\" softRounded />\n\t\t{{ user | luUserDisplay }}\n\t} @else {\n\t\t<lu-user-picture placeholder aria-hidden=\"true\" size=\"S\" softRounded />\n\t\t<div class=\"skeleton is-loading\" style=\"inline-size: 5.5rem\">\n\t\t\t<span class=\"skeleton-item\"></span>\n\t\t</div>\n\t}\n\t<span class=\"pr-u-mask\">{{ intl().a11yNavigationDescription }}</span>\n\t<lu-icon class=\"impersonation-trigger-icon\" icon=\"chevronBottom\" />\n</button>\n<lu-clear class=\"impersonation-clear\" (onClear)=\"clear.emit()\" [intl]=\"{ clear: intl().clear }\" />\n\n<ng-template #impersonationPopover>\n\t<div class=\"impersonation_popover-content popover-contentOptional\">\n\t\t<lu-simple-select impersonation [(ngModel)]=\"selectedUser\" users [enableFormerEmployees]=\"enableFormerEmployees()\" #selectRef>\n\t\t\t<ng-container *luOption=\"let user; select: selectRef\">\n\t\t\t\t<div class=\"impersonation_popover-content-option\" [class.mod-me]=\"currentUserId === user.id\">\n\t\t\t\t\t<lu-user-picture aria-hidden=\"true\" [user]=\"user\" size=\"XS\" softRounded />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t@if (currentUserId === user.id) {\n\t\t\t\t\t\t\t{{ intl().me }} <span translate=\"no\">{{ user | luUserDisplay }}</span>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<span translate=\"no\">{{ user | luUserDisplay }}</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<!-- Handle homonyms -->\n\t\t\t\t\t\t@if (user.additionalInformation) {\n\t\t\t\t\t\t\t<div class=\"option-additional\">\n\t\t\t\t\t\t\t\t{{ user.additionalInformation }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</div>\n</ng-template>\n", styles: ["@layer components{.impersonation{--components-impersonation-trigger-borderColor: var(--palettes-neutral-100);--components-impersonation-trigger-icon-rotate: 0deg;--components-impersonation-trigger-backgroundColor: var(--palettes-neutral-0);--components-impersonation-trigger-fontWeight: var(--pr-t-font-fontWeight-regular);--components-impersonation-trigger-color: var(--pr-t-color-text);--components-impersonation-trigger-icon-color: var(--pr-t-color-text-subtle);--components-impersonation-trigger-boxShadow: none;--components-impersonation-clear-display: none;--components-impersonation-trigger-icon-marginInlineStart: auto;position:relative;inline-size:fit-content;display:block}.impersonation-trigger{padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;cursor:pointer;border:1px solid var(--components-impersonation-trigger-borderColor);background-color:var(--components-impersonation-trigger-backgroundColor);border-radius:var(--pr-t-border-radius-200);inline-size:fit-content;display:flex;align-items:center;gap:var(--pr-t-spacings-100);padding:var(--pr-t-spacings-50);padding-inline-end:var(--pr-t-spacings-100);min-block-size:var(--pr-t-spacings-500);font-weight:var(--components-impersonation-trigger-fontWeight);color:var(--components-impersonation-trigger-color);box-shadow:var(--components-impersonation-trigger-boxShadow);transition-property:box-shadow,border-color;transition-duration:var(--commons-animations-durations-fast)}.impersonation-trigger-icon{color:var(--components-impersonation-trigger-icon-color);rotate:var(--components-impersonation-trigger-icon-rotate);transition-property:rotate;transition-duration:var(--commons-animations-durations-fast);margin-inline-start:var(--components-impersonation-trigger-icon-marginInlineStart)}.impersonation-clear.clear{position:absolute;z-index:1;inset-inline-end:calc(var(--pr-t-spacings-400) + var(--pr-t-spacings-75));inset-block-start:calc(var(--pr-t-spacings-150) + 1px);display:var(--components-impersonation-clear-display);--components-clear-cross-color: var(--palettes-neutral-0);--components-clear-background: var(--palettes-product-800)}.impersonation-clear.clear:hover{--components-clear-background: var(--palettes-product-700)}.impersonation-clear.clear:active{--components-clear-background: var(--palettes-product-900)}.impersonation_popover-content-option{display:flex;color:var(--pr-t-color-text)}.impersonation_popover-content-option.mod-me{font-weight:var(--pr-t-font-fontWeight-semibold)}}@layer mods{.impersonation:has(.impersonation-trigger.is-active){--components-impersonation-trigger-backgroundColor: var(--palettes-product-50);--components-impersonation-trigger-borderColor: var(--palettes-product-200);--components-impersonation-trigger-fontWeight: var(--pr-t-font-fontWeight-semibold);--components-impersonation-trigger-color: var(--palettes-product-800);--components-impersonation-trigger-icon-color: var(--palettes-product-700);--components-impersonation-clear-display: grid;--components-impersonation-trigger-icon-marginInlineStart: var(--pr-t-spacings-250)}.impersonation:has(.impersonation-trigger:hover){--components-impersonation-trigger-borderColor: var(--palettes-product-400);--components-impersonation-trigger-shadow: var(--pr-t-elevation-shadow-button)}.impersonation:has(.impersonation-trigger[aria-expanded=true]){--components-impersonation-trigger-icon-rotate: 180deg}}\n"], dependencies: [{ kind: "directive", type: PopoverDirective, selector: "[luPopover2]", inputs: ["intl", "luPopover2", "luPopoverPosition", "overlayScrollStrategy", "luPopoverDisabled", "luPopoverTrigger", "customPositions", "luPopoverNoCloseButton", "luPopoverAnchor", "luPopoverOpenDelay", "luPopoverCloseDelay"], outputs: ["luPopoverTriggerChange", "luPopoverClosed", "luPopoverOpened"], exportAs: ["luPopover2"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LuSimpleSelectInputComponent, selector: "lu-simple-select", inputs: ["intl", "autocomplete", "impersonation"] }, { kind: "directive", type: LuCoreSelectUsersDirective, selector: "lu-simple-select[users],lu-multi-select[users]", inputs: ["displayFormat", "filters", "url", "orderBy", "operationIds", "uniqueOperationIds", "appInstanceId", "enableFormerEmployees", "displayMeOption", "customUserOptionTpl", "searchDelimiter"], outputs: ["customUserOptionTplChange"], exportAs: ["luUsers"] }, { kind: "directive", type: LuOptionDirective, selector: "[luOption]", inputs: ["luOptionSelect"] }, { kind: "component", type: LuUserPictureComponent, selector: "lu-user-picture", inputs: ["displayFormat", "user", "AI", "placeholder", "softRounded", "size", "imageLoadingAttribute"] }, { kind: "component", type: IconComponent, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "component", type: ClearComponent, selector: "lu-clear", inputs: ["intl", "size", "disabled", "palette", "inverted"], outputs: ["onClear"], exportAs: ["luClearer"] }, { kind: "pipe", type: LuUserDisplayPipe, name: "luUserDisplay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ImpersonationComponent, isStandalone: true, selector: "lu-impersonation", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, selectedUser: { classPropertyName: "selectedUser", publicName: "selectedUser", isSignal: true, isRequired: false, transformFunction: null }, enableFormerEmployees: { classPropertyName: "enableFormerEmployees", publicName: "enableFormerEmployees", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedUser: "selectedUserChange", clear: "clear" }, host: { classAttribute: "impersonation" }, viewQueries: [{ propertyName: "inputComponentRef", first: true, predicate: LuSimpleSelectInputComponent, descendants: true, isSignal: true }, { propertyName: "popoverRef", first: true, predicate: PopoverDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<button\n\ttype=\"button\"\n\tclass=\"impersonation-trigger\"\n\t[class.is-active]=\"isNotMe() && selectedUser()\"\n\t[luPopover2]=\"impersonationPopover\"\n\t[luPopoverNoCloseButton]=\"true\"\n\t[customPositions]=\"popoverPositions\"\n\t[luPopoverAnchor]=\"elementRef\"\n\t#popoverRef=\"luPopover2\"\n\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n>\n\t<span class=\"pr-u-mask\">{{ intl().switchProfile }}</span>\n\n\t@let user = selectedUser();\n\t@if (user) {\n\t\t<lu-user-picture aria-hidden=\"true\" [user]=\"user\" size=\"S\" softRounded />\n\t\t{{ user | luUserDisplay }}\n\t} @else {\n\t\t<lu-user-picture placeholder aria-hidden=\"true\" size=\"S\" softRounded />\n\t\t<div class=\"skeleton is-loading\" style=\"inline-size: 5.5rem\">\n\t\t\t<span class=\"skeleton-item\"></span>\n\t\t</div>\n\t}\n\t<span class=\"pr-u-mask\">{{ intl().a11yNavigationDescription }}</span>\n\t<lu-icon class=\"impersonation-trigger-icon\" icon=\"chevronBottom\" />\n</button>\n<lu-clear class=\"impersonation-clear\" (onClear)=\"clear.emit()\" [intl]=\"{ clear: intl().clear }\" />\n\n<ng-template #impersonationPopover>\n\t<div class=\"impersonation_popover-content popover-contentOptional\">\n\t\t<lu-simple-select impersonation [(ngModel)]=\"selectedUser\" users [enableFormerEmployees]=\"enableFormerEmployees()\" #selectRef>\n\t\t\t<ng-container *luOption=\"let user; select: selectRef\">\n\t\t\t\t<div class=\"impersonation_popover-content-option\" [class.mod-me]=\"currentUserId === user.id\">\n\t\t\t\t\t<lu-user-picture aria-hidden=\"true\" [user]=\"user\" size=\"XS\" softRounded />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t@if (currentUserId === user.id) {\n\t\t\t\t\t\t\t{{ intl().me }} <span translate=\"no\">{{ user | luUserDisplay }}</span>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<span translate=\"no\">{{ user | luUserDisplay }}</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<!-- Handle homonyms -->\n\t\t\t\t\t\t@if (user.additionalInformation) {\n\t\t\t\t\t\t\t<div class=\"option-additional\">\n\t\t\t\t\t\t\t\t{{ user.additionalInformation }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</div>\n</ng-template>\n", styles: ["@layer components{.impersonation{--components-impersonation-trigger-borderColor: var(--palettes-neutral-100);--components-impersonation-trigger-icon-rotate: 0deg;--components-impersonation-trigger-backgroundColor: var(--palettes-neutral-0);--components-impersonation-trigger-fontWeight: var(--pr-t-font-fontWeight-regular);--components-impersonation-trigger-color: var(--pr-t-color-text);--components-impersonation-trigger-icon-color: var(--pr-t-color-text-subtle);--components-impersonation-trigger-boxShadow: none;--components-impersonation-clear-display: none;--components-impersonation-trigger-icon-marginInlineStart: auto;position:relative;inline-size:fit-content;display:block}.impersonation-trigger{padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;cursor:pointer;border:1px solid var(--components-impersonation-trigger-borderColor);background-color:var(--components-impersonation-trigger-backgroundColor);border-radius:var(--pr-t-border-radius-200);inline-size:fit-content;display:flex;align-items:center;gap:var(--pr-t-spacings-100);padding:var(--pr-t-spacings-50);padding-inline-end:var(--pr-t-spacings-100);min-block-size:var(--pr-t-spacings-500);font-weight:var(--components-impersonation-trigger-fontWeight);color:var(--components-impersonation-trigger-color);box-shadow:var(--components-impersonation-trigger-boxShadow);transition-property:box-shadow,border-color;transition-duration:var(--commons-animations-durations-fast)}.impersonation-trigger-icon{color:var(--components-impersonation-trigger-icon-color);rotate:var(--components-impersonation-trigger-icon-rotate);transition-property:rotate;transition-duration:var(--commons-animations-durations-fast);margin-inline-start:var(--components-impersonation-trigger-icon-marginInlineStart)}.impersonation-clear.clear{position:absolute;z-index:1;inset-inline-end:calc(var(--pr-t-spacings-400) + var(--pr-t-spacings-75));inset-block-start:calc(var(--pr-t-spacings-150) + 1px);display:var(--components-impersonation-clear-display);--components-clear-cross-color: var(--palettes-neutral-0);--components-clear-background: var(--palettes-product-800)}.impersonation-clear.clear:hover{--components-clear-background: var(--palettes-product-700)}.impersonation-clear.clear:active{--components-clear-background: var(--palettes-product-900)}.impersonation_popover-content-option{display:flex;color:var(--pr-t-color-text)}.impersonation_popover-content-option.mod-me{font-weight:var(--pr-t-font-fontWeight-semibold)}}@layer mods{.impersonation:has(.impersonation-trigger.is-active){--components-impersonation-trigger-backgroundColor: var(--palettes-product-50);--components-impersonation-trigger-borderColor: var(--palettes-product-200);--components-impersonation-trigger-fontWeight: var(--pr-t-font-fontWeight-semibold);--components-impersonation-trigger-color: var(--palettes-product-800);--components-impersonation-trigger-icon-color: var(--palettes-product-700);--components-impersonation-clear-display: grid;--components-impersonation-trigger-icon-marginInlineStart: var(--pr-t-spacings-250)}.impersonation:has(.impersonation-trigger:hover){--components-impersonation-trigger-borderColor: var(--palettes-product-400);--components-impersonation-trigger-shadow: var(--pr-t-elevation-shadow-button)}.impersonation:has(.impersonation-trigger[aria-expanded=true]){--components-impersonation-trigger-icon-rotate: 180deg}}\n"], dependencies: [{ kind: "directive", type: PopoverDirective, selector: "[luPopover2]", inputs: ["intl", "luPopover2", "luPopoverPosition", "luPopoverMaxBlockSize", "luPopoverMaxInlineSize", "overlayScrollStrategy", "luPopoverDisabled", "luPopoverTrigger", "customPositions", "luPopoverNoCloseButton", "luPopoverAnchor", "luPopoverOpenDelay", "luPopoverCloseDelay"], outputs: ["luPopoverTriggerChange", "luPopoverClosed", "luPopoverOpened"], exportAs: ["luPopover2"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LuSimpleSelectInputComponent, selector: "lu-simple-select", inputs: ["intl", "autocomplete", "impersonation"] }, { kind: "directive", type: LuCoreSelectUsersDirective, selector: "lu-simple-select[users],lu-multi-select[users]", inputs: ["displayFormat", "filters", "url", "orderBy", "operationIds", "uniqueOperationIds", "appInstanceId", "enableFormerEmployees", "displayMeOption", "customUserOptionTpl", "searchDelimiter"], outputs: ["customUserOptionTplChange"], exportAs: ["luUsers"] }, { kind: "directive", type: LuOptionDirective, selector: "[luOption]", inputs: ["luOptionSelect"] }, { kind: "component", type: LuUserPictureComponent, selector: "lu-user-picture", inputs: ["displayFormat", "user", "AI", "placeholder", "softRounded", "size", "imageLoadingAttribute"] }, { kind: "component", type: IconComponent, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "component", type: ClearComponent, selector: "lu-clear", inputs: ["intl", "size", "disabled", "palette", "inverted"], outputs: ["onClear"], exportAs: ["luClearer"] }, { kind: "pipe", type: LuUserDisplayPipe, name: "luUserDisplay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
106
106
  }
107
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ImpersonationComponent, decorators: [{
108
108
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-impersonation.mjs","sources":["../../../packages/ng/impersonation/impersonation/translations.ts","../../../packages/ng/impersonation/impersonation/impersonation.translate.ts","../../../packages/ng/impersonation/impersonation/impersonation.component.ts","../../../packages/ng/impersonation/impersonation/impersonation.component.html","../../../packages/ng/impersonation/lucca-front-ng-impersonation.ts"],"sourcesContent":["export const Translations = {\n\t'nl-BE': {\n\t\ta11yNavigationDescription: '– De inhoud van de pagina wordt bijgewerkt zodra dit filter wordt gewijzigd',\n\t\tswitchProfile: 'Profiel wijzigen:',\n\t\tclear: 'Terug naar standaardprofiel',\n\t},\n\tnl: {\n\t\ta11yNavigationDescription: '– De inhoud van de pagina wordt bijgewerkt zodra dit filter wordt gewijzigd',\n\t\tswitchProfile: 'Profiel wijzigen:',\n\t\tclear: 'Terug naar standaardprofiel',\n\t},\n\tit: {\n\t\ta11yNavigationDescription: '– Il contenuto della pagina si aggiorna non appena questo filtro viene modificato',\n\t\tswitchProfile: 'Cambia profilo:',\n\t\tclear: 'Torna al profilo predefinito',\n\t},\n\tfr: {\n\t\ta11yNavigationDescription: '– Le contenu de la page s’actualise dès que ce filtre est modifié',\n\t\tswitchProfile: 'Changer de profil :',\n\t\tclear: 'Revenir au profil par défaut',\n\t},\n\tpt: {\n\t\ta11yNavigationDescription: '– O conteúdo da página é atualizado assim que este filtro é alterado',\n\t\tswitchProfile: 'Alterar perfil:',\n\t\tclear: 'Voltar ao perfil predefinido',\n\t},\n\tes: {\n\t\ta11yNavigationDescription: '– El contenido de la página se actualiza en cuanto se cambia este filtro',\n\t\tswitchProfile: 'Cambiar de perfil:',\n\t\tclear: 'Volver al perfil predeterminado',\n\t},\n\tde: {\n\t\ta11yNavigationDescription: '– Der Seiteninhalt wird aktualisiert, sobald dieser Filter geändert wird',\n\t\tswitchProfile: 'Profil wechseln:',\n\t\tclear: 'Zurück zum Standardprofil',\n\t},\n\ten: {\n\t\ta11yNavigationDescription: '– Page content updates as soon as this filter is changed',\n\t\tswitchProfile: 'Switch profile:',\n\t\tclear: 'Back to default profile',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_IMPERSONATION_TRANSLATIONS = new InjectionToken('LuImpersonationTranslations', {\n\tfactory: () => luImpersonationTranslations,\n});\n\nexport interface LuImpersonationTranslations {\n\ta11yNavigationDescription: string;\n\tswitchProfile: string;\n\tclear: string;\n}\n\nexport const luImpersonationTranslations: LuTranslation<LuImpersonationTranslations> = Translations;\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, model, output, untracked, viewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { LuOptionDirective } from '@lucca-front/ng/core-select';\nimport { LU_CORE_SELECT_USER_TRANSLATIONS, LuCoreSelectUsersDirective, ɵLU_CORE_SELECT_CURRENT_USER_ID } from '@lucca-front/ng/core-select/user';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';\nimport { ILuUser, LuUserDisplayPipe, LuUserPictureComponent } from '@lucca-front/ng/user';\nimport { IconComponent } from '@lucca/prisme/icon';\nimport { LU_IMPERSONATION_TRANSLATIONS } from './impersonation.translate';\nimport { intlInputOptions } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-impersonation',\n\timports: [PopoverDirective, FormsModule, LuSimpleSelectInputComponent, LuCoreSelectUsersDirective, LuUserDisplayPipe, LuOptionDirective, LuUserPictureComponent, IconComponent, ClearComponent],\n\ttemplateUrl: './impersonation.component.html',\n\tstyleUrl: './impersonation.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'impersonation',\n\t},\n})\nexport class ImpersonationComponent {\n\tprotected readonly elementRef = inject(ElementRef);\n\treadonly intl = input(...intlInputOptions(LU_CORE_SELECT_USER_TRANSLATIONS, LU_IMPERSONATION_TRANSLATIONS));\n\tprotected readonly currentUserId = inject(ɵLU_CORE_SELECT_CURRENT_USER_ID);\n\n\treadonly inputComponentRef = viewChild<LuSimpleSelectInputComponent<ILuUser>>(LuSimpleSelectInputComponent);\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\treadonly selectedUser = model<ILuUser>();\n\n\treadonly enableFormerEmployees = input(false, { transform: booleanAttribute });\n\n\treadonly isNotMe = computed(() => this.selectedUser()?.id !== this.currentUserId);\n\treadonly clear = output<void>();\n\n\treadonly popoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ref = this.inputComponentRef();\n\t\t\t// Because ref appears only when opening the panel, we're going to call the impersonation opened hook too\n\t\t\tif (ref) {\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tref.enableFilterPillMode();\n\t\t\t\t\tref.registerFilterPillClosePopover(this.closePopover);\n\t\t\t\t\tref.registerFilterPillUpdatePosition?.(this.updatePosition);\n\t\t\t\t\tref.onFilterPillOpened?.();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tclosePopover = () => {\n\t\tthis.popoverRef()?.close();\n\t\tthis.inputComponentRef()?.onFilterPillClosed?.();\n\t};\n\n\tupdatePosition = () => {\n\t\tthis.popoverRef()?.updatePosition();\n\t};\n}\n","<button\n\ttype=\"button\"\n\tclass=\"impersonation-trigger\"\n\t[class.is-active]=\"isNotMe() && selectedUser()\"\n\t[luPopover2]=\"impersonationPopover\"\n\t[luPopoverNoCloseButton]=\"true\"\n\t[customPositions]=\"popoverPositions\"\n\t[luPopoverAnchor]=\"elementRef\"\n\t#popoverRef=\"luPopover2\"\n\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n>\n\t<span class=\"pr-u-mask\">{{ intl().switchProfile }}</span>\n\n\t@let user = selectedUser();\n\t@if (user) {\n\t\t<lu-user-picture aria-hidden=\"true\" [user]=\"user\" size=\"S\" softRounded />\n\t\t{{ user | luUserDisplay }}\n\t} @else {\n\t\t<lu-user-picture placeholder aria-hidden=\"true\" size=\"S\" softRounded />\n\t\t<div class=\"skeleton is-loading\" style=\"inline-size: 5.5rem\">\n\t\t\t<span class=\"skeleton-item\"></span>\n\t\t</div>\n\t}\n\t<span class=\"pr-u-mask\">{{ intl().a11yNavigationDescription }}</span>\n\t<lu-icon class=\"impersonation-trigger-icon\" icon=\"chevronBottom\" />\n</button>\n<lu-clear class=\"impersonation-clear\" (onClear)=\"clear.emit()\" [intl]=\"{ clear: intl().clear }\" />\n\n<ng-template #impersonationPopover>\n\t<div class=\"impersonation_popover-content popover-contentOptional\">\n\t\t<lu-simple-select impersonation [(ngModel)]=\"selectedUser\" users [enableFormerEmployees]=\"enableFormerEmployees()\" #selectRef>\n\t\t\t<ng-container *luOption=\"let user; select: selectRef\">\n\t\t\t\t<div class=\"impersonation_popover-content-option\" [class.mod-me]=\"currentUserId === user.id\">\n\t\t\t\t\t<lu-user-picture aria-hidden=\"true\" [user]=\"user\" size=\"XS\" softRounded />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t@if (currentUserId === user.id) {\n\t\t\t\t\t\t\t{{ intl().me }} <span translate=\"no\">{{ user | luUserDisplay }}</span>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<span translate=\"no\">{{ user | luUserDisplay }}</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<!-- Handle homonyms -->\n\t\t\t\t\t\t@if (user.additionalInformation) {\n\t\t\t\t\t\t\t<div class=\"option-additional\">\n\t\t\t\t\t\t\t\t{{ user.additionalInformation }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵLU_CORE_SELECT_CURRENT_USER_ID"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-impersonation.mjs","sources":["../../../packages/ng/impersonation/impersonation/translations.ts","../../../packages/ng/impersonation/impersonation/impersonation.translate.ts","../../../packages/ng/impersonation/impersonation/impersonation.component.ts","../../../packages/ng/impersonation/impersonation/impersonation.component.html","../../../packages/ng/impersonation/lucca-front-ng-impersonation.ts"],"sourcesContent":["export const Translations = {\n\t'nl-BE': {\n\t\ta11yNavigationDescription: '– De inhoud van de pagina wordt bijgewerkt zodra dit filter wordt gewijzigd',\n\t\tswitchProfile: 'Profiel wijzigen:',\n\t\tclear: 'Terug naar standaardprofiel',\n\t},\n\tnl: {\n\t\ta11yNavigationDescription: '– De inhoud van de pagina wordt bijgewerkt zodra dit filter wordt gewijzigd',\n\t\tswitchProfile: 'Profiel wijzigen:',\n\t\tclear: 'Terug naar standaardprofiel',\n\t},\n\tit: {\n\t\ta11yNavigationDescription: '– Il contenuto della pagina si aggiorna non appena questo filtro viene modificato',\n\t\tswitchProfile: 'Cambia profilo:',\n\t\tclear: 'Torna al profilo predefinito',\n\t},\n\tfr: {\n\t\ta11yNavigationDescription: '– Le contenu de la page s’actualise dès que ce filtre est modifié',\n\t\tswitchProfile: 'Changer de profil :',\n\t\tclear: 'Revenir au profil par défaut',\n\t},\n\tpt: {\n\t\ta11yNavigationDescription: '– O conteúdo da página é atualizado assim que este filtro é alterado',\n\t\tswitchProfile: 'Alterar perfil:',\n\t\tclear: 'Voltar ao perfil predefinido',\n\t},\n\tes: {\n\t\ta11yNavigationDescription: '– El contenido de la página se actualiza en cuanto se cambia este filtro',\n\t\tswitchProfile: 'Cambiar de perfil:',\n\t\tclear: 'Volver al perfil predeterminado',\n\t},\n\tde: {\n\t\ta11yNavigationDescription: '– Der Seiteninhalt wird aktualisiert, sobald dieser Filter geändert wird',\n\t\tswitchProfile: 'Profil wechseln:',\n\t\tclear: 'Zurück zum Standardprofil',\n\t},\n\ten: {\n\t\ta11yNavigationDescription: '– Page content updates as soon as this filter is changed',\n\t\tswitchProfile: 'Switch profile:',\n\t\tclear: 'Back to default profile',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_IMPERSONATION_TRANSLATIONS = new InjectionToken('LuImpersonationTranslations', {\n\tfactory: () => luImpersonationTranslations,\n});\n\nexport interface LuImpersonationTranslations {\n\ta11yNavigationDescription: string;\n\tswitchProfile: string;\n\tclear: string;\n}\n\nexport const luImpersonationTranslations: LuTranslation<LuImpersonationTranslations> = Translations;\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, model, output, untracked, viewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { LuOptionDirective } from '@lucca-front/ng/core-select';\nimport { LU_CORE_SELECT_USER_TRANSLATIONS, LuCoreSelectUsersDirective, ɵLU_CORE_SELECT_CURRENT_USER_ID } from '@lucca-front/ng/core-select/user';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';\nimport { ILuUser, LuUserDisplayPipe, LuUserPictureComponent } from '@lucca-front/ng/user';\nimport { IconComponent } from '@lucca/prisme/icon';\nimport { LU_IMPERSONATION_TRANSLATIONS } from './impersonation.translate';\nimport { intlInputOptions } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-impersonation',\n\timports: [PopoverDirective, FormsModule, LuSimpleSelectInputComponent, LuCoreSelectUsersDirective, LuUserDisplayPipe, LuOptionDirective, LuUserPictureComponent, IconComponent, ClearComponent],\n\ttemplateUrl: './impersonation.component.html',\n\tstyleUrl: './impersonation.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'impersonation',\n\t},\n})\nexport class ImpersonationComponent {\n\tprotected readonly elementRef = inject(ElementRef);\n\treadonly intl = input(...intlInputOptions(LU_CORE_SELECT_USER_TRANSLATIONS, LU_IMPERSONATION_TRANSLATIONS));\n\tprotected readonly currentUserId = inject(ɵLU_CORE_SELECT_CURRENT_USER_ID);\n\n\treadonly inputComponentRef = viewChild<LuSimpleSelectInputComponent<ILuUser>>(LuSimpleSelectInputComponent);\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\treadonly selectedUser = model<ILuUser>();\n\n\treadonly enableFormerEmployees = input(false, { transform: booleanAttribute });\n\n\treadonly isNotMe = computed(() => this.selectedUser()?.id !== this.currentUserId);\n\treadonly clear = output<void>();\n\n\treadonly popoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ref = this.inputComponentRef();\n\t\t\t// Because ref appears only when opening the panel, we're going to call the impersonation opened hook too\n\t\t\tif (ref) {\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tref.enableFilterPillMode();\n\t\t\t\t\tref.registerFilterPillClosePopover(this.closePopover);\n\t\t\t\t\tref.registerFilterPillUpdatePosition?.(this.updatePosition);\n\t\t\t\t\tref.onFilterPillOpened?.();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tclosePopover = () => {\n\t\tthis.popoverRef()?.close();\n\t\tthis.inputComponentRef()?.onFilterPillClosed?.();\n\t};\n\n\tupdatePosition = () => {\n\t\tthis.popoverRef()?.updatePosition();\n\t};\n}\n","<button\n\ttype=\"button\"\n\tclass=\"impersonation-trigger\"\n\t[class.is-active]=\"isNotMe() && selectedUser()\"\n\t[luPopover2]=\"impersonationPopover\"\n\t[luPopoverNoCloseButton]=\"true\"\n\t[customPositions]=\"popoverPositions\"\n\t[luPopoverAnchor]=\"elementRef\"\n\t#popoverRef=\"luPopover2\"\n\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n>\n\t<span class=\"pr-u-mask\">{{ intl().switchProfile }}</span>\n\n\t@let user = selectedUser();\n\t@if (user) {\n\t\t<lu-user-picture aria-hidden=\"true\" [user]=\"user\" size=\"S\" softRounded />\n\t\t{{ user | luUserDisplay }}\n\t} @else {\n\t\t<lu-user-picture placeholder aria-hidden=\"true\" size=\"S\" softRounded />\n\t\t<div class=\"skeleton is-loading\" style=\"inline-size: 5.5rem\">\n\t\t\t<span class=\"skeleton-item\"></span>\n\t\t</div>\n\t}\n\t<span class=\"pr-u-mask\">{{ intl().a11yNavigationDescription }}</span>\n\t<lu-icon class=\"impersonation-trigger-icon\" icon=\"chevronBottom\" />\n</button>\n<lu-clear class=\"impersonation-clear\" (onClear)=\"clear.emit()\" [intl]=\"{ clear: intl().clear }\" />\n\n<ng-template #impersonationPopover>\n\t<div class=\"impersonation_popover-content popover-contentOptional\">\n\t\t<lu-simple-select impersonation [(ngModel)]=\"selectedUser\" users [enableFormerEmployees]=\"enableFormerEmployees()\" #selectRef>\n\t\t\t<ng-container *luOption=\"let user; select: selectRef\">\n\t\t\t\t<div class=\"impersonation_popover-content-option\" [class.mod-me]=\"currentUserId === user.id\">\n\t\t\t\t\t<lu-user-picture aria-hidden=\"true\" [user]=\"user\" size=\"XS\" softRounded />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t@if (currentUserId === user.id) {\n\t\t\t\t\t\t\t{{ intl().me }} <span translate=\"no\">{{ user | luUserDisplay }}</span>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<span translate=\"no\">{{ user | luUserDisplay }}</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<!-- Handle homonyms -->\n\t\t\t\t\t\t@if (user.additionalInformation) {\n\t\t\t\t\t\t\t<div class=\"option-additional\">\n\t\t\t\t\t\t\t\t{{ user.additionalInformation }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵLU_CORE_SELECT_CURRENT_USER_ID"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Pipe, signal, computed, forwardRef, ChangeDetectionStrategy, Component, Injector, ChangeDetectorRef, ElementRef, Injectable, input, model, viewChild, ViewContainerRef, booleanAttribute, numberAttribute, HostListener, HostBinding, Input, ViewEncapsulation, DestroyRef, Directive, effect, ViewChild } from '@angular/core';
2
+ import { InjectionToken, inject, Pipe, signal, computed, forwardRef, HostListener, ChangeDetectionStrategy, Component, Injector, ChangeDetectorRef, ElementRef, Injectable, input, model, viewChild, ViewContainerRef, booleanAttribute, numberAttribute, HostBinding, Input, ViewEncapsulation, DestroyRef, Directive, effect, ViewChild } from '@angular/core';
3
3
  import { toSignal, toObservable, takeUntilDestroyed, outputToObservable } from '@angular/core/rxjs-interop';
4
4
  import { PortalDirective, intlInputOptions, isNotNil, ɵeffectWithDeps as _effectWithDeps, isNil } from '@lucca-front/ng/core';
5
5
  import * as i1$2 from '@lucca-front/ng/core-select';
@@ -197,6 +197,7 @@ class LuMultiSelectPanelComponent {
197
197
  this.selectedOptions = this.selectInput.value || [];
198
198
  this.optionTpl = this.selectInput.optionTpl;
199
199
  this.options = signal([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
200
+ this.pointerNavigation = signal(false, ...(ngDevMode ? [{ debugName: "pointerNavigation" }] : /* istanbul ignore next */ []));
200
201
  this.keyManager = inject(CoreSelectKeyManager);
201
202
  this.someGroupOptionEnabled = computed(() => {
202
203
  return (groupOptions) => {
@@ -211,6 +212,12 @@ class LuMultiSelectPanelComponent {
211
212
  this.shouldDisplayAddOption$ = this.selectInput.shouldDisplayAddOption$;
212
213
  this.groupTemplateLocation$ = _getGroupTemplateLocation(this.hasGrouping$, this.clueChange$, this.options$, this.searchable);
213
214
  }
215
+ onKeydown() {
216
+ this.pointerNavigation.set(false);
217
+ }
218
+ onMousemove() {
219
+ this.pointerNavigation.set(true);
220
+ }
214
221
  onScroll(evt) {
215
222
  if (!(evt.target instanceof HTMLElement)) {
216
223
  return;
@@ -266,7 +273,7 @@ class LuMultiSelectPanelComponent {
266
273
  }
267
274
  }
268
275
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: LuMultiSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
269
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: LuMultiSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", providers: [
276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: LuMultiSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", host: { listeners: { "document:keydown": "onKeydown()", "document:mousemove": "onMousemove()" } }, providers: [
270
277
  CoreSelectKeyManager,
271
278
  {
272
279
  provide: SELECT_PANEL_INSTANCE,
@@ -297,7 +304,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
297
304
  useExisting: forwardRef(() => LuMultiSelectPanelComponent),
298
305
  },
299
306
  ], template: "@if (\n\t{\n\t\toptions: (options$ | async) || [],\n\t\tclueChange: (clueChange$ | async) || \"\",\n\t\tgroupTemplateLocation: groupTemplateLocation$ | async,\n\t\tshouldDisplayAddOption: shouldDisplayAddOption$ | async,\n\t};\n\tas ctx\n) {\n\t<div class=\"lu-picker-panel lu-option-picker-panel mod-multiple\" data-testid=\"dialog-panel\">\n\t\t<div\n\t\t\tclass=\"lu-picker-content\"\n\t\t\t[class.is-loading]=\"loading()\"\n\t\t\t[class.is-filled]=\"ctx.options.length > 0\"\n\t\t\ttabindex=\"0\"\n\t\t\trole=\"listbox\"\n\t\t\taria-multiselectable=\"true\"\n\t\t\t(scroll)=\"onScroll($event)\"\n\t\t>\n\t\t\t@if (selectInput.panelHeaderTpl(); as tpl) {\n\t\t\t\t<div>\n\t\t\t\t\t<ng-container *luPortal=\"tpl\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"lu-picker-content-option\">\n\t\t\t\t@if (grouping() && ctx.groupTemplateLocation === \"group-header\") {\n\t\t\t\t\t@for (\n\t\t\t\t\t\tgroup of ctx.options | luOptionGroup: grouping().selector;\n\t\t\t\t\t\ttrack trackGroupsBy(groupIndex, group);\n\t\t\t\t\t\tlet groupIndex = $index\n\t\t\t\t\t) {\n\t\t\t\t\t\t<div class=\"lu-picker-content-group\" role=\"group\" attr.aria-labelledby=\"lu-select-{{ selectId }}-group-{{ groupIndex }}\">\n\t\t\t\t\t\t\t@let groupCtx = group.options | luOptionsGroupContext: selectedOptions : optionComparer;\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t\t\t\t\telementId=\"lu-select-{{ selectId }}-group-{{ groupIndex }}\"\n\t\t\t\t\t\t\t\tclass=\"lu-picker-content-option-group-title\"\n\t\t\t\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t\t\t\t(selected)=\"toggleOptions(groupCtx.notSelectedOptions, group.options)\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span #groupingTitleRef>\n\t\t\t\t\t\t\t\t\t<ng-container *luPortal=\"grouping().content; context: { $implicit: group }\" />\n\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t@if (someGroupOptionEnabled()(group.options)) {\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tclass=\"link\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"toggleOptions(groupCtx.notSelectedOptions, group.options)\"\n\t\t\t\t\t\t\t\t\t\t[id]=\"selectId + '-group-' + group.key\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"pr-u-mask\">{{ groupingTitleRef.innerText }}\u00A0\u2013 </span\n\t\t\t\t\t\t\t\t\t\t>{{ groupCtx.isGroupSelected ? intl().unselectAll : intl().selectAll }}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"optionsList\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: group.options, groupIndex: groupIndex }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t@if (!grouping() || ctx.groupTemplateLocation !== \"group-header\") {\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\" />\n\t\t\t\t}\n\t\t\t\t<ng-template #optionsList let-options let-groupIndex=\"groupIndex\">\n\t\t\t\t\t@if (treeGenerator) {\n\t\t\t\t\t\t@for (branch of options | luTreeDisplay: treeGenerator; let index = $index; track trackBranchesBy(index, branch)) {\n\t\t\t\t\t\t\t<lu-tree-branch\n\t\t\t\t\t\t\t\t[branch]=\"branch\"\n\t\t\t\t\t\t\t\t[optionTpl]=\"optionTpl()\"\n\t\t\t\t\t\t\t\t[selectedOptions]=\"selectedOptions\"\n\t\t\t\t\t\t\t\t[optionComparer]=\"optionComparer\"\n\t\t\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t\t\t(toggleOne)=\"toggleOption($event)\"\n\t\t\t\t\t\t\t\t(selectMany)=\"toggleOptions($event, [])\"\n\t\t\t\t\t\t\t\t(unselectMany)=\"toggleOptions([], $event)\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t@for (option of options; track trackOptionsBy(index, option); let index = $index) {\n\t\t\t\t\t\t\t<lu-select-option\n\t\t\t\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t\t\t\t[optionTpl]=\"optionTpl()\"\n\t\t\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t\t\t[grouping]=\"ctx.groupTemplateLocation === 'option' ? grouping() : undefined\"\n\t\t\t\t\t\t\t\t[groupIndex]=\"groupIndex\"\n\t\t\t\t\t\t\t\t[groupTemplateLocation]=\"ctx.groupTemplateLocation\"\n\t\t\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected: optionComparer : selectedOptions\"\n\t\t\t\t\t\t\t\t(selected)=\"toggleOption(option)\"\n\t\t\t\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t\t\t\t\t[class.withAddOption]=\"ctx.shouldDisplayAddOption\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t</ng-template>\n\t\t\t\t@if (ctx.options.length === 0 && !loading()) {\n\t\t\t\t\t<div class=\"lu-picker-content-option-emptyState\">\n\t\t\t\t\t\t{{ ctx.clueChange.length ? intl().emptyResults : intl().emptyOptions }}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t@if (loading()) {\n\t\t\t\t<div class=\"lu-picker-content-loading\">\n\t\t\t\t\t<div class=\"loading\">{{ intl().loading }}</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (ctx.shouldDisplayAddOption) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"addOption palette-product\"\n\t\t\t\t\t[class.is-stuck]=\"true\"\n\t\t\t\t\t(click)=\"selectInput.emitAddOption()\"\n\t\t\t\t\t(selected)=\"selectInput.emitAddOption()\"\n\t\t\t\t\telementId=\"picker-content-add\"\n\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t>\n\t\t\t\t\t<div class=\"addOption-content\">\n\t\t\t\t\t\t<lu-icon icon=\"mathsPlus\" />\n\t\t\t\t\t\t<ng-container *luPortal=\"selectInput.addOptionLabel\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n}\n", styles: ["@layer components{.optionItem-groupKey{padding-block:var(--components-options-item-padding-vertical) var(--pr-t-spacings-50);padding-inline:var(--components-options-item-padding-horizontal);font:var(--pr-t-font-body-S);inline-size:100%;text-align:start;color:var(--palettes-neutral-600);margin:0}}@layer components{.addOption{position:sticky;inset-block-end:0;background-color:var(--pr-t-elevation-surface-raised)}}@layer mods{.addOption.is-highlighted .addOption-content{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.addOption.is-stuck{margin-block-start:var(--pr-t-spacings-100);box-shadow:0 0 0 4px var(--pr-t-elevation-surface-raised),0 0 0 1px color-mix(in srgb,var(--palettes-neutral-400) 8%,transparent),0 0 4px 4px color-mix(in srgb,var(--palettes-neutral-400) 32%,transparent),0 0 8px 4px color-mix(in srgb,var(--palettes-neutral-400) 24%,transparent)}}@layer components{.addOption-content{--components-button-font: var(--pr-t-font-body-M);--components-button-borderRadius: var(--pr-t-border-radius-default);--components-button-paddingBlock: var(--pr-t-spacings-100);--components-button-paddingInline: var(--pr-t-spacings-150);--components-button-paddingBlockStart: var(--components-button-paddingBlock);--components-button-paddingBlockEnd: var(--components-button-paddingBlock);--components-button-paddingInlineStart: var(--components-button-paddingInline);--components-button-paddingInlineEnd: var(--components-button-paddingInline);--components-button-padding: var(--components-button-paddingBlockStart) var(--components-button-paddingInlineEnd) var(--components-button-paddingBlockEnd) var(--components-button-paddingInlineStart);--components-button-gap: var(--pr-t-spacings-100);--components-button-opacity: 1;--components-button-cursor: pointer;--components-button-pointerEvents: auto;--components-button-width: auto;--components-button-minWidth: none;--components-button-userSelect: auto;--components-button-boxShadow: var(--pr-t-elevation-shadow-button);--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--components-button-arrow-transform: none;--components-button-AI-background-opacity: 25%;--components-button-font-size: var(--pr-t-font-body-M-fontSize);--components-button-line-height: var(--pr-t-font-body-M-lineHeight);--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--components-button-borderRadius);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);inline-size:var(--components-button-width);min-inline-size:var(--components-button-minWidth);font:var(--components-button-font);font-size:var(--components-button-font-size);line-height:var(--components-button-line-height);font-weight:var(--pr-t-font-fontWeight-semibold);gap:var(--components-button-gap);pointer-events:var(--components-button-pointerEvents);-webkit-user-select:var(--components-button-userSelect);user-select:var(--components-button-userSelect);opacity:var(--components-button-opacity);cursor:var(--components-button-cursor);transition-timing-function:ease;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;text-wrap:balance;text-align:center;border:0}.addOption-content,.addOption-content:is(a){color:var(--components-button-color)}.addOption-content .lucca-icon{display:block}.addOption-content .button-icon{--icon-size: 1.5rem}.addOption-content:not(.mod-outlined,.mod-outline) .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-800))}.addOption-content:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.addOption-content:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:var(--components-button-borderRadius)}.addOption-content:active{--components-button-backgroundColor: var(--palettes-900, var(--palettes-product-900))}.addOption-content:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.addOption-content:disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.addOption-content{--components-button-width: 100%;--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none}.addOption-content:hover,.addOption-content:focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.addOption-content:active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.addOption-content:disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.addOption-content{justify-content:left;--components-button-padding: var(--pr-t-spacings-50)}}\n"] }]
300
- }] });
307
+ }], propDecorators: { onKeydown: [{
308
+ type: HostListener,
309
+ args: ['document:keydown']
310
+ }], onMousemove: [{
311
+ type: HostListener,
312
+ args: ['document:mousemove']
313
+ }] } });
301
314
 
302
315
  class BaseMultiSelectPanelRef extends LuMultiSelectPanelRef {
303
316
  constructor(parentInjector, selectInput) {
@@ -855,7 +868,7 @@ class LuMultiSelectAllHeaderComponent {
855
868
  />
856
869
  </lu-form-field>
857
870
  </div>
858
- `, isInline: true, styles: ["@layer components{:host{display:block;background-color:var(--palettes-neutral-0);border-block-end:1px solid var(--commons-border-200);padding-block:0 var(--pr-t-spacings-50);padding-inline:var(--components-options-item-padding-vertical);margin-block:0 var(--components-options-item-padding-vertical);margin-inline:calc(-1 * var(--pr-t-spacings-50));scroll-margin-block-start:var(--pr-t-spacings-50)}}@layer components{.multiSelectAllDisplayer{border-radius:var(--pr-t-border-radius-default);cursor:pointer}.multiSelectAllDisplayer ::ng-deep .formLabel{inline-size:100%;padding-block:var(--components-options-item-padding-vertical);padding-inline:0}}@layer mods{.multiSelectAllDisplayer:hover,:host-context(.is-highlighted) .multiSelectAllDisplayer{background-color:var(--palettes-neutral-50)}.multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-50, var(--palettes-product-50))}.multiSelectAllDisplayer:has(.checkboxField-input:checked):hover,:host-context(.is-highlighted) .multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-100, var(--palettes-product-100))}}@layer components{.multiSelectAllDisplayer-checkbox{margin-block:var(--components-options-item-padding-vertical) 0;margin-inline:var(--components-options-item-padding-horizontal) 0}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxInputComponent, selector: "lu-checkbox-input", inputs: ["checklist", "mixed"] }, { kind: "component", type: FormFieldComponent, selector: "lu-form-field", inputs: ["intl", "label", "hiddenLabel", "rolePresentationLabel", "inline", "statusControl", "tooltip", "tag", "AI", "iconAItooltip", "iconAIalt", "width", "invalid", "inlineMessage", "errorInlineMessage", "inlineMessageState", "size", "extraDescribedBy", "layout", "counter", "presentation"], outputs: ["rolePresentationLabelChange", "layoutChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
871
+ `, isInline: true, styles: ["@layer components{:host{display:block;background-color:var(--palettes-neutral-0);border-block-end:1px solid var(--commons-border-200);padding-block:0 var(--pr-t-spacings-50);padding-inline:var(--components-options-item-padding-vertical);margin-block:0 var(--components-options-item-padding-vertical);margin-inline:calc(-1 * var(--pr-t-spacings-50));scroll-margin-block-start:var(--pr-t-spacings-50)}}@layer components{.multiSelectAllDisplayer{border-radius:var(--pr-t-border-radius-default);cursor:pointer}.multiSelectAllDisplayer ::ng-deep .formLabel{inline-size:100%;padding-block:var(--components-options-item-padding-vertical);padding-inline:0}}@layer mods{.multiSelectAllDisplayer:hover,:host-context(.optionItem.is-highlighted) .multiSelectAllDisplayer{background-color:var(--palettes-neutral-50)}.multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-50, var(--palettes-product-50))}.multiSelectAllDisplayer:has(.checkboxField-input:checked):hover,:host-context(.optionItem.is-highlighted) .multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-100, var(--palettes-product-100))}}@layer components{.multiSelectAllDisplayer-checkbox{margin-block:var(--components-options-item-padding-vertical) 0;margin-inline:var(--components-options-item-padding-horizontal) 0}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxInputComponent, selector: "lu-checkbox-input", inputs: ["checklist", "mixed"] }, { kind: "component", type: FormFieldComponent, selector: "lu-form-field", inputs: ["intl", "label", "hiddenLabel", "rolePresentationLabel", "inline", "statusControl", "tooltip", "tag", "AI", "iconAItooltip", "iconAIalt", "width", "invalid", "inlineMessage", "errorInlineMessage", "inlineMessageState", "size", "extraDescribedBy", "layout", "counter", "presentation"], outputs: ["rolePresentationLabelChange", "layoutChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
859
872
  }
860
873
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: LuMultiSelectAllHeaderComponent, decorators: [{
861
874
  type: Component,
@@ -871,7 +884,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
871
884
  />
872
885
  </lu-form-field>
873
886
  </div>
874
- `, styles: ["@layer components{:host{display:block;background-color:var(--palettes-neutral-0);border-block-end:1px solid var(--commons-border-200);padding-block:0 var(--pr-t-spacings-50);padding-inline:var(--components-options-item-padding-vertical);margin-block:0 var(--components-options-item-padding-vertical);margin-inline:calc(-1 * var(--pr-t-spacings-50));scroll-margin-block-start:var(--pr-t-spacings-50)}}@layer components{.multiSelectAllDisplayer{border-radius:var(--pr-t-border-radius-default);cursor:pointer}.multiSelectAllDisplayer ::ng-deep .formLabel{inline-size:100%;padding-block:var(--components-options-item-padding-vertical);padding-inline:0}}@layer mods{.multiSelectAllDisplayer:hover,:host-context(.is-highlighted) .multiSelectAllDisplayer{background-color:var(--palettes-neutral-50)}.multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-50, var(--palettes-product-50))}.multiSelectAllDisplayer:has(.checkboxField-input:checked):hover,:host-context(.is-highlighted) .multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-100, var(--palettes-product-100))}}@layer components{.multiSelectAllDisplayer-checkbox{margin-block:var(--components-options-item-padding-vertical) 0;margin-inline:var(--components-options-item-padding-horizontal) 0}}\n"] }]
887
+ `, styles: ["@layer components{:host{display:block;background-color:var(--palettes-neutral-0);border-block-end:1px solid var(--commons-border-200);padding-block:0 var(--pr-t-spacings-50);padding-inline:var(--components-options-item-padding-vertical);margin-block:0 var(--components-options-item-padding-vertical);margin-inline:calc(-1 * var(--pr-t-spacings-50));scroll-margin-block-start:var(--pr-t-spacings-50)}}@layer components{.multiSelectAllDisplayer{border-radius:var(--pr-t-border-radius-default);cursor:pointer}.multiSelectAllDisplayer ::ng-deep .formLabel{inline-size:100%;padding-block:var(--components-options-item-padding-vertical);padding-inline:0}}@layer mods{.multiSelectAllDisplayer:hover,:host-context(.optionItem.is-highlighted) .multiSelectAllDisplayer{background-color:var(--palettes-neutral-50)}.multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-50, var(--palettes-product-50))}.multiSelectAllDisplayer:has(.checkboxField-input:checked):hover,:host-context(.optionItem.is-highlighted) .multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-100, var(--palettes-product-100))}}@layer components{.multiSelectAllDisplayer-checkbox{margin-block:var(--components-options-item-padding-vertical) 0;margin-inline:var(--components-options-item-padding-horizontal) 0}}\n"] }]
875
888
  }], ctorParameters: () => [] });
876
889
 
877
890
  class LuMultiSelectWithSelectAllDirective extends _IsSelectedStrategy {