@lucca-front/ng 17.3.5 → 17.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,13 +52,13 @@ class ButtonComponent {
52
52
  this.#luClass.setState(ngClassConfig);
53
53
  }
54
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: ButtonComponent, isStandalone: true, selector: "button[luButton],a[luButton]", inputs: { size: "size", block: ["block", "block", booleanAttribute], palette: "palette", state: "state", luButton: "luButton" }, host: { classAttribute: "button" }, providers: [LuClass], queries: [{ propertyName: "iconComponentRef", first: true, predicate: IconComponent, descendants: true, read: (ElementRef) }], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".button{--components-button-font-size: var(--sizes-M-fontSize);--components-button-line-height: var(--sizes-M-lineHeight);--components-button-padding: var(--spacings-XS) var(--spacings-S);--components-button-gap: var(--spacings-XS);--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-text, var(--palettes-product-text));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--commons-borderRadius-M);line-height:var(--components-button-line-height);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-button-width);min-width:var(--components-button-minWidth);font-size:var(--components-button-font-size);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;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:600;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-product-200);--components-numericBadge-color: var(--palettes-product-800)}.button:hover{--components-button-color: var(--palettes-text, var(--palettes-product-text));--components-button-backgroundColor: var(--palettes-600, var(--palettes-product-600))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.button:active{--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.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{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-outlined,.button.mod-outline{--components-button-backgroundColor: var(--colors-white-color);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-400, var(--palettes-neutral-400))}.button.mod-outlined .button-counter,.button.mod-outline .button-counter{color:var(--palettes-800, var(--palettes-neutral-800));background-color:var(--palettes-300, var(--palettes-neutral-300))}.button.mod-outlined:hover,.button.mod-outline:hover{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:active,.button.mod-outline:active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-outlined:focus-visible,.button.mod-outline:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:disabled,.button.mod-outline:disabled{--components-button-backgroundColor: var(--colors-white-color);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-400);--components-button-color: var(--palettes-neutral-500)}.button.mod-outlined.is-disabled,.button.mod-outlined.disabled,.button.mod-outline.is-disabled,.button.mod-outline.disabled{--components-button-backgroundColor: var(--colors-white-color);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-400);--components-button-color: var(--palettes-neutral-500)}.button.mod-text,.button.mod-link{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-text:hover,.button.mod-text:focus-visible,.button.mod-link:hover,.button.mod-link:focus-visible{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:active,.button.mod-link:active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-text:disabled,.button.mod-link:disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-text.is-disabled,.button.mod-text.disabled,.button.mod-link.is-disabled,.button.mod-link.disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-counter{--components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS)) var(--spacings-XS) var(--spacings-S)}.button.mod-counter .button-counter{background-color:var(--palettes-600, var(--palettes-product-600));border-radius:1rem;display:flex;font-size:var(--sizes-XS-fontSize);height:1.5rem;min-width:1.5rem;align-items:center;justify-content:center;transition:background-color var(--commons-animations-durations-fast) ease}.button.mod-counter:hover .button-counter{--components-button-backgroundColor: var(--palettes-500, var(--palettes-product-500))}.button.mod-counter.mod-S{--components-button-padding: .375rem calc(var(--spacings-XS) + var(--spacings-XXS)) .375rem var(--spacings-S)}.button.mod-counter.mod-S .button-counter{height:1.25rem;min-width:1.25rem}.button.mod-counter.mod-XS{--components-button-padding: var(--spacings-XXS) var(--spacings-XS) var(--spacings-XXS) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-counter.mod-XS .button-counter{height:1rem;min-width:1rem}.button.mod-withIcon,.button.mod-icon{--components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-withIcon.mod-S,.button.mod-icon.mod-S{--components-button-padding: calc(var(--spacings-XXS) + var(--spacings-XXS) / 2) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-withIcon.mod-XS,.button.mod-icon.mod-XS{--components-button-padding: var(--spacings-XXS) var(--spacings-XS)}.button.mod-onlyIcon{--components-button-padding: var(--spacings-XS)}.button.mod-onlyIcon.mod-S{--components-button-padding: .375rem}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--spacings-XXS)}.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.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-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-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: 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-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-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(--colors-white-color)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--colors-white-color);--components-button-backgroundColor: var(--palettes-800, var(--palettes-neutral-800))}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;height:0;vertical-align:text-top}@supports (content: \"*\"/\"\"){.button.mod-more:before{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.mod-more:before{content:\"\\e97c\"}}.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-opacity: var(--commons-disabled-opacity);--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none}.button.is-loading:after,.button.loading:after{content:\"\";width:var(--components-button-font-size);height:var(--components-button-font-size);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;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-top-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";width:var(--sizes-S-fontSize);height:var(--sizes-S-fontSize);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;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-top-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-error,.button.error{--palettes-text: #ffffff;--palettes-50: #ffebec;--palettes-100: #ffd6d8;--palettes-200: #fdbebe;--palettes-300: #faa3a3;--palettes-400: #fa8989;--palettes-500: #f76e6e;--palettes-600: #f15050;--palettes-700: #da2f2f;--palettes-800: #aa0e0e;--palettes-900: #630303;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-error:after,.button.error:after{color:var(--colors-white-color);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-error:after,.button.error:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons}@supports (content: \"*\"/\"\"){.button.is-error:after,.button.error:after{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.is-error:after,.button.error:after{content:\"\\e9bf\"}}.button.is-success,.button.success{--palettes-text: #ffffff;--palettes-50: #dbfae0;--palettes-100: #bef3c7;--palettes-200: #a2ebaf;--palettes-300: #84e695;--palettes-400: #68d97b;--palettes-500: #57c769;--palettes-600: #39b155;--palettes-700: #279b42;--palettes-800: #0a762e;--palettes-900: #004d20;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--colors-white-color);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons}@supports (content: \"*\"/\"\"){.button.is-success:after,.button.success:after{content:\"\\e97d\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.is-success:after,.button.success:after{content:\"\\e97d\"}}.button.is-disabled,.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.is-disabled .numericBadge,.button.disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.2", type: ButtonComponent, isStandalone: true, selector: "button[luButton],a[luButton]", inputs: { size: "size", block: ["block", "block", booleanAttribute], palette: "palette", state: "state", luButton: "luButton" }, host: { classAttribute: "button" }, providers: [LuClass], queries: [{ propertyName: "iconComponentRef", first: true, predicate: IconComponent, descendants: true, read: (ElementRef) }], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".button{--components-button-font-size: var(--sizes-M-fontSize);--components-button-line-height: var(--sizes-M-lineHeight);--components-button-padding: var(--spacings-XS) var(--spacings-S);--components-button-gap: var(--spacings-XS);--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-text, var(--palettes-product-text));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--commons-borderRadius-M);line-height:var(--components-button-line-height);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-button-width);min-width:var(--components-button-minWidth);font-size:var(--components-button-font-size);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;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:600;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-product-200);--components-numericBadge-color: var(--palettes-product-800)}.button:hover{--components-button-color: var(--palettes-text, var(--palettes-product-text));--components-button-backgroundColor: var(--palettes-600, var(--palettes-product-600))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.button:active{--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.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{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--colors-white-color);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-400, var(--palettes-neutral-400))}.button.mod-outlined:where(:not(.is-success,.is-error)) .button-counter,.button.mod-outline:where(:not(.is-success,.is-error)) .button-counter{color:var(--palettes-800, var(--palettes-neutral-800));background-color:var(--palettes-300, var(--palettes-neutral-300))}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.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-200, var(--palettes-neutral-200))}.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(--colors-white-color);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-400);--components-button-color: var(--palettes-neutral-500)}.button.mod-outlined.is-disabled,.button.mod-outlined.disabled,.button.mod-outline.is-disabled,.button.mod-outline.disabled{--components-button-backgroundColor: var(--colors-white-color);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-400);--components-button-color: var(--palettes-neutral-500)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--palettes-neutral-700))}.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{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-text.is-disabled,.button.mod-text.disabled,.button.mod-link.is-disabled,.button.mod-link.disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-counter{--components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS)) var(--spacings-XS) var(--spacings-S)}.button.mod-counter .button-counter{background-color:var(--palettes-600, var(--palettes-product-600));border-radius:1rem;display:flex;font-size:var(--sizes-XS-fontSize);height:1.5rem;min-width:1.5rem;align-items:center;justify-content:center;transition:background-color var(--commons-animations-durations-fast) ease}.button.mod-counter:hover .button-counter{--components-button-backgroundColor: var(--palettes-500, var(--palettes-product-500))}.button.mod-counter.mod-S{--components-button-padding: .375rem calc(var(--spacings-XS) + var(--spacings-XXS)) .375rem var(--spacings-S)}.button.mod-counter.mod-S .button-counter{height:1.25rem;min-width:1.25rem}.button.mod-counter.mod-XS{--components-button-padding: var(--spacings-XXS) var(--spacings-XS) var(--spacings-XXS) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-counter.mod-XS .button-counter{height:1rem;min-width:1rem}.button.mod-withIcon,.button.mod-icon{--components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-withIcon.mod-S,.button.mod-icon.mod-S{--components-button-padding: calc(var(--spacings-XXS) + var(--spacings-XXS) / 2) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-withIcon.mod-XS,.button.mod-icon.mod-XS{--components-button-padding: var(--spacings-XXS) var(--spacings-XS)}.button.mod-onlyIcon{--components-button-padding: var(--spacings-XS)}.button.mod-onlyIcon.mod-S{--components-button-padding: .375rem}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--spacings-XXS)}.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.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-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-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: 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-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-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(--colors-white-color)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--colors-white-color);--components-button-backgroundColor: var(--palettes-800, var(--palettes-neutral-800))}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;height:0;vertical-align:text-top}@supports (content: \"*\"/\"\"){.button.mod-more:before{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.mod-more:before{content:\"\\e97c\"}}.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-opacity: var(--commons-disabled-opacity);--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none}.button.is-loading:after,.button.loading:after{content:\"\";width:var(--components-button-font-size);height:var(--components-button-font-size);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;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-top-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";width:var(--sizes-S-fontSize);height:var(--sizes-S-fontSize);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;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-top-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-error,.button.error{--palettes-text: #ffffff;--palettes-50: #ffebec;--palettes-100: #ffd6d8;--palettes-200: #fdbebe;--palettes-300: #faa3a3;--palettes-400: #fa8989;--palettes-500: #f76e6e;--palettes-600: #f15050;--palettes-700: #da2f2f;--palettes-800: #aa0e0e;--palettes-900: #630303;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-error:after,.button.error:after{color:var(--colors-white-color);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-error:after,.button.error:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons}@supports (content: \"*\"/\"\"){.button.is-error:after,.button.error:after{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.is-error:after,.button.error:after{content:\"\\e9bf\"}}.button.is-success,.button.success{--palettes-text: #ffffff;--palettes-50: #dbfae0;--palettes-100: #bef3c7;--palettes-200: #a2ebaf;--palettes-300: #84e695;--palettes-400: #68d97b;--palettes-500: #57c769;--palettes-600: #39b155;--palettes-700: #279b42;--palettes-800: #0a762e;--palettes-900: #004d20;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--colors-white-color);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons}@supports (content: \"*\"/\"\"){.button.is-success:after,.button.success:after{content:\"\\e97d\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.is-success:after,.button.success:after{content:\"\\e97d\"}}.button.is-disabled,.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.is-disabled .numericBadge,.button.disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
56
56
  }
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ButtonComponent, decorators: [{
58
58
  type: Component,
59
59
  args: [{ selector: 'button[luButton],a[luButton]', standalone: true, providers: [LuClass], template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
60
60
  class: 'button',
61
- }, styles: [".button{--components-button-font-size: var(--sizes-M-fontSize);--components-button-line-height: var(--sizes-M-lineHeight);--components-button-padding: var(--spacings-XS) var(--spacings-S);--components-button-gap: var(--spacings-XS);--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-text, var(--palettes-product-text));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--commons-borderRadius-M);line-height:var(--components-button-line-height);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-button-width);min-width:var(--components-button-minWidth);font-size:var(--components-button-font-size);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;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:600;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-product-200);--components-numericBadge-color: var(--palettes-product-800)}.button:hover{--components-button-color: var(--palettes-text, var(--palettes-product-text));--components-button-backgroundColor: var(--palettes-600, var(--palettes-product-600))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.button:active{--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.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{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-outlined,.button.mod-outline{--components-button-backgroundColor: var(--colors-white-color);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-400, var(--palettes-neutral-400))}.button.mod-outlined .button-counter,.button.mod-outline .button-counter{color:var(--palettes-800, var(--palettes-neutral-800));background-color:var(--palettes-300, var(--palettes-neutral-300))}.button.mod-outlined:hover,.button.mod-outline:hover{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-outlined:active,.button.mod-outline:active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-outlined:focus-visible,.button.mod-outline:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.button.mod-outlined:disabled,.button.mod-outline:disabled{--components-button-backgroundColor: var(--colors-white-color);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-400);--components-button-color: var(--palettes-neutral-500)}.button.mod-outlined.is-disabled,.button.mod-outlined.disabled,.button.mod-outline.is-disabled,.button.mod-outline.disabled{--components-button-backgroundColor: var(--colors-white-color);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-400);--components-button-color: var(--palettes-neutral-500)}.button.mod-text,.button.mod-link{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-text:hover,.button.mod-text:focus-visible,.button.mod-link:hover,.button.mod-link:focus-visible{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:active,.button.mod-link:active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-text:disabled,.button.mod-link:disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-text.is-disabled,.button.mod-text.disabled,.button.mod-link.is-disabled,.button.mod-link.disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-counter{--components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS)) var(--spacings-XS) var(--spacings-S)}.button.mod-counter .button-counter{background-color:var(--palettes-600, var(--palettes-product-600));border-radius:1rem;display:flex;font-size:var(--sizes-XS-fontSize);height:1.5rem;min-width:1.5rem;align-items:center;justify-content:center;transition:background-color var(--commons-animations-durations-fast) ease}.button.mod-counter:hover .button-counter{--components-button-backgroundColor: var(--palettes-500, var(--palettes-product-500))}.button.mod-counter.mod-S{--components-button-padding: .375rem calc(var(--spacings-XS) + var(--spacings-XXS)) .375rem var(--spacings-S)}.button.mod-counter.mod-S .button-counter{height:1.25rem;min-width:1.25rem}.button.mod-counter.mod-XS{--components-button-padding: var(--spacings-XXS) var(--spacings-XS) var(--spacings-XXS) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-counter.mod-XS .button-counter{height:1rem;min-width:1rem}.button.mod-withIcon,.button.mod-icon{--components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-withIcon.mod-S,.button.mod-icon.mod-S{--components-button-padding: calc(var(--spacings-XXS) + var(--spacings-XXS) / 2) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-withIcon.mod-XS,.button.mod-icon.mod-XS{--components-button-padding: var(--spacings-XXS) var(--spacings-XS)}.button.mod-onlyIcon{--components-button-padding: var(--spacings-XS)}.button.mod-onlyIcon.mod-S{--components-button-padding: .375rem}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--spacings-XXS)}.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.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-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-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: 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-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-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(--colors-white-color)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--colors-white-color);--components-button-backgroundColor: var(--palettes-800, var(--palettes-neutral-800))}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;height:0;vertical-align:text-top}@supports (content: \"*\"/\"\"){.button.mod-more:before{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.mod-more:before{content:\"\\e97c\"}}.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-opacity: var(--commons-disabled-opacity);--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none}.button.is-loading:after,.button.loading:after{content:\"\";width:var(--components-button-font-size);height:var(--components-button-font-size);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;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-top-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";width:var(--sizes-S-fontSize);height:var(--sizes-S-fontSize);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;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-top-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-error,.button.error{--palettes-text: #ffffff;--palettes-50: #ffebec;--palettes-100: #ffd6d8;--palettes-200: #fdbebe;--palettes-300: #faa3a3;--palettes-400: #fa8989;--palettes-500: #f76e6e;--palettes-600: #f15050;--palettes-700: #da2f2f;--palettes-800: #aa0e0e;--palettes-900: #630303;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-error:after,.button.error:after{color:var(--colors-white-color);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-error:after,.button.error:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons}@supports (content: \"*\"/\"\"){.button.is-error:after,.button.error:after{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.is-error:after,.button.error:after{content:\"\\e9bf\"}}.button.is-success,.button.success{--palettes-text: #ffffff;--palettes-50: #dbfae0;--palettes-100: #bef3c7;--palettes-200: #a2ebaf;--palettes-300: #84e695;--palettes-400: #68d97b;--palettes-500: #57c769;--palettes-600: #39b155;--palettes-700: #279b42;--palettes-800: #0a762e;--palettes-900: #004d20;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--colors-white-color);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons}@supports (content: \"*\"/\"\"){.button.is-success:after,.button.success:after{content:\"\\e97d\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.is-success:after,.button.success:after{content:\"\\e97d\"}}.button.is-disabled,.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.is-disabled .numericBadge,.button.disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}\n"] }]
61
+ }, styles: [".button{--components-button-font-size: var(--sizes-M-fontSize);--components-button-line-height: var(--sizes-M-lineHeight);--components-button-padding: var(--spacings-XS) var(--spacings-S);--components-button-gap: var(--spacings-XS);--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-text, var(--palettes-product-text));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--commons-borderRadius-M);line-height:var(--components-button-line-height);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-button-width);min-width:var(--components-button-minWidth);font-size:var(--components-button-font-size);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;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:600;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-product-200);--components-numericBadge-color: var(--palettes-product-800)}.button:hover{--components-button-color: var(--palettes-text, var(--palettes-product-text));--components-button-backgroundColor: var(--palettes-600, var(--palettes-product-600))}.button:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}.button:active{--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.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{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}.button.mod-block{--components-button-width: 100%}.button.mod-S{--icon-size: 1.25rem;--components-button-font-size: var(--sizes-S-fontSize);--components-button-line-height: var(--sizes-S-lineHeight);--components-button-padding: .375rem .75rem;--components-button-gap: .375rem}.button.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-XS{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--spacings-XXS) var(--spacings-XS);--components-button-gap: var(--spacings-XXS)}.button.mod-XS .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.button.mod-outlined:where(:not(.is-success,.is-error)),.button.mod-outline:where(:not(.is-success,.is-error)){--components-button-backgroundColor: var(--colors-white-color);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: 0 0 0 var(--commons-divider-width) var(--palettes-400, var(--palettes-neutral-400))}.button.mod-outlined:where(:not(.is-success,.is-error)) .button-counter,.button.mod-outline:where(:not(.is-success,.is-error)) .button-counter{color:var(--palettes-800, var(--palettes-neutral-800));background-color:var(--palettes-300, var(--palettes-neutral-300))}.button.mod-outlined:where(:not(.is-success,.is-error)):hover,.button.mod-outline:where(:not(.is-success,.is-error)):hover{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.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-200, var(--palettes-neutral-200))}.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(--colors-white-color);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-400);--components-button-color: var(--palettes-neutral-500)}.button.mod-outlined.is-disabled,.button.mod-outlined.disabled,.button.mod-outline.is-disabled,.button.mod-outline.disabled{--components-button-backgroundColor: var(--colors-white-color);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-400);--components-button-color: var(--palettes-neutral-500)}.button.mod-text:where(:not(.is-success,.is-error)),.button.mod-link:where(:not(.is-success,.is-error)){--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--palettes-neutral-700))}.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{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.button.mod-text:where(:not(.is-success,.is-error)):active,.button.mod-link:where(:not(.is-success,.is-error)):active{--components-button-backgroundColor: var(--palettes-200, var(--palettes-neutral-200))}.button.mod-text:where(:not(.is-success,.is-error)):disabled,.button.mod-link:where(:not(.is-success,.is-error)):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-text.is-disabled,.button.mod-text.disabled,.button.mod-link.is-disabled,.button.mod-link.disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-neutral-500)}.button.mod-counter{--components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS)) var(--spacings-XS) var(--spacings-S)}.button.mod-counter .button-counter{background-color:var(--palettes-600, var(--palettes-product-600));border-radius:1rem;display:flex;font-size:var(--sizes-XS-fontSize);height:1.5rem;min-width:1.5rem;align-items:center;justify-content:center;transition:background-color var(--commons-animations-durations-fast) ease}.button.mod-counter:hover .button-counter{--components-button-backgroundColor: var(--palettes-500, var(--palettes-product-500))}.button.mod-counter.mod-S{--components-button-padding: .375rem calc(var(--spacings-XS) + var(--spacings-XXS)) .375rem var(--spacings-S)}.button.mod-counter.mod-S .button-counter{height:1.25rem;min-width:1.25rem}.button.mod-counter.mod-XS{--components-button-padding: var(--spacings-XXS) var(--spacings-XS) var(--spacings-XXS) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-counter.mod-XS .button-counter{height:1rem;min-width:1rem}.button.mod-withIcon,.button.mod-icon{--components-button-padding: var(--spacings-XS) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-withIcon.mod-S,.button.mod-icon.mod-S{--components-button-padding: calc(var(--spacings-XXS) + var(--spacings-XXS) / 2) calc(var(--spacings-XS) + var(--spacings-XXS))}.button.mod-withIcon.mod-XS,.button.mod-icon.mod-XS{--components-button-padding: var(--spacings-XXS) var(--spacings-XS)}.button.mod-onlyIcon{--components-button-padding: var(--spacings-XS)}.button.mod-onlyIcon.mod-S{--components-button-padding: .375rem}.button.mod-onlyIcon.mod-XS{--components-button-padding: var(--spacings-XXS)}.button.mod-delete:hover{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-100)}.button.mod-delete:active{--components-button-color: var(--palettes-error-700);--components-button-backgroundColor: var(--palettes-error-200)}.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-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-delete.mod-outlined:hover,.button.mod-delete.mod-outline:hover{--components-button-boxShadow: 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-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-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(--colors-white-color)}.button.mod-inverted:hover,.button.mod-inverted:focus-visible,.button.mod-invert:hover,.button.mod-invert:focus-visible{--components-button-color: var(--colors-white-color);--components-button-backgroundColor: var(--palettes-800, var(--palettes-neutral-800))}.button.mod-inverted:active,.button.mod-invert:active{--components-button-backgroundColor: var(--palettes-700, var(--palettes-neutral-700))}.button.mod-more{--components-button-minWidth: 2rem;--components-button-padding: 0}.button.mod-more:before{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;height:0;vertical-align:text-top}@supports (content: \"*\"/\"\"){.button.mod-more:before{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.mod-more:before{content:\"\\e97c\"}}.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-opacity: var(--commons-disabled-opacity);--components-button-pointerEvents: none;--components-button-color: transparent;--components-button-userSelect: none}.button.is-loading:after,.button.loading:after{content:\"\";width:var(--components-button-font-size);height:var(--components-button-font-size);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;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-top-color:transparent}.button.is-loading.mod-S:after,.button.loading.mod-S:after{content:\"\";width:var(--sizes-S-fontSize);height:var(--sizes-S-fontSize);border-radius:var(--commons-borderRadius-full);line-height:.8rem;border-width:3px;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-top-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button.is-error,.button.error{--palettes-text: #ffffff;--palettes-50: #ffebec;--palettes-100: #ffd6d8;--palettes-200: #fdbebe;--palettes-300: #faa3a3;--palettes-400: #fa8989;--palettes-500: #f76e6e;--palettes-600: #f15050;--palettes-700: #da2f2f;--palettes-800: #aa0e0e;--palettes-900: #630303;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-error:after,.button.error:after{color:var(--colors-white-color);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-error:after,.button.error:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons}@supports (content: \"*\"/\"\"){.button.is-error:after,.button.error:after{content:\"\\e9bf\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.is-error:after,.button.error:after{content:\"\\e9bf\"}}.button.is-success,.button.success{--palettes-text: #ffffff;--palettes-50: #dbfae0;--palettes-100: #bef3c7;--palettes-200: #a2ebaf;--palettes-300: #84e695;--palettes-400: #68d97b;--palettes-500: #57c769;--palettes-600: #39b155;--palettes-700: #279b42;--palettes-800: #0a762e;--palettes-900: #004d20;--components-button-color: transparent;--components-button-pointerEvents: none;--components-button-userSelect: none}.button.is-success:after,.button.success:after{color:var(--colors-white-color);font-size:calc(1.5 * var(--components-button-font-size));height:var(--components-button-line-height);inset:0;margin:auto;position:absolute}.button.is-success:after,.button.success:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons}@supports (content: \"*\"/\"\"){.button.is-success:after,.button.success:after{content:\"\\e97d\"/\"\"}}@supports not (content: \"*\"/\"\"){.button.is-success:after,.button.success:after{content:\"\\e97d\"}}.button.is-disabled,.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.is-disabled .numericBadge,.button.disabled .numericBadge{background-color:var(--palettes-neutral-200);color:var(--palettes-neutral-500)}\n"] }]
62
62
  }], propDecorators: { size: [{
63
63
  type: Input
64
64
  }], block: [{
@@ -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, inject, Input, OnChanges, 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></ng-content>',\n\tstyleUrls: ['./button.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'button',\n\t},\n})\nexport class ButtonComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\t#elementRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\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\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' | '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('u-mask');\n\t\t\t}).length == 0;\n\t\treturn !!this.#iconComponentRef && noSpan && noText;\n\t}\n\n\tngOnChanges(): void {\n\t\tthis.updateClasses();\n\t}\n\n\tupdateClasses(): void {\n\t\tconst ngClassConfig = {\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t[`mod-block`]: this.block,\n\t\t\t[`palette-${this.palette}`]: true,\n\t\t\t[`is-${this.state}`]: true,\n\t\t\t['mod-onlyIcon']: this.iconOnly,\n\t\t\t['mod-withIcon']: this.#iconComponentRef !== undefined,\n\t\t};\n\n\t\tif (this.luButton !== '') {\n\t\t\tif (this.luButton === 'text-invert') {\n\t\t\t\tngClassConfig['mod-text'] = true;\n\t\t\t\tngClassConfig['mod-invert'] = true;\n\t\t\t} else {\n\t\t\t\tngClassConfig[`mod-${this.luButton}`] = true;\n\t\t\t}\n\t\t}\n\t\tthis.#luClass.setState(ngClassConfig);\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, 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></ng-content>',\n\tstyleUrls: ['./button.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'button',\n\t},\n})\nexport class ButtonComponent implements OnChanges {\n\t#luClass = inject(LuClass);\n\t#elementRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\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\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' | '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('u-mask');\n\t\t\t}).length == 0;\n\t\treturn !!this.#iconComponentRef && noSpan && noText;\n\t}\n\n\tngOnChanges(): void {\n\t\tthis.updateClasses();\n\t}\n\n\tupdateClasses(): void {\n\t\tconst ngClassConfig = {\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t[`mod-block`]: this.block,\n\t\t\t[`palette-${this.palette}`]: true,\n\t\t\t[`is-${this.state}`]: true,\n\t\t\t['mod-onlyIcon']: this.iconOnly,\n\t\t\t['mod-withIcon']: this.#iconComponentRef !== undefined,\n\t\t};\n\n\t\tif (this.luButton !== '') {\n\t\t\tif (this.luButton === 'text-invert') {\n\t\t\t\tngClassConfig['mod-text'] = true;\n\t\t\t\tngClassConfig['mod-invert'] = true;\n\t\t\t} else {\n\t\t\t\tngClassConfig[`mod-${this.luButton}`] = true;\n\t\t\t}\n\t\t}\n\t\tthis.#luClass.setState(ngClassConfig);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ class EstablishmentGroupingService {
12
12
  this.http = inject(HttpClient);
