@stemy/ngx-utils 17.2.1 → 17.3.1
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/async-method.base.mjs +5 -6
- package/esm2022/ngx-utils/directives/dropdown-content.directive.mjs +176 -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 +554 -64
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ngx-utils/common-types.d.ts +3 -2
- package/ngx-utils/components/dropdown-box/dropdown-box.component.d.ts +56 -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/async-method.base.d.ts +1 -1
- package/ngx-utils/directives/dropdown-content.directive.d.ts +25 -0
- package/ngx-utils/directives/dropdown-toggle.directive.d.ts +16 -0
- package/ngx-utils/directives/dropdown.directive.d.ts +57 -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 +7 -1
|
@@ -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
|
|
@@ -21,13 +21,11 @@ export class AsyncMethodBase {
|
|
|
21
21
|
this.cdr.detectChanges();
|
|
22
22
|
}
|
|
23
23
|
click(ev) {
|
|
24
|
-
|
|
25
|
-
ev.preventDefault();
|
|
26
|
-
ev.stopPropagation();
|
|
27
|
-
}
|
|
24
|
+
ev?.preventDefault();
|
|
28
25
|
if (this.disabled)
|
|
29
|
-
return;
|
|
26
|
+
return true;
|
|
30
27
|
this.callMethod();
|
|
28
|
+
return true;
|
|
31
29
|
}
|
|
32
30
|
callMethod() {
|
|
33
31
|
if (this.loading)
|
|
@@ -64,6 +62,7 @@ export class AsyncMethodBase {
|
|
|
64
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AsyncMethodBase, decorators: [{
|
|
65
63
|
type: Directive,
|
|
66
64
|
args: [{
|
|
65
|
+
standalone: false,
|
|
67
66
|
selector: "[__asmb__]"
|
|
68
67
|
}]
|
|
69
68
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -87,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
87
86
|
type: HostListener,
|
|
88
87
|
args: ["click", ["$event"]]
|
|
89
88
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtbWV0aG9kLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE4QyxlQUFlLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNN0YsTUFBTSxPQUFPLGVBQWU7SUFVeEIsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQStDLE9BQXdCLEVBQVksR0FBc0I7UUFBMUQsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNyRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDckQsQ0FBQztJQUVTLFNBQVM7UUFDZixPQUFPLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBR0QsS0FBSyxDQUFDLEVBQVM7UUFDWCxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsQ0FBQyxNQUFNLFlBQVksT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0wsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzsrR0FwRVEsZUFBZSxrQkFvQkosZUFBZTttR0FwQjFCLGVBQWU7OzRGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxZQUFZO2lCQUN6Qjs7MEJBcUJnQixNQUFNOzJCQUFDLGVBQWU7eUVBbEIxQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBS0gsVUFBVTtzQkFEYixXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsU0FBUztzQkFEWixXQUFXO3VCQUFDLGVBQWU7Z0JBbUI1QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7QXN5bmNNZXRob2QsIElBc3luY01lc3NhZ2UsIElUb2FzdGVyU2VydmljZSwgVE9BU1RFUl9TRVJWSUNFfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIHNlbGVjdG9yOiBcIltfX2FzbWJfX11cIlxufSlcbmV4cG9ydCBjbGFzcyBBc3luY01ldGhvZEJhc2UgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29udGV4dDogYW55O1xuXG4gICAgQE91dHB1dCgpIG9uU3VjY2VzczogRXZlbnRFbWl0dGVyPElBc3luY01lc3NhZ2U+O1xuICAgIEBPdXRwdXQoKSBvbkVycm9yOiBFdmVudEVtaXR0ZXI8SUFzeW5jTWVzc2FnZT47XG5cbiAgICBwcm90ZWN0ZWQgbG9hZGluZzogYm9vbGVhbjtcblxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmRpc2FibGVkXCIpXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmxvYWRpbmdcIilcbiAgICBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoVE9BU1RFUl9TRVJWSUNFKSBwcm90ZWN0ZWQgdG9hc3RlcjogSVRvYXN0ZXJTZXJ2aWNlLCBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICB0aGlzLm9uU3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8SUFzeW5jTWVzc2FnZT4oKTtcbiAgICAgICAgdGhpcy5vbkVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxJQXN5bmNNZXNzYWdlPigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRNZXRob2QoKTogQXN5bmNNZXRob2Qge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gICAgY2xpY2soZXY6IEV2ZW50KSB7XG4gICAgICAgIGV2Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuIHRydWU7XG4gICAgICAgIHRoaXMuY2FsbE1ldGhvZCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjYWxsTWV0aG9kKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5sb2FkaW5nKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgbWV0aG9kID0gdGhpcy5nZXRNZXRob2QoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gIW1ldGhvZCA/IG51bGwgOiBtZXRob2QodGhpcy5jb250ZXh0KTtcbiAgICAgICAgaWYgKCEocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3VjY2Vzcy5lbWl0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3MocmVzdWx0Lm1lc3NhZ2UsIHJlc3VsdC5jb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgcmVhc29uID0+IHtcbiAgICAgICAgICAgIGlmICghcmVhc29uIHx8ICFyZWFzb24ubWVzc2FnZSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWFzb24gbXVzdCBpbXBsZW1lbnQgSUFzeW5jTWVzc2FnZSBpbnRlcmZhY2VcIik7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMub25FcnJvci5lbWl0KHJlYXNvbik7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IocmVhc29uLm1lc3NhZ2UsIHJlYXNvbi5jb250ZXh0KTtcbiAgICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY2RyW1wiZGVzdHJveWVkXCJdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Directive, ElementRef, Inject, Optional, TemplateRef, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { autoPlacement, autoUpdate, arrow, 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, arrowEl] = 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.attachOutside ? "fixed" : "absolute";
|
|
40
|
+
const middleware = [
|
|
41
|
+
arrow({ element: arrowEl })
|
|
42
|
+
];
|
|
43
|
+
if (this.dropdown.autoPlacement) {
|
|
44
|
+
middleware.push(autoPlacement(this.dropdown.autoPlacement));
|
|
45
|
+
}
|
|
46
|
+
// Set up floating UI auto update
|
|
47
|
+
this.cleanUp = autoUpdate(ref, content, () => {
|
|
48
|
+
computePosition(ref, content, {
|
|
49
|
+
strategy,
|
|
50
|
+
placement,
|
|
51
|
+
middleware
|
|
52
|
+
}).then(({ x, y, placement, middlewareData }) => {
|
|
53
|
+
if (middlewareData.arrow) {
|
|
54
|
+
const { x, y } = middlewareData.arrow;
|
|
55
|
+
Object.assign(arrowEl.style, {
|
|
56
|
+
left: x != null ? `${x}px` : ``,
|
|
57
|
+
top: y != null ? `${y}px` : ``,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const isMobileView = window.innerWidth <= mobileWidth;
|
|
61
|
+
Object.assign(content.style, {
|
|
62
|
+
opacity: init ? "0" : "1",
|
|
63
|
+
position: isMobileView ? "fixed" : strategy,
|
|
64
|
+
left: isMobileView ? `0px` : `${x}px`,
|
|
65
|
+
right: isMobileView ? `0px` : undefined,
|
|
66
|
+
top: isMobileView ? `0px` : `${y}px`,
|
|
67
|
+
bottom: isMobileView ? `0px` : undefined,
|
|
68
|
+
zIndex: `var(--dd-z-index, 100)`
|
|
69
|
+
});
|
|
70
|
+
const refRect = ref.getBoundingClientRect();
|
|
71
|
+
const contentRect = content.getBoundingClientRect();
|
|
72
|
+
const lastPlacement = this.lastPlacement;
|
|
73
|
+
const newPlacement = `dropdown-placement-${placement}`;
|
|
74
|
+
if (lastPlacement) {
|
|
75
|
+
ref.classList.replace(lastPlacement, newPlacement);
|
|
76
|
+
content.classList.replace(lastPlacement, newPlacement);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
ref.classList.add(newPlacement);
|
|
80
|
+
content.classList.add(newPlacement);
|
|
81
|
+
}
|
|
82
|
+
if (isMobileView) {
|
|
83
|
+
content.classList.add(`dropdown-content-mobile`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
content.classList.remove(`dropdown-content-mobile`);
|
|
87
|
+
}
|
|
88
|
+
rectProps.forEach(prop => {
|
|
89
|
+
content.style.setProperty(`--toggle-${prop}`, `${refRect[prop]}px`);
|
|
90
|
+
ref.style.setProperty(`--content-${prop}`, `${contentRect[prop]}px`);
|
|
91
|
+
});
|
|
92
|
+
this.lastPlacement = newPlacement;
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
destroyView() {
|
|
97
|
+
this.vcr.clear();
|
|
98
|
+
this.dropdown.contentElement?.remove();
|
|
99
|
+
this.cleanUp?.();
|
|
100
|
+
}
|
|
101
|
+
whereToAttach() {
|
|
102
|
+
const target = this.dropdown.attachTo;
|
|
103
|
+
if (target === "root" && this.rootElem) {
|
|
104
|
+
return this.rootElem;
|
|
105
|
+
}
|
|
106
|
+
if (target instanceof ElementRef) {
|
|
107
|
+
return target.nativeElement;
|
|
108
|
+
}
|
|
109
|
+
if (target instanceof HTMLElement) {
|
|
110
|
+
return target;
|
|
111
|
+
}
|
|
112
|
+
const anchor = this.vcr.element.nativeElement;
|
|
113
|
+
return anchor?.parentElement || this.rootElem;
|
|
114
|
+
}
|
|
115
|
+
createWrapper() {
|
|
116
|
+
const wrapper = document.createElement("div");
|
|
117
|
+
const arrow = document.createElement("div");
|
|
118
|
+
arrow.classList.add(`dropdown-content-arrow`);
|
|
119
|
+
const ref = this.vcr.createEmbeddedView(this.templateRef);
|
|
120
|
+
ref.rootNodes.forEach(node => wrapper.appendChild(node));
|
|
121
|
+
this.attachTo = this.whereToAttach();
|
|
122
|
+
this.attachTo.appendChild(wrapper);
|
|
123
|
+
this.attachOutside = !this.dropdown.nativeElement?.contains(this.attachTo);
|
|
124
|
+
if (this.attachOutside) {
|
|
125
|
+
const referenceStyles = getCssVariables(this.dropdown.nativeElement);
|
|
126
|
+
const wrapperStyles = getCssVariables(wrapper);
|
|
127
|
+
Object.keys(referenceStyles).forEach(key => {
|
|
128
|
+
if (!wrapperStyles[key]) {
|
|
129
|
+
wrapper.style.setProperty(key, referenceStyles[key]);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
const autoPlacement = this.dropdown.autoPlacement;
|
|
134
|
+
if (this.lastPlacement) {
|
|
135
|
+
wrapper.classList.add(this.lastPlacement);
|
|
136
|
+
}
|
|
137
|
+
if (autoPlacement) {
|
|
138
|
+
const vertical = autoPlacement.allowedPlacements.some(p => p.includes("top") || p.includes("bottom"));
|
|
139
|
+
const horizontal = autoPlacement.allowedPlacements.some(p => p.includes("left") || p.includes("right"));
|
|
140
|
+
if (vertical && horizontal) {
|
|
141
|
+
wrapper.classList.add(`dropdown-content-axis-both`);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const axis = vertical ? "vertical" : "horizontal";
|
|
145
|
+
wrapper.classList.add(`dropdown-content-axis-${axis}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
wrapper.classList.add("dropdown-content-wrap");
|
|
149
|
+
wrapper.appendChild(arrow);
|
|
150
|
+
return [wrapper, arrow];
|
|
151
|
+
}
|
|
152
|
+
initialize() {
|
|
153
|
+
this.createView(true);
|
|
154
|
+
setTimeout(() => this.destroyView());
|
|
155
|
+
}
|
|
156
|
+
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 }); }
|
|
157
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DropdownContentDirective, selector: "[dropdownContent]", exportAs: ["dropdown-content"], ngImport: i0 }); }
|
|
158
|
+
}
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownContentDirective, decorators: [{
|
|
160
|
+
type: Directive,
|
|
161
|
+
args: [{
|
|
162
|
+
standalone: false,
|
|
163
|
+
selector: "[dropdownContent]",
|
|
164
|
+
exportAs: "dropdown-content",
|
|
165
|
+
}]
|
|
166
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: HTMLElement, decorators: [{
|
|
167
|
+
type: Optional
|
|
168
|
+
}, {
|
|
169
|
+
type: Inject,
|
|
170
|
+
args: [ROOT_ELEMENT]
|
|
171
|
+
}] }, { type: i1.DropdownDirective, decorators: [{
|
|
172
|
+
type: Optional
|
|
173
|
+
}] }, { type: i0.TemplateRef, decorators: [{
|
|
174
|
+
type: Optional
|
|
175
|
+
}] }] });
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQXVCLE1BQU0sa0JBQWtCLENBQUM7QUFFekcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFFOUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQU9oRCxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDLFlBQXNCLEdBQXFCLEVBQ2EsUUFBcUIsRUFDM0MsUUFBMkIsRUFDNUIsV0FBNkI7UUFIeEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDYSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQzNDLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLENBQUMsQ0FBQztRQUMvRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FB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QUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0EzS1Esd0JBQXdCLGtEQVNELFlBQVk7bUdBVG5DLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0I7OzBCQVVnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7OzBCQUMvQixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHthdXRvUGxhY2VtZW50LCBhdXRvVXBkYXRlLCBhcnJvdywgY29tcHV0ZVBvc2l0aW9uLCBNaWRkbGV3YXJlLCBTdHJhdGVneX0gZnJvbSBcIkBmbG9hdGluZy11aS9kb21cIjtcblxuaW1wb3J0IHtST09UX0VMRU1FTlR9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7RHJvcGRvd25EaXJlY3RpdmV9IGZyb20gXCIuL2Ryb3Bkb3duLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHtPYnNlcnZhYmxlVXRpbHN9IGZyb20gXCIuLi91dGlscy9vYnNlcnZhYmxlLnV0aWxzXCI7XG5pbXBvcnQge2dldENzc1ZhcmlhYmxlc30gZnJvbSBcIi4uL3V0aWxzL21pc2NcIjtcblxuY29uc3QgcmVjdFByb3BzID0gW1wieFwiLCBcInlcIiwgXCJ3aWR0aFwiLCBcImhlaWdodFwiXTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6IFwiW2Ryb3Bkb3duQ29udGVudF1cIixcbiAgICBleHBvcnRBczogXCJkcm9wZG93bi1jb250ZW50XCIsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgYXR0YWNoVG86IEhUTUxFbGVtZW50O1xuICAgIHByb3RlY3RlZCBhdHRhY2hPdXRzaWRlOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBsYXN0UGxhY2VtZW50OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGNsZWFuVXA6ICgpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUk9PVF9FTEVNRU5UKSBwcm90ZWN0ZWQgcm9vdEVsZW06IEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBkcm9wZG93bjogRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcmVhZG9ubHkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEcm9wZG93bkRpcmVjdGl2ZSBpcyByZXF1aXJlZCEgUGxlYXNlIHVzZSBpdCBpbnNpZGUgYSBkZCwgZHJvcC1kb3duIGRpcmVjdGl2ZSBhdHRyaWJ1dGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUZW1wbGF0ZVJlZiBpcyByZXF1aXJlZCEgUGxlYXNlIHVzZSB3aXRoICpkcm9wZG93bkNvbnRlbnRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0UGxhY2VtZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBPYnNlcnZhYmxlVXRpbHMubXVsdGlTdWJzY3JpcHRpb24oXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLm9uU2hvd24uc3Vic2NyaWJlKCgpID0+IHRoaXMuY3JlYXRlVmlldygpKSxcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ub25IaWRkZW4uc3Vic2NyaWJlKCgpID0+IHRoaXMuZGVzdHJveVZpZXcoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlVmlldyhpbml0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbW9iaWxlV2lkdGggPSB0aGlzLmRyb3Bkb3duLm1vYmlsZVZpZXdVbmRlciB8fCAwO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IFtjb250ZW50LCBhcnJvd0VsXSA9IHRoaXMuY3JlYXRlV3JhcHBlcigpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50ID0gY29udGVudDtcbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIHBvc2l0aW9uaW5nIHNldHRpbmdzXG4gICAgICAgIGNvbnN0IHBsYWNlbWVudCA9IHRoaXMuZHJvcGRvd24ucGxhY2VtZW50IHx8IFwiYm90dG9tXCI7XG4gICAgICAgIGNvbnN0IHN0cmF0ZWd5OiBTdHJhdGVneSA9IHRoaXMuYXR0YWNoT3V0c2lkZSA/IFwiZml4ZWRcIiA6IFwiYWJzb2x1dGVcIjtcbiAgICAgICAgY29uc3QgbWlkZGxld2FyZSA9IFtcbiAgICAgICAgICAgIGFycm93KHtlbGVtZW50OiBhcnJvd0VsfSlcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd24uYXV0b1BsYWNlbWVudCkge1xuICAgICAgICAgICAgbWlkZGxld2FyZS5wdXNoKGF1dG9QbGFjZW1lbnQodGhpcy5kcm9wZG93bi5hdXRvUGxhY2VtZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIGF1dG8gdXBkYXRlXG4gICAgICAgIHRoaXMuY2xlYW5VcCA9IGF1dG9VcGRhdGUoXG4gICAgICAgICAgICByZWYsXG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVQb3NpdGlvbihcbiAgICAgICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pZGRsZXdhcmVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICkudGhlbigoe3gsIHksIHBsYWNlbWVudCwgbWlkZGxld2FyZURhdGF9KSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pZGRsZXdhcmVEYXRhLmFycm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7eCwgeX0gPSBtaWRkbGV3YXJlRGF0YS5hcnJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYXJyb3dFbC5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHggIT0gbnVsbCA/IGAke3h9cHhgIDogYGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiB5ICE9IG51bGwgPyBgJHt5fXB4YCA6IGBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc01vYmlsZVZpZXcgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSBtb2JpbGVXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb250ZW50LnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiBpbml0ID8gXCIwXCIgOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpc01vYmlsZVZpZXcgPyBcImZpeGVkXCIgOiBzdHJhdGVneSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGlzTW9iaWxlVmlldyA/IGAwcHhgOiBgJHt4fXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBpc01vYmlsZVZpZXcgPyBgMHB4YDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBpc01vYmlsZVZpZXcgPyBgMHB4YDogYCR7eX1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IGlzTW9iaWxlVmlldyA/IGAwcHhgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IGB2YXIoLS1kZC16LWluZGV4LCAxMDApYFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmUmVjdCA9IHJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudFJlY3QgPSBjb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0UGxhY2VtZW50ID0gdGhpcy5sYXN0UGxhY2VtZW50O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQbGFjZW1lbnQgPSBgZHJvcGRvd24tcGxhY2VtZW50LSR7cGxhY2VtZW50fWA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0UGxhY2VtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYuY2xhc3NMaXN0LnJlcGxhY2UobGFzdFBsYWNlbWVudCwgbmV3UGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LnJlcGxhY2UobGFzdFBsYWNlbWVudCwgbmV3UGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5jbGFzc0xpc3QuYWRkKG5ld1BsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5hZGQobmV3UGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtbW9iaWxlYCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoYGRyb3Bkb3duLWNvbnRlbnQtbW9iaWxlYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVjdFByb3BzLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LnN0eWxlLnNldFByb3BlcnR5KGAtLXRvZ2dsZS0ke3Byb3B9YCwgYCR7cmVmUmVjdFtwcm9wXX1weGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLnN0eWxlLnNldFByb3BlcnR5KGAtLWNvbnRlbnQtJHtwcm9wfWAsIGAke2NvbnRlbnRSZWN0W3Byb3BdfXB4YCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RQbGFjZW1lbnQgPSBuZXdQbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXN0cm95VmlldygpIHtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5jb250ZW50RWxlbWVudD8ucmVtb3ZlKCk7XG4gICAgICAgIHRoaXMuY2xlYW5VcD8uKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHdoZXJlVG9BdHRhY2goKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmRyb3Bkb3duLmF0dGFjaFRvO1xuICAgICAgICBpZiAodGFyZ2V0ID09PSBcInJvb3RcIiAmJiB0aGlzLnJvb3RFbGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb290RWxlbTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLnZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHJldHVybiBhbmNob3I/LnBhcmVudEVsZW1lbnQgfHwgdGhpcy5yb290RWxlbTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlV3JhcHBlcigpIHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGNvbnN0IGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgYXJyb3cuY2xhc3NMaXN0LmFkZChgZHJvcGRvd24tY29udGVudC1hcnJvd2ApO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgIHJlZi5yb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHdyYXBwZXIuYXBwZW5kQ2hpbGQobm9kZSkpO1xuXG4gICAgICAgIHRoaXMuYXR0YWNoVG8gPSB0aGlzLndoZXJlVG9BdHRhY2goKTtcbiAgICAgICAgdGhpcy5hdHRhY2hUby5hcHBlbmRDaGlsZCh3cmFwcGVyKTtcbiAgICAgICAgdGhpcy5hdHRhY2hPdXRzaWRlID0gIXRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGhpcy5hdHRhY2hUbyk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXR0YWNoT3V0c2lkZSkge1xuICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlU3R5bGVzID0gZ2V0Q3NzVmFyaWFibGVzKHRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyU3R5bGVzID0gZ2V0Q3NzVmFyaWFibGVzKHdyYXBwZXIpO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVmZXJlbmNlU3R5bGVzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF3cmFwcGVyU3R5bGVzW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHJlZmVyZW5jZVN0eWxlc1trZXldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGF1dG9QbGFjZW1lbnQgPSB0aGlzLmRyb3Bkb3duLmF1dG9QbGFjZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLmxhc3RQbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmxhc3RQbGFjZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdXRvUGxhY2VtZW50KSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGF1dG9QbGFjZW1lbnQuYWxsb3dlZFBsYWNlbWVudHMuc29tZShwID0+IHAuaW5jbHVkZXMoXCJ0b3BcIikgfHwgcC5pbmNsdWRlcyhcImJvdHRvbVwiKSk7XG4gICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gYXV0b1BsYWNlbWVudC5hbGxvd2VkUGxhY2VtZW50cy5zb21lKHAgPT4gcC5pbmNsdWRlcyhcImxlZnRcIikgfHwgcC5pbmNsdWRlcyhcInJpZ2h0XCIpKTtcbiAgICAgICAgICAgIGlmICh2ZXJ0aWNhbCAmJiBob3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWF4aXMtYm90aGApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBheGlzID0gdmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIjtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtYXhpcy0ke2F4aXN9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKFwiZHJvcGRvd24tY29udGVudC13cmFwXCIpO1xuICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGFycm93KTtcbiAgICAgICAgcmV0dXJuIFt3cmFwcGVyLCBhcnJvd107XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVWaWV3KHRydWUpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGVzdHJveVZpZXcoKSk7XG4gICAgfVxufVxuIl19
|
|
@@ -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=
|