@leanix/components 0.4.300 → 0.4.302
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/esm2022/lib/core-ui/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/core-ui/tooltip/tooltip.directive.mjs +8 -4
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.mjs +7 -5
- package/fesm2022/leanix-components.mjs +15 -11
- package/fesm2022/leanix-components.mjs.map +1 -1
- package/lib/core-ui/tooltip/tooltip.directive.d.ts +3 -1
- package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.d.ts +3 -1
- package/package.json +1 -1
@@ -11,11 +11,11 @@ export class TooltipComponent {
|
|
11
11
|
};
|
12
12
|
}
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: TooltipComponent, isStandalone: true, selector: "lx-tooltip", inputs: { content: "content", isHtmlContent: "isHtmlContent", position: "position" }, ngImport: i0, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:12px;font-weight:400;text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: TooltipComponent, isStandalone: true, selector: "lx-tooltip", inputs: { content: "content", isHtmlContent: "isHtmlContent", position: "position" }, host: { attributes: { "role": "tooltip" } }, ngImport: i0, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:12px;font-weight:400;text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
15
15
|
}
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipComponent, decorators: [{
|
17
17
|
type: Component,
|
18
|
-
args: [{ selector: 'lx-tooltip', standalone: true, imports: [NgIf, NgClass], template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:12px;font-weight:400;text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"] }]
|
18
|
+
args: [{ selector: 'lx-tooltip', standalone: true, imports: [NgIf, NgClass], host: { role: 'tooltip' }, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:12px;font-weight:400;text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"] }]
|
19
19
|
}], propDecorators: { content: [{
|
20
20
|
type: Input
|
21
21
|
}], isHtmlContent: [{
|
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
23
23
|
}], position: [{
|
24
24
|
type: Input
|
25
25
|
}] } });
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlLXVpL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlLXVpL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVdqRCxNQUFNLE9BQU8sZ0JBQWdCO0lBUjdCO1FBU1csWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGFBQVEsR0FBb0I7WUFDbkMsQ0FBQyxFQUFFLFFBQVE7WUFDWCxDQUFDLEVBQUUsS0FBSztTQUNULENBQUM7S0FDSDs4R0FQWSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix5TUNaN0Isb1FBSUEsOGpDREtZLElBQUksNkZBQUUsT0FBTzs7MkZBR1osZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQ2xCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTs4QkFHaEIsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi90b29sdGlwLXBvc2l0aW9uLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LXRvb2x0aXAnLFxuICBzdHlsZVVybHM6IFsnLi90b29sdGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nQ2xhc3NdLFxuICBob3N0OiB7IHJvbGU6ICd0b29sdGlwJyB9XG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQge1xuICBASW5wdXQoKSBjb250ZW50ID0gJyc7XG4gIEBJbnB1dCgpIGlzSHRtbENvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9IHtcbiAgICB4OiAnY2VudGVyJyxcbiAgICB5OiAndG9wJ1xuICB9O1xufVxuIiwiPGRpdiAqbmdJZj1cIiFpc0h0bWxDb250ZW50OyBlbHNlIGh0bWxUb29sdGlwXCIgW25nQ2xhc3NdPVwiWyd4LScgKyBwb3NpdGlvbi54LCAneS0nICsgcG9zaXRpb24ueV1cIj57eyBjb250ZW50IH19PC9kaXY+XG48bmctdGVtcGxhdGUgI2h0bWxUb29sdGlwPlxuICA8ZGl2IFtpbm5lckh0bWxdPVwiY29udGVudFwiIFtuZ0NsYXNzXT1cIlsneC0nICsgcG9zaXRpb24ueCwgJ3ktJyArIHBvc2l0aW9uLnldXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
@@ -5,6 +5,7 @@ import { isValidX, isValidY } from './tooltip-position.interface';
|
|
5
5
|
import { TooltipComponent } from './tooltip.component';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
import * as i1 from "@angular/cdk/overlay";
|
8
|
+
import * as i2 from "@angular/cdk/a11y";
|
8
9
|
export class TooltipDirective {
|
9
10
|
set lxTooltipPosition(value) {
|
10
11
|
this.position = {
|
@@ -15,10 +16,11 @@ export class TooltipDirective {
|
|
15
16
|
get positionStrategy() {
|
16
17
|
return this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([toCdkPosition(this.position)]);
|
17
18
|
}
|
18
|
-
constructor(overlayPositionBuilder, elementRef, overlay) {
|
19
|
+
constructor(overlayPositionBuilder, elementRef, overlay, ariaDescriber) {
|
19
20
|
this.overlayPositionBuilder = overlayPositionBuilder;
|
20
21
|
this.elementRef = elementRef;
|
21
22
|
this.overlay = overlay;
|
23
|
+
this.ariaDescriber = ariaDescriber;
|
22
24
|
this.position = {
|
23
25
|
x: 'center',
|
24
26
|
y: 'top'
|
@@ -58,6 +60,7 @@ export class TooltipDirective {
|
|
58
60
|
this.tooltipRef.instance.content = this.content;
|
59
61
|
this.tooltipRef.instance.isHtmlContent = this.lxTooltipIsHtmlContent;
|
60
62
|
this.tooltipRef.instance.position = this.position;
|
63
|
+
this.ariaDescriber.describe(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement);
|
61
64
|
}
|
62
65
|
}, this.lxTooltipDelay ?? 90);
|
63
66
|
}
|
@@ -67,9 +70,10 @@ export class TooltipDirective {
|
|
67
70
|
}
|
68
71
|
hide() {
|
69
72
|
this.mouseOrFocusOnHost = false;
|
73
|
+
this.ariaDescriber.removeDescription(this.elementRef.nativeElement, this.tooltipRef?.location.nativeElement);
|
70
74
|
this.overlayRef?.dispose();
|
71
75
|
}
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Directive }); }
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1.Overlay }, { token: i2.AriaDescriber }], target: i0.ɵɵFactoryTarget.Directive }); }
|
73
77
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: TooltipDirective, isStandalone: true, selector: "[lxTooltip]", inputs: { content: ["lxTooltip", "content"], lxTooltipPosition: "lxTooltipPosition", lxTooltipDelay: "lxTooltipDelay", lxTooltipIsHtmlContent: "lxTooltipIsHtmlContent" }, host: { listeners: { "mouseenter": "show()", "focus": "show()", "mouseleave": "hide()", "click": "hide()", "blur": "hide()" } }, usesOnChanges: true, ngImport: i0 }); }
|
74
78
|
}
|
75
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipDirective, decorators: [{
|
@@ -78,7 +82,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
78
82
|
selector: '[lxTooltip]',
|
79
83
|
standalone: true
|
80
84
|
}]
|
81
|
-
}], ctorParameters: () => [{ type: i1.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1.Overlay }], propDecorators: { content: [{
|
85
|
+
}], ctorParameters: () => [{ type: i1.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1.Overlay }, { type: i2.AriaDescriber }], propDecorators: { content: [{
|
82
86
|
type: Input,
|
83
87
|
args: ['lxTooltip']
|
84
88
|
}], lxTooltipPosition: [{
|
@@ -103,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
103
107
|
type: HostListener,
|
104
108
|
args: ['blur']
|
105
109
|
}] } });
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlLXVpL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBZ0IsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQW1CLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQU12RCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLElBQWEsaUJBQWlCLENBQUMsS0FBMkM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNkLENBQUMsRUFBRSxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtZQUNsRCxDQUFDLEVBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFZRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQUVELFlBQ1Usc0JBQThDLEVBQzlDLFVBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLGFBQTRCO1FBSDVCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBbkI5QixhQUFRLEdBQW9CO1lBQ2xDLENBQUMsRUFBRSxRQUFRO1lBQ1gsQ0FBQyxFQUFFLEtBQUs7U0FDVCxDQUFDO1FBRU8sMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBSXpDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztJQVd6QyxDQUFDO0lBRUosV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ25EO1lBQ0QsSUFBSSxPQUFPLENBQUMsd0JBQXdCLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQzthQUN0RTtZQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN0QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxDQUFDO2lCQUNuQztxQkFBTTtvQkFDTCxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO2lCQUMzQjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBSUQsSUFBSTtRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztnQkFDbkYsTUFBTSxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNwRztRQUNILENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFLRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0FqRlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtzS0FFcUIsT0FBTztzQkFBMUIsS0FBSzt1QkFBQyxXQUFXO2dCQUNMLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFVRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkF5Q04sSUFBSTtzQkFGSCxZQUFZO3VCQUFDLFlBQVk7O3NCQUN6QixZQUFZO3VCQUFDLE9BQU87Z0JBd0JyQixJQUFJO3NCQUhILFlBQVk7dUJBQUMsWUFBWTs7c0JBQ3pCLFlBQVk7dUJBQUMsT0FBTzs7c0JBQ3BCLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyaWFEZXNjcmliZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UG9zaXRpb25CdWlsZGVyLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvQ2RrUG9zaXRpb24gfSBmcm9tICcuL3RvLWNkay1wb3NpdGlvbi5mdW5jdGlvbic7XG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24sIGlzVmFsaWRYLCBpc1ZhbGlkWSB9IGZyb20gJy4vdG9vbHRpcC1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbHhUb29sdGlwXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCdseFRvb2x0aXAnKSBjb250ZW50Pzogc3RyaW5nIHwgbnVsbDtcbiAgQElucHV0KCkgc2V0IGx4VG9vbHRpcFBvc2l0aW9uKHZhbHVlOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH0gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnBvc2l0aW9uID0ge1xuICAgICAgeDogdmFsdWUgJiYgaXNWYWxpZFgodmFsdWUueCkgPyB2YWx1ZS54IDogJ2NlbnRlcicsXG4gICAgICB5OiB2YWx1ZSAmJiBpc1ZhbGlkWSh2YWx1ZS55KSA/IHZhbHVlLnkgOiAndG9wJ1xuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBwb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0ge1xuICAgIHg6ICdjZW50ZXInLFxuICAgIHk6ICd0b3AnXG4gIH07XG4gIEBJbnB1dCgpIGx4VG9vbHRpcERlbGF5PzogbnVtYmVyO1xuICBASW5wdXQoKSBseFRvb2x0aXBJc0h0bWxDb250ZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSB0b29sdGlwUmVmPzogQ29tcG9uZW50UmVmPFRvb2x0aXBDb21wb25lbnQ+O1xuICBwcml2YXRlIG1vdXNlT3JGb2N1c09uSG9zdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBwb3NpdGlvblN0cmF0ZWd5KCkge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpLndpdGhQb3NpdGlvbnMoW3RvQ2RrUG9zaXRpb24odGhpcy5wb3NpdGlvbildKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheVBvc2l0aW9uQnVpbGRlcjogT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgYXJpYURlc2NyaWJlcjogQXJpYURlc2NyaWJlclxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYgJiYgY2hhbmdlc1snbHhUb29sdGlwUG9zaXRpb24nXSkge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5wb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG4gICAgaWYgKHRoaXMudG9vbHRpcFJlZikge1xuICAgICAgaWYgKGNoYW5nZXNbJ2x4VG9vbHRpcFBvc2l0aW9uJ10pIHtcbiAgICAgICAgdGhpcy50b29sdGlwUmVmLmluc3RhbmNlLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbjtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VzWydseFRvb2x0aXBJc0h0bWxDb250ZW50J10pIHtcbiAgICAgICAgdGhpcy50b29sdGlwUmVmLmluc3RhbmNlLmlzSHRtbENvbnRlbnQgPSB0aGlzLmx4VG9vbHRpcElzSHRtbENvbnRlbnQ7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlc1snY29udGVudCddKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcbiAgICAgICAgICB0aGlzLnRvb2x0aXBSZWYuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuY29udGVudDtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIHNob3coKSB7XG4gICAgdGhpcy5tb3VzZU9yRm9jdXNPbkhvc3QgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkgJiYgdGhpcy5tb3VzZU9yRm9jdXNPbkhvc3QgJiYgdGhpcy5jb250ZW50KSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoeyBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnBvc2l0aW9uU3RyYXRlZ3kgfSk7XG4gICAgICAgIGNvbnN0IHRvb2x0aXBQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFRvb2x0aXBDb21wb25lbnQpO1xuICAgICAgICB0aGlzLnRvb2x0aXBSZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRvb2x0aXBQb3J0YWwpO1xuICAgICAgICB0aGlzLnRvb2x0aXBSZWYuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuY29udGVudDtcbiAgICAgICAgdGhpcy50b29sdGlwUmVmLmluc3RhbmNlLmlzSHRtbENvbnRlbnQgPSB0aGlzLmx4VG9vbHRpcElzSHRtbENvbnRlbnQ7XG4gICAgICAgIHRoaXMudG9vbHRpcFJlZi5pbnN0YW5jZS5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XG4gICAgICAgIHRoaXMuYXJpYURlc2NyaWJlci5kZXNjcmliZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy50b29sdGlwUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0sIHRoaXMubHhUb29sdGlwRGVsYXkgPz8gOTApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5tb3VzZU9yRm9jdXNPbkhvc3QgPSBmYWxzZTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBoaWRlKCkge1xuICAgIHRoaXMubW91c2VPckZvY3VzT25Ib3N0ID0gZmFsc2U7XG4gICAgdGhpcy5hcmlhRGVzY3JpYmVyLnJlbW92ZURlc2NyaXB0aW9uKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnRvb2x0aXBSZWY/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=
|
@@ -4,19 +4,21 @@ import { TooltipDirective } from '../../../../core-ui/tooltip/tooltip.directive'
|
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
import * as i1 from "@angular/cdk/drag-drop";
|
6
6
|
import * as i2 from "@angular/cdk/overlay";
|
7
|
+
import * as i3 from "@angular/cdk/a11y";
|
7
8
|
export class KeyboardSortableItemDirective {
|
8
9
|
get isSortable() {
|
9
10
|
return !this.draggableItem.disabled;
|
10
11
|
}
|
11
|
-
constructor(draggableItem, overlayPositionBuilder, element, overlay) {
|
12
|
+
constructor(draggableItem, overlayPositionBuilder, element, overlay, ariaDescriber) {
|
12
13
|
this.draggableItem = draggableItem;
|
13
14
|
this.overlayPositionBuilder = overlayPositionBuilder;
|
14
15
|
this.element = element;
|
15
16
|
this.overlay = overlay;
|
17
|
+
this.ariaDescriber = ariaDescriber;
|
16
18
|
this.isSortingByKeyboardChange = new EventEmitter();
|
17
19
|
this.itemBeingSortedChange = new EventEmitter();
|
18
20
|
this.sortItemsWithKeyboard = new EventEmitter();
|
19
|
-
this.tooltipDirective = new TooltipDirective(this.overlayPositionBuilder, this.element, this.overlay);
|
21
|
+
this.tooltipDirective = new TooltipDirective(this.overlayPositionBuilder, this.element, this.overlay, this.ariaDescriber);
|
20
22
|
this.isBeingSorted = false;
|
21
23
|
this.preventBlur = false;
|
22
24
|
this.focusWithKeyboardReplaySubject$ = new ReplaySubject(1);
|
@@ -75,7 +77,7 @@ export class KeyboardSortableItemDirective {
|
|
75
77
|
}
|
76
78
|
}
|
77
79
|
}
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: KeyboardSortableItemDirective, deps: [{ token: i1.CdkDrag }, { token: i2.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i2.Overlay }], target: i0.ɵɵFactoryTarget.Directive }); }
|
80
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: KeyboardSortableItemDirective, deps: [{ token: i1.CdkDrag }, { token: i2.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i2.Overlay }, { token: i3.AriaDescriber }], target: i0.ɵɵFactoryTarget.Directive }); }
|
79
81
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: KeyboardSortableItemDirective, isStandalone: true, selector: "[lxKeyboardSortableItem]", inputs: { allItemsData: ["lxKeyboardSortableItem", "allItemsData"], itemData: ["lxKeyboardItemData", "itemData"], isSortingByKeyboard: "isSortingByKeyboard", itemBeingSorted: ["lxKeyboardItemBeingSorted", "itemBeingSorted"] }, outputs: { isSortingByKeyboardChange: "isSortingByKeyboardChange", itemBeingSortedChange: "lxKeyboardItemBeingSortedChange", sortItemsWithKeyboard: "sortItemsWithKeyboard", focusWithKeyboard: "focusWithKeyboard" }, host: { listeners: { "keyup.tab": "focusViaKeyboard()", "keydown.enter": "enterSortingModeEnabledByKeyboard($event)", "keydown.space": "enterSortingModeEnabledByKeyboard($event)", "blur": "leaveSortingModeEnabledByKeyboard($event)", "keydown.esc": "leaveSortingModeEnabledByKeyboard($event)", "keydown.arrowUp": "sort($event)", "keydown.arrowDown": "sort($event)" }, properties: { "attr.lxTooltip": "this.tooltipDirective", "class.isBeingSortedByKeyboard": "this.isBeingSorted" } }, usesOnChanges: true, ngImport: i0 }); }
|
80
82
|
}
|
81
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: KeyboardSortableItemDirective, decorators: [{
|
@@ -84,7 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
84
86
|
selector: '[lxKeyboardSortableItem]',
|
85
87
|
standalone: true
|
86
88
|
}]
|
87
|
-
}], ctorParameters: () => [{ type: i1.CdkDrag }, { type: i2.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i2.Overlay }], propDecorators: { allItemsData: [{
|
89
|
+
}], ctorParameters: () => [{ type: i1.CdkDrag }, { type: i2.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i2.Overlay }, { type: i3.AriaDescriber }], propDecorators: { allItemsData: [{
|
88
90
|
type: Input,
|
89
91
|
args: ['lxKeyboardSortableItem']
|
90
92
|
}], itemData: [{
|
@@ -132,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
132
134
|
type: HostListener,
|
133
135
|
args: ['keydown.arrowDown', ['$event']]
|
134
136
|
}] } });
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc29ydGFibGUtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RyYWctYW5kLWRyb3AtbGlzdC9rZXlib2FyZC1zb3J0YWJsZS1pdGVtL2tleWJvYXJkLXNvcnRhYmxlLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBTWpGLE1BQU0sT0FBTyw2QkFBNkI7SUFjeEMsSUFBSSxVQUFVO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0lBQ3RDLENBQUM7SUFLRCxZQUNVLGFBQXNCLEVBQ3RCLHNCQUE4QyxFQUM5QyxPQUFnQyxFQUNoQyxPQUFnQjtRQUhoQixrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQUN0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFuQlAsOEJBQXlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUN2QiwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUN6RywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBbUQsQ0FBQztRQUd2RSxxQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FB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QVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUMxQyxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7IENka0RyYWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS11aS90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2x4S2V5Ym9hcmRTb3J0YWJsZUl0ZW1dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgnbHhLZXlib2FyZFNvcnRhYmxlSXRlbScpIGFsbEl0ZW1zRGF0YSE6IHN0cmluZ1tdIHwgbnVsbDtcbiAgQElucHV0KCdseEtleWJvYXJkSXRlbURhdGEnKSBpdGVtRGF0YSE6IHN0cmluZztcbiAgQElucHV0KCkgaXNTb3J0aW5nQnlLZXlib2FyZCE6IGJvb2xlYW47XG4gIEBJbnB1dCgnbHhLZXlib2FyZEl0ZW1CZWluZ1NvcnRlZCcpIGl0ZW1CZWluZ1NvcnRlZD86IHN0cmluZztcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXNTb3J0aW5nQnlLZXlib2FyZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgnbHhLZXlib2FyZEl0ZW1CZWluZ1NvcnRlZENoYW5nZScpIHJlYWRvbmx5IGl0ZW1CZWluZ1NvcnRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICBAT3V0cHV0KCkgc29ydEl0ZW1zV2l0aEtleWJvYXJkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHByZXZpb3VzSW5kZXg6IG51bWJlcjsgY3VycmVudEluZGV4OiBudW1iZXIgfT4oKTtcbiAgQE91dHB1dCgpIGZvY3VzV2l0aEtleWJvYXJkITogT2JzZXJ2YWJsZTxLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZT47XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmx4VG9vbHRpcCcpIHRvb2x0aXBEaXJlY3RpdmUgPSBuZXcgVG9vbHRpcERpcmVjdGl2ZSh0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsIHRoaXMuZWxlbWVudCwgdGhpcy5vdmVybGF5KTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pc0JlaW5nU29ydGVkQnlLZXlib2FyZCcpIGlzQmVpbmdTb3J0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgaXNTb3J0YWJsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuZHJhZ2dhYmxlSXRlbS5kaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgcHJldmVudEJsdXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBmb2N1c1dpdGhLZXlib2FyZFJlcGxheVN1YmplY3QkID0gbmV3IFJlcGxheVN1YmplY3Q8S2V5Ym9hcmRTb3J0YWJsZUl0ZW1EaXJlY3RpdmU+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZHJhZ2dhYmxlSXRlbTogQ2RrRHJhZyxcbiAgICBwcml2YXRlIG92ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXlcbiAgKSB7XG4gICAgLyoqXG4gICAgICogVXNpbmcgYSBSZXBsYXlTdWJqZWN0IGhlcmUgc28gdGhhdCB0aGUgS2V5Ym9hcmRTb3J0YWJsZUxpc3REaXJlY3RpdmUgd2lsbCBhbHNvIGtub3dcbiAgICAgKiBhYm91dCBhIGZvY3VzV2l0aEtleWJvYXJkIGV2ZW50IHdoZW4gaXRzIGNvcHkgb2YgdGhlIEtleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlIENvbnRlbnRDaGlsZHJlblxuICAgICAqIHdhcyBqdXN0IGluaXRpYWxpc2VkIGFmdGVyIHRoZSBldmVudCBmaXJlZC5cbiAgICAgKi9cbiAgICB0aGlzLmZvY3VzV2l0aEtleWJvYXJkID0gdGhpcy5mb2N1c1dpdGhLZXlib2FyZFJlcGxheVN1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pc0JlaW5nU29ydGVkID0gdGhpcy5pdGVtRGF0YSA9PT0gdGhpcy5pdGVtQmVpbmdTb3J0ZWQ7XG4gICAgaWYgKHRoaXMuaXNCZWluZ1NvcnRlZCkge1xuICAgICAgLy8gZm9jdXMgYWx3YXlzIHRoZSBwcmVzc2VkIGVsZW1lbnRcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAudGFiJylcbiAgZm9jdXNWaWFLZXlib2FyZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzV2l0aEtleWJvYXJkUmVwbGF5U3ViamVjdCQubmV4dCh0aGlzKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgZW50ZXJTb3J0aW5nTW9kZUVuYWJsZWRCeUtleWJvYXJkKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgkZXZlbnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgaWYgKCRldmVudC5jb2RlID09PSAnRW50ZXInIHx8ICRldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnRvb2x0aXBEaXJlY3RpdmUuaGlkZSgpO1xuXG4gICAgICAgIHRoaXMuaXRlbUJlaW5nU29ydGVkQ2hhbmdlLmVtaXQoIXRoaXMuaXNTb3J0aW5nQnlLZXlib2FyZCA/IHRoaXMuaXRlbURhdGEgOiB1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmlzU29ydGluZ0J5S2V5Ym9hcmRDaGFuZ2UuZW1pdCghdGhpcy5pc1NvcnRpbmdCeUtleWJvYXJkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxuICBsZWF2ZVNvcnRpbmdNb2RlRW5hYmxlZEJ5S2V5Ym9hcmQoJGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy50b29sdGlwRGlyZWN0aXZlLmhpZGUoKTtcbiAgICAgIGlmICghdGhpcy5wcmV2ZW50Qmx1cikge1xuICAgICAgICB0aGlzLmlzU29ydGluZ0J5S2V5Ym9hcmRDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuaXRlbUJlaW5nU29ydGVkQ2hhbmdlLmVtaXQodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93VXAnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93RG93bicsIFsnJGV2ZW50J10pXG4gIHNvcnQoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKCRldmVudC50YXJnZXQgPT09IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLnRvb2x0aXBEaXJlY3RpdmUuaGlkZSgpO1xuICAgICAgaWYgKHRoaXMuaXNTb3J0aW5nQnlLZXlib2FyZCkge1xuICAgICAgICBjb25zdCBhbGxJdGVtc0RhdGEgPSB0aGlzLmFsbEl0ZW1zRGF0YSA/PyBbXTtcblxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gYWxsSXRlbXNEYXRhLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbSA9PT0gdGhpcy5pdGVtRGF0YSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9ICRldmVudC5jb2RlID09PSAnQXJyb3dVcCcgPyBwcmV2aW91c0luZGV4IC0gMSA6IHByZXZpb3VzSW5kZXggKyAxO1xuXG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPj0gMCAmJiBjdXJyZW50SW5kZXggPD0gYWxsSXRlbXNEYXRhLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB0aGlzLnNvcnRJdGVtc1dpdGhLZXlib2FyZC5lbWl0KHsgcHJldmlvdXNJbmRleCwgY3VycmVudEluZGV4IH0pO1xuXG4gICAgICAgICAgLy8gV2hlbiB0cmlnZ2VyaW5nIGEga2V5Ym9hcmQgZXZlbnQsIHRoZSBET00gd291bGQgXCJyZW1vdmVDaGlsZHJlblwiIG9uIHRoZSBIVE1MIGVsZW1lbnRcbiAgICAgICAgICAvLyB3aGljaCBzcGVjaWFsbHkgZm9yIFwiQXJyb3dVcFwiIGV2ZW50cyB3b3VsZCB0cmlnZ2VyIGEgXCJibHVyXCIgZXZlbnQgc2luY2UgdGhlIGVsZW1lbnRcbiAgICAgICAgICAvLyBoYXMgYmVlbiBtb3ZlZCBhYm92ZWQgdGhlIERPTSB0cmVlIGFuZCBsb3NlcyB0aGUgZm9jdXMgc3RhdGUuXG4gICAgICAgICAgdGhpcy5wcmV2ZW50Qmx1ciA9IHRydWU7XG5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnByZXZlbnRCbHVyID0gZmFsc2UpLCAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc29ydGFibGUtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RyYWctYW5kLWRyb3AtbGlzdC9rZXlib2FyZC1zb3J0YWJsZS1pdGVtL2tleWJvYXJkLXNvcnRhYmxlLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7OztBQU1qRixNQUFNLE9BQU8sNkJBQTZCO0lBbUJ4QyxJQUFJLFVBQVU7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUtELFlBQ1UsYUFBc0IsRUFDdEIsc0JBQThDLEVBQzlDLE9BQWdDLEVBQ2hDLE9BQWdCLEVBQ2hCLGFBQTRCO1FBSjVCLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQ3RCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXpCbkIsOEJBQXlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUN2QiwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUN6RywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBbUQsQ0FBQztRQUd2RSxxQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUNwRSxJQUFJLENB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OztzQkFDL0IsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYXZDLElBQUk7c0JBRkgsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzFDLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZSAqL1xuaW1wb3J0IHsgQXJpYURlc2NyaWJlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENka0RyYWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS11aS90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2x4S2V5Ym9hcmRTb3J0YWJsZUl0ZW1dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgnbHhLZXlib2FyZFNvcnRhYmxlSXRlbScpIGFsbEl0ZW1zRGF0YSE6IHN0cmluZ1tdIHwgbnVsbDtcbiAgQElucHV0KCdseEtleWJvYXJkSXRlbURhdGEnKSBpdGVtRGF0YSE6IHN0cmluZztcbiAgQElucHV0KCkgaXNTb3J0aW5nQnlLZXlib2FyZCE6IGJvb2xlYW47XG4gIEBJbnB1dCgnbHhLZXlib2FyZEl0ZW1CZWluZ1NvcnRlZCcpIGl0ZW1CZWluZ1NvcnRlZD86IHN0cmluZztcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXNTb3J0aW5nQnlLZXlib2FyZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgnbHhLZXlib2FyZEl0ZW1CZWluZ1NvcnRlZENoYW5nZScpIHJlYWRvbmx5IGl0ZW1CZWluZ1NvcnRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICBAT3V0cHV0KCkgc29ydEl0ZW1zV2l0aEtleWJvYXJkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHByZXZpb3VzSW5kZXg6IG51bWJlcjsgY3VycmVudEluZGV4OiBudW1iZXIgfT4oKTtcbiAgQE91dHB1dCgpIGZvY3VzV2l0aEtleWJvYXJkITogT2JzZXJ2YWJsZTxLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZT47XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmx4VG9vbHRpcCcpIHRvb2x0aXBEaXJlY3RpdmUgPSBuZXcgVG9vbHRpcERpcmVjdGl2ZShcbiAgICB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgdGhpcy5lbGVtZW50LFxuICAgIHRoaXMub3ZlcmxheSxcbiAgICB0aGlzLmFyaWFEZXNjcmliZXJcbiAgKTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pc0JlaW5nU29ydGVkQnlLZXlib2FyZCcpIGlzQmVpbmdTb3J0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgaXNTb3J0YWJsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuZHJhZ2dhYmxlSXRlbS5kaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgcHJldmVudEJsdXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBmb2N1c1dpdGhLZXlib2FyZFJlcGxheVN1YmplY3QkID0gbmV3IFJlcGxheVN1YmplY3Q8S2V5Ym9hcmRTb3J0YWJsZUl0ZW1EaXJlY3RpdmU+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZHJhZ2dhYmxlSXRlbTogQ2RrRHJhZyxcbiAgICBwcml2YXRlIG92ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBhcmlhRGVzY3JpYmVyOiBBcmlhRGVzY3JpYmVyXG4gICkge1xuICAgIC8qKlxuICAgICAqIFVzaW5nIGEgUmVwbGF5U3ViamVjdCBoZXJlIHNvIHRoYXQgdGhlIEtleWJvYXJkU29ydGFibGVMaXN0RGlyZWN0aXZlIHdpbGwgYWxzbyBrbm93XG4gICAgICogYWJvdXQgYSBmb2N1c1dpdGhLZXlib2FyZCBldmVudCB3aGVuIGl0cyBjb3B5IG9mIHRoZSBLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZSBDb250ZW50Q2hpbGRyZW5cbiAgICAgKiB3YXMganVzdCBpbml0aWFsaXNlZCBhZnRlciB0aGUgZXZlbnQgZmlyZWQuXG4gICAgICovXG4gICAgdGhpcy5mb2N1c1dpdGhLZXlib2FyZCA9IHRoaXMuZm9jdXNXaXRoS2V5Ym9hcmRSZXBsYXlTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNCZWluZ1NvcnRlZCA9IHRoaXMuaXRlbURhdGEgPT09IHRoaXMuaXRlbUJlaW5nU29ydGVkO1xuICAgIGlmICh0aGlzLmlzQmVpbmdTb3J0ZWQpIHtcbiAgICAgIC8vIGZvY3VzIGFsd2F5cyB0aGUgcHJlc3NlZCBlbGVtZW50XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwLnRhYicpXG4gIGZvY3VzVmlhS2V5Ym9hcmQoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c1dpdGhLZXlib2FyZFJlcGxheVN1YmplY3QkLm5leHQodGhpcyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5zcGFjZScsIFsnJGV2ZW50J10pXG4gIGVudGVyU29ydGluZ01vZGVFbmFibGVkQnlLZXlib2FyZCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50LnRhcmdldCA9PT0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGlmICgkZXZlbnQuY29kZSA9PT0gJ0VudGVyJyB8fCAkZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy50b29sdGlwRGlyZWN0aXZlLmhpZGUoKTtcblxuICAgICAgICB0aGlzLml0ZW1CZWluZ1NvcnRlZENoYW5nZS5lbWl0KCF0aGlzLmlzU29ydGluZ0J5S2V5Ym9hcmQgPyB0aGlzLml0ZW1EYXRhIDogdW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5pc1NvcnRpbmdCeUtleWJvYXJkQ2hhbmdlLmVtaXQoIXRoaXMuaXNTb3J0aW5nQnlLZXlib2FyZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjJywgWyckZXZlbnQnXSlcbiAgbGVhdmVTb3J0aW5nTW9kZUVuYWJsZWRCeUtleWJvYXJkKCRldmVudDogS2V5Ym9hcmRFdmVudCB8IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LnRhcmdldCA9PT0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMudG9vbHRpcERpcmVjdGl2ZS5oaWRlKCk7XG4gICAgICBpZiAoIXRoaXMucHJldmVudEJsdXIpIHtcbiAgICAgICAgdGhpcy5pc1NvcnRpbmdCeUtleWJvYXJkQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICB0aGlzLml0ZW1CZWluZ1NvcnRlZENoYW5nZS5lbWl0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd1VwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0Rvd24nLCBbJyRldmVudCddKVxuICBzb3J0KCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgkZXZlbnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy50b29sdGlwRGlyZWN0aXZlLmhpZGUoKTtcbiAgICAgIGlmICh0aGlzLmlzU29ydGluZ0J5S2V5Ym9hcmQpIHtcbiAgICAgICAgY29uc3QgYWxsSXRlbXNEYXRhID0gdGhpcy5hbGxJdGVtc0RhdGEgPz8gW107XG5cbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGFsbEl0ZW1zRGF0YS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IHRoaXMuaXRlbURhdGEpO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSAkZXZlbnQuY29kZSA9PT0gJ0Fycm93VXAnID8gcHJldmlvdXNJbmRleCAtIDEgOiBwcmV2aW91c0luZGV4ICsgMTtcblxuICAgICAgICBpZiAoY3VycmVudEluZGV4ID49IDAgJiYgY3VycmVudEluZGV4IDw9IGFsbEl0ZW1zRGF0YS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgdGhpcy5zb3J0SXRlbXNXaXRoS2V5Ym9hcmQuZW1pdCh7IHByZXZpb3VzSW5kZXgsIGN1cnJlbnRJbmRleCB9KTtcblxuICAgICAgICAgIC8vIFdoZW4gdHJpZ2dlcmluZyBhIGtleWJvYXJkIGV2ZW50LCB0aGUgRE9NIHdvdWxkIFwicmVtb3ZlQ2hpbGRyZW5cIiBvbiB0aGUgSFRNTCBlbGVtZW50XG4gICAgICAgICAgLy8gd2hpY2ggc3BlY2lhbGx5IGZvciBcIkFycm93VXBcIiBldmVudHMgd291bGQgdHJpZ2dlciBhIFwiYmx1clwiIGV2ZW50IHNpbmNlIHRoZSBlbGVtZW50XG4gICAgICAgICAgLy8gaGFzIGJlZW4gbW92ZWQgYWJvdmVkIHRoZSBET00gdHJlZSBhbmQgbG9zZXMgdGhlIGZvY3VzIHN0YXRlLlxuICAgICAgICAgIHRoaXMucHJldmVudEJsdXIgPSB0cnVlO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5wcmV2ZW50Qmx1ciA9IGZhbHNlKSwgMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -8,6 +8,8 @@ import * as i3 from '@angular/cdk/portal';
|
|
8
8
|
import { ComponentPortal, CdkPortal, PortalModule } from '@angular/cdk/portal';
|
9
9
|
import * as i1$1 from '@angular/cdk/overlay';
|
10
10
|
import { CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
11
|
+
import * as i2 from '@angular/cdk/a11y';
|
12
|
+
import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
|
11
13
|
import { __decorate } from 'tslib';
|
12
14
|
import { escape, trimEnd, sortBy, get, isEqual as isEqual$1, toLower, some, padCharsStart, toString, toNumber, isNaN as isNaN$1, includes, last, findIndex, filter as filter$1, isObject, find, uniqueId as uniqueId$1 } from 'lodash/fp';
|
13
15
|
import * as i5 from 'rxjs';
|
@@ -31,8 +33,6 @@ import * as i1$4 from 'ngx-infinite-scroll';
|
|
31
33
|
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
32
34
|
import * as i1$7 from '@angular/cdk/drag-drop';
|
33
35
|
import { moveItemInArray, CdkDropList, CdkDrag, DragDropModule } from '@angular/cdk/drag-drop';
|
34
|
-
import * as i2 from '@angular/cdk/a11y';
|
35
|
-
import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
|
36
36
|
import * as i1$8 from '@angular/platform-browser';
|
37
37
|
import { trigger, transition, style, animate } from '@angular/animations';
|
38
38
|
import * as i1$9 from '@ncstate/sat-popover';
|
@@ -420,11 +420,11 @@ class TooltipComponent {
|
|
420
420
|
};
|
421
421
|
}
|
422
422
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
423
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: TooltipComponent, isStandalone: true, selector: "lx-tooltip", inputs: { content: "content", isHtmlContent: "isHtmlContent", position: "position" }, ngImport: i0, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:12px;font-weight:400;text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
423
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: TooltipComponent, isStandalone: true, selector: "lx-tooltip", inputs: { content: "content", isHtmlContent: "isHtmlContent", position: "position" }, host: { attributes: { "role": "tooltip" } }, ngImport: i0, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:12px;font-weight:400;text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
424
424
|
}
|
425
425
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipComponent, decorators: [{
|
426
426
|
type: Component,
|
427
|
-
args: [{ selector: 'lx-tooltip', standalone: true, imports: [NgIf, NgClass], template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:12px;font-weight:400;text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"] }]
|
427
|
+
args: [{ selector: 'lx-tooltip', standalone: true, imports: [NgIf, NgClass], host: { role: 'tooltip' }, template: "<div *ngIf=\"!isHtmlContent; else htmlTooltip\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\">{{ content }}</div>\n<ng-template #htmlTooltip>\n <div [innerHtml]=\"content\" [ngClass]=\"['x-' + position.x, 'y-' + position.y]\"></div>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin:5px}div{background-color:#292929;color:#fff;border:0 solid transparent;border-radius:5px;opacity:1;font-size:12px;font-weight:400;text-shadow:0 1px black;text-align:left;word-wrap:break-word;line-height:16px;max-width:280px;min-width:50px;padding:6px 10px;overflow:hidden}.y-bottom:after,.y-top:after,.x-left:after,.x-right:after{content:\" \";position:absolute;border-width:5px;border-style:solid;border-color:#292929 transparent transparent transparent}.y-top:after{top:100%;margin-left:-5px}.y-bottom:after{top:0;margin-left:-5px;transform-origin:center top;transform:rotate(180deg)}.y-center:after{top:50%;margin-left:-5px;margin-top:-10px}.y-top.x-center:after,.y-bottom.x-center:after{left:50%}.y-top.x-left:after,.y-bottom.x-left:after{right:10px}.y-top.x-right:after,.y-bottom.x-right:after{left:10px}.y-center.x-right:after{left:0;transform-origin:left center;transform:rotate(90deg)}.y-center.x-left:after{left:100%;transform-origin:right center;transform:rotate(-90deg)}\n"] }]
|
428
428
|
}], propDecorators: { content: [{
|
429
429
|
type: Input
|
430
430
|
}], isHtmlContent: [{
|
@@ -443,10 +443,11 @@ class TooltipDirective {
|
|
443
443
|
get positionStrategy() {
|
444
444
|
return this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([toCdkPosition(this.position)]);
|
445
445
|
}
|
446
|
-
constructor(overlayPositionBuilder, elementRef, overlay) {
|
446
|
+
constructor(overlayPositionBuilder, elementRef, overlay, ariaDescriber) {
|
447
447
|
this.overlayPositionBuilder = overlayPositionBuilder;
|
448
448
|
this.elementRef = elementRef;
|
449
449
|
this.overlay = overlay;
|
450
|
+
this.ariaDescriber = ariaDescriber;
|
450
451
|
this.position = {
|
451
452
|
x: 'center',
|
452
453
|
y: 'top'
|
@@ -486,6 +487,7 @@ class TooltipDirective {
|
|
486
487
|
this.tooltipRef.instance.content = this.content;
|
487
488
|
this.tooltipRef.instance.isHtmlContent = this.lxTooltipIsHtmlContent;
|
488
489
|
this.tooltipRef.instance.position = this.position;
|
490
|
+
this.ariaDescriber.describe(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement);
|
489
491
|
}
|
490
492
|
}, this.lxTooltipDelay ?? 90);
|
491
493
|
}
|
@@ -495,9 +497,10 @@ class TooltipDirective {
|
|
495
497
|
}
|
496
498
|
hide() {
|
497
499
|
this.mouseOrFocusOnHost = false;
|
500
|
+
this.ariaDescriber.removeDescription(this.elementRef.nativeElement, this.tooltipRef?.location.nativeElement);
|
498
501
|
this.overlayRef?.dispose();
|
499
502
|
}
|
500
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i1$1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1$1.Overlay }], target: i0.ɵɵFactoryTarget.Directive }); }
|
503
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i1$1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1$1.Overlay }, { token: i2.AriaDescriber }], target: i0.ɵɵFactoryTarget.Directive }); }
|
501
504
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: TooltipDirective, isStandalone: true, selector: "[lxTooltip]", inputs: { content: ["lxTooltip", "content"], lxTooltipPosition: "lxTooltipPosition", lxTooltipDelay: "lxTooltipDelay", lxTooltipIsHtmlContent: "lxTooltipIsHtmlContent" }, host: { listeners: { "mouseenter": "show()", "focus": "show()", "mouseleave": "hide()", "click": "hide()", "blur": "hide()" } }, usesOnChanges: true, ngImport: i0 }); }
|
502
505
|
}
|
503
506
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: TooltipDirective, decorators: [{
|
@@ -506,7 +509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
506
509
|
selector: '[lxTooltip]',
|
507
510
|
standalone: true
|
508
511
|
}]
|
509
|
-
}], ctorParameters: () => [{ type: i1$1.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1$1.Overlay }], propDecorators: { content: [{
|
512
|
+
}], ctorParameters: () => [{ type: i1$1.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1$1.Overlay }, { type: i2.AriaDescriber }], propDecorators: { content: [{
|
510
513
|
type: Input,
|
511
514
|
args: ['lxTooltip']
|
512
515
|
}], lxTooltipPosition: [{
|
@@ -5232,15 +5235,16 @@ class KeyboardSortableItemDirective {
|
|
5232
5235
|
get isSortable() {
|
5233
5236
|
return !this.draggableItem.disabled;
|
5234
5237
|
}
|
5235
|
-
constructor(draggableItem, overlayPositionBuilder, element, overlay) {
|
5238
|
+
constructor(draggableItem, overlayPositionBuilder, element, overlay, ariaDescriber) {
|
5236
5239
|
this.draggableItem = draggableItem;
|
5237
5240
|
this.overlayPositionBuilder = overlayPositionBuilder;
|
5238
5241
|
this.element = element;
|
5239
5242
|
this.overlay = overlay;
|
5243
|
+
this.ariaDescriber = ariaDescriber;
|
5240
5244
|
this.isSortingByKeyboardChange = new EventEmitter();
|
5241
5245
|
this.itemBeingSortedChange = new EventEmitter();
|
5242
5246
|
this.sortItemsWithKeyboard = new EventEmitter();
|
5243
|
-
this.tooltipDirective = new TooltipDirective(this.overlayPositionBuilder, this.element, this.overlay);
|
5247
|
+
this.tooltipDirective = new TooltipDirective(this.overlayPositionBuilder, this.element, this.overlay, this.ariaDescriber);
|
5244
5248
|
this.isBeingSorted = false;
|
5245
5249
|
this.preventBlur = false;
|
5246
5250
|
this.focusWithKeyboardReplaySubject$ = new ReplaySubject(1);
|
@@ -5299,7 +5303,7 @@ class KeyboardSortableItemDirective {
|
|
5299
5303
|
}
|
5300
5304
|
}
|
5301
5305
|
}
|
5302
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: KeyboardSortableItemDirective, deps: [{ token: i1$7.CdkDrag }, { token: i1$1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1$1.Overlay }], target: i0.ɵɵFactoryTarget.Directive }); }
|
5306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: KeyboardSortableItemDirective, deps: [{ token: i1$7.CdkDrag }, { token: i1$1.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i1$1.Overlay }, { token: i2.AriaDescriber }], target: i0.ɵɵFactoryTarget.Directive }); }
|
5303
5307
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: KeyboardSortableItemDirective, isStandalone: true, selector: "[lxKeyboardSortableItem]", inputs: { allItemsData: ["lxKeyboardSortableItem", "allItemsData"], itemData: ["lxKeyboardItemData", "itemData"], isSortingByKeyboard: "isSortingByKeyboard", itemBeingSorted: ["lxKeyboardItemBeingSorted", "itemBeingSorted"] }, outputs: { isSortingByKeyboardChange: "isSortingByKeyboardChange", itemBeingSortedChange: "lxKeyboardItemBeingSortedChange", sortItemsWithKeyboard: "sortItemsWithKeyboard", focusWithKeyboard: "focusWithKeyboard" }, host: { listeners: { "keyup.tab": "focusViaKeyboard()", "keydown.enter": "enterSortingModeEnabledByKeyboard($event)", "keydown.space": "enterSortingModeEnabledByKeyboard($event)", "blur": "leaveSortingModeEnabledByKeyboard($event)", "keydown.esc": "leaveSortingModeEnabledByKeyboard($event)", "keydown.arrowUp": "sort($event)", "keydown.arrowDown": "sort($event)" }, properties: { "attr.lxTooltip": "this.tooltipDirective", "class.isBeingSortedByKeyboard": "this.isBeingSorted" } }, usesOnChanges: true, ngImport: i0 }); }
|
5304
5308
|
}
|
5305
5309
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: KeyboardSortableItemDirective, decorators: [{
|
@@ -5308,7 +5312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
5308
5312
|
selector: '[lxKeyboardSortableItem]',
|
5309
5313
|
standalone: true
|
5310
5314
|
}]
|
5311
|
-
}], ctorParameters: () => [{ type: i1$7.CdkDrag }, { type: i1$1.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1$1.Overlay }], propDecorators: { allItemsData: [{
|
5315
|
+
}], ctorParameters: () => [{ type: i1$7.CdkDrag }, { type: i1$1.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i1$1.Overlay }, { type: i2.AriaDescriber }], propDecorators: { allItemsData: [{
|
5312
5316
|
type: Input,
|
5313
5317
|
args: ['lxKeyboardSortableItem']
|
5314
5318
|
}], itemData: [{
|