@lucca-front/ng 20.2.0 → 20.2.1

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/button/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnChanges, ElementRef } from '@angular/core';
2
+ import { OnChanges, ElementRef, SimpleChanges } from '@angular/core';
3
3
  import { Palette } from '@lucca-front/ng/core';
4
4
 
5
5
  declare class ButtonComponent implements OnChanges {
@@ -21,8 +21,7 @@ declare class ButtonComponent implements OnChanges {
21
21
  private get iconOnly();
22
22
  private get iconOnLeft();
23
23
  private get iconOnRight();
24
- ngOnChanges(): void;
25
- animationEnd(): void;
24
+ ngOnChanges({ state }: SimpleChanges): void;
26
25
  triggerErrorIfNeeded(): void;
27
26
  updateClasses(): void;
28
27
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
@@ -54,6 +54,7 @@ declare class LuCoreSelectUsersDirective<T extends LuCoreSelectUser = LuCoreSele
54
54
  id: number;
55
55
  appInstanceId?: number;
56
56
  operations?: string;
57
+ uniqueOperations?: string;
57
58
  fields: string;
58
59
  }>;
59
60
  protected me$: Observable<T>;
package/dialog/index.d.ts CHANGED
@@ -160,7 +160,7 @@ declare function injectDialogRef<R = void>(): LuDialogSelfRef<R> & ɵDialogResul
160
160
 
161
161
  declare class LuDialogService {
162
162
  #private;
163
- open<C, TData = LuDialogData<C>>(config: LuDialogConfig<C, TData>): LuDialogRef<C, TData>;
163
+ open<C, TData = LuDialogData<C>>(config: LuDialogConfig<C, NoInfer<TData>>): LuDialogRef<C, TData>;
164
164
  static ɵfac: i0.ɵɵFactoryDeclaration<LuDialogService, never>;
165
165
  static ɵprov: i0.ɵɵInjectableDeclaration<LuDialogService>;
166
166
  }
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, signal, booleanAttribute, HostListener, ContentChild, Input, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { inject, ElementRef, signal, booleanAttribute, ContentChild, Input, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { LuClass } from '@lucca-front/ng/core';
4
4
  import { IconComponent } from '@lucca-front/ng/icon';
5
5
 
@@ -38,11 +38,11 @@ class ButtonComponent {
38
38
  get iconOnRight() {
39
39
  return this.#iconComponentRef?.nativeElement === this.#elementRef?.nativeElement?.lastChild;
40
40
  }
41
- ngOnChanges() {
41
+ ngOnChanges({ state }) {
42
42
  this.updateClasses();
43
- }
44
- animationEnd() {
45
- this.notifyError.set(false);
43
+ if (state) {
44
+ this.triggerErrorIfNeeded();
45
+ }
46
46
  }
47
47
  triggerErrorIfNeeded() {
48
48
  if (this.state === 'error') {
@@ -74,13 +74,15 @@ class ButtonComponent {
74
74
  this.#luClass.setState(classesConfig);
75
75
  }
76
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.0.2", type: ButtonComponent, isStandalone: true, selector: "button[luButton],a[luButton]", inputs: { size: "size", block: ["block", "block", booleanAttribute], critical: ["critical", "critical", booleanAttribute], delete: ["delete", "delete", booleanAttribute], disclosure: ["disclosure", "disclosure", booleanAttribute], palette: "palette", state: "state", luButton: "luButton" }, host: { listeners: { "animationend": "animationEnd()", "click": "triggerErrorIfNeeded()" }, properties: { "class.is-error": "notifyError()" }, classAttribute: "button" }, providers: [LuClass], queries: [{ propertyName: "iconComponentRef", first: true, predicate: IconComponent, descendants: true, read: (ElementRef) }], usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@charset \"UTF-8\";.button{--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: none;--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-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}.button,.button:is(a){color:var(--components-button-color)}.button .lucca-icon{display:block}.button .button-icon{--icon-size: 1.5rem}.button: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))}.button:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px;border-radius:var(--components-button-borderRadius)}.button:active{--components-button-backgroundColor: var(--palettes-900, var(--palettes-product-900))}.button:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button:disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font: var(--pr-t-font-body-S);--components-button-paddingBlock: var(--pr-t-spacings-75);--components-button-paddingInline: var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-75);--components-button-font-size: var(--pr-t-font-body-S-fontSize);--components-button-line-height: var(--pr-t-font-body-S-lineHeight)}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font: var(--pr-t-font-body-XS);--components-button-paddingBlock: var(--pr-t-spacings-50);--components-button-paddingInline: var(--pr-t-spacings-75);--components-button-gap: var(--pr-t-spacings-50);--components-button-borderRadius: var(--pr-t-border-radius-small);--components-button-font-size: var(--pr-t-font-body-XS-fontSize);--components-button-line-height: var(--pr-t-font-body-XS-lineHeight)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.button.mod-disclosure{--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button.mod-disclosure .icon-arrowChevronBottom{transition-property:transform;transition-duration:var(--commons-animations-durations-fast);transform:var(--components-button-arrow-transform)}.button.mod-disclosure[aria-expanded=true]{--components-button-arrow-transform: rotate(-180deg)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200)}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50)) }.button.mod-outlined:where(:not(.is-success,.is-error)):active,.button.mod-outline:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:where(:not(.is-success,.is-error)):focus-visible,.button.mod-outline:where(:not(.is-success,.is-error)):focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:where(:not(.is-success,.is-error)):disabled,.button.mod-outline:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-100);--components-button-color: var(--pr-t-color-text-disabled)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)),.button.mod-ghost:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle))}.button.mod-text:where(:not(.is-success,.is-error)):hover,.button.mod-text:where(:not(.is-success,.is-error)):focus-visible,.button.mod-link:where(:not(.is-success,.is-error)):hover,.button.mod-link:where(:not(.is-success,.is-error)):focus-visible,.button.mod-ghost:where(:not(.is-success,.is-error)):hover,.button.mod-ghost:where(:not(.is-success,.is-error)):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active,.button.mod-ghost:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled,.button.mod-ghost:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.button.mod-withIcon.mod-iconOnLeft{--components-button-paddingInlineStart: var(--pr-t-spacings-100)}.button.mod-withIcon.mod-iconOnLeft.mod-S{--components-button-paddingInlineStart: var(--pr-t-spacings-75)}.button.mod-withIcon.mod-iconOnLeft.mod-XS{--components-button-paddingInlineStart: var(--pr-t-spacings-50)}.button.mod-withIcon.mod-iconOnRight{--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button.mod-withIcon.mod-iconOnRight.mod-S{--components-button-paddingInlineEnd: var(--pr-t-spacings-75)}.button.mod-withIcon.mod-iconOnRight.mod-XS{--components-button-paddingInlineEnd: var(--pr-t-spacings-50)}.button.mod-onlyIcon{--components-button-padding: var(--pr-t-spacings-100)}.button.mod-onlyIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75)}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50)}.button:has(.numericBadge){--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button:has(.numericBadge).mod-S{--components-button-paddingInlineEnd: var(--pr-t-spacings-75)}.button:has(.numericBadge).mod-XS{--components-button-paddingInlineEnd: var(--pr-t-spacings-50)}.button.mod-critical:hover,.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical:active,.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-critical.mod-text:hover,.button.mod-critical.mod-text:focus-visible,.button.mod-critical.mod-link:hover,.button.mod-critical.mod-link:focus-visible,.button.mod-delete.mod-text:hover,.button.mod-delete.mod-text:focus-visible,.button.mod-delete.mod-link:hover,.button.mod-delete.mod-link:focus-visible{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical.mod-text:active,.button.mod-critical.mod-link:active,.button.mod-delete.mod-text:active,.button.mod-delete.mod-link:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-critical.mod-outlined:hover,.button.mod-critical.mod-outline:hover,.button.mod-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical.mod-outlined:focus-visible,.button.mod-critical.mod-outline:focus-visible,.button.mod-delete.mod-outlined:focus-visible,.button.mod-delete.mod-outline:focus-visible{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700)}.button.mod-critical.mod-outlined:active,.button.mod-critical.mod-outline:active,.button.mod-delete.mod-outlined:active,.button.mod-delete.mod-outline:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-inverted,.button.mod-invert{--components-button-color: var(--palettes-neutral-0)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-neutral-700)}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{--icon-content: \"\\e97c\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none;block-size:0;vertical-align:text-top}.button.mod-more.mod-S{--components-button-minWidth: 1.75rem}.button.mod-more.mod-XS{--components-button-minWidth: 1.5rem}.button.is-loading,.button.loading{--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none;--components-button-backgroundColor: var(--palettes-product-500);--commons-loading-frontground: var(--palettes-product-50)}.button.is-loading:after,.button.loading:after{content:\"\";inline-size:var(--pr-t-font-body-M-lineHeight);block-size:var(--pr-t-font-body-M-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";inline-size:var(--pr-t-font-body-S-lineHeight);block-size:var(--pr-t-font-body-S-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}.button.is-loading.mod-XS,.button.loading.mod-XS{--commons-loading-borderWidth: 2px}.button.is-loading.mod-XS:after,.button.loading.mod-XS:after{content:\"\";inline-size:var(--pr-t-font-body-XS-lineHeight);block-size:var(--pr-t-font-body-XS-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-loading.mod-outlined,.button.loading.mod-outlined{--components-button-backgroundColor: var(--palettes-neutral-0);--commons-loading-frontground: var(--palettes-neutral-300);--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-100)}.button.is-loading.mod-ghost,.button.loading.mod-ghost{--components-button-backgroundColor: var(--palettes-neutral-50);--commons-loading-frontground: var(--palettes-neutral-400)}.button.is-error,.button.error{animation-name:shake;animation-iteration-count:1;animation-duration:var(--commons-animations-durations-standard)}@keyframes shake{0%,to{transform:translateZ(0)}20%,60%{transform:translate3d(-3px,0,0)}40%,80%{transform:translate3d(3px,0,0)}}.button.is-success,.button.success{--components-button-backgroundColor: var(--palettes-product-500);--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--pr-t-font-body-M-fontSize));block-size:var(--pr-t-font-body-M-lineHeight);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{--icon-content: \"\\e97d\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.button.is-success.mod-outlined,.button.success.mod-outlined{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-100)}.button.is-success.mod-outlined:after,.button.success.mod-outlined:after{color:var(--palettes-product-700)}.button.is-success.mod-ghost,.button.success.mod-ghost{--components-button-backgroundColor: var(--palettes-neutral-50);--components-button-boxShadow: none}.button.is-success.mod-ghost:after,.button.success.mod-ghost:after{color:var(--palettes-product-700)}.button.is-success.mod-S:after,.button.success.mod-S:after{font-size:var(--pr-t-font-body-S-lineHeight);block-size:var(--pr-t-font-body-S-lineHeight)}.button.is-success.mod-XS:after,.button.success.mod-XS:after{font-size:var(--pr-t-font-body-XS-lineHeight);block-size:var(--pr-t-font-body-XS-lineHeight)}.button.is-disabled,.button.disabled{--components-button-cursor: default;--components-button-color: var(--pr-t-color-text-disabled);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button.is-disabled .numericBadge,.button.disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.0.2", type: ButtonComponent, isStandalone: true, selector: "button[luButton],a[luButton]", inputs: { size: "size", block: ["block", "block", booleanAttribute], critical: ["critical", "critical", booleanAttribute], delete: ["delete", "delete", booleanAttribute], disclosure: ["disclosure", "disclosure", booleanAttribute], palette: "palette", state: "state", luButton: "luButton" }, host: { listeners: { "click": "triggerErrorIfNeeded()", "animationend": "notifyError.set(false)" }, properties: { "class.is-error": "notifyError()" }, classAttribute: "button" }, providers: [LuClass], queries: [{ propertyName: "iconComponentRef", first: true, predicate: IconComponent, descendants: true, read: (ElementRef) }], usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@charset \"UTF-8\";.button{--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: none;--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-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}.button,.button:is(a){color:var(--components-button-color)}.button .lucca-icon{display:block}.button .button-icon{--icon-size: 1.5rem}.button: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))}.button:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px;border-radius:var(--components-button-borderRadius)}.button:active{--components-button-backgroundColor: var(--palettes-900, var(--palettes-product-900))}.button:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button:disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font: var(--pr-t-font-body-S);--components-button-paddingBlock: var(--pr-t-spacings-75);--components-button-paddingInline: var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-75);--components-button-font-size: var(--pr-t-font-body-S-fontSize);--components-button-line-height: var(--pr-t-font-body-S-lineHeight)}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font: var(--pr-t-font-body-XS);--components-button-paddingBlock: var(--pr-t-spacings-50);--components-button-paddingInline: var(--pr-t-spacings-75);--components-button-gap: var(--pr-t-spacings-50);--components-button-borderRadius: var(--pr-t-border-radius-small);--components-button-font-size: var(--pr-t-font-body-XS-fontSize);--components-button-line-height: var(--pr-t-font-body-XS-lineHeight)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.button.mod-disclosure{--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button.mod-disclosure .icon-arrowChevronBottom{transition-property:transform;transition-duration:var(--commons-animations-durations-fast);transform:var(--components-button-arrow-transform)}.button.mod-disclosure[aria-expanded=true]{--components-button-arrow-transform: rotate(-180deg)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200)}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50)) }.button.mod-outlined:where(:not(.is-success,.is-error)):active,.button.mod-outline:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:where(:not(.is-success,.is-error)):focus-visible,.button.mod-outline:where(:not(.is-success,.is-error)):focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:where(:not(.is-success,.is-error)):disabled,.button.mod-outline:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-100);--components-button-color: var(--pr-t-color-text-disabled)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)),.button.mod-ghost:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle))}.button.mod-text:where(:not(.is-success,.is-error)):hover,.button.mod-text:where(:not(.is-success,.is-error)):focus-visible,.button.mod-link:where(:not(.is-success,.is-error)):hover,.button.mod-link:where(:not(.is-success,.is-error)):focus-visible,.button.mod-ghost:where(:not(.is-success,.is-error)):hover,.button.mod-ghost:where(:not(.is-success,.is-error)):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active,.button.mod-ghost:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled,.button.mod-ghost:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.button.mod-withIcon.mod-iconOnLeft{--components-button-paddingInlineStart: var(--pr-t-spacings-100)}.button.mod-withIcon.mod-iconOnLeft.mod-S{--components-button-paddingInlineStart: var(--pr-t-spacings-75)}.button.mod-withIcon.mod-iconOnLeft.mod-XS{--components-button-paddingInlineStart: var(--pr-t-spacings-50)}.button.mod-withIcon.mod-iconOnRight{--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button.mod-withIcon.mod-iconOnRight.mod-S{--components-button-paddingInlineEnd: var(--pr-t-spacings-75)}.button.mod-withIcon.mod-iconOnRight.mod-XS{--components-button-paddingInlineEnd: var(--pr-t-spacings-50)}.button.mod-onlyIcon{--components-button-padding: var(--pr-t-spacings-100)}.button.mod-onlyIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75)}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50)}.button:has(.numericBadge){--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button:has(.numericBadge).mod-S{--components-button-paddingInlineEnd: var(--pr-t-spacings-75)}.button:has(.numericBadge).mod-XS{--components-button-paddingInlineEnd: var(--pr-t-spacings-50)}.button.mod-critical:hover,.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical:active,.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-critical.mod-text:hover,.button.mod-critical.mod-text:focus-visible,.button.mod-critical.mod-link:hover,.button.mod-critical.mod-link:focus-visible,.button.mod-delete.mod-text:hover,.button.mod-delete.mod-text:focus-visible,.button.mod-delete.mod-link:hover,.button.mod-delete.mod-link:focus-visible{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical.mod-text:active,.button.mod-critical.mod-link:active,.button.mod-delete.mod-text:active,.button.mod-delete.mod-link:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-critical.mod-outlined:hover,.button.mod-critical.mod-outline:hover,.button.mod-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical.mod-outlined:focus-visible,.button.mod-critical.mod-outline:focus-visible,.button.mod-delete.mod-outlined:focus-visible,.button.mod-delete.mod-outline:focus-visible{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700)}.button.mod-critical.mod-outlined:active,.button.mod-critical.mod-outline:active,.button.mod-delete.mod-outlined:active,.button.mod-delete.mod-outline:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-inverted,.button.mod-invert{--components-button-color: var(--palettes-neutral-0)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-neutral-700)}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{--icon-content: \"\\e97c\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none;block-size:0;vertical-align:text-top}.button.mod-more.mod-S{--components-button-minWidth: 1.75rem}.button.mod-more.mod-XS{--components-button-minWidth: 1.5rem}.button.is-loading,.button.loading{--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none;--components-button-backgroundColor: var(--palettes-product-500);--commons-loading-frontground: var(--palettes-product-50)}.button.is-loading:after,.button.loading:after{content:\"\";inline-size:var(--pr-t-font-body-M-lineHeight);block-size:var(--pr-t-font-body-M-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";inline-size:var(--pr-t-font-body-S-lineHeight);block-size:var(--pr-t-font-body-S-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}.button.is-loading.mod-XS,.button.loading.mod-XS{--commons-loading-borderWidth: 2px}.button.is-loading.mod-XS:after,.button.loading.mod-XS:after{content:\"\";inline-size:var(--pr-t-font-body-XS-lineHeight);block-size:var(--pr-t-font-body-XS-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-loading.mod-outlined,.button.loading.mod-outlined{--components-button-backgroundColor: var(--palettes-neutral-0);--commons-loading-frontground: var(--palettes-neutral-300);--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-100)}.button.is-loading.mod-ghost,.button.loading.mod-ghost{--components-button-backgroundColor: var(--palettes-neutral-50);--commons-loading-frontground: var(--palettes-neutral-400)}.button.is-error,.button.error{animation-name:shake;animation-iteration-count:1;animation-duration:var(--commons-animations-durations-standard)}@keyframes shake{0%,to{transform:translateZ(0)}20%,60%{transform:translate3d(-3px,0,0)}40%,80%{transform:translate3d(3px,0,0)}}.button.is-success,.button.success{--components-button-backgroundColor: var(--palettes-product-500);--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--pr-t-font-body-M-fontSize));block-size:var(--pr-t-font-body-M-lineHeight);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{--icon-content: \"\\e97d\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.button.is-success.mod-outlined,.button.success.mod-outlined{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-100)}.button.is-success.mod-outlined:after,.button.success.mod-outlined:after{color:var(--palettes-product-700)}.button.is-success.mod-ghost,.button.success.mod-ghost{--components-button-backgroundColor: var(--palettes-neutral-50);--components-button-boxShadow: none}.button.is-success.mod-ghost:after,.button.success.mod-ghost:after{color:var(--palettes-product-700)}.button.is-success.mod-S:after,.button.success.mod-S:after{font-size:var(--pr-t-font-body-S-lineHeight);block-size:var(--pr-t-font-body-S-lineHeight)}.button.is-success.mod-XS:after,.button.success.mod-XS:after{font-size:var(--pr-t-font-body-XS-lineHeight);block-size:var(--pr-t-font-body-XS-lineHeight)}.button.is-disabled,.button.disabled{--components-button-cursor: default;--components-button-color: var(--pr-t-color-text-disabled);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button.is-disabled .numericBadge,.button.disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
78
78
  }
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ButtonComponent, decorators: [{
80
80
  type: Component,
81
81
  args: [{ selector: 'button[luButton],a[luButton]', standalone: true, providers: [LuClass], template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
82
82
  class: 'button',
83
83
  '[class.is-error]': 'notifyError()',
84
+ '(click)': 'triggerErrorIfNeeded()',
85
+ '(animationend)': 'notifyError.set(false)',
84
86
  }, styles: ["@charset \"UTF-8\";.button{--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: none;--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-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}.button,.button:is(a){color:var(--components-button-color)}.button .lucca-icon{display:block}.button .button-icon{--icon-size: 1.5rem}.button: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))}.button:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px;border-radius:var(--components-button-borderRadius)}.button:active{--components-button-backgroundColor: var(--palettes-900, var(--palettes-product-900))}.button:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button:disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font: var(--pr-t-font-body-S);--components-button-paddingBlock: var(--pr-t-spacings-75);--components-button-paddingInline: var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-75);--components-button-font-size: var(--pr-t-font-body-S-fontSize);--components-button-line-height: var(--pr-t-font-body-S-lineHeight)}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font: var(--pr-t-font-body-XS);--components-button-paddingBlock: var(--pr-t-spacings-50);--components-button-paddingInline: var(--pr-t-spacings-75);--components-button-gap: var(--pr-t-spacings-50);--components-button-borderRadius: var(--pr-t-border-radius-small);--components-button-font-size: var(--pr-t-font-body-XS-fontSize);--components-button-line-height: var(--pr-t-font-body-XS-lineHeight)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.button.mod-disclosure{--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button.mod-disclosure .icon-arrowChevronBottom{transition-property:transform;transition-duration:var(--commons-animations-durations-fast);transform:var(--components-button-arrow-transform)}.button.mod-disclosure[aria-expanded=true]{--components-button-arrow-transform: rotate(-180deg)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200)}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50)) }.button.mod-outlined:where(:not(.is-success,.is-error)):active,.button.mod-outline:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:where(:not(.is-success,.is-error)):focus-visible,.button.mod-outline:where(:not(.is-success,.is-error)):focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:where(:not(.is-success,.is-error)):disabled,.button.mod-outline:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-100);--components-button-color: var(--pr-t-color-text-disabled)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)),.button.mod-ghost:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle))}.button.mod-text:where(:not(.is-success,.is-error)):hover,.button.mod-text:where(:not(.is-success,.is-error)):focus-visible,.button.mod-link:where(:not(.is-success,.is-error)):hover,.button.mod-link:where(:not(.is-success,.is-error)):focus-visible,.button.mod-ghost:where(:not(.is-success,.is-error)):hover,.button.mod-ghost:where(:not(.is-success,.is-error)):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active,.button.mod-ghost:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled,.button.mod-ghost:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.button.mod-withIcon.mod-iconOnLeft{--components-button-paddingInlineStart: var(--pr-t-spacings-100)}.button.mod-withIcon.mod-iconOnLeft.mod-S{--components-button-paddingInlineStart: var(--pr-t-spacings-75)}.button.mod-withIcon.mod-iconOnLeft.mod-XS{--components-button-paddingInlineStart: var(--pr-t-spacings-50)}.button.mod-withIcon.mod-iconOnRight{--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button.mod-withIcon.mod-iconOnRight.mod-S{--components-button-paddingInlineEnd: var(--pr-t-spacings-75)}.button.mod-withIcon.mod-iconOnRight.mod-XS{--components-button-paddingInlineEnd: var(--pr-t-spacings-50)}.button.mod-onlyIcon{--components-button-padding: var(--pr-t-spacings-100)}.button.mod-onlyIcon.mod-S{--components-button-padding: var(--pr-t-spacings-75)}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--pr-t-spacings-50)}.button:has(.numericBadge){--components-button-paddingInlineEnd: var(--pr-t-spacings-100)}.button:has(.numericBadge).mod-S{--components-button-paddingInlineEnd: var(--pr-t-spacings-75)}.button:has(.numericBadge).mod-XS{--components-button-paddingInlineEnd: var(--pr-t-spacings-50)}.button.mod-critical:hover,.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical:active,.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-critical.mod-text:hover,.button.mod-critical.mod-text:focus-visible,.button.mod-critical.mod-link:hover,.button.mod-critical.mod-link:focus-visible,.button.mod-delete.mod-text:hover,.button.mod-delete.mod-text:focus-visible,.button.mod-delete.mod-link:hover,.button.mod-delete.mod-link:focus-visible{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical.mod-text:active,.button.mod-critical.mod-link:active,.button.mod-delete.mod-text:active,.button.mod-delete.mod-link:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-critical.mod-outlined:hover,.button.mod-critical.mod-outline:hover,.button.mod-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-critical.mod-outlined:focus-visible,.button.mod-critical.mod-outline:focus-visible,.button.mod-delete.mod-outlined:focus-visible,.button.mod-delete.mod-outline:focus-visible{--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-error-400);--components-button-color: var(--palettes-error-700)}.button.mod-critical.mod-outlined:active,.button.mod-critical.mod-outline:active,.button.mod-delete.mod-outlined:active,.button.mod-delete.mod-outline:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.button.mod-inverted,.button.mod-invert{--components-button-color: var(--palettes-neutral-0)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-neutral-700)}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{--icon-content: \"\\e97c\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none;block-size:0;vertical-align:text-top}.button.mod-more.mod-S{--components-button-minWidth: 1.75rem}.button.mod-more.mod-XS{--components-button-minWidth: 1.5rem}.button.is-loading,.button.loading{--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none;--components-button-backgroundColor: var(--palettes-product-500);--commons-loading-frontground: var(--palettes-product-50)}.button.is-loading:after,.button.loading:after{content:\"\";inline-size:var(--pr-t-font-body-M-lineHeight);block-size:var(--pr-t-font-body-M-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";inline-size:var(--pr-t-font-body-S-lineHeight);block-size:var(--pr-t-font-body-S-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}.button.is-loading.mod-XS,.button.loading.mod-XS{--commons-loading-borderWidth: 2px}.button.is-loading.mod-XS:after,.button.loading.mod-XS:after{content:\"\";inline-size:var(--pr-t-font-body-XS-lineHeight);block-size:var(--pr-t-font-body-XS-lineHeight);border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-loading.mod-outlined,.button.loading.mod-outlined{--components-button-backgroundColor: var(--palettes-neutral-0);--commons-loading-frontground: var(--palettes-neutral-300);--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-100)}.button.is-loading.mod-ghost,.button.loading.mod-ghost{--components-button-backgroundColor: var(--palettes-neutral-50);--commons-loading-frontground: var(--palettes-neutral-400)}.button.is-error,.button.error{animation-name:shake;animation-iteration-count:1;animation-duration:var(--commons-animations-durations-standard)}@keyframes shake{0%,to{transform:translateZ(0)}20%,60%{transform:translate3d(-3px,0,0)}40%,80%{transform:translate3d(3px,0,0)}}.button.is-success,.button.success{--components-button-backgroundColor: var(--palettes-product-500);--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--palettes-neutral-0);font-size:calc(1.5 * var(--pr-t-font-body-M-fontSize));block-size:var(--pr-t-font-body-M-lineHeight);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{--icon-content: \"\\e97d\";font-weight:400;display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.button.is-success.mod-outlined,.button.success.mod-outlined{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-100)}.button.is-success.mod-outlined:after,.button.success.mod-outlined:after{color:var(--palettes-product-700)}.button.is-success.mod-ghost,.button.success.mod-ghost{--components-button-backgroundColor: var(--palettes-neutral-50);--components-button-boxShadow: none}.button.is-success.mod-ghost:after,.button.success.mod-ghost:after{color:var(--palettes-product-700)}.button.is-success.mod-S:after,.button.success.mod-S:after{font-size:var(--pr-t-font-body-S-lineHeight);block-size:var(--pr-t-font-body-S-lineHeight)}.button.is-success.mod-XS:after,.button.success.mod-XS:after{font-size:var(--pr-t-font-body-XS-lineHeight);block-size:var(--pr-t-font-body-XS-lineHeight)}.button.is-disabled,.button.disabled{--components-button-cursor: default;--components-button-color: var(--pr-t-color-text-disabled);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.button.is-disabled .numericBadge,.button.disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}\n"] }]
85
87
  }], propDecorators: { size: [{
86
88
  type: Input
@@ -118,12 +120,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
118
120
  }], iconComponentRef: [{
119
121
  type: ContentChild,
120
122
  args: [IconComponent, { read: (ElementRef) }]
121
- }], animationEnd: [{
122
- type: HostListener,
123
- args: ['animationend']
124
- }], triggerErrorIfNeeded: [{
125
- type: HostListener,
126
- args: ['click']
127
123
  }] } });
128
124
 
129
125
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-button.mjs","sources":["../../../packages/ng/button/button.component.ts","../../../packages/ng/button/lucca-front-ng-button.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ElementRef, HostListener, inject, Input, OnChanges, signal, ViewEncapsulation } from '@angular/core';\nimport { LuClass, Palette } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'button[luButton],a[luButton]',\n\tstandalone: true,\n\tproviders: [LuClass],\n\ttemplate: '<ng-content />',\n\tstyleUrls: ['./button.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'button',\n\t\t'[class.is-error]': 'notifyError()',\n\t},\n})\nexport class ButtonComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\t#elementRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n\n\tnotifyError = signal(false);\n\n\t@Input()\n\tsize: 'M' | 'S' | 'XS';\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tblock = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tcritical = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tdelete = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tdisclosure = false;\n\n\t@Input()\n\tpalette: Palette = 'none';\n\n\t@Input()\n\tstate: 'default' | 'loading' | 'error' | 'success' = 'default';\n\n\t@Input()\n\t/**\n\t * '' is the default value when you just set the `luButton` directive without a value attached to it.\n\t * We just make this explicit here.\n\t */\n\tluButton: '' | 'outlined' | 'ghost' | 'ghost-invert' | 'text' | 'text-invert' = '';\n\n\t#iconComponentRef?: ElementRef<HTMLElement>;\n\n\t@ContentChild(IconComponent, { read: ElementRef<HTMLElement> })\n\tset iconComponentRef(ref: ElementRef<HTMLElement>) {\n\t\tthis.#iconComponentRef = ref;\n\t\tthis.updateClasses();\n\t}\n\n\tprivate get iconOnly(): boolean {\n\t\tconst childNodes = Array.from(this.#elementRef?.nativeElement?.childNodes || []);\n\t\tconst noText = childNodes.every(({ nodeName }) => nodeName !== '#text');\n\t\t// ignore icon and comment\n\t\tconst noSpan =\n\t\t\tchildNodes.filter((node: HTMLElement) => {\n\t\t\t\treturn node.nodeName !== '#comment' && node.nodeName.toLowerCase() !== 'lu-icon' && !node?.className?.includes('mask');\n\t\t\t}).length == 0;\n\t\treturn !!this.#iconComponentRef && noSpan && noText;\n\t}\n\n\tprivate get iconOnLeft(): boolean {\n\t\treturn this.#iconComponentRef?.nativeElement === this.#elementRef?.nativeElement?.firstChild;\n\t}\n\n\tprivate get iconOnRight(): boolean {\n\t\treturn this.#iconComponentRef?.nativeElement === this.#elementRef?.nativeElement?.lastChild;\n\t}\n\n\tngOnChanges(): void {\n\t\tthis.updateClasses();\n\t}\n\n\t@HostListener('animationend')\n\tanimationEnd() {\n\t\tthis.notifyError.set(false);\n\t}\n\n\t@HostListener('click')\n\ttriggerErrorIfNeeded() {\n\t\tif (this.state === 'error') {\n\t\t\tthis.notifyError.set(true);\n\t\t}\n\t}\n\n\tupdateClasses(): void {\n\t\tconst classesConfig = {\n\t\t\t[`mod-${this.size}`]: !!this.size,\n\t\t\t[`mod-block`]: this.block,\n\t\t\t[`palette-${this.palette}`]: !!this.palette,\n\t\t\t[`is-${this.state}`]: !!this.state && this.state !== 'error',\n\t\t\t['mod-onlyIcon']: this.iconOnly,\n\t\t\t['mod-iconOnLeft']: this.iconOnLeft,\n\t\t\t['mod-iconOnRight']: this.iconOnRight,\n\t\t\t['mod-withIcon']: this.#iconComponentRef !== undefined && !this.disclosure && !this.iconOnly,\n\t\t\t['mod-critical']: this.critical || this.delete,\n\t\t\t['mod-disclosure']: this.disclosure,\n\t\t};\n\n\t\tif (this.luButton !== '') {\n\t\t\tif (this.luButton === 'ghost-invert') {\n\t\t\t\tclassesConfig['mod-ghost'] = true;\n\t\t\t\tclassesConfig['mod-invert'] = true;\n\t\t\t} else {\n\t\t\t\tclassesConfig[`mod-${this.luButton}`] = true;\n\t\t\t}\n\t\t}\n\t\tthis.#luClass.setState(classesConfig);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-button.mjs","sources":["../../../packages/ng/button/button.component.ts","../../../packages/ng/button/lucca-front-ng-button.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ElementRef, inject, Input, OnChanges, signal, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { LuClass, Palette } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'button[luButton],a[luButton]',\n\tstandalone: true,\n\tproviders: [LuClass],\n\ttemplate: '<ng-content />',\n\tstyleUrls: ['./button.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'button',\n\t\t'[class.is-error]': 'notifyError()',\n\t\t'(click)': 'triggerErrorIfNeeded()',\n\t\t'(animationend)': 'notifyError.set(false)',\n\t},\n})\nexport class ButtonComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\t#elementRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n\n\tnotifyError = signal(false);\n\n\t@Input()\n\tsize: 'M' | 'S' | 'XS';\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tblock = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tcritical = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tdelete = false;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tdisclosure = false;\n\n\t@Input()\n\tpalette: Palette = 'none';\n\n\t@Input()\n\tstate: 'default' | 'loading' | 'error' | 'success' = 'default';\n\n\t@Input()\n\t/**\n\t * '' is the default value when you just set the `luButton` directive without a value attached to it.\n\t * We just make this explicit here.\n\t */\n\tluButton: '' | 'outlined' | 'ghost' | 'ghost-invert' | 'text' | 'text-invert' = '';\n\n\t#iconComponentRef?: ElementRef<HTMLElement>;\n\n\t@ContentChild(IconComponent, { read: ElementRef<HTMLElement> })\n\tset iconComponentRef(ref: ElementRef<HTMLElement>) {\n\t\tthis.#iconComponentRef = ref;\n\t\tthis.updateClasses();\n\t}\n\n\tprivate get iconOnly(): boolean {\n\t\tconst childNodes = Array.from(this.#elementRef?.nativeElement?.childNodes || []);\n\t\tconst noText = childNodes.every(({ nodeName }) => nodeName !== '#text');\n\t\t// ignore icon and comment\n\t\tconst noSpan =\n\t\t\tchildNodes.filter((node: HTMLElement) => {\n\t\t\t\treturn node.nodeName !== '#comment' && node.nodeName.toLowerCase() !== 'lu-icon' && !node?.className?.includes('mask');\n\t\t\t}).length == 0;\n\t\treturn !!this.#iconComponentRef && noSpan && noText;\n\t}\n\n\tprivate get iconOnLeft(): boolean {\n\t\treturn this.#iconComponentRef?.nativeElement === this.#elementRef?.nativeElement?.firstChild;\n\t}\n\n\tprivate get iconOnRight(): boolean {\n\t\treturn this.#iconComponentRef?.nativeElement === this.#elementRef?.nativeElement?.lastChild;\n\t}\n\n\tngOnChanges({ state }: SimpleChanges): void {\n\t\tthis.updateClasses();\n\t\tif (state) {\n\t\t\tthis.triggerErrorIfNeeded();\n\t\t}\n\t}\n\n\ttriggerErrorIfNeeded(): void {\n\t\tif (this.state === 'error') {\n\t\t\tthis.notifyError.set(true);\n\t\t}\n\t}\n\n\tupdateClasses(): void {\n\t\tconst classesConfig = {\n\t\t\t[`mod-${this.size}`]: !!this.size,\n\t\t\t[`mod-block`]: this.block,\n\t\t\t[`palette-${this.palette}`]: !!this.palette,\n\t\t\t[`is-${this.state}`]: !!this.state && this.state !== 'error',\n\t\t\t['mod-onlyIcon']: this.iconOnly,\n\t\t\t['mod-iconOnLeft']: this.iconOnLeft,\n\t\t\t['mod-iconOnRight']: this.iconOnRight,\n\t\t\t['mod-withIcon']: this.#iconComponentRef !== undefined && !this.disclosure && !this.iconOnly,\n\t\t\t['mod-critical']: this.critical || this.delete,\n\t\t\t['mod-disclosure']: this.disclosure,\n\t\t};\n\n\t\tif (this.luButton !== '') {\n\t\t\tif (this.luButton === 'ghost-invert') {\n\t\t\t\tclassesConfig['mod-ghost'] = true;\n\t\t\t\tclassesConfig['mod-invert'] = true;\n\t\t\t} else {\n\t\t\t\tclassesConfig[`mod-${this.luButton}`] = true;\n\t\t\t}\n\t\t}\n\t\tthis.#luClass.setState(classesConfig);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -300,6 +300,7 @@ class LuCoreSelectUsersDirective extends ALuCoreSelectApiDirective {
300
300
  this.meParams$ = toObservable(computed(() => ({
301
301
  fields: this.#userFields,
302
302
  ...this.filters(),
303
+ ...(this.uniqueOperationIds() ? { uniqueOperations: this.uniqueOperationIds().join(',') } : {}),
303
304
  ...(this.operationIds() ? { operations: this.operationIds().join(',') } : {}),
304
305
  ...(this.appInstanceId() ? { appInstanceId: this.appInstanceId() } : {}),
305
306
  id: this.currentUserId,
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-core-select-user.mjs","sources":["../../../packages/ng/core-select/user/me.provider.ts","../../../packages/ng/core-select/user/translations.ts","../../../packages/ng/core-select/user/user.translate.ts","../../../packages/ng/core-select/user/former-employees.component.ts","../../../packages/ng/core-select/user/user-displayer.component.ts","../../../packages/ng/core-select/user/user-homonym.service.ts","../../../packages/ng/core-select/user/user-option.component.ts","../../../packages/ng/core-select/user/users.directive.ts","../../../packages/ng/core-select/user/lucca-front-ng-core-select-user.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\n\nexport const LU_CORE_SELECT_CURRENT_USER_ID = new InjectionToken<number>('LuCoreSelectCurrentUserId');\n\nexport function provideCoreSelectCurrentUserId(factory: () => number): Provider {\n\treturn {\n\t\tprovide: LU_CORE_SELECT_CURRENT_USER_ID,\n\t\tuseFactory: factory,\n\t};\n}\n","export const Translations = {\n\ten: {\n\t\tme: 'Me:',\n\t\tincludeFormerEmployees: 'Include former employees',\n\t},\n\tde: {\n\t\tme: 'Ich:',\n\t\tincludeFormerEmployees: 'Ausgeschiedene Mitarbeitende einbeziehen',\n\t},\n\tfr: {\n\t\tme: 'Moi :',\n\t\tincludeFormerEmployees: 'Inclure les collaborateurs partis',\n\t},\n\tit: {\n\t\tme: 'Io:',\n\t\tincludeFormerEmployees: 'Includere gli ex collaboratori',\n\t},\n\tnl: {\n\t\tme: 'Ik:',\n\t\tincludeFormerEmployees: 'Inclusief medewerkers die zijn vertrokken',\n\t},\n\t'nl-BE': {\n\t\tme: 'Ik:',\n\t\tincludeFormerEmployees: 'Inclusief medewerkers die zijn vertrokken',\n\t},\n\tes: {\n\t\tme: 'Yo:',\n\t\tincludeFormerEmployees: 'Incluir a los empleados inactivos',\n\t},\n\tpt: {\n\t\tme: 'Eu:',\n\t\tincludeFormerEmployees: 'Incluir os trabalhadores que saíram',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CORE_SELECT_USER_TRANSLATIONS = new InjectionToken('LuCoreSelectUserTranslations', {\n\tfactory: () => luCoreSelectUserTranslations,\n});\n\nexport interface LuCoreSelectUserTranslations {\n\tme: string;\n\tincludeFormerEmployees: string;\n}\n\nexport const luCoreSelectUserTranslations: LuTranslation<LuCoreSelectUserTranslations> = Translations;\n","import { Component, inject, InjectionToken, WritableSignal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { LU_CORE_SELECT_USER_TRANSLATIONS } from './user.translate';\nimport { outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ɵCoreSelectPanelElement } from '@lucca-front/ng/core-select';\n\nexport interface FormerEmployeesContext {\n\tincludeFormerEmployees: WritableSignal<boolean>;\n}\n\nexport const FORMER_EMPLOYEES_CONTEXT = new InjectionToken<FormerEmployeesContext>('FormerEmployeesContext');\n\n@Component({\n\tselector: 'lu-core-select-former-employees',\n\tstyleUrl: './former-employees.component.scss',\n\tstandalone: true,\n\timports: [FormsModule],\n\thostDirectives: [ɵCoreSelectPanelElement],\n\ttemplate: `\n\t\t<div class=\"formerEmployeeDisplayer optionItem\">\n\t\t\t<div class=\"optionItem-value\" [class.is-selected]=\"context.includeFormerEmployees()\" (click)=\"context.includeFormerEmployees.set(!context.includeFormerEmployees())\">\n\t\t\t\t{{ intl.includeFormerEmployees }}\n\t\t\t</div>\n\t\t</div>\n\t`,\n})\nexport class LuCoreSelectFormerEmployeesComponent {\n\treadonly intl = getIntl(LU_CORE_SELECT_USER_TRANSLATIONS);\n\treadonly context = inject(FORMER_EMPLOYEES_CONTEXT);\n\treadonly #selectableItem = inject(ɵCoreSelectPanelElement);\n\n\tconstructor() {\n\t\tthis.#selectableItem.id.set('select-former-employees');\n\t\toutputToObservable(this.#selectableItem.selected)\n\t\t\t.pipe(takeUntilDestroyed())\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.context.includeFormerEmployees.set(!this.context.includeFormerEmployees());\n\t\t\t});\n\t}\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from '@lucca-front/ng/core-select';\nimport { LuUserDisplayPipe } from '@lucca-front/ng/user';\nimport { LuCoreSelectUser } from './user-option.model';\nimport { LuCoreSelectUsersDirective } from './users.directive';\n\n@Component({\n\tselector: 'lu-user-displayer',\n\timports: [NgIf, AsyncPipe, LuUserDisplayPipe],\n\ttemplate: `\n\t\t<ng-container *ngIf=\"context.option$ | async as user\">\n\t\t\t<span translate=\"no\">{{ user | luUserDisplay: userDirective.displayFormat() }}</span>\n\t\t</ng-container>\n\t`,\n\tstandalone: true,\n})\nexport class LuUserDisplayerComponent {\n\tprotected context = inject<ILuOptionContext<LuCoreSelectUser>>(LU_OPTION_CONTEXT);\n\tprotected userDirective = inject(LuCoreSelectUsersDirective);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { ILuApiCollectionResponse } from '@lucca-front/ng/api';\nimport { LuDisplayFormat, luUserDisplay } from '@lucca-front/ng/user';\nimport { Observable, map, of, startWith, tap } from 'rxjs';\nimport { LuCoreSelectUser } from './user-option.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LuCoreSelectUserHomonymsService {\n\tprotected http = inject(HttpClient);\n\tprotected cache: Record<number, string> = {};\n\n\tprotected extractHomonyms<T extends LuCoreSelectUser>(users: T[], format: LuDisplayFormat): Set<T['id']> {\n\t\tconst usersByFullName: Record<string, T[]> = {};\n\n\t\tfor (const user of users) {\n\t\t\tconst name = luUserDisplay(user, format);\n\t\t\tusersByFullName[name] ||= [];\n\t\t\tusersByFullName[name].push(user);\n\t\t}\n\n\t\treturn new Set(\n\t\t\tObject.values(usersByFullName)\n\t\t\t\t.filter((users) => users.length > 1)\n\t\t\t\t.flatMap((users) => users.map((user) => user.id)),\n\t\t);\n\t}\n\n\tpublic handleHomonyms<T extends LuCoreSelectUser>(users: T[], format: LuDisplayFormat): Observable<T[]> {\n\t\tconst homonyms = this.extractHomonyms(users, format);\n\n\t\tif (homonyms.size === 0) {\n\t\t\treturn of(users);\n\t\t}\n\n\t\treturn this.getAdditionalInformationByUserId(Array.from(homonyms)).pipe(\n\t\t\tmap((additionalInformation) =>\n\t\t\t\tusers.map((user) =>\n\t\t\t\t\thomonyms.has(user.id)\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...user,\n\t\t\t\t\t\t\t\tadditionalInformation: this.cache[user.id] || additionalInformation[user.id],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: user,\n\t\t\t\t),\n\t\t\t),\n\t\t\tstartWith(users),\n\t\t);\n\t}\n\n\tprotected getAdditionalInformationByUserId<T extends LuCoreSelectUser>(homonyms: T['id'][]): Observable<Record<number, string>> {\n\t\tconst userIds = homonyms.filter((userId) => !this.cache[userId]);\n\n\t\tif (userIds.length === 0) {\n\t\t\treturn of({});\n\t\t}\n\n\t\treturn this.http\n\t\t\t.get<ILuApiCollectionResponse<{ id: number; department?: { name: string } }>>(`/api/v3/users`, {\n\t\t\t\tparams: {\n\t\t\t\t\tid: userIds.join(','),\n\t\t\t\t\tfields: 'id,department.name',\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(\n\t\t\t\tmap((res) => res.data.items),\n\t\t\t\tmap((infos) =>\n\t\t\t\t\tinfos.reduce<Record<number, string>>(\n\t\t\t\t\t\t(acc, info) => ({\n\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t[info.id]: info.department?.name || '',\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\ttap((infos) => {\n\t\t\t\t\tthis.cache = {\n\t\t\t\t\t\t...this.cache,\n\t\t\t\t\t\t...infos,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t}\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { LuUserDisplayPipe } from '@lucca-front/ng/user';\nimport { map, startWith } from 'rxjs';\nimport { LuCoreSelectUser, LuCoreSelectWithAdditionnalInformation } from './user-option.model';\nimport { LU_CORE_SELECT_USER_TRANSLATIONS } from './user.translate';\nimport { LuCoreSelectUsersDirective } from './users.directive';\n\n@Component({\n\tselector: 'lu-user-option',\n\timports: [NgIf, AsyncPipe, LuUserDisplayPipe, ɵLuOptionOutletDirective],\n\ttemplate: `\n\t\t<ng-container *ngIf=\"context.option$ | async as user\">\n\t\t\t<div *ngIf=\"userDirective.displayMeOption() && user.id === userDirective.currentUserId && hasEmptyClue$ | async; else notMe\">\n\t\t\t\t<strong>{{ intl.me }}</strong\n\t\t\t\t>&ngsp;\n\t\t\t\t<strong translate=\"no\"><ng-container *luOptionOutlet=\"customUserOptionTpl() || defaultUserTpl; value: user\" /></strong>\n\t\t\t</div>\n\n\t\t\t<ng-template #notMe>\n\t\t\t\t<div *luOptionOutlet=\"customUserOptionTpl() || defaultUserTpl; value: user\"></div>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">({{ user.additionalInformation }})</div>\n\t\t</ng-container>\n\n\t\t<ng-template #defaultUserTpl let-user>\n\t\t\t<span translate=\"no\">{{ user | luUserDisplay: userDirective.displayFormat() }}</span>\n\t\t</ng-template>\n\t`,\n\tstandalone: true,\n\tstyles: [\n\t\t`\n\t\t\t.lu-select-additionalInformation {\n\t\t\t\tfont-size: 80%;\n\t\t\t\tfont-style: italic;\n\t\t\t\tmargin-block-start: -0.25em;\n\t\t\t}\n\t\t`,\n\t],\n})\nexport class LuUserOptionComponent {\n\tprotected context = inject<ILuOptionContext<LuCoreSelectWithAdditionnalInformation<LuCoreSelectUser>>>(LU_OPTION_CONTEXT);\n\tprotected userDirective = inject(LuCoreSelectUsersDirective);\n\tprotected intl = getIntl(LU_CORE_SELECT_USER_TRANSLATIONS);\n\tprotected hasEmptyClue$ = this.userDirective.select.clueChange.pipe(\n\t\tstartWith(this.userDirective.select.clue),\n\t\tmap((clue) => !clue),\n\t);\n\tprotected customUserOptionTpl = this.userDirective.customUserOptionTpl;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, Input, Provider, TemplateRef, Type, booleanAttribute, computed, effect, forwardRef, inject, input, model, signal, untracked } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { ILuApiCollectionResponse } from '@lucca-front/ng/api';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, LuOptionContext, applySearchDelimiter } from '@lucca-front/ng/core-select';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { LuDisplayFormat, LuDisplayFullname } from '@lucca-front/ng/user';\nimport { EMPTY, Observable, catchError, combineLatest, debounceTime, map, of, shareReplay, switchMap, take, tap } from 'rxjs';\nimport { FORMER_EMPLOYEES_CONTEXT, LuCoreSelectFormerEmployeesComponent } from './former-employees.component';\nimport { LU_CORE_SELECT_CURRENT_USER_ID } from './me.provider';\nimport { LuUserDisplayerComponent } from './user-displayer.component';\nimport { LuCoreSelectUserHomonymsService } from './user-homonym.service';\nimport { LuUserOptionComponent } from './user-option.component';\nimport { LuCoreSelectUser, LuCoreSelectWithAdditionnalInformation } from './user-option.model';\n\nexport function provideCoreSelectUsersContext<T extends LuCoreSelectUser = LuCoreSelectUser>(directiveFn: () => Type<LuCoreSelectUsersDirective<T>>): Provider[] {\n\treturn [\n\t\t...provideBaseCoreSelectUsersContext(directiveFn),\n\t\t{\n\t\t\tprovide: LuCoreSelectUsersDirective,\n\t\t\tuseExisting: forwardRef(directiveFn),\n\t\t},\n\t];\n}\n\nfunction provideBaseCoreSelectUsersContext<T extends LuCoreSelectUser = LuCoreSelectUser>(directiveFn: () => Type<LuCoreSelectUsersDirective<T>>): Provider[] {\n\treturn [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(directiveFn),\n\t\t},\n\t\t{\n\t\t\tprovide: FORMER_EMPLOYEES_CONTEXT,\n\t\t\tuseExisting: forwardRef(directiveFn),\n\t\t},\n\t];\n}\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[users],lu-multi-select[users]',\n\tstandalone: true,\n\texportAs: 'luUsers',\n\tproviders: [provideBaseCoreSelectUsersContext(() => LuCoreSelectUsersDirective)],\n})\nexport class LuCoreSelectUsersDirective<T extends LuCoreSelectUser = LuCoreSelectUser>\n\textends ALuCoreSelectApiDirective<LuCoreSelectWithAdditionnalInformation<T>>\n\timplements CoreSelectApiTotalCountProvider\n{\n\t#defaultSearchUrl = '/api/v3/users/search';\n\t#defaultScopedSearchUrl = '/api/v3/users/scopedsearch';\n\t#userHomonymsService = inject(LuCoreSelectUserHomonymsService);\n\n\t// Not overridable so it will ease employee API migration\n\t#userFields = 'id,firstName,lastName,picture.href';\n\n\tprotected httpClient = inject(HttpClient);\n\tpublic currentUserId = inject(LU_CORE_SELECT_CURRENT_USER_ID);\n\n\tdisplayFormat = input<LuDisplayFormat>(LuDisplayFullname.lastfirst);\n\n\tfilters = input<Record<string, string | number | boolean>>({});\n\turl = input<string | null>(null);\n\torderBy = input<string | null>(null);\n\toperationIds = input<readonly number[] | null>(null);\n\tuniqueOperationIds = input<readonly number[] | null>(null);\n\tappInstanceId = input<number | null>(null);\n\tenableFormerEmployees = input(false, { transform: booleanAttribute });\n\tdisplayMeOption = input(true);\n\tcustomUserOptionTpl = model<TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined>();\n\n\tincludeFormerEmployees = signal(false);\n\tsearchDelimiter = input<string>(' ');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.select.optionTpl.set(LuUserOptionComponent);\n\t\tthis.select.valueTpl.set(LuUserDisplayerComponent);\n\n\t\teffect(() => {\n\t\t\tconst enableFormerEmployees = this.enableFormerEmployees();\n\n\t\t\tif (enableFormerEmployees) {\n\t\t\t\tuntracked(() => this.select.panelHeaderTpl.set(LuCoreSelectFormerEmployeesComponent));\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected defaultUrl = computed(() => (this.uniqueOperationIds()?.length || (this.appInstanceId() && this.operationIds()?.length) ? this.#defaultScopedSearchUrl : this.#defaultSearchUrl));\n\tprotected urlOrDefault = computed(() => this.url() ?? this.defaultUrl());\n\n\tprotected clue = toSignal(this.clue$);\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst orderBy = this.orderBy();\n\t\t\tconst clue = this.clue();\n\t\t\tconst operationIds = this.operationIds();\n\t\t\tconst uniqueOperationIds = this.uniqueOperationIds();\n\t\t\tconst appInstanceId = this.appInstanceId();\n\t\t\tconst searchDelimiter = this.searchDelimiter();\n\t\t\tconst formerEmployees = this.includeFormerEmployees();\n\n\t\t\treturn {\n\t\t\t\tfields: this.#userFields,\n\t\t\t\t...this.filters(),\n\t\t\t\t...(orderBy ? { orderBy } : {}),\n\t\t\t\t...(clue ? { clue: applySearchDelimiter(clue, searchDelimiter) } : {}),\n\t\t\t\t...(operationIds ? { operations: operationIds.join(',') } : {}),\n\t\t\t\t...(uniqueOperationIds ? { uniqueOperations: uniqueOperationIds.join(',') } : {}),\n\t\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t\t\t...(formerEmployees ? { formerEmployees } : {}),\n\t\t\t};\n\t\t}),\n\t);\n\n\tprotected meParams$ = toObservable(\n\t\tcomputed(() => ({\n\t\t\tfields: this.#userFields,\n\t\t\t...this.filters(),\n\t\t\t...(this.operationIds() ? { operations: this.operationIds().join(',') } : {}),\n\t\t\t...(this.appInstanceId() ? { appInstanceId: this.appInstanceId() } : {}),\n\t\t\tid: this.currentUserId,\n\t\t})),\n\t);\n\n\tprotected me$ = this.meParams$.pipe(\n\t\tswitchMap((params) =>\n\t\t\tthis.httpClient\n\t\t\t\t.get<\n\t\t\t\t\tILuApiCollectionResponse<{\n\t\t\t\t\t\titem: T;\n\t\t\t\t\t}>\n\t\t\t\t>(this.urlOrDefault(), { params })\n\t\t\t\t.pipe(catchError(() => EMPTY)),\n\t\t),\n\t\tmap((res) => res.data.items.map(({ item }) => item)[0] ?? null),\n\t\ttakeUntilDestroyed(),\n\t\tshareReplay(1),\n\t);\n\n\tpublic totalCount$ = toObservable(computed(() => ({ url: this.urlOrDefault(), filters: this.filters() }))).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(({ url, filters }) =>\n\t\t\tthis.httpClient.get<{ count: number }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...filters,\n\t\t\t\t\tfields: 'collection.count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res?.count ?? 0),\n\t);\n\n\tprotected getMe(): Observable<T | null> {\n\t\treturn this.me$.pipe(take(1));\n\t}\n\n\tprotected getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\treturn this.httpClient\n\t\t\t.get<ILuApiCollectionResponse<{ item: T }>>(this.urlOrDefault(), {\n\t\t\t\tparams: {\n\t\t\t\t\t...params,\n\t\t\t\t\tpaging: `${page * this.pageSize},${this.pageSize}`,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(map((res) => res.data.items.map(({ item }) => item)));\n\t}\n\n\tprotected override getOptionsPage(\n\t\tparams: Record<string, string | number | boolean>,\n\t\tpage: number,\n\t): Observable<{\n\t\titems: LuCoreSelectWithAdditionnalInformation<T>[];\n\t\tisLastPage: boolean;\n\t}> {\n\t\tconst hasClue = !!params['clue'];\n\t\tconst displayMe = this.displayMeOption() && !hasClue;\n\t\tconst prependMe = displayMe && page === 0;\n\n\t\tthis.select.loading = true;\n\n\t\tconst me$ = prependMe ? this.getMe() : of(null);\n\n\t\tconst users$ = this.getOptions(params, page).pipe(\n\t\t\tmap((users) => ({ items: users, isLastPage: users.length < this.pageSize })),\n\t\t\ttap(() => (this.select.loading = false)),\n\t\t);\n\n\t\tconst page$ = combineLatest([me$, users$]).pipe(\n\t\t\tmap(([me, { items, isLastPage }]) => {\n\t\t\t\t// If \"me\" is displayed as first option, we remove it from the list of users\n\t\t\t\tconst filteredItems = displayMe ? items.filter((u) => u.id !== this.currentUserId) : items;\n\t\t\t\treturn { items: me && prependMe ? [me, ...filteredItems] : filteredItems, isLastPage };\n\t\t\t}),\n\t\t);\n\n\t\treturn page$.pipe(\n\t\t\tswitchMap((page) =>\n\t\t\t\tthis.#userHomonymsService.handleHomonyms(page.items, this.displayFormat()).pipe(\n\t\t\t\t\tmap((items) => ({\n\t\t\t\t\t\titems,\n\t\t\t\t\t\tisLastPage: page.isLastPage,\n\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t),\n\t\t);\n\t}\n\n\tprotected override optionKey = (option: T) => option.id;\n}\n\n@Directive({\n\tselector: '[luUserOption]',\n\tstandalone: true,\n})\nexport class LuCoreSelectUserOptionDirective<T extends LuCoreSelectUser = LuCoreSelectUser> {\n\t#templateRef = inject(TemplateRef<LuOptionContext<T>>);\n\n\t@Input({ alias: 'luUserOptionUsersRef' }) set usersDirective(usersDirective: LuCoreSelectUsersDirective<T>) {\n\t\tusersDirective.customUserOptionTpl.set(this.#templateRef);\n\t}\n\n\tpublic static ngTemplateContextGuard<T extends LuCoreSelectUser>(_dir: LuCoreSelectUserOptionDirective<T>, ctx: unknown): ctx is { $implicit: T } {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵCoreSelectPanelElement","ɵLuOptionOutletDirective"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-core-select-user.mjs","sources":["../../../packages/ng/core-select/user/me.provider.ts","../../../packages/ng/core-select/user/translations.ts","../../../packages/ng/core-select/user/user.translate.ts","../../../packages/ng/core-select/user/former-employees.component.ts","../../../packages/ng/core-select/user/user-displayer.component.ts","../../../packages/ng/core-select/user/user-homonym.service.ts","../../../packages/ng/core-select/user/user-option.component.ts","../../../packages/ng/core-select/user/users.directive.ts","../../../packages/ng/core-select/user/lucca-front-ng-core-select-user.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\n\nexport const LU_CORE_SELECT_CURRENT_USER_ID = new InjectionToken<number>('LuCoreSelectCurrentUserId');\n\nexport function provideCoreSelectCurrentUserId(factory: () => number): Provider {\n\treturn {\n\t\tprovide: LU_CORE_SELECT_CURRENT_USER_ID,\n\t\tuseFactory: factory,\n\t};\n}\n","export const Translations = {\n\ten: {\n\t\tme: 'Me:',\n\t\tincludeFormerEmployees: 'Include former employees',\n\t},\n\tde: {\n\t\tme: 'Ich:',\n\t\tincludeFormerEmployees: 'Ausgeschiedene Mitarbeitende einbeziehen',\n\t},\n\tfr: {\n\t\tme: 'Moi :',\n\t\tincludeFormerEmployees: 'Inclure les collaborateurs partis',\n\t},\n\tit: {\n\t\tme: 'Io:',\n\t\tincludeFormerEmployees: 'Includere gli ex collaboratori',\n\t},\n\tnl: {\n\t\tme: 'Ik:',\n\t\tincludeFormerEmployees: 'Inclusief medewerkers die zijn vertrokken',\n\t},\n\t'nl-BE': {\n\t\tme: 'Ik:',\n\t\tincludeFormerEmployees: 'Inclusief medewerkers die zijn vertrokken',\n\t},\n\tes: {\n\t\tme: 'Yo:',\n\t\tincludeFormerEmployees: 'Incluir a los empleados inactivos',\n\t},\n\tpt: {\n\t\tme: 'Eu:',\n\t\tincludeFormerEmployees: 'Incluir os trabalhadores que saíram',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CORE_SELECT_USER_TRANSLATIONS = new InjectionToken('LuCoreSelectUserTranslations', {\n\tfactory: () => luCoreSelectUserTranslations,\n});\n\nexport interface LuCoreSelectUserTranslations {\n\tme: string;\n\tincludeFormerEmployees: string;\n}\n\nexport const luCoreSelectUserTranslations: LuTranslation<LuCoreSelectUserTranslations> = Translations;\n","import { Component, inject, InjectionToken, WritableSignal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { LU_CORE_SELECT_USER_TRANSLATIONS } from './user.translate';\nimport { outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ɵCoreSelectPanelElement } from '@lucca-front/ng/core-select';\n\nexport interface FormerEmployeesContext {\n\tincludeFormerEmployees: WritableSignal<boolean>;\n}\n\nexport const FORMER_EMPLOYEES_CONTEXT = new InjectionToken<FormerEmployeesContext>('FormerEmployeesContext');\n\n@Component({\n\tselector: 'lu-core-select-former-employees',\n\tstyleUrl: './former-employees.component.scss',\n\tstandalone: true,\n\timports: [FormsModule],\n\thostDirectives: [ɵCoreSelectPanelElement],\n\ttemplate: `\n\t\t<div class=\"formerEmployeeDisplayer optionItem\">\n\t\t\t<div class=\"optionItem-value\" [class.is-selected]=\"context.includeFormerEmployees()\" (click)=\"context.includeFormerEmployees.set(!context.includeFormerEmployees())\">\n\t\t\t\t{{ intl.includeFormerEmployees }}\n\t\t\t</div>\n\t\t</div>\n\t`,\n})\nexport class LuCoreSelectFormerEmployeesComponent {\n\treadonly intl = getIntl(LU_CORE_SELECT_USER_TRANSLATIONS);\n\treadonly context = inject(FORMER_EMPLOYEES_CONTEXT);\n\treadonly #selectableItem = inject(ɵCoreSelectPanelElement);\n\n\tconstructor() {\n\t\tthis.#selectableItem.id.set('select-former-employees');\n\t\toutputToObservable(this.#selectableItem.selected)\n\t\t\t.pipe(takeUntilDestroyed())\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.context.includeFormerEmployees.set(!this.context.includeFormerEmployees());\n\t\t\t});\n\t}\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from '@lucca-front/ng/core-select';\nimport { LuUserDisplayPipe } from '@lucca-front/ng/user';\nimport { LuCoreSelectUser } from './user-option.model';\nimport { LuCoreSelectUsersDirective } from './users.directive';\n\n@Component({\n\tselector: 'lu-user-displayer',\n\timports: [NgIf, AsyncPipe, LuUserDisplayPipe],\n\ttemplate: `\n\t\t<ng-container *ngIf=\"context.option$ | async as user\">\n\t\t\t<span translate=\"no\">{{ user | luUserDisplay: userDirective.displayFormat() }}</span>\n\t\t</ng-container>\n\t`,\n\tstandalone: true,\n})\nexport class LuUserDisplayerComponent {\n\tprotected context = inject<ILuOptionContext<LuCoreSelectUser>>(LU_OPTION_CONTEXT);\n\tprotected userDirective = inject(LuCoreSelectUsersDirective);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { ILuApiCollectionResponse } from '@lucca-front/ng/api';\nimport { LuDisplayFormat, luUserDisplay } from '@lucca-front/ng/user';\nimport { Observable, map, of, startWith, tap } from 'rxjs';\nimport { LuCoreSelectUser } from './user-option.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LuCoreSelectUserHomonymsService {\n\tprotected http = inject(HttpClient);\n\tprotected cache: Record<number, string> = {};\n\n\tprotected extractHomonyms<T extends LuCoreSelectUser>(users: T[], format: LuDisplayFormat): Set<T['id']> {\n\t\tconst usersByFullName: Record<string, T[]> = {};\n\n\t\tfor (const user of users) {\n\t\t\tconst name = luUserDisplay(user, format);\n\t\t\tusersByFullName[name] ||= [];\n\t\t\tusersByFullName[name].push(user);\n\t\t}\n\n\t\treturn new Set(\n\t\t\tObject.values(usersByFullName)\n\t\t\t\t.filter((users) => users.length > 1)\n\t\t\t\t.flatMap((users) => users.map((user) => user.id)),\n\t\t);\n\t}\n\n\tpublic handleHomonyms<T extends LuCoreSelectUser>(users: T[], format: LuDisplayFormat): Observable<T[]> {\n\t\tconst homonyms = this.extractHomonyms(users, format);\n\n\t\tif (homonyms.size === 0) {\n\t\t\treturn of(users);\n\t\t}\n\n\t\treturn this.getAdditionalInformationByUserId(Array.from(homonyms)).pipe(\n\t\t\tmap((additionalInformation) =>\n\t\t\t\tusers.map((user) =>\n\t\t\t\t\thomonyms.has(user.id)\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...user,\n\t\t\t\t\t\t\t\tadditionalInformation: this.cache[user.id] || additionalInformation[user.id],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: user,\n\t\t\t\t),\n\t\t\t),\n\t\t\tstartWith(users),\n\t\t);\n\t}\n\n\tprotected getAdditionalInformationByUserId<T extends LuCoreSelectUser>(homonyms: T['id'][]): Observable<Record<number, string>> {\n\t\tconst userIds = homonyms.filter((userId) => !this.cache[userId]);\n\n\t\tif (userIds.length === 0) {\n\t\t\treturn of({});\n\t\t}\n\n\t\treturn this.http\n\t\t\t.get<ILuApiCollectionResponse<{ id: number; department?: { name: string } }>>(`/api/v3/users`, {\n\t\t\t\tparams: {\n\t\t\t\t\tid: userIds.join(','),\n\t\t\t\t\tfields: 'id,department.name',\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(\n\t\t\t\tmap((res) => res.data.items),\n\t\t\t\tmap((infos) =>\n\t\t\t\t\tinfos.reduce<Record<number, string>>(\n\t\t\t\t\t\t(acc, info) => ({\n\t\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t\t[info.id]: info.department?.name || '',\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{},\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\ttap((infos) => {\n\t\t\t\t\tthis.cache = {\n\t\t\t\t\t\t...this.cache,\n\t\t\t\t\t\t...infos,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t}\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { LuUserDisplayPipe } from '@lucca-front/ng/user';\nimport { map, startWith } from 'rxjs';\nimport { LuCoreSelectUser, LuCoreSelectWithAdditionnalInformation } from './user-option.model';\nimport { LU_CORE_SELECT_USER_TRANSLATIONS } from './user.translate';\nimport { LuCoreSelectUsersDirective } from './users.directive';\n\n@Component({\n\tselector: 'lu-user-option',\n\timports: [NgIf, AsyncPipe, LuUserDisplayPipe, ɵLuOptionOutletDirective],\n\ttemplate: `\n\t\t<ng-container *ngIf=\"context.option$ | async as user\">\n\t\t\t<div *ngIf=\"userDirective.displayMeOption() && user.id === userDirective.currentUserId && hasEmptyClue$ | async; else notMe\">\n\t\t\t\t<strong>{{ intl.me }}</strong\n\t\t\t\t>&ngsp;\n\t\t\t\t<strong translate=\"no\"><ng-container *luOptionOutlet=\"customUserOptionTpl() || defaultUserTpl; value: user\" /></strong>\n\t\t\t</div>\n\n\t\t\t<ng-template #notMe>\n\t\t\t\t<div *luOptionOutlet=\"customUserOptionTpl() || defaultUserTpl; value: user\"></div>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-select-additionalInformation\" *ngIf=\"user.additionalInformation\">({{ user.additionalInformation }})</div>\n\t\t</ng-container>\n\n\t\t<ng-template #defaultUserTpl let-user>\n\t\t\t<span translate=\"no\">{{ user | luUserDisplay: userDirective.displayFormat() }}</span>\n\t\t</ng-template>\n\t`,\n\tstandalone: true,\n\tstyles: [\n\t\t`\n\t\t\t.lu-select-additionalInformation {\n\t\t\t\tfont-size: 80%;\n\t\t\t\tfont-style: italic;\n\t\t\t\tmargin-block-start: -0.25em;\n\t\t\t}\n\t\t`,\n\t],\n})\nexport class LuUserOptionComponent {\n\tprotected context = inject<ILuOptionContext<LuCoreSelectWithAdditionnalInformation<LuCoreSelectUser>>>(LU_OPTION_CONTEXT);\n\tprotected userDirective = inject(LuCoreSelectUsersDirective);\n\tprotected intl = getIntl(LU_CORE_SELECT_USER_TRANSLATIONS);\n\tprotected hasEmptyClue$ = this.userDirective.select.clueChange.pipe(\n\t\tstartWith(this.userDirective.select.clue),\n\t\tmap((clue) => !clue),\n\t);\n\tprotected customUserOptionTpl = this.userDirective.customUserOptionTpl;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, Input, Provider, TemplateRef, Type, booleanAttribute, computed, effect, forwardRef, inject, input, model, signal, untracked } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { ILuApiCollectionResponse } from '@lucca-front/ng/api';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, LuOptionContext, applySearchDelimiter } from '@lucca-front/ng/core-select';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { LuDisplayFormat, LuDisplayFullname } from '@lucca-front/ng/user';\nimport { EMPTY, Observable, catchError, combineLatest, debounceTime, map, of, shareReplay, switchMap, take, tap } from 'rxjs';\nimport { FORMER_EMPLOYEES_CONTEXT, LuCoreSelectFormerEmployeesComponent } from './former-employees.component';\nimport { LU_CORE_SELECT_CURRENT_USER_ID } from './me.provider';\nimport { LuUserDisplayerComponent } from './user-displayer.component';\nimport { LuCoreSelectUserHomonymsService } from './user-homonym.service';\nimport { LuUserOptionComponent } from './user-option.component';\nimport { LuCoreSelectUser, LuCoreSelectWithAdditionnalInformation } from './user-option.model';\n\nexport function provideCoreSelectUsersContext<T extends LuCoreSelectUser = LuCoreSelectUser>(directiveFn: () => Type<LuCoreSelectUsersDirective<T>>): Provider[] {\n\treturn [\n\t\t...provideBaseCoreSelectUsersContext(directiveFn),\n\t\t{\n\t\t\tprovide: LuCoreSelectUsersDirective,\n\t\t\tuseExisting: forwardRef(directiveFn),\n\t\t},\n\t];\n}\n\nfunction provideBaseCoreSelectUsersContext<T extends LuCoreSelectUser = LuCoreSelectUser>(directiveFn: () => Type<LuCoreSelectUsersDirective<T>>): Provider[] {\n\treturn [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(directiveFn),\n\t\t},\n\t\t{\n\t\t\tprovide: FORMER_EMPLOYEES_CONTEXT,\n\t\t\tuseExisting: forwardRef(directiveFn),\n\t\t},\n\t];\n}\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[users],lu-multi-select[users]',\n\tstandalone: true,\n\texportAs: 'luUsers',\n\tproviders: [provideBaseCoreSelectUsersContext(() => LuCoreSelectUsersDirective)],\n})\nexport class LuCoreSelectUsersDirective<T extends LuCoreSelectUser = LuCoreSelectUser>\n\textends ALuCoreSelectApiDirective<LuCoreSelectWithAdditionnalInformation<T>>\n\timplements CoreSelectApiTotalCountProvider\n{\n\t#defaultSearchUrl = '/api/v3/users/search';\n\t#defaultScopedSearchUrl = '/api/v3/users/scopedsearch';\n\t#userHomonymsService = inject(LuCoreSelectUserHomonymsService);\n\n\t// Not overridable so it will ease employee API migration\n\t#userFields = 'id,firstName,lastName,picture.href';\n\n\tprotected httpClient = inject(HttpClient);\n\tpublic currentUserId = inject(LU_CORE_SELECT_CURRENT_USER_ID);\n\n\tdisplayFormat = input<LuDisplayFormat>(LuDisplayFullname.lastfirst);\n\n\tfilters = input<Record<string, string | number | boolean>>({});\n\turl = input<string | null>(null);\n\torderBy = input<string | null>(null);\n\toperationIds = input<readonly number[] | null>(null);\n\tuniqueOperationIds = input<readonly number[] | null>(null);\n\tappInstanceId = input<number | null>(null);\n\tenableFormerEmployees = input(false, { transform: booleanAttribute });\n\tdisplayMeOption = input(true);\n\tcustomUserOptionTpl = model<TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined>();\n\n\tincludeFormerEmployees = signal(false);\n\tsearchDelimiter = input<string>(' ');\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.select.optionTpl.set(LuUserOptionComponent);\n\t\tthis.select.valueTpl.set(LuUserDisplayerComponent);\n\n\t\teffect(() => {\n\t\t\tconst enableFormerEmployees = this.enableFormerEmployees();\n\n\t\t\tif (enableFormerEmployees) {\n\t\t\t\tuntracked(() => this.select.panelHeaderTpl.set(LuCoreSelectFormerEmployeesComponent));\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected defaultUrl = computed(() => (this.uniqueOperationIds()?.length || (this.appInstanceId() && this.operationIds()?.length) ? this.#defaultScopedSearchUrl : this.#defaultSearchUrl));\n\tprotected urlOrDefault = computed(() => this.url() ?? this.defaultUrl());\n\n\tprotected clue = toSignal(this.clue$);\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst orderBy = this.orderBy();\n\t\t\tconst clue = this.clue();\n\t\t\tconst operationIds = this.operationIds();\n\t\t\tconst uniqueOperationIds = this.uniqueOperationIds();\n\t\t\tconst appInstanceId = this.appInstanceId();\n\t\t\tconst searchDelimiter = this.searchDelimiter();\n\t\t\tconst formerEmployees = this.includeFormerEmployees();\n\n\t\t\treturn {\n\t\t\t\tfields: this.#userFields,\n\t\t\t\t...this.filters(),\n\t\t\t\t...(orderBy ? { orderBy } : {}),\n\t\t\t\t...(clue ? { clue: applySearchDelimiter(clue, searchDelimiter) } : {}),\n\t\t\t\t...(operationIds ? { operations: operationIds.join(',') } : {}),\n\t\t\t\t...(uniqueOperationIds ? { uniqueOperations: uniqueOperationIds.join(',') } : {}),\n\t\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t\t\t...(formerEmployees ? { formerEmployees } : {}),\n\t\t\t};\n\t\t}),\n\t);\n\n\tprotected meParams$ = toObservable(\n\t\tcomputed(() => ({\n\t\t\tfields: this.#userFields,\n\t\t\t...this.filters(),\n\t\t\t...(this.uniqueOperationIds() ? { uniqueOperations: this.uniqueOperationIds().join(',') } : {}),\n\t\t\t...(this.operationIds() ? { operations: this.operationIds().join(',') } : {}),\n\t\t\t...(this.appInstanceId() ? { appInstanceId: this.appInstanceId() } : {}),\n\t\t\tid: this.currentUserId,\n\t\t})),\n\t);\n\n\tprotected me$ = this.meParams$.pipe(\n\t\tswitchMap((params) =>\n\t\t\tthis.httpClient\n\t\t\t\t.get<\n\t\t\t\t\tILuApiCollectionResponse<{\n\t\t\t\t\t\titem: T;\n\t\t\t\t\t}>\n\t\t\t\t>(this.urlOrDefault(), { params })\n\t\t\t\t.pipe(catchError(() => EMPTY)),\n\t\t),\n\t\tmap((res) => res.data.items.map(({ item }) => item)[0] ?? null),\n\t\ttakeUntilDestroyed(),\n\t\tshareReplay(1),\n\t);\n\n\tpublic totalCount$ = toObservable(computed(() => ({ url: this.urlOrDefault(), filters: this.filters() }))).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(({ url, filters }) =>\n\t\t\tthis.httpClient.get<{ count: number }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...filters,\n\t\t\t\t\tfields: 'collection.count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res?.count ?? 0),\n\t);\n\n\tprotected getMe(): Observable<T | null> {\n\t\treturn this.me$.pipe(take(1));\n\t}\n\n\tprotected getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\treturn this.httpClient\n\t\t\t.get<ILuApiCollectionResponse<{ item: T }>>(this.urlOrDefault(), {\n\t\t\t\tparams: {\n\t\t\t\t\t...params,\n\t\t\t\t\tpaging: `${page * this.pageSize},${this.pageSize}`,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(map((res) => res.data.items.map(({ item }) => item)));\n\t}\n\n\tprotected override getOptionsPage(\n\t\tparams: Record<string, string | number | boolean>,\n\t\tpage: number,\n\t): Observable<{\n\t\titems: LuCoreSelectWithAdditionnalInformation<T>[];\n\t\tisLastPage: boolean;\n\t}> {\n\t\tconst hasClue = !!params['clue'];\n\t\tconst displayMe = this.displayMeOption() && !hasClue;\n\t\tconst prependMe = displayMe && page === 0;\n\n\t\tthis.select.loading = true;\n\n\t\tconst me$ = prependMe ? this.getMe() : of(null);\n\n\t\tconst users$ = this.getOptions(params, page).pipe(\n\t\t\tmap((users) => ({ items: users, isLastPage: users.length < this.pageSize })),\n\t\t\ttap(() => (this.select.loading = false)),\n\t\t);\n\n\t\tconst page$ = combineLatest([me$, users$]).pipe(\n\t\t\tmap(([me, { items, isLastPage }]) => {\n\t\t\t\t// If \"me\" is displayed as first option, we remove it from the list of users\n\t\t\t\tconst filteredItems = displayMe ? items.filter((u) => u.id !== this.currentUserId) : items;\n\t\t\t\treturn { items: me && prependMe ? [me, ...filteredItems] : filteredItems, isLastPage };\n\t\t\t}),\n\t\t);\n\n\t\treturn page$.pipe(\n\t\t\tswitchMap((page) =>\n\t\t\t\tthis.#userHomonymsService.handleHomonyms(page.items, this.displayFormat()).pipe(\n\t\t\t\t\tmap((items) => ({\n\t\t\t\t\t\titems,\n\t\t\t\t\t\tisLastPage: page.isLastPage,\n\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t),\n\t\t);\n\t}\n\n\tprotected override optionKey = (option: T) => option.id;\n}\n\n@Directive({\n\tselector: '[luUserOption]',\n\tstandalone: true,\n})\nexport class LuCoreSelectUserOptionDirective<T extends LuCoreSelectUser = LuCoreSelectUser> {\n\t#templateRef = inject(TemplateRef<LuOptionContext<T>>);\n\n\t@Input({ alias: 'luUserOptionUsersRef' }) set usersDirective(usersDirective: LuCoreSelectUsersDirective<T>) {\n\t\tusersDirective.customUserOptionTpl.set(this.#templateRef);\n\t}\n\n\tpublic static ngTemplateContextGuard<T extends LuCoreSelectUser>(_dir: LuCoreSelectUserOptionDirective<T>, ctx: unknown): ctx is { $implicit: T } {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵCoreSelectPanelElement","ɵLuOptionOutletDirective"],"mappings":"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"}