@stemy/ngx-utils 17.2.1 → 17.3.0
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/ngx-utils/common-types.mjs +1 -1
- package/esm2022/ngx-utils/components/dropdown-box/dropdown-box.component.mjs +59 -0
- package/esm2022/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +88 -35
- package/esm2022/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +7 -28
- package/esm2022/ngx-utils/directives/dropdown-content.directive.mjs +152 -0
- package/esm2022/ngx-utils/directives/dropdown-toggle.directive.mjs +46 -0
- package/esm2022/ngx-utils/directives/dropdown.directive.mjs +157 -0
- package/esm2022/ngx-utils/ngx-utils.imports.mjs +11 -1
- package/esm2022/ngx-utils/ngx-utils.module.mjs +42 -37
- package/esm2022/ngx-utils/pipes/includes.pipe.mjs +21 -0
- package/esm2022/ngx-utils/utils/misc.mjs +21 -0
- package/esm2022/public_api.mjs +7 -1
- package/fesm2022/stemy-ngx-utils.mjs +526 -59
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ngx-utils/common-types.d.ts +1 -1
- package/ngx-utils/components/dropdown-box/dropdown-box.component.d.ts +55 -0
- package/ngx-utils/components/dynamic-table/dynamic-table.component.d.ts +31 -12
- package/ngx-utils/components/pagination-menu/pagination-menu.component.d.ts +1 -8
- package/ngx-utils/directives/dropdown-content.directive.d.ts +22 -0
- package/ngx-utils/directives/dropdown-toggle.directive.d.ts +16 -0
- package/ngx-utils/directives/dropdown.directive.d.ts +56 -0
- package/ngx-utils/ngx-utils.imports.d.ts +9 -4
- package/ngx-utils/ngx-utils.module.d.ts +42 -37
- package/ngx-utils/pipes/includes.pipe.d.ts +8 -0
- package/ngx-utils/utils/misc.d.ts +1 -0
- package/package.json +2 -1
- package/public_api.d.ts +6 -0
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from "@angular/core";
|
|
2
2
|
import { ObjectUtils } from "../../utils/object.utils";
|
|
3
3
|
import { StateService } from "../../services/state.service";
|
|
4
4
|
import { PaginationDirective } from "../../directives/pagination.directive";
|
|
5
|
-
import { ICON_SERVICE } from "../../common-types";
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
import * as i1 from "../../services/state.service";
|
|
8
7
|
import * as i2 from "../../directives/pagination.directive";
|
|
9
8
|
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "../../pipes/safe-html.pipe";
|
|
11
9
|
export class PaginationMenuComponent {
|
|
12
10
|
get hasPrev() {
|
|
13
11
|
return this.pagination.page > 1;
|
|
@@ -15,24 +13,15 @@ export class PaginationMenuComponent {
|
|
|
15
13
|
get hasNext() {
|
|
16
14
|
return this.pagination.page < this.pagination.maxPage;
|
|
17
15
|
}
|
|
18
|
-
constructor(state, pagination
|
|
16
|
+
constructor(state, pagination) {
|
|
19
17
|
this.state = state;
|
|
20
18
|
this.pagination = pagination;
|
|
21
|
-
this.icons = icons;
|
|
22
19
|
this.maxSize = 5;
|
|
23
20
|
this.directionLinks = true;
|
|
24
21
|
this.boundaryLinks = true;
|
|
25
|
-
this.firstLabel = `<<`;
|
|
26
|
-
this.prevLabel = `<`;
|
|
27
|
-
this.nextLabel = `>`;
|
|
28
|
-
this.lastLabel = `>>`;
|
|
29
22
|
}
|
|
30
23
|
ngOnInit() {
|
|
31
24
|
this.onRefresh = this.pagination.onRefresh.subscribe(() => this.setPages());
|
|
32
|
-
this.setIcon("firstLabel", "first-page");
|
|
33
|
-
this.setIcon("prevLabel", "prev-page");
|
|
34
|
-
this.setIcon("nextLabel", "next-page");
|
|
35
|
-
this.setIcon("lastLabel", "last-page");
|
|
36
25
|
}
|
|
37
26
|
ngOnDestroy() {
|
|
38
27
|
if (!this.onRefresh)
|
|
@@ -57,13 +46,6 @@ export class PaginationMenuComponent {
|
|
|
57
46
|
const path = StateService.toPath(this.state.route, params);
|
|
58
47
|
this.state.navigateByUrl(path);
|
|
59
48
|
}
|
|
60
|
-
setIcon(labelName, icon) {
|
|
61
|
-
this.icons.getIcon(icon, icon, false).then(i => {
|
|
62
|
-
if (i == icon)
|
|
63
|
-
return;
|
|
64
|
-
this[labelName] = i;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
49
|
setPages() {
|
|
68
50
|
if (!this.pagination)
|
|
69
51
|
return;
|
|
@@ -80,16 +62,13 @@ export class PaginationMenuComponent {
|
|
|
80
62
|
}
|
|
81
63
|
this.pages = pages;
|
|
82
64
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationMenuComponent, deps: [{ token: i1.StateService }, { token: i2.PaginationDirective }
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PaginationMenuComponent, selector: "pagination-menu", inputs: { maxSize: "maxSize", urlParam: "urlParam", directionLinks: "directionLinks", boundaryLinks: "boundaryLinks" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link\" (click)=\"paginate(1)\"
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationMenuComponent, deps: [{ token: i1.StateService }, { token: i2.PaginationDirective }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PaginationMenuComponent, selector: "pagination-menu", inputs: { maxSize: "maxSize", urlParam: "urlParam", directionLinks: "directionLinks", boundaryLinks: "boundaryLinks" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link boundary-link previous\" (click)=\"paginate(1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"directionLinks\">\n <a class=\"page-link direction-link previous\" (click)=\"paginate(pagination.page - 1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{active: pagination.page == page}\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" [ngClass]=\"{active: pagination.page == page}\" (click)=\"paginate(page)\">{{ page }}</a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"directionLinks\">\n <a class=\"page-link direction-link\" (click)=\"paginate(pagination.page + 1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link boundary-link\" (click)=\"paginate(pagination.maxPage)\"></a>\n </li>\n </ul>\n</div>\n", styles: [".pagination-menu{--pg-border-size: var(--border-size, 1px);--pg-bg-color: var(--bg-color, #ffffff);--pg-border-color: var(--border-color, #ced4da);--pg-highlight-color: var(--highlight-color, var(--primary-color, #888888));--pg-highlight-text-color: var(--highlight-text-color, #ffffff);--pg-text-color: var(--text-color, #151515);--pg-arrow-size: var(--arrow-size, 6px);--pg-arrow-space: calc(var(--pg-arrow-size) * .5 + 1px);--pg-arrow-color: currentColor;display:flex;align-items:center;justify-content:center;min-width:fit-content;margin:10px}.pagination-menu *{box-sizing:border-box}.pagination-menu ul{margin:0;padding:0;list-style:none;border:var(--pg-border-size) solid var(--pg-border-color);background:var(--pg-bg-color);border-radius:5px;overflow:hidden;min-width:fit-content;display:flex}.pagination-menu li{color:var(--pg-text-color);font-weight:400;text-align:left;min-width:fit-content;cursor:pointer;border-right:var(--pg-border-size) solid var(--pg-border-color);display:flex;align-items:center}.pagination-menu li:last-child{border-right:none}.pagination-menu li:hover,.pagination-menu li.active{background-color:var(--pg-highlight-color);color:var(--pg-highlight-text-color)}.pagination-menu a{display:block;min-width:36px;height:auto;line-height:20px;text-align:center;vertical-align:top;padding:6px 12px;color:inherit}.pagination-menu a.boundary-link,.pagination-menu a.direction-link{position:relative}.pagination-menu a.boundary-link:before,.pagination-menu a.boundary-link:after,.pagination-menu a.direction-link:before,.pagination-menu a.direction-link:after{content:\"\";position:absolute;left:50%;top:calc(50% - var(--pg-arrow-size));border-top:var(--pg-arrow-size) solid transparent;border-bottom:var(--pg-arrow-size) solid transparent;border-left:var(--pg-arrow-size) solid var(--pg-arrow-color)}.pagination-menu a.direction-link:before{display:none}.pagination-menu a.direction-link:after{translate:-50% 0}.pagination-menu a.boundary-link:before{translate:-100% 0}.pagination-menu a.boundary-link.previous:before,.pagination-menu a.boundary-link.previous:after,.pagination-menu a.direction-link.previous:before,.pagination-menu a.direction-link.previous:after{rotate:180deg}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
85
67
|
}
|
|
86
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginationMenuComponent, decorators: [{
|
|
87
69
|
type: Component,
|
|
88
|
-
args: [{ selector: "pagination-menu", template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link\" (click)=\"paginate(1)\"
|
|
89
|
-
}], ctorParameters: () => [{ type: i1.StateService }, { type: i2.PaginationDirective },
|
|
90
|
-
type: Inject,
|
|
91
|
-
args: [ICON_SERVICE]
|
|
92
|
-
}] }], propDecorators: { maxSize: [{
|
|
70
|
+
args: [{ standalone: false, encapsulation: ViewEncapsulation.None, selector: "pagination-menu", template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\n <ul class=\"pagination\">\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link boundary-link previous\" (click)=\"paginate(1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"directionLinks\">\n <a class=\"page-link direction-link previous\" (click)=\"paginate(pagination.page - 1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{active: pagination.page == page}\" *ngFor=\"let page of pages\">\n <a class=\"page-link\" [ngClass]=\"{active: pagination.page == page}\" (click)=\"paginate(page)\">{{ page }}</a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"directionLinks\">\n <a class=\"page-link direction-link\" (click)=\"paginate(pagination.page + 1)\"></a>\n </li>\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"boundaryLinks\">\n <a class=\"page-link boundary-link\" (click)=\"paginate(pagination.maxPage)\"></a>\n </li>\n </ul>\n</div>\n", styles: [".pagination-menu{--pg-border-size: var(--border-size, 1px);--pg-bg-color: var(--bg-color, #ffffff);--pg-border-color: var(--border-color, #ced4da);--pg-highlight-color: var(--highlight-color, var(--primary-color, #888888));--pg-highlight-text-color: var(--highlight-text-color, #ffffff);--pg-text-color: var(--text-color, #151515);--pg-arrow-size: var(--arrow-size, 6px);--pg-arrow-space: calc(var(--pg-arrow-size) * .5 + 1px);--pg-arrow-color: currentColor;display:flex;align-items:center;justify-content:center;min-width:fit-content;margin:10px}.pagination-menu *{box-sizing:border-box}.pagination-menu ul{margin:0;padding:0;list-style:none;border:var(--pg-border-size) solid var(--pg-border-color);background:var(--pg-bg-color);border-radius:5px;overflow:hidden;min-width:fit-content;display:flex}.pagination-menu li{color:var(--pg-text-color);font-weight:400;text-align:left;min-width:fit-content;cursor:pointer;border-right:var(--pg-border-size) solid var(--pg-border-color);display:flex;align-items:center}.pagination-menu li:last-child{border-right:none}.pagination-menu li:hover,.pagination-menu li.active{background-color:var(--pg-highlight-color);color:var(--pg-highlight-text-color)}.pagination-menu a{display:block;min-width:36px;height:auto;line-height:20px;text-align:center;vertical-align:top;padding:6px 12px;color:inherit}.pagination-menu a.boundary-link,.pagination-menu a.direction-link{position:relative}.pagination-menu a.boundary-link:before,.pagination-menu a.boundary-link:after,.pagination-menu a.direction-link:before,.pagination-menu a.direction-link:after{content:\"\";position:absolute;left:50%;top:calc(50% - var(--pg-arrow-size));border-top:var(--pg-arrow-size) solid transparent;border-bottom:var(--pg-arrow-size) solid transparent;border-left:var(--pg-arrow-size) solid var(--pg-arrow-color)}.pagination-menu a.direction-link:before{display:none}.pagination-menu a.direction-link:after{translate:-50% 0}.pagination-menu a.boundary-link:before{translate:-100% 0}.pagination-menu a.boundary-link.previous:before,.pagination-menu a.boundary-link.previous:after,.pagination-menu a.direction-link.previous:before,.pagination-menu a.direction-link.previous:after{rotate:180deg}\n"] }]
|
|
71
|
+
}], ctorParameters: () => [{ type: i1.StateService }, { type: i2.PaginationDirective }], propDecorators: { maxSize: [{
|
|
93
72
|
type: Input
|
|
94
73
|
}], urlParam: [{
|
|
95
74
|
type: Input
|
|
@@ -98,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
98
77
|
}], boundaryLinks: [{
|
|
99
78
|
type: Input
|
|
100
79
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFlLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQU05RCxNQUFNLE9BQU8sdUJBQXVCO0lBYWhDLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFBO0lBQ3pELENBQUM7SUFJRCxZQUFtQixLQUFtQixFQUFTLFVBQStCLEVBQStCLEtBQW1CO1FBQTdHLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUErQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQzVILElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxD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O2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XG5pbXBvcnQge1N0YXRlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3N0YXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7UGFnaW5hdGlvbkRpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvcGFnaW5hdGlvbi5kaXJlY3RpdmVcIjtcbmltcG9ydCB7SUNPTl9TRVJWSUNFLCBJSWNvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9jb21tb24tdHlwZXNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicGFnaW5hdGlvbi1tZW51XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9wYWdpbmF0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgbWF4U2l6ZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHVybFBhcmFtOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlyZWN0aW9uTGlua3M6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYm91bmRhcnlMaW5rczogYm9vbGVhbjtcblxuICAgIHBhZ2VzOiBudW1iZXJbXTtcbiAgICBmaXJzdExhYmVsOiBzdHJpbmc7XG4gICAgcHJldkxhYmVsOiBzdHJpbmc7XG4gICAgbmV4dExhYmVsOiBzdHJpbmc7XG4gICAgbGFzdExhYmVsOiBzdHJpbmc7XG5cbiAgICBnZXQgaGFzUHJldigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbi5wYWdlID4gMTtcbiAgICB9XG5cbiAgICBnZXQgaGFzTmV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbi5wYWdlIDwgdGhpcy5wYWdpbmF0aW9uLm1heFBhZ2VcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUmVmcmVzaDogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHN0YXRlOiBTdGF0ZVNlcnZpY2UsIHB1YmxpYyBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRGlyZWN0aXZlLCBASW5qZWN0KElDT05fU0VSVklDRSkgcHVibGljIGljb25zOiBJSWNvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5tYXhTaXplID0gNTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9IHRydWU7XG4gICAgICAgIHRoaXMuYm91bmRhcnlMaW5rcyA9IHRydWU7XG4gICAgICAgIHRoaXMuZmlyc3RMYWJlbCA9IGA8PGA7XG4gICAgICAgIHRoaXMucHJldkxhYmVsID0gYDxgO1xuICAgICAgICB0aGlzLm5leHRMYWJlbCA9IGA+YDtcbiAgICAgICAgdGhpcy5sYXN0TGFiZWwgPSBgPj5gO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uUmVmcmVzaCA9IHRoaXMucGFnaW5hdGlvbi5vblJlZnJlc2guc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0UGFnZXMoKSk7XG4gICAgICAgIHRoaXMuc2V0SWNvbihcImZpcnN0TGFiZWxcIiwgXCJmaXJzdC1wYWdlXCIpO1xuICAgICAgICB0aGlzLnNldEljb24oXCJwcmV2TGFiZWxcIiwgXCJwcmV2LXBhZ2VcIik7XG4gICAgICAgIHRoaXMuc2V0SWNvbihcIm5leHRMYWJlbFwiLCBcIm5leHQtcGFnZVwiKTtcbiAgICAgICAgdGhpcy5zZXRJY29uKFwibGFzdExhYmVsXCIsIFwibGFzdC1wYWdlXCIpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMub25SZWZyZXNoKSByZXR1cm47XG4gICAgICAgIHRoaXMub25SZWZyZXNoLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1heFNpemUgPSBpc05hTih0aGlzLm1heFNpemUpIHx8IHRoaXMubWF4U2l6ZSA8PSAwID8gNSA6IHRoaXMubWF4U2l6ZTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9IE9iamVjdFV0aWxzLmlzQm9vbGVhbih0aGlzLmRpcmVjdGlvbkxpbmtzKSA/IHRoaXMuZGlyZWN0aW9uTGlua3MgOiB0cnVlO1xuICAgICAgICB0aGlzLmJvdW5kYXJ5TGlua3MgPSBPYmplY3RVdGlscy5pc0Jvb2xlYW4odGhpcy5ib3VuZGFyeUxpbmtzKSA/IHRoaXMuYm91bmRhcnlMaW5rcyA6IHRydWU7XG4gICAgICAgIHRoaXMuc2V0UGFnZXMoKTtcbiAgICB9XG5cbiAgICBwYWdpbmF0ZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbi5wYWdlID09IHBhZ2UgfHwgdGhpcy5wYWdpbmF0aW9uLm1heFBhZ2UgPCBwYWdlIHx8IHBhZ2UgPCAxKSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy51cmxQYXJhbSkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnBhZ2luYXRlKHBhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUucGFyYW1zKTtcbiAgICAgICAgcGFyYW1zW3RoaXMudXJsUGFyYW1dID0gcGFnZS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBwYXRoID0gU3RhdGVTZXJ2aWNlLnRvUGF0aCh0aGlzLnN0YXRlLnJvdXRlLCBwYXJhbXMpO1xuICAgICAgICB0aGlzLnN0YXRlLm5hdmlnYXRlQnlVcmwocGF0aCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEljb24obGFiZWxOYW1lOiBzdHJpbmcsIGljb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmljb25zLmdldEljb24oaWNvbiwgaWNvbiwgZmFsc2UpLnRoZW4oaSA9PiB7XG4gICAgICAgICAgICBpZiAoaSA9PSBpY29uKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzW2xhYmVsTmFtZV0gPSBpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0UGFnZXMoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24pIHJldHVybjtcbiAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IHRoaXMucGFnaW5hdGlvbi5tYXhQYWdlO1xuICAgICAgICBsZXQgc3RhcnRQYWdlID0gTWF0aC5tYXgodGhpcy5wYWdpbmF0aW9uLnBhZ2UgLSBNYXRoLmZsb29yKHRoaXMubWF4U2l6ZSAvIDIpLCAxKTtcbiAgICAgICAgbGV0IGVuZFBhZ2UgPSBzdGFydFBhZ2UgKyB0aGlzLm1heFNpemUgLSAxO1xuICAgICAgICBpZiAoZW5kUGFnZSA+IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIGVuZFBhZ2UgPSB0b3RhbFBhZ2VzO1xuICAgICAgICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgoZW5kUGFnZSAtIHRoaXMubWF4U2l6ZSArIDEsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhZ2VzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBudW0gPSBzdGFydFBhZ2U7IG51bSA8PSBlbmRQYWdlOyBudW0rKykge1xuICAgICAgICAgICAgcGFnZXMucHVzaChudW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZXMgPSBwYWdlcztcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1tZW51XCIgKm5nSWY9XCJwYWdpbmF0aW9uLnRvdGFsID4gcGFnaW5hdGlvbi5pdGVtc1BlclBhZ2VcIj5cbiAgICA8dWwgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc1ByZXZ9XCIgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJwYWdpbmF0ZSgxKVwiIFtpbm5lckhUTUxdPVwiZmlyc3RMYWJlbCB8IHNhZmVcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc1ByZXZ9XCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwicGFnaW5hdGUocGFnaW5hdGlvbi5wYWdlIC0gMSlcIiBbaW5uZXJIVE1MXT1cInByZXZMYWJlbCB8IHNhZmVcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHBhZ2luYXRpb24ucGFnZSA9PSBwYWdlfVwiICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHBhZ2luYXRpb24ucGFnZSA9PSBwYWdlfVwiIChjbGljayk9XCJwYWdpbmF0ZShwYWdlKVwiPnt7IHBhZ2UgfX08L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc05leHR9XCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwicGFnaW5hdGUocGFnaW5hdGlvbi5wYWdlICsgMSlcIiBbaW5uZXJIVE1MXT1cIm5leHRMYWJlbCB8IHNhZmVcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc05leHR9XCIgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJwYWdpbmF0ZShwYWdpbmF0aW9uLm1heFBhZ2UpXCIgW2lubmVySFRNTF09XCJsYXN0TGFiZWwgfCBzYWZlXCI+PC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L2Rpdj5cbiJdfQ==
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUErQyxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvRyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDOzs7OztBQVMxRSxNQUFNLE9BQU8sdUJBQXVCO0lBU2hDLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFBO0lBQ3pELENBQUM7SUFJRCxZQUFtQixLQUFtQixFQUFTLFVBQStCO1FBQTNELFVBQUssR0FBTCxLQUFLLENBQWM7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMxRSxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFT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RyxDQUFDLENBQUM7UUFDcEIsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7K0dBbkVRLHVCQUF1QjttR0FBdkIsdUJBQXVCLG9NQ2JwQyw2ckNBbUJBOzs0RkROYSx1QkFBdUI7a0JBUG5DLFNBQVM7aUNBQ00sS0FBSyxpQkFDRixpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCLGlCQUFpQjttSEFNbEIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uLy4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xuaW1wb3J0IHtTdGF0ZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zdGF0ZS5zZXJ2aWNlXCI7XG5pbXBvcnQge1BhZ2luYXRpb25EaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL3BhZ2luYXRpb24uZGlyZWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc2VsZWN0b3I6IFwicGFnaW5hdGlvbi1tZW51XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9wYWdpbmF0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgbWF4U2l6ZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHVybFBhcmFtOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlyZWN0aW9uTGlua3M6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYm91bmRhcnlMaW5rczogYm9vbGVhbjtcblxuICAgIHBhZ2VzOiBudW1iZXJbXTtcblxuICAgIGdldCBoYXNQcmV2KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uLnBhZ2UgPiAxO1xuICAgIH1cblxuICAgIGdldCBoYXNOZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uLnBhZ2UgPCB0aGlzLnBhZ2luYXRpb24ubWF4UGFnZVxuICAgIH1cblxuICAgIHByaXZhdGUgb25SZWZyZXNoOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RhdGU6IFN0YXRlU2VydmljZSwgcHVibGljIHBhZ2luYXRpb246IFBhZ2luYXRpb25EaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5tYXhTaXplID0gNTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9IHRydWU7XG4gICAgICAgIHRoaXMuYm91bmRhcnlMaW5rcyA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25SZWZyZXNoID0gdGhpcy5wYWdpbmF0aW9uLm9uUmVmcmVzaC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRQYWdlcygpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm9uUmVmcmVzaCkgcmV0dXJuO1xuICAgICAgICB0aGlzLm9uUmVmcmVzaC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYXhTaXplID0gaXNOYU4odGhpcy5tYXhTaXplKSB8fCB0aGlzLm1heFNpemUgPD0gMCA/IDUgOiB0aGlzLm1heFNpemU7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uTGlua3MgPSBPYmplY3RVdGlscy5pc0Jvb2xlYW4odGhpcy5kaXJlY3Rpb25MaW5rcykgPyB0aGlzLmRpcmVjdGlvbkxpbmtzIDogdHJ1ZTtcbiAgICAgICAgdGhpcy5ib3VuZGFyeUxpbmtzID0gT2JqZWN0VXRpbHMuaXNCb29sZWFuKHRoaXMuYm91bmRhcnlMaW5rcykgPyB0aGlzLmJvdW5kYXJ5TGlua3MgOiB0cnVlO1xuICAgICAgICB0aGlzLnNldFBhZ2VzKCk7XG4gICAgfVxuXG4gICAgcGFnaW5hdGUocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSA9PSBwYWdlIHx8IHRoaXMucGFnaW5hdGlvbi5tYXhQYWdlIDwgcGFnZSB8fCBwYWdlIDwgMSkgcmV0dXJuO1xuICAgICAgICBpZiAoIXRoaXMudXJsUGFyYW0pIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdpbmF0ZShwYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnN0YXRlLnBhcmFtcyk7XG4gICAgICAgIHBhcmFtc1t0aGlzLnVybFBhcmFtXSA9IHBhZ2UudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgcGF0aCA9IFN0YXRlU2VydmljZS50b1BhdGgodGhpcy5zdGF0ZS5yb3V0ZSwgcGFyYW1zKTtcbiAgICAgICAgdGhpcy5zdGF0ZS5uYXZpZ2F0ZUJ5VXJsKHBhdGgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRQYWdlcygpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMucGFnaW5hdGlvbikgcmV0dXJuO1xuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uLm1heFBhZ2U7XG4gICAgICAgIGxldCBzdGFydFBhZ2UgPSBNYXRoLm1heCh0aGlzLnBhZ2luYXRpb24ucGFnZSAtIE1hdGguZmxvb3IodGhpcy5tYXhTaXplIC8gMiksIDEpO1xuICAgICAgICBsZXQgZW5kUGFnZSA9IHN0YXJ0UGFnZSArIHRoaXMubWF4U2l6ZSAtIDE7XG4gICAgICAgIGlmIChlbmRQYWdlID4gdG90YWxQYWdlcykge1xuICAgICAgICAgICAgZW5kUGFnZSA9IHRvdGFsUGFnZXM7XG4gICAgICAgICAgICBzdGFydFBhZ2UgPSBNYXRoLm1heChlbmRQYWdlIC0gdGhpcy5tYXhTaXplICsgMSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFnZXM6IG51bWJlcltdID0gW107XG4gICAgICAgIGZvciAobGV0IG51bSA9IHN0YXJ0UGFnZTsgbnVtIDw9IGVuZFBhZ2U7IG51bSsrKSB7XG4gICAgICAgICAgICBwYWdlcy5wdXNoKG51bSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYWdlcyA9IHBhZ2VzO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLW1lbnVcIiAqbmdJZj1cInBhZ2luYXRpb24udG90YWwgPiBwYWdpbmF0aW9uLml0ZW1zUGVyUGFnZVwiPlxuICAgIDx1bCBjbGFzcz1cInBhZ2luYXRpb25cIj5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiAhaGFzUHJldn1cIiAqbmdJZj1cImJvdW5kYXJ5TGlua3NcIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rIGJvdW5kYXJ5LWxpbmsgcHJldmlvdXNcIiAoY2xpY2spPVwicGFnaW5hdGUoMSlcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc1ByZXZ9XCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmsgZGlyZWN0aW9uLWxpbmsgcHJldmlvdXNcIiAoY2xpY2spPVwicGFnaW5hdGUocGFnaW5hdGlvbi5wYWdlIC0gMSlcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHBhZ2luYXRpb24ucGFnZSA9PSBwYWdlfVwiICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHBhZ2luYXRpb24ucGFnZSA9PSBwYWdlfVwiIChjbGljayk9XCJwYWdpbmF0ZShwYWdlKVwiPnt7IHBhZ2UgfX08L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc05leHR9XCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJwYWdlLWxpbmsgZGlyZWN0aW9uLWxpbmtcIiAoY2xpY2spPVwicGFnaW5hdGUocGFnaW5hdGlvbi5wYWdlICsgMSlcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc05leHR9XCIgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGluayBib3VuZGFyeS1saW5rXCIgKGNsaWNrKT1cInBhZ2luYXRlKHBhZ2luYXRpb24ubWF4UGFnZSlcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { Directive, Inject, Optional, TemplateRef, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { autoPlacement, autoUpdate, computePosition } from "@floating-ui/dom";
|
|
3
|
+
import { ROOT_ELEMENT } from "../common-types";
|
|
4
|
+
import { DropdownDirective } from "./dropdown.directive";
|
|
5
|
+
import { ObservableUtils } from "../utils/observable.utils";
|
|
6
|
+
import { getCssVariables } from "../utils/misc";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./dropdown.directive";
|
|
9
|
+
const rectProps = ["x", "y", "width", "height"];
|
|
10
|
+
export class DropdownContentDirective {
|
|
11
|
+
constructor(vcr, rootElem, dropdown, templateRef) {
|
|
12
|
+
this.vcr = vcr;
|
|
13
|
+
this.rootElem = rootElem;
|
|
14
|
+
this.dropdown = dropdown;
|
|
15
|
+
this.templateRef = templateRef;
|
|
16
|
+
if (!this.dropdown) {
|
|
17
|
+
throw new Error("DropdownDirective is required! Please use it inside a dd, drop-down directive attribute");
|
|
18
|
+
}
|
|
19
|
+
if (!this.templateRef) {
|
|
20
|
+
throw new Error("TemplateRef is required! Please use with *dropdownContent");
|
|
21
|
+
}
|
|
22
|
+
this.lastPlacement = null;
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.subscription = ObservableUtils.multiSubscription(this.dropdown.onShown.subscribe(() => this.createView()), this.dropdown.onHidden.subscribe(() => this.destroyView()));
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
// this.observer?.unobserve(this.element.nativeElement);
|
|
29
|
+
this.subscription?.unsubscribe();
|
|
30
|
+
this.destroyView();
|
|
31
|
+
}
|
|
32
|
+
createView(init = false) {
|
|
33
|
+
const mobileWidth = this.dropdown.mobileViewUnder || 0;
|
|
34
|
+
const ref = this.dropdown.nativeElement;
|
|
35
|
+
const content = this.createWrapper();
|
|
36
|
+
this.dropdown.contentElement = content;
|
|
37
|
+
// Set up floating UI positioning settings
|
|
38
|
+
const placement = this.dropdown.placement || "bottom";
|
|
39
|
+
const strategy = this.dropdown.attachToRoot && this.rootElem ? "fixed" : "absolute";
|
|
40
|
+
const middleware = [];
|
|
41
|
+
if (this.dropdown.autoPlacement) {
|
|
42
|
+
middleware.push(autoPlacement(this.dropdown.autoPlacement));
|
|
43
|
+
}
|
|
44
|
+
// Set up floating UI auto update
|
|
45
|
+
this.cleanUp = autoUpdate(ref, content, () => {
|
|
46
|
+
computePosition(ref, content, {
|
|
47
|
+
strategy,
|
|
48
|
+
placement,
|
|
49
|
+
middleware
|
|
50
|
+
}).then(({ x, y, placement }) => {
|
|
51
|
+
const isMobileView = window.innerWidth <= mobileWidth;
|
|
52
|
+
Object.assign(content.style, {
|
|
53
|
+
opacity: init ? "0" : "1",
|
|
54
|
+
position: isMobileView ? "fixed" : strategy,
|
|
55
|
+
left: isMobileView ? `0px` : `${x}px`,
|
|
56
|
+
right: isMobileView ? `0px` : undefined,
|
|
57
|
+
top: isMobileView ? `0px` : `${y}px`,
|
|
58
|
+
bottom: isMobileView ? `0px` : undefined,
|
|
59
|
+
zIndex: `var(--dd-z-index, 100)`
|
|
60
|
+
});
|
|
61
|
+
const refRect = ref.getBoundingClientRect();
|
|
62
|
+
const contentRect = content.getBoundingClientRect();
|
|
63
|
+
const lastPlacement = this.lastPlacement;
|
|
64
|
+
const newPlacement = `dropdown-placement-${placement}`;
|
|
65
|
+
if (lastPlacement) {
|
|
66
|
+
ref.classList.replace(lastPlacement, newPlacement);
|
|
67
|
+
content.classList.replace(lastPlacement, newPlacement);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
ref.classList.add(newPlacement);
|
|
71
|
+
content.classList.add(newPlacement);
|
|
72
|
+
}
|
|
73
|
+
if (isMobileView) {
|
|
74
|
+
content.classList.add(`dropdown-content-mobile`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
content.classList.remove(`dropdown-content-mobile`);
|
|
78
|
+
}
|
|
79
|
+
rectProps.forEach(prop => {
|
|
80
|
+
content.style.setProperty(`--toggle-${prop}`, `${refRect[prop]}px`);
|
|
81
|
+
ref.style.setProperty(`--content-${prop}`, `${contentRect[prop]}px`);
|
|
82
|
+
});
|
|
83
|
+
this.lastPlacement = newPlacement;
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
destroyView() {
|
|
88
|
+
this.vcr.clear();
|
|
89
|
+
this.dropdown.contentElement?.remove();
|
|
90
|
+
this.cleanUp?.();
|
|
91
|
+
}
|
|
92
|
+
createWrapper() {
|
|
93
|
+
const wrapper = document.createElement("div");
|
|
94
|
+
const ref = this.vcr.createEmbeddedView(this.templateRef);
|
|
95
|
+
ref.rootNodes.forEach(node => wrapper.appendChild(node));
|
|
96
|
+
if (this.dropdown.attachToRoot && this.rootElem) {
|
|
97
|
+
this.rootElem.appendChild(wrapper);
|
|
98
|
+
const referenceStyles = getCssVariables(this.dropdown.nativeElement);
|
|
99
|
+
const wrapperStyles = getCssVariables(wrapper);
|
|
100
|
+
Object.keys(referenceStyles).forEach(key => {
|
|
101
|
+
if (!wrapperStyles[key]) {
|
|
102
|
+
wrapper.style.setProperty(key, referenceStyles[key]);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
const anchor = this.vcr.element.nativeElement;
|
|
108
|
+
anchor?.parentElement?.appendChild(wrapper);
|
|
109
|
+
}
|
|
110
|
+
const autoPlacement = this.dropdown.autoPlacement;
|
|
111
|
+
if (this.lastPlacement) {
|
|
112
|
+
wrapper.classList.add(this.lastPlacement);
|
|
113
|
+
}
|
|
114
|
+
if (autoPlacement) {
|
|
115
|
+
const vertical = autoPlacement.allowedPlacements.some(p => p.includes("top") || p.includes("bottom"));
|
|
116
|
+
const horizontal = autoPlacement.allowedPlacements.some(p => p.includes("left") || p.includes("right"));
|
|
117
|
+
if (vertical && horizontal) {
|
|
118
|
+
wrapper.classList.add(`dropdown-content-axis-both`);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const axis = vertical ? "vertical" : "horizontal";
|
|
122
|
+
wrapper.classList.add(`dropdown-content-axis-${axis}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
wrapper.classList.add("dropdown-content-wrap");
|
|
126
|
+
return wrapper;
|
|
127
|
+
}
|
|
128
|
+
initialize() {
|
|
129
|
+
this.createView(true);
|
|
130
|
+
setTimeout(() => this.destroyView());
|
|
131
|
+
}
|
|
132
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownContentDirective, deps: [{ token: i0.ViewContainerRef }, { token: ROOT_ELEMENT, optional: true }, { token: i1.DropdownDirective, optional: true }, { token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
133
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DropdownContentDirective, selector: "[dropdownContent]", exportAs: ["dropdown-content"], ngImport: i0 }); }
|
|
134
|
+
}
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownContentDirective, decorators: [{
|
|
136
|
+
type: Directive,
|
|
137
|
+
args: [{
|
|
138
|
+
standalone: false,
|
|
139
|
+
selector: "[dropdownContent]",
|
|
140
|
+
exportAs: "dropdown-content",
|
|
141
|
+
}]
|
|
142
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: HTMLElement, decorators: [{
|
|
143
|
+
type: Optional
|
|
144
|
+
}, {
|
|
145
|
+
type: Inject,
|
|
146
|
+
args: [ROOT_ELEMENT]
|
|
147
|
+
}] }, { type: i1.DropdownDirective, decorators: [{
|
|
148
|
+
type: Optional
|
|
149
|
+
}] }, { type: i0.TemplateRef, decorators: [{
|
|
150
|
+
type: Optional
|
|
151
|
+
}] }] });
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFFBQVEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUcsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUF1QixNQUFNLGtCQUFrQixDQUFDO0FBRWxHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBRTlDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFPaEQsTUFBTSxPQUFPLHdCQUF3QjtJQU1qQyxZQUFzQixHQUFxQixFQUNhLFFBQXFCLEVBQzNDLFFBQTJCLEVBQzVCLFdBQTZCO1FBSHhDLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ2EsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUMzQyxhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlGQUF5RixDQUFDLENBQUM7UUFDL0csQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtB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QUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0EzSVEsd0JBQXdCLGtEQU9ELFlBQVk7bUdBUG5DLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0I7OzBCQVFnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7OzBCQUMvQixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHthdXRvUGxhY2VtZW50LCBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIE1pZGRsZXdhcmUsIFN0cmF0ZWd5fSBmcm9tIFwiQGZsb2F0aW5nLXVpL2RvbVwiO1xuXG5pbXBvcnQge1JPT1RfRUxFTUVOVH0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xuaW1wb3J0IHtEcm9wZG93bkRpcmVjdGl2ZX0gZnJvbSBcIi4vZHJvcGRvd24uZGlyZWN0aXZlXCI7XG5pbXBvcnQge09ic2VydmFibGVVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29ic2VydmFibGUudXRpbHNcIjtcbmltcG9ydCB7Z2V0Q3NzVmFyaWFibGVzfSBmcm9tIFwiLi4vdXRpbHMvbWlzY1wiO1xuXG5jb25zdCByZWN0UHJvcHMgPSBbXCJ4XCIsIFwieVwiLCBcIndpZHRoXCIsIFwiaGVpZ2h0XCJdO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogXCJbZHJvcGRvd25Db250ZW50XVwiLFxuICAgIGV4cG9ydEFzOiBcImRyb3Bkb3duLWNvbnRlbnRcIixcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db250ZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBsYXN0UGxhY2VtZW50OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGNsZWFuVXA6ICgpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUk9PVF9FTEVNRU5UKSBwcm90ZWN0ZWQgcm9vdEVsZW06IEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBkcm9wZG93bjogRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcmVhZG9ubHkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEcm9wZG93bkRpcmVjdGl2ZSBpcyByZXF1aXJlZCEgUGxlYXNlIHVzZSBpdCBpbnNpZGUgYSBkZCwgZHJvcC1kb3duIGRpcmVjdGl2ZSBhdHRyaWJ1dGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUZW1wbGF0ZVJlZiBpcyByZXF1aXJlZCEgUGxlYXNlIHVzZSB3aXRoICpkcm9wZG93bkNvbnRlbnRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0UGxhY2VtZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBPYnNlcnZhYmxlVXRpbHMubXVsdGlTdWJzY3JpcHRpb24oXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLm9uU2hvd24uc3Vic2NyaWJlKCgpID0+IHRoaXMuY3JlYXRlVmlldygpKSxcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ub25IaWRkZW4uc3Vic2NyaWJlKCgpID0+IHRoaXMuZGVzdHJveVZpZXcoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlVmlldyhpbml0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbW9iaWxlV2lkdGggPSB0aGlzLmRyb3Bkb3duLm1vYmlsZVZpZXdVbmRlciB8fCAwO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNyZWF0ZVdyYXBwZXIoKTtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5jb250ZW50RWxlbWVudCA9IGNvbnRlbnQ7XG4gICAgICAgIC8vIFNldCB1cCBmbG9hdGluZyBVSSBwb3NpdGlvbmluZyBzZXR0aW5nc1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQgPSB0aGlzLmRyb3Bkb3duLnBsYWNlbWVudCB8fCBcImJvdHRvbVwiO1xuICAgICAgICBjb25zdCBzdHJhdGVneTogU3RyYXRlZ3kgPSB0aGlzLmRyb3Bkb3duLmF0dGFjaFRvUm9vdCAmJiB0aGlzLnJvb3RFbGVtID8gXCJmaXhlZFwiIDogXCJhYnNvbHV0ZVwiO1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlW10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd24uYXV0b1BsYWNlbWVudCkge1xuICAgICAgICAgICAgbWlkZGxld2FyZS5wdXNoKGF1dG9QbGFjZW1lbnQodGhpcy5kcm9wZG93bi5hdXRvUGxhY2VtZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIGF1dG8gdXBkYXRlXG4gICAgICAgIHRoaXMuY2xlYW5VcCA9IGF1dG9VcGRhdGUoXG4gICAgICAgICAgICByZWYsXG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVQb3NpdGlvbihcbiAgICAgICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pZGRsZXdhcmVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICkudGhlbigoe3gsIHksIHBsYWNlbWVudH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNNb2JpbGVWaWV3ID0gd2luZG93LmlubmVyV2lkdGggPD0gbW9iaWxlV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29udGVudC5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogaW5pdCA/IFwiMFwiIDogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaXNNb2JpbGVWaWV3ID8gXCJmaXhlZFwiIDogc3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpc01vYmlsZVZpZXcgPyBgMHB4YDogYCR7eH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogaXNNb2JpbGVWaWV3ID8gYDBweGA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogaXNNb2JpbGVWaWV3ID8gYDBweGA6IGAke3l9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiBpc01vYmlsZVZpZXcgPyBgMHB4YDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiBgdmFyKC0tZGQtei1pbmRleCwgMTAwKWBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZlJlY3QgPSByZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRSZWN0ID0gY29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFBsYWNlbWVudCA9IHRoaXMubGFzdFBsYWNlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UGxhY2VtZW50ID0gYGRyb3Bkb3duLXBsYWNlbWVudC0ke3BsYWNlbWVudH1gO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFBsYWNlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLmNsYXNzTGlzdC5yZXBsYWNlKGxhc3RQbGFjZW1lbnQsIG5ld1BsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5yZXBsYWNlKGxhc3RQbGFjZW1lbnQsIG5ld1BsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYuY2xhc3NMaXN0LmFkZChuZXdQbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKG5ld1BsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTW9iaWxlVmlldykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LW1vYmlsZWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QucmVtb3ZlKGBkcm9wZG93bi1jb250ZW50LW1vYmlsZWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlY3RQcm9wcy5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5zdHlsZS5zZXRQcm9wZXJ0eShgLS10b2dnbGUtJHtwcm9wfWAsIGAke3JlZlJlY3RbcHJvcF19cHhgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5zdHlsZS5zZXRQcm9wZXJ0eShgLS1jb250ZW50LSR7cHJvcH1gLCBgJHtjb250ZW50UmVjdFtwcm9wXX1weGApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0UGxhY2VtZW50ID0gbmV3UGxhY2VtZW50O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveVZpZXcoKSB7XG4gICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uY29udGVudEVsZW1lbnQ/LnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmNsZWFuVXA/LigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVXcmFwcGVyKCkge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgICByZWYucm9vdE5vZGVzLmZvckVhY2gobm9kZSA9PiB3cmFwcGVyLmFwcGVuZENoaWxkKG5vZGUpKTtcblxuICAgICAgICBpZiAodGhpcy5kcm9wZG93bi5hdHRhY2hUb1Jvb3QgJiYgdGhpcy5yb290RWxlbSkge1xuICAgICAgICAgICAgdGhpcy5yb290RWxlbS5hcHBlbmRDaGlsZCh3cmFwcGVyKTtcbiAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZVN0eWxlcyA9IGdldENzc1ZhcmlhYmxlcyh0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlclN0eWxlcyA9IGdldENzc1ZhcmlhYmxlcyh3cmFwcGVyKTtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlZmVyZW5jZVN0eWxlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghd3JhcHBlclN0eWxlc1trZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCByZWZlcmVuY2VTdHlsZXNba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLnZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBhbmNob3I/LnBhcmVudEVsZW1lbnQ/LmFwcGVuZENoaWxkKHdyYXBwZXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGF1dG9QbGFjZW1lbnQgPSB0aGlzLmRyb3Bkb3duLmF1dG9QbGFjZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLmxhc3RQbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmxhc3RQbGFjZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdXRvUGxhY2VtZW50KSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGF1dG9QbGFjZW1lbnQuYWxsb3dlZFBsYWNlbWVudHMuc29tZShwID0+IHAuaW5jbHVkZXMoXCJ0b3BcIikgfHwgcC5pbmNsdWRlcyhcImJvdHRvbVwiKSk7XG4gICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gYXV0b1BsYWNlbWVudC5hbGxvd2VkUGxhY2VtZW50cy5zb21lKHAgPT4gcC5pbmNsdWRlcyhcImxlZnRcIikgfHwgcC5pbmNsdWRlcyhcInJpZ2h0XCIpKTtcbiAgICAgICAgICAgIGlmICh2ZXJ0aWNhbCAmJiBob3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWF4aXMtYm90aGApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBheGlzID0gdmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIjtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtYXhpcy0ke2F4aXN9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKFwiZHJvcGRvd24tY29udGVudC13cmFwXCIpO1xuICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZVZpZXcodHJ1ZSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kZXN0cm95VmlldygpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Directive, ElementRef, Inject, Input } from "@angular/core";
|
|
2
|
+
import { DropdownDirective } from "./dropdown.directive";
|
|
3
|
+
import { AsyncMethodBase } from "./async-method.base";
|
|
4
|
+
import { TOASTER_SERVICE } from "../common-types";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./dropdown.directive";
|
|
7
|
+
export class DropdownToggleDirective extends AsyncMethodBase {
|
|
8
|
+
constructor(element, dropdown, toaster, cdr) {
|
|
9
|
+
super(toaster, cdr);
|
|
10
|
+
this.element = element;
|
|
11
|
+
this.dropdown = dropdown;
|
|
12
|
+
this.switch = true;
|
|
13
|
+
}
|
|
14
|
+
getMethod() {
|
|
15
|
+
return this.beforeOpen;
|
|
16
|
+
}
|
|
17
|
+
callMethod() {
|
|
18
|
+
if (this.dropdown.isOpened) {
|
|
19
|
+
if (!this.switch)
|
|
20
|
+
return true;
|
|
21
|
+
this.dropdown.hide();
|
|
22
|
+
}
|
|
23
|
+
else if (!super.callMethod()) {
|
|
24
|
+
this.dropdown.show();
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownToggleDirective, deps: [{ token: i0.ElementRef }, { token: i1.DropdownDirective }, { token: TOASTER_SERVICE }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DropdownToggleDirective, selector: "[dropdownToggle]", inputs: { beforeOpen: "beforeOpen", switch: "switch" }, exportAs: ["dropdown-toggle"], usesInheritance: true, ngImport: i0 }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownToggleDirective, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
standalone: false,
|
|
35
|
+
selector: "[dropdownToggle]",
|
|
36
|
+
exportAs: "dropdown-toggle",
|
|
37
|
+
}]
|
|
38
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DropdownDirective }, { type: undefined, decorators: [{
|
|
39
|
+
type: Inject,
|
|
40
|
+
args: [TOASTER_SERVICE]
|
|
41
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { beforeOpen: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], switch: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}] } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9kcm9wZG93bi10b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBK0IsZUFBZSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQU85RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZUFBZTtJQUt4RCxZQUFxQixPQUFtQixFQUNuQixRQUEyQixFQUNYLE9BQXdCLEVBQ2pELEdBQXNCO1FBQzlCLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFKSCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBSTVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLENBQUM7YUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzsrR0F6QlEsdUJBQXVCLDZFQU9aLGVBQWU7bUdBUDFCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLGlCQUFpQjtpQkFDOUI7OzBCQVFnQixNQUFNOzJCQUFDLGVBQWU7eUVBTDFCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtEcm9wZG93bkRpcmVjdGl2ZX0gZnJvbSBcIi4vZHJvcGRvd24uZGlyZWN0aXZlXCI7XG5pbXBvcnQge0FzeW5jTWV0aG9kQmFzZX0gZnJvbSBcIi4vYXN5bmMtbWV0aG9kLmJhc2VcIjtcbmltcG9ydCB7QXN5bmNNZXRob2QsIElUb2FzdGVyU2VydmljZSwgVE9BU1RFUl9TRVJWSUNFfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIHNlbGVjdG9yOiBcIltkcm9wZG93blRvZ2dsZV1cIixcbiAgICBleHBvcnRBczogXCJkcm9wZG93bi10b2dnbGVcIixcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUgZXh0ZW5kcyBBc3luY01ldGhvZEJhc2Uge1xuXG4gICAgQElucHV0KCkgYmVmb3JlT3BlbjogQXN5bmNNZXRob2Q7XG4gICAgQElucHV0KCkgc3dpdGNoOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICByZWFkb25seSBkcm9wZG93bjogRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgICAgICAgICAgQEluamVjdChUT0FTVEVSX1NFUlZJQ0UpIHRvYXN0ZXI6IElUb2FzdGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKHRvYXN0ZXIsIGNkcik7XG4gICAgICAgIHRoaXMuc3dpdGNoID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0TWV0aG9kKCk6IEFzeW5jTWV0aG9kIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmVmb3JlT3BlbjtcbiAgICB9XG5cbiAgICBjYWxsTWV0aG9kKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bi5pc09wZW5lZCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnN3aXRjaCkgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgfSBlbHNlIGlmICghc3VwZXIuY2FsbE1ldGhvZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLnNob3coKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DropdownDirective {
|
|
4
|
+
static { this.active = null; }
|
|
5
|
+
get nativeElement() {
|
|
6
|
+
return this.element.nativeElement;
|
|
7
|
+
}
|
|
8
|
+
get isOpened() {
|
|
9
|
+
return this.opened;
|
|
10
|
+
}
|
|
11
|
+
get getDisabled() {
|
|
12
|
+
return this.disabled;
|
|
13
|
+
}
|
|
14
|
+
set isDisabled(value) {
|
|
15
|
+
this.disabled = value;
|
|
16
|
+
if (!value)
|
|
17
|
+
return;
|
|
18
|
+
this.hide();
|
|
19
|
+
}
|
|
20
|
+
constructor(element) {
|
|
21
|
+
this.element = element;
|
|
22
|
+
this.opened = false;
|
|
23
|
+
this.disabled = false;
|
|
24
|
+
this.closeInside = true;
|
|
25
|
+
this.attachToRoot = true;
|
|
26
|
+
this.mobileViewUnder = 0;
|
|
27
|
+
this.keyboardHandler = true;
|
|
28
|
+
this.onShown = new EventEmitter();
|
|
29
|
+
this.onHidden = new EventEmitter();
|
|
30
|
+
this.onKeyboard = new EventEmitter();
|
|
31
|
+
this.onClick = (event) => {
|
|
32
|
+
// We don't care about clicks with right/center mouse buttons
|
|
33
|
+
if (event.button)
|
|
34
|
+
return;
|
|
35
|
+
const target = (event.composedPath()?.shift() || event.target);
|
|
36
|
+
// If blocked closing inside we only consider inside if the target is not directly the contentElement
|
|
37
|
+
// We only have a contentElement in case when we are using *dropdownContent directive
|
|
38
|
+
if (!this.closeInside && (!this.contentElement || target !== this.contentElement)) {
|
|
39
|
+
// Try to determine if we are inside by collecting the possible parent elements to check
|
|
40
|
+
const parents = !this.contentElement ? [] : Array.from(this.contentElement.childNodes);
|
|
41
|
+
if (this.nativeElement) {
|
|
42
|
+
parents.push(this.nativeElement);
|
|
43
|
+
}
|
|
44
|
+
// If one of the parents contains the target then we clicked inside
|
|
45
|
+
if (parents.some(child => child.contains(target)))
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
setTimeout(() => this.hide(), event.type == "touchend" ? 250 : 100);
|
|
49
|
+
};
|
|
50
|
+
this.onKeyDown = (event) => {
|
|
51
|
+
const input = event.target;
|
|
52
|
+
const notInput = input && input.tagName !== "INPUT" && input.tagName !== "TEXTAREA";
|
|
53
|
+
if ("Tab" === event.key || !input || notInput) {
|
|
54
|
+
event.stopPropagation();
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
}
|
|
57
|
+
if ("Esc" === event.key || "Escape" === event.key) {
|
|
58
|
+
this.hide();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.onKeyboard.emit(event);
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
ngOnDestroy() {
|
|
65
|
+
if (DropdownDirective.active === this) {
|
|
66
|
+
DropdownDirective.active = null;
|
|
67
|
+
this.onHidden.emit(this);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
showEvent() {
|
|
71
|
+
this.onShown.emit(this);
|
|
72
|
+
}
|
|
73
|
+
hideEvent() {
|
|
74
|
+
this.onHidden.emit(this);
|
|
75
|
+
}
|
|
76
|
+
show($event) {
|
|
77
|
+
if (this.opened)
|
|
78
|
+
return;
|
|
79
|
+
if ($event) {
|
|
80
|
+
if (!this.keyboardHandler)
|
|
81
|
+
return true;
|
|
82
|
+
$event.preventDefault();
|
|
83
|
+
}
|
|
84
|
+
if (this.disabled)
|
|
85
|
+
return true;
|
|
86
|
+
this.opened = true;
|
|
87
|
+
this.showEvent();
|
|
88
|
+
DropdownDirective.active = this;
|
|
89
|
+
// Prevent toggle from selecting an item right after it is shown
|
|
90
|
+
setTimeout(() => {
|
|
91
|
+
if (!this.opened)
|
|
92
|
+
return;
|
|
93
|
+
document.addEventListener("click", this.onClick);
|
|
94
|
+
document.addEventListener("keydown", this.onKeyDown);
|
|
95
|
+
}, 10);
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
hide() {
|
|
99
|
+
if (!this.opened)
|
|
100
|
+
return true;
|
|
101
|
+
this.opened = false;
|
|
102
|
+
this.hideEvent();
|
|
103
|
+
document.removeEventListener("click", this.onClick);
|
|
104
|
+
document.removeEventListener("keydown", this.onKeyDown);
|
|
105
|
+
// Prevent toggle from refocus itself after it is hidden because of another toggle
|
|
106
|
+
setTimeout(() => {
|
|
107
|
+
if (DropdownDirective.active === this) {
|
|
108
|
+
DropdownDirective.active = null;
|
|
109
|
+
this.nativeElement?.focus();
|
|
110
|
+
}
|
|
111
|
+
}, 10);
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
115
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DropdownDirective, selector: "[dd],[drop-down]", inputs: { closeInside: "closeInside", attachToRoot: "attachToRoot", placement: "placement", autoPlacement: "autoPlacement", mobileViewUnder: "mobileViewUnder", keyboardHandler: "keyboardHandler", isDisabled: "isDisabled" }, outputs: { onShown: "onShown", onHidden: "onHidden", onKeyboard: "onKeyboard" }, host: { listeners: { "keydown.enter": "show($event)", "keydown.space": "show($event)" }, properties: { "class.open": "this.isOpened", "class.disabled": "this.getDisabled" } }, exportAs: ["dropdown"], ngImport: i0 }); }
|
|
116
|
+
}
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
118
|
+
type: Directive,
|
|
119
|
+
args: [{
|
|
120
|
+
standalone: false,
|
|
121
|
+
selector: "[dd],[drop-down]",
|
|
122
|
+
exportAs: "dropdown"
|
|
123
|
+
}]
|
|
124
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { closeInside: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], attachToRoot: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], placement: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], autoPlacement: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], mobileViewUnder: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], keyboardHandler: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], onShown: [{
|
|
137
|
+
type: Output
|
|
138
|
+
}], onHidden: [{
|
|
139
|
+
type: Output
|
|
140
|
+
}], onKeyboard: [{
|
|
141
|
+
type: Output
|
|
142
|
+
}], isOpened: [{
|
|
143
|
+
type: HostBinding,
|
|
144
|
+
args: ["class.open"]
|
|
145
|
+
}], getDisabled: [{
|
|
146
|
+
type: HostBinding,
|
|
147
|
+
args: ["class.disabled"]
|
|
148
|
+
}], isDisabled: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], show: [{
|
|
151
|
+
type: HostListener,
|
|
152
|
+
args: ["keydown.enter", ["$event"]]
|
|
153
|
+
}, {
|
|
154
|
+
type: HostListener,
|
|
155
|
+
args: ["keydown.space", ["$event"]]
|
|
156
|
+
}] } });
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9kaXJlY3RpdmVzL2Ryb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQVF2SCxNQUFNLE9BQU8saUJBQWlCO2FBRVQsV0FBTSxHQUFzQixJQUFJLEFBQTFCLENBQTJCO0lBaURsRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ0ksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDSSxVQUFVLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUFzQixPQUFnQztRQUFoQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENB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Q0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3BDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEMsQ0FBQztRQUNMLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7K0dBcEtRLGlCQUFpQjttR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUw3QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxLQUFLO29CQUNqQixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsVUFBVTtpQkFDdkI7K0VBV1ksV0FBVztzQkFBbkIsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxlQUFlO3NCQUF2QixLQUFLO2dCQU1HLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBWUgsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLFlBQVk7Z0JBTXJCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTXpCLFVBQVU7c0JBRGIsS0FBSztnQkFrRU4sSUFBSTtzQkFGSCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtBdXRvUGxhY2VtZW50T3B0aW9ucywgUGxhY2VtZW50fSBmcm9tIFwiQGZsb2F0aW5nLXVpL2RvbVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogXCJbZGRdLFtkcm9wLWRvd25dXCIsXG4gICAgZXhwb3J0QXM6IFwiZHJvcGRvd25cIlxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIGFjdGl2ZTogRHJvcGRvd25EaXJlY3RpdmUgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIG9wZW5lZDogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBkcm9wZG93biBzaG91bGQgYmUgY2xvc2VkIGV2ZW4gaWYgd2UgY2xpY2sgaW5zaWRlIGl0XG4gICAgICovXG4gICAgQElucHV0KCkgY2xvc2VJbnNpZGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBmbG9hdGluZyBlbGVtZW50IG5lZWRzIHRvIGJlIHBsYWNlZCBpbiB0aGUgcm9vdCBub2RlIG9yIGtlZXAgd2hlcmUgaXQgd2FzIGJlZm9yZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGF0dGFjaFRvUm9vdDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50IHJlbGF0aXZlIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwbGFjZW1lbnQ6IFBsYWNlbWVudDtcblxuICAgIC8qKlxuICAgICAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBjaG9vc2luZyB0aGUgcGxhY2VtZW50XG4gICAgICogdGhhdCBoYXMgdGhlIG1vc3Qgc3BhY2UgYXZhaWxhYmxlIGF1dG9tYXRpY2FsbHksIHdpdGhvdXQgbmVlZGluZyB0byBzcGVjaWZ5IGFcbiAgICAgKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gICAgICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9QbGFjZW1lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhdXRvUGxhY2VtZW50OiBBdXRvUGxhY2VtZW50T3B0aW9ucztcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGRyb3Bkb3duIGNvbnRlbnQgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBhIGZpeGVkIGZ1bGwgc2NyZWVuIHZpZXcgdW5kZXIgdGhpcyB3aW5kb3cgd2lkdGhcbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgQElucHV0KCkgbW9iaWxlVmlld1VuZGVyOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBkcm9wZG93biBzaG91bGQgcmVhY3QgdG8ga2V5cyB0byBjbG9zZSBsaWtlICdFc2MnXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGtleWJvYXJkSGFuZGxlcjogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSBvblNob3duOiBFdmVudEVtaXR0ZXI8RHJvcGRvd25EaXJlY3RpdmU+O1xuICAgIEBPdXRwdXQoKSBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPERyb3Bkb3duRGlyZWN0aXZlPjtcbiAgICBAT3V0cHV0KCkgb25LZXlib2FyZDogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+O1xuXG4gICAgY29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkNsaWNrOiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25LZXlEb3duOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5vcGVuXCIpXG4gICAgZ2V0IGlzT3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZGlzYWJsZWRcIilcbiAgICBnZXQgZ2V0RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHZhbHVlO1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2xvc2VJbnNpZGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmF0dGFjaFRvUm9vdCA9IHRydWU7XG4gICAgICAgIHRoaXMubW9iaWxlVmlld1VuZGVyID0gMDtcbiAgICAgICAgdGhpcy5rZXlib2FyZEhhbmRsZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uU2hvd24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICAgICAgdGhpcy5vbkhpZGRlbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgICAgICB0aGlzLm9uS2V5Ym9hcmQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG4gICAgICAgIHRoaXMub25DbGljayA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgY2FyZSBhYm91dCBjbGlja3Mgd2l0aCByaWdodC9jZW50ZXIgbW91c2UgYnV0dG9uc1xuICAgICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbikgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gKGV2ZW50LmNvbXBvc2VkUGF0aCgpPy5zaGlmdCgpIHx8IGV2ZW50LnRhcmdldCkgYXMgTm9kZTtcbiAgICAgICAgICAgIC8vIElmIGJsb2NrZWQgY2xvc2luZyBpbnNpZGUgd2Ugb25seSBjb25zaWRlciBpbnNpZGUgaWYgdGhlIHRhcmdldCBpcyBub3QgZGlyZWN0bHkgdGhlIGNvbnRlbnRFbGVtZW50XG4gICAgICAgICAgICAvLyBXZSBvbmx5IGhhdmUgYSBjb250ZW50RWxlbWVudCBpbiBjYXNlIHdoZW4gd2UgYXJlIHVzaW5nICpkcm9wZG93bkNvbnRlbnQgZGlyZWN0aXZlXG4gICAgICAgICAgICBpZiAoIXRoaXMuY2xvc2VJbnNpZGUgJiYgKCF0aGlzLmNvbnRlbnRFbGVtZW50IHx8IHRhcmdldCAhPT0gdGhpcy5jb250ZW50RWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUcnkgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBpbnNpZGUgYnkgY29sbGVjdGluZyB0aGUgcG9zc2libGUgcGFyZW50IGVsZW1lbnRzIHRvIGNoZWNrXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50cyA9ICF0aGlzLmNvbnRlbnRFbGVtZW50ID8gW10gOiBBcnJheS5mcm9tKHRoaXMuY29udGVudEVsZW1lbnQuY2hpbGROb2Rlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRzLnB1c2godGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgb25lIG9mIHRoZSBwYXJlbnRzIGNvbnRhaW5zIHRoZSB0YXJnZXQgdGhlbiB3ZSBjbGlja2VkIGluc2lkZVxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRzLnNvbWUoY2hpbGQgPT4gY2hpbGQuY29udGFpbnModGFyZ2V0KSkpIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oaWRlKCksIGV2ZW50LnR5cGUgPT0gXCJ0b3VjaGVuZFwiID8gMjUwIDogMTAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vbktleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBub3RJbnB1dCA9IGlucHV0ICYmIGlucHV0LnRhZ05hbWUgIT09IFwiSU5QVVRcIiAmJiBpbnB1dC50YWdOYW1lICE9PSBcIlRFWFRBUkVBXCI7XG4gICAgICAgICAgICBpZiAoXCJUYWJcIiA9PT0gZXZlbnQua2V5IHx8ICFpbnB1dCB8fCBub3RJbnB1dCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXCJFc2NcIiA9PT0gZXZlbnQua2V5IHx8IFwiRXNjYXBlXCIgPT09IGV2ZW50LmtleSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub25LZXlib2FyZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKERyb3Bkb3duRGlyZWN0aXZlLmFjdGl2ZSA9PT0gdGhpcykge1xuICAgICAgICAgICAgRHJvcGRvd25EaXJlY3RpdmUuYWN0aXZlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMub25IaWRkZW4uZW1pdCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblNob3duLmVtaXQodGhpcyk7XG4gICAgfVxuXG4gICAgaGlkZUV2ZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uSGlkZGVuLmVtaXQodGhpcyk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd24uZW50ZXJcIiwgW1wiJGV2ZW50XCJdKVxuICAgIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duLnNwYWNlXCIsIFtcIiRldmVudFwiXSlcbiAgICBzaG93KCRldmVudD86IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCkgcmV0dXJuO1xuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMua2V5Ym9hcmRIYW5kbGVyKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcGVuZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dFdmVudCgpO1xuICAgICAgICBEcm9wZG93bkRpcmVjdGl2ZS5hY3RpdmUgPSB0aGlzO1xuICAgICAgICAvLyBQcmV2ZW50IHRvZ2dsZSBmcm9tIHNlbGVjdGluZyBhbiBpdGVtIHJpZ2h0IGFmdGVyIGl0IGlzIHNob3duXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm9wZW5lZCkgcmV0dXJuO1xuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMub25DbGljayk7XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLm9uS2V5RG93bik7XG4gICAgICAgIH0sIDEwKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaGlkZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wZW5lZCkgcmV0dXJuIHRydWU7XG4gICAgICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGlkZUV2ZW50KCk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLm9uQ2xpY2spO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLm9uS2V5RG93bik7XG4gICAgICAgIC8vIFByZXZlbnQgdG9nZ2xlIGZyb20gcmVmb2N1cyBpdHNlbGYgYWZ0ZXIgaXQgaXMgaGlkZGVuIGJlY2F1c2Ugb2YgYW5vdGhlciB0b2dnbGVcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoRHJvcGRvd25EaXJlY3RpdmUuYWN0aXZlID09PSB0aGlzKSB7XG4gICAgICAgICAgICAgICAgRHJvcGRvd25EaXJlY3RpdmUuYWN0aXZlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDEwKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
|