@lucca-front/ng 18.3.2 → 18.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core-select/input/select-input.models.d.ts +2 -1
- package/core-select/panel/panel.utils.d.ts +1 -1
- package/core-select/select.utils.d.ts +1 -1
- package/date2/date-input/date-input.component.d.ts +2 -0
- package/esm2022/core-select/api/api-v4.directive.mjs +3 -3
- package/esm2022/core-select/establishment/establishments.directive.mjs +3 -3
- package/esm2022/core-select/input/select-input.models.mjs +7 -30
- package/esm2022/core-select/job-qualification/job-qualifications.directive.mjs +3 -3
- package/esm2022/core-select/panel/panel.utils.mjs +9 -5
- package/esm2022/core-select/select.utils.mjs +2 -5
- package/esm2022/core-select/user/users.directive.mjs +17 -6
- package/esm2022/date2/date-input/date-input.component.mjs +47 -18
- package/esm2022/dialog/dialog-header/dialog-header.component.mjs +2 -3
- package/esm2022/empty-state/empty-state-page/empty-state-page.component.mjs +3 -3
- package/esm2022/empty-state/empty-state-section/empty-state-section.component.mjs +3 -3
- package/esm2022/form-field/form-field.component.mjs +3 -3
- package/esm2022/multi-select/input/panel-ref.factory.mjs +5 -1
- package/esm2022/multi-select/input/select-input.component.mjs +3 -5
- package/esm2022/multi-select/panel/panel.component.mjs +3 -2
- package/esm2022/simple-select/input/panel-ref.factory.mjs +5 -2
- package/esm2022/simple-select/input/select-input.component.mjs +2 -4
- package/esm2022/simple-select/panel/panel.component.mjs +3 -2
- package/esm2022/skeleton/skeleton-field/skeleton-field.component.mjs +2 -2
- package/esm2022/tooltip/trigger/tooltip-trigger.directive.mjs +6 -3
- package/fesm2022/lucca-front-ng-core-select-api.mjs +2 -2
- package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-establishment.mjs +2 -2
- package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +2 -2
- package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +16 -5
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +19 -38
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +46 -17
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +1 -2
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-empty-state.mjs +4 -4
- package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +2 -2
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +7 -5
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +6 -4
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +2 -2
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tooltip.mjs +5 -2
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/multi-select/input/panel-ref.factory.d.ts +2 -0
- package/multi-select/panel/panel.component.d.ts +1 -0
- package/package.json +39 -39
- package/simple-select/input/panel-ref.factory.d.ts +2 -0
- package/simple-select/panel/panel.component.d.ts +1 -0
- package/src/components/_popup.scss +1 -1
- package/src/components/_sidepanel.scss +4 -0
|
@@ -5,11 +5,11 @@ export class SkeletonFieldComponent {
|
|
|
5
5
|
this.dark = false;
|
|
6
6
|
}
|
|
7
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SkeletonFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.1", type: SkeletonFieldComponent, isStandalone: true, selector: "lu-skeleton-field", inputs: { dark: ["dark", "dark", booleanAttribute] }, ngImport: i0, template: "<div class=\"form-field skeleton is-loading\" [class.mod-dark]=\"dark\" inert=\"inert\">\n\t<span class=\"skeleton-item\" style=\"--components-skeleton-text-width: 50%\"></span>\n\t<div class=\"textField\">\n\t\t<div class=\"textField-input\">\n\t\t\t<span class=\"textField-input-value\">\n\t\t\t\t<span class=\"skeleton-item\" style=\"--components-skeleton-text-width: 80%\"></span>\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".textField{--component-textField-lineHeight: var(--sizes-M-lineHeight);--component-textField-fontSize: var(--sizes-M-fontSize);--component-textField-placeholder: var(--palettes-neutral-400);--component-textField-background: var(--palettes-neutral-0);--component-textField-border: var(--palettes-neutral-300);--component-textField-color: var(--palettes-neutral-800);--component-textField-prefix-color: var(--palettes-neutral-600);--component-textField-padding: var(--pr-t-spacings-100);--component-textField-affix-padding: var(--component-textField-padding);--component-textField-affix-size: 1.75rem;--component-textField-scrollMargin: 88rem;--component-textField-maxHeight: 90dvh;--component-textField-maxHeightFallback: 90vh;display:flex;align-items:stretch;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);box-shadow:0 0 0 1px var(--component-textField-border)}.textField:hover{--component-textField-border: var(--palettes-neutral-400)}.textField:has(.textField-input-value:focus-visible){outline:2px solid var(--palettes-product-700);outline-offset:3px}.textField .textField-input-affix-toggle{pointer-events:auto;width:var(--component-textField-affix-size);height:var(--component-textField-affix-size);color:var(--palettes-neutral-600)}.textField-input{display:flex;align-items:center;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);position:relative}.textField-input:has(.textField-input-affix-icon){--component-textField-affix-padding: 2.5rem}.textField-input:has(.textField-input-affix-toggle){--component-textField-affix-padding: 3rem}.textField-input:has(.textField-input-affix-clear){--component-textField-affix-padding: 2rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-icon){--component-textField-affix-padding: 4rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-toggle){--component-textField-affix-padding: 4.5rem}.textField-input-valueClone,.textField-input-value{border:0;outline:0;line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);width:100%;padding:var(--component-textField-padding) var(--component-textField-affix-padding) var(--component-textField-padding) var(--component-textField-padding);background-color:transparent;color:var(--component-textField-color)}.textField-input-valueClone:is(textarea,div),.textField-input-value:is(textarea,div){max-height:var(--component-textField-maxHeight)}@supports not (height: 1dvh){.textField-input-valueClone:is(textarea,div),.textField-input-value:is(textarea,div){--component-textField-maxHeight: var(--component-textField-maxHeightFallback)}}.textField-input-valueClone::placeholder,.textField-input-value::placeholder{color:var(--component-textField-placeholder)}.textField-input-valueClone:is(textarea),.textField-input-value:is(textarea){resize:vertical;min-height:calc(2lh + var(--component-textField-padding) * 2)}.textField-input-valueClone:is(textarea):not([rows]),.textField-input-value:is(textarea):not([rows]){height:calc(3lh + var(--component-textField-padding) * 2)}.textField-input-valueClone:is(textarea)[rows=\"1\"],.textField-input-value:is(textarea)[rows=\"1\"]{min-height:calc(1lh + var(--component-textField-padding) * 2)}.textField-input-affix{display:inline-flex;align-items:center;gap:var(--pr-t-spacings-100);position:absolute;right:var(--pr-t-spacings-100);pointer-events:none}.textField-input-affix-icon{--icon-size: 1.5rem;color:var(--palettes-neutral-600);pointer-events:none}.textField-input-affix-clear{pointer-events:auto}.textField-prefix{display:flex;padding-left:var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);border-top-left-radius:var(--commons-borderRadius-M);border-bottom-left-radius:var(--commons-borderRadius-M)}.textField-prefix~.textField-input{border-top-left-radius:0;border-bottom-left-radius:0}.textField-suffix{display:flex;padding-right:var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);border-top-right-radius:var(--commons-borderRadius-M);border-bottom-right-radius:var(--commons-borderRadius-M);order:1;flex-shrink:0}.textField-suffix~.textField-input{border-top-right-radius:0;border-bottom-right-radius:0}.textField.mod-S{--component-textField-fontSize: var(--sizes-S-fontSize);--component-textField-lineHeight: var(--sizes-S-lineHeight);--component-textField-padding: var(--pr-t-spacings-75);--component-textField-affix-size: 1.5rem}.textField.mod-S .textField-input-affix-toggle{--icon-size: 1.25rem}.textField.mod-S .textField-input-affix-clear.clear,.textField.mod-S .textField-input-affix-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-S .textField-input-affix-icon{--icon-size: 1.25rem}.textField.mod-XS{--component-textField-fontSize: var(--sizes-XS-fontSize);--component-textField-lineHeight: var(--sizes-XS-lineHeight);--component-textField-padding: var(--pr-t-spacings-50)}.textField.mod-XS .textField-prefix,.textField.mod-XS .textField-suffix,.textField.mod-XS .textField-input-affix-icon{--icon-size: 1rem}.textField.mod-XS .textField-input-affix-clear.clear,.textField.mod-XS .textField-input-affix-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-valueAlignRight .textField-input-value{text-align:right}.textField.is-invalid,.textField:has(.textField-input-value[aria-invalid=true]){--component-textField-border: var(--palettes-error-400);--component-textField-background: var(--palettes-error-50);--component-textField-placeholder: var(--palettes-error-400)}.textField.is-invalid:hover,.textField:has(.textField-input-value[aria-invalid=true]):hover{--component-textField-border: var(--palettes-error-600)}.textField.is-disabled,.textField:has(.textField-input-value:disabled){--component-textField-border: var(--palettes-neutral-300);--component-textField-background: var(--commons-disabled-background);--component-textField-color: var(--palettes-neutral-700)}.textField.mod-autoResize .textField-input{display:grid;align-items:normal;min-width:0;scroll-margin-bottom:var(--component-textField-scrollMargin)}.textField.mod-autoResize .textField-input-valueClone,.textField.mod-autoResize .textField-input-value{white-space:pre-wrap;overflow-wrap:break-word;grid-area:1/1/2/2;resize:none;min-width:0;overflow:auto}.textField.mod-autoResize .textField-input-valueClone{visibility:hidden}.textField.mod-autoResize .textField-input-valueClone:after{content:\" \"}.skeleton{--components-skeleton-gradient-step-one: var(--palettes-neutral-50);--components-skeleton-gradient-step-two: var(--palettes-neutral-200);--components-skeleton-shape-height: 1.5rem;--components-skeleton-shape-width: 1.5rem;--components-skeleton-text-offset: var(--pr-t-spacings-75);--components-skeleton-text-width: 100%;--components-skeleton-text-clipPathRound: round var(--commons-borderRadius-L)}.skeleton-item{animation:skeletonFade var(--commons-animations-durations-fast) ease-in 1 forwards}@keyframes skeletonFade{0%{opacity:0}to{opacity:1}}.skeleton.mod-dark{--components-skeleton-gradient-step-one: var(--palettes-neutral-200);--components-skeleton-gradient-step-two: var(--palettes-neutral-500)}.skeleton.is-loading{animation:skeletonPulse 1.5s infinite ease-in-out}.skeleton.is-loading .skeleton-item{animation:skeletonBackground 1.5s infinite linear;background-image:linear-gradient(90deg,var(--components-skeleton-gradient-step-one, var(--palettes-neutral-50)),var(--components-skeleton-gradient-step-two, var(--palettes-neutral-200)),var(--components-skeleton-gradient-step-one, var(--palettes-neutral-50)));background-size:150% 100%;background-repeat:repeat-x;display:block}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) calc(100% - var(--components-skeleton-text-width, 100%)) calc(var(--components-skeleton-text-offset) - 1px) 0 var(--components-skeleton-text-clipPathRound));height:var(--sizes-M-lineHeight);width:100%}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXS{--components-skeleton-text-offset: .25rem;height:var(--sizes-XS-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textS{--components-skeleton-text-offset: .375rem;height:var(--sizes-S-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textL{--components-skeleton-text-offset: .375rem;height:var(--sizes-L-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXL{height:var(--sizes-XL-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXXL{--components-skeleton-text-offset: .5rem;height:var(--sizes-XXL-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h1,h1){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .5rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h2,h2){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h3,h3){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h4,h4){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h5,h5){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h6,h6){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .25rem}@keyframes skeletonBackground{0%{background-position:150% 50%}to{background-position:-150% 50%}}@keyframes skeletonPulse{0%{opacity:.9}50%{opacity:1}to{opacity:.9}}.skeleton.is-loading .skeleton-item.mod-dark{--components-skeleton-gradient-step-one: var(--palettes-neutral-200);--components-skeleton-gradient-step-two: var(--palettes-neutral-500)}.skeleton.is-loading .skeleton-item.mod-square{border-radius:var(--commons-borderRadius-M);height:var(--components-skeleton-shape-height);width:var(--components-skeleton-shape-width)}.skeleton.is-loading .skeleton-item.mod-circle{border-radius:var(--commons-borderRadius-full);height:var(--components-skeleton-shape-height);width:var(--components-skeleton-shape-width)}.skeleton.is-loading .skeleton-item.mod-XS{--components-skeleton-shape-height: .5rem;--components-skeleton-shape-width: .5rem}.skeleton.is-loading .skeleton-item.mod-S{--components-skeleton-shape-height: 1rem;--components-skeleton-shape-width: 1rem}.skeleton.is-loading .skeleton-item.mod-L{--components-skeleton-shape-height: 2rem;--components-skeleton-shape-width: 2rem}.skeleton.is-loading .skeleton-item.mod-XL{--components-skeleton-shape-height: 3rem;--components-skeleton-shape-width: 3rem}.skeleton.is-loading .skeleton-item.mod-XXL{--components-skeleton-shape-height: 4rem;--components-skeleton-shape-width: 4rem}.skeleton.is-loading .skeleton-item.mod-alignRight:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) 0 calc(var(--components-skeleton-text-offset) - 1px) calc(100% - var(--components-skeleton-text-width, 100%)) var(--components-skeleton-text-clipPathRound))}.skeleton.is-loading .skeleton-item.mod-alignCenter:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) calc(50% - var(--components-skeleton-text-width, 100%) / 2) calc(var(--components-skeleton-text-offset) - 1px) calc(50% - var(--components-skeleton-text-width, 100%) / 2) var(--components-skeleton-text-clipPathRound))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.1", type: SkeletonFieldComponent, isStandalone: true, selector: "lu-skeleton-field", inputs: { dark: ["dark", "dark", booleanAttribute] }, ngImport: i0, template: "<div class=\"form-field skeleton is-loading\" [class.mod-dark]=\"dark\" inert=\"inert\">\n\t<span class=\"skeleton-item\" style=\"--components-skeleton-text-width: 50%\"></span>\n\t<div class=\"textField\">\n\t\t<div class=\"textField-input\">\n\t\t\t<span class=\"textField-input-value\">\n\t\t\t\t<span class=\"skeleton-item\" style=\"--components-skeleton-text-width: 80%\"></span>\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".textField{--component-textField-lineHeight: var(--sizes-M-lineHeight);--component-textField-fontSize: var(--sizes-M-fontSize);--component-textField-placeholder: var(--palettes-neutral-400);--component-textField-background: var(--palettes-neutral-0);--component-textField-border: var(--palettes-neutral-300);--component-textField-color: var(--palettes-neutral-800);--component-textField-prefix-color: var(--palettes-neutral-600);--component-textField-padding: var(--pr-t-spacings-100);--component-textField-affix-padding: var(--component-textField-padding);--component-textField-affix-size: 1.75rem;--component-textField-scrollMargin: 88rem;--component-textField-maxHeight: 90dvh;--component-textField-maxHeightFallback: 90vh;display:flex;align-items:stretch;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);box-shadow:0 0 0 1px var(--component-textField-border)}.textField:hover{--component-textField-border: var(--palettes-neutral-400)}.textField:has(.textField-input-value:focus-visible){outline:2px solid var(--palettes-product-700);outline-offset:3px}.textField .textField-input-affix-toggle{pointer-events:auto;width:var(--component-textField-affix-size);height:var(--component-textField-affix-size);color:var(--palettes-neutral-600)}.textField-input{display:flex;align-items:center;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);position:relative}.textField-input:has(.textField-input-affix-icon){--component-textField-affix-padding: 2.5rem}.textField-input:has(.textField-input-affix-toggle){--component-textField-affix-padding: 3rem}.textField-input:has(.textField-input-affix-clear){--component-textField-affix-padding: 2rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-icon){--component-textField-affix-padding: 4rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-toggle){--component-textField-affix-padding: 4.5rem}.textField-input-valueClone,.textField-input-value{border:0;outline:0;line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);width:100%;padding:var(--component-textField-padding) var(--component-textField-affix-padding) var(--component-textField-padding) var(--component-textField-padding);background-color:transparent;color:var(--component-textField-color)}.textField-input-valueClone:is(textarea,div),.textField-input-value:is(textarea,div){max-height:var(--component-textField-maxHeight)}@supports not (height: 1dvh){.textField-input-valueClone:is(textarea,div),.textField-input-value:is(textarea,div){--component-textField-maxHeight: var(--component-textField-maxHeightFallback)}}.textField-input-valueClone::placeholder,.textField-input-value::placeholder{color:var(--component-textField-placeholder)}.textField-input-valueClone:is(textarea),.textField-input-value:is(textarea){resize:vertical;min-height:calc(2lh + var(--component-textField-padding) * 2)}.textField-input-valueClone:is(textarea):not([rows]),.textField-input-value:is(textarea):not([rows]){height:calc(3lh + var(--component-textField-padding) * 2)}.textField-input-valueClone:is(textarea)[rows=\"1\"],.textField-input-value:is(textarea)[rows=\"1\"]{min-height:calc(1lh + var(--component-textField-padding) * 2)}.textField-input-affix{display:inline-flex;align-items:center;gap:var(--pr-t-spacings-100);position:absolute;right:var(--pr-t-spacings-100);pointer-events:none}.textField-input-affix-icon{--icon-size: 1.5rem;color:var(--palettes-neutral-600);pointer-events:none}.textField-input-affix-clear{pointer-events:auto}.textField-prefix{display:flex;padding-left:var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);border-top-left-radius:var(--commons-borderRadius-M);border-bottom-left-radius:var(--commons-borderRadius-M);flex-shrink:0}.textField-prefix~.textField-input{border-top-left-radius:0;border-bottom-left-radius:0}.textField-suffix{display:flex;padding-right:var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);border-top-right-radius:var(--commons-borderRadius-M);border-bottom-right-radius:var(--commons-borderRadius-M);order:1;flex-shrink:0}.textField-suffix~.textField-input{border-top-right-radius:0;border-bottom-right-radius:0}.textField.mod-S{--component-textField-fontSize: var(--sizes-S-fontSize);--component-textField-lineHeight: var(--sizes-S-lineHeight);--component-textField-padding: var(--pr-t-spacings-75);--component-textField-affix-size: 1.5rem}.textField.mod-S .textField-input-affix-toggle{--icon-size: 1.25rem}.textField.mod-S .textField-input-affix-clear.clear,.textField.mod-S .textField-input-affix-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-S .textField-input-affix-icon{--icon-size: 1.25rem}.textField.mod-XS{--component-textField-fontSize: var(--sizes-XS-fontSize);--component-textField-lineHeight: var(--sizes-XS-lineHeight);--component-textField-padding: var(--pr-t-spacings-50)}.textField.mod-XS .textField-prefix,.textField.mod-XS .textField-suffix,.textField.mod-XS .textField-input-affix-icon{--icon-size: 1rem}.textField.mod-XS .textField-input-affix-clear.clear,.textField.mod-XS .textField-input-affix-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-valueAlignRight .textField-input-value{text-align:right}.textField.is-invalid,.textField:has(.textField-input-value[aria-invalid=true]){--component-textField-border: var(--palettes-error-400);--component-textField-background: var(--palettes-error-50);--component-textField-placeholder: var(--palettes-error-400)}.textField.is-invalid:hover,.textField:has(.textField-input-value[aria-invalid=true]):hover{--component-textField-border: var(--palettes-error-600)}.textField.is-disabled,.textField:has(.textField-input-value:disabled){--component-textField-border: var(--palettes-neutral-300);--component-textField-background: var(--commons-disabled-background);--component-textField-color: var(--palettes-neutral-700)}.textField.mod-autoResize .textField-input{display:grid;align-items:normal;min-width:0;scroll-margin-bottom:var(--component-textField-scrollMargin)}.textField.mod-autoResize .textField-input-valueClone,.textField.mod-autoResize .textField-input-value{white-space:pre-wrap;overflow-wrap:break-word;grid-area:1/1/2/2;resize:none;min-width:0;overflow:auto}.textField.mod-autoResize .textField-input-valueClone{visibility:hidden}.textField.mod-autoResize .textField-input-valueClone:after{content:\" \"}.skeleton{--components-skeleton-gradient-step-one: var(--palettes-neutral-50);--components-skeleton-gradient-step-two: var(--palettes-neutral-200);--components-skeleton-shape-height: 1.5rem;--components-skeleton-shape-width: 1.5rem;--components-skeleton-text-offset: var(--pr-t-spacings-75);--components-skeleton-text-width: 100%;--components-skeleton-text-clipPathRound: round var(--commons-borderRadius-L)}.skeleton-item{animation:skeletonFade var(--commons-animations-durations-fast) ease-in 1 forwards}@keyframes skeletonFade{0%{opacity:0}to{opacity:1}}.skeleton.mod-dark{--components-skeleton-gradient-step-one: var(--palettes-neutral-200);--components-skeleton-gradient-step-two: var(--palettes-neutral-500)}.skeleton.is-loading{animation:skeletonPulse 1.5s infinite ease-in-out}.skeleton.is-loading .skeleton-item{animation:skeletonBackground 1.5s infinite linear;background-image:linear-gradient(90deg,var(--components-skeleton-gradient-step-one, var(--palettes-neutral-50)),var(--components-skeleton-gradient-step-two, var(--palettes-neutral-200)),var(--components-skeleton-gradient-step-one, var(--palettes-neutral-50)));background-size:150% 100%;background-repeat:repeat-x;display:block}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) calc(100% - var(--components-skeleton-text-width, 100%)) calc(var(--components-skeleton-text-offset) - 1px) 0 var(--components-skeleton-text-clipPathRound));height:var(--sizes-M-lineHeight);width:100%}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXS{--components-skeleton-text-offset: .25rem;height:var(--sizes-XS-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textS{--components-skeleton-text-offset: .375rem;height:var(--sizes-S-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textL{--components-skeleton-text-offset: .375rem;height:var(--sizes-L-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXL{height:var(--sizes-XL-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXXL{--components-skeleton-text-offset: .5rem;height:var(--sizes-XXL-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h1,h1){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .5rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h2,h2){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h3,h3){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h4,h4){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h5,h5){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h6,h6){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .25rem}@keyframes skeletonBackground{0%{background-position:150% 50%}to{background-position:-150% 50%}}@keyframes skeletonPulse{0%{opacity:.9}50%{opacity:1}to{opacity:.9}}.skeleton.is-loading .skeleton-item.mod-dark{--components-skeleton-gradient-step-one: var(--palettes-neutral-200);--components-skeleton-gradient-step-two: var(--palettes-neutral-500)}.skeleton.is-loading .skeleton-item.mod-square{border-radius:var(--commons-borderRadius-M);height:var(--components-skeleton-shape-height);width:var(--components-skeleton-shape-width)}.skeleton.is-loading .skeleton-item.mod-circle{border-radius:var(--commons-borderRadius-full);height:var(--components-skeleton-shape-height);width:var(--components-skeleton-shape-width)}.skeleton.is-loading .skeleton-item.mod-XS{--components-skeleton-shape-height: .5rem;--components-skeleton-shape-width: .5rem}.skeleton.is-loading .skeleton-item.mod-S{--components-skeleton-shape-height: 1rem;--components-skeleton-shape-width: 1rem}.skeleton.is-loading .skeleton-item.mod-L{--components-skeleton-shape-height: 2rem;--components-skeleton-shape-width: 2rem}.skeleton.is-loading .skeleton-item.mod-XL{--components-skeleton-shape-height: 3rem;--components-skeleton-shape-width: 3rem}.skeleton.is-loading .skeleton-item.mod-XXL{--components-skeleton-shape-height: 4rem;--components-skeleton-shape-width: 4rem}.skeleton.is-loading .skeleton-item.mod-alignRight:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) 0 calc(var(--components-skeleton-text-offset) - 1px) calc(100% - var(--components-skeleton-text-width, 100%)) var(--components-skeleton-text-clipPathRound))}.skeleton.is-loading .skeleton-item.mod-alignCenter:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) calc(50% - var(--components-skeleton-text-width, 100%) / 2) calc(var(--components-skeleton-text-offset) - 1px) calc(50% - var(--components-skeleton-text-width, 100%) / 2) var(--components-skeleton-text-clipPathRound))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
9
|
}
|
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SkeletonFieldComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
|
-
args: [{ selector: 'lu-skeleton-field', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-field skeleton is-loading\" [class.mod-dark]=\"dark\" inert=\"inert\">\n\t<span class=\"skeleton-item\" style=\"--components-skeleton-text-width: 50%\"></span>\n\t<div class=\"textField\">\n\t\t<div class=\"textField-input\">\n\t\t\t<span class=\"textField-input-value\">\n\t\t\t\t<span class=\"skeleton-item\" style=\"--components-skeleton-text-width: 80%\"></span>\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".textField{--component-textField-lineHeight: var(--sizes-M-lineHeight);--component-textField-fontSize: var(--sizes-M-fontSize);--component-textField-placeholder: var(--palettes-neutral-400);--component-textField-background: var(--palettes-neutral-0);--component-textField-border: var(--palettes-neutral-300);--component-textField-color: var(--palettes-neutral-800);--component-textField-prefix-color: var(--palettes-neutral-600);--component-textField-padding: var(--pr-t-spacings-100);--component-textField-affix-padding: var(--component-textField-padding);--component-textField-affix-size: 1.75rem;--component-textField-scrollMargin: 88rem;--component-textField-maxHeight: 90dvh;--component-textField-maxHeightFallback: 90vh;display:flex;align-items:stretch;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);box-shadow:0 0 0 1px var(--component-textField-border)}.textField:hover{--component-textField-border: var(--palettes-neutral-400)}.textField:has(.textField-input-value:focus-visible){outline:2px solid var(--palettes-product-700);outline-offset:3px}.textField .textField-input-affix-toggle{pointer-events:auto;width:var(--component-textField-affix-size);height:var(--component-textField-affix-size);color:var(--palettes-neutral-600)}.textField-input{display:flex;align-items:center;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);position:relative}.textField-input:has(.textField-input-affix-icon){--component-textField-affix-padding: 2.5rem}.textField-input:has(.textField-input-affix-toggle){--component-textField-affix-padding: 3rem}.textField-input:has(.textField-input-affix-clear){--component-textField-affix-padding: 2rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-icon){--component-textField-affix-padding: 4rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-toggle){--component-textField-affix-padding: 4.5rem}.textField-input-valueClone,.textField-input-value{border:0;outline:0;line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);width:100%;padding:var(--component-textField-padding) var(--component-textField-affix-padding) var(--component-textField-padding) var(--component-textField-padding);background-color:transparent;color:var(--component-textField-color)}.textField-input-valueClone:is(textarea,div),.textField-input-value:is(textarea,div){max-height:var(--component-textField-maxHeight)}@supports not (height: 1dvh){.textField-input-valueClone:is(textarea,div),.textField-input-value:is(textarea,div){--component-textField-maxHeight: var(--component-textField-maxHeightFallback)}}.textField-input-valueClone::placeholder,.textField-input-value::placeholder{color:var(--component-textField-placeholder)}.textField-input-valueClone:is(textarea),.textField-input-value:is(textarea){resize:vertical;min-height:calc(2lh + var(--component-textField-padding) * 2)}.textField-input-valueClone:is(textarea):not([rows]),.textField-input-value:is(textarea):not([rows]){height:calc(3lh + var(--component-textField-padding) * 2)}.textField-input-valueClone:is(textarea)[rows=\"1\"],.textField-input-value:is(textarea)[rows=\"1\"]{min-height:calc(1lh + var(--component-textField-padding) * 2)}.textField-input-affix{display:inline-flex;align-items:center;gap:var(--pr-t-spacings-100);position:absolute;right:var(--pr-t-spacings-100);pointer-events:none}.textField-input-affix-icon{--icon-size: 1.5rem;color:var(--palettes-neutral-600);pointer-events:none}.textField-input-affix-clear{pointer-events:auto}.textField-prefix{display:flex;padding-left:var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);border-top-left-radius:var(--commons-borderRadius-M);border-bottom-left-radius:var(--commons-borderRadius-M)}.textField-prefix~.textField-input{border-top-left-radius:0;border-bottom-left-radius:0}.textField-suffix{display:flex;padding-right:var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);border-top-right-radius:var(--commons-borderRadius-M);border-bottom-right-radius:var(--commons-borderRadius-M);order:1;flex-shrink:0}.textField-suffix~.textField-input{border-top-right-radius:0;border-bottom-right-radius:0}.textField.mod-S{--component-textField-fontSize: var(--sizes-S-fontSize);--component-textField-lineHeight: var(--sizes-S-lineHeight);--component-textField-padding: var(--pr-t-spacings-75);--component-textField-affix-size: 1.5rem}.textField.mod-S .textField-input-affix-toggle{--icon-size: 1.25rem}.textField.mod-S .textField-input-affix-clear.clear,.textField.mod-S .textField-input-affix-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-S .textField-input-affix-icon{--icon-size: 1.25rem}.textField.mod-XS{--component-textField-fontSize: var(--sizes-XS-fontSize);--component-textField-lineHeight: var(--sizes-XS-lineHeight);--component-textField-padding: var(--pr-t-spacings-50)}.textField.mod-XS .textField-prefix,.textField.mod-XS .textField-suffix,.textField.mod-XS .textField-input-affix-icon{--icon-size: 1rem}.textField.mod-XS .textField-input-affix-clear.clear,.textField.mod-XS .textField-input-affix-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-valueAlignRight .textField-input-value{text-align:right}.textField.is-invalid,.textField:has(.textField-input-value[aria-invalid=true]){--component-textField-border: var(--palettes-error-400);--component-textField-background: var(--palettes-error-50);--component-textField-placeholder: var(--palettes-error-400)}.textField.is-invalid:hover,.textField:has(.textField-input-value[aria-invalid=true]):hover{--component-textField-border: var(--palettes-error-600)}.textField.is-disabled,.textField:has(.textField-input-value:disabled){--component-textField-border: var(--palettes-neutral-300);--component-textField-background: var(--commons-disabled-background);--component-textField-color: var(--palettes-neutral-700)}.textField.mod-autoResize .textField-input{display:grid;align-items:normal;min-width:0;scroll-margin-bottom:var(--component-textField-scrollMargin)}.textField.mod-autoResize .textField-input-valueClone,.textField.mod-autoResize .textField-input-value{white-space:pre-wrap;overflow-wrap:break-word;grid-area:1/1/2/2;resize:none;min-width:0;overflow:auto}.textField.mod-autoResize .textField-input-valueClone{visibility:hidden}.textField.mod-autoResize .textField-input-valueClone:after{content:\" \"}.skeleton{--components-skeleton-gradient-step-one: var(--palettes-neutral-50);--components-skeleton-gradient-step-two: var(--palettes-neutral-200);--components-skeleton-shape-height: 1.5rem;--components-skeleton-shape-width: 1.5rem;--components-skeleton-text-offset: var(--pr-t-spacings-75);--components-skeleton-text-width: 100%;--components-skeleton-text-clipPathRound: round var(--commons-borderRadius-L)}.skeleton-item{animation:skeletonFade var(--commons-animations-durations-fast) ease-in 1 forwards}@keyframes skeletonFade{0%{opacity:0}to{opacity:1}}.skeleton.mod-dark{--components-skeleton-gradient-step-one: var(--palettes-neutral-200);--components-skeleton-gradient-step-two: var(--palettes-neutral-500)}.skeleton.is-loading{animation:skeletonPulse 1.5s infinite ease-in-out}.skeleton.is-loading .skeleton-item{animation:skeletonBackground 1.5s infinite linear;background-image:linear-gradient(90deg,var(--components-skeleton-gradient-step-one, var(--palettes-neutral-50)),var(--components-skeleton-gradient-step-two, var(--palettes-neutral-200)),var(--components-skeleton-gradient-step-one, var(--palettes-neutral-50)));background-size:150% 100%;background-repeat:repeat-x;display:block}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) calc(100% - var(--components-skeleton-text-width, 100%)) calc(var(--components-skeleton-text-offset) - 1px) 0 var(--components-skeleton-text-clipPathRound));height:var(--sizes-M-lineHeight);width:100%}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXS{--components-skeleton-text-offset: .25rem;height:var(--sizes-XS-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textS{--components-skeleton-text-offset: .375rem;height:var(--sizes-S-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textL{--components-skeleton-text-offset: .375rem;height:var(--sizes-L-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXL{height:var(--sizes-XL-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXXL{--components-skeleton-text-offset: .5rem;height:var(--sizes-XXL-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h1,h1){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .5rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h2,h2){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h3,h3){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h4,h4){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h5,h5){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h6,h6){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .25rem}@keyframes skeletonBackground{0%{background-position:150% 50%}to{background-position:-150% 50%}}@keyframes skeletonPulse{0%{opacity:.9}50%{opacity:1}to{opacity:.9}}.skeleton.is-loading .skeleton-item.mod-dark{--components-skeleton-gradient-step-one: var(--palettes-neutral-200);--components-skeleton-gradient-step-two: var(--palettes-neutral-500)}.skeleton.is-loading .skeleton-item.mod-square{border-radius:var(--commons-borderRadius-M);height:var(--components-skeleton-shape-height);width:var(--components-skeleton-shape-width)}.skeleton.is-loading .skeleton-item.mod-circle{border-radius:var(--commons-borderRadius-full);height:var(--components-skeleton-shape-height);width:var(--components-skeleton-shape-width)}.skeleton.is-loading .skeleton-item.mod-XS{--components-skeleton-shape-height: .5rem;--components-skeleton-shape-width: .5rem}.skeleton.is-loading .skeleton-item.mod-S{--components-skeleton-shape-height: 1rem;--components-skeleton-shape-width: 1rem}.skeleton.is-loading .skeleton-item.mod-L{--components-skeleton-shape-height: 2rem;--components-skeleton-shape-width: 2rem}.skeleton.is-loading .skeleton-item.mod-XL{--components-skeleton-shape-height: 3rem;--components-skeleton-shape-width: 3rem}.skeleton.is-loading .skeleton-item.mod-XXL{--components-skeleton-shape-height: 4rem;--components-skeleton-shape-width: 4rem}.skeleton.is-loading .skeleton-item.mod-alignRight:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) 0 calc(var(--components-skeleton-text-offset) - 1px) calc(100% - var(--components-skeleton-text-width, 100%)) var(--components-skeleton-text-clipPathRound))}.skeleton.is-loading .skeleton-item.mod-alignCenter:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) calc(50% - var(--components-skeleton-text-width, 100%) / 2) calc(var(--components-skeleton-text-offset) - 1px) calc(50% - var(--components-skeleton-text-width, 100%) / 2) var(--components-skeleton-text-clipPathRound))}\n"] }]
|
|
12
|
+
args: [{ selector: 'lu-skeleton-field', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-field skeleton is-loading\" [class.mod-dark]=\"dark\" inert=\"inert\">\n\t<span class=\"skeleton-item\" style=\"--components-skeleton-text-width: 50%\"></span>\n\t<div class=\"textField\">\n\t\t<div class=\"textField-input\">\n\t\t\t<span class=\"textField-input-value\">\n\t\t\t\t<span class=\"skeleton-item\" style=\"--components-skeleton-text-width: 80%\"></span>\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".textField{--component-textField-lineHeight: var(--sizes-M-lineHeight);--component-textField-fontSize: var(--sizes-M-fontSize);--component-textField-placeholder: var(--palettes-neutral-400);--component-textField-background: var(--palettes-neutral-0);--component-textField-border: var(--palettes-neutral-300);--component-textField-color: var(--palettes-neutral-800);--component-textField-prefix-color: var(--palettes-neutral-600);--component-textField-padding: var(--pr-t-spacings-100);--component-textField-affix-padding: var(--component-textField-padding);--component-textField-affix-size: 1.75rem;--component-textField-scrollMargin: 88rem;--component-textField-maxHeight: 90dvh;--component-textField-maxHeightFallback: 90vh;display:flex;align-items:stretch;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);box-shadow:0 0 0 1px var(--component-textField-border)}.textField:hover{--component-textField-border: var(--palettes-neutral-400)}.textField:has(.textField-input-value:focus-visible){outline:2px solid var(--palettes-product-700);outline-offset:3px}.textField .textField-input-affix-toggle{pointer-events:auto;width:var(--component-textField-affix-size);height:var(--component-textField-affix-size);color:var(--palettes-neutral-600)}.textField-input{display:flex;align-items:center;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--component-textField-background);position:relative}.textField-input:has(.textField-input-affix-icon){--component-textField-affix-padding: 2.5rem}.textField-input:has(.textField-input-affix-toggle){--component-textField-affix-padding: 3rem}.textField-input:has(.textField-input-affix-clear){--component-textField-affix-padding: 2rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-icon){--component-textField-affix-padding: 4rem}.textField-input:has(.textField-input-affix-clear):has(.textField-input-affix-toggle){--component-textField-affix-padding: 4.5rem}.textField-input-valueClone,.textField-input-value{border:0;outline:0;line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);width:100%;padding:var(--component-textField-padding) var(--component-textField-affix-padding) var(--component-textField-padding) var(--component-textField-padding);background-color:transparent;color:var(--component-textField-color)}.textField-input-valueClone:is(textarea,div),.textField-input-value:is(textarea,div){max-height:var(--component-textField-maxHeight)}@supports not (height: 1dvh){.textField-input-valueClone:is(textarea,div),.textField-input-value:is(textarea,div){--component-textField-maxHeight: var(--component-textField-maxHeightFallback)}}.textField-input-valueClone::placeholder,.textField-input-value::placeholder{color:var(--component-textField-placeholder)}.textField-input-valueClone:is(textarea),.textField-input-value:is(textarea){resize:vertical;min-height:calc(2lh + var(--component-textField-padding) * 2)}.textField-input-valueClone:is(textarea):not([rows]),.textField-input-value:is(textarea):not([rows]){height:calc(3lh + var(--component-textField-padding) * 2)}.textField-input-valueClone:is(textarea)[rows=\"1\"],.textField-input-value:is(textarea)[rows=\"1\"]{min-height:calc(1lh + var(--component-textField-padding) * 2)}.textField-input-affix{display:inline-flex;align-items:center;gap:var(--pr-t-spacings-100);position:absolute;right:var(--pr-t-spacings-100);pointer-events:none}.textField-input-affix-icon{--icon-size: 1.5rem;color:var(--palettes-neutral-600);pointer-events:none}.textField-input-affix-clear{pointer-events:auto}.textField-prefix{display:flex;padding-left:var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);border-top-left-radius:var(--commons-borderRadius-M);border-bottom-left-radius:var(--commons-borderRadius-M);flex-shrink:0}.textField-prefix~.textField-input{border-top-left-radius:0;border-bottom-left-radius:0}.textField-suffix{display:flex;padding-right:var(--component-textField-padding);align-items:center;color:var(--component-textField-prefix-color);line-height:var(--component-textField-lineHeight);font-size:var(--component-textField-fontSize);border-top-right-radius:var(--commons-borderRadius-M);border-bottom-right-radius:var(--commons-borderRadius-M);order:1;flex-shrink:0}.textField-suffix~.textField-input{border-top-right-radius:0;border-bottom-right-radius:0}.textField.mod-S{--component-textField-fontSize: var(--sizes-S-fontSize);--component-textField-lineHeight: var(--sizes-S-lineHeight);--component-textField-padding: var(--pr-t-spacings-75);--component-textField-affix-size: 1.5rem}.textField.mod-S .textField-input-affix-toggle{--icon-size: 1.25rem}.textField.mod-S .textField-input-affix-clear.clear,.textField.mod-S .textField-input-affix-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-S .textField-input-affix-icon{--icon-size: 1.25rem}.textField.mod-XS{--component-textField-fontSize: var(--sizes-XS-fontSize);--component-textField-lineHeight: var(--sizes-XS-lineHeight);--component-textField-padding: var(--pr-t-spacings-50)}.textField.mod-XS .textField-prefix,.textField.mod-XS .textField-suffix,.textField.mod-XS .textField-input-affix-icon{--icon-size: 1rem}.textField.mod-XS .textField-input-affix-clear.clear,.textField.mod-XS .textField-input-affix-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.textField.mod-valueAlignRight .textField-input-value{text-align:right}.textField.is-invalid,.textField:has(.textField-input-value[aria-invalid=true]){--component-textField-border: var(--palettes-error-400);--component-textField-background: var(--palettes-error-50);--component-textField-placeholder: var(--palettes-error-400)}.textField.is-invalid:hover,.textField:has(.textField-input-value[aria-invalid=true]):hover{--component-textField-border: var(--palettes-error-600)}.textField.is-disabled,.textField:has(.textField-input-value:disabled){--component-textField-border: var(--palettes-neutral-300);--component-textField-background: var(--commons-disabled-background);--component-textField-color: var(--palettes-neutral-700)}.textField.mod-autoResize .textField-input{display:grid;align-items:normal;min-width:0;scroll-margin-bottom:var(--component-textField-scrollMargin)}.textField.mod-autoResize .textField-input-valueClone,.textField.mod-autoResize .textField-input-value{white-space:pre-wrap;overflow-wrap:break-word;grid-area:1/1/2/2;resize:none;min-width:0;overflow:auto}.textField.mod-autoResize .textField-input-valueClone{visibility:hidden}.textField.mod-autoResize .textField-input-valueClone:after{content:\" \"}.skeleton{--components-skeleton-gradient-step-one: var(--palettes-neutral-50);--components-skeleton-gradient-step-two: var(--palettes-neutral-200);--components-skeleton-shape-height: 1.5rem;--components-skeleton-shape-width: 1.5rem;--components-skeleton-text-offset: var(--pr-t-spacings-75);--components-skeleton-text-width: 100%;--components-skeleton-text-clipPathRound: round var(--commons-borderRadius-L)}.skeleton-item{animation:skeletonFade var(--commons-animations-durations-fast) ease-in 1 forwards}@keyframes skeletonFade{0%{opacity:0}to{opacity:1}}.skeleton.mod-dark{--components-skeleton-gradient-step-one: var(--palettes-neutral-200);--components-skeleton-gradient-step-two: var(--palettes-neutral-500)}.skeleton.is-loading{animation:skeletonPulse 1.5s infinite ease-in-out}.skeleton.is-loading .skeleton-item{animation:skeletonBackground 1.5s infinite linear;background-image:linear-gradient(90deg,var(--components-skeleton-gradient-step-one, var(--palettes-neutral-50)),var(--components-skeleton-gradient-step-two, var(--palettes-neutral-200)),var(--components-skeleton-gradient-step-one, var(--palettes-neutral-50)));background-size:150% 100%;background-repeat:repeat-x;display:block}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) calc(100% - var(--components-skeleton-text-width, 100%)) calc(var(--components-skeleton-text-offset) - 1px) 0 var(--components-skeleton-text-clipPathRound));height:var(--sizes-M-lineHeight);width:100%}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXS{--components-skeleton-text-offset: .25rem;height:var(--sizes-XS-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textS{--components-skeleton-text-offset: .375rem;height:var(--sizes-S-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textL{--components-skeleton-text-offset: .375rem;height:var(--sizes-L-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXL{height:var(--sizes-XL-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle).u-textXXL{--components-skeleton-text-offset: .5rem;height:var(--sizes-XXL-lineHeight)}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h1,h1){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .5rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h2,h2){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h3,h3){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h4,h4){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h5,h5){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .375rem}.skeleton.is-loading .skeleton-item:not(.mod-square,.mod-circle):is(.u-h6,h6){height:auto;line-height:var(--sizes-lineHeight);min-height:var(--sizes-lineHeight);--components-skeleton-text-offset: .25rem}@keyframes skeletonBackground{0%{background-position:150% 50%}to{background-position:-150% 50%}}@keyframes skeletonPulse{0%{opacity:.9}50%{opacity:1}to{opacity:.9}}.skeleton.is-loading .skeleton-item.mod-dark{--components-skeleton-gradient-step-one: var(--palettes-neutral-200);--components-skeleton-gradient-step-two: var(--palettes-neutral-500)}.skeleton.is-loading .skeleton-item.mod-square{border-radius:var(--commons-borderRadius-M);height:var(--components-skeleton-shape-height);width:var(--components-skeleton-shape-width)}.skeleton.is-loading .skeleton-item.mod-circle{border-radius:var(--commons-borderRadius-full);height:var(--components-skeleton-shape-height);width:var(--components-skeleton-shape-width)}.skeleton.is-loading .skeleton-item.mod-XS{--components-skeleton-shape-height: .5rem;--components-skeleton-shape-width: .5rem}.skeleton.is-loading .skeleton-item.mod-S{--components-skeleton-shape-height: 1rem;--components-skeleton-shape-width: 1rem}.skeleton.is-loading .skeleton-item.mod-L{--components-skeleton-shape-height: 2rem;--components-skeleton-shape-width: 2rem}.skeleton.is-loading .skeleton-item.mod-XL{--components-skeleton-shape-height: 3rem;--components-skeleton-shape-width: 3rem}.skeleton.is-loading .skeleton-item.mod-XXL{--components-skeleton-shape-height: 4rem;--components-skeleton-shape-width: 4rem}.skeleton.is-loading .skeleton-item.mod-alignRight:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) 0 calc(var(--components-skeleton-text-offset) - 1px) calc(100% - var(--components-skeleton-text-width, 100%)) var(--components-skeleton-text-clipPathRound))}.skeleton.is-loading .skeleton-item.mod-alignCenter:not(.mod-square,.mod-circle){clip-path:inset(calc(var(--components-skeleton-text-offset) + 1px) calc(50% - var(--components-skeleton-text-width, 100%) / 2) calc(var(--components-skeleton-text-offset) - 1px) calc(50% - var(--components-skeleton-text-width, 100%) / 2) var(--components-skeleton-text-clipPathRound))}\n"] }]
|
|
13
13
|
}], propDecorators: { dark: [{
|
|
14
14
|
type: Input,
|
|
15
15
|
args: [{ transform: booleanAttribute }]
|
|
@@ -40,7 +40,7 @@ export class LuTooltipTriggerDirective {
|
|
|
40
40
|
}
|
|
41
41
|
#generatedId;
|
|
42
42
|
get ariaDescribedBy() {
|
|
43
|
-
if (this.luTooltipDisabled() || this.luTooltipWhenEllipsis || this.luTooltipOnlyForDisplay) {
|
|
43
|
+
if (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay) {
|
|
44
44
|
return null;
|
|
45
45
|
}
|
|
46
46
|
return `${this.#generatedId}-panel`;
|
|
@@ -142,9 +142,12 @@ export class LuTooltipTriggerDirective {
|
|
|
142
142
|
if (this.luTooltip()) {
|
|
143
143
|
ref.instance.content = this.luTooltip;
|
|
144
144
|
}
|
|
145
|
-
else if (this.luTooltipWhenEllipsis) {
|
|
145
|
+
else if (this.luTooltipWhenEllipsis()) {
|
|
146
146
|
ref.instance.content = signal(this.#host.nativeElement.innerText);
|
|
147
147
|
}
|
|
148
|
+
else {
|
|
149
|
+
ref.instance.content = signal('');
|
|
150
|
+
}
|
|
148
151
|
ref.instance.id = this.ariaDescribedBy;
|
|
149
152
|
// On tooltip leave => trigger close
|
|
150
153
|
ref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.close$.next());
|
|
@@ -304,4 +307,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
304
307
|
type: HostBinding,
|
|
305
308
|
args: ['attr.aria-describedby']
|
|
306
309
|
}] } });
|
|
307
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3Rvb2x0aXAvdHJpZ2dlci90b29sdGlwLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0YsT0FBTyxFQUFnRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25NLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRU4sVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVqRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFNZixNQUFNLE9BQU8seUJBQXlCO0lBQ3JDLFFBQVEsQ0FBbUI7SUFFM0IsS0FBSyxDQUErQztJQUVwRCxTQUFTLENBQXFCO0lBQzlCLE1BQU0sQ0FBeUI7SUFFL0Is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UG9zaXRpb25TdHJhdGVneSwgSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsIE9yaWdpbkNvbm5lY3Rpb25Qb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbm5lY3Rpb25Qb3NpdGlvbiwgT3ZlcmxheVJlZiwgVmVydGljYWxDb25uZWN0aW9uUG9zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuXHRBZnRlckNvbnRlbnRJbml0LFxuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkRlc3Ryb3ksXG5cdFJlbmRlcmVyMixcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0bnVtYmVyQXR0cmlidXRlLFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEx1UG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL3BvcG92ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZSwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEx1VG9vbHRpcFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFuZWwnO1xuaW1wb3J0IHsgRWxsaXBzaXNSdWxlciB9IGZyb20gJy4vZWxsaXBzaXMucnVsZXInO1xuXG5sZXQgbmV4dElkID0gMDtcbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tsdVRvb2x0aXBdJyxcblx0ZXhwb3J0QXM6ICdsdVRvb2x0aXAnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMdVRvb2x0aXBUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblx0I292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cblx0I2hvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG5cdCNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXHQjcnVsZXIgPSBpbmplY3QoRWxsaXBzaXNSdWxlcik7XG5cblx0I2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0bHVUb29sdGlwID0gaW5wdXQ8c3RyaW5nIHwgU2FmZUh0bWw+KCk7XG5cblx0I29wZW5EZWxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMzAwKTtcblxuXHRASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuXHRzZXQgbHVUb29sdGlwRW50ZXJEZWxheShkZWxheTogbnVtYmVyKSB7XG5cdFx0dGhpcy4jb3BlbkRlbGF5JC5uZXh0KGRlbGF5KTtcblx0fVxuXG5cdCNjbG9zZURlbGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxMDApO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBMZWF2ZURlbGF5KGRlbGF5OiBudW1iZXIpIHtcblx0XHR0aGlzLiNjbG9zZURlbGF5JC5uZXh0KGRlbGF5KTtcblx0fVxuXG5cdGx1VG9vbHRpcERpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRsdVRvb2x0aXBPbmx5Rm9yRGlzcGxheSA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdGx1VG9vbHRpcFBvc2l0aW9uOiBMdVBvcG92ZXJQb3NpdGlvbiA9ICdhYm92ZSc7XG5cblx0bHVUb29sdGlwV2hlbkVsbGlwc2lzID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdHJlc2l6ZSQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcblx0XHRjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG5cdFx0XHRvYnNlcnZlci5uZXh0KCk7XG5cdFx0fSk7XG5cdFx0cmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cdFx0fTtcblx0fSk7XG5cblx0I2hhc0VsbGlwc2lzJCA9IGNvbWJpbmVMYXRlc3QoW1xuXHRcdHRvT2JzZXJ2YWJsZShcblx0XHRcdC8vIDEuIEdyb3VwIG5lY2Vzc2FyeSBpbnB1dHNcblx0XHRcdGNvbXB1dGVkKCgpID0+ICh7IHdoZW5FbGxpcHNpczogdGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMoKSwgZGlzYWJsZWQ6IHRoaXMubHVUb29sdGlwRGlzYWJsZWQoKSB9KSksXG5cdFx0KSxcblx0XHQvLyBSZXNlbmQgcmVzaXplIGV2ZW50cyB0byB0cmlnZ2VyIHRoZSBjaGVja1xuXHRcdHRoaXMucmVzaXplJC5waXBlKGRlYm91bmNlVGltZSgxNTApKSxcblx0XSkucGlwZShcblx0XHQvLyAyLiBLZWVwIG9ubHkgbmVjZXNzYXJ5IGlucHV0c1xuXHRcdGZpbHRlcigoW3sgd2hlbkVsbGlwc2lzLCBkaXNhYmxlZCB9XSkgPT4gIWRpc2FibGVkICYmIHdoZW5FbGxpcHNpcyksXG5cdFx0Ly8gMy4gQ2hlY2sgZm9yIGVsbGlwc2lzXG5cdFx0c3dpdGNoTWFwKCgpID0+IHRoaXMuI3J1bGVyLmhhc0VsbGlwc2lzKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCkpLFxuXHQpO1xuXG5cdCNoYXNFbGxpcHNpcyA9IHRvU2lnbmFsKHRoaXMuI2hhc0VsbGlwc2lzJCwgeyBpbml0aWFsVmFsdWU6IGZhbHNlIH0pO1xuXG5cdG9wZW4kID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRjbG9zZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuXHRvbk1vdXNlRW50ZXIoKSB7XG5cdFx0dGhpcy5vcGVuJC5uZXh0KCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcblx0b25Nb3VzZUxlYXZlKCkge1xuXHRcdHRoaXMuY2xvc2UkLm5leHQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcblx0b25Gb2N1cygpIHtcblx0XHRpZiAodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpICE9PSAndHJ1ZScpIHtcblx0XHRcdHRoaXMub3BlbiQubmV4dCgpO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuXHRvbkJsdXIoKSB7XG5cdFx0dGhpcy5jbG9zZSQubmV4dCgpO1xuXHR9XG5cblx0I2dlbmVyYXRlZElkID0gYCR7dGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKX0tdG9vbHRpcC0ke25leHRJZCsrfWA7XG5cblx0QEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcblx0X2lkOiBzdHJpbmc7XG5cblx0QEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKVxuXHRnZXQgYXJpYURlc2NyaWJlZEJ5KCkge1xuXHRcdGlmICh0aGlzLmx1VG9vbHRpcERpc2FibGVkKCkgfHwgdGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMgfHwgdGhpcy5sdVRvb2x0aXBPbmx5Rm9yRGlzcGxheSkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiBgJHt0aGlzLiNnZW5lcmF0ZWRJZH0tcGFuZWxgO1xuXHR9XG5cblx0b3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29tYmluZUxhdGVzdChbdGhpcy4jb3BlbkRlbGF5JCwgdGhpcy4jY2xvc2VEZWxheSRdKVxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdHN3aXRjaE1hcCgoW29wZW5EZWxheSwgY2xvc2VEZWxheV0pID0+IHtcblx0XHRcdFx0XHQvLyBXZSBvbmx5IGZpbHRlciBvcGVuIGV2ZW50cyBiZWNhdXNlIGV2ZW4gaWYgaXQncyBkaXNhYmxlZCB3aGlsZSBvcGVuZWQsXG5cdFx0XHRcdFx0Ly8gXHR3ZSB3YW50IHRoZSB0b29sdGlwIHRvIGJlIGFibGUgdG8gY2xvc2UgaXRzZWxmIG5vIG1hdHRlciB3aGF0XG5cdFx0XHRcdFx0Y29uc3Qgb3BlbkV2ZW50cyQgPSB0aGlzLm9wZW4kLnBpcGUoXG5cdFx0XHRcdFx0XHRmaWx0ZXIoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5sdVRvb2x0aXBEaXNhYmxlZCgpKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIElmIG5vdCBkaXNhYmxlZCwgbGV0J3MgY2hlY2sgZm9yIGVsbGlwc2lzIGlmIG5lZWRlZFxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMoKSkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLiNoYXNFbGxpcHNpcygpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIElmIGl0J3Mgbm90IGRpc2FibGVkIGFuZCBpcyBub3QgdHJpZ2dlcmVkIGJhc2VkIG9uIGVsbGlwc2lzLCBqdXN0IHJldHVybiB0cnVlXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRtYXAoKCkgPT4gJ29wZW4nKSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiBtZXJnZShvcGVuRXZlbnRzJCwgdGhpcy5jbG9zZSQucGlwZShtYXAoKCkgPT4gJ2Nsb3NlJykpKS5waXBlKFxuXHRcdFx0XHRcdFx0ZGVib3VuY2UoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aW1lcihldmVudCA9PT0gJ29wZW4nID8gb3BlbkRlbGF5IDogY2xvc2VEZWxheSk7XG5cdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoZXZlbnQpID0+IHtcblx0XHRcdFx0aWYgKGV2ZW50ID09PSAnb3BlbicpIHtcblx0XHRcdFx0XHR0aGlzLm9wZW5Ub29sdGlwKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZVRvb2x0aXAoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLmx1VG9vbHRpcERpc2FibGVkKCkgJiYgdGhpcy4jaGFzRWxsaXBzaXMoKSkge1xuXHRcdFx0XHR0aGlzLnNldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKDApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5zZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyhudWxsKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuY2xvc2VUb29sdGlwKCk7XG5cdH1cblxuXHRwcml2YXRlIG9wZW5Ub29sdGlwKCk6IHZvaWQge1xuXHRcdC8vIElmIHRvb2x0aXAgaXMgYWxyZWFkeSBvcGVuZWQsIGRvbid0IGRvIGFueXRoaW5nXG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBwb3NpdGlvbiA9IHRoaXMubGVnYWN5UG9zaXRpb25CdWlsZGVyKCk7XG5cdFx0dGhpcy5vdmVybGF5UmVmID0gdGhpcy4jb3ZlcmxheS5jcmVhdGUoe1xuXHRcdFx0cG9zaXRpb25TdHJhdGVneTogcG9zaXRpb24sXG5cdFx0XHRzY3JvbGxTdHJhdGVneTogdGhpcy4jb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG5cdFx0XHRkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuXHRcdH0pO1xuXHRcdGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoTHVUb29sdGlwUGFuZWxDb21wb25lbnQpO1xuXHRcdGNvbnN0IHJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblx0XHRwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXNcblx0XHRcdC5waXBlKFxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksXG5cdFx0XHRcdG1hcCgoeyBjb25uZWN0aW9uUGFpciB9KSA9PiBjb25uZWN0aW9uUGFpciksXG5cdFx0XHRcdHN0YXJ0V2l0aChwb3NpdGlvbi5wb3NpdGlvbnNbMF0pLFxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoeyBvdmVybGF5WCwgb3ZlcmxheVkgfSkgPT4ge1xuXHRcdFx0XHRyZWYuaW5zdGFuY2Uuc2V0UGFuZWxQb3NpdGlvbihvdmVybGF5WCwgb3ZlcmxheVkpO1xuXHRcdFx0fSk7XG5cdFx0aWYgKHRoaXMubHVUb29sdGlwKCkpIHtcblx0XHRcdHJlZi5pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5sdVRvb2x0aXA7XG5cdFx0fSBlbHNlIGlmICh0aGlzLmx1VG9vbHRpcFdoZW5FbGxpcHNpcykge1xuXHRcdFx0cmVmLmluc3RhbmNlLmNvbnRlbnQgPSBzaWduYWwodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCk7XG5cdFx0fVxuXHRcdHJlZi5pbnN0YW5jZS5pZCA9IHRoaXMuYXJpYURlc2NyaWJlZEJ5O1xuXHRcdC8vIE9uIHRvb2x0aXAgbGVhdmUgPT4gdHJpZ2dlciBjbG9zZVxuXHRcdHJlZi5pbnN0YW5jZS5tb3VzZUxlYXZlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZChyZWYuaW5zdGFuY2UuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlJC5uZXh0KCkpO1xuXHRcdC8vIE9uIHRvb2x0aXAgZW50ZXIgPT4gdHJpZ2dlciBvcGVuIHRvIGtlZXAgaXQgb3BlbmVkXG5cdFx0cmVmLmluc3RhbmNlLm1vdXNlRW50ZXIkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHJlZi5pbnN0YW5jZS5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3BlbiQubmV4dCgpKTtcblx0fVxuXG5cdHByaXZhdGUgY2xvc2VUb29sdGlwKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcblx0XHRcdHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcblx0XHRcdGRlbGV0ZSB0aGlzLm92ZXJsYXlSZWY7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyh0YWJpbmRleDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuXHRcdGlmICh0YWJpbmRleCA9PT0gbnVsbCkge1xuXHRcdFx0dGhpcy4jcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4Jyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGFnID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRjb25zdCBuYXRpdmVseUZvY3VzYWJsZVRhZ3MgPSBbJ2EnLCAnYnV0dG9uJywgJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddO1xuXHRcdGNvbnN0IGlzTmF0aXZlbHlGb2N1c2FibGVUYWcgPSBuYXRpdmVseUZvY3VzYWJsZVRhZ3MuaW5jbHVkZXModGFnKTtcblxuXHRcdGNvbnN0IGhhc0FUYWJJbmRleCA9IHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgIT09IG51bGw7XG5cblx0XHRpZiAoIWlzTmF0aXZlbHlGb2N1c2FibGVUYWcgJiYgIWhhc0FUYWJJbmRleCkge1xuXHRcdFx0dGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JywgdGFiaW5kZXgudG9TdHJpbmcoKSk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuX2lkID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmlkIHx8IHRoaXMuI2dlbmVyYXRlZElkO1xuXHR9XG5cblx0LyoqKioqKioqKioqKioqKioqKioqKipcblx0ICpcblx0ICogTEVHQUNZIFNUVUZGIFRPIEhBTkRMRSBFWElTVElORyBQT1NJVElPTlNcblx0ICpcblx0ICoqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdHByaXZhdGUgbGVnYWN5UG9zaXRpb25CdWlsZGVyKCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG5cdFx0Y29uc3QgY29ubmVjdGlvblBvc2l0aW9uOiBPcmlnaW5Db25uZWN0aW9uUG9zaXRpb24gPSB7XG5cdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxuXHRcdFx0b3JpZ2luWTogJ3RvcCcsXG5cdFx0fTtcblxuXHRcdC8vIFBvc2l0aW9uXG5cdFx0Y29uc3QgcG9zaXRpb24gPSB0aGlzLmx1VG9vbHRpcFBvc2l0aW9uO1xuXHRcdGlmIChwb3NpdGlvbiA9PT0gJ2Fib3ZlJykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkgPSAndG9wJztcblx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYmVsb3cnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSA9ICdib3R0b20nO1xuXHRcdH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdiZWZvcmUnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCA9ICdzdGFydCc7XG5cdFx0fSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ2FmdGVyJykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblggPSAnZW5kJztcblx0XHR9XG5cblx0XHQvLyBBbGlnbm1lbnRcblx0XHRpZiAocG9zaXRpb24gPT09ICdhYm92ZScgfHwgcG9zaXRpb24gPT09ICdiZWxvdycpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YID0gJ2NlbnRlcic7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZID0gJ2NlbnRlcic7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb3ZlcmxheVBvc2l0aW9uOiBPdmVybGF5Q29ubmVjdGlvblBvc2l0aW9uID0ge1xuXHRcdFx0b3ZlcmxheVg6ICdzdGFydCcsXG5cdFx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdFx0fTtcblxuXHRcdGlmIChwb3NpdGlvbiA9PT0gJ2Fib3ZlJyB8fCBwb3NpdGlvbiA9PT0gJ2JlbG93Jykge1xuXHRcdFx0b3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYID0gY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblg7XG5cdFx0XHRvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkgPSBwb3NpdGlvbiA9PT0gJ2Fib3ZlJyA/ICdib3R0b20nIDogJ3RvcCc7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCA9IHBvc2l0aW9uID09PSAnYmVmb3JlJyA/ICdlbmQnIDogJ3N0YXJ0Jztcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSA9IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLiNvdmVybGF5XG5cdFx0XHQucG9zaXRpb24oKVxuXHRcdFx0LmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy4jaG9zdClcblx0XHRcdC53aXRoUG9zaXRpb25zKFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YLFxuXHRcdFx0XHRcdG9yaWdpblk6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgsXG5cdFx0XHRcdFx0b3ZlcmxheVk6IG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YLFxuXHRcdFx0XHRcdG9yaWdpblk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkpLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgsXG5cdFx0XHRcdFx0b3ZlcmxheVk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IHRoaXMuaW52ZXJ0SG9yaXpvbnRhbFBvcyhjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCksXG5cdFx0XHRcdFx0b3JpZ2luWTogY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblksXG5cdFx0XHRcdFx0b3ZlcmxheVg6IHRoaXMuaW52ZXJ0SG9yaXpvbnRhbFBvcyhvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgpLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiB0aGlzLmludmVydEhvcml6b250YWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblgpLFxuXHRcdFx0XHRcdG9yaWdpblk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkpLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiB0aGlzLmludmVydEhvcml6b250YWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYKSxcblx0XHRcdFx0XHRvdmVybGF5WTogdGhpcy5pbnZlcnRWZXJ0aWNhbFBvcyhvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkpLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSk7XG5cdH1cblxuXHRwcml2YXRlIGludmVydFZlcnRpY2FsUG9zKHk6IFZlcnRpY2FsQ29ubmVjdGlvblBvcyk6IFZlcnRpY2FsQ29ubmVjdGlvblBvcyB7XG5cdFx0aWYgKHkgPT09ICd0b3AnKSB7XG5cdFx0XHRyZXR1cm4gJ2JvdHRvbSc7XG5cdFx0fSBlbHNlIGlmICh5ID09PSAnYm90dG9tJykge1xuXHRcdFx0cmV0dXJuICd0b3AnO1xuXHRcdH1cblx0XHRyZXR1cm4geTtcblx0fVxuXG5cdHByaXZhdGUgaW52ZXJ0SG9yaXpvbnRhbFBvcyh4OiBIb3Jpem9udGFsQ29ubmVjdGlvblBvcyk6IEhvcml6b250YWxDb25uZWN0aW9uUG9zIHtcblx0XHRpZiAoeCA9PT0gJ2VuZCcpIHtcblx0XHRcdHJldHVybiAnc3RhcnQnO1xuXHRcdH0gZWxzZSBpZiAoeCA9PT0gJ3N0YXJ0Jykge1xuXHRcdFx0cmV0dXJuICdlbmQnO1xuXHRcdH1cblx0XHRyZXR1cm4geDtcblx0fVxufVxuIl19
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3Rvb2x0aXAvdHJpZ2dlci90b29sdGlwLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0YsT0FBTyxFQUFnRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25NLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRU4sVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVqRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFPZixNQUFNLE9BQU8seUJBQXlCO0lBQ3JDLFFBQVEsQ0FBbUI7SUFFM0IsS0FBSyxDQUErQztJQUVwRCxTQUFTLENBQXFCO0lBQzlCLE1BQU0sQ0FBeUI7SUFFL0Is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QUMsU0FBUztnQkFJbEIsZUFBZTtzQkFEbEIsV0FBVzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIEhvcml6b250YWxDb25uZWN0aW9uUG9zLCBPcmlnaW5Db25uZWN0aW9uUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25uZWN0aW9uUG9zaXRpb24sIE92ZXJsYXlSZWYsIFZlcnRpY2FsQ29ubmVjdGlvblBvcyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0QmluZGluZyxcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRSZW5kZXJlcjIsXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG51bWJlckF0dHJpYnV0ZSxcblx0c2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBMdVBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9wb3BvdmVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2UsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2UsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMdVRvb2x0aXBQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3BhbmVsJztcbmltcG9ydCB7IEVsbGlwc2lzUnVsZXIgfSBmcm9tICcuL2VsbGlwc2lzLnJ1bGVyJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tsdVRvb2x0aXBdJyxcblx0ZXhwb3J0QXM6ICdsdVRvb2x0aXAnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMdVRvb2x0aXBUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblx0I292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cblx0I2hvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG5cdCNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXHQjcnVsZXIgPSBpbmplY3QoRWxsaXBzaXNSdWxlcik7XG5cblx0I2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0bHVUb29sdGlwID0gaW5wdXQ8c3RyaW5nIHwgU2FmZUh0bWw+KCk7XG5cblx0I29wZW5EZWxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMzAwKTtcblxuXHRASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuXHRzZXQgbHVUb29sdGlwRW50ZXJEZWxheShkZWxheTogbnVtYmVyKSB7XG5cdFx0dGhpcy4jb3BlbkRlbGF5JC5uZXh0KGRlbGF5KTtcblx0fVxuXG5cdCNjbG9zZURlbGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxMDApO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBMZWF2ZURlbGF5KGRlbGF5OiBudW1iZXIpIHtcblx0XHR0aGlzLiNjbG9zZURlbGF5JC5uZXh0KGRlbGF5KTtcblx0fVxuXG5cdGx1VG9vbHRpcERpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRsdVRvb2x0aXBPbmx5Rm9yRGlzcGxheSA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdGx1VG9vbHRpcFBvc2l0aW9uOiBMdVBvcG92ZXJQb3NpdGlvbiA9ICdhYm92ZSc7XG5cblx0bHVUb29sdGlwV2hlbkVsbGlwc2lzID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdHJlc2l6ZSQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcblx0XHRjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG5cdFx0XHRvYnNlcnZlci5uZXh0KCk7XG5cdFx0fSk7XG5cdFx0cmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cdFx0fTtcblx0fSk7XG5cblx0I2hhc0VsbGlwc2lzJCA9IGNvbWJpbmVMYXRlc3QoW1xuXHRcdHRvT2JzZXJ2YWJsZShcblx0XHRcdC8vIDEuIEdyb3VwIG5lY2Vzc2FyeSBpbnB1dHNcblx0XHRcdGNvbXB1dGVkKCgpID0+ICh7IHdoZW5FbGxpcHNpczogdGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMoKSwgZGlzYWJsZWQ6IHRoaXMubHVUb29sdGlwRGlzYWJsZWQoKSB9KSksXG5cdFx0KSxcblx0XHQvLyBSZXNlbmQgcmVzaXplIGV2ZW50cyB0byB0cmlnZ2VyIHRoZSBjaGVja1xuXHRcdHRoaXMucmVzaXplJC5waXBlKGRlYm91bmNlVGltZSgxNTApKSxcblx0XSkucGlwZShcblx0XHQvLyAyLiBLZWVwIG9ubHkgbmVjZXNzYXJ5IGlucHV0c1xuXHRcdGZpbHRlcigoW3sgd2hlbkVsbGlwc2lzLCBkaXNhYmxlZCB9XSkgPT4gIWRpc2FibGVkICYmIHdoZW5FbGxpcHNpcyksXG5cdFx0Ly8gMy4gQ2hlY2sgZm9yIGVsbGlwc2lzXG5cdFx0c3dpdGNoTWFwKCgpID0+IHRoaXMuI3J1bGVyLmhhc0VsbGlwc2lzKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCkpLFxuXHQpO1xuXG5cdCNoYXNFbGxpcHNpcyA9IHRvU2lnbmFsKHRoaXMuI2hhc0VsbGlwc2lzJCwgeyBpbml0aWFsVmFsdWU6IGZhbHNlIH0pO1xuXG5cdG9wZW4kID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRjbG9zZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuXHRvbk1vdXNlRW50ZXIoKSB7XG5cdFx0dGhpcy5vcGVuJC5uZXh0KCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcblx0b25Nb3VzZUxlYXZlKCkge1xuXHRcdHRoaXMuY2xvc2UkLm5leHQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcblx0b25Gb2N1cygpIHtcblx0XHRpZiAodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpICE9PSAndHJ1ZScpIHtcblx0XHRcdHRoaXMub3BlbiQubmV4dCgpO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuXHRvbkJsdXIoKSB7XG5cdFx0dGhpcy5jbG9zZSQubmV4dCgpO1xuXHR9XG5cblx0I2dlbmVyYXRlZElkID0gYCR7dGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKX0tdG9vbHRpcC0ke25leHRJZCsrfWA7XG5cblx0QEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcblx0X2lkOiBzdHJpbmc7XG5cblx0QEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKVxuXHRnZXQgYXJpYURlc2NyaWJlZEJ5KCkge1xuXHRcdGlmICh0aGlzLmx1VG9vbHRpcERpc2FibGVkKCkgfHwgdGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMoKSB8fCB0aGlzLmx1VG9vbHRpcE9ubHlGb3JEaXNwbGF5KSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0cmV0dXJuIGAke3RoaXMuI2dlbmVyYXRlZElkfS1wYW5lbGA7XG5cdH1cblxuXHRvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLiNvcGVuRGVsYXkkLCB0aGlzLiNjbG9zZURlbGF5JF0pXG5cdFx0XHQucGlwZShcblx0XHRcdFx0c3dpdGNoTWFwKChbb3BlbkRlbGF5LCBjbG9zZURlbGF5XSkgPT4ge1xuXHRcdFx0XHRcdC8vIFdlIG9ubHkgZmlsdGVyIG9wZW4gZXZlbnRzIGJlY2F1c2UgZXZlbiBpZiBpdCdzIGRpc2FibGVkIHdoaWxlIG9wZW5lZCxcblx0XHRcdFx0XHQvLyBcdHdlIHdhbnQgdGhlIHRvb2x0aXAgdG8gYmUgYWJsZSB0byBjbG9zZSBpdHNlbGYgbm8gbWF0dGVyIHdoYXRcblx0XHRcdFx0XHRjb25zdCBvcGVuRXZlbnRzJCA9IHRoaXMub3BlbiQucGlwZShcblx0XHRcdFx0XHRcdGZpbHRlcigoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmx1VG9vbHRpcERpc2FibGVkKCkpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Ly8gSWYgbm90IGRpc2FibGVkLCBsZXQncyBjaGVjayBmb3IgZWxsaXBzaXMgaWYgbmVlZGVkXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmx1VG9vbHRpcFdoZW5FbGxpcHNpcygpKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuI2hhc0VsbGlwc2lzKCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Ly8gSWYgaXQncyBub3QgZGlzYWJsZWQgYW5kIGlzIG5vdCB0cmlnZ2VyZWQgYmFzZWQgb24gZWxsaXBzaXMsIGp1c3QgcmV0dXJuIHRydWVcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRcdG1hcCgoKSA9PiAnb3BlbicpLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0cmV0dXJuIG1lcmdlKG9wZW5FdmVudHMkLCB0aGlzLmNsb3NlJC5waXBlKG1hcCgoKSA9PiAnY2xvc2UnKSkpLnBpcGUoXG5cdFx0XHRcdFx0XHRkZWJvdW5jZSgoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRpbWVyKGV2ZW50ID09PSAnb3BlbicgPyBvcGVuRGVsYXkgOiBjbG9zZURlbGF5KTtcblx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0pLFxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuXHRcdFx0XHRpZiAoZXZlbnQgPT09ICdvcGVuJykge1xuXHRcdFx0XHRcdHRoaXMub3BlblRvb2x0aXAoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmNsb3NlVG9vbHRpcCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMubHVUb29sdGlwRGlzYWJsZWQoKSAmJiB0aGlzLiNoYXNFbGxpcHNpcygpKSB7XG5cdFx0XHRcdHRoaXMuc2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXMoMCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnNldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKG51bGwpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5jbG9zZVRvb2x0aXAoKTtcblx0fVxuXG5cdHByaXZhdGUgb3BlblRvb2x0aXAoKTogdm9pZCB7XG5cdFx0Ly8gSWYgdG9vbHRpcCBpcyBhbHJlYWR5IG9wZW5lZCwgZG9uJ3QgZG8gYW55dGhpbmdcblx0XHRpZiAodGhpcy5vdmVybGF5UmVmKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHBvc2l0aW9uID0gdGhpcy5sZWdhY3lQb3NpdGlvbkJ1aWxkZXIoKTtcblx0XHR0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLiNvdmVybGF5LmNyZWF0ZSh7XG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5OiBwb3NpdGlvbixcblx0XHRcdHNjcm9sbFN0cmF0ZWd5OiB0aGlzLiNvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKSxcblx0XHRcdGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG5cdFx0fSk7XG5cdFx0Y29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChMdVRvb2x0aXBQYW5lbENvbXBvbmVudCk7XG5cdFx0Y29uc3QgcmVmID0gdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXHRcdHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlc1xuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSxcblx0XHRcdFx0bWFwKCh7IGNvbm5lY3Rpb25QYWlyIH0pID0+IGNvbm5lY3Rpb25QYWlyKSxcblx0XHRcdFx0c3RhcnRXaXRoKHBvc2l0aW9uLnBvc2l0aW9uc1swXSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCh7IG92ZXJsYXlYLCBvdmVybGF5WSB9KSA9PiB7XG5cdFx0XHRcdHJlZi5pbnN0YW5jZS5zZXRQYW5lbFBvc2l0aW9uKG92ZXJsYXlYLCBvdmVybGF5WSk7XG5cdFx0XHR9KTtcblx0XHRpZiAodGhpcy5sdVRvb2x0aXAoKSkge1xuXHRcdFx0cmVmLmluc3RhbmNlLmNvbnRlbnQgPSB0aGlzLmx1VG9vbHRpcDtcblx0XHR9IGVsc2UgaWYgKHRoaXMubHVUb29sdGlwV2hlbkVsbGlwc2lzKCkpIHtcblx0XHRcdHJlZi5pbnN0YW5jZS5jb250ZW50ID0gc2lnbmFsKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5pbm5lclRleHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZWYuaW5zdGFuY2UuY29udGVudCA9IHNpZ25hbCgnJyk7XG5cdFx0fVxuXHRcdHJlZi5pbnN0YW5jZS5pZCA9IHRoaXMuYXJpYURlc2NyaWJlZEJ5O1xuXHRcdC8vIE9uIHRvb2x0aXAgbGVhdmUgPT4gdHJpZ2dlciBjbG9zZVxuXHRcdHJlZi5pbnN0YW5jZS5tb3VzZUxlYXZlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZChyZWYuaW5zdGFuY2UuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlJC5uZXh0KCkpO1xuXHRcdC8vIE9uIHRvb2x0aXAgZW50ZXIgPT4gdHJpZ2dlciBvcGVuIHRvIGtlZXAgaXQgb3BlbmVkXG5cdFx0cmVmLmluc3RhbmNlLm1vdXNlRW50ZXIkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHJlZi5pbnN0YW5jZS5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3BlbiQubmV4dCgpKTtcblx0fVxuXG5cdHByaXZhdGUgY2xvc2VUb29sdGlwKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcblx0XHRcdHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcblx0XHRcdGRlbGV0ZSB0aGlzLm92ZXJsYXlSZWY7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyh0YWJpbmRleDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuXHRcdGlmICh0YWJpbmRleCA9PT0gbnVsbCkge1xuXHRcdFx0dGhpcy4jcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4Jyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGFnID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRjb25zdCBuYXRpdmVseUZvY3VzYWJsZVRhZ3MgPSBbJ2EnLCAnYnV0dG9uJywgJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddO1xuXHRcdGNvbnN0IGlzTmF0aXZlbHlGb2N1c2FibGVUYWcgPSBuYXRpdmVseUZvY3VzYWJsZVRhZ3MuaW5jbHVkZXModGFnKTtcblxuXHRcdGNvbnN0IGhhc0FUYWJJbmRleCA9IHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgIT09IG51bGw7XG5cblx0XHRpZiAoIWlzTmF0aXZlbHlGb2N1c2FibGVUYWcgJiYgIWhhc0FUYWJJbmRleCkge1xuXHRcdFx0dGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JywgdGFiaW5kZXgudG9TdHJpbmcoKSk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuX2lkID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmlkIHx8IHRoaXMuI2dlbmVyYXRlZElkO1xuXHR9XG5cblx0LyoqKioqKioqKioqKioqKioqKioqKipcblx0ICpcblx0ICogTEVHQUNZIFNUVUZGIFRPIEhBTkRMRSBFWElTVElORyBQT1NJVElPTlNcblx0ICpcblx0ICoqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdHByaXZhdGUgbGVnYWN5UG9zaXRpb25CdWlsZGVyKCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG5cdFx0Y29uc3QgY29ubmVjdGlvblBvc2l0aW9uOiBPcmlnaW5Db25uZWN0aW9uUG9zaXRpb24gPSB7XG5cdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxuXHRcdFx0b3JpZ2luWTogJ3RvcCcsXG5cdFx0fTtcblxuXHRcdC8vIFBvc2l0aW9uXG5cdFx0Y29uc3QgcG9zaXRpb24gPSB0aGlzLmx1VG9vbHRpcFBvc2l0aW9uO1xuXHRcdGlmIChwb3NpdGlvbiA9PT0gJ2Fib3ZlJykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkgPSAndG9wJztcblx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYmVsb3cnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSA9ICdib3R0b20nO1xuXHRcdH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdiZWZvcmUnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCA9ICdzdGFydCc7XG5cdFx0fSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ2FmdGVyJykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblggPSAnZW5kJztcblx0XHR9XG5cblx0XHQvLyBBbGlnbm1lbnRcblx0XHRpZiAocG9zaXRpb24gPT09ICdhYm92ZScgfHwgcG9zaXRpb24gPT09ICdiZWxvdycpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YID0gJ2NlbnRlcic7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZID0gJ2NlbnRlcic7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb3ZlcmxheVBvc2l0aW9uOiBPdmVybGF5Q29ubmVjdGlvblBvc2l0aW9uID0ge1xuXHRcdFx0b3ZlcmxheVg6ICdzdGFydCcsXG5cdFx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdFx0fTtcblxuXHRcdGlmIChwb3NpdGlvbiA9PT0gJ2Fib3ZlJyB8fCBwb3NpdGlvbiA9PT0gJ2JlbG93Jykge1xuXHRcdFx0b3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYID0gY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblg7XG5cdFx0XHRvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkgPSBwb3NpdGlvbiA9PT0gJ2Fib3ZlJyA/ICdib3R0b20nIDogJ3RvcCc7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCA9IHBvc2l0aW9uID09PSAnYmVmb3JlJyA/ICdlbmQnIDogJ3N0YXJ0Jztcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSA9IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLiNvdmVybGF5XG5cdFx0XHQucG9zaXRpb24oKVxuXHRcdFx0LmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy4jaG9zdClcblx0XHRcdC53aXRoUG9zaXRpb25zKFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YLFxuXHRcdFx0XHRcdG9yaWdpblk6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgsXG5cdFx0XHRcdFx0b3ZlcmxheVk6IG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YLFxuXHRcdFx0XHRcdG9yaWdpblk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkpLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgsXG5cdFx0XHRcdFx0b3ZlcmxheVk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IHRoaXMuaW52ZXJ0SG9yaXpvbnRhbFBvcyhjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCksXG5cdFx0XHRcdFx0b3JpZ2luWTogY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblksXG5cdFx0XHRcdFx0b3ZlcmxheVg6IHRoaXMuaW52ZXJ0SG9yaXpvbnRhbFBvcyhvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgpLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiB0aGlzLmludmVydEhvcml6b250YWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblgpLFxuXHRcdFx0XHRcdG9yaWdpblk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkpLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiB0aGlzLmludmVydEhvcml6b250YWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYKSxcblx0XHRcdFx0XHRvdmVybGF5WTogdGhpcy5pbnZlcnRWZXJ0aWNhbFBvcyhvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkpLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSk7XG5cdH1cblxuXHRwcml2YXRlIGludmVydFZlcnRpY2FsUG9zKHk6IFZlcnRpY2FsQ29ubmVjdGlvblBvcyk6IFZlcnRpY2FsQ29ubmVjdGlvblBvcyB7XG5cdFx0aWYgKHkgPT09ICd0b3AnKSB7XG5cdFx0XHRyZXR1cm4gJ2JvdHRvbSc7XG5cdFx0fSBlbHNlIGlmICh5ID09PSAnYm90dG9tJykge1xuXHRcdFx0cmV0dXJuICd0b3AnO1xuXHRcdH1cblx0XHRyZXR1cm4geTtcblx0fVxuXG5cdHByaXZhdGUgaW52ZXJ0SG9yaXpvbnRhbFBvcyh4OiBIb3Jpem9udGFsQ29ubmVjdGlvblBvcyk6IEhvcml6b250YWxDb25uZWN0aW9uUG9zIHtcblx0XHRpZiAoeCA9PT0gJ2VuZCcpIHtcblx0XHRcdHJldHVybiAnc3RhcnQnO1xuXHRcdH0gZWxzZSBpZiAoeCA9PT0gJ3N0YXJ0Jykge1xuXHRcdFx0cmV0dXJuICdlbmQnO1xuXHRcdH1cblx0XHRyZXR1cm4geDtcblx0fVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { inject, Directive, forwardRef, Input, model, input, computed } from '@angular/core';
|
|
4
|
-
import { ALuSelectInputComponent, CORE_SELECT_API_TOTAL_COUNT_PROVIDER,
|
|
4
|
+
import { ALuSelectInputComponent, CORE_SELECT_API_TOTAL_COUNT_PROVIDER, applySearchDelimiter } from '@lucca-front/ng/core-select';
|
|
5
5
|
import { Subject, scan, startWith, debounceTime, takeUntil, merge, map, distinctUntilChanged, combineLatest, pairwise, tap, switchMap, concatMap, takeWhile, of, catchError, ReplaySubject, BehaviorSubject, take } from 'rxjs';
|
|
6
6
|
import { toSignal, toObservable } from '@angular/core/rxjs-interop';
|
|
7
7
|
|
|
@@ -145,7 +145,7 @@ class LuCoreSelectApiV4Directive extends ALuCoreSelectApiDirective {
|
|
|
145
145
|
return {
|
|
146
146
|
...this.filters(),
|
|
147
147
|
...(sort ? { sort } : {}),
|
|
148
|
-
...(clue ? { search:
|
|
148
|
+
...(clue ? { search: applySearchDelimiter(clue, searchDelimiter) } : {}),
|
|
149
149
|
};
|
|
150
150
|
}));
|
|
151
151
|
this.totalCount$ = toObservable(computed(() => ({ url: this.apiV4(), filters: this.filters() }))).pipe(debounceTime(250), switchMap(({ url, filters }) => this.httpClient.get(url, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-core-select-api.mjs","sources":["../../../packages/ng/core-select/api/api.directive.ts","../../../packages/ng/core-select/api/api-v3.directive.ts","../../../packages/ng/core-select/api/api-v4.directive.ts","../../../packages/ng/core-select/api/lucca-front-ng-core-select-api.ts"],"sourcesContent":["import { Directive, inject, OnDestroy, OnInit } from '@angular/core';\nimport { ALuSelectInputComponent, LuOptionComparer } from '@lucca-front/ng/core-select';\nimport { catchError, combineLatest, concatMap, debounceTime, distinctUntilChanged, map, merge, Observable, of, pairwise, scan, startWith, Subject, switchMap, takeUntil, takeWhile, tap } from 'rxjs';\n\nexport const LU_SELECT_MAGIC_PAGE_SIZE = 20;\nexport const MAGIC_DEBOUNCE_DURATION = 250;\n\n@Directive()\nexport abstract class ALuCoreSelectApiDirective<TOption, TParams = Record<string, string | number | boolean>> implements OnDestroy, OnInit {\n\tprotected destroy$ = new Subject<void>();\n\tprotected pageSize = LU_SELECT_MAGIC_PAGE_SIZE;\n\tprotected debounceDuration = MAGIC_DEBOUNCE_DURATION;\n\n\tpublic select = inject<ALuSelectInputComponent<TOption, unknown>>(ALuSelectInputComponent);\n\n\tprotected page$ = this.select.nextPage.pipe(\n\t\tscan((page) => page + 1, 0),\n\t\tstartWith(0),\n\t);\n\n\tprotected clue$ = this.select.clueChange.pipe(debounceTime(this.debounceDuration), startWith(''));\n\n\t/**\n\t * Create an object that will be used as params for the api call\n\t */\n\tprotected abstract params$: Observable<TParams>;\n\n\t/**\n\t * Compare two options to know if they are the same. For example, compare by id or by JSON\n\t */\n\tprotected abstract optionComparer: LuOptionComparer<TOption>;\n\n\t/**\n\t * Return a key to identify the option in for-of loops\n\t */\n\tprotected abstract optionKey: (option: TOption) => unknown;\n\n\t/**\n\t * Return the options for the given params and page\n\t */\n\tprotected abstract getOptions(params: TParams, page: number): Observable<TOption[]>;\n\n\tpublic ngOnInit(): void {\n\t\tthis.select.optionComparer = this.optionComparer;\n\t\tthis.select.optionKey = this.optionKey;\n\n\t\tthis.buildOptions()\n\t\t\t.pipe(takeUntil(this.destroy$))\n\t\t\t.subscribe((options) => (this.select.options = options));\n\t}\n\n\tprotected buildOptions(): Observable<TOption[]> {\n\t\t// Prevent a double call to getOptions when the clue is changed while the panel is closed\n\t\tconst clueIsPendingDebounce$ = merge(this.select.clueChange.pipe(map(() => true)), this.clue$.pipe(map(() => false))).pipe(distinctUntilChanged());\n\t\tconst isOpen$ = combineLatest([this.select.isPanelOpen$, clueIsPendingDebounce$]).pipe(\n\t\t\tdebounceTime(0),\n\t\t\tstartWith([false, false]),\n\t\t\tpairwise(),\n\t\t\ttap(([[wasOpen], [isOpen, clueIsPendingDebounce]]) => {\n\t\t\t\t// Start the loader as soon as the panel is opened to avoid a short display of the \"no result\" message\n\t\t\t\tif (!wasOpen && isOpen && clueIsPendingDebounce) {\n\t\t\t\t\tthis.select.loading = true;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tmap(([[wasOpen], [isOpen, clueIsPendingDebounce]]) => (isOpen && !wasOpen ? !clueIsPendingDebounce : isOpen)),\n\t\t\tdistinctUntilChanged(),\n\t\t);\n\n\t\treturn combineLatest([this.params$, isOpen$]).pipe(\n\t\t\tswitchMap(([params, isOpened]) =>\n\t\t\t\tisOpened\n\t\t\t\t\t? this.page$.pipe(\n\t\t\t\t\t\t\tconcatMap((page) => this.getOptionsPage(params, page).pipe(map(({ items, isLastPage }) => ({ items, isLastPage, page })))),\n\t\t\t\t\t\t\ttakeWhile(({ isLastPage }) => !isLastPage, true),\n\t\t\t\t\t\t\tscan(\n\t\t\t\t\t\t\t\t(acc, { items, page }) => {\n\t\t\t\t\t\t\t\t\tacc[page] = items;\n\t\t\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{} as Record<number, TOption[]>,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tmap((pages) => Object.values(pages).flat()),\n\t\t\t\t\t\t)\n\t\t\t\t\t: of([] as TOption[]),\n\t\t\t),\n\t\t);\n\t}\n\n\tprotected getOptionsPage(params: TParams, page: number): Observable<{ items: TOption[]; isLastPage: boolean }> {\n\t\tthis.select.loading = true;\n\n\t\treturn this.getOptions(params, page).pipe(\n\t\t\tcatchError(() => of([] as TOption[])),\n\t\t\ttap(() => (this.select.loading = false)),\n\t\t\tmap((items) => ({ items, isLastPage: items.length < this.pageSize })),\n\t\t);\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tthis.destroy$.next();\n\t\tthis.destroy$.complete();\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, forwardRef, inject, Input } from '@angular/core';\nimport { ILuApiCollectionResponse, ILuApiItem } from '@lucca-front/ng/api';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider } from '@lucca-front/ng/core-select';\nimport { BehaviorSubject, combineLatest, debounceTime, map, Observable, ReplaySubject, switchMap, take } from 'rxjs';\nimport { ALuCoreSelectApiDirective } from './api.directive';\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[apiV3],lu-multi-select[apiV3]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectApiV3Directive),\n\t\t},\n\t],\n})\nexport class LuCoreSelectApiV3Directive<T extends ILuApiItem> extends ALuCoreSelectApiDirective<T> implements CoreSelectApiTotalCountProvider {\n\t@Input()\n\tpublic set apiV3(value: string) {\n\t\tthis.url$.next(value);\n\t}\n\n\t@Input()\n\tpublic set fields(value: string) {\n\t\tthis.fields$.next(value);\n\t}\n\n\t@Input()\n\tpublic set orderBy(value: string | null) {\n\t\tthis.orderBy$.next(value);\n\t}\n\n\t@Input()\n\tpublic set filters(value: Record<string, string | number | boolean>) {\n\t\tthis.filters$.next(value);\n\t}\n\n\tprotected url$ = new ReplaySubject<string>(1);\n\tprotected fields$ = new BehaviorSubject<string>('id,name');\n\tprotected orderBy$ = new BehaviorSubject<string | null>('name,asc');\n\tprotected filters$ = new BehaviorSubject<Record<string, string | number | boolean>>({});\n\n\tprotected httpClient = inject(HttpClient);\n\n\tprotected override params$ = combineLatest([this.fields$, this.filters$, this.orderBy$, this.clue$]).pipe(\n\t\tmap(([fields, filters, orderBy, clue]) => ({\n\t\t\t...filters,\n\t\t\t...(fields ? { fields } : {}),\n\t\t\t...(orderBy ? { orderBy } : {}),\n\t\t\t...(clue ? { name: `like,${clue}` } : {}),\n\t\t})),\n\t);\n\n\tpublic totalCount$ = combineLatest([this.url$, this.filters$]).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(([url, params]) =>\n\t\t\tthis.httpClient.get<{ data: { count: number } }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...params,\n\t\t\t\t\tfields: 'collection.count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res.data?.count ?? 0),\n\t);\n\n\tprotected override getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\treturn this.url$.pipe(\n\t\t\ttake(1),\n\t\t\tswitchMap((url) =>\n\t\t\t\tthis.httpClient.get<ILuApiCollectionResponse<T>>(url, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\t...params,\n\t\t\t\t\t\tpaging: `${page * this.pageSize},${this.pageSize}`,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t\tmap((res) => res.data.items),\n\t\t);\n\t}\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n\tprotected override optionKey = (option: T) => option.id;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { computed, Directive, forwardRef, inject, input, model } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { ILuApiItem } from '@lucca-front/ng/api';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, sanitizeClueFilter } from '@lucca-front/ng/core-select';\nimport { debounceTime, map, Observable, switchMap } from 'rxjs';\nimport { ALuCoreSelectApiDirective } from './api.directive';\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[apiV4],lu-multi-select[apiV4]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectApiV4Directive),\n\t\t},\n\t],\n})\nexport class LuCoreSelectApiV4Directive<T extends ILuApiItem> extends ALuCoreSelectApiDirective<T> implements CoreSelectApiTotalCountProvider {\n\tapiV4 = model.required<string>();\n\tsort = input<string | null>('+name');\n\tfilters = input<Record<string, string | number | boolean>>({});\n\tsearchDelimiter = input<string>(' ');\n\n\tprotected httpClient = inject(HttpClient);\n\n\tprotected clue = toSignal(this.clue$);\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst sort = this.sort();\n\t\t\tconst clue = this.clue();\n\t\t\tconst searchDelimiter = this.searchDelimiter();\n\t\t\treturn {\n\t\t\t\t...this.filters(),\n\t\t\t\t...(sort ? { sort } : {}),\n\t\t\t\t...(clue ? { search: sanitizeClueFilter(clue, searchDelimiter) } : {}),\n\t\t\t};\n\t\t}),\n\t);\n\n\tpublic totalCount$ = toObservable(computed(() => ({ url: this.apiV4(), filters: this.filters() }))).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(({ url, filters }) =>\n\t\t\tthis.httpClient.get<{ count: number }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...filters,\n\t\t\t\t\t['fields.root']: 'count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res?.count ?? 0),\n\t);\n\n\tprotected override getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\treturn this.httpClient\n\t\t\t.get<T[] | { items: T[] }>(this.apiV4(), {\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 optionComparer = (a: T, b: T) => a.id === b.id;\n\tprotected override optionKey = (option: T) => option.id;\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-api.mjs","sources":["../../../packages/ng/core-select/api/api.directive.ts","../../../packages/ng/core-select/api/api-v3.directive.ts","../../../packages/ng/core-select/api/api-v4.directive.ts","../../../packages/ng/core-select/api/lucca-front-ng-core-select-api.ts"],"sourcesContent":["import { Directive, inject, OnDestroy, OnInit } from '@angular/core';\nimport { ALuSelectInputComponent, LuOptionComparer } from '@lucca-front/ng/core-select';\nimport { catchError, combineLatest, concatMap, debounceTime, distinctUntilChanged, map, merge, Observable, of, pairwise, scan, startWith, Subject, switchMap, takeUntil, takeWhile, tap } from 'rxjs';\n\nexport const LU_SELECT_MAGIC_PAGE_SIZE = 20;\nexport const MAGIC_DEBOUNCE_DURATION = 250;\n\n@Directive()\nexport abstract class ALuCoreSelectApiDirective<TOption, TParams = Record<string, string | number | boolean>> implements OnDestroy, OnInit {\n\tprotected destroy$ = new Subject<void>();\n\tprotected pageSize = LU_SELECT_MAGIC_PAGE_SIZE;\n\tprotected debounceDuration = MAGIC_DEBOUNCE_DURATION;\n\n\tpublic select = inject<ALuSelectInputComponent<TOption, unknown>>(ALuSelectInputComponent);\n\n\tprotected page$ = this.select.nextPage.pipe(\n\t\tscan((page) => page + 1, 0),\n\t\tstartWith(0),\n\t);\n\n\tprotected clue$ = this.select.clueChange.pipe(debounceTime(this.debounceDuration), startWith(''));\n\n\t/**\n\t * Create an object that will be used as params for the api call\n\t */\n\tprotected abstract params$: Observable<TParams>;\n\n\t/**\n\t * Compare two options to know if they are the same. For example, compare by id or by JSON\n\t */\n\tprotected abstract optionComparer: LuOptionComparer<TOption>;\n\n\t/**\n\t * Return a key to identify the option in for-of loops\n\t */\n\tprotected abstract optionKey: (option: TOption) => unknown;\n\n\t/**\n\t * Return the options for the given params and page\n\t */\n\tprotected abstract getOptions(params: TParams, page: number): Observable<TOption[]>;\n\n\tpublic ngOnInit(): void {\n\t\tthis.select.optionComparer = this.optionComparer;\n\t\tthis.select.optionKey = this.optionKey;\n\n\t\tthis.buildOptions()\n\t\t\t.pipe(takeUntil(this.destroy$))\n\t\t\t.subscribe((options) => (this.select.options = options));\n\t}\n\n\tprotected buildOptions(): Observable<TOption[]> {\n\t\t// Prevent a double call to getOptions when the clue is changed while the panel is closed\n\t\tconst clueIsPendingDebounce$ = merge(this.select.clueChange.pipe(map(() => true)), this.clue$.pipe(map(() => false))).pipe(distinctUntilChanged());\n\t\tconst isOpen$ = combineLatest([this.select.isPanelOpen$, clueIsPendingDebounce$]).pipe(\n\t\t\tdebounceTime(0),\n\t\t\tstartWith([false, false]),\n\t\t\tpairwise(),\n\t\t\ttap(([[wasOpen], [isOpen, clueIsPendingDebounce]]) => {\n\t\t\t\t// Start the loader as soon as the panel is opened to avoid a short display of the \"no result\" message\n\t\t\t\tif (!wasOpen && isOpen && clueIsPendingDebounce) {\n\t\t\t\t\tthis.select.loading = true;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tmap(([[wasOpen], [isOpen, clueIsPendingDebounce]]) => (isOpen && !wasOpen ? !clueIsPendingDebounce : isOpen)),\n\t\t\tdistinctUntilChanged(),\n\t\t);\n\n\t\treturn combineLatest([this.params$, isOpen$]).pipe(\n\t\t\tswitchMap(([params, isOpened]) =>\n\t\t\t\tisOpened\n\t\t\t\t\t? this.page$.pipe(\n\t\t\t\t\t\t\tconcatMap((page) => this.getOptionsPage(params, page).pipe(map(({ items, isLastPage }) => ({ items, isLastPage, page })))),\n\t\t\t\t\t\t\ttakeWhile(({ isLastPage }) => !isLastPage, true),\n\t\t\t\t\t\t\tscan(\n\t\t\t\t\t\t\t\t(acc, { items, page }) => {\n\t\t\t\t\t\t\t\t\tacc[page] = items;\n\t\t\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{} as Record<number, TOption[]>,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tmap((pages) => Object.values(pages).flat()),\n\t\t\t\t\t\t)\n\t\t\t\t\t: of([] as TOption[]),\n\t\t\t),\n\t\t);\n\t}\n\n\tprotected getOptionsPage(params: TParams, page: number): Observable<{ items: TOption[]; isLastPage: boolean }> {\n\t\tthis.select.loading = true;\n\n\t\treturn this.getOptions(params, page).pipe(\n\t\t\tcatchError(() => of([] as TOption[])),\n\t\t\ttap(() => (this.select.loading = false)),\n\t\t\tmap((items) => ({ items, isLastPage: items.length < this.pageSize })),\n\t\t);\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tthis.destroy$.next();\n\t\tthis.destroy$.complete();\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, forwardRef, inject, Input } from '@angular/core';\nimport { ILuApiCollectionResponse, ILuApiItem } from '@lucca-front/ng/api';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider } from '@lucca-front/ng/core-select';\nimport { BehaviorSubject, combineLatest, debounceTime, map, Observable, ReplaySubject, switchMap, take } from 'rxjs';\nimport { ALuCoreSelectApiDirective } from './api.directive';\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[apiV3],lu-multi-select[apiV3]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectApiV3Directive),\n\t\t},\n\t],\n})\nexport class LuCoreSelectApiV3Directive<T extends ILuApiItem> extends ALuCoreSelectApiDirective<T> implements CoreSelectApiTotalCountProvider {\n\t@Input()\n\tpublic set apiV3(value: string) {\n\t\tthis.url$.next(value);\n\t}\n\n\t@Input()\n\tpublic set fields(value: string) {\n\t\tthis.fields$.next(value);\n\t}\n\n\t@Input()\n\tpublic set orderBy(value: string | null) {\n\t\tthis.orderBy$.next(value);\n\t}\n\n\t@Input()\n\tpublic set filters(value: Record<string, string | number | boolean>) {\n\t\tthis.filters$.next(value);\n\t}\n\n\tprotected url$ = new ReplaySubject<string>(1);\n\tprotected fields$ = new BehaviorSubject<string>('id,name');\n\tprotected orderBy$ = new BehaviorSubject<string | null>('name,asc');\n\tprotected filters$ = new BehaviorSubject<Record<string, string | number | boolean>>({});\n\n\tprotected httpClient = inject(HttpClient);\n\n\tprotected override params$ = combineLatest([this.fields$, this.filters$, this.orderBy$, this.clue$]).pipe(\n\t\tmap(([fields, filters, orderBy, clue]) => ({\n\t\t\t...filters,\n\t\t\t...(fields ? { fields } : {}),\n\t\t\t...(orderBy ? { orderBy } : {}),\n\t\t\t...(clue ? { name: `like,${clue}` } : {}),\n\t\t})),\n\t);\n\n\tpublic totalCount$ = combineLatest([this.url$, this.filters$]).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(([url, params]) =>\n\t\t\tthis.httpClient.get<{ data: { count: number } }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...params,\n\t\t\t\t\tfields: 'collection.count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res.data?.count ?? 0),\n\t);\n\n\tprotected override getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\treturn this.url$.pipe(\n\t\t\ttake(1),\n\t\t\tswitchMap((url) =>\n\t\t\t\tthis.httpClient.get<ILuApiCollectionResponse<T>>(url, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\t...params,\n\t\t\t\t\t\tpaging: `${page * this.pageSize},${this.pageSize}`,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t\tmap((res) => res.data.items),\n\t\t);\n\t}\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n\tprotected override optionKey = (option: T) => option.id;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { computed, Directive, forwardRef, inject, input, model } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { ILuApiItem } from '@lucca-front/ng/api';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, applySearchDelimiter } from '@lucca-front/ng/core-select';\nimport { debounceTime, map, Observable, switchMap } from 'rxjs';\nimport { ALuCoreSelectApiDirective } from './api.directive';\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[apiV4],lu-multi-select[apiV4]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectApiV4Directive),\n\t\t},\n\t],\n})\nexport class LuCoreSelectApiV4Directive<T extends ILuApiItem> extends ALuCoreSelectApiDirective<T> implements CoreSelectApiTotalCountProvider {\n\tapiV4 = model.required<string>();\n\tsort = input<string | null>('+name');\n\tfilters = input<Record<string, string | number | boolean>>({});\n\tsearchDelimiter = input<string>(' ');\n\n\tprotected httpClient = inject(HttpClient);\n\n\tprotected clue = toSignal(this.clue$);\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst sort = this.sort();\n\t\t\tconst clue = this.clue();\n\t\t\tconst searchDelimiter = this.searchDelimiter();\n\t\t\treturn {\n\t\t\t\t...this.filters(),\n\t\t\t\t...(sort ? { sort } : {}),\n\t\t\t\t...(clue ? { search: applySearchDelimiter(clue, searchDelimiter) } : {}),\n\t\t\t};\n\t\t}),\n\t);\n\n\tpublic totalCount$ = toObservable(computed(() => ({ url: this.apiV4(), filters: this.filters() }))).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(({ url, filters }) =>\n\t\t\tthis.httpClient.get<{ count: number }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...filters,\n\t\t\t\t\t['fields.root']: 'count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res?.count ?? 0),\n\t);\n\n\tprotected override getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\treturn this.httpClient\n\t\t\t.get<T[] | { items: T[] }>(this.apiV4(), {\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 optionComparer = (a: T, b: T) => a.id === b.id;\n\tprotected override optionKey = (option: T) => option.id;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { inject, Injectable, Component, DestroyRef, input, computed, forwardRef, Directive } from '@angular/core';
|
|
4
4
|
import { map, combineLatest, shareReplay, debounceTime, switchMap, filter } from 'rxjs';
|
|
5
5
|
import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
-
import {
|
|
6
|
+
import { applySearchDelimiter, CORE_SELECT_API_TOTAL_COUNT_PROVIDER } from '@lucca-front/ng/core-select';
|
|
7
7
|
import { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';
|
|
8
8
|
import { AsyncPipe } from '@angular/common';
|
|
9
9
|
import { PORTAL_CONTEXT } from '@lucca-front/ng/core';
|
|
@@ -64,7 +64,7 @@ class LuCoreSelectEstablishmentsDirective extends ALuCoreSelectApiDirective {
|
|
|
64
64
|
...this.filters(),
|
|
65
65
|
...(clue
|
|
66
66
|
? // When the clue is not empty, sort establishments by name
|
|
67
|
-
{ search:
|
|
67
|
+
{ search: applySearchDelimiter(clue, searchDelimiter), sort: 'name' }
|
|
68
68
|
: // When the clue is empty, establishments are grouped by legal unit, so sort them by legal unit name and then by name
|
|
69
69
|
{ sort: 'legalunit.name,name' }),
|
|
70
70
|
...(operationIds ? { operations: operationIds.join(',') } : {}),
|
|
@@ -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);\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, OnInit, computed, forwardRef, inject, input } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, sanitizeClueFilter } from '@lucca-front/ng/core-select';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { Observable, debounceTime, filter, map, switchMap } 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\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectEstablishmentsDirective),\n\t\t},\n\t],\n})\nexport class LuCoreSelectEstablishmentsDirective<T extends LuCoreSelectEstablishment = LuCoreSelectEstablishment>\n\textends ALuCoreSelectApiDirective<T>\n\timplements OnInit, CoreSelectApiTotalCountProvider\n{\n\t#groupingService = inject(EstablishmentGroupingService);\n\t#destroyRef = inject(DestroyRef);\n\n\tprotected httpClient = inject(HttpClient);\n\n\turl = input<string>('/organization/structure/api/establishments');\n\tfilters = input<Record<string, string | number | boolean> | null>(null);\n\toperationIds = input<number[] | null>(null);\n\tappInstanceId = input<number | null>(null);\n\tsearchDelimiter = input<string>(' ');\n\n\tprotected clue = toSignal(this.clue$);\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>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst operationIds = this.operationIds();\n\t\t\tconst appInstanceId = this.appInstanceId();\n\t\t\tconst clue = this.clue();\n\t\t\tconst searchDelimiter = this.searchDelimiter();\n\t\t\treturn {\n\t\t\t\t...this.filters(),\n\t\t\t\t...(clue\n\t\t\t\t\t? // When the clue is not empty, sort establishments by name\n\t\t\t\t\t\t{ search: sanitizeClueFilter(clue, searchDelimiter), sort: 'name' }\n\t\t\t\t\t: // When the clue is empty, establishments are grouped by legal unit, so sort them by legal unit name and then by name\n\t\t\t\t\t\t{ sort: 'legalunit.name,name' }),\n\t\t\t\t...(operationIds ? { operations: operationIds.join(',') } : {}),\n\t\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t\t};\n\t\t}),\n\t);\n\n\tpublic totalCount$ = toObservable(computed(() => ({ url: this.url(), filters: this.filters() }))).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(({ url, filters }) =>\n\t\t\tthis.httpClient.get<{ count: number }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...filters,\n\t\t\t\t\t['fields.root']: 'count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res?.count ?? 0),\n\t);\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n\tprotected override optionKey = (option: T) => option.id;\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, OnInit, computed, forwardRef, inject, input } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, applySearchDelimiter } from '@lucca-front/ng/core-select';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { Observable, debounceTime, filter, map, switchMap } 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\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectEstablishmentsDirective),\n\t\t},\n\t],\n})\nexport class LuCoreSelectEstablishmentsDirective<T extends LuCoreSelectEstablishment = LuCoreSelectEstablishment>\n\textends ALuCoreSelectApiDirective<T>\n\timplements OnInit, CoreSelectApiTotalCountProvider\n{\n\t#groupingService = inject(EstablishmentGroupingService);\n\t#destroyRef = inject(DestroyRef);\n\n\tprotected httpClient = inject(HttpClient);\n\n\turl = input<string>('/organization/structure/api/establishments');\n\tfilters = input<Record<string, string | number | boolean> | null>(null);\n\toperationIds = input<number[] | null>(null);\n\tappInstanceId = input<number | null>(null);\n\tsearchDelimiter = input<string>(' ');\n\n\tprotected clue = toSignal(this.clue$);\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>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst operationIds = this.operationIds();\n\t\t\tconst appInstanceId = this.appInstanceId();\n\t\t\tconst clue = this.clue();\n\t\t\tconst searchDelimiter = this.searchDelimiter();\n\t\t\treturn {\n\t\t\t\t...this.filters(),\n\t\t\t\t...(clue\n\t\t\t\t\t? // When the clue is not empty, sort establishments by name\n\t\t\t\t\t\t{ search: applySearchDelimiter(clue, searchDelimiter), sort: 'name' }\n\t\t\t\t\t: // When the clue is empty, establishments are grouped by legal unit, so sort them by legal unit name and then by name\n\t\t\t\t\t\t{ sort: 'legalunit.name,name' }),\n\t\t\t\t...(operationIds ? { operations: operationIds.join(',') } : {}),\n\t\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t\t};\n\t\t}),\n\t);\n\n\tpublic totalCount$ = toObservable(computed(() => ({ url: this.url(), filters: this.filters() }))).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(({ url, filters }) =>\n\t\t\tthis.httpClient.get<{ count: number }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...filters,\n\t\t\t\t\t['fields.root']: 'count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res?.count ?? 0),\n\t);\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n\tprotected override optionKey = (option: T) => option.id;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { HttpClient } from '@angular/common/http';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { inject, Component, input, computed, forwardRef, Directive } from '@angular/core';
|
|
4
4
|
import { toSignal, toObservable } from '@angular/core/rxjs-interop';
|
|
5
|
-
import {
|
|
5
|
+
import { applySearchDelimiter, CORE_SELECT_API_TOTAL_COUNT_PROVIDER } from '@lucca-front/ng/core-select';
|
|
6
6
|
import { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';
|
|
7
7
|
import { debounceTime, switchMap, map } from 'rxjs';
|
|
8
8
|
import { AsyncPipe } from '@angular/common';
|
|
@@ -40,7 +40,7 @@ class LuCoreSelectJobQualificationsDirective extends ALuCoreSelectApiDirective {
|
|
|
40
40
|
...filters,
|
|
41
41
|
...(clue
|
|
42
42
|
? {
|
|
43
|
-
search:
|
|
43
|
+
search: applySearchDelimiter(clue, this.searchDelimiter()),
|
|
44
44
|
sort: 'name',
|
|
45
45
|
}
|
|
46
46
|
: { sort: 'job.name,level.position' }),
|
|
@@ -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, OnInit, computed, forwardRef, inject, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider,
|
|
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, OnInit, computed, forwardRef, inject, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, applySearchDelimiter } from '@lucca-front/ng/core-select';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { Observable, debounceTime, map, switchMap } 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\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectJobQualificationsDirective),\n\t\t},\n\t],\n})\nexport class LuCoreSelectJobQualificationsDirective<T extends LuCoreSelectJobQualification = LuCoreSelectJobQualification>\n\textends ALuCoreSelectApiDirective<T>\n\timplements OnInit, CoreSelectApiTotalCountProvider\n{\n\tprotected httpClient = inject(HttpClient);\n\n\turl = input<string>('/organization/structure/api/job-qualifications');\n\tfilters = input<Record<string, string | number | boolean> | null>(null);\n\tsearchDelimiter = input<string>(' ');\n\n\tprotected clue = toSignal(this.clue$);\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>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst filters = this.filters();\n\t\t\tconst clue = this.clue();\n\t\t\treturn {\n\t\t\t\t...filters,\n\t\t\t\t...(clue\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tsearch: applySearchDelimiter(clue, this.searchDelimiter()),\n\t\t\t\t\t\t\tsort: 'name',\n\t\t\t\t\t\t}\n\t\t\t\t\t: { sort: 'job.name,level.position' }),\n\t\t\t};\n\t\t}),\n\t);\n\n\tpublic totalCount$ = toObservable(computed(() => ({ url: this.url(), filters: this.filters() }))).pipe(\n\t\tdebounceTime(250),\n\t\tswitchMap(({ url, filters }) =>\n\t\t\tthis.httpClient.get<{ count: number }>(url, {\n\t\t\t\tparams: {\n\t\t\t\t\t...filters,\n\t\t\t\t\t['fields.root']: 'count',\n\t\t\t\t},\n\t\t\t}),\n\t\t),\n\t\tmap((res) => res?.count ?? 0),\n\t);\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n\tprotected override optionKey = (option: T) => option.id;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;MAYa,mCAAmC,CAAA;AANhD,IAAA,WAAA,GAAA;AAOC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAA+D,cAAc,CAAC,CAAC,SAAS,CAAC;AACvG,KAAA;8GAFY,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,yFAFrC,CAAiC,+BAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAE/B,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAN/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,SAAS,CAAC;AACpB,oBAAA,QAAQ,EAAE,CAAiC,+BAAA,CAAA;AAC3C,iBAAA,CAAA;;;ACWK,MAAO,sCACZ,SAAQ,yBAA4B,CAAA;AAWpC,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,EAAE,CAAC;AATC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE1C,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAS,gDAAgD,CAAC,CAAC;AACtE,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAmD,IAAI,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAS,GAAG,CAAC,CAAC;AAE3B,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAuBnB,QAAA,IAAA,CAAA,OAAO,GAA0D,YAAY,CAC/F,QAAQ,CAAC,MAAK;AACb,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO;AACN,gBAAA,GAAG,OAAO;AACV,gBAAA,IAAI,IAAI;AACP,sBAAE;wBACA,MAAM,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1D,wBAAA,IAAI,EAAE,MAAM;AACZ,qBAAA;AACF,sBAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;aACtC,CAAC;SACF,CAAC,CACF,CAAC;QAEK,IAAW,CAAA,WAAA,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACrG,YAAY,CAAC,GAAG,CAAC,EACjB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAoB,GAAG,EAAE;AAC3C,YAAA,MAAM,EAAE;AACP,gBAAA,GAAG,OAAO;gBACV,CAAC,aAAa,GAAG,OAAO;AACxB,aAAA;AACD,SAAA,CAAC,CACF,EACD,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAC7B,CAAC;AAEiB,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,CAAI,EAAE,CAAI,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/C,IAAS,CAAA,SAAA,GAAG,CAAC,MAAS,KAAK,MAAM,CAAC,EAAE,CAAC;AAhDvD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG;YACtB,QAAQ,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE;AACnC,YAAA,OAAO,EAAE,mCAAmC;SAC5C,CAAC;KACF;IAEkB,UAAU,CAAC,MAAwD,EAAE,IAAY,EAAA;QACnG,OAAO,IAAI,CAAC,UAAU;AACpB,aAAA,GAAG,CAAuB,IAAI,CAAC,GAAG,EAAE,EAAE;AACtC,YAAA,MAAM,EAAE;AACP,gBAAA,GAAG,MAAM;gBACT,IAAI,EAAE,IAAI,GAAG,CAAC;gBACd,KAAK,EAAE,IAAI,CAAC,QAAQ;AACpB,aAAA;SACD,CAAC;AACD,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;KACpE;8GA/BW,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,EAPvC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wEAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sCAAsC,CAAC;AACrE,aAAA;AACD,SAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEW,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAblD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGV,oBAAA,QAAQ,EAAE,wEAAwE;AAClF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,SAAS,EAAE;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,oCAAoC;AAC7C,4BAAA,WAAW,EAAE,UAAU,CAAC,4CAA4C,CAAC;AACrE,yBAAA;AACD,qBAAA;AACD,iBAAA,CAAA;;;ACrBD;;AAEG;;;;"}
|