@dsivd/prestations-ng 17.6.5 → 17.6.7
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/CHANGELOG.md +10 -0
- package/dsivd-prestations-ng-17.6.7.tgz +0 -0
- package/esm2022/foehn-dropdown-menu/dropdown-menu-item.type.mjs +1 -1
- package/esm2022/foehn-dropdown-menu/foehn-dropdown-menu.component.mjs +3 -3
- package/esm2022/foehn-input/foehn-input-string.component.mjs +6 -4
- package/fesm2022/dsivd-prestations-ng.mjs +7 -5
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-dropdown-menu/dropdown-menu-item.type.d.ts +2 -0
- package/package.json +1 -1
- package/dsivd-prestations-ng-17.6.5.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [17.6.7]
|
|
10
|
+
|
|
11
|
+
- [FoehnInputStringComponent](projects/prestations-ng/src/foehn-input/foehn-input-string.component.ts)
|
|
12
|
+
- fixed bug where a number coming from the backend would be trimmed resulting in a console error
|
|
13
|
+
|
|
14
|
+
## [17.6.6]
|
|
15
|
+
|
|
16
|
+
- [foehn-dropdown-menu.component.html](projects/prestations-ng/src/foehn-dropdown-menu/foehn-dropdown-menu.component.html)
|
|
17
|
+
- added `[queryParams]` to `foehn-dropdown-menu` to be able to pass query parameters to the router link
|
|
18
|
+
|
|
9
19
|
## [17.6.5]
|
|
10
20
|
|
|
11
21
|
- [foehn-breadcrumb.component.ts](projects/prestations-ng/src/foehn-breadcrumb/foehn-breadcrumb.component.ts)
|
|
Binary file
|
|
@@ -3,4 +3,4 @@ export class DropdownMenuItem {
|
|
|
3
3
|
this.target = '_self';
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LWl0ZW0udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sZ0JBQWdCO0lBQTdCO1FBTUksV0FBTSxHQUE2QyxPQUFPLENBQUM7SUFDL0QsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuZXhwb3J0IGNsYXNzIERyb3Bkb3duTWVudUl0ZW0ge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICByb3V0ZXJMaW5rPzogc3RyaW5nO1xuICAgIHF1ZXJ5UGFyYW1zPzogUGFyYW1zO1xuICAgIGhyZWY/OiBzdHJpbmc7XG4gICAgdGFyZ2V0PzogJ19zZWxmJyB8ICdfYmxhbmsnIHwgJ19wYXJlbnQnIHwgJ190b3AnID0gJ19zZWxmJztcbn1cbiJdfQ==
|
|
@@ -177,11 +177,11 @@ export class FoehnDropdownMenuComponent {
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnDropdownMenuComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
180
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnDropdownMenuComponent, selector: "foehn-dropdown-menu", inputs: { id: "id", label: "label", model: "model", btnCssClass: "btnCssClass" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "buttonTrigger", first: true, predicate: ["buttonTrigger"], descendants: true, static: true }, { propertyName: "entryPoint", first: true, predicate: ["entryPoint"], descendants: true }, { propertyName: "selectedFocusList", predicate: ["selectedFocusList"], descendants: true }], ngImport: i0, template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n type=\"button\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ddd!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-dark);outline:none;color:#fff}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none;color:inherit}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i3.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnDropdownMenuComponent, selector: "foehn-dropdown-menu", inputs: { id: "id", label: "label", model: "model", btnCssClass: "btnCssClass" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "buttonTrigger", first: true, predicate: ["buttonTrigger"], descendants: true, static: true }, { propertyName: "entryPoint", first: true, predicate: ["entryPoint"], descendants: true }, { propertyName: "selectedFocusList", predicate: ["selectedFocusList"], descendants: true }], ngImport: i0, template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n type=\"button\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.queryParams\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ddd!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-dark);outline:none;color:#fff}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none;color:inherit}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i3.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
181
181
|
}
|
|
182
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnDropdownMenuComponent, decorators: [{
|
|
183
183
|
type: Component,
|
|
184
|
-
args: [{ selector: 'foehn-dropdown-menu', template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n type=\"button\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ddd!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-dark);outline:none;color:#fff}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none;color:inherit}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"] }]
|
|
184
|
+
args: [{ selector: 'foehn-dropdown-menu', template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n type=\"button\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.queryParams\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ddd!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-dark);outline:none;color:#fff}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none;color:inherit}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"] }]
|
|
185
185
|
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { selectedFocusList: [{
|
|
186
186
|
type: ViewChildren,
|
|
187
187
|
args: ['selectedFocusList']
|
|
@@ -209,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
209
209
|
type: HostListener,
|
|
210
210
|
args: ['keydown', ['$event']]
|
|
211
211
|
}] } });
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZHJvcGRvd24tbWVudS9mb2Vobi1kcm9wZG93bi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kcm9wZG93bi1tZW51L2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFjdkMsTUFBTSxPQUFPLDBCQUEwQjtJQWdDbkMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFabEMsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFLOUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBS2xCLDJCQUFzQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBR2hDLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDakIsR0FBRyxFQUFFLENBQUM7WUFDTixJQUFJLEVBQUUsQ0FBQztTQUNWLENBQUM7SUFDTixDQUFDO0lBR0QscUJBQXFCLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsQ0FBQztJQUNMLENBQUM7SUFHRCx1QkFBdUIsQ0FBQyxLQUFvQjtRQUN4QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGFBQWE7UUFDVCxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7UUFDVixZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBaUIsRUFBRTtRQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLEdBQUcsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCx3QkFBd0I7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRWpELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsMERBQTBEO1lBQzFELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3RDLHNFQUFzRTtnQkFDdEUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQXVCO1FBQzFDLDZEQUE2RDtRQUM3RCxxRkFBcUY7UUFDckYsSUFBSSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDdkQsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsa0JBQWtCLEdBQUcsU0FBUyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZELENBQUM7UUFDRCxRQUFRLGtCQUFrQixFQUFFLENBQUM7WUFDekIsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLEtBQUs7Z0JBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssV0FBVztnQkFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDVixLQUFLLE1BQU07Z0JBQ1AsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pCLE1BQU07WUFDVixLQUFLLEtBQUs7Z0JBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLE1BQU07WUFDVixLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssT0FBTztnQkFDUixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDOUIsTUFBTTtZQUNWO2dCQUNJLE9BQU8sSUFBSSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRTNCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFhO1FBQ2xDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQztZQUVwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQztZQUM1QyxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQzlCLENBQUMsYUFBYSxDQUFDO1lBQ2hCLDJDQUEyQztZQUMzQyxJQUFJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2xELGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDeEMsT0FBTztZQUNYLENBQUM7WUFDRCx1QkFBdUI7WUFDdkIsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxzQkFBc0I7UUFDMUIsTUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBRXJELElBQUksQ0FBQyxDQUFDLHFCQUFxQixJQUFJLHFCQUFxQixDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNuRSxJQUFJLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7b0JBQ2pCLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7aUJBQzdDLENBQUMsQ0FBQztZQUNQLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDakQsTUFBTSxDQUFDLElBQUksQ0FDUCxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQzFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FDL0MsQ0FBQztnQkFDTixDQUFDO3FCQUFNLENBQUM7b0JBQ0osTUFBTSxDQUFDLElBQUksQ0FDUCxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQzFDLE9BQU8sQ0FDVixDQUFDO2dCQUNOLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7SUFDckUsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixNQUFNLGlCQUFpQixHQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzFELE1BQU0seUJBQXlCLEdBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0QsTUFBTSxlQUFlLEdBQ2pCLHlCQUF5QixDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDMUQsTUFBTSxnQkFBZ0IsR0FDbEIseUJBQXlCLENBQUMsQ0FBQztnQkFDM0IseUJBQXlCLENBQUMsTUFBTTtnQkFDaEMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBRTdCLElBQUksZUFBZSxHQUFHLFdBQVcsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUk7b0JBQ25CLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLHlCQUF5QixDQUFDLEtBQUssQ0FBQztZQUNuRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFFRCxJQUFJLGdCQUFnQixHQUFHLFlBQVksRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUc7b0JBQ2xCLENBQUMseUJBQXlCLENBQUMsTUFBTTt3QkFDakMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDOytHQXZPUSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw2bEJDMUJ2QyxtdEhBbUdBOzs0RkR6RWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNJLHFCQUFxQjsyRUFNL0IsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLG1CQUFtQjtnQkFJakMsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTVDLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZO2dCQUl2QixFQUFFO3NCQURELEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxXQUFXO3VCQUFDLFNBQVM7Z0JBa0J0QixxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVNqQyx1QkFBdUI7c0JBRHRCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEcm9wZG93bk1lbnVHcm91cCB9IGZyb20gJy4vZHJvcGRvd24tbWVudS1ncm91cC50eXBlJztcblxuaW50ZXJmYWNlIFBvc2l0aW9uIHtcbiAgICBsZWZ0OiBudW1iZXI7XG4gICAgdG9wOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tZHJvcGRvd24tbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuRHJvcGRvd25NZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKCdzZWxlY3RlZEZvY3VzTGlzdCcpXG4gICAgc2VsZWN0ZWRGb2N1c0xpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2J1dHRvblRyaWdnZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGJ1dHRvblRyaWdnZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdlbnRyeVBvaW50JylcbiAgICBlbnRyeVBvaW50OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtb2RlbDogRHJvcGRvd25NZW51R3JvdXBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgYnRuQ3NzQ2xhc3MgPSAnYnRuLXNlY29uZGFyeSc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIGhvc3RJZDogc3RyaW5nO1xuXG4gICAgaXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNsb3NlRHJvcGRvd25UaW1lcjogYW55O1xuICAgIHBvcHVwUG9zaXRpb246IFBvc2l0aW9uO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gLTE7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgIGxlZnQ6IDBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmRVcEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd25WaXNpYmxlICYmIGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXREcm9wZG93bigpO1xuICAgICAgICAgICAgdGhpcy5idXR0b25UcmlnZ2VyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUtleWJvYXJkRG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd25WaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm9uS2V5RG93bklubmVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RJZCA9IHRoaXMuYnVpbGRJZCgpO1xuICAgIH1cblxuICAgIGhhbmRsZUZvY3VzSW4oKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlRHJvcGRvd25UaW1lcik7XG4gICAgfVxuXG4gICAgaGFuZGxlRm9jdXNPdXQoKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlRHJvcGRvd25UaW1lcik7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93blRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0RHJvcGRvd24oKTtcbiAgICAgICAgfSwgNTApO1xuICAgIH1cblxuICAgIGJ1aWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJhc2VJZCA9IHRoaXMuaWQ7XG4gICAgICAgIGlmICghYmFzZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtiYXNlSWR9JHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICB0b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEcm9wZG93blZpc2libGUgPSAhdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZTtcblxuICAgICAgICBpZiAodGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZvY3VzTGlzdC5jaGFuZ2VzLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIC8vIE5lZWQgc2V0VGltZW91dCB0byBiZSBzdXJlIHdlIGhhdmUgbGF0ZXN0IHBvc2l0aW9uIGZvciBjYWxjdWxhdGlvbnNcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2FsY3VsYXRlUG9wdXBQb3NpdGlvbigpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldERyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNldERyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHJvcGRvd25WaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA9IC0xO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25LZXlEb3duSW5uZXIoa2V5RXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgLy8gSUUgZG9lc24ndCBzdXBwb3J0IGtleUV2ZW50LmNvZGUsIGFuZCBoYXMgZGlmZmVyZW50IHZhbHVlc1xuICAgICAgICAvLyBpbiBrZXlFdmVudC5rZXkgKERvd24gaW5zdGVhZCBvZiBBcnJvd0Rvd24gZm9yIGluc3RhbmNlKSwgaGVuY2UgdGhlIG11bHRpLXN1cHBvcnQuXG4gICAgICAgIGxldCBpZTExQ29tcGF0aWJsZUNvZGUgPSBrZXlFdmVudC5jb2RlIHx8IGtleUV2ZW50LmtleTtcbiAgICAgICAgaWYgKGtleUV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICBpZTExQ29tcGF0aWJsZUNvZGUgPSBgU2hpZnQrJHtpZTExQ29tcGF0aWJsZUNvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGllMTFDb21wYXRpYmxlQ29kZSkge1xuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzTmV4dEVsZW1lbnQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdVcCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgIGNhc2UgJ1NoaWZ0K1RhYic6XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c05leHRFbGVtZW50KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNGaXJzdEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0xhc3RFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdTcGFjZWJhcic6XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDdXJyZW50Rm9jdXNJdGVtKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAga2V5RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAga2V5RXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNOZXh0RWxlbWVudChkb3duOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzRGlzcGxheWVkKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSBkb3duID8gMSA6IC0xO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ICs9IHN0ZXA7XG5cbiAgICAgICAgICAgIGNvbnN0IE1BWF9JTkRFWCA9IHRoaXMuc2VsZWN0ZWRGb2N1c0xpc3QubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gTUFYX0lOREVYO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPiBNQVhfSU5ERVgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuZXh0TGlFbGVtZW50ID0gdGhpcy5zZWxlY3RlZEZvY3VzTGlzdC5nZXQoXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4XG4gICAgICAgICAgICApLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBsaSBjb250YWlucyBhIGxpbmsgYW5kIGZvY3VzIGl0XG4gICAgICAgICAgICBpZiAobmV4dExpRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgICAgICAgICBuZXh0TGlFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9jdXMgbGktZ3JvdXAtdGl0bGVcbiAgICAgICAgICAgIG5leHRMaUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNGaXJzdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA9IC0xO1xuICAgICAgICB0aGlzLmZvY3VzTmV4dEVsZW1lbnQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0xhc3RFbGVtZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPSAtMTtcbiAgICAgICAgdGhpcy5mb2N1c05leHRFbGVtZW50KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdEN1cnJlbnRGb2N1c0l0ZW0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCEhY3VycmVudEZvY3VzZWRFbGVtZW50ICYmIGN1cnJlbnRGb2N1c2VkRWxlbWVudC50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Rm9jdXNlZEVsZW1lbnQuZ2V0QXR0cmlidXRlKCd1c2Utcm91dGVyJykgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghIWN1cnJlbnRGb2N1c2VkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGb2N1c2VkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdfc2VsZidcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGVsZW1lbnRzRGlzcGxheWVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEZvY3VzTGlzdCAmJiAhIXRoaXMuc2VsZWN0ZWRGb2N1c0xpc3QubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9wdXBQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIDIwO1xuICAgICAgICBjb25zdCBzY3JlZW5IZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSAyMDtcblxuICAgICAgICBpZiAodGhpcy5lbnRyeVBvaW50KSB7XG4gICAgICAgICAgICBjb25zdCBwb3B1cEJvdW5kaW5nUmVjdCA9XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRyeVBvaW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB0cmlnZ2VyQnV0dG9uQm91bmRpbmdSZWN0ID1cbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvblRyaWdnZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRXaWR0aCA9XG4gICAgICAgICAgICAgICAgdHJpZ2dlckJ1dHRvbkJvdW5kaW5nUmVjdC54ICsgcG9wdXBCb3VuZGluZ1JlY3Qud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkSGVpZ2h0ID1cbiAgICAgICAgICAgICAgICB0cmlnZ2VyQnV0dG9uQm91bmRpbmdSZWN0LnkgK1xuICAgICAgICAgICAgICAgIHRyaWdnZXJCdXR0b25Cb3VuZGluZ1JlY3QuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICBwb3B1cEJvdW5kaW5nUmVjdC5oZWlnaHQ7XG5cbiAgICAgICAgICAgIGlmIChjYWxjdWxhdGVkV2lkdGggPiBzY3JlZW5XaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbi5sZWZ0ID1cbiAgICAgICAgICAgICAgICAgICAgLXBvcHVwQm91bmRpbmdSZWN0LndpZHRoICsgdHJpZ2dlckJ1dHRvbkJvdW5kaW5nUmVjdC53aWR0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1cFBvc2l0aW9uLmxlZnQgPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY2FsY3VsYXRlZEhlaWdodCA+IHNjcmVlbkhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbi50b3AgPVxuICAgICAgICAgICAgICAgICAgICAtdHJpZ2dlckJ1dHRvbkJvdW5kaW5nUmVjdC5oZWlnaHQgLVxuICAgICAgICAgICAgICAgICAgICBwb3B1cEJvdW5kaW5nUmVjdC5oZWlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbi50b3AgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5hdlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ05hdkNvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidmb2Vobi1kcm9wZG93bi1tZW51LmFyaWEtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuPlxuICAgIDxidXR0b25cbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnVHJpZ2dlckJ1dHRvbicpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBidG5cIlxuICAgICAgICBbbmdDbGFzc109XCJidG5Dc3NDbGFzc1wiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKVwiXG4gICAgICAgIChmb2N1c2luKT1cImhhbmRsZUZvY3VzSW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVGb2N1c091dCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0cnVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0Ryb3Bkb3duVmlzaWJsZVwiXG4gICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ2Ryb3Bkb3duLW1lbnUtbGlzdCdcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsIHx8IG51bGxcIlxuICAgICAgICAjYnV0dG9uVHJpZ2dlclxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtY29udGFpbmVyXCIgKm5nSWY9XCIhIW1vZGVsICYmIGlzRHJvcGRvd25WaXNpYmxlXCI+XG4gICAgICAgIDx1bFxuICAgICAgICAgICAgaWQ9XCJkcm9wZG93bi1tZW51LWxpc3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJwYXJlbnQtbGlzdCBsaXN0LWdyb3VwXCJcbiAgICAgICAgICAgIChmb2N1c2luKT1cImhhbmRsZUZvY3VzSW4oKVwiXG4gICAgICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlRm9jdXNPdXQoKVwiXG4gICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJwb3B1cFBvc2l0aW9uLmxlZnRcIlxuICAgICAgICAgICAgW3N0eWxlLnRvcC5weF09XCJwb3B1cFBvc2l0aW9uLnRvcFwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICNlbnRyeVBvaW50XG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIG1vZGVsOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhZ3JvdXAudGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImkgPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGl0ZW0tZGl2aWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIidzZXBhcmF0b3InXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gbGlzdC1ncm91cC10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI3NlbGVjdGVkRm9jdXNMaXN0XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCIhIWdyb3VwLnRpdGxlXCI+e3sgZ3JvdXAudGl0bGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNoaWxkLWxpc3QgbGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cC5pdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3NlbGVjdGVkRm9jdXNMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtTGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cC50aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gaXRlbS1kaXZpZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ3NlcGFyYXRvcidcIlxuICAgICAgICAgICAgICAgICAgICA+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cC5pdGVtczsgbGV0IGogPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjc2VsZWN0ZWRGb2N1c0xpc3RcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1MaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L25hdj5cblxuPG5nLXRlbXBsYXRlICNpdGVtTGluayBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICA8YVxuICAgICAgICAqbmdJZj1cIiEhaXRlbS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgIFthdHRyLnVzZS1yb3V0ZXJdPVwidHJ1ZVwiXG4gICAgPjwvYT5cbiAgICA8YVxuICAgICAgICAqbmdJZj1cIiFpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgW2F0dHIuaHJlZl09XCJpdGVtLmhyZWZcIlxuICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS50YXJnZXRcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICBbYXR0ci51c2Utcm91dGVyXT1cImZhbHNlXCJcbiAgICA+PC9hPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZHJvcGRvd24tbWVudS9mb2Vobi1kcm9wZG93bi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kcm9wZG93bi1tZW51L2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFjdkMsTUFBTSxPQUFPLDBCQUEwQjtJQWdDbkMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFabEMsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFLOUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBS2xCLDJCQUFzQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBR2hDLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDakIsR0FBRyxFQUFFLENBQUM7WUFDTixJQUFJLEVBQUUsQ0FBQztTQUNWLENBQUM7SUFDTixDQUFDO0lBR0QscUJBQXFCLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsQ0FBQztJQUNMLENBQUM7SUFHRCx1QkFBdUIsQ0FBQyxLQUFvQjtRQUN4QyxJ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MEJBQTBCO2tCQUx0QyxTQUFTOytCQUNJLHFCQUFxQjsyRUFNL0IsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLG1CQUFtQjtnQkFJakMsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTVDLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZO2dCQUl2QixFQUFFO3NCQURELEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxXQUFXO3VCQUFDLFNBQVM7Z0JBa0J0QixxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVNqQyx1QkFBdUI7c0JBRHRCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEcm9wZG93bk1lbnVHcm91cCB9IGZyb20gJy4vZHJvcGRvd24tbWVudS1ncm91cC50eXBlJztcblxuaW50ZXJmYWNlIFBvc2l0aW9uIHtcbiAgICBsZWZ0OiBudW1iZXI7XG4gICAgdG9wOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tZHJvcGRvd24tbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuRHJvcGRvd25NZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkcmVuKCdzZWxlY3RlZEZvY3VzTGlzdCcpXG4gICAgc2VsZWN0ZWRGb2N1c0xpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2J1dHRvblRyaWdnZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGJ1dHRvblRyaWdnZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdlbnRyeVBvaW50JylcbiAgICBlbnRyeVBvaW50OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtb2RlbDogRHJvcGRvd25NZW51R3JvdXBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgYnRuQ3NzQ2xhc3MgPSAnYnRuLXNlY29uZGFyeSc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIGhvc3RJZDogc3RyaW5nO1xuXG4gICAgaXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNsb3NlRHJvcGRvd25UaW1lcjogYW55O1xuICAgIHBvcHVwUG9zaXRpb246IFBvc2l0aW9uO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gLTE7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgIGxlZnQ6IDBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmRVcEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd25WaXNpYmxlICYmIGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXREcm9wZG93bigpO1xuICAgICAgICAgICAgdGhpcy5idXR0b25UcmlnZ2VyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUtleWJvYXJkRG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd25WaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm9uS2V5RG93bklubmVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3RJZCA9IHRoaXMuYnVpbGRJZCgpO1xuICAgIH1cblxuICAgIGhhbmRsZUZvY3VzSW4oKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlRHJvcGRvd25UaW1lcik7XG4gICAgfVxuXG4gICAgaGFuZGxlRm9jdXNPdXQoKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlRHJvcGRvd25UaW1lcik7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93blRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0RHJvcGRvd24oKTtcbiAgICAgICAgfSwgNTApO1xuICAgIH1cblxuICAgIGJ1aWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJhc2VJZCA9IHRoaXMuaWQ7XG4gICAgICAgIGlmICghYmFzZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtiYXNlSWR9JHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICB0b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEcm9wZG93blZpc2libGUgPSAhdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZTtcblxuICAgICAgICBpZiAodGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZvY3VzTGlzdC5jaGFuZ2VzLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJ5UG9pbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIC8vIE5lZWQgc2V0VGltZW91dCB0byBiZSBzdXJlIHdlIGhhdmUgbGF0ZXN0IHBvc2l0aW9uIGZvciBjYWxjdWxhdGlvbnNcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2FsY3VsYXRlUG9wdXBQb3NpdGlvbigpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldERyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNldERyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHJvcGRvd25WaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA9IC0xO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25LZXlEb3duSW5uZXIoa2V5RXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgLy8gSUUgZG9lc24ndCBzdXBwb3J0IGtleUV2ZW50LmNvZGUsIGFuZCBoYXMgZGlmZmVyZW50IHZhbHVlc1xuICAgICAgICAvLyBpbiBrZXlFdmVudC5rZXkgKERvd24gaW5zdGVhZCBvZiBBcnJvd0Rvd24gZm9yIGluc3RhbmNlKSwgaGVuY2UgdGhlIG11bHRpLXN1cHBvcnQuXG4gICAgICAgIGxldCBpZTExQ29tcGF0aWJsZUNvZGUgPSBrZXlFdmVudC5jb2RlIHx8IGtleUV2ZW50LmtleTtcbiAgICAgICAgaWYgKGtleUV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICBpZTExQ29tcGF0aWJsZUNvZGUgPSBgU2hpZnQrJHtpZTExQ29tcGF0aWJsZUNvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGllMTFDb21wYXRpYmxlQ29kZSkge1xuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzTmV4dEVsZW1lbnQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdVcCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgIGNhc2UgJ1NoaWZ0K1RhYic6XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c05leHRFbGVtZW50KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNGaXJzdEVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0xhc3RFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdTcGFjZWJhcic6XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDdXJyZW50Rm9jdXNJdGVtKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAga2V5RXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAga2V5RXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNOZXh0RWxlbWVudChkb3duOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRzRGlzcGxheWVkKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSBkb3duID8gMSA6IC0xO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ICs9IHN0ZXA7XG5cbiAgICAgICAgICAgIGNvbnN0IE1BWF9JTkRFWCA9IHRoaXMuc2VsZWN0ZWRGb2N1c0xpc3QubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4ID0gTUFYX0lOREVYO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPiBNQVhfSU5ERVgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuZXh0TGlFbGVtZW50ID0gdGhpcy5zZWxlY3RlZEZvY3VzTGlzdC5nZXQoXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUdsb2JhbEluZGV4XG4gICAgICAgICAgICApLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBsaSBjb250YWlucyBhIGxpbmsgYW5kIGZvY3VzIGl0XG4gICAgICAgICAgICBpZiAobmV4dExpRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgICAgICAgICBuZXh0TGlFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9jdXMgbGktZ3JvdXAtdGl0bGVcbiAgICAgICAgICAgIG5leHRMaUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNGaXJzdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1HbG9iYWxJbmRleCA9IC0xO1xuICAgICAgICB0aGlzLmZvY3VzTmV4dEVsZW1lbnQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0xhc3RFbGVtZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtR2xvYmFsSW5kZXggPSAtMTtcbiAgICAgICAgdGhpcy5mb2N1c05leHRFbGVtZW50KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdEN1cnJlbnRGb2N1c0l0ZW0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCEhY3VycmVudEZvY3VzZWRFbGVtZW50ICYmIGN1cnJlbnRGb2N1c2VkRWxlbWVudC50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Rm9jdXNlZEVsZW1lbnQuZ2V0QXR0cmlidXRlKCd1c2Utcm91dGVyJykgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghIWN1cnJlbnRGb2N1c2VkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZvY3VzZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGb2N1c2VkRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdfc2VsZidcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGVsZW1lbnRzRGlzcGxheWVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEZvY3VzTGlzdCAmJiAhIXRoaXMuc2VsZWN0ZWRGb2N1c0xpc3QubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9wdXBQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIDIwO1xuICAgICAgICBjb25zdCBzY3JlZW5IZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSAyMDtcblxuICAgICAgICBpZiAodGhpcy5lbnRyeVBvaW50KSB7XG4gICAgICAgICAgICBjb25zdCBwb3B1cEJvdW5kaW5nUmVjdCA9XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRyeVBvaW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB0cmlnZ2VyQnV0dG9uQm91bmRpbmdSZWN0ID1cbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvblRyaWdnZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRXaWR0aCA9XG4gICAgICAgICAgICAgICAgdHJpZ2dlckJ1dHRvbkJvdW5kaW5nUmVjdC54ICsgcG9wdXBCb3VuZGluZ1JlY3Qud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkSGVpZ2h0ID1cbiAgICAgICAgICAgICAgICB0cmlnZ2VyQnV0dG9uQm91bmRpbmdSZWN0LnkgK1xuICAgICAgICAgICAgICAgIHRyaWdnZXJCdXR0b25Cb3VuZGluZ1JlY3QuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICBwb3B1cEJvdW5kaW5nUmVjdC5oZWlnaHQ7XG5cbiAgICAgICAgICAgIGlmIChjYWxjdWxhdGVkV2lkdGggPiBzY3JlZW5XaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbi5sZWZ0ID1cbiAgICAgICAgICAgICAgICAgICAgLXBvcHVwQm91bmRpbmdSZWN0LndpZHRoICsgdHJpZ2dlckJ1dHRvbkJvdW5kaW5nUmVjdC53aWR0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1cFBvc2l0aW9uLmxlZnQgPSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY2FsY3VsYXRlZEhlaWdodCA+IHNjcmVlbkhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbi50b3AgPVxuICAgICAgICAgICAgICAgICAgICAtdHJpZ2dlckJ1dHRvbkJvdW5kaW5nUmVjdC5oZWlnaHQgLVxuICAgICAgICAgICAgICAgICAgICBwb3B1cEJvdW5kaW5nUmVjdC5oZWlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdXBQb3NpdGlvbi50b3AgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5hdlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ05hdkNvbnRhaW5lcicpXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidmb2Vobi1kcm9wZG93bi1tZW51LmFyaWEtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuPlxuICAgIDxidXR0b25cbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnVHJpZ2dlckJ1dHRvbicpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBidG5cIlxuICAgICAgICBbbmdDbGFzc109XCJidG5Dc3NDbGFzc1wiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93blZpc2liaWxpdHkoKVwiXG4gICAgICAgIChmb2N1c2luKT1cImhhbmRsZUZvY3VzSW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVGb2N1c091dCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0cnVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0Ryb3Bkb3duVmlzaWJsZVwiXG4gICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ2Ryb3Bkb3duLW1lbnUtbGlzdCdcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsIHx8IG51bGxcIlxuICAgICAgICAjYnV0dG9uVHJpZ2dlclxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtY29udGFpbmVyXCIgKm5nSWY9XCIhIW1vZGVsICYmIGlzRHJvcGRvd25WaXNpYmxlXCI+XG4gICAgICAgIDx1bFxuICAgICAgICAgICAgaWQ9XCJkcm9wZG93bi1tZW51LWxpc3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJwYXJlbnQtbGlzdCBsaXN0LWdyb3VwXCJcbiAgICAgICAgICAgIChmb2N1c2luKT1cImhhbmRsZUZvY3VzSW4oKVwiXG4gICAgICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlRm9jdXNPdXQoKVwiXG4gICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJwb3B1cFBvc2l0aW9uLmxlZnRcIlxuICAgICAgICAgICAgW3N0eWxlLnRvcC5weF09XCJwb3B1cFBvc2l0aW9uLnRvcFwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICNlbnRyeVBvaW50XG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIG1vZGVsOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhZ3JvdXAudGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImkgPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGl0ZW0tZGl2aWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIidzZXBhcmF0b3InXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gbGlzdC1ncm91cC10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI3NlbGVjdGVkRm9jdXNMaXN0XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgKm5nSWY9XCIhIWdyb3VwLnRpdGxlXCI+e3sgZ3JvdXAudGl0bGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNoaWxkLWxpc3QgbGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cC5pdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3NlbGVjdGVkRm9jdXNMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtTGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cC50aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gaXRlbS1kaXZpZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ3NlcGFyYXRvcidcIlxuICAgICAgICAgICAgICAgICAgICA+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cC5pdGVtczsgbGV0IGogPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjc2VsZWN0ZWRGb2N1c0xpc3RcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1MaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L25hdj5cblxuPG5nLXRlbXBsYXRlICNpdGVtTGluayBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICA8YVxuICAgICAgICAqbmdJZj1cIiEhaXRlbS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgIFtxdWVyeVBhcmFtc109XCJpdGVtLnF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgW2F0dHIudXNlLXJvdXRlcl09XCJ0cnVlXCJcbiAgICA+PC9hPlxuICAgIDxhXG4gICAgICAgICpuZ0lmPVwiIWl0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cIml0ZW0udGl0bGVcIlxuICAgICAgICBbYXR0ci5ocmVmXT1cIml0ZW0uaHJlZlwiXG4gICAgICAgIFthdHRyLnRhcmdldF09XCJpdGVtLnRhcmdldFwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgIFthdHRyLnVzZS1yb3V0ZXJdPVwiZmFsc2VcIlxuICAgID48L2E+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -8,10 +8,12 @@ export class FoehnInputStringComponent extends FoehnInputComponent {
|
|
|
8
8
|
this.replaceTabWithWhiteSpace = (str) => !!str ? str.replace(/\t+/g, ' ') : str;
|
|
9
9
|
}
|
|
10
10
|
onBlur(e) {
|
|
11
|
-
if (this.
|
|
12
|
-
|
|
11
|
+
if (this.model && typeof this.model === 'string') {
|
|
12
|
+
if (this.trimOnBlur) {
|
|
13
|
+
this.model = this.model.trim();
|
|
14
|
+
}
|
|
15
|
+
this.model = this.replaceTabWithWhiteSpace(this.model);
|
|
13
16
|
}
|
|
14
|
-
this.model = this.replaceTabWithWhiteSpace(this.model);
|
|
15
17
|
super.onBlur(e);
|
|
16
18
|
}
|
|
17
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnInputStringComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -22,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
22
24
|
}], propDecorators: { trimOnBlur: [{
|
|
23
25
|
type: Input
|
|
24
26
|
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtc3RyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC1zdHJpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUc5RCxNQUFNLE9BQWdCLHlCQUEwQixTQUFRLG1CQUEyQjtJQURuRjs7UUFHSSxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBYVYsNkJBQXdCLEdBQUcsQ0FBQyxHQUFHLEVBQVUsRUFBRSxDQUMvQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0tBQzlDO0lBYkcsTUFBTSxDQUFDLENBQWE7UUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25DLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQzsrR0FiaUIseUJBQXlCO21HQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRDlDLFNBQVM7OEJBR04sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGb2VobklucHV0U3RyaW5nQ29tcG9uZW50IGV4dGVuZHMgRm9laG5JbnB1dENvbXBvbmVudDxzdHJpbmc+IHtcbiAgICBASW5wdXQoKVxuICAgIHRyaW1PbkJsdXIgPSB0cnVlO1xuXG4gICAgb25CbHVyKGU6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZWwgJiYgdHlwZW9mIHRoaXMubW9kZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmltT25CbHVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHRoaXMubW9kZWwudHJpbSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHRoaXMucmVwbGFjZVRhYldpdGhXaGl0ZVNwYWNlKHRoaXMubW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIub25CbHVyKGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVwbGFjZVRhYldpdGhXaGl0ZVNwYWNlID0gKHN0cik6IHN0cmluZyA9PlxuICAgICAgICAhIXN0ciA/IHN0ci5yZXBsYWNlKC9cXHQrL2csICcgJykgOiBzdHI7XG59XG4iXX0=
|
|
@@ -4313,10 +4313,12 @@ class FoehnInputStringComponent extends FoehnInputComponent {
|
|
|
4313
4313
|
this.replaceTabWithWhiteSpace = (str) => !!str ? str.replace(/\t+/g, ' ') : str;
|
|
4314
4314
|
}
|
|
4315
4315
|
onBlur(e) {
|
|
4316
|
-
if (this.
|
|
4317
|
-
|
|
4316
|
+
if (this.model && typeof this.model === 'string') {
|
|
4317
|
+
if (this.trimOnBlur) {
|
|
4318
|
+
this.model = this.model.trim();
|
|
4319
|
+
}
|
|
4320
|
+
this.model = this.replaceTabWithWhiteSpace(this.model);
|
|
4318
4321
|
}
|
|
4319
|
-
this.model = this.replaceTabWithWhiteSpace(this.model);
|
|
4320
4322
|
super.onBlur(e);
|
|
4321
4323
|
}
|
|
4322
4324
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnInputStringComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -6135,11 +6137,11 @@ class FoehnDropdownMenuComponent {
|
|
|
6135
6137
|
}
|
|
6136
6138
|
}
|
|
6137
6139
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnDropdownMenuComponent, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6138
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnDropdownMenuComponent, selector: "foehn-dropdown-menu", inputs: { id: "id", label: "label", model: "model", btnCssClass: "btnCssClass" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "buttonTrigger", first: true, predicate: ["buttonTrigger"], descendants: true, static: true }, { propertyName: "entryPoint", first: true, predicate: ["entryPoint"], descendants: true }, { propertyName: "selectedFocusList", predicate: ["selectedFocusList"], descendants: true }], ngImport: i0, template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n type=\"button\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ddd!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-dark);outline:none;color:#fff}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none;color:inherit}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
6140
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnDropdownMenuComponent, selector: "foehn-dropdown-menu", inputs: { id: "id", label: "label", model: "model", btnCssClass: "btnCssClass" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" }, properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "buttonTrigger", first: true, predicate: ["buttonTrigger"], descendants: true, static: true }, { propertyName: "entryPoint", first: true, predicate: ["entryPoint"], descendants: true }, { propertyName: "selectedFocusList", predicate: ["selectedFocusList"], descendants: true }], ngImport: i0, template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n type=\"button\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.queryParams\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ddd!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-dark);outline:none;color:#fff}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none;color:inherit}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
6139
6141
|
}
|
|
6140
6142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnDropdownMenuComponent, decorators: [{
|
|
6141
6143
|
type: Component,
|
|
6142
|
-
args: [{ selector: 'foehn-dropdown-menu', template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n type=\"button\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ddd!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-dark);outline:none;color:#fff}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none;color:inherit}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"] }]
|
|
6144
|
+
args: [{ selector: 'foehn-dropdown-menu', template: "<nav\n [attr.id]=\"buildId('NavContainer')\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'foehn-dropdown-menu.aria-label' | fromDictionary\"\n>\n <button\n [attr.id]=\"buildId('TriggerButton')\"\n type=\"button\"\n class=\"d-flex align-items-center btn\"\n [ngClass]=\"btnCssClass\"\n (click)=\"toggleDropdownVisibility()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [attr.aria-haspopup]=\"true\"\n [attr.aria-expanded]=\"isDropdownVisible\"\n [attr.aria-controls]=\"'dropdown-menu-list'\"\n [attr.aria-label]=\"label || null\"\n #buttonTrigger\n >\n <ng-content></ng-content>\n </button>\n\n <div class=\"dropdown-menu-container\" *ngIf=\"!!model && isDropdownVisible\">\n <ul\n id=\"dropdown-menu-list\"\n class=\"parent-list list-group\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut()\"\n [style.left.px]=\"popupPosition.left\"\n [style.top.px]=\"popupPosition.top\"\n tabindex=\"-1\"\n #entryPoint\n >\n <ng-container *ngFor=\"let group of model; let i = index\">\n <ng-container *ngIf=\"!!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n class=\"list-group-item list-group-title\"\n tabindex=\"0\"\n #selectedFocusList\n >\n <strong *ngIf=\"!!group.title\">{{ group.title }}</strong>\n <ul class=\"child-list list-group\">\n <li\n *ngFor=\"let item of group.items\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ul>\n </li>\n </ng-container>\n <ng-container *ngIf=\"!group.title\">\n <li\n *ngIf=\"i > 0\"\n class=\"list-group-item item-divider\"\n [attr.role]=\"'separator'\"\n ></li>\n <li\n *ngFor=\"let item of group.items; let j = index\"\n class=\"list-group-item\"\n #selectedFocusList\n >\n <ng-container\n [ngTemplateOutlet]=\"itemLink\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </div>\n</nav>\n\n<ng-template #itemLink let-item=\"item\">\n <a\n *ngIf=\"!!item.routerLink\"\n [attr.title]=\"item.title\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.queryParams\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"true\"\n ></a>\n <a\n *ngIf=\"!item.routerLink\"\n [attr.title]=\"item.title\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target\"\n [innerHTML]=\"item.label\"\n [attr.use-router]=\"false\"\n ></a>\n</ng-template>\n", styles: [":host ::ng-deep .btn .svg-inline--fa{color:#000!important}nav button:after{display:inline-block;width:0;height:0;margin-left:.3em;content:\"\";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}nav button.btn.btn-link:after{color:#000}.dropdown-menu-container{position:relative;width:100%}.dropdown-menu-container .parent-list{position:absolute;top:0;left:0;z-index:9999;box-shadow:0 4px 8px #0003,0 6px 20px #00000030;background-color:#fff;width:max-content;max-width:350px}.dropdown-menu-container .list-group-item{border:0;padding:0}.dropdown-menu-container li.item-divider{border-top:1px solid #ddd!important}.dropdown-menu-container li a{width:100%;color:inherit;display:block;padding:.75rem;word-break:break-word}.dropdown-menu-container li.list-group-title strong{padding-left:.75rem}.dropdown-menu-container ul.child-list a{padding-left:1.5rem}.dropdown-menu-container li a:focus{box-shadow:none}.dropdown-menu-container li.list-group-item:hover,.dropdown-menu-container li.list-group-item a:focus{background-color:var(--vd-primary-dark);outline:none;color:#fff}.dropdown-menu-container .list-group-title{padding-top:.5rem}.dropdown-menu-container li.list-group-title:hover{background:none;color:inherit}.dropdown-menu-container li.list-group-title:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem var(--vd-focus)}\n"] }]
|
|
6143
6145
|
}], ctorParameters: () => [{ type: i1$1.Router }], propDecorators: { selectedFocusList: [{
|
|
6144
6146
|
type: ViewChildren,
|
|
6145
6147
|
args: ['selectedFocusList']
|