@lucca-front/ng 18.3.1 → 18.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core-select/input/select-input.component.d.ts +1 -1
- package/esm2022/callout/callout-disclosure/callout-disclosure.component.mjs +3 -3
- package/esm2022/core-select/input/select-input.component.mjs +8 -6
- package/esm2022/core-select/user/users.directive.mjs +6 -3
- package/esm2022/date2/date-input/date-input.component.mjs +24 -5
- package/esm2022/form-field/form-field.component.mjs +10 -9
- package/esm2022/forms/checkbox-input/checkbox-input.component.mjs +3 -3
- package/esm2022/forms/form-field-id.directive.mjs +4 -4
- package/esm2022/multi-select/displayer/displayer-input.directive.mjs +5 -5
- package/esm2022/multi-select/input/select-all/with-select-all.directive.mjs +9 -13
- package/esm2022/multi-select/input/select-input.component.mjs +8 -4
- package/esm2022/skeleton/skeleton-field/skeleton-field.component.mjs +2 -2
- package/esm2022/tooltip/panel/tooltip-panel.component.mjs +3 -3
- package/esm2022/tooltip/trigger/ellipsis.ruler.mjs +40 -18
- package/esm2022/tooltip/trigger/tooltip-trigger.directive.mjs +38 -37
- package/esm2022/user/tile/user-tile.component.mjs +2 -2
- package/fesm2022/lucca-front-ng-callout.mjs +2 -2
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +5 -2
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +5 -3
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +23 -4
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +9 -8
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +5 -5
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +18 -19
- package/fesm2022/lucca-front-ng-multi-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 +79 -56
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +2 -2
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/form-field/form-field.component.d.ts +1 -1
- package/multi-select/displayer/displayer-input.directive.d.ts +2 -2
- package/multi-select/input/select-input.component.d.ts +3 -1
- package/package.json +26 -26
- package/tooltip/panel/tooltip-panel.component.d.ts +2 -2
- package/tooltip/trigger/ellipsis.ruler.d.ts +9 -2
- package/tooltip/trigger/tooltip-trigger.directive.d.ts +4 -6
|
@@ -24,13 +24,13 @@ export class LuTooltipPanelComponent {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LuTooltipPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: LuTooltipPanelComponent, isStandalone: true, selector: "lu-tooltip-panel", host: { attributes: { "role": "tooltip" }, listeners: { "mouseenter": "mouseEnter()", "mouseleave": "mouseLeave()" }, properties: { "attr.id": "this.id" } }, ngImport: i0, template: "<div class=\"tooltip\" [ngClass]=\"contentPositionClasses\" [innerHtml]=\"content\"></div>\n", styles: [".tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--palettes-neutral-0);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding:var(--pr-t-spacings-50) var(--pr-t-spacings-100);max-width:var(--components-tooltip-max-width);border-radius:var(--commons-borderRadius-M);font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;width:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media (hover: hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: LuTooltipPanelComponent, isStandalone: true, selector: "lu-tooltip-panel", host: { attributes: { "role": "tooltip" }, listeners: { "mouseenter": "mouseEnter()", "mouseleave": "mouseLeave()" }, properties: { "attr.id": "this.id" } }, ngImport: i0, template: "<div class=\"tooltip\" [ngClass]=\"contentPositionClasses\" [innerHtml]=\"content()\"></div>\n", styles: [".tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--palettes-neutral-0);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding:var(--pr-t-spacings-50) var(--pr-t-spacings-100);max-width:var(--components-tooltip-max-width);border-radius:var(--commons-borderRadius-M);font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;width:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media (hover: hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
28
|
}
|
|
29
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LuTooltipPanelComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ selector: 'lu-tooltip-panel', standalone: true, host: {
|
|
32
32
|
role: 'tooltip',
|
|
33
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass], template: "<div class=\"tooltip\" [ngClass]=\"contentPositionClasses\" [innerHtml]=\"content\"></div>\n", styles: [".tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--palettes-neutral-0);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding:var(--pr-t-spacings-50) var(--pr-t-spacings-100);max-width:var(--components-tooltip-max-width);border-radius:var(--commons-borderRadius-M);font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;width:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media (hover: hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}\n"] }]
|
|
33
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass], template: "<div class=\"tooltip\" [ngClass]=\"contentPositionClasses\" [innerHtml]=\"content()\"></div>\n", styles: [".tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--palettes-neutral-0);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding:var(--pr-t-spacings-50) var(--pr-t-spacings-100);max-width:var(--components-tooltip-max-width);border-radius:var(--commons-borderRadius-M);font-size:var(--sizes-XS-fontSize);line-height:var(--sizes-XS-lineHeight);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;width:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media (hover: hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}\n"] }]
|
|
34
34
|
}], propDecorators: { mouseEnter: [{
|
|
35
35
|
type: HostListener,
|
|
36
36
|
args: ['mouseenter']
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
41
41
|
type: HostBinding,
|
|
42
42
|
args: ['attr.id']
|
|
43
43
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90b29sdGlwL3BhbmVsL3Rvb2x0aXAtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvdG9vbHRpcC9wYW5lbC90b29sdGlwLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTFILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWExQyxNQUFNLE9BQU8sdUJBQXVCO0lBWHBDO1FBWUMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoQyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPbEMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBWWxDLDJCQUFzQixHQUE0QixFQUFFLENBQUM7S0FVckQ7SUExQkEsVUFBVTtRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUtELFVBQVU7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFTRCxnQkFBZ0IsQ0FBQyxJQUE2QixFQUFFLElBQTJCO1FBQzFFLElBQUksQ0FBQyxzQkFBc0IsR0FBRztZQUM3QixXQUFXLEVBQUUsSUFBSSxLQUFLLEtBQUs7WUFDM0IsVUFBVSxFQUFFLElBQUksS0FBSyxPQUFPO1lBQzVCLFVBQVUsRUFBRSxJQUFJLEtBQUssUUFBUTtZQUM3QixVQUFVLEVBQUUsSUFBSSxLQUFLLEtBQUs7U0FDMUIsQ0FBQztJQUNILENBQUM7OEdBL0JXLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDBPQ2pCcEMsZ0dBQ0EsNG9ERGNXLE9BQU87OzJGQUVMLHVCQUF1QjtrQkFYbkMsU0FBUzsrQkFDQyxrQkFBa0IsY0FHaEIsSUFBSSxRQUNWO3dCQUNMLElBQUksRUFBRSxTQUFTO3FCQUNmLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsT0FBTyxDQUFDOzhCQVFsQixVQUFVO3NCQURULFlBQVk7dUJBQUMsWUFBWTtnQkFRMUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFlBQVk7Z0JBUTFCLEVBQUU7c0JBREQsV0FBVzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsIFZlcnRpY2FsQ29ubmVjdGlvblBvcyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2x1LXRvb2x0aXAtcGFuZWwnLFxuXHR0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3Rvb2x0aXAtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aG9zdDoge1xuXHRcdHJvbGU6ICd0b29sdGlwJyxcblx0fSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ0NsYXNzXSxcbn0pXG5leHBvcnQgY2xhc3MgTHVUb29sdGlwUGFuZWxDb21wb25lbnQge1xuXHRkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG5cdG1vdXNlRW50ZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcblx0bW91c2VFbnRlcigpOiB2b2lkIHtcblx0XHR0aGlzLm1vdXNlRW50ZXIkLm5leHQoKTtcblx0fVxuXG5cdG1vdXNlTGVhdmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcblx0bW91c2VMZWF2ZSgpOiB2b2lkIHtcblx0XHR0aGlzLm1vdXNlTGVhdmUkLm5leHQoKTtcblx0fVxuXG5cdGNvbnRlbnQ6IFNpZ25hbDxzdHJpbmcgfCBTYWZlSHRtbD47XG5cblx0QEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcblx0aWQ6IHN0cmluZztcblxuXHRjb250ZW50UG9zaXRpb25DbGFzc2VzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXG5cdHNldFBhbmVsUG9zaXRpb24ocG9zWDogSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsIHBvc1k6IFZlcnRpY2FsQ29ubmVjdGlvblBvcyk6IHZvaWQge1xuXHRcdHRoaXMuY29udGVudFBvc2l0aW9uQ2xhc3NlcyA9IHtcblx0XHRcdCdpcy1iZWZvcmUnOiBwb3NYID09PSAnZW5kJyxcblx0XHRcdCdpcy1hZnRlcic6IHBvc1ggPT09ICdzdGFydCcsXG5cdFx0XHQnaXMtYWJvdmUnOiBwb3NZID09PSAnYm90dG9tJyxcblx0XHRcdCdpcy1iZWxvdyc6IHBvc1kgPT09ICd0b3AnLFxuXHRcdH07XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b29sdGlwXCIgW25nQ2xhc3NdPVwiY29udGVudFBvc2l0aW9uQ2xhc3Nlc1wiIFtpbm5lckh0bWxdPVwiY29udGVudCgpXCI+PC9kaXY+XG4iXX0=
|
|
@@ -5,13 +5,9 @@ export class EllipsisRuler {
|
|
|
5
5
|
#document;
|
|
6
6
|
constructor() {
|
|
7
7
|
this.#document = inject(DOCUMENT);
|
|
8
|
-
this.elementCloned = this.#document.createElement('div');
|
|
9
8
|
this.parentMasked = this.#document.createElement('div');
|
|
10
9
|
this.parentMasked.classList.add('u-mask');
|
|
11
10
|
this.parentMasked.setAttribute('aria-hidden', 'true');
|
|
12
|
-
this.elementCloned.style.width = 'fit-content';
|
|
13
|
-
this.elementCloned.style.whiteSpace = 'nowrap';
|
|
14
|
-
this.parentMasked.appendChild(this.elementCloned);
|
|
15
11
|
this.#document.body.appendChild(this.parentMasked);
|
|
16
12
|
}
|
|
17
13
|
/**
|
|
@@ -23,31 +19,57 @@ export class EllipsisRuler {
|
|
|
23
19
|
*
|
|
24
20
|
* So we duplicate the properties we're interested in on the element to be tested to calculate its ideal size,
|
|
25
21
|
* which we then compare with its current size.
|
|
22
|
+
*
|
|
23
|
+
* To avoid doing multiple reflow per check, we wait for the next microtask on each key step of the process:
|
|
24
|
+
* - After computing element style
|
|
25
|
+
* - After cloning the element and appending it to the DOM
|
|
26
|
+
* - After computing the width of the cloned element
|
|
27
|
+
* - After removing the cloned element from the DOM
|
|
28
|
+
*
|
|
29
|
+
* This way, we have 2 reflows per check, no matter how many elements are checked in a row.
|
|
26
30
|
*/
|
|
27
|
-
hasEllipsis(element) {
|
|
28
|
-
const elementStyle =
|
|
31
|
+
async hasEllipsis(element) {
|
|
32
|
+
const elementStyle = getComputedStyle(element);
|
|
29
33
|
if (elementStyle.textOverflow !== 'ellipsis') {
|
|
30
34
|
return false;
|
|
31
35
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
const { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle } = elementStyle;
|
|
37
|
+
const fontSize = (Number(elementStyle.fontSize.replace('px', '')) / Number(getComputedStyle(document.body).fontSize.replace('px', ''))).toString() + 'rem';
|
|
38
|
+
// When multiple elements are checked in a row, we wait for the next microtask to before cloning the element
|
|
39
|
+
// to avoid the browser to reflow the page for each tooltip
|
|
40
|
+
await Promise.resolve();
|
|
41
|
+
const elementCloned = this.#document.createElement('div');
|
|
42
|
+
Object.assign(elementCloned.style, {
|
|
43
|
+
width: 'fit-content',
|
|
44
|
+
whiteSpace: 'nowrap',
|
|
45
|
+
position: 'absolute',
|
|
46
|
+
visibility: 'hidden',
|
|
47
|
+
padding,
|
|
48
|
+
borderWidth,
|
|
49
|
+
borderStyle,
|
|
50
|
+
boxSizing,
|
|
51
|
+
fontFamily,
|
|
52
|
+
fontWeight,
|
|
53
|
+
fontStyle,
|
|
54
|
+
fontSize,
|
|
41
55
|
});
|
|
42
|
-
this.elementCloned
|
|
56
|
+
this.parentMasked.appendChild(elementCloned);
|
|
57
|
+
elementCloned.innerHTML = element.innerHTML;
|
|
58
|
+
// To avoid multiple reflows, we wait for the next microtask before calculating the width
|
|
59
|
+
await Promise.resolve();
|
|
43
60
|
try {
|
|
44
|
-
const elementClonedWidth =
|
|
61
|
+
const elementClonedWidth = elementCloned.getBoundingClientRect().width;
|
|
45
62
|
const elementWidth = element.getBoundingClientRect().width;
|
|
46
63
|
return elementClonedWidth > elementWidth;
|
|
47
64
|
}
|
|
48
65
|
catch (e) {
|
|
49
66
|
return false;
|
|
50
67
|
}
|
|
68
|
+
finally {
|
|
69
|
+
// To avoid multiple reflows, we wait for the next microtask before removing the cloned element
|
|
70
|
+
await Promise.resolve();
|
|
71
|
+
this.parentMasked.removeChild(elementCloned);
|
|
72
|
+
}
|
|
51
73
|
}
|
|
52
74
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EllipsisRuler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
53
75
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: EllipsisRuler, providedIn: 'root' }); }
|
|
@@ -56,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
56
78
|
type: Injectable,
|
|
57
79
|
args: [{ providedIn: 'root' }]
|
|
58
80
|
}], ctorParameters: () => [] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMucnVsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90b29sdGlwL3RyaWdnZXIvZWxsaXBzaXMucnVsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRCxNQUFNLE9BQU8sYUFBYTtJQUN6QixTQUFTLENBQW9CO0lBRzdCO1FBSEEsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQixpQkFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRzNELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFvQjtRQUNyQyxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvQyxJQUFJLFlBQVksQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDOUMsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLFlBQVksQ0FBQztRQUV6RyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFM0osNEdBQTRHO1FBQzVHLDJEQUEyRDtRQUMzRCxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUV4QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRCxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDbEMsS0FBSyxFQUFFLGFBQWE7WUFDcEIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsT0FBTztZQUNQLFdBQVc7WUFDWCxXQUFXO1lBQ1gsU0FBUztZQUNULFVBQVU7WUFDVixVQUFVO1lBQ1YsU0FBUztZQUNULFFBQVE7U0FDUixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU3QyxhQUFhLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFNUMseUZBQXlGO1FBQ3pGLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQztZQUNKLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3ZFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUUzRCxPQUFPLGtCQUFrQixHQUFHLFlBQVksQ0FBQztRQUMxQyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNaLE9BQU8sS0FBSyxDQUFDO1FBQ2QsQ0FBQztnQkFBUyxDQUFDO1lBQ1YsK0ZBQStGO1lBQy9GLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDRixDQUFDOzhHQS9FVyxhQUFhO2tIQUFiLGFBQWEsY0FEQSxNQUFNOzsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBFbGxpcHNpc1J1bGVyIHtcblx0I2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblx0cmVhZG9ubHkgcGFyZW50TWFza2VkID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5wYXJlbnRNYXNrZWQuY2xhc3NMaXN0LmFkZCgndS1tYXNrJyk7XG5cdFx0dGhpcy5wYXJlbnRNYXNrZWQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG5cdFx0dGhpcy4jZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLnBhcmVudE1hc2tlZCk7XG5cdH1cblxuXHQvKipcblx0ICogSGFja3kgYWYgYnV0IGxldCdzIGV4cGxhaW4gZXZlcnl0aGluZ1xuXHQgKiBUaGlzIG1ldGhvZCBjaGVja3MgZm9yIGVsbGlwc2lzIGJ5IGNsb25pbmcgdGhlIG5vZGUgYW5kIGNoZWNraW5nIGl0cyB3aWR0aCBhZ2FpbnN0IG9yaWdpbmFsIGVsZW1lbnQuXG5cdCAqXG5cdCAqIFdlIHVzZWQgdG8gZG8gdGhpcyB1c2luZyBzY3JvbGxXaWR0aCBidXQgdGhlIHRoaW5nIGlzLCBpdCdzIGEgcm91bmRlZCB2YWx1ZS4gU29tZXRpbWVzLFxuXHQgKiB5b3UnZCBnZXQgdHJ1ZSB3aGlsZSBpdCBzaG91bGQgYmUgZmFsc2UgYW5kIHZpY2UtdmVyc2EsIGJlY2F1c2Ugb2Ygcm91bmRpbmcuXG5cdCAqXG5cdCAqIFNvIHdlIGR1cGxpY2F0ZSB0aGUgcHJvcGVydGllcyB3ZSdyZSBpbnRlcmVzdGVkIGluIG9uIHRoZSBlbGVtZW50IHRvIGJlIHRlc3RlZCB0byBjYWxjdWxhdGUgaXRzIGlkZWFsIHNpemUsXG5cdCAqIHdoaWNoIHdlIHRoZW4gY29tcGFyZSB3aXRoIGl0cyBjdXJyZW50IHNpemUuXG5cdCAqXG5cdCAqIFRvIGF2b2lkIGRvaW5nIG11bHRpcGxlIHJlZmxvdyBwZXIgY2hlY2ssIHdlIHdhaXQgZm9yIHRoZSBuZXh0IG1pY3JvdGFzayBvbiBlYWNoIGtleSBzdGVwIG9mIHRoZSBwcm9jZXNzOlxuXHQgKiAtIEFmdGVyIGNvbXB1dGluZyBlbGVtZW50IHN0eWxlXG5cdCAqIC0gQWZ0ZXIgY2xvbmluZyB0aGUgZWxlbWVudCBhbmQgYXBwZW5kaW5nIGl0IHRvIHRoZSBET01cblx0ICogLSBBZnRlciBjb21wdXRpbmcgdGhlIHdpZHRoIG9mIHRoZSBjbG9uZWQgZWxlbWVudFxuXHQgKiAtIEFmdGVyIHJlbW92aW5nIHRoZSBjbG9uZWQgZWxlbWVudCBmcm9tIHRoZSBET01cblx0ICpcblx0ICogVGhpcyB3YXksIHdlIGhhdmUgMiByZWZsb3dzIHBlciBjaGVjaywgbm8gbWF0dGVyIGhvdyBtYW55IGVsZW1lbnRzIGFyZSBjaGVja2VkIGluIGEgcm93LlxuXHQgKi9cblx0YXN5bmMgaGFzRWxsaXBzaXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRjb25zdCBlbGVtZW50U3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuXG5cdFx0aWYgKGVsZW1lbnRTdHlsZS50ZXh0T3ZlcmZsb3cgIT09ICdlbGxpcHNpcycpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRjb25zdCB7IHBhZGRpbmcsIGJvcmRlcldpZHRoLCBib3JkZXJTdHlsZSwgYm94U2l6aW5nLCBmb250RmFtaWx5LCBmb250V2VpZ2h0LCBmb250U3R5bGUgfSA9IGVsZW1lbnRTdHlsZTtcblxuXHRcdGNvbnN0IGZvbnRTaXplID0gKE51bWJlcihlbGVtZW50U3R5bGUuZm9udFNpemUucmVwbGFjZSgncHgnLCAnJykpIC8gTnVtYmVyKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udFNpemUucmVwbGFjZSgncHgnLCAnJykpKS50b1N0cmluZygpICsgJ3JlbSc7XG5cblx0XHQvLyBXaGVuIG11bHRpcGxlIGVsZW1lbnRzIGFyZSBjaGVja2VkIGluIGEgcm93LCB3ZSB3YWl0IGZvciB0aGUgbmV4dCBtaWNyb3Rhc2sgdG8gYmVmb3JlIGNsb25pbmcgdGhlIGVsZW1lbnRcblx0XHQvLyB0byBhdm9pZCB0aGUgYnJvd3NlciB0byByZWZsb3cgdGhlIHBhZ2UgZm9yIGVhY2ggdG9vbHRpcFxuXHRcdGF3YWl0IFByb21pc2UucmVzb2x2ZSgpO1xuXG5cdFx0Y29uc3QgZWxlbWVudENsb25lZCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG5cdFx0T2JqZWN0LmFzc2lnbihlbGVtZW50Q2xvbmVkLnN0eWxlLCB7XG5cdFx0XHR3aWR0aDogJ2ZpdC1jb250ZW50Jyxcblx0XHRcdHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuXHRcdFx0cG9zaXRpb246ICdhYnNvbHV0ZScsXG5cdFx0XHR2aXNpYmlsaXR5OiAnaGlkZGVuJyxcblx0XHRcdHBhZGRpbmcsXG5cdFx0XHRib3JkZXJXaWR0aCxcblx0XHRcdGJvcmRlclN0eWxlLFxuXHRcdFx0Ym94U2l6aW5nLFxuXHRcdFx0Zm9udEZhbWlseSxcblx0XHRcdGZvbnRXZWlnaHQsXG5cdFx0XHRmb250U3R5bGUsXG5cdFx0XHRmb250U2l6ZSxcblx0XHR9KTtcblxuXHRcdHRoaXMucGFyZW50TWFza2VkLmFwcGVuZENoaWxkKGVsZW1lbnRDbG9uZWQpO1xuXG5cdFx0ZWxlbWVudENsb25lZC5pbm5lckhUTUwgPSBlbGVtZW50LmlubmVySFRNTDtcblxuXHRcdC8vIFRvIGF2b2lkIG11bHRpcGxlIHJlZmxvd3MsIHdlIHdhaXQgZm9yIHRoZSBuZXh0IG1pY3JvdGFzayBiZWZvcmUgY2FsY3VsYXRpbmcgdGhlIHdpZHRoXG5cdFx0YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgZWxlbWVudENsb25lZFdpZHRoID0gZWxlbWVudENsb25lZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblx0XHRcdGNvbnN0IGVsZW1lbnRXaWR0aCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cblx0XHRcdHJldHVybiBlbGVtZW50Q2xvbmVkV2lkdGggPiBlbGVtZW50V2lkdGg7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gZmluYWxseSB7XG5cdFx0XHQvLyBUbyBhdm9pZCBtdWx0aXBsZSByZWZsb3dzLCB3ZSB3YWl0IGZvciB0aGUgbmV4dCBtaWNyb3Rhc2sgYmVmb3JlIHJlbW92aW5nIHRoZSBjbG9uZWQgZWxlbWVudFxuXHRcdFx0YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHR0aGlzLnBhcmVudE1hc2tlZC5yZW1vdmVDaGlsZChlbGVtZW50Q2xvbmVkKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Overlay } from '@angular/cdk/overlay';
|
|
2
2
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
-
import {
|
|
4
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { DestroyRef, Directive, ElementRef, HostBinding, HostListener, Input, Renderer2, booleanAttribute, computed, effect, inject, input, numberAttribute, signal, } from '@angular/core';
|
|
4
|
+
import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { BehaviorSubject, Observable, Subject, combineLatest, merge, startWith, switchMap, timer } from 'rxjs';
|
|
6
6
|
import { debounce, debounceTime, filter, map } from 'rxjs/operators';
|
|
7
7
|
import { LuTooltipPanelComponent } from '../panel';
|
|
@@ -14,7 +14,6 @@ export class LuTooltipTriggerDirective {
|
|
|
14
14
|
#renderer;
|
|
15
15
|
#ruler;
|
|
16
16
|
#destroyRef;
|
|
17
|
-
#cdr;
|
|
18
17
|
#openDelay$;
|
|
19
18
|
set luTooltipEnterDelay(delay) {
|
|
20
19
|
this.#openDelay$.next(delay);
|
|
@@ -23,13 +22,8 @@ export class LuTooltipTriggerDirective {
|
|
|
23
22
|
set luTooltipLeaveDelay(delay) {
|
|
24
23
|
this.#closeDelay$.next(delay);
|
|
25
24
|
}
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
this.#disabled = disabled;
|
|
29
|
-
if (disabled) {
|
|
30
|
-
this.setAccessibilityProperties(null);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
25
|
+
#hasEllipsis$;
|
|
26
|
+
#hasEllipsis;
|
|
33
27
|
onMouseEnter() {
|
|
34
28
|
this.open$.next();
|
|
35
29
|
}
|
|
@@ -46,7 +40,7 @@ export class LuTooltipTriggerDirective {
|
|
|
46
40
|
}
|
|
47
41
|
#generatedId;
|
|
48
42
|
get ariaDescribedBy() {
|
|
49
|
-
if (this
|
|
43
|
+
if (this.luTooltipDisabled() || this.luTooltipWhenEllipsis || this.luTooltipOnlyForDisplay) {
|
|
50
44
|
return null;
|
|
51
45
|
}
|
|
52
46
|
return `${this.#generatedId}-panel`;
|
|
@@ -57,13 +51,13 @@ export class LuTooltipTriggerDirective {
|
|
|
57
51
|
this.#renderer = inject(Renderer2);
|
|
58
52
|
this.#ruler = inject(EllipsisRuler);
|
|
59
53
|
this.#destroyRef = inject(DestroyRef);
|
|
60
|
-
this
|
|
54
|
+
this.luTooltip = input();
|
|
61
55
|
this.#openDelay$ = new BehaviorSubject(300);
|
|
62
56
|
this.#closeDelay$ = new BehaviorSubject(100);
|
|
63
|
-
this
|
|
57
|
+
this.luTooltipDisabled = input(false, { transform: booleanAttribute });
|
|
64
58
|
this.luTooltipOnlyForDisplay = false;
|
|
65
59
|
this.luTooltipPosition = 'above';
|
|
66
|
-
this.luTooltipWhenEllipsis = false;
|
|
60
|
+
this.luTooltipWhenEllipsis = input(false, { transform: booleanAttribute });
|
|
67
61
|
this.resize$ = new Observable((observer) => {
|
|
68
62
|
const resizeObserver = new ResizeObserver(() => {
|
|
69
63
|
observer.next();
|
|
@@ -73,6 +67,18 @@ export class LuTooltipTriggerDirective {
|
|
|
73
67
|
resizeObserver.disconnect();
|
|
74
68
|
};
|
|
75
69
|
});
|
|
70
|
+
this.#hasEllipsis$ = combineLatest([
|
|
71
|
+
toObservable(
|
|
72
|
+
// 1. Group necessary inputs
|
|
73
|
+
computed(() => ({ whenEllipsis: this.luTooltipWhenEllipsis(), disabled: this.luTooltipDisabled() }))),
|
|
74
|
+
// Resend resize events to trigger the check
|
|
75
|
+
this.resize$.pipe(debounceTime(150)),
|
|
76
|
+
]).pipe(
|
|
77
|
+
// 2. Keep only necessary inputs
|
|
78
|
+
filter(([{ whenEllipsis, disabled }]) => !disabled && whenEllipsis),
|
|
79
|
+
// 3. Check for ellipsis
|
|
80
|
+
switchMap(() => this.#ruler.hasEllipsis(this.#host.nativeElement)));
|
|
81
|
+
this.#hasEllipsis = toSignal(this.#hasEllipsis$, { initialValue: false });
|
|
76
82
|
this.open$ = new Subject();
|
|
77
83
|
this.close$ = new Subject();
|
|
78
84
|
this.#generatedId = `${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`;
|
|
@@ -81,12 +87,12 @@ export class LuTooltipTriggerDirective {
|
|
|
81
87
|
// We only filter open events because even if it's disabled while opened,
|
|
82
88
|
// we want the tooltip to be able to close itself no matter what
|
|
83
89
|
const openEvents$ = this.open$.pipe(filter(() => {
|
|
84
|
-
if (this
|
|
90
|
+
if (this.luTooltipDisabled()) {
|
|
85
91
|
return false;
|
|
86
92
|
}
|
|
87
93
|
// If not disabled, let's check for ellipsis if needed
|
|
88
|
-
if (this.luTooltipWhenEllipsis) {
|
|
89
|
-
return this.#
|
|
94
|
+
if (this.luTooltipWhenEllipsis()) {
|
|
95
|
+
return this.#hasEllipsis();
|
|
90
96
|
}
|
|
91
97
|
// If it's not disabled and is not triggered based on ellipsis, just return true
|
|
92
98
|
return true;
|
|
@@ -103,9 +109,13 @@ export class LuTooltipTriggerDirective {
|
|
|
103
109
|
this.closeTooltip();
|
|
104
110
|
}
|
|
105
111
|
});
|
|
106
|
-
|
|
107
|
-
this.
|
|
108
|
-
|
|
112
|
+
effect(() => {
|
|
113
|
+
if (!this.luTooltipDisabled() && this.#hasEllipsis()) {
|
|
114
|
+
this.setAccessibilityProperties(0);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.setAccessibilityProperties(null);
|
|
118
|
+
}
|
|
109
119
|
});
|
|
110
120
|
}
|
|
111
121
|
ngOnDestroy() {
|
|
@@ -129,11 +139,11 @@ export class LuTooltipTriggerDirective {
|
|
|
129
139
|
.subscribe(({ overlayX, overlayY }) => {
|
|
130
140
|
ref.instance.setPanelPosition(overlayX, overlayY);
|
|
131
141
|
});
|
|
132
|
-
if (this.luTooltip) {
|
|
142
|
+
if (this.luTooltip()) {
|
|
133
143
|
ref.instance.content = this.luTooltip;
|
|
134
144
|
}
|
|
135
145
|
else if (this.luTooltipWhenEllipsis) {
|
|
136
|
-
ref.instance.content = this.#host.nativeElement.innerText;
|
|
146
|
+
ref.instance.content = signal(this.#host.nativeElement.innerText);
|
|
137
147
|
}
|
|
138
148
|
ref.instance.id = this.ariaDescribedBy;
|
|
139
149
|
// On tooltip leave => trigger close
|
|
@@ -148,20 +158,19 @@ export class LuTooltipTriggerDirective {
|
|
|
148
158
|
}
|
|
149
159
|
}
|
|
150
160
|
setAccessibilityProperties(tabindex) {
|
|
151
|
-
if (
|
|
161
|
+
if (tabindex === null) {
|
|
152
162
|
this.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');
|
|
153
163
|
return;
|
|
154
164
|
}
|
|
155
165
|
const tag = this.#host.nativeElement.tagName.toLowerCase();
|
|
156
166
|
const nativelyFocusableTags = ['a', 'button', 'input', 'select', 'textarea'];
|
|
157
|
-
const
|
|
167
|
+
const isNativelyFocusableTag = nativelyFocusableTags.includes(tag);
|
|
158
168
|
const hasATabIndex = this.#host.nativeElement.getAttribute('tabindex') !== null;
|
|
159
|
-
if (!
|
|
169
|
+
if (!isNativelyFocusableTag && !hasATabIndex) {
|
|
160
170
|
this.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());
|
|
161
171
|
}
|
|
162
172
|
}
|
|
163
173
|
ngAfterContentInit() {
|
|
164
|
-
this.setAccessibilityProperties(0);
|
|
165
174
|
this._id = this.#host.nativeElement.id || this.#generatedId;
|
|
166
175
|
}
|
|
167
176
|
/**********************
|
|
@@ -256,7 +265,7 @@ export class LuTooltipTriggerDirective {
|
|
|
256
265
|
return x;
|
|
257
266
|
}
|
|
258
267
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LuTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
259
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
268
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip]", inputs: { luTooltip: { classPropertyName: "luTooltip", publicName: "luTooltip", isSignal: true, isRequired: false, transformFunction: null }, luTooltipEnterDelay: { classPropertyName: "luTooltipEnterDelay", publicName: "luTooltipEnterDelay", isSignal: false, isRequired: false, transformFunction: numberAttribute }, luTooltipLeaveDelay: { classPropertyName: "luTooltipLeaveDelay", publicName: "luTooltipLeaveDelay", isSignal: false, isRequired: false, transformFunction: numberAttribute }, luTooltipDisabled: { classPropertyName: "luTooltipDisabled", publicName: "luTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, luTooltipOnlyForDisplay: { classPropertyName: "luTooltipOnlyForDisplay", publicName: "luTooltipOnlyForDisplay", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, luTooltipPosition: { classPropertyName: "luTooltipPosition", publicName: "luTooltipPosition", isSignal: false, isRequired: false, transformFunction: null }, luTooltipWhenEllipsis: { classPropertyName: "luTooltipWhenEllipsis", publicName: "luTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "attr.id": "this._id", "attr.aria-describedby": "this.ariaDescribedBy" } }, exportAs: ["luTooltip"], ngImport: i0 }); }
|
|
260
269
|
}
|
|
261
270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LuTooltipTriggerDirective, decorators: [{
|
|
262
271
|
type: Directive,
|
|
@@ -265,25 +274,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
265
274
|
exportAs: 'luTooltip',
|
|
266
275
|
standalone: true,
|
|
267
276
|
}]
|
|
268
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
269
|
-
type: Input
|
|
270
|
-
}], luTooltipEnterDelay: [{
|
|
277
|
+
}], ctorParameters: () => [], propDecorators: { luTooltipEnterDelay: [{
|
|
271
278
|
type: Input,
|
|
272
279
|
args: [{ transform: numberAttribute }]
|
|
273
280
|
}], luTooltipLeaveDelay: [{
|
|
274
281
|
type: Input,
|
|
275
282
|
args: [{ transform: numberAttribute }]
|
|
276
|
-
}], luTooltipDisabled: [{
|
|
277
|
-
type: Input,
|
|
278
|
-
args: [{ transform: booleanAttribute }]
|
|
279
283
|
}], luTooltipOnlyForDisplay: [{
|
|
280
284
|
type: Input,
|
|
281
285
|
args: [{ transform: booleanAttribute }]
|
|
282
286
|
}], luTooltipPosition: [{
|
|
283
287
|
type: Input
|
|
284
|
-
}], luTooltipWhenEllipsis: [{
|
|
285
|
-
type: Input,
|
|
286
|
-
args: [{ transform: booleanAttribute }]
|
|
287
288
|
}], onMouseEnter: [{
|
|
288
289
|
type: HostListener,
|
|
289
290
|
args: ['mouseenter']
|
|
@@ -303,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
303
304
|
type: HostBinding,
|
|
304
305
|
args: ['attr.aria-describedby']
|
|
305
306
|
}] } });
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3Rvb2x0aXAvdHJpZ2dlci90b29sdGlwLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0YsT0FBTyxFQUFnRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25NLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRU4saUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLGVBQWUsR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFakQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBT2YsTUFBTSxPQUFPLHlCQUF5QjtJQUNyQyxRQUFRLENBQW1CO0lBRTNCLEtBQUssQ0FBK0M7SUFFcEQsU0FBUyxDQUFxQjtJQUM5QixNQUFNLENBQXlCO0lBRS9CLFdBQVcsQ0FBc0I7SUFFakMsSUFBSSxDQUE2QjtJQUtqQyxXQUFXLENBQW9DO0lB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b0JBQ3ZCLFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDaEI7d0RBY0EsU0FBUztzQkFEUixLQUFLO2dCQU1GLG1CQUFtQjtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBUWpDLG1CQUFtQjtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBUWpDLGlCQUFpQjtzQkFEcEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTdEMsdUJBQXVCO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWtCdEMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBTTFCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQU0xQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFRckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU07Z0JBUXBCLEdBQUc7c0JBREYsV0FBVzt1QkFBQyxTQUFTO2dCQUlsQixlQUFlO3NCQURsQixXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsIE9yaWdpbkNvbm5lY3Rpb25Qb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbm5lY3Rpb25Qb3NpdGlvbiwgT3ZlcmxheVJlZiwgVmVydGljYWxDb25uZWN0aW9uUG9zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuXHRBZnRlckNvbnRlbnRJbml0LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRIb3N0QmluZGluZyxcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRSZW5kZXJlcjIsXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdGluamVjdCxcblx0bnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBMdVBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9wb3BvdmVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2UsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2UsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMdVRvb2x0aXBQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3BhbmVsJztcbmltcG9ydCB7IEVsbGlwc2lzUnVsZXIgfSBmcm9tICcuL2VsbGlwc2lzLnJ1bGVyJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tsdVRvb2x0aXBdJyxcblx0ZXhwb3J0QXM6ICdsdVRvb2x0aXAnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMdVRvb2x0aXBUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblx0I292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cblx0I2hvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG5cdCNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXHQjcnVsZXIgPSBpbmplY3QoRWxsaXBzaXNSdWxlcik7XG5cblx0I2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0I2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblx0QElucHV0KClcblx0bHVUb29sdGlwOiBzdHJpbmcgfCBTYWZlSHRtbDtcblxuXHQjb3BlbkRlbGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigzMDApO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBFbnRlckRlbGF5KGRlbGF5OiBudW1iZXIpIHtcblx0XHR0aGlzLiNvcGVuRGVsYXkkLm5leHQoZGVsYXkpO1xuXHR9XG5cblx0I2Nsb3NlRGVsYXkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEwMCk7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcblx0c2V0IGx1VG9vbHRpcExlYXZlRGVsYXkoZGVsYXk6IG51bWJlcikge1xuXHRcdHRoaXMuI2Nsb3NlRGVsYXkkLm5leHQoZGVsYXkpO1xuXHR9XG5cblx0I2Rpc2FibGVkID0gZmFsc2U7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBEaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuXHRcdHRoaXMuI2Rpc2FibGVkID0gZGlzYWJsZWQ7XG5cdFx0aWYgKGRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLnNldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKG51bGwpO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRsdVRvb2x0aXBPbmx5Rm9yRGlzcGxheSA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdGx1VG9vbHRpcFBvc2l0aW9uOiBMdVBvcG92ZXJQb3NpdGlvbiA9ICdhYm92ZSc7XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG5cdGx1VG9vbHRpcFdoZW5FbGxpcHNpcyA9IGZhbHNlO1xuXG5cdHJlc2l6ZSQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcblx0XHRjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG5cdFx0XHRvYnNlcnZlci5uZXh0KCk7XG5cdFx0fSk7XG5cdFx0cmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cdFx0fTtcblx0fSk7XG5cblx0b3BlbiQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdGNsb3NlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0QEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG5cdG9uTW91c2VFbnRlcigpIHtcblx0XHR0aGlzLm9wZW4kLm5leHQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuXHRvbk1vdXNlTGVhdmUoKSB7XG5cdFx0dGhpcy5jbG9zZSQubmV4dCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge1xuXHRcdGlmICh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJykgIT09ICd0cnVlJykge1xuXHRcdFx0dGhpcy5vcGVuJC5uZXh0KCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignYmx1cicpXG5cdG9uQmx1cigpIHtcblx0XHR0aGlzLmNsb3NlJC5uZXh0KCk7XG5cdH1cblxuXHQjZ2VuZXJhdGVkSWQgPSBgJHt0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpfS10b29sdGlwLSR7bmV4dElkKyt9YDtcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuXHRfaWQ6IHN0cmluZztcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG5cdGdldCBhcmlhRGVzY3JpYmVkQnkoKSB7XG5cdFx0aWYgKHRoaXMuI2Rpc2FibGVkIHx8IHRoaXMubHVUb29sdGlwV2hlbkVsbGlwc2lzIHx8IHRoaXMubHVUb29sdGlwT25seUZvckRpc3BsYXkpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gYCR7dGhpcy4jZ2VuZXJhdGVkSWR9LXBhbmVsYDtcblx0fVxuXG5cdG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbWJpbmVMYXRlc3QoW3RoaXMuI29wZW5EZWxheSQsIHRoaXMuI2Nsb3NlRGVsYXkkXSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRzd2l0Y2hNYXAoKFtvcGVuRGVsYXksIGNsb3NlRGVsYXldKSA9PiB7XG5cdFx0XHRcdFx0Ly8gV2Ugb25seSBmaWx0ZXIgb3BlbiBldmVudHMgYmVjYXVzZSBldmVuIGlmIGl0J3MgZGlzYWJsZWQgd2hpbGUgb3BlbmVkLFxuXHRcdFx0XHRcdC8vIFx0d2Ugd2FudCB0aGUgdG9vbHRpcCB0byBiZSBhYmxlIHRvIGNsb3NlIGl0c2VsZiBubyBtYXR0ZXIgd2hhdFxuXHRcdFx0XHRcdGNvbnN0IG9wZW5FdmVudHMkID0gdGhpcy5vcGVuJC5waXBlKFxuXHRcdFx0XHRcdFx0ZmlsdGVyKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuI2Rpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIElmIG5vdCBkaXNhYmxlZCwgbGV0J3MgY2hlY2sgZm9yIGVsbGlwc2lzIGlmIG5lZWRlZFxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy4jcnVsZXIuaGFzRWxsaXBzaXModGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQvLyBJZiBpdCdzIG5vdCBkaXNhYmxlZCBhbmQgaXMgbm90IHRyaWdnZXJlZCBiYXNlZCBvbiBlbGxpcHNpcywganVzdCByZXR1cm4gdHJ1ZVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdFx0bWFwKCgpID0+ICdvcGVuJyksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gbWVyZ2Uob3BlbkV2ZW50cyQsIHRoaXMuY2xvc2UkLnBpcGUobWFwKCgpID0+ICdjbG9zZScpKSkucGlwZShcblx0XHRcdFx0XHRcdGRlYm91bmNlKChldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGltZXIoZXZlbnQgPT09ICdvcGVuJyA/IG9wZW5EZWxheSA6IGNsb3NlRGVsYXkpO1xuXHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSksXG5cdFx0XHRcdHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSxcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGlmIChldmVudCA9PT0gJ29wZW4nKSB7XG5cdFx0XHRcdFx0dGhpcy5vcGVuVG9vbHRpcCgpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuY2xvc2VUb29sdGlwKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5yZXNpemUkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLCBkZWJvdW5jZVRpbWUoMTUwKSkuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdHRoaXMuc2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXMoMCk7XG5cdFx0XHR0aGlzLiNjZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLmNsb3NlVG9vbHRpcCgpO1xuXHR9XG5cblx0cHJpdmF0ZSBvcGVuVG9vbHRpcCgpOiB2b2lkIHtcblx0XHQvLyBJZiB0b29sdGlwIGlzIGFscmVhZHkgb3BlbmVkLCBkb24ndCBkbyBhbnl0aGluZ1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgcG9zaXRpb24gPSB0aGlzLmxlZ2FjeVBvc2l0aW9uQnVpbGRlcigpO1xuXHRcdHRoaXMub3ZlcmxheVJlZiA9IHRoaXMuI292ZXJsYXkuY3JlYXRlKHtcblx0XHRcdHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uLFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMuI292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5jbG9zZSgpLFxuXHRcdFx0ZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcblx0XHR9KTtcblx0XHRjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKEx1VG9vbHRpcFBhbmVsQ29tcG9uZW50KTtcblx0XHRjb25zdCByZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cdFx0cG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzXG5cdFx0XHQucGlwZShcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuXHRcdFx0XHRtYXAoKHsgY29ubmVjdGlvblBhaXIgfSkgPT4gY29ubmVjdGlvblBhaXIpLFxuXHRcdFx0XHRzdGFydFdpdGgocG9zaXRpb24ucG9zaXRpb25zWzBdKSxcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKHsgb3ZlcmxheVgsIG92ZXJsYXlZIH0pID0+IHtcblx0XHRcdFx0cmVmLmluc3RhbmNlLnNldFBhbmVsUG9zaXRpb24ob3ZlcmxheVgsIG92ZXJsYXlZKTtcblx0XHRcdH0pO1xuXHRcdGlmICh0aGlzLmx1VG9vbHRpcCkge1xuXHRcdFx0cmVmLmluc3RhbmNlLmNvbnRlbnQgPSB0aGlzLmx1VG9vbHRpcDtcblx0XHR9IGVsc2UgaWYgKHRoaXMubHVUb29sdGlwV2hlbkVsbGlwc2lzKSB7XG5cdFx0XHRyZWYuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5pbm5lclRleHQ7XG5cdFx0fVxuXHRcdHJlZi5pbnN0YW5jZS5pZCA9IHRoaXMuYXJpYURlc2NyaWJlZEJ5O1xuXHRcdC8vIE9uIHRvb2x0aXAgbGVhdmUgPT4gdHJpZ2dlciBjbG9zZVxuXHRcdHJlZi5pbnN0YW5jZS5tb3VzZUxlYXZlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZChyZWYuaW5zdGFuY2UuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlJC5uZXh0KCkpO1xuXHRcdC8vIE9uIHRvb2x0aXAgZW50ZXIgPT4gdHJpZ2dlciBvcGVuIHRvIGtlZXAgaXQgb3BlbmVkXG5cdFx0cmVmLmluc3RhbmNlLm1vdXNlRW50ZXIkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHJlZi5pbnN0YW5jZS5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3BlbiQubmV4dCgpKTtcblx0fVxuXG5cdHByaXZhdGUgY2xvc2VUb29sdGlwKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcblx0XHRcdHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcblx0XHRcdGRlbGV0ZSB0aGlzLm92ZXJsYXlSZWY7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyh0YWJpbmRleDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLiNkaXNhYmxlZCB8fCAodGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMgJiYgIXRoaXMuI3J1bGVyLmhhc0VsbGlwc2lzKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCkpKSB7XG5cdFx0XHR0aGlzLiNyZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCB0YWcgPSB0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdGNvbnN0IG5hdGl2ZWx5Rm9jdXNhYmxlVGFncyA9IFsnYScsICdidXR0b24nLCAnaW5wdXQnLCAnc2VsZWN0JywgJ3RleHRhcmVhJ107XG5cdFx0Y29uc3QgaXNOYXRldmVseUZvY3VzYWJsZVRhZyA9IG5hdGl2ZWx5Rm9jdXNhYmxlVGFncy5pbmNsdWRlcyh0YWcpO1xuXG5cdFx0Y29uc3QgaGFzQVRhYkluZGV4ID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSAhPT0gbnVsbDtcblxuXHRcdGlmICghaXNOYXRldmVseUZvY3VzYWJsZVRhZyAmJiAhaGFzQVRhYkluZGV4KSB7XG5cdFx0XHR0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnLCB0YWJpbmRleC50b1N0cmluZygpKTtcblx0XHR9XG5cdH1cblxuXHRuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcygwKTtcblx0XHR0aGlzLl9pZCA9IHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5pZCB8fCB0aGlzLiNnZW5lcmF0ZWRJZDtcblx0fVxuXG5cdC8qKioqKioqKioqKioqKioqKioqKioqXG5cdCAqXG5cdCAqIExFR0FDWSBTVFVGRiBUTyBIQU5ETEUgRVhJU1RJTkcgUE9TSVRJT05TXG5cdCAqXG5cdCAqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXHRwcml2YXRlIGxlZ2FjeVBvc2l0aW9uQnVpbGRlcigpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuXHRcdGNvbnN0IGNvbm5lY3Rpb25Qb3NpdGlvbjogT3JpZ2luQ29ubmVjdGlvblBvc2l0aW9uID0ge1xuXHRcdFx0b3JpZ2luWDogJ3N0YXJ0Jyxcblx0XHRcdG9yaWdpblk6ICd0b3AnLFxuXHRcdH07XG5cblx0XHQvLyBQb3NpdGlvblxuXHRcdGNvbnN0IHBvc2l0aW9uID0gdGhpcy5sdVRvb2x0aXBQb3NpdGlvbjtcblx0XHRpZiAocG9zaXRpb24gPT09ICdhYm92ZScpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZID0gJ3RvcCc7XG5cdFx0fSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ2JlbG93Jykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkgPSAnYm90dG9tJztcblx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYmVmb3JlJykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblggPSAnc3RhcnQnO1xuXHRcdH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdhZnRlcicpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YID0gJ2VuZCc7XG5cdFx0fVxuXG5cdFx0Ly8gQWxpZ25tZW50XG5cdFx0aWYgKHBvc2l0aW9uID09PSAnYWJvdmUnIHx8IHBvc2l0aW9uID09PSAnYmVsb3cnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCA9ICdjZW50ZXInO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSA9ICdjZW50ZXInO1xuXHRcdH1cblxuXHRcdGNvbnN0IG92ZXJsYXlQb3NpdGlvbjogT3ZlcmxheUNvbm5lY3Rpb25Qb3NpdGlvbiA9IHtcblx0XHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxuXHRcdFx0b3ZlcmxheVk6ICd0b3AnLFxuXHRcdH07XG5cblx0XHRpZiAocG9zaXRpb24gPT09ICdhYm92ZScgfHwgcG9zaXRpb24gPT09ICdiZWxvdycpIHtcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCA9IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YO1xuXHRcdFx0b3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZID0gcG9zaXRpb24gPT09ICdhYm92ZScgPyAnYm90dG9tJyA6ICd0b3AnO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvdmVybGF5UG9zaXRpb24ub3ZlcmxheVggPSBwb3NpdGlvbiA9PT0gJ2JlZm9yZScgPyAnZW5kJyA6ICdzdGFydCc7XG5cdFx0XHRvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkgPSBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy4jb3ZlcmxheVxuXHRcdFx0LnBvc2l0aW9uKClcblx0XHRcdC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuI2hvc3QpXG5cdFx0XHQud2l0aFBvc2l0aW9ucyhbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCxcblx0XHRcdFx0XHRvcmlnaW5ZOiBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSxcblx0XHRcdFx0XHRvdmVybGF5WDogb3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiBjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCxcblx0XHRcdFx0XHRvcmlnaW5ZOiB0aGlzLmludmVydFZlcnRpY2FsUG9zKGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZKSxcblx0XHRcdFx0XHRvdmVybGF5WDogb3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiB0aGlzLmludmVydFZlcnRpY2FsUG9zKG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiB0aGlzLmludmVydEhvcml6b250YWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblgpLFxuXHRcdFx0XHRcdG9yaWdpblk6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiB0aGlzLmludmVydEhvcml6b250YWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYKSxcblx0XHRcdFx0XHRvdmVybGF5WTogb3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0b3JpZ2luWDogdGhpcy5pbnZlcnRIb3Jpem9udGFsUG9zKGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YKSxcblx0XHRcdFx0XHRvcmlnaW5ZOiB0aGlzLmludmVydFZlcnRpY2FsUG9zKGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZKSxcblx0XHRcdFx0XHRvdmVybGF5WDogdGhpcy5pbnZlcnRIb3Jpem9udGFsUG9zKG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCksXG5cdFx0XHRcdFx0b3ZlcmxheVk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZKSxcblx0XHRcdFx0fSxcblx0XHRcdF0pO1xuXHR9XG5cblx0cHJpdmF0ZSBpbnZlcnRWZXJ0aWNhbFBvcyh5OiBWZXJ0aWNhbENvbm5lY3Rpb25Qb3MpOiBWZXJ0aWNhbENvbm5lY3Rpb25Qb3Mge1xuXHRcdGlmICh5ID09PSAndG9wJykge1xuXHRcdFx0cmV0dXJuICdib3R0b20nO1xuXHRcdH0gZWxzZSBpZiAoeSA9PT0gJ2JvdHRvbScpIHtcblx0XHRcdHJldHVybiAndG9wJztcblx0XHR9XG5cdFx0cmV0dXJuIHk7XG5cdH1cblxuXHRwcml2YXRlIGludmVydEhvcml6b250YWxQb3MoeDogSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MpOiBIb3Jpem9udGFsQ29ubmVjdGlvblBvcyB7XG5cdFx0aWYgKHggPT09ICdlbmQnKSB7XG5cdFx0XHRyZXR1cm4gJ3N0YXJ0Jztcblx0XHR9IGVsc2UgaWYgKHggPT09ICdzdGFydCcpIHtcblx0XHRcdHJldHVybiAnZW5kJztcblx0XHR9XG5cdFx0cmV0dXJuIHg7XG5cdH1cbn1cbiJdfQ==
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3Rvb2x0aXAvdHJpZ2dlci90b29sdGlwLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0YsT0FBTyxFQUFnRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25NLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRU4sVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsU0FBUyxFQUNULGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVqRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFNZixNQUFNLE9BQU8seUJBQXlCO0lBQ3JDLFFBQVEsQ0FBbUI7SUFFM0IsS0FBSyxDQUErQztJQUVwRCxTQUFTLENBQXFCO0lBQzlCLE1BQU0sQ0FBeUI7SUFFL0Is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UG9zaXRpb25TdHJhdGVneSwgSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsIE9yaWdpbkNvbm5lY3Rpb25Qb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbm5lY3Rpb25Qb3NpdGlvbiwgT3ZlcmxheVJlZiwgVmVydGljYWxDb25uZWN0aW9uUG9zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuXHRBZnRlckNvbnRlbnRJbml0LFxuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkRlc3Ryb3ksXG5cdFJlbmRlcmVyMixcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0bnVtYmVyQXR0cmlidXRlLFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEx1UG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL3BvcG92ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZSwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEx1VG9vbHRpcFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFuZWwnO1xuaW1wb3J0IHsgRWxsaXBzaXNSdWxlciB9IGZyb20gJy4vZWxsaXBzaXMucnVsZXInO1xuXG5sZXQgbmV4dElkID0gMDtcbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tsdVRvb2x0aXBdJyxcblx0ZXhwb3J0QXM6ICdsdVRvb2x0aXAnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMdVRvb2x0aXBUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblx0I292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cblx0I2hvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG5cdCNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXHQjcnVsZXIgPSBpbmplY3QoRWxsaXBzaXNSdWxlcik7XG5cblx0I2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0bHVUb29sdGlwID0gaW5wdXQ8c3RyaW5nIHwgU2FmZUh0bWw+KCk7XG5cblx0I29wZW5EZWxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMzAwKTtcblxuXHRASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuXHRzZXQgbHVUb29sdGlwRW50ZXJEZWxheShkZWxheTogbnVtYmVyKSB7XG5cdFx0dGhpcy4jb3BlbkRlbGF5JC5uZXh0KGRlbGF5KTtcblx0fVxuXG5cdCNjbG9zZURlbGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxMDApO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG5cdHNldCBsdVRvb2x0aXBMZWF2ZURlbGF5KGRlbGF5OiBudW1iZXIpIHtcblx0XHR0aGlzLiNjbG9zZURlbGF5JC5uZXh0KGRlbGF5KTtcblx0fVxuXG5cdGx1VG9vbHRpcERpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRsdVRvb2x0aXBPbmx5Rm9yRGlzcGxheSA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdGx1VG9vbHRpcFBvc2l0aW9uOiBMdVBvcG92ZXJQb3NpdGlvbiA9ICdhYm92ZSc7XG5cblx0bHVUb29sdGlwV2hlbkVsbGlwc2lzID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdHJlc2l6ZSQgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcblx0XHRjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG5cdFx0XHRvYnNlcnZlci5uZXh0KCk7XG5cdFx0fSk7XG5cdFx0cmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiNob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cdFx0fTtcblx0fSk7XG5cblx0I2hhc0VsbGlwc2lzJCA9IGNvbWJpbmVMYXRlc3QoW1xuXHRcdHRvT2JzZXJ2YWJsZShcblx0XHRcdC8vIDEuIEdyb3VwIG5lY2Vzc2FyeSBpbnB1dHNcblx0XHRcdGNvbXB1dGVkKCgpID0+ICh7IHdoZW5FbGxpcHNpczogdGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMoKSwgZGlzYWJsZWQ6IHRoaXMubHVUb29sdGlwRGlzYWJsZWQoKSB9KSksXG5cdFx0KSxcblx0XHQvLyBSZXNlbmQgcmVzaXplIGV2ZW50cyB0byB0cmlnZ2VyIHRoZSBjaGVja1xuXHRcdHRoaXMucmVzaXplJC5waXBlKGRlYm91bmNlVGltZSgxNTApKSxcblx0XSkucGlwZShcblx0XHQvLyAyLiBLZWVwIG9ubHkgbmVjZXNzYXJ5IGlucHV0c1xuXHRcdGZpbHRlcigoW3sgd2hlbkVsbGlwc2lzLCBkaXNhYmxlZCB9XSkgPT4gIWRpc2FibGVkICYmIHdoZW5FbGxpcHNpcyksXG5cdFx0Ly8gMy4gQ2hlY2sgZm9yIGVsbGlwc2lzXG5cdFx0c3dpdGNoTWFwKCgpID0+IHRoaXMuI3J1bGVyLmhhc0VsbGlwc2lzKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCkpLFxuXHQpO1xuXG5cdCNoYXNFbGxpcHNpcyA9IHRvU2lnbmFsKHRoaXMuI2hhc0VsbGlwc2lzJCwgeyBpbml0aWFsVmFsdWU6IGZhbHNlIH0pO1xuXG5cdG9wZW4kID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRjbG9zZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuXHRvbk1vdXNlRW50ZXIoKSB7XG5cdFx0dGhpcy5vcGVuJC5uZXh0KCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcblx0b25Nb3VzZUxlYXZlKCkge1xuXHRcdHRoaXMuY2xvc2UkLm5leHQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcblx0b25Gb2N1cygpIHtcblx0XHRpZiAodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcpICE9PSAndHJ1ZScpIHtcblx0XHRcdHRoaXMub3BlbiQubmV4dCgpO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuXHRvbkJsdXIoKSB7XG5cdFx0dGhpcy5jbG9zZSQubmV4dCgpO1xuXHR9XG5cblx0I2dlbmVyYXRlZElkID0gYCR7dGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKX0tdG9vbHRpcC0ke25leHRJZCsrfWA7XG5cblx0QEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcblx0X2lkOiBzdHJpbmc7XG5cblx0QEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKVxuXHRnZXQgYXJpYURlc2NyaWJlZEJ5KCkge1xuXHRcdGlmICh0aGlzLmx1VG9vbHRpcERpc2FibGVkKCkgfHwgdGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMgfHwgdGhpcy5sdVRvb2x0aXBPbmx5Rm9yRGlzcGxheSkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiBgJHt0aGlzLiNnZW5lcmF0ZWRJZH0tcGFuZWxgO1xuXHR9XG5cblx0b3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29tYmluZUxhdGVzdChbdGhpcy4jb3BlbkRlbGF5JCwgdGhpcy4jY2xvc2VEZWxheSRdKVxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdHN3aXRjaE1hcCgoW29wZW5EZWxheSwgY2xvc2VEZWxheV0pID0+IHtcblx0XHRcdFx0XHQvLyBXZSBvbmx5IGZpbHRlciBvcGVuIGV2ZW50cyBiZWNhdXNlIGV2ZW4gaWYgaXQncyBkaXNhYmxlZCB3aGlsZSBvcGVuZWQsXG5cdFx0XHRcdFx0Ly8gXHR3ZSB3YW50IHRoZSB0b29sdGlwIHRvIGJlIGFibGUgdG8gY2xvc2UgaXRzZWxmIG5vIG1hdHRlciB3aGF0XG5cdFx0XHRcdFx0Y29uc3Qgb3BlbkV2ZW50cyQgPSB0aGlzLm9wZW4kLnBpcGUoXG5cdFx0XHRcdFx0XHRmaWx0ZXIoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5sdVRvb2x0aXBEaXNhYmxlZCgpKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIElmIG5vdCBkaXNhYmxlZCwgbGV0J3MgY2hlY2sgZm9yIGVsbGlwc2lzIGlmIG5lZWRlZFxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5sdVRvb2x0aXBXaGVuRWxsaXBzaXMoKSkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLiNoYXNFbGxpcHNpcygpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIElmIGl0J3Mgbm90IGRpc2FibGVkIGFuZCBpcyBub3QgdHJpZ2dlcmVkIGJhc2VkIG9uIGVsbGlwc2lzLCBqdXN0IHJldHVybiB0cnVlXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0XHRtYXAoKCkgPT4gJ29wZW4nKSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiBtZXJnZShvcGVuRXZlbnRzJCwgdGhpcy5jbG9zZSQucGlwZShtYXAoKCkgPT4gJ2Nsb3NlJykpKS5waXBlKFxuXHRcdFx0XHRcdFx0ZGVib3VuY2UoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aW1lcihldmVudCA9PT0gJ29wZW4nID8gb3BlbkRlbGF5IDogY2xvc2VEZWxheSk7XG5cdFx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoZXZlbnQpID0+IHtcblx0XHRcdFx0aWYgKGV2ZW50ID09PSAnb3BlbicpIHtcblx0XHRcdFx0XHR0aGlzLm9wZW5Ub29sdGlwKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZVRvb2x0aXAoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLmx1VG9vbHRpcERpc2FibGVkKCkgJiYgdGhpcy4jaGFzRWxsaXBzaXMoKSkge1xuXHRcdFx0XHR0aGlzLnNldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKDApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5zZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyhudWxsKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuY2xvc2VUb29sdGlwKCk7XG5cdH1cblxuXHRwcml2YXRlIG9wZW5Ub29sdGlwKCk6IHZvaWQge1xuXHRcdC8vIElmIHRvb2x0aXAgaXMgYWxyZWFkeSBvcGVuZWQsIGRvbid0IGRvIGFueXRoaW5nXG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBwb3NpdGlvbiA9IHRoaXMubGVnYWN5UG9zaXRpb25CdWlsZGVyKCk7XG5cdFx0dGhpcy5vdmVybGF5UmVmID0gdGhpcy4jb3ZlcmxheS5jcmVhdGUoe1xuXHRcdFx0cG9zaXRpb25TdHJhdGVneTogcG9zaXRpb24sXG5cdFx0XHRzY3JvbGxTdHJhdGVneTogdGhpcy4jb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG5cdFx0XHRkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuXHRcdH0pO1xuXHRcdGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoTHVUb29sdGlwUGFuZWxDb21wb25lbnQpO1xuXHRcdGNvbnN0IHJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblx0XHRwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXNcblx0XHRcdC5waXBlKFxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksXG5cdFx0XHRcdG1hcCgoeyBjb25uZWN0aW9uUGFpciB9KSA9PiBjb25uZWN0aW9uUGFpciksXG5cdFx0XHRcdHN0YXJ0V2l0aChwb3NpdGlvbi5wb3NpdGlvbnNbMF0pLFxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoeyBvdmVybGF5WCwgb3ZlcmxheVkgfSkgPT4ge1xuXHRcdFx0XHRyZWYuaW5zdGFuY2Uuc2V0UGFuZWxQb3NpdGlvbihvdmVybGF5WCwgb3ZlcmxheVkpO1xuXHRcdFx0fSk7XG5cdFx0aWYgKHRoaXMubHVUb29sdGlwKCkpIHtcblx0XHRcdHJlZi5pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5sdVRvb2x0aXA7XG5cdFx0fSBlbHNlIGlmICh0aGlzLmx1VG9vbHRpcFdoZW5FbGxpcHNpcykge1xuXHRcdFx0cmVmLmluc3RhbmNlLmNvbnRlbnQgPSBzaWduYWwodGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCk7XG5cdFx0fVxuXHRcdHJlZi5pbnN0YW5jZS5pZCA9IHRoaXMuYXJpYURlc2NyaWJlZEJ5O1xuXHRcdC8vIE9uIHRvb2x0aXAgbGVhdmUgPT4gdHJpZ2dlciBjbG9zZVxuXHRcdHJlZi5pbnN0YW5jZS5tb3VzZUxlYXZlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZChyZWYuaW5zdGFuY2UuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlJC5uZXh0KCkpO1xuXHRcdC8vIE9uIHRvb2x0aXAgZW50ZXIgPT4gdHJpZ2dlciBvcGVuIHRvIGtlZXAgaXQgb3BlbmVkXG5cdFx0cmVmLmluc3RhbmNlLm1vdXNlRW50ZXIkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHJlZi5pbnN0YW5jZS5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3BlbiQubmV4dCgpKTtcblx0fVxuXG5cdHByaXZhdGUgY2xvc2VUb29sdGlwKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcblx0XHRcdHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcblx0XHRcdGRlbGV0ZSB0aGlzLm92ZXJsYXlSZWY7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyh0YWJpbmRleDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuXHRcdGlmICh0YWJpbmRleCA9PT0gbnVsbCkge1xuXHRcdFx0dGhpcy4jcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4Jyk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGFnID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRjb25zdCBuYXRpdmVseUZvY3VzYWJsZVRhZ3MgPSBbJ2EnLCAnYnV0dG9uJywgJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddO1xuXHRcdGNvbnN0IGlzTmF0aXZlbHlGb2N1c2FibGVUYWcgPSBuYXRpdmVseUZvY3VzYWJsZVRhZ3MuaW5jbHVkZXModGFnKTtcblxuXHRcdGNvbnN0IGhhc0FUYWJJbmRleCA9IHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgIT09IG51bGw7XG5cblx0XHRpZiAoIWlzTmF0aXZlbHlGb2N1c2FibGVUYWcgJiYgIWhhc0FUYWJJbmRleCkge1xuXHRcdFx0dGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI2hvc3QubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JywgdGFiaW5kZXgudG9TdHJpbmcoKSk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuX2lkID0gdGhpcy4jaG9zdC5uYXRpdmVFbGVtZW50LmlkIHx8IHRoaXMuI2dlbmVyYXRlZElkO1xuXHR9XG5cblx0LyoqKioqKioqKioqKioqKioqKioqKipcblx0ICpcblx0ICogTEVHQUNZIFNUVUZGIFRPIEhBTkRMRSBFWElTVElORyBQT1NJVElPTlNcblx0ICpcblx0ICoqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdHByaXZhdGUgbGVnYWN5UG9zaXRpb25CdWlsZGVyKCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG5cdFx0Y29uc3QgY29ubmVjdGlvblBvc2l0aW9uOiBPcmlnaW5Db25uZWN0aW9uUG9zaXRpb24gPSB7XG5cdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxuXHRcdFx0b3JpZ2luWTogJ3RvcCcsXG5cdFx0fTtcblxuXHRcdC8vIFBvc2l0aW9uXG5cdFx0Y29uc3QgcG9zaXRpb24gPSB0aGlzLmx1VG9vbHRpcFBvc2l0aW9uO1xuXHRcdGlmIChwb3NpdGlvbiA9PT0gJ2Fib3ZlJykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkgPSAndG9wJztcblx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAnYmVsb3cnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWSA9ICdib3R0b20nO1xuXHRcdH0gZWxzZSBpZiAocG9zaXRpb24gPT09ICdiZWZvcmUnKSB7XG5cdFx0XHRjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCA9ICdzdGFydCc7XG5cdFx0fSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ2FmdGVyJykge1xuXHRcdFx0Y29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblggPSAnZW5kJztcblx0XHR9XG5cblx0XHQvLyBBbGlnbm1lbnRcblx0XHRpZiAocG9zaXRpb24gPT09ICdhYm92ZScgfHwgcG9zaXRpb24gPT09ICdiZWxvdycpIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YID0gJ2NlbnRlcic7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZID0gJ2NlbnRlcic7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb3ZlcmxheVBvc2l0aW9uOiBPdmVybGF5Q29ubmVjdGlvblBvc2l0aW9uID0ge1xuXHRcdFx0b3ZlcmxheVg6ICdzdGFydCcsXG5cdFx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdFx0fTtcblxuXHRcdGlmIChwb3NpdGlvbiA9PT0gJ2Fib3ZlJyB8fCBwb3NpdGlvbiA9PT0gJ2JlbG93Jykge1xuXHRcdFx0b3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYID0gY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblg7XG5cdFx0XHRvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkgPSBwb3NpdGlvbiA9PT0gJ2Fib3ZlJyA/ICdib3R0b20nIDogJ3RvcCc7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WCA9IHBvc2l0aW9uID09PSAnYmVmb3JlJyA/ICdlbmQnIDogJ3N0YXJ0Jztcblx0XHRcdG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSA9IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLiNvdmVybGF5XG5cdFx0XHQucG9zaXRpb24oKVxuXHRcdFx0LmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy4jaG9zdClcblx0XHRcdC53aXRoUG9zaXRpb25zKFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YLFxuXHRcdFx0XHRcdG9yaWdpblk6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5ZLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgsXG5cdFx0XHRcdFx0b3ZlcmxheVk6IG92ZXJsYXlQb3NpdGlvbi5vdmVybGF5WSxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IGNvbm5lY3Rpb25Qb3NpdGlvbi5vcmlnaW5YLFxuXHRcdFx0XHRcdG9yaWdpblk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkpLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgsXG5cdFx0XHRcdFx0b3ZlcmxheVk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlZKSxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IHRoaXMuaW52ZXJ0SG9yaXpvbnRhbFBvcyhjb25uZWN0aW9uUG9zaXRpb24ub3JpZ2luWCksXG5cdFx0XHRcdFx0b3JpZ2luWTogY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblksXG5cdFx0XHRcdFx0b3ZlcmxheVg6IHRoaXMuaW52ZXJ0SG9yaXpvbnRhbFBvcyhvdmVybGF5UG9zaXRpb24ub3ZlcmxheVgpLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiBvdmVybGF5UG9zaXRpb24ub3ZlcmxheVksXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRvcmlnaW5YOiB0aGlzLmludmVydEhvcml6b250YWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblgpLFxuXHRcdFx0XHRcdG9yaWdpblk6IHRoaXMuaW52ZXJ0VmVydGljYWxQb3MoY29ubmVjdGlvblBvc2l0aW9uLm9yaWdpblkpLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiB0aGlzLmludmVydEhvcml6b250YWxQb3Mob3ZlcmxheVBvc2l0aW9uLm92ZXJsYXlYKSxcblx0XHRcdFx0XHRvdmVybGF5WTogdGhpcy5pbnZlcnRWZXJ0aWNhbFBvcyhvdmVybGF5UG9zaXRpb24ub3ZlcmxheVkpLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSk7XG5cdH1cblxuXHRwcml2YXRlIGludmVydFZlcnRpY2FsUG9zKHk6IFZlcnRpY2FsQ29ubmVjdGlvblBvcyk6IFZlcnRpY2FsQ29ubmVjdGlvblBvcyB7XG5cdFx0aWYgKHkgPT09ICd0b3AnKSB7XG5cdFx0XHRyZXR1cm4gJ2JvdHRvbSc7XG5cdFx0fSBlbHNlIGlmICh5ID09PSAnYm90dG9tJykge1xuXHRcdFx0cmV0dXJuICd0b3AnO1xuXHRcdH1cblx0XHRyZXR1cm4geTtcblx0fVxuXG5cdHByaXZhdGUgaW52ZXJ0SG9yaXpvbnRhbFBvcyh4OiBIb3Jpem9udGFsQ29ubmVjdGlvblBvcyk6IEhvcml6b250YWxDb25uZWN0aW9uUG9zIHtcblx0XHRpZiAoeCA9PT0gJ2VuZCcpIHtcblx0XHRcdHJldHVybiAnc3RhcnQnO1xuXHRcdH0gZWxzZSBpZiAoeCA9PT0gJ3N0YXJ0Jykge1xuXHRcdFx0cmV0dXJuICdlbmQnO1xuXHRcdH1cblx0XHRyZXR1cm4geDtcblx0fVxufVxuIl19
|
|
@@ -48,11 +48,11 @@ export class LuUserTileComponent {
|
|
|
48
48
|
return this._role;
|
|
49
49
|
}
|
|
50
50
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LuUserTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: LuUserTileComponent, selector: "lu-user-tile", inputs: { user: "user", displayFormat: "displayFormat", role: "role" }, host: { classAttribute: "userTile" }, ngImport: i0, template: "<lu-user-picture [user]=\"user\" [displayFormat]=\"displayPictureFormat\"></lu-user-picture>\n<div class=\"userTile-content\">\n\t<div class=\"userTile-content-name\">{{ user | luUserDisplay: displayFormat }}</div>\n\t<div class=\"userTile-content-info\">{{ role ? role : user?.jobTitle }}</div>\n\t<div class=\"user-tile-footnote\"><ng-content></ng-content></div>\n</div>\n", styles: [".userTile{--components-userTile-title-fontSize: var(--sizes-M-fontSize);--components-userTile-title-lineHeight: var(--sizes-M-lineHeight);--components-userTile-info-fontSize: var(--sizes-S-fontSize);--components-userTile-info-lineHeight: var(--sizes-S-lineHeight);display:flex;align-items:center;gap:var(--pr-t-spacings-150);overflow-wrap:break-word}.userTile .avatar{display:flex;align-self:start;align-items:center;height:calc(var(--components-userTile-title-lineHeight) + var(--components-userTile-info-lineHeight))
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: LuUserTileComponent, selector: "lu-user-tile", inputs: { user: "user", displayFormat: "displayFormat", role: "role" }, host: { classAttribute: "userTile" }, ngImport: i0, template: "<lu-user-picture [user]=\"user\" [displayFormat]=\"displayPictureFormat\"></lu-user-picture>\n<div class=\"userTile-content\">\n\t<div class=\"userTile-content-name\">{{ user | luUserDisplay: displayFormat }}</div>\n\t<div class=\"userTile-content-info\">{{ role ? role : user?.jobTitle }}</div>\n\t<div class=\"user-tile-footnote\"><ng-content></ng-content></div>\n</div>\n", styles: [".userTile{--components-userTile-title-fontSize: var(--sizes-M-fontSize);--components-userTile-title-lineHeight: var(--sizes-M-lineHeight);--components-userTile-info-fontSize: var(--sizes-S-fontSize);--components-userTile-info-lineHeight: var(--sizes-S-lineHeight);display:flex;align-items:center;gap:var(--pr-t-spacings-150);overflow-wrap:break-word}.userTile .avatar{display:flex;align-self:start;align-items:center;min-height:var(--components-avatar-size)}.userTile:has(.userTile-content-info,.user-tile-label) .avatar{height:calc(var(--components-userTile-title-lineHeight) + var(--components-userTile-info-lineHeight))}.userTile-content,.user-info{display:flex;flex-direction:column;margin:0}.userTile-content-name,.user-tile-title{font-size:var(--components-userTile-title-fontSize);line-height:var(--components-userTile-title-lineHeight);color:var(--palettes-neutral-800);margin:0}.userTile-content-info,.user-tile-label{font-size:var(--components-userTile-info-fontSize);line-height:var(--components-userTile-info-lineHeight);color:var(--palettes-neutral-600);margin:0}.user-tile-footnote{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.userTile.mod-nameOnly .user-tile-label,.userTile.mod-nameOnly .user-tile-footnote{display:none}.userTile.mod-XS{--components-userTile-title-fontSize: var(--sizes-S-fontSize);--components-userTile-title-lineHeight: var(--sizes-S-lineHeight);--components-userTile-info-fontSize: var(--sizes-XS-fontSize);--components-userTile-info-lineHeight: var(--sizes-XS-lineHeight)}.userTile.mod-XS .avatar{--components-avatar-size: 1.5rem;--components-avatar-fontSize: var(--sizes-XS-fontSize);--components-avatar-placeholder-size: .75rem;--components-avatar-border: 1px}.userTile.mod-S .avatar{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--sizes-S-fontSize);--components-avatar-placeholder-size: 1rem}.userTile.mod-L .avatar{--components-avatar-size: 3rem;--components-avatar-fontSize: var(--sizes-L-fontSize);--components-avatar-placeholder-size: 1.75rem}.userTile.mod-XL .avatar{--components-avatar-size: 4rem;--components-avatar-fontSize: var(--sizes-XL-fontSize);--components-avatar-placeholder-size: 2rem}.userTile.mod-XXL .avatar{--components-avatar-size: 5rem;--components-avatar-fontSize: var(--sizes-XXL-fontSize);--components-avatar-placeholder-size: 2.25rem}.userTile.mod-XXXL .avatar{--components-avatar-size: 6rem;--components-avatar-fontSize: var(--sizes-XXXL-fontSize);--components-avatar-placeholder-size: 2.5rem}\n"], dependencies: [{ kind: "component", type: i1.LuUserPictureComponent, selector: "lu-user-picture", inputs: ["displayFormat", "imageLoadingAttribute", "user"] }, { kind: "pipe", type: i2.LuUserDisplayPipe, name: "luUserDisplay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
52
52
|
}
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LuUserTileComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
|
-
args: [{ selector: 'lu-user-tile', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'userTile' }, encapsulation: ViewEncapsulation.None, template: "<lu-user-picture [user]=\"user\" [displayFormat]=\"displayPictureFormat\"></lu-user-picture>\n<div class=\"userTile-content\">\n\t<div class=\"userTile-content-name\">{{ user | luUserDisplay: displayFormat }}</div>\n\t<div class=\"userTile-content-info\">{{ role ? role : user?.jobTitle }}</div>\n\t<div class=\"user-tile-footnote\"><ng-content></ng-content></div>\n</div>\n", styles: [".userTile{--components-userTile-title-fontSize: var(--sizes-M-fontSize);--components-userTile-title-lineHeight: var(--sizes-M-lineHeight);--components-userTile-info-fontSize: var(--sizes-S-fontSize);--components-userTile-info-lineHeight: var(--sizes-S-lineHeight);display:flex;align-items:center;gap:var(--pr-t-spacings-150);overflow-wrap:break-word}.userTile .avatar{display:flex;align-self:start;align-items:center;height:calc(var(--components-userTile-title-lineHeight) + var(--components-userTile-info-lineHeight))
|
|
55
|
+
args: [{ selector: 'lu-user-tile', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'userTile' }, encapsulation: ViewEncapsulation.None, template: "<lu-user-picture [user]=\"user\" [displayFormat]=\"displayPictureFormat\"></lu-user-picture>\n<div class=\"userTile-content\">\n\t<div class=\"userTile-content-name\">{{ user | luUserDisplay: displayFormat }}</div>\n\t<div class=\"userTile-content-info\">{{ role ? role : user?.jobTitle }}</div>\n\t<div class=\"user-tile-footnote\"><ng-content></ng-content></div>\n</div>\n", styles: [".userTile{--components-userTile-title-fontSize: var(--sizes-M-fontSize);--components-userTile-title-lineHeight: var(--sizes-M-lineHeight);--components-userTile-info-fontSize: var(--sizes-S-fontSize);--components-userTile-info-lineHeight: var(--sizes-S-lineHeight);display:flex;align-items:center;gap:var(--pr-t-spacings-150);overflow-wrap:break-word}.userTile .avatar{display:flex;align-self:start;align-items:center;min-height:var(--components-avatar-size)}.userTile:has(.userTile-content-info,.user-tile-label) .avatar{height:calc(var(--components-userTile-title-lineHeight) + var(--components-userTile-info-lineHeight))}.userTile-content,.user-info{display:flex;flex-direction:column;margin:0}.userTile-content-name,.user-tile-title{font-size:var(--components-userTile-title-fontSize);line-height:var(--components-userTile-title-lineHeight);color:var(--palettes-neutral-800);margin:0}.userTile-content-info,.user-tile-label{font-size:var(--components-userTile-info-fontSize);line-height:var(--components-userTile-info-lineHeight);color:var(--palettes-neutral-600);margin:0}.user-tile-footnote{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.userTile.mod-nameOnly .user-tile-label,.userTile.mod-nameOnly .user-tile-footnote{display:none}.userTile.mod-XS{--components-userTile-title-fontSize: var(--sizes-S-fontSize);--components-userTile-title-lineHeight: var(--sizes-S-lineHeight);--components-userTile-info-fontSize: var(--sizes-XS-fontSize);--components-userTile-info-lineHeight: var(--sizes-XS-lineHeight)}.userTile.mod-XS .avatar{--components-avatar-size: 1.5rem;--components-avatar-fontSize: var(--sizes-XS-fontSize);--components-avatar-placeholder-size: .75rem;--components-avatar-border: 1px}.userTile.mod-S .avatar{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--sizes-S-fontSize);--components-avatar-placeholder-size: 1rem}.userTile.mod-L .avatar{--components-avatar-size: 3rem;--components-avatar-fontSize: var(--sizes-L-fontSize);--components-avatar-placeholder-size: 1.75rem}.userTile.mod-XL .avatar{--components-avatar-size: 4rem;--components-avatar-fontSize: var(--sizes-XL-fontSize);--components-avatar-placeholder-size: 2rem}.userTile.mod-XXL .avatar{--components-avatar-size: 5rem;--components-avatar-fontSize: var(--sizes-XXL-fontSize);--components-avatar-placeholder-size: 2.25rem}.userTile.mod-XXXL .avatar{--components-avatar-size: 6rem;--components-avatar-fontSize: var(--sizes-XXXL-fontSize);--components-avatar-placeholder-size: 2.5rem}\n"] }]
|
|
56
56
|
}], propDecorators: { user: [{
|
|
57
57
|
type: Input
|
|
58
58
|
}], displayFormat: [{
|
|
@@ -197,11 +197,11 @@ class CalloutDisclosureComponent {
|
|
|
197
197
|
};
|
|
198
198
|
}
|
|
199
199
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CalloutDisclosureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
200
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CalloutDisclosureComponent, isStandalone: true, selector: "lu-callout-disclosure", inputs: { icon: "icon", heading: "heading", palette: "palette", size: "size", state: "state", open: ["open", "open", booleanAttribute] }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<details class=\"calloutDisclosure\" [ngClass]=\"calloutClasses\" [class.mod-iconless]=\"!icon\" [open]=\"open\" (toggle)=\"onToggle($event)\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (state | luCalloutIcon: icon; as calloutIcon) {\n\t\t<
|
|
200
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CalloutDisclosureComponent, isStandalone: true, selector: "lu-callout-disclosure", inputs: { icon: "icon", heading: "heading", palette: "palette", size: "size", state: "state", open: ["open", "open", booleanAttribute] }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<details class=\"calloutDisclosure\" [ngClass]=\"calloutClasses\" [class.mod-iconless]=\"!icon\" [open]=\"open\" (toggle)=\"onToggle($event)\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (state | luCalloutIcon: icon; as calloutIcon) {\n\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" [icon]=\"calloutIcon\"></lu-icon>\n\t\t}\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: var(--pr-t-spacings-150);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-neutral-50));color:var(--palettes-neutral-800);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300))}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-neutral-800);--commons-text-link-hover: var(--palettes-neutral-700)}.calloutDisclosure-summary{display:flex;gap:var(--pr-t-spacings-150);padding:var(--pr-t-spacings-100) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-neutral-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary::-webkit-details-marker{display:none}.calloutDisclosure-summary-icon{color:var(--palettes-700, var(--palettes-neutral-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{align-self:start;color:var(--palettes-neutral-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--pr-t-spacings-100) 0 var(--pr-t-spacings-200);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-neutral-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{--components-calloutFeedbackList-gap: var(--pr-t-spacings-100);--components-calloutFeedbackList-fontSize: var(--sizes-S-fontSize);--components-calloutFeedbackList-lineHeight: var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.calloutDisclosure.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}lu-callout-disclosure{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "lu-icon", inputs: ["icon", "alt", "size", "color"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "pipe", type: CalloutIconPipe, name: "luCalloutIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
201
201
|
}
|
|
202
202
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CalloutDisclosureComponent, decorators: [{
|
|
203
203
|
type: Component,
|
|
204
|
-
args: [{ selector: 'lu-callout-disclosure', standalone: true, imports: [CommonModule, IconComponent, NgClass, PortalDirective, CalloutIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<details class=\"calloutDisclosure\" [ngClass]=\"calloutClasses\" [class.mod-iconless]=\"!icon\" [open]=\"open\" (toggle)=\"onToggle($event)\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (state | luCalloutIcon: icon; as calloutIcon) {\n\t\t<
|
|
204
|
+
args: [{ selector: 'lu-callout-disclosure', standalone: true, imports: [CommonModule, IconComponent, NgClass, PortalDirective, CalloutIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<details class=\"calloutDisclosure\" [ngClass]=\"calloutClasses\" [class.mod-iconless]=\"!icon\" [open]=\"open\" (toggle)=\"onToggle($event)\">\n\t<summary class=\"calloutDisclosure-summary\">\n\t\t@if (state | luCalloutIcon: icon; as calloutIcon) {\n\t\t<lu-icon class=\"calloutDisclosure-summary-icon\" [icon]=\"calloutIcon\"></lu-icon>\n\t\t}\n\t\t<span class=\"calloutDisclosure-summary-title\">\n\t\t\t<ng-container *luPortal=\"heading\"></ng-container>\n\t\t</span>\n\t\t<lu-icon class=\"calloutDisclosure-summary-chevron\" icon=\"arrowChevronBottom\"></lu-icon>\n\t</summary>\n\t<div class=\"calloutDisclosure-details\">\n\t\t<ng-content></ng-content>\n\t</div>\n</details>\n", styles: [".calloutDisclosure{--components-calloutDisclosure-paddingHorizontal: var(--pr-t-spacings-150);border-radius:var(--commons-borderRadius-L);background-color:var(--palettes-50, var(--palettes-neutral-50));color:var(--palettes-neutral-800);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300))}.calloutDisclosure a,.calloutDisclosure .link{--commons-text-link-color: var(--palettes-neutral-800);--commons-text-link-hover: var(--palettes-neutral-700)}.calloutDisclosure-summary{display:flex;gap:var(--pr-t-spacings-150);padding:var(--pr-t-spacings-100) var(--components-calloutDisclosure-paddingHorizontal);border-radius:var(--commons-borderRadius-L);transition:background-color var(--commons-animations-durations-fast) ease;cursor:pointer;z-index:1;position:relative}.calloutDisclosure-summary:hover{background-color:var(--palettes-100, var(--palettes-neutral-100))}.calloutDisclosure-summary:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px;border-radius:6px}.calloutDisclosure-summary:focus-visible~.calloutDisclosure-details{box-shadow:none}.calloutDisclosure-summary::-webkit-details-marker{display:none}.calloutDisclosure-summary-icon{color:var(--palettes-700, var(--palettes-neutral-700))}.calloutDisclosure-summary-title{font-weight:600}.calloutDisclosure-summary-chevron{align-self:start;color:var(--palettes-neutral-700);margin-left:auto;transition:transform var(--commons-animations-durations-standard) ease}.calloutDisclosure-details{margin:0 calc(var(--components-calloutDisclosure-paddingHorizontal) + 2.25rem);padding:var(--pr-t-spacings-100) 0 var(--pr-t-spacings-200);box-shadow:0 -1px 0 0 var(--palettes-200, var(--palettes-neutral-200))}.calloutDisclosure[open] .calloutDisclosure-summary-chevron{transform:rotate(-180deg)}.calloutDisclosure.mod-S .calloutDisclosure-summary-title{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutDisclosure-summary-icon,.calloutDisclosure.mod-S .calloutDisclosure-summary-chevron{--icon-size: 1.25rem}.calloutDisclosure.mod-S .calloutDisclosure-details{margin-left:calc(var(--components-calloutDisclosure-paddingHorizontal) + 2rem)}.calloutDisclosure.mod-S .calloutFeedbackList{--components-calloutFeedbackList-gap: var(--pr-t-spacings-100);--components-calloutFeedbackList-fontSize: var(--sizes-S-fontSize);--components-calloutFeedbackList-lineHeight: var(--sizes-S-lineHeight)}.calloutDisclosure.mod-S .calloutFeedbackList .button{--icon-size: 1rem;--components-button-font-size: var(--sizes-XS-fontSize);--components-button-line-height: var(--sizes-XS-lineHeight);--components-button-padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);--components-button-gap: var(--pr-t-spacings-50)}.calloutDisclosure.mod-S .calloutFeedbackList .button .numericBadge{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--commons-borderRadius-M);--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}.calloutDisclosure.mod-iconless .calloutDisclosure-summary-icon{display:none}.calloutDisclosure.mod-iconless .calloutDisclosure-details{margin-left:var(--components-calloutDisclosure-paddingHorizontal)}lu-callout-disclosure{display:block}\n"] }]
|
|
205
205
|
}], propDecorators: { icon: [{
|
|
206
206
|
type: Input
|
|
207
207
|
}], heading: [{
|