13
13
  this.establishmentsUrl = '/organization/structure/api/establishments';
14
14
  this.legalUnitsUrl = '/organization/structure/api/legal-units';
15
- this.countParams = new HttpParams().set('fields.root', 'count').set('limit=0', 0);
15
+ this.countParams = new HttpParams().set('fields.root', 'count').set('limit', 0);
16
16
  this.establishmentsCount$ = this.http.get(this.establishmentsUrl, { params: this.countParams }).pipe(map((res) => res.count));
17
17
  this.legalUnitsCount$ = this.http.get(this.legalUnitsUrl, { params: this.countParams }).pipe(map((res) => res.count));
18
18
  this.useGrouping$ = combineLatest([this.legalUnitsCount$, this.establishmentsCount$]).pipe(map(([luCount, establishmentCount]) => luCount > 1 && establishmentCount > 1 && luCount !== establishmentCount), shareReplay());
@@ -59,7 +59,7 @@ class LuCoreSelectEstablishmentsDirective extends ALuCoreSelectApiDirective {
59
59
  toObservable(this._appInstanceId),
60
60
  ]).pipe(map(([filters, clue, operationIds, appInstanceId]) => ({
61
61
  ...filters,
62
- ...(clue ? { clue: sanitizeClueFilter(clue) } : {}),
62
+ ...(clue ? { search: sanitizeClueFilter(clue) } : {}),
63
63
  ...(operationIds ? { operationIds: operationIds.join(',') } : {}),
64
64
  ...(appInstanceId ? { appInstanceId } : {}),
65
65
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-core-select-establishment.mjs","sources":["../../../packages/ng/core-select/establishment/establishment-grouping.service.ts","../../../packages/ng/core-select/establishment/establishment-grouping.component.ts","../../../packages/ng/core-select/establishment/establishments.directive.ts","../../../packages/ng/core-select/establishment/lucca-front-ng-core-select-establishment.ts"],"sourcesContent":["import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { combineLatest, map, shareReplay } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class EstablishmentGroupingService {\n\tprotected http = inject(HttpClient);\n\tprotected establishmentsUrl = '/organization/structure/api/establishments';\n\tprotected legalUnitsUrl = '/organization/structure/api/legal-units';\n\n\tprotected countParams: HttpParams = new HttpParams().set('fields.root', 'count').set('limit=0', 0);\n\tprotected establishmentsCount$ = this.http.get<{ count: number }>(this.establishmentsUrl, { params: this.countParams }).pipe(map((res) => res.count));\n\tprotected legalUnitsCount$ = this.http.get<{ count: number }>(this.legalUnitsUrl, { params: this.countParams }).pipe(map((res) => res.count));\n\n\tpublic useGrouping$ = combineLatest([this.legalUnitsCount$, this.establishmentsCount$]).pipe(\n\t\tmap(([luCount, establishmentCount]) => luCount > 1 && establishmentCount > 1 && luCount !== establishmentCount),\n\t\tshareReplay(),\n\t);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { PORTAL_CONTEXT } from '@lucca-front/ng/core';\nimport { LuOptionGroupByContext } from '@lucca-front/ng/core-select';\nimport { LuCoreSelectEstablishment } from './models';\n\n@Component({\n\tselector: 'lu-establishment-grouping',\n\tstandalone: true,\n\timports: [AsyncPipe],\n\ttemplate: `{{ group.options[0].legalUnit.name }}`,\n})\nexport class LuEstablishmentGroupingComponent {\n\tgroup = inject<LuOptionGroupByContext<LuCoreSelectEstablishment, number>>(PORTAL_CONTEXT).$implicit;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { DestroyRef, Directive, Input, OnInit, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { Observable, combineLatest, filter, map } from 'rxjs';\nimport { LuEstablishmentGroupingComponent } from './establishment-grouping.component';\nimport { EstablishmentGroupingService } from './establishment-grouping.service';\nimport { LuCoreSelectEstablishment } from './models';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\" / \"lu-multi-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[establishments],lu-multi-select[establishments]',\n\tstandalone: true,\n\texportAs: 'luEstablishments',\n})\nexport class LuCoreSelectEstablishmentsDirective<T extends LuCoreSelectEstablishment = LuCoreSelectEstablishment> extends ALuCoreSelectApiDirective<T> implements OnInit {\n\t#groupingService = inject(EstablishmentGroupingService);\n\t#destroyRef = inject(DestroyRef);\n\n\tprotected httpClient = inject(HttpClient);\n\n\t@Input()\n\tpublic set url(url: string | null) {\n\t\tthis._url.set(url);\n\t}\n\n\t@Input()\n\tpublic set filters(filters: Record<string, string | number | boolean> | null) {\n\t\tthis._filters.set(filters);\n\t}\n\n\t@Input()\n\tpublic set operationIds(ids: number[] | null) {\n\t\tthis._operationIds.set(ids);\n\t}\n\n\t@Input()\n\tpublic set appInstanceId(id: number | null) {\n\t\tthis._appInstanceId.set(id);\n\t}\n\n\tprotected _url = signal<string>('/organization/structure/api/establishments');\n\tprotected _filters = signal<Record<string, string | number | boolean> | null>(null);\n\tprotected _operationIds = signal<number[] | null>(null);\n\tprotected _appInstanceId = signal<number | null>(null);\n\n\tpublic override ngOnInit(): void {\n\t\tsuper.ngOnInit();\n\t\tthis.initGrouping();\n\t}\n\n\tprotected initGrouping() {\n\t\tthis.#groupingService.useGrouping$.pipe(filter(Boolean), takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\tthis.select.grouping = {\n\t\t\t\tselector: (option) => option.legalUnitId,\n\t\t\t\tcontent: LuEstablishmentGroupingComponent,\n\t\t\t};\n\t\t});\n\t}\n\n\tprotected override getOptions(params: Record<string, string | number | boolean> | null, page: number): Observable<T[]> {\n\t\treturn this.httpClient\n\t\t\t.get<T[] | { items: T[] }>(this._url(), {\n\t\t\t\tparams: {\n\t\t\t\t\t...params,\n\t\t\t\t\tpage: page + 1,\n\t\t\t\t\tlimit: this.pageSize,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(map((res) => (Array.isArray(res) ? res : res?.items) ?? []));\n\t}\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = combineLatest([\n\t\ttoObservable(this._filters),\n\t\tthis.clue$,\n\t\ttoObservable(this._operationIds),\n\t\ttoObservable(this._appInstanceId),\n\t]).pipe(\n\t\tmap(([filters, clue, operationIds, appInstanceId]) => ({\n\t\t\t...filters,\n\t\t\t...(clue ? { clue: sanitizeClueFilter(clue) } : {}),\n\t\t\t...(operationIds ? { operationIds: operationIds.join(',') } : {}),\n\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t})),\n\t);\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n}\n\nfunction sanitizeClueFilter(clue: string) {\n\treturn clue\n\t\t.split(' ')\n\t\t.map((c: string) => encodeURIComponent(c))\n\t\t.join(',');\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-core-select-establishment.mjs","sources":["../../../packages/ng/core-select/establishment/establishment-grouping.service.ts","../../../packages/ng/core-select/establishment/establishment-grouping.component.ts","../../../packages/ng/core-select/establishment/establishments.directive.ts","../../../packages/ng/core-select/establishment/lucca-front-ng-core-select-establishment.ts"],"sourcesContent":["import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { combineLatest, map, shareReplay } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class EstablishmentGroupingService {\n\tprotected http = inject(HttpClient);\n\tprotected establishmentsUrl = '/organization/structure/api/establishments';\n\tprotected legalUnitsUrl = '/organization/structure/api/legal-units';\n\n\tprotected countParams: HttpParams = new HttpParams().set('fields.root', 'count').set('limit', 0);\n\tprotected establishmentsCount$ = this.http.get<{ count: number }>(this.establishmentsUrl, { params: this.countParams }).pipe(map((res) => res.count));\n\tprotected legalUnitsCount$ = this.http.get<{ count: number }>(this.legalUnitsUrl, { params: this.countParams }).pipe(map((res) => res.count));\n\n\tpublic useGrouping$ = combineLatest([this.legalUnitsCount$, this.establishmentsCount$]).pipe(\n\t\tmap(([luCount, establishmentCount]) => luCount > 1 && establishmentCount > 1 && luCount !== establishmentCount),\n\t\tshareReplay(),\n\t);\n}\n","import { AsyncPipe } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { PORTAL_CONTEXT } from '@lucca-front/ng/core';\nimport { LuOptionGroupByContext } from '@lucca-front/ng/core-select';\nimport { LuCoreSelectEstablishment } from './models';\n\n@Component({\n\tselector: 'lu-establishment-grouping',\n\tstandalone: true,\n\timports: [AsyncPipe],\n\ttemplate: `{{ group.options[0].legalUnit.name }}`,\n})\nexport class LuEstablishmentGroupingComponent {\n\tgroup = inject<LuOptionGroupByContext<LuCoreSelectEstablishment, number>>(PORTAL_CONTEXT).$implicit;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { DestroyRef, Directive, Input, OnInit, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { Observable, combineLatest, filter, map } from 'rxjs';\nimport { LuEstablishmentGroupingComponent } from './establishment-grouping.component';\nimport { EstablishmentGroupingService } from './establishment-grouping.service';\nimport { LuCoreSelectEstablishment } from './models';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\" / \"lu-multi-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[establishments],lu-multi-select[establishments]',\n\tstandalone: true,\n\texportAs: 'luEstablishments',\n})\nexport class LuCoreSelectEstablishmentsDirective<T extends LuCoreSelectEstablishment = LuCoreSelectEstablishment> extends ALuCoreSelectApiDirective<T> implements OnInit {\n\t#groupingService = inject(EstablishmentGroupingService);\n\t#destroyRef = inject(DestroyRef);\n\n\tprotected httpClient = inject(HttpClient);\n\n\t@Input()\n\tpublic set url(url: string | null) {\n\t\tthis._url.set(url);\n\t}\n\n\t@Input()\n\tpublic set filters(filters: Record<string, string | number | boolean> | null) {\n\t\tthis._filters.set(filters);\n\t}\n\n\t@Input()\n\tpublic set operationIds(ids: number[] | null) {\n\t\tthis._operationIds.set(ids);\n\t}\n\n\t@Input()\n\tpublic set appInstanceId(id: number | null) {\n\t\tthis._appInstanceId.set(id);\n\t}\n\n\tprotected _url = signal<string>('/organization/structure/api/establishments');\n\tprotected _filters = signal<Record<string, string | number | boolean> | null>(null);\n\tprotected _operationIds = signal<number[] | null>(null);\n\tprotected _appInstanceId = signal<number | null>(null);\n\n\tpublic override ngOnInit(): void {\n\t\tsuper.ngOnInit();\n\t\tthis.initGrouping();\n\t}\n\n\tprotected initGrouping() {\n\t\tthis.#groupingService.useGrouping$.pipe(filter(Boolean), takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\tthis.select.grouping = {\n\t\t\t\tselector: (option) => option.legalUnitId,\n\t\t\t\tcontent: LuEstablishmentGroupingComponent,\n\t\t\t};\n\t\t});\n\t}\n\n\tprotected override getOptions(params: Record<string, string | number | boolean> | null, page: number): Observable<T[]> {\n\t\treturn this.httpClient\n\t\t\t.get<T[] | { items: T[] }>(this._url(), {\n\t\t\t\tparams: {\n\t\t\t\t\t...params,\n\t\t\t\t\tpage: page + 1,\n\t\t\t\t\tlimit: this.pageSize,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(map((res) => (Array.isArray(res) ? res : res?.items) ?? []));\n\t}\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = combineLatest([\n\t\ttoObservable(this._filters),\n\t\tthis.clue$,\n\t\ttoObservable(this._operationIds),\n\t\ttoObservable(this._appInstanceId),\n\t]).pipe(\n\t\tmap(([filters, clue, operationIds, appInstanceId]) => ({\n\t\t\t...filters,\n\t\t\t...(clue ? { search: sanitizeClueFilter(clue) } : {}),\n\t\t\t...(operationIds ? { operationIds: operationIds.join(',') } : {}),\n\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t})),\n\t);\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n}\n\nfunction sanitizeClueFilter(clue: string) {\n\treturn clue\n\t\t.split(' ')\n\t\t.map((c: string) => encodeURIComponent(c))\n\t\t.join(',');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ class LuCoreSelectJobQualificationsDirective extends ALuCoreSelectApiDirective {
38
38
  this._filters = signal(null);
39
39
  this.params$ = combineLatest([toObservable(this._filters), this.clue$]).pipe(map(([filters, clue]) => ({
40
40
  ...filters,
41
- ...(clue ? { clue: sanitizeClueFilter(clue) } : {}),
41
+ ...(clue ? { search: sanitizeClueFilter(clue) } : {}),
42
42
  })));
43
43
  this.optionComparer = (a, b) => a.id === b.id;
44
44
  this.select.grouping = {
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-core-select-job-qualification.mjs","sources":["../../../packages/ng/core-select/job-qualification/job-qualification-grouping.component.ts","../../../packages/ng/core-select/job-qualification/job-qualifications.directive.ts","../../../packages/ng/core-select/job-qualification/lucca-front-ng-core-select-job-qualification.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { PORTAL_CONTEXT } from '@lucca-front/ng/core';\nimport { LuOptionGroupByContext } from '@lucca-front/ng/core-select';\nimport { LuCoreSelectJobQualification } from './models';\n\n@Component({\n\tselector: 'lu-job-qualification-grouping',\n\tstandalone: true,\n\timports: [AsyncPipe],\n\ttemplate: `{{ group.options[0].job.name }}`,\n})\nexport class LuJobQualificationGroupingComponent {\n\tgroup = inject<LuOptionGroupByContext<LuCoreSelectJobQualification, number>>(PORTAL_CONTEXT).$implicit;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, Input, OnInit, inject, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { Observable, combineLatest, map } from 'rxjs';\nimport { LuJobQualificationGroupingComponent } from './job-qualification-grouping.component';\nimport { LuCoreSelectJobQualification } from './models';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\" / \"lu-multi-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[jobQualifications],lu-multi-select[jobQualifications]',\n\tstandalone: true,\n\texportAs: 'jobQualifications',\n})\nexport class LuCoreSelectJobQualificationsDirective<T extends LuCoreSelectJobQualification = LuCoreSelectJobQualification> extends ALuCoreSelectApiDirective<T> implements OnInit {\n\tprotected httpClient = inject(HttpClient);\n\n\t@Input()\n\tpublic set url(url: string | null) {\n\t\tthis._url.set(url);\n\t}\n\n\t@Input()\n\tpublic set filters(filters: Record<string, string | number | boolean> | null) {\n\t\tthis._filters.set(filters);\n\t}\n\n\tprotected _url = signal<string>('/organization/structure/api/job-qualifications');\n\tprotected _filters = signal<Record<string, string | number | boolean> | null>(null);\n\n\tpublic constructor() {\n\t\tsuper();\n\n\t\tthis.select.grouping = {\n\t\t\tselector: (option) => option.job.id,\n\t\t\tcontent: LuJobQualificationGroupingComponent,\n\t\t};\n\t}\n\n\tprotected override getOptions(params: Record<string, string | number | boolean> | null, page: number): Observable<T[]> {\n\t\treturn this.httpClient\n\t\t\t.get<T[] | { items: T[] }>(this._url(), {\n\t\t\t\tparams: {\n\t\t\t\t\t...params,\n\t\t\t\t\tpage: page + 1,\n\t\t\t\t\tlimit: this.pageSize,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(map((res) => (Array.isArray(res) ? res : res?.items) ?? []));\n\t}\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = combineLatest([toObservable(this._filters), this.clue$]).pipe(\n\t\tmap(([filters, clue]) => ({\n\t\t\t...filters,\n\t\t\t...(clue ? { clue: sanitizeClueFilter(clue) } : {}),\n\t\t})),\n\t);\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n}\n\nfunction sanitizeClueFilter(clue: string) {\n\treturn clue\n\t\t.split(' ')\n\t\t.map((c: string) => encodeURIComponent(c))\n\t\t.join(',');\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-core-select-job-qualification.mjs","sources":["../../../packages/ng/core-select/job-qualification/job-qualification-grouping.component.ts","../../../packages/ng/core-select/job-qualification/job-qualifications.directive.ts","../../../packages/ng/core-select/job-qualification/lucca-front-ng-core-select-job-qualification.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { PORTAL_CONTEXT } from '@lucca-front/ng/core';\nimport { LuOptionGroupByContext } from '@lucca-front/ng/core-select';\nimport { LuCoreSelectJobQualification } from './models';\n\n@Component({\n\tselector: 'lu-job-qualification-grouping',\n\tstandalone: true,\n\timports: [AsyncPipe],\n\ttemplate: `{{ group.options[0].job.name }}`,\n})\nexport class LuJobQualificationGroupingComponent {\n\tgroup = inject<LuOptionGroupByContext<LuCoreSelectJobQualification, number>>(PORTAL_CONTEXT).$implicit;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, Input, OnInit, inject, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { Observable, combineLatest, map } from 'rxjs';\nimport { LuJobQualificationGroupingComponent } from './job-qualification-grouping.component';\nimport { LuCoreSelectJobQualification } from './models';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\" / \"lu-multi-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[jobQualifications],lu-multi-select[jobQualifications]',\n\tstandalone: true,\n\texportAs: 'jobQualifications',\n})\nexport class LuCoreSelectJobQualificationsDirective<T extends LuCoreSelectJobQualification = LuCoreSelectJobQualification> extends ALuCoreSelectApiDirective<T> implements OnInit {\n\tprotected httpClient = inject(HttpClient);\n\n\t@Input()\n\tpublic set url(url: string | null) {\n\t\tthis._url.set(url);\n\t}\n\n\t@Input()\n\tpublic set filters(filters: Record<string, string | number | boolean> | null) {\n\t\tthis._filters.set(filters);\n\t}\n\n\tprotected _url = signal<string>('/organization/structure/api/job-qualifications');\n\tprotected _filters = signal<Record<string, string | number | boolean> | null>(null);\n\n\tpublic constructor() {\n\t\tsuper();\n\n\t\tthis.select.grouping = {\n\t\t\tselector: (option) => option.job.id,\n\t\t\tcontent: LuJobQualificationGroupingComponent,\n\t\t};\n\t}\n\n\tprotected override getOptions(params: Record<string, string | number | boolean> | null, page: number): Observable<T[]> {\n\t\treturn this.httpClient\n\t\t\t.get<T[] | { items: T[] }>(this._url(), {\n\t\t\t\tparams: {\n\t\t\t\t\t...params,\n\t\t\t\t\tpage: page + 1,\n\t\t\t\t\tlimit: this.pageSize,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(map((res) => (Array.isArray(res) ? res : res?.items) ?? []));\n\t}\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = combineLatest([toObservable(this._filters), this.clue$]).pipe(\n\t\tmap(([filters, clue]) => ({\n\t\t\t...filters,\n\t\t\t...(clue ? { search: sanitizeClueFilter(clue) } : {}),\n\t\t})),\n\t);\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n}\n\nfunction sanitizeClueFilter(clue: string) {\n\treturn clue\n\t\t.split(' ')\n\t\t.map((c: string) => encodeURIComponent(c))\n\t\t.join(',');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -159,6 +159,8 @@ class LuCoreSelectUsersDirective extends ALuCoreSelectApiDirective {
159
159
  #defaultSearchUrl;
160
160
  #defaultScopedSearchUrl;
161
161
  #userHomonymsService;
162
+ // Not overridable so it will ease employee API migration
163
+ #userFields;
162
164
  set url(url) {
163
165
  this.customUrl.set(url);
164
166
  }
@@ -183,11 +185,16 @@ class LuCoreSelectUsersDirective extends ALuCoreSelectApiDirective {
183
185
  get displayFormat() {
184
186
  return this._displayFormat;
185
187
  }
188
+ set filters(filters) {
189
+ this._filters.set(filters);
190
+ }
186
191
  constructor() {
187
192
  super();
188
193
  this.#defaultSearchUrl = '/api/v3/users/search';
189
194
  this.#defaultScopedSearchUrl = '/api/v3/users/scopedsearch';
190
195
  this.#userHomonymsService = inject(LuCoreSelectUserHomonymsService);
196
+ // Not overridable so it will ease employee API migration
197
+ this.#userFields = 'id,firstName,lastName,picture.href';
191
198
  this.httpClient = inject(HttpClient);
192
199
  this.currentUserId = inject(LU_CORE_SELECT_CURRENT_USER_ID);
193
200
  this._displayFormat = LuDisplayFullname.lastfirst;
@@ -209,6 +216,7 @@ class LuCoreSelectUsersDirective extends ALuCoreSelectApiDirective {
209
216
  toObservable(this._appInstanceId),
210
217
  toObservable(this._enableFormerEmployees),
211
218
  ]).pipe(map(([filters, orderBy, clue, operationIds, appInstanceId, enableFormerEmployees]) => ({
219
+ fields: this.#userFields,
212
220
  ...filters,
213
221
  ...(orderBy ? { orderBy } : {}),
214
222
  ...(clue ? { clue: sanitizeClueFilter(clue) } : {}),
@@ -234,11 +242,12 @@ class LuCoreSelectUsersDirective extends ALuCoreSelectApiDirective {
234
242
  getMe() {
235
243
  const url = this.customUrl() || this.defaultUrl();
236
244
  const params = {
245
+ id: this.currentUserId,
246
+ fields: this.#userFields,
237
247
  ...(this._filters() ?? {}),
238
248
  ...(this._operationIds() ? { operationIds: this._operationIds().join(',') } : {}),
239
249
  ...(this._appInstanceId() ? { appInstanceId: this._appInstanceId() } : {}),
240
250
  ...(this._enableFormerEmployees() ? { enableFormerEmployees: this._enableFormerEmployees() } : {}),
241
- id: this.currentUserId,
242
251
  };
243
252
  return this.httpClient
244
253
  .get(url, {
@@ -255,7 +264,7 @@ class LuCoreSelectUsersDirective extends ALuCoreSelectApiDirective {
255
264
  return displayMe$.pipe(switchMap((displayMe) => combineLatest([options$, displayMe ? me$ : of(null)])), map(([options, me]) => (me ? [me, ...(options ?? []).filter((o) => o.id !== me.id)] : options)), switchMap((users) => this.#userHomonymsService.handleHomonyms(users, this.displayFormat)));
256
265
  }
257
266
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuCoreSelectUsersDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
258
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: LuCoreSelectUsersDirective, isStandalone: true, selector: "lu-simple-select[users],lu-multi-select[users]", inputs: { url: "url", operationIds: "operationIds", appInstanceId: "appInstanceId", enableFormerEmployees: "enableFormerEmployees", displayMeOption: "displayMeOption", displayFormat: "displayFormat" }, usesInheritance: true, ngImport: i0 }); }
267
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: LuCoreSelectUsersDirective, isStandalone: true, selector: "lu-simple-select[users],lu-multi-select[users]", inputs: { url: "url", operationIds: "operationIds", appInstanceId: "appInstanceId", enableFormerEmployees: "enableFormerEmployees", displayMeOption: "displayMeOption", displayFormat: "displayFormat", filters: "filters" }, exportAs: ["luUsers"], usesInheritance: true, ngImport: i0 }); }
259
268
  }
260
269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuCoreSelectUsersDirective, decorators: [{
261
270
  type: Directive,
@@ -264,6 +273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
264
273
  // eslint-disable-next-line @angular-eslint/directive-selector
265
274
  selector: 'lu-simple-select[users],lu-multi-select[users]',
266
275
  standalone: true,
276
+ exportAs: 'luUsers',
267
277
  }]
268
278
  }], ctorParameters: () => [], propDecorators: { url: [{
269
279
  type: Input
@@ -277,6 +287,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
277
287
  type: Input
278
288
  }], displayFormat: [{
279
289
  type: Input
290
+ }], filters: [{
291
+ type: Input
280
292
  }] } });
281
293
  function sanitizeClueFilter(clue) {
282
294
  return clue
@@ -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/user-displayer.component.ts","../../../packages/ng/core-select/user/user-homonym.service.ts","../../../packages/ng/core-select/user/user.translate.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","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{{ user | luUserDisplay : userDirective.displayFormat }}\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 } from 'rxjs';\nimport { LuCoreSelectUser } from './user-option.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LuCoreSelectUserHomonymsService {\n\tprotected http = inject(HttpClient);\n\n\tprotected extractHomonyms<T extends LuCoreSelectUser>(users: T[], format: LuDisplayFormat): Set<T> {\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),\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\treturn users.map((user) => {\n\t\t\t\t\tif (homonyms.has(user)) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...user,\n\t\t\t\t\t\t\tadditionalInformation: additionalInformation[user.id],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn 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[]): Observable<Record<number, string>> {\n\t\tconst userIds = homonyms.map((user) => user.id);\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);\n\t}\n}\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_CORE_SELECT_USER_TRANSLATIONS = new InjectionToken('LuCoreSelectUserTranslations', {\n\tfactory: () => luCoreSelectUserTranslations,\n});\n\nexport interface LuCoreSelectUserTranslations {\n\tme: string;\n}\n\nexport const luCoreSelectUserTranslations: ILuTranslation<LuCoreSelectUserTranslations> = {\n\ten: {\n\t\tme: 'Me:',\n\t},\n\tfr: {\n\t\tme: 'Moi :',\n\t},\n\tes: {\n\t\tme: 'Yo :',\n\t},\n\tde: {\n\t\tme: 'Ich:',\n\t},\n\tpt: {\n\t\tme: 'Eu:',\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 } from '@lucca-front/ng/core-select';\nimport { LuUserDisplayPipe } from '@lucca-front/ng/user';\nimport { map, startWith } from 'rxjs';\nimport { LuCoreSelectUser } 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],\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<b>{{ intl.me }} {{ user | luUserDisplay : userDirective.displayFormat }}</b>\n\t\t\t</div>\n\n\t\t\t<ng-template #notMe>\n\t\t\t\t<div>{{ user | luUserDisplay : userDirective.displayFormat }}</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\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-top: -0.25em;\n\t\t\t}\n\t\t`,\n\t],\n})\nexport class LuUserOptionComponent {\n\tprotected context = inject<ILuOptionContext<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}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, Input, computed, inject, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ILuApiCollectionResponse } from '@lucca-front/ng/api';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { LuDisplayFormat, LuDisplayFullname } from '@lucca-front/ng/user';\nimport { EMPTY, Observable, combineLatest, distinctUntilChanged, filter, map, of, shareReplay, switchMap, take } from 'rxjs';\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 } from './user-option.model';\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})\nexport class LuCoreSelectUsersDirective<T extends LuCoreSelectUser = LuCoreSelectUser> extends ALuCoreSelectApiDirective<T> {\n\t#defaultSearchUrl = '/api/v3/users/search';\n\t#defaultScopedSearchUrl = '/api/v3/users/scopedsearch';\n\t#userHomonymsService = inject(LuCoreSelectUserHomonymsService);\n\n\tprotected httpClient = inject(HttpClient);\n\tpublic currentUserId = inject(LU_CORE_SELECT_CURRENT_USER_ID);\n\n\t@Input()\n\tpublic set url(url: string | null) {\n\t\tthis.customUrl.set(url);\n\t}\n\n\t@Input()\n\tpublic set operationIds(ids: number[] | null) {\n\t\tthis._operationIds.set(ids);\n\t}\n\n\t@Input()\n\tpublic set appInstanceId(id: number | null) {\n\t\tthis._appInstanceId.set(id);\n\t}\n\n\t@Input()\n\tpublic set enableFormerEmployees(value: boolean) {\n\t\tthis._enableFormerEmployees.set(value);\n\t}\n\n\t@Input()\n\tpublic set displayMeOption(value: boolean) {\n\t\tthis._displayMeOption.set(value);\n\t}\n\n\tpublic get displayMeOption() {\n\t\treturn this._displayMeOption();\n\t}\n\n\t@Input()\n\tpublic set displayFormat(format: LuDisplayFormat) {\n\t\tthis.displayFormat = format;\n\t}\n\n\tprivate _displayFormat: LuDisplayFormat = LuDisplayFullname.lastfirst;\n\n\tpublic get displayFormat() {\n\t\treturn this._displayFormat;\n\t}\n\n\tprotected _url = signal<string | null>(null);\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.select.optionTpl = LuUserOptionComponent;\n\t\tthis.select.valueTpl = LuUserDisplayerComponent;\n\t}\n\n\tprotected _orderBy = signal<string | null>(null);\n\tprotected _filters = signal<Record<string, string | number | boolean>>({});\n\tprotected _operationIds = signal<number[] | null>(null);\n\tprotected _appInstanceId = signal<number | null>(null);\n\tprotected _enableFormerEmployees = signal<boolean>(false);\n\tprotected defaultUrl = computed(() => (this._appInstanceId() && this._operationIds()?.length ? this.#defaultScopedSearchUrl : this.#defaultSearchUrl));\n\tprotected customUrl = signal<string | null>(null);\n\tprotected _displayMeOption = signal<boolean>(true);\n\tprotected displayMeOption$ = toObservable(this._displayMeOption);\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = combineLatest([\n\t\ttoObservable(this._filters),\n\t\ttoObservable(this._orderBy),\n\t\tthis.clue$,\n\t\ttoObservable(this._operationIds),\n\t\ttoObservable(this._appInstanceId),\n\t\ttoObservable(this._enableFormerEmployees),\n\t]).pipe(\n\t\tmap(([filters, orderBy, clue, operationIds, appInstanceId, enableFormerEmployees]) => ({\n\t\t\t...filters,\n\t\t\t...(orderBy ? { orderBy } : {}),\n\t\t\t...(clue ? { clue: sanitizeClueFilter(clue) } : {}),\n\t\t\t...(operationIds ? { operationIds: operationIds.join(',') } : {}),\n\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t\t...(enableFormerEmployees ? { enableFormerEmployees } : {}),\n\t\t})),\n\t);\n\n\tprotected override getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\tconst url = this.customUrl() || this.defaultUrl();\n\n\t\treturn this.httpClient\n\t\t\t.get<ILuApiCollectionResponse<{ item: T }>>(url, {\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 getMe(): Observable<T | null> {\n\t\tconst url = this.customUrl() || this.defaultUrl();\n\n\t\tconst params = {\n\t\t\t...(this._filters() ?? {}),\n\t\t\t...(this._operationIds() ? { operationIds: this._operationIds().join(',') } : {}),\n\t\t\t...(this._appInstanceId() ? { appInstanceId: this._appInstanceId() } : {}),\n\t\t\t...(this._enableFormerEmployees() ? { enableFormerEmployees: this._enableFormerEmployees() } : {}),\n\t\t\tid: this.currentUserId,\n\t\t};\n\n\t\treturn this.httpClient\n\t\t\t.get<ILuApiCollectionResponse<{ item: T }>>(url, {\n\t\t\t\tparams,\n\t\t\t})\n\t\t\t.pipe(map((res) => res.data.items.map(({ item }) => item)[0] ?? null));\n\t}\n\n\tprotected override buildOptions(): Observable<T[]> {\n\t\tconst hasClue$ = this.clue$.pipe(map((clue) => !!clue));\n\t\tconst displayMe$ = combineLatest([hasClue$, this.displayMeOption$]).pipe(\n\t\t\tmap(([hasClue, displayMeOption]) => displayMeOption && !hasClue),\n\t\t\tdistinctUntilChanged(),\n\t\t);\n\n\t\t// Wait for the first time the panel is open to get the current user\n\t\tconst me$ = this.select.isPanelOpen$.pipe(\n\t\t\tfilter((isOpen) => isOpen),\n\t\t\ttake(1),\n\t\t\tswitchMap((isOpen) => (isOpen ? this.getMe() : EMPTY)),\n\t\t\tshareReplay({ bufferSize: 1, refCount: true }),\n\t\t);\n\n\t\tconst options$ = super.buildOptions();\n\n\t\treturn displayMe$.pipe(\n\t\t\tswitchMap((displayMe) => combineLatest([options$, displayMe ? me$ : of(null)])),\n\t\t\tmap(([options, me]) => (me ? [me, ...(options ?? []).filter((o) => o.id !== me.id)] : options)),\n\t\t\tswitchMap((users) => this.#userHomonymsService.handleHomonyms(users, this.displayFormat)),\n\t\t);\n\t}\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n}\n\nfunction sanitizeClueFilter(clue: string) {\n\treturn clue\n\t\t.split(' ')\n\t\t.map((c: string) => encodeURIComponent(c))\n\t\t.join(',');\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-core-select-user.mjs","sources":["../../../packages/ng/core-select/user/me.provider.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.translate.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","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{{ user | luUserDisplay : userDirective.displayFormat }}\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 } from 'rxjs';\nimport { LuCoreSelectUser } from './user-option.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LuCoreSelectUserHomonymsService {\n\tprotected http = inject(HttpClient);\n\n\tprotected extractHomonyms<T extends LuCoreSelectUser>(users: T[], format: LuDisplayFormat): Set<T> {\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),\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\treturn users.map((user) => {\n\t\t\t\t\tif (homonyms.has(user)) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...user,\n\t\t\t\t\t\t\tadditionalInformation: additionalInformation[user.id],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn 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[]): Observable<Record<number, string>> {\n\t\tconst userIds = homonyms.map((user) => user.id);\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);\n\t}\n}\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_CORE_SELECT_USER_TRANSLATIONS = new InjectionToken('LuCoreSelectUserTranslations', {\n\tfactory: () => luCoreSelectUserTranslations,\n});\n\nexport interface LuCoreSelectUserTranslations {\n\tme: string;\n}\n\nexport const luCoreSelectUserTranslations: ILuTranslation<LuCoreSelectUserTranslations> = {\n\ten: {\n\t\tme: 'Me:',\n\t},\n\tfr: {\n\t\tme: 'Moi :',\n\t},\n\tes: {\n\t\tme: 'Yo :',\n\t},\n\tde: {\n\t\tme: 'Ich:',\n\t},\n\tpt: {\n\t\tme: 'Eu:',\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 } from '@lucca-front/ng/core-select';\nimport { LuUserDisplayPipe } from '@lucca-front/ng/user';\nimport { map, startWith } from 'rxjs';\nimport { LuCoreSelectUser } 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],\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<b>{{ intl.me }} {{ user | luUserDisplay : userDirective.displayFormat }}</b>\n\t\t\t</div>\n\n\t\t\t<ng-template #notMe>\n\t\t\t\t<div>{{ user | luUserDisplay : userDirective.displayFormat }}</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\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-top: -0.25em;\n\t\t\t}\n\t\t`,\n\t],\n})\nexport class LuUserOptionComponent {\n\tprotected context = inject<ILuOptionContext<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}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, Input, computed, inject, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ILuApiCollectionResponse } from '@lucca-front/ng/api';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { LuDisplayFormat, LuDisplayFullname } from '@lucca-front/ng/user';\nimport { EMPTY, Observable, combineLatest, distinctUntilChanged, filter, map, of, shareReplay, switchMap, take } from 'rxjs';\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 } from './user-option.model';\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})\nexport class LuCoreSelectUsersDirective<T extends LuCoreSelectUser = LuCoreSelectUser> extends ALuCoreSelectApiDirective<T> {\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\t@Input()\n\tpublic set url(url: string | null) {\n\t\tthis.customUrl.set(url);\n\t}\n\n\t@Input()\n\tpublic set operationIds(ids: number[] | null) {\n\t\tthis._operationIds.set(ids);\n\t}\n\n\t@Input()\n\tpublic set appInstanceId(id: number | null) {\n\t\tthis._appInstanceId.set(id);\n\t}\n\n\t@Input()\n\tpublic set enableFormerEmployees(value: boolean) {\n\t\tthis._enableFormerEmployees.set(value);\n\t}\n\n\t@Input()\n\tpublic set displayMeOption(value: boolean) {\n\t\tthis._displayMeOption.set(value);\n\t}\n\n\tpublic get displayMeOption() {\n\t\treturn this._displayMeOption();\n\t}\n\n\t@Input()\n\tpublic set displayFormat(format: LuDisplayFormat) {\n\t\tthis.displayFormat = format;\n\t}\n\n\tprivate _displayFormat: LuDisplayFormat = LuDisplayFullname.lastfirst;\n\n\tpublic get displayFormat() {\n\t\treturn this._displayFormat;\n\t}\n\n\t@Input()\n\tpublic set filters(filters: Record<string, string | number | boolean>) {\n\t\tthis._filters.set(filters);\n\t}\n\n\tprotected _url = signal<string | null>(null);\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.select.optionTpl = LuUserOptionComponent;\n\t\tthis.select.valueTpl = LuUserDisplayerComponent;\n\t}\n\n\tprotected _orderBy = signal<string | null>(null);\n\tprotected _filters = signal<Record<string, string | number | boolean>>({});\n\tprotected _operationIds = signal<number[] | null>(null);\n\tprotected _appInstanceId = signal<number | null>(null);\n\tprotected _enableFormerEmployees = signal<boolean>(false);\n\tprotected defaultUrl = computed(() => (this._appInstanceId() && this._operationIds()?.length ? this.#defaultScopedSearchUrl : this.#defaultSearchUrl));\n\tprotected customUrl = signal<string | null>(null);\n\tprotected _displayMeOption = signal<boolean>(true);\n\tprotected displayMeOption$ = toObservable(this._displayMeOption);\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = combineLatest([\n\t\ttoObservable(this._filters),\n\t\ttoObservable(this._orderBy),\n\t\tthis.clue$,\n\t\ttoObservable(this._operationIds),\n\t\ttoObservable(this._appInstanceId),\n\t\ttoObservable(this._enableFormerEmployees),\n\t]).pipe(\n\t\tmap(([filters, orderBy, clue, operationIds, appInstanceId, enableFormerEmployees]) => ({\n\t\t\tfields: this.#userFields,\n\t\t\t...filters,\n\t\t\t...(orderBy ? { orderBy } : {}),\n\t\t\t...(clue ? { clue: sanitizeClueFilter(clue) } : {}),\n\t\t\t...(operationIds ? { operationIds: operationIds.join(',') } : {}),\n\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t\t...(enableFormerEmployees ? { enableFormerEmployees } : {}),\n\t\t})),\n\t);\n\n\tprotected override getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\tconst url = this.customUrl() || this.defaultUrl();\n\n\t\treturn this.httpClient\n\t\t\t.get<ILuApiCollectionResponse<{ item: T }>>(url, {\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 getMe(): Observable<T | null> {\n\t\tconst url = this.customUrl() || this.defaultUrl();\n\n\t\tconst params = {\n\t\t\tid: this.currentUserId,\n\t\t\tfields: this.#userFields,\n\t\t\t...(this._filters() ?? {}),\n\t\t\t...(this._operationIds() ? { operationIds: this._operationIds().join(',') } : {}),\n\t\t\t...(this._appInstanceId() ? { appInstanceId: this._appInstanceId() } : {}),\n\t\t\t...(this._enableFormerEmployees() ? { enableFormerEmployees: this._enableFormerEmployees() } : {}),\n\t\t};\n\n\t\treturn this.httpClient\n\t\t\t.get<ILuApiCollectionResponse<{ item: T }>>(url, {\n\t\t\t\tparams,\n\t\t\t})\n\t\t\t.pipe(map((res) => res.data.items.map(({ item }) => item)[0] ?? null));\n\t}\n\n\tprotected override buildOptions(): Observable<T[]> {\n\t\tconst hasClue$ = this.clue$.pipe(map((clue) => !!clue));\n\t\tconst displayMe$ = combineLatest([hasClue$, this.displayMeOption$]).pipe(\n\t\t\tmap(([hasClue, displayMeOption]) => displayMeOption && !hasClue),\n\t\t\tdistinctUntilChanged(),\n\t\t);\n\n\t\t// Wait for the first time the panel is open to get the current user\n\t\tconst me$ = this.select.isPanelOpen$.pipe(\n\t\t\tfilter((isOpen) => isOpen),\n\t\t\ttake(1),\n\t\t\tswitchMap((isOpen) => (isOpen ? this.getMe() : EMPTY)),\n\t\t\tshareReplay({ bufferSize: 1, refCount: true }),\n\t\t);\n\n\t\tconst options$ = super.buildOptions();\n\n\t\treturn displayMe$.pipe(\n\t\t\tswitchMap((displayMe) => combineLatest([options$, displayMe ? me$ : of(null)])),\n\t\t\tmap(([options, me]) => (me ? [me, ...(options ?? []).filter((o) => o.id !== me.id)] : options)),\n\t\t\tswitchMap((users) => this.#userHomonymsService.handleHomonyms(users, this.displayFormat)),\n\t\t);\n\t}\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n}\n\nfunction sanitizeClueFilter(clue: string) {\n\treturn clue\n\t\t.split(' ')\n\t\t.map((c: string) => encodeURIComponent(c))\n\t\t.join(',');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -87,10 +87,12 @@ class FormFieldComponent {
87
87
  this.ready$.next(true);
88
88
  }
89
89
  updateAria() {
90
- this.#nativeInputRef.ariaInvalid = this.invalid.toString();
91
- this.#nativeInputRef.ariaRequired = this.required.toString();
92
- this.#nativeInputRef.setAttribute('aria-describedby', `${this.id}-message`);
93
- this.addLabelledBy(`${this.id}-label`);
90
+ if (this.#nativeInputRef) {
91
+ this.#nativeInputRef.ariaInvalid = this.invalid.toString();
92
+ this.#nativeInputRef.ariaRequired = this.required.toString();
93
+ this.#nativeInputRef.setAttribute('aria-describedby', `${this.id}-message`);
94
+ this.addLabelledBy(`${this.id}-label`);
95
+ }
94
96
  }
95
97
  ngOnDestroy() {
96
98
  this.ready$.complete();
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","import { booleanAttribute, Component, ContentChild, ContentChildren, DoCheck, forwardRef, HostBinding, inject, Input, OnChanges, OnDestroy, QueryList, ViewEncapsulation } from '@angular/core';\nimport { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';\nimport { InputDirective } from './input.directive';\nimport { FormFieldSize } from './form-field-size';\nimport { BehaviorSubject } from 'rxjs';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { LuClass } from '@lucca-front/ng/core';\nimport { NG_VALIDATORS, NgControl, ReactiveFormsModule, RequiredValidator, Validator, Validators } from '@angular/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent implements OnChanges, OnDestroy, DoCheck {\n\t#luClass = inject(LuClass);\n\n\t#control: NgControl;\n\n\t#requiredValidator: RequiredValidator | undefined;\n\n\t@ContentChildren(NG_VALIDATORS)\n\tpublic set validators(validators: QueryList<Validator | undefined>) {\n\t\tthis.#requiredValidator = validators.toArray()?.find((v): v is RequiredValidator => v instanceof RequiredValidator);\n\t}\n\n\t@ContentChild(NgControl)\n\tpublic set control(control: NgControl) {\n\t\tif (control === undefined) {\n\t\t\t// This might be because the child input is initialized with a ngIf, just ignore this case\n\t\t\treturn;\n\t\t}\n\t\tthis.#control = control;\n\t}\n\n\t@HostBinding('class')\n\tclazz = 'form-field';\n\n\t@Input({\n\t\trequired: true,\n\t})\n\tlabel: string;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\thiddenLabel = false;\n\n\t@Input()\n\ttooltip: string | SafeHtml;\n\n\trequired = false;\n\n\tinvalid = false;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\t@Input()\n\tinlineMessageState: InlineMessageState;\n\n\t@Input()\n\tsize: FormFieldSize;\n\n\t@Input()\n\tlayout: 'default' | 'checkable' = 'default';\n\n\tprivate _input: InputDirective;\n\n\tpublic set input(input: InputDirective) {\n\t\tthis._input = input;\n\t\t/* We have to put this in the next cycle to make sure it'll be applied properly\n\t\t * and that it won't trigger a change detection error\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tthis.prepareInput();\n\t\t});\n\t}\n\n\tpublic get input(): InputDirective {\n\t\treturn this._input;\n\t}\n\n\tid: string;\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.#nativeInputRef.setAttribute('aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t}\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\t#nativeInputRef: HTMLElement;\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t[`mod-checkable`]: this.layout === 'checkable',\n\t\t});\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.updateAria();\n\t\t}\n\t}\n\n\tprepareInput(): void {\n\t\tif (!this.input) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.#nativeInputRef = this.input.host.nativeElement;\n\t\tthis.id = `${this.#nativeInputRef.tagName.toLowerCase()}-${++nextId}`;\n\t\tthis.#nativeInputRef.id = this.id;\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#nativeInputRef.ariaInvalid = this.invalid.toString();\n\t\tthis.#nativeInputRef.ariaRequired = this.required.toString();\n\t\tthis.#nativeInputRef.setAttribute('aria-describedby', `${this.id}-message`);\n\t\tthis.addLabelledBy(`${this.id}-label`);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tif (this.#control) {\n\t\t\t// invalid management\n\t\t\tconst previousInvalid = this.invalid;\n\t\t\tthis.invalid = this.#control.invalid && this.#control.touched;\n\n\t\t\t// required management\n\t\t\tconst previousRequired = this.required;\n\t\t\tthis.required = this.#requiredValidator\n\t\t\t\t? booleanAttribute(this.#requiredValidator.required)\n\t\t\t\t: this.#control.control.hasValidator(Validators.required) || this.#control.control.hasValidator(Validators.requiredTrue);\n\n\t\t\t// If stuff changed, update aria attributes\n\t\t\tif (this.invalid !== previousInvalid || this.required !== previousRequired) {\n\t\t\t\tthis.updateAria();\n\t\t\t}\n\t\t}\n\t}\n}\n","<label\n\tclass=\"formLabel\"\n\t[class.is-error]=\"invalid\"\n\tid=\"{{id}}-label\"\n\tfor=\"{{id}}\"\n\t[class.u-mask]=\"hiddenLabel\"\n\tattr.aria-hidden=\"{{hiddenLabel}}\"\n>\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n</label>\n<ng-content></ng-content>\n<lu-inline-message\n\tid=\"{{id}}-message\"\n\t*ngIf=\"inlineMessage\"\n\t[label]=\"inlineMessage\"\n\t[state]=\"invalid ? 'error' : inlineMessageState\"\n></lu-inline-message>\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n\thost: {\n\t\t// Used to autofocus in dialog boxes, do not change except if you know what you're doing\n\t\tclass: 'luNativeInput',\n\t},\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.input = this;\n\t\t}\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-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","import { booleanAttribute, Component, ContentChild, ContentChildren, DoCheck, forwardRef, HostBinding, inject, Input, OnChanges, OnDestroy, QueryList, ViewEncapsulation } from '@angular/core';\nimport { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';\nimport { InputDirective } from './input.directive';\nimport { FormFieldSize } from './form-field-size';\nimport { BehaviorSubject } from 'rxjs';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { LuClass } from '@lucca-front/ng/core';\nimport { NG_VALIDATORS, NgControl, ReactiveFormsModule, RequiredValidator, Validator, Validators } from '@angular/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent implements OnChanges, OnDestroy, DoCheck {\n\t#luClass = inject(LuClass);\n\n\t#control: NgControl;\n\n\t#requiredValidator: RequiredValidator | undefined;\n\n\t@ContentChildren(NG_VALIDATORS)\n\tpublic set validators(validators: QueryList<Validator | undefined>) {\n\t\tthis.#requiredValidator = validators.toArray()?.find((v): v is RequiredValidator => v instanceof RequiredValidator);\n\t}\n\n\t@ContentChild(NgControl)\n\tpublic set control(control: NgControl) {\n\t\tif (control === undefined) {\n\t\t\t// This might be because the child input is initialized with a ngIf, just ignore this case\n\t\t\treturn;\n\t\t}\n\t\tthis.#control = control;\n\t}\n\n\t@HostBinding('class')\n\tclazz = 'form-field';\n\n\t@Input({\n\t\trequired: true,\n\t})\n\tlabel: string;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\thiddenLabel = false;\n\n\t@Input()\n\ttooltip: string | SafeHtml;\n\n\trequired = false;\n\n\tinvalid = false;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\t@Input()\n\tinlineMessageState: InlineMessageState;\n\n\t@Input()\n\tsize: FormFieldSize;\n\n\t@Input()\n\tlayout: 'default' | 'checkable' = 'default';\n\n\tprivate _input: InputDirective;\n\n\tpublic set input(input: InputDirective) {\n\t\tthis._input = input;\n\t\t/* We have to put this in the next cycle to make sure it'll be applied properly\n\t\t * and that it won't trigger a change detection error\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tthis.prepareInput();\n\t\t});\n\t}\n\n\tpublic get input(): InputDirective {\n\t\treturn this._input;\n\t}\n\n\tid: string;\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.#nativeInputRef.setAttribute('aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t}\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\t#nativeInputRef: HTMLElement;\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t[`mod-checkable`]: this.layout === 'checkable',\n\t\t});\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.updateAria();\n\t\t}\n\t}\n\n\tprepareInput(): void {\n\t\tif (!this.input) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.#nativeInputRef = this.input.host.nativeElement;\n\t\tthis.id = `${this.#nativeInputRef.tagName.toLowerCase()}-${++nextId}`;\n\t\tthis.#nativeInputRef.id = this.id;\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tif (this.#nativeInputRef) {\n\t\t\tthis.#nativeInputRef.ariaInvalid = this.invalid.toString();\n\t\t\tthis.#nativeInputRef.ariaRequired = this.required.toString();\n\t\t\tthis.#nativeInputRef.setAttribute('aria-describedby', `${this.id}-message`);\n\t\t\tthis.addLabelledBy(`${this.id}-label`);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tif (this.#control) {\n\t\t\t// invalid management\n\t\t\tconst previousInvalid = this.invalid;\n\t\t\tthis.invalid = this.#control.invalid && this.#control.touched;\n\n\t\t\t// required management\n\t\t\tconst previousRequired = this.required;\n\t\t\tthis.required = this.#requiredValidator\n\t\t\t\t? booleanAttribute(this.#requiredValidator.required)\n\t\t\t\t: this.#control.control.hasValidator(Validators.required) || this.#control.control.hasValidator(Validators.requiredTrue);\n\n\t\t\t// If stuff changed, update aria attributes\n\t\t\tif (this.invalid !== previousInvalid || this.required !== previousRequired) {\n\t\t\t\tthis.updateAria();\n\t\t\t}\n\t\t}\n\t}\n}\n","<label\n\tclass=\"formLabel\"\n\t[class.is-error]=\"invalid\"\n\tid=\"{{id}}-label\"\n\tfor=\"{{id}}\"\n\t[class.u-mask]=\"hiddenLabel\"\n\tattr.aria-hidden=\"{{hiddenLabel}}\"\n>\n\t{{label}}<sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t<lu-icon icon=\"helpOutline\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n</label>\n<ng-content></ng-content>\n<lu-inline-message\n\tid=\"{{id}}-message\"\n\t*ngIf=\"inlineMessage\"\n\t[label]=\"inlineMessage\"\n\t[state]=\"invalid ? 'error' : inlineMessageState\"\n></lu-inline-message>\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n\thost: {\n\t\t// Used to autofocus in dialog boxes, do not change except if you know what you're doing\n\t\tclass: 'luNativeInput',\n\t},\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.input = this;\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}