@volo/ngx-lepton-x.core 2.0.0-rc.2 → 2.0.0-rc.3

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.
@@ -12,9 +12,9 @@ export class FooterComponent {
12
12
  }
13
13
  }
14
14
  FooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FooterComponent, deps: [{ token: i1.FooterLinksService }], target: i0.ɵɵFactoryTarget.Component });
15
- FooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: FooterComponent, selector: "lpx-footer", ngImport: i0, template: "<ng-container *ngIf=\"footerValues$ | async as footerValues\">\r\n <div class=\"lpx-footbar-container\">\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n <span>{{ currentYear }} \u00A9</span>\r\n <a\r\n *ngIf=\"footerValues.descUrl; else footerDesc\"\r\n [routerLink]=\"[footerValues.descUrl]\"\r\n >\r\n {{ footerValues.desc }}</a\r\n >\r\n <ng-template #footerDesc>\r\n <a> {{ footerValues.desc }}</a>\r\n </ng-template>\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n <ng-container *ngFor=\"let footerLink of footerValues.footerLinks\">\r\n <a *ngIf=\"footerLink\" [routerLink]=\"[footerLink.link]\">{{\r\n footerLink.text\r\n }}</a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", dependencies: [{ 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: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
15
+ FooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: FooterComponent, selector: "lpx-footer", ngImport: i0, template: "<ng-container *ngIf=\"footerValues$ | async as footerValues\">\r\n\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n <span>{{ currentYear }} \u00A9</span>\r\n <a\r\n *ngIf=\"footerValues.descUrl; else footerDesc\"\r\n [routerLink]=\"[footerValues.descUrl]\"\r\n >\r\n {{ footerValues.desc }}</a\r\n >\r\n <ng-template #footerDesc>\r\n <a> {{ footerValues.desc }}</a>\r\n </ng-template>\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n <ng-container *ngFor=\"let footerLink of footerValues.footerLinks\">\r\n <a *ngIf=\"footerLink\" [routerLink]=\"[footerLink.link]\">{{\r\n footerLink.text\r\n }}</a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n", dependencies: [{ 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: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FooterComponent, decorators: [{
17
17
  type: Component,
18
- args: [{ selector: 'lpx-footer', template: "<ng-container *ngIf=\"footerValues$ | async as footerValues\">\r\n <div class=\"lpx-footbar-container\">\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n <span>{{ currentYear }} \u00A9</span>\r\n <a\r\n *ngIf=\"footerValues.descUrl; else footerDesc\"\r\n [routerLink]=\"[footerValues.descUrl]\"\r\n >\r\n {{ footerValues.desc }}</a\r\n >\r\n <ng-template #footerDesc>\r\n <a> {{ footerValues.desc }}</a>\r\n </ng-template>\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n <ng-container *ngFor=\"let footerLink of footerValues.footerLinks\">\r\n <a *ngIf=\"footerLink\" [routerLink]=\"[footerLink.link]\">{{\r\n footerLink.text\r\n }}</a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n" }]
18
+ args: [{ selector: 'lpx-footer', template: "<ng-container *ngIf=\"footerValues$ | async as footerValues\">\r\n\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n <span>{{ currentYear }} \u00A9</span>\r\n <a\r\n *ngIf=\"footerValues.descUrl; else footerDesc\"\r\n [routerLink]=\"[footerValues.descUrl]\"\r\n >\r\n {{ footerValues.desc }}</a\r\n >\r\n <ng-template #footerDesc>\r\n <a> {{ footerValues.desc }}</a>\r\n </ng-template>\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n <ng-container *ngFor=\"let footerLink of footerValues.footerLinks\">\r\n <a *ngIf=\"footerLink\" [routerLink]=\"[footerLink.link]\">{{\r\n footerLink.text\r\n }}</a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n" }]
19
19
  }], ctorParameters: function () { return [{ type: i1.FooterLinksService }]; } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGVwdG9uLXgtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFBb0IsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFIL0Msa0JBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN6QyxnQkFBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFVyxDQUFDOzs0R0FKeEMsZUFBZTtnR0FBZixlQUFlLGtEQ1A1QixzNEJBeUJBOzJGRGxCYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9vdGVyTGlua3NTZXJ2aWNlIH0gZnJvbSAnLi9mb290ZXItbGlua3Muc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xweC1mb290ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IHtcclxuICBmb290ZXJWYWx1ZXMkID0gdGhpcy5zZXJ2aWNlLmZvb3RlckluZm8kO1xyXG4gIGN1cnJlbnRZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IEZvb3RlckxpbmtzU2VydmljZSkge31cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyVmFsdWVzJCB8IGFzeW5jIGFzIGZvb3RlclZhbHVlc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJscHgtZm9vdGJhci1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJscHgtZm9vdGJhclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibHB4LWZvb3RiYXItY29weXJpZ2h0XCI+XHJcbiAgICAgICAgPHNwYW4+e3sgY3VycmVudFllYXIgfX0gwqk8L3NwYW4+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgICpuZ0lmPVwiZm9vdGVyVmFsdWVzLmRlc2NVcmw7IGVsc2UgZm9vdGVyRGVzY1wiXHJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbZm9vdGVyVmFsdWVzLmRlc2NVcmxdXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBmb290ZXJWYWx1ZXMuZGVzYyB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlckRlc2M+XHJcbiAgICAgICAgICA8YT4ge3sgZm9vdGVyVmFsdWVzLmRlc2MgfX08L2E+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJscHgtZm9vdGJhci1zb2xvLWxpbmtzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZm9vdGVyTGluayBvZiBmb290ZXJWYWx1ZXMuZm9vdGVyTGlua3NcIj5cclxuICAgICAgICAgIDxhICpuZ0lmPVwiZm9vdGVyTGlua1wiIFtyb3V0ZXJMaW5rXT1cIltmb290ZXJMaW5rLmxpbmtdXCI+e3tcclxuICAgICAgICAgICAgZm9vdGVyTGluay50ZXh0XHJcbiAgICAgICAgICB9fTwvYT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGVwdG9uLXgtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFBb0IsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFIL0Msa0JBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN6QyxnQkFBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFVyxDQUFDOzs0R0FKeEMsZUFBZTtnR0FBZixlQUFlLGtEQ1A1Qix1MUJBeUJBOzJGRGxCYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9vdGVyTGlua3NTZXJ2aWNlIH0gZnJvbSAnLi9mb290ZXItbGlua3Muc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xweC1mb290ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IHtcclxuICBmb290ZXJWYWx1ZXMkID0gdGhpcy5zZXJ2aWNlLmZvb3RlckluZm8kO1xyXG4gIGN1cnJlbnRZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IEZvb3RlckxpbmtzU2VydmljZSkge31cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyVmFsdWVzJCB8IGFzeW5jIGFzIGZvb3RlclZhbHVlc1wiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJscHgtZm9vdGJhclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibHB4LWZvb3RiYXItY29weXJpZ2h0XCI+XHJcbiAgICAgICAgPHNwYW4+e3sgY3VycmVudFllYXIgfX0gwqk8L3NwYW4+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgICpuZ0lmPVwiZm9vdGVyVmFsdWVzLmRlc2NVcmw7IGVsc2UgZm9vdGVyRGVzY1wiXHJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbZm9vdGVyVmFsdWVzLmRlc2NVcmxdXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBmb290ZXJWYWx1ZXMuZGVzYyB9fTwvYVxyXG4gICAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlckRlc2M+XHJcbiAgICAgICAgICA8YT4ge3sgZm9vdGVyVmFsdWVzLmRlc2MgfX08L2E+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJscHgtZm9vdGJhci1zb2xvLWxpbmtzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZm9vdGVyTGluayBvZiBmb290ZXJWYWx1ZXMuZm9vdGVyTGlua3NcIj5cclxuICAgICAgICAgIDxhICpuZ0lmPVwiZm9vdGVyTGlua1wiIFtyb3V0ZXJMaW5rXT1cIltmb290ZXJMaW5rLmxpbmtdXCI+e3tcclxuICAgICAgICAgICAgZm9vdGVyTGluay50ZXh0XHJcbiAgICAgICAgICB9fTwvYT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -2,7 +2,7 @@ import { Inject, Injectable } from '@angular/core';
2
2
  import { DataStore } from '../../utils/data-store';
3
3
  import { LPX_MENU_ITEMS } from './navbar.token';
4
4
  import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
5
- import { filter, take } from 'rxjs/operators';
5
+ import { filter, take, tap } from 'rxjs/operators';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/router";
8
8
  export class NavbarService {
@@ -12,7 +12,7 @@ export class NavbarService {
12
12
  this.router = router;
13
13
  this.store = new DataStore(this.addContainerLinks(this.menuItems));
14
14
  this.navbarItems$ = this.store.sliceState((state) => state);
15
- this.expandItemByLink();
15
+ this.expandItemByLink$().pipe(take(1)).subscribe();
16
16
  }
17
17
  addNavbarItems(...menuItems) {
18
18
  this.store.set([...this.store.state, ...this.addContainerLinks(menuItems)]);
@@ -50,33 +50,33 @@ export class NavbarService {
50
50
  findByLink(link, items) {
51
51
  return this.findByProp('link', link, items);
52
52
  }
53
- expandItemByLink() {
54
- this.router.events
55
- .pipe(filter((e) => e instanceof NavigationEnd), take(1))
56
- .subscribe(() => {
57
- const route = this.findByLink(this.router.url);
58
- const expand = (items, indexes) => {
59
- const matchIndex = indexes.shift();
60
- return items.reduce((acc, item, index) => {
61
- if (index === matchIndex) {
62
- return [
63
- ...acc,
64
- {
65
- ...item,
66
- expanded: true,
67
- selected: true,
68
- children: expand(item.children || [], indexes),
69
- },
70
- ];
71
- }
72
- return [...acc, item];
73
- }, []);
74
- };
75
- if (route?.item) {
76
- const expanded = expand(this.store.state, route.location);
77
- this.store.patch(expanded);
78
- }
79
- });
53
+ expandItemByLink$() {
54
+ return this.router.events
55
+ .pipe(filter((e) => e instanceof NavigationEnd), tap(() => this.calculateExpandState()));
56
+ }
57
+ calculateExpandState() {
58
+ const route = this.findByLink(this.router.url);
59
+ const expand = (items, indexes) => {
60
+ const matchIndex = indexes.shift();
61
+ return items.reduce((acc, item, index) => {
62
+ if (index === matchIndex) {
63
+ return [
64
+ ...acc,
65
+ {
66
+ ...item,
67
+ expanded: true,
68
+ selected: true,
69
+ children: expand(item.children || [], indexes),
70
+ },
71
+ ];
72
+ }
73
+ return [...acc, { ...item, expanded: false, selected: false }];
74
+ }, []);
75
+ };
76
+ if (route?.item) {
77
+ const expanded = expand(this.store.state, route.location);
78
+ this.store.patch(expanded);
79
+ }
80
80
  }
81
81
  findById(id, items) {
82
82
  return this.findByProp('id', id, items);
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
124
124
  type: Inject,
125
125
  args: [LPX_MENU_ITEMS]
126
126
  }] }, { type: i1.ActivatedRoute }, { type: i1.Router }]; } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUs5QyxNQUFNLE9BQU8sYUFBYTtJQU94QixZQUNrQyxTQUEwQixFQUNsRCxLQUFxQixFQUNyQixNQUFjO1FBRlUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDbEQsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVRoQixVQUFLLEdBQUcsSUFBSSxTQUFTLENBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQ3ZDLENBQUM7UUFFRixpQkFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU9yRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQUcsU0FBMEI7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQUcsU0FBMEI7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxXQUFXLENBQUMsRUFBVSxFQUFFLEdBQUcsU0FBMEI7UUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sR0FBRyxDQUNiLEtBQXNCLEVBQ3RCLFFBQXVCLEVBQ3ZCLElBQUksR0FBRyxFQUFFLEVBQ1EsRUFBRTtZQUNuQixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDdkMsT0FBTztvQkFDTCxHQUFHLEdBQUc7b0JBQ04sR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDO3dCQUNiLENBQUMsQ0FBQzs0QkFDRTtnQ0FDRSxHQUFHLElBQUk7Z0NBQ1AsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU07b0NBQ3hCLENBQUMsQ0FBQzt3Q0FDRSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7d0NBQ3hCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixTQUFTLEVBQ1QsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUNoQztxQ0FDRjtvQ0FDSCxDQUFDLENBQUMsTUFBTSxDQUNKLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxFQUNuQixRQUFRLEVBQ1IsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUNoQzs2QkFDTjt5QkFDRjt3QkFDSCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDWixDQUFDO1lBQ0osQ0FBQyxFQUFFLEVBQXFCLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWSxFQUFFLEtBQXVCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksYUFBYSxDQUFDLEVBQ3pDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0MsTUFBTSxNQUFNLEdBQUcsQ0FDYixLQUFzQixFQUN0QixPQUFzQixFQUNMLEVBQUU7Z0JBQ25CLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDdkMsSUFBSSxLQUFLLEtBQUssVUFBVSxFQUFFO3dCQUN4QixPQUFPOzRCQUNMLEdBQUcsR0FBRzs0QkFDTjtnQ0FDRSxHQUFHLElBQUk7Z0NBQ1AsUUFBUSxFQUFFLElBQUk7Z0NBQ2QsUUFBUSxFQUFFLElBQUk7Z0NBQ2QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUM7NkJBQy9DO3lCQUNGLENBQUM7cUJBQ0g7b0JBQ0QsT0FBTyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN4QixDQUFDLEVBQUUsRUFBcUIsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQztZQUNGLElBQUksS0FBSyxFQUFFLElBQUksRUFBRTtnQkFDZixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFFBQVEsQ0FBQyxFQUFVLEVBQUUsS0FBdUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLFVBQVUsQ0FDaEIsSUFBeUIsRUFDekIsS0FBYSxFQUNiLEtBQXVCLEVBQ3ZCLFdBQTBCLEVBQUU7UUFFNUIsTUFBTSxXQUFXLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUNsRSxJQUFJLElBQUksQ0FBQztRQUNULElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtvQkFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTt3QkFDckQsR0FBRyxRQUFRO3dCQUNYLEtBQUs7cUJBQ04sQ0FBQyxDQUFDO29CQUNILElBQUksS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDZixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQzt3QkFDbEIsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7cUJBQzNCO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzFCO1FBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8saUJBQWlCLENBQ3ZCLEtBQXNCLEVBQ3RCLElBQUksR0FBRyxFQUFFO1FBRVQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLEdBQUcsSUFBSTtZQUNQLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5RCxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUM5QixJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDbkIsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRSxDQUN2RDtTQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7MEdBbkpVLGFBQWEsa0JBUWQsY0FBYzs4R0FSYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTdG9yZSB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGEtc3RvcmUnO1xyXG5pbXBvcnQgeyBMcHhOYXZiYXJJdGVtIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBMUFhfTUVOVV9JVEVNUyB9IGZyb20gJy4vbmF2YmFyLnRva2VuJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYXZiYXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIHN0b3JlID0gbmV3IERhdGFTdG9yZTxMcHhOYXZiYXJJdGVtW10+KFxyXG4gICAgdGhpcy5hZGRDb250YWluZXJMaW5rcyh0aGlzLm1lbnVJdGVtcylcclxuICApO1xyXG5cclxuICBuYXZiYXJJdGVtcyQgPSB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoKHN0YXRlKSA9PiBzdGF0ZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChMUFhfTUVOVV9JVEVNUykgcHJpdmF0ZSBtZW51SXRlbXM6IExweE5hdmJhckl0ZW1bXSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge1xyXG4gICAgdGhpcy5leHBhbmRJdGVtQnlMaW5rKCk7XHJcbiAgfVxyXG5cclxuICBhZGROYXZiYXJJdGVtcyguLi5tZW51SXRlbXM6IExweE5hdmJhckl0ZW1bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5zZXQoWy4uLnRoaXMuc3RvcmUuc3RhdGUsIC4uLnRoaXMuYWRkQ29udGFpbmVyTGlua3MobWVudUl0ZW1zKV0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TmF2YmFySXRlbXMoLi4ubWVudUl0ZW1zOiBMcHhOYXZiYXJJdGVtW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuc2V0KFsuLi50aGlzLmFkZENvbnRhaW5lckxpbmtzKG1lbnVJdGVtcyldKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IG11aGFtbWVkOiByZWZhY3RvciB0aGlzIG1ldGhvZCB0byBiZSByZWFkYWJsZVxyXG4gIGFkZENoaWxkcmVuKGlkOiBzdHJpbmcsIC4uLm1lbnVJdGVtczogTHB4TmF2YmFySXRlbVtdKTogdm9pZCB7XHJcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmZpbmRCeUlkKGlkLCB0aGlzLnN0b3JlLnN0YXRlKTtcclxuICAgIGNvbnN0IHVwZGF0ZSA9IChcclxuICAgICAgaXRlbXM6IExweE5hdmJhckl0ZW1bXSxcclxuICAgICAgbG9jYXRpb246IEFycmF5PG51bWJlcj4sXHJcbiAgICAgIGxpbmsgPSAnJ1xyXG4gICAgKTogTHB4TmF2YmFySXRlbVtdID0+IHtcclxuICAgICAgY29uc3QgaSA9IGxvY2F0aW9uLnNoaWZ0KCk7XHJcbiAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgLi4uYWNjLFxyXG4gICAgICAgICAgLi4uKGluZGV4ID09PSBpXHJcbiAgICAgICAgICAgID8gW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogIWxvY2F0aW9uLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgID8gW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4oaXRlbS5jaGlsZHJlbiB8fCBbXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuYWRkQ29udGFpbmVyTGlua3MoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGAke2xpbmt9LyR7aXRlbS5jb250YWluZXJMaW5rfWBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICA6IHVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiB8fCBbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2xpbmt9LyR7aXRlbS5jb250YWluZXJMaW5rfWBcclxuICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgOiBbaXRlbV0pLFxyXG4gICAgICAgIF07XHJcbiAgICAgIH0sIFtdIGFzIExweE5hdmJhckl0ZW1bXSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXBkYXRlZCA9IHVwZGF0ZSh0aGlzLnN0b3JlLnN0YXRlLCBwYXJlbnQubG9jYXRpb24pO1xyXG4gICAgdGhpcy5zdG9yZS5wYXRjaCh1cGRhdGVkKTtcclxuICB9XHJcblxyXG4gIGZpbmRCeUxpbmsobGluazogc3RyaW5nLCBpdGVtcz86IExweE5hdmJhckl0ZW1bXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmluZEJ5UHJvcCgnbGluaycsIGxpbmssIGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIGV4cGFuZEl0ZW1CeUxpbmsoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgdGFrZSgxKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJvdXRlID0gdGhpcy5maW5kQnlMaW5rKHRoaXMucm91dGVyLnVybCk7XHJcbiAgICAgICAgY29uc3QgZXhwYW5kID0gKFxyXG4gICAgICAgICAgaXRlbXM6IExweE5hdmJhckl0ZW1bXSxcclxuICAgICAgICAgIGluZGV4ZXM6IEFycmF5PG51bWJlcj5cclxuICAgICAgICApOiBMcHhOYXZiYXJJdGVtW10gPT4ge1xyXG4gICAgICAgICAgY29uc3QgbWF0Y2hJbmRleCA9IGluZGV4ZXMuc2hpZnQoKTtcclxuICAgICAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSBtYXRjaEluZGV4KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgIC4uLmFjYyxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogZXhwYW5kKGl0ZW0uY2hpbGRyZW4gfHwgW10sIGluZGV4ZXMpLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBbLi4uYWNjLCBpdGVtXTtcclxuICAgICAgICAgIH0sIFtdIGFzIExweE5hdmJhckl0ZW1bXSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAocm91dGU/Lml0ZW0pIHtcclxuICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kKHRoaXMuc3RvcmUuc3RhdGUsIHJvdXRlLmxvY2F0aW9uKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmUucGF0Y2goZXhwYW5kZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRCeUlkKGlkOiBzdHJpbmcsIGl0ZW1zPzogTHB4TmF2YmFySXRlbVtdKSB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kQnlQcm9wKCdpZCcsIGlkLCBpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRCeVByb3AoXHJcbiAgICBwcm9wOiBrZXlvZiBMcHhOYXZiYXJJdGVtLFxyXG4gICAgdmFsdWU6IHN0cmluZyxcclxuICAgIGl0ZW1zPzogTHB4TmF2YmFySXRlbVtdLFxyXG4gICAgbG9jYXRpb246IEFycmF5PG51bWJlcj4gPSBbXVxyXG4gICkge1xyXG4gICAgY29uc3QgbmF2YmFySXRlbXMgPSBpdGVtcyB8fCB0aGlzLnN0b3JlLnN0YXRlO1xyXG4gICAgY29uc3QgaXRlbUluZGV4ID0gbmF2YmFySXRlbXMuZmluZEluZGV4KChpKSA9PiBpW3Byb3BdID09PSB2YWx1ZSk7XHJcbiAgICBsZXQgaXRlbTtcclxuICAgIGlmIChpdGVtSW5kZXggPT09IC0xKSB7XHJcbiAgICAgIG5hdmJhckl0ZW1zLmZvckVhY2goKGksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGkuY2hpbGRyZW4pIHtcclxuICAgICAgICAgIGNvbnN0IGNoaWxkID0gdGhpcy5maW5kQnlQcm9wKHByb3AsIHZhbHVlLCBpLmNoaWxkcmVuLCBbXHJcbiAgICAgICAgICAgIC4uLmxvY2F0aW9uLFxyXG4gICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgaWYgKGNoaWxkPy5pdGVtKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBjaGlsZC5pdGVtO1xyXG4gICAgICAgICAgICBsb2NhdGlvbiA9IGNoaWxkLmxvY2F0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtID0gbmF2YmFySXRlbXNbaXRlbUluZGV4XTtcclxuICAgICAgbG9jYXRpb24ucHVzaChpdGVtSW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IGl0ZW0sIGxvY2F0aW9uIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZENvbnRhaW5lckxpbmtzKFxyXG4gICAgaXRlbXM6IExweE5hdmJhckl0ZW1bXSxcclxuICAgIGxpbmsgPSAnJ1xyXG4gICk6IExweE5hdmJhckl0ZW1bXSB7XHJcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAuLi5pdGVtLFxyXG4gICAgICAuLi4oaXRlbS5saW5rICYmIGxpbmsgPyB7IGxpbms6IGAke2xpbmt9LyR7aXRlbS5saW5rfWAgfSA6IHt9KSxcclxuICAgICAgY2hpbGRyZW46IHRoaXMuYWRkQ29udGFpbmVyTGlua3MoXHJcbiAgICAgICAgaXRlbS5jaGlsZHJlbiB8fCBbXSxcclxuICAgICAgICBgJHtsaW5rID8gbGluayArICcvJyA6ICcnfSR7aXRlbS5jb250YWluZXJMaW5rIHx8ICcnfWBcclxuICAgICAgKSxcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL25hdmJhci9uYXZiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLbkQsTUFBTSxPQUFPLGFBQWE7SUFPeEIsWUFDa0MsU0FBMEIsRUFDbEQsS0FBcUIsRUFDckIsTUFBYztRQUZVLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQ2xELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFUaEIsVUFBSyxHQUFHLElBQUksU0FBUyxDQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUN2QyxDQUFDO1FBRUYsaUJBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFPckQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxjQUFjLENBQUMsR0FBRyxTQUEwQjtRQUMxQyxJQUFJLENBQUMsS0FBSyxD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QUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxFQUFFLENBQ3ZEO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzswR0FwSlUsYUFBYSxrQkFRZCxjQUFjOzhHQVJiLGFBQWEsY0FGWixNQUFNOzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVN0b3JlIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGF0YS1zdG9yZSc7XHJcbmltcG9ydCB7IExweE5hdmJhckl0ZW0gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IExQWF9NRU5VX0lURU1TIH0gZnJvbSAnLi9uYXZiYXIudG9rZW4nO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2YmFyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdG9yZSA9IG5ldyBEYXRhU3RvcmU8THB4TmF2YmFySXRlbVtdPihcclxuICAgIHRoaXMuYWRkQ29udGFpbmVyTGlua3ModGhpcy5tZW51SXRlbXMpXHJcbiAgKTtcclxuXHJcbiAgbmF2YmFySXRlbXMkID0gdGhpcy5zdG9yZS5zbGljZVN0YXRlKChzdGF0ZSkgPT4gc3RhdGUpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTFBYX01FTlVfSVRFTVMpIHByaXZhdGUgbWVudUl0ZW1zOiBMcHhOYXZiYXJJdGVtW10sXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHRoaXMuZXhwYW5kSXRlbUJ5TGluayQoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmF2YmFySXRlbXMoLi4ubWVudUl0ZW1zOiBMcHhOYXZiYXJJdGVtW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuc2V0KFsuLi50aGlzLnN0b3JlLnN0YXRlLCAuLi50aGlzLmFkZENvbnRhaW5lckxpbmtzKG1lbnVJdGVtcyldKTtcclxuICB9XHJcblxyXG4gIHNldE5hdmJhckl0ZW1zKC4uLm1lbnVJdGVtczogTHB4TmF2YmFySXRlbVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLnNldChbLi4udGhpcy5hZGRDb250YWluZXJMaW5rcyhtZW51SXRlbXMpXSk7XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBtdWhhbW1lZDogcmVmYWN0b3IgdGhpcyBtZXRob2QgdG8gYmUgcmVhZGFibGVcclxuICBhZGRDaGlsZHJlbihpZDogc3RyaW5nLCAuLi5tZW51SXRlbXM6IExweE5hdmJhckl0ZW1bXSk6IHZvaWQge1xyXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5maW5kQnlJZChpZCwgdGhpcy5zdG9yZS5zdGF0ZSk7XHJcbiAgICBjb25zdCB1cGRhdGUgPSAoXHJcbiAgICAgIGl0ZW1zOiBMcHhOYXZiYXJJdGVtW10sXHJcbiAgICAgIGxvY2F0aW9uOiBBcnJheTxudW1iZXI+LFxyXG4gICAgICBsaW5rID0gJydcclxuICAgICk6IExweE5hdmJhckl0ZW1bXSA9PiB7XHJcbiAgICAgIGNvbnN0IGkgPSBsb2NhdGlvbi5zaGlmdCgpO1xyXG4gICAgICByZXR1cm4gaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIC4uLmFjYyxcclxuICAgICAgICAgIC4uLihpbmRleCA9PT0gaVxyXG4gICAgICAgICAgICA/IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46ICFsb2NhdGlvbi5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICA/IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGl0ZW0uY2hpbGRyZW4gfHwgW10pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmFkZENvbnRhaW5lckxpbmtzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtsaW5rfS8ke2l0ZW0uY29udGFpbmVyTGlua31gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgOiB1cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gfHwgW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtsaW5rfS8ke2l0ZW0uY29udGFpbmVyTGlua31gXHJcbiAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIDogW2l0ZW1dKSxcclxuICAgICAgICBdO1xyXG4gICAgICB9LCBbXSBhcyBMcHhOYXZiYXJJdGVtW10pO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IHVwZGF0ZWQgPSB1cGRhdGUodGhpcy5zdG9yZS5zdGF0ZSwgcGFyZW50LmxvY2F0aW9uKTtcclxuICAgIHRoaXMuc3RvcmUucGF0Y2godXBkYXRlZCk7XHJcbiAgfVxyXG5cclxuICBmaW5kQnlMaW5rKGxpbms6IHN0cmluZywgaXRlbXM/OiBMcHhOYXZiYXJJdGVtW10pIHtcclxuICAgIHJldHVybiB0aGlzLmZpbmRCeVByb3AoJ2xpbmsnLCBsaW5rLCBpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBleHBhbmRJdGVtQnlMaW5rJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgdGFwKCgpPT4gdGhpcy5jYWxjdWxhdGVFeHBhbmRTdGF0ZSgpKVxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVFeHBhbmRTdGF0ZSgpIHtcclxuICAgIGNvbnN0IHJvdXRlID0gdGhpcy5maW5kQnlMaW5rKHRoaXMucm91dGVyLnVybCk7XHJcbiAgICBjb25zdCBleHBhbmQgPSAoXHJcbiAgICAgIGl0ZW1zOiBMcHhOYXZiYXJJdGVtW10sXHJcbiAgICAgIGluZGV4ZXM6IEFycmF5PG51bWJlcj5cclxuICAgICk6IExweE5hdmJhckl0ZW1bXSA9PiB7XHJcbiAgICAgIGNvbnN0IG1hdGNoSW5kZXggPSBpbmRleGVzLnNoaWZ0KCk7XHJcbiAgICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaW5kZXggPT09IG1hdGNoSW5kZXgpIHtcclxuICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIC4uLmFjYyxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgY2hpbGRyZW46IGV4cGFuZChpdGVtLmNoaWxkcmVuIHx8IFtdLCBpbmRleGVzKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbLi4uYWNjLCB7Li4uaXRlbSwgZXhwYW5kZWQ6IGZhbHNlLCBzZWxlY3RlZDogZmFsc2V9XTtcclxuICAgICAgfSwgW10gYXMgTHB4TmF2YmFySXRlbVtdKTtcclxuICAgIH07XHJcbiAgICBpZiAocm91dGU/Lml0ZW0pIHtcclxuICAgICAgY29uc3QgZXhwYW5kZWQgPSBleHBhbmQodGhpcy5zdG9yZS5zdGF0ZSwgcm91dGUubG9jYXRpb24pO1xyXG4gICAgICB0aGlzLnN0b3JlLnBhdGNoKGV4cGFuZGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZEJ5SWQoaWQ6IHN0cmluZywgaXRlbXM/OiBMcHhOYXZiYXJJdGVtW10pIHtcclxuICAgIHJldHVybiB0aGlzLmZpbmRCeVByb3AoJ2lkJywgaWQsIGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZEJ5UHJvcChcclxuICAgIHByb3A6IGtleW9mIExweE5hdmJhckl0ZW0sXHJcbiAgICB2YWx1ZTogc3RyaW5nLFxyXG4gICAgaXRlbXM/OiBMcHhOYXZiYXJJdGVtW10sXHJcbiAgICBsb2NhdGlvbjogQXJyYXk8bnVtYmVyPiA9IFtdXHJcbiAgKSB7XHJcbiAgICBjb25zdCBuYXZiYXJJdGVtcyA9IGl0ZW1zIHx8IHRoaXMuc3RvcmUuc3RhdGU7XHJcbiAgICBjb25zdCBpdGVtSW5kZXggPSBuYXZiYXJJdGVtcy5maW5kSW5kZXgoKGkpID0+IGlbcHJvcF0gPT09IHZhbHVlKTtcclxuICAgIGxldCBpdGVtO1xyXG4gICAgaWYgKGl0ZW1JbmRleCA9PT0gLTEpIHtcclxuICAgICAgbmF2YmFySXRlbXMuZm9yRWFjaCgoaSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgY29uc3QgY2hpbGQgPSB0aGlzLmZpbmRCeVByb3AocHJvcCwgdmFsdWUsIGkuY2hpbGRyZW4sIFtcclxuICAgICAgICAgICAgLi4ubG9jYXRpb24sXHJcbiAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgXSk7XHJcbiAgICAgICAgICBpZiAoY2hpbGQ/Lml0ZW0pIHtcclxuICAgICAgICAgICAgaXRlbSA9IGNoaWxkLml0ZW07XHJcbiAgICAgICAgICAgIGxvY2F0aW9uID0gY2hpbGQubG9jYXRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0gPSBuYXZiYXJJdGVtc1tpdGVtSW5kZXhdO1xyXG4gICAgICBsb2NhdGlvbi5wdXNoKGl0ZW1JbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgaXRlbSwgbG9jYXRpb24gfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ29udGFpbmVyTGlua3MoXHJcbiAgICBpdGVtczogTHB4TmF2YmFySXRlbVtdLFxyXG4gICAgbGluayA9ICcnXHJcbiAgKTogTHB4TmF2YmFySXRlbVtdIHtcclxuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+ICh7XHJcbiAgICAgIC4uLml0ZW0sXHJcbiAgICAgIC4uLihpdGVtLmxpbmsgJiYgbGluayA/IHsgbGluazogYCR7bGlua30vJHtpdGVtLmxpbmt9YCB9IDoge30pLFxyXG4gICAgICBjaGlsZHJlbjogdGhpcy5hZGRDb250YWluZXJMaW5rcyhcclxuICAgICAgICBpdGVtLmNoaWxkcmVuIHx8IFtdLFxyXG4gICAgICAgIGAke2xpbmsgPyBsaW5rICsgJy8nIDogJyd9JHtpdGVtLmNvbnRhaW5lckxpbmsgfHwgJyd9YFxyXG4gICAgICApLFxyXG4gICAgfSkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -5,4 +5,5 @@ export * from './mobile-navbar-panel.directive';
5
5
  export * from './toolbar-panel.directive';
6
6
  export * from './top-navbar-panel.directive';
7
7
  export * from './panels.module';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9wYW5lbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmF2YmFyLXBhbmVsLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYnJlYWRjcnVtYi1wYW5lbC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Zvb3Rlci1wYW5lbC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vYmlsZS1uYXZiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi90b29sYmFyLXBhbmVsLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdG9wLW5hdmJhci1wYW5lbC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhbmVscy5tb2R1bGUnO1xyXG4iXX0=
8
+ export * from './settings-panel.directive';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xlcHRvbi14LWNvcmUvc3JjL2xpYi9wYW5lbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uYXZiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iLXBhbmVsLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZm9vdGVyLXBhbmVsLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9iaWxlLW5hdmJhci1wYW5lbC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Rvb2xiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi90b3AtbmF2YmFyLXBhbmVsLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFuZWxzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2V0dGluZ3MtcGFuZWwuZGlyZWN0aXZlJztcclxuIl19
@@ -6,6 +6,7 @@ import { FooterPanelDirective } from './footer-panel.directive';
6
6
  import { MobileNavbarPanelDirective } from './mobile-navbar-panel.directive';
7
7
  import { ToolbarPanelDirective } from './toolbar-panel.directive';
8
8
  import { TopNavbarPanelDirective } from './top-navbar-panel.directive';
9
+ import { SettingsPanelDirective } from './settings-panel.directive';
9
10
  import * as i0 from "@angular/core";
10
11
  const declarationsAndExports = [
11
12
  BreadcrumbPanelDirective,
@@ -14,6 +15,7 @@ const declarationsAndExports = [
14
15
  MobileNavbarPanelDirective,
15
16
  ToolbarPanelDirective,
16
17
  TopNavbarPanelDirective,
18
+ SettingsPanelDirective,
17
19
  ];
18
20
  export class PanelsModule {
19
21
  }
@@ -23,12 +25,14 @@ PanelsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
23
25
  FooterPanelDirective,
24
26
  MobileNavbarPanelDirective,
25
27
  ToolbarPanelDirective,
26
- TopNavbarPanelDirective], imports: [CommonModule], exports: [BreadcrumbPanelDirective,
28
+ TopNavbarPanelDirective,
29
+ SettingsPanelDirective], imports: [CommonModule], exports: [BreadcrumbPanelDirective,
27
30
  NavbarPanelDirective,
28
31
  FooterPanelDirective,
29
32
  MobileNavbarPanelDirective,
30
33
  ToolbarPanelDirective,
31
- TopNavbarPanelDirective] });
34
+ TopNavbarPanelDirective,
35
+ SettingsPanelDirective] });
32
36
  PanelsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: PanelsModule, imports: [CommonModule] });
33
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: PanelsModule, decorators: [{
34
38
  type: NgModule,
@@ -38,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
38
42
  exports: [...declarationsAndExports],
39
43
  }]
40
44
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGVwdG9uLXgtY29yZS9zcmMvbGliL3BhbmVscy9wYW5lbHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUV2RSxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLDBCQUEwQjtJQUMxQixxQkFBcUI7SUFDckIsdUJBQXVCO0NBQ3hCLENBQUM7QUFPRixNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTswR0FBWixZQUFZLGlCQWJ2Qix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQiwwQkFBMEI7UUFDMUIscUJBQXFCO1FBQ3JCLHVCQUF1QixhQUtiLFlBQVksYUFWdEIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLHFCQUFxQjtRQUNyQix1QkFBdUI7MEdBUVosWUFBWSxZQUhiLFlBQVk7MkZBR1gsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLEdBQUcsc0JBQXNCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYlBhbmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9icmVhZGNydW1iLXBhbmVsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5hdmJhclBhbmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9uYXZiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9vdGVyUGFuZWxEaXJlY3RpdmUgfSBmcm9tICcuL2Zvb3Rlci1wYW5lbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNb2JpbGVOYXZiYXJQYW5lbERpcmVjdGl2ZSB9IGZyb20gJy4vbW9iaWxlLW5hdmJhci1wYW5lbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUb29sYmFyUGFuZWxEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2xiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVG9wTmF2YmFyUGFuZWxEaXJlY3RpdmUgfSBmcm9tICcuL3RvcC1uYXZiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuXHJcbmNvbnN0IGRlY2xhcmF0aW9uc0FuZEV4cG9ydHMgPSBbXHJcbiAgQnJlYWRjcnVtYlBhbmVsRGlyZWN0aXZlLFxyXG4gIE5hdmJhclBhbmVsRGlyZWN0aXZlLFxyXG4gIEZvb3RlclBhbmVsRGlyZWN0aXZlLFxyXG4gIE1vYmlsZU5hdmJhclBhbmVsRGlyZWN0aXZlLFxyXG4gIFRvb2xiYXJQYW5lbERpcmVjdGl2ZSxcclxuICBUb3BOYXZiYXJQYW5lbERpcmVjdGl2ZSxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbLi4uZGVjbGFyYXRpb25zQW5kRXhwb3J0c10sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogWy4uLmRlY2xhcmF0aW9uc0FuZEV4cG9ydHNdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFuZWxzTW9kdWxlIHt9XHJcbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGVwdG9uLXgtY29yZS9zcmMvbGliL3BhbmVscy9wYW5lbHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVwRSxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLDBCQUEwQjtJQUMxQixxQkFBcUI7SUFDckIsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtDQUN2QixDQUFDO0FBT0YsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxpQkFkdkIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLHFCQUFxQjtRQUNyQix1QkFBdUI7UUFDdkIsc0JBQXNCLGFBS1osWUFBWSxhQVh0Qix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQiwwQkFBMEI7UUFDMUIscUJBQXFCO1FBQ3JCLHVCQUF1QjtRQUN2QixzQkFBc0I7MEdBUVgsWUFBWSxZQUhiLFlBQVk7MkZBR1gsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLEdBQUcsc0JBQXNCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYlBhbmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9icmVhZGNydW1iLXBhbmVsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5hdmJhclBhbmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9uYXZiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9vdGVyUGFuZWxEaXJlY3RpdmUgfSBmcm9tICcuL2Zvb3Rlci1wYW5lbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNb2JpbGVOYXZiYXJQYW5lbERpcmVjdGl2ZSB9IGZyb20gJy4vbW9iaWxlLW5hdmJhci1wYW5lbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUb29sYmFyUGFuZWxEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2xiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVG9wTmF2YmFyUGFuZWxEaXJlY3RpdmUgfSBmcm9tICcuL3RvcC1uYXZiYXItcGFuZWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2V0dGluZ3NQYW5lbERpcmVjdGl2ZSB9IGZyb20gJy4vc2V0dGluZ3MtcGFuZWwuZGlyZWN0aXZlJztcclxuXHJcbmNvbnN0IGRlY2xhcmF0aW9uc0FuZEV4cG9ydHMgPSBbXHJcbiAgQnJlYWRjcnVtYlBhbmVsRGlyZWN0aXZlLFxyXG4gIE5hdmJhclBhbmVsRGlyZWN0aXZlLFxyXG4gIEZvb3RlclBhbmVsRGlyZWN0aXZlLFxyXG4gIE1vYmlsZU5hdmJhclBhbmVsRGlyZWN0aXZlLFxyXG4gIFRvb2xiYXJQYW5lbERpcmVjdGl2ZSxcclxuICBUb3BOYXZiYXJQYW5lbERpcmVjdGl2ZSxcclxuICBTZXR0aW5nc1BhbmVsRGlyZWN0aXZlLFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFsuLi5kZWNsYXJhdGlvbnNBbmRFeHBvcnRzXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbLi4uZGVjbGFyYXRpb25zQW5kRXhwb3J0c10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYW5lbHNNb2R1bGUge31cclxuIl19
@@ -0,0 +1,16 @@
1
+ import { Directive, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SettingsPanelDirective {
4
+ constructor(template) {
5
+ this.template = template;
6
+ }
7
+ }
8
+ SettingsPanelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SettingsPanelDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ SettingsPanelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: SettingsPanelDirective, selector: "ng-template[lpx-settings-panel]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SettingsPanelDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: 'ng-template[lpx-settings-panel]',
14
+ }]
15
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtcGFuZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sZXB0b24teC1jb3JlL3NyYy9saWIvcGFuZWxzL3NldHRpbmdzLXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFHLENBQUM7O21IQUR0QyxzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQ0FBaUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtscHgtc2V0dGluZ3MtcGFuZWxdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzUGFuZWxEaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge31cclxufVxyXG4iXX0=
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Injectable, Inject, NgModule, Component, ViewEncapsulation, Input, Directive, Optional, Pipe, EventEmitter, Output, TemplateRef, ContentChild, HostListener, APP_INITIALIZER, Injector, SkipSelf } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DOCUMENT } from '@angular/common';
5
- import { map, distinctUntilChanged, filter, take, switchMap, startWith, distinctUntilKeyChanged } from 'rxjs/operators';
5
+ import { map, distinctUntilChanged, filter, take, tap, switchMap, startWith, distinctUntilKeyChanged } from 'rxjs/operators';
6
6
  import { BehaviorSubject, Subject, Observable, from, of, combineLatest, fromEvent, Subscription } from 'rxjs';
7
7
  import { FormsModule } from '@angular/forms';
8
8
  import * as i1$1 from '@angular/router';
@@ -264,7 +264,7 @@ class NavbarService {
264
264
  this.router = router;
265
265
  this.store = new DataStore(this.addContainerLinks(this.menuItems));
266
266
  this.navbarItems$ = this.store.sliceState((state) => state);
267
- this.expandItemByLink();
267
+ this.expandItemByLink$().pipe(take(1)).subscribe();
268
268
  }
269
269
  addNavbarItems(...menuItems) {
270
270
  this.store.set([...this.store.state, ...this.addContainerLinks(menuItems)]);
@@ -299,28 +299,28 @@ class NavbarService {
299
299
  findByLink(link, items) {
300
300
  return this.findByProp('link', link, items);
301
301
  }
302
- expandItemByLink() {
303
- this.router.events
304
- .pipe(filter((e) => e instanceof NavigationEnd), take(1))
305
- .subscribe(() => {
306
- const route = this.findByLink(this.router.url);
307
- const expand = (items, indexes) => {
308
- const matchIndex = indexes.shift();
309
- return items.reduce((acc, item, index) => {
310
- if (index === matchIndex) {
311
- return [
312
- ...acc,
313
- Object.assign(Object.assign({}, item), { expanded: true, selected: true, children: expand(item.children || [], indexes) }),
314
- ];
315
- }
316
- return [...acc, item];
317
- }, []);
318
- };
319
- if (route === null || route === void 0 ? void 0 : route.item) {
320
- const expanded = expand(this.store.state, route.location);
321
- this.store.patch(expanded);
322
- }
323
- });
302
+ expandItemByLink$() {
303
+ return this.router.events
304
+ .pipe(filter((e) => e instanceof NavigationEnd), tap(() => this.calculateExpandState()));
305
+ }
306
+ calculateExpandState() {
307
+ const route = this.findByLink(this.router.url);
308
+ const expand = (items, indexes) => {
309
+ const matchIndex = indexes.shift();
310
+ return items.reduce((acc, item, index) => {
311
+ if (index === matchIndex) {
312
+ return [
313
+ ...acc,
314
+ Object.assign(Object.assign({}, item), { expanded: true, selected: true, children: expand(item.children || [], indexes) }),
315
+ ];
316
+ }
317
+ return [...acc, Object.assign(Object.assign({}, item), { expanded: false, selected: false })];
318
+ }, []);
319
+ };
320
+ if (route === null || route === void 0 ? void 0 : route.item) {
321
+ const expanded = expand(this.store.state, route.location);
322
+ this.store.patch(expanded);
323
+ }
324
324
  }
325
325
  findById(id, items) {
326
326
  return this.findByProp('id', id, items);
@@ -1381,10 +1381,10 @@ class FooterComponent {
1381
1381
  }
1382
1382
  }
1383
1383
  FooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FooterComponent, deps: [{ token: FooterLinksService }], target: i0.ɵɵFactoryTarget.Component });
1384
- FooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: FooterComponent, selector: "lpx-footer", ngImport: i0, template: "<ng-container *ngIf=\"footerValues$ | async as footerValues\">\r\n <div class=\"lpx-footbar-container\">\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n <span>{{ currentYear }} \u00A9</span>\r\n <a\r\n *ngIf=\"footerValues.descUrl; else footerDesc\"\r\n [routerLink]=\"[footerValues.descUrl]\"\r\n >\r\n {{ footerValues.desc }}</a\r\n >\r\n <ng-template #footerDesc>\r\n <a> {{ footerValues.desc }}</a>\r\n </ng-template>\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n <ng-container *ngFor=\"let footerLink of footerValues.footerLinks\">\r\n <a *ngIf=\"footerLink\" [routerLink]=\"[footerLink.link]\">{{\r\n footerLink.text\r\n }}</a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1384
+ FooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: FooterComponent, selector: "lpx-footer", ngImport: i0, template: "<ng-container *ngIf=\"footerValues$ | async as footerValues\">\r\n\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n <span>{{ currentYear }} \u00A9</span>\r\n <a\r\n *ngIf=\"footerValues.descUrl; else footerDesc\"\r\n [routerLink]=\"[footerValues.descUrl]\"\r\n >\r\n {{ footerValues.desc }}</a\r\n >\r\n <ng-template #footerDesc>\r\n <a> {{ footerValues.desc }}</a>\r\n </ng-template>\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n <ng-container *ngFor=\"let footerLink of footerValues.footerLinks\">\r\n <a *ngIf=\"footerLink\" [routerLink]=\"[footerLink.link]\">{{\r\n footerLink.text\r\n }}</a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1385
1385
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FooterComponent, decorators: [{
1386
1386
  type: Component,
1387
- args: [{ selector: 'lpx-footer', template: "<ng-container *ngIf=\"footerValues$ | async as footerValues\">\r\n <div class=\"lpx-footbar-container\">\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n <span>{{ currentYear }} \u00A9</span>\r\n <a\r\n *ngIf=\"footerValues.descUrl; else footerDesc\"\r\n [routerLink]=\"[footerValues.descUrl]\"\r\n >\r\n {{ footerValues.desc }}</a\r\n >\r\n <ng-template #footerDesc>\r\n <a> {{ footerValues.desc }}</a>\r\n </ng-template>\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n <ng-container *ngFor=\"let footerLink of footerValues.footerLinks\">\r\n <a *ngIf=\"footerLink\" [routerLink]=\"[footerLink.link]\">{{\r\n footerLink.text\r\n }}</a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n" }]
1387
+ args: [{ selector: 'lpx-footer', template: "<ng-container *ngIf=\"footerValues$ | async as footerValues\">\r\n\r\n <div class=\"lpx-footbar\">\r\n <div class=\"lpx-footbar-copyright\">\r\n <span>{{ currentYear }} \u00A9</span>\r\n <a\r\n *ngIf=\"footerValues.descUrl; else footerDesc\"\r\n [routerLink]=\"[footerValues.descUrl]\"\r\n >\r\n {{ footerValues.desc }}</a\r\n >\r\n <ng-template #footerDesc>\r\n <a> {{ footerValues.desc }}</a>\r\n </ng-template>\r\n </div>\r\n <div class=\"lpx-footbar-solo-links\">\r\n <ng-container *ngFor=\"let footerLink of footerValues.footerLinks\">\r\n <a *ngIf=\"footerLink\" [routerLink]=\"[footerLink.link]\">{{\r\n footerLink.text\r\n }}</a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n" }]
1388
1388
  }], ctorParameters: function () { return [{ type: FooterLinksService }]; } });
1389
1389
 
1390
1390
  class LpxFooterModule {
@@ -1491,6 +1491,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1491
1491
  }]
1492
1492
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
1493
1493
 
1494
+ class SettingsPanelDirective {
1495
+ constructor(template) {
1496
+ this.template = template;
1497
+ }
1498
+ }
1499
+ SettingsPanelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SettingsPanelDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
1500
+ SettingsPanelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: SettingsPanelDirective, selector: "ng-template[lpx-settings-panel]", ngImport: i0 });
1501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SettingsPanelDirective, decorators: [{
1502
+ type: Directive,
1503
+ args: [{
1504
+ selector: 'ng-template[lpx-settings-panel]',
1505
+ }]
1506
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
1507
+
1494
1508
  const declarationsAndExports = [
1495
1509
  BreadcrumbPanelDirective,
1496
1510
  NavbarPanelDirective,
@@ -1498,6 +1512,7 @@ const declarationsAndExports = [
1498
1512
  MobileNavbarPanelDirective,
1499
1513
  ToolbarPanelDirective,
1500
1514
  TopNavbarPanelDirective,
1515
+ SettingsPanelDirective,
1501
1516
  ];
1502
1517
  class PanelsModule {
1503
1518
  }
@@ -1507,12 +1522,14 @@ PanelsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
1507
1522
  FooterPanelDirective,
1508
1523
  MobileNavbarPanelDirective,
1509
1524
  ToolbarPanelDirective,
1510
- TopNavbarPanelDirective], imports: [CommonModule], exports: [BreadcrumbPanelDirective,
1525
+ TopNavbarPanelDirective,
1526
+ SettingsPanelDirective], imports: [CommonModule], exports: [BreadcrumbPanelDirective,
1511
1527
  NavbarPanelDirective,
1512
1528
  FooterPanelDirective,
1513
1529
  MobileNavbarPanelDirective,
1514
1530
  ToolbarPanelDirective,
1515
- TopNavbarPanelDirective] });
1531
+ TopNavbarPanelDirective,
1532
+ SettingsPanelDirective] });
1516
1533
  PanelsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: PanelsModule, imports: [CommonModule] });
1517
1534
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: PanelsModule, decorators: [{
1518
1535
  type: NgModule,
@@ -1527,5 +1544,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
1527
1544
  * Generated bundle index. Do not edit.
1528
1545
  */
1529
1546
 
1530
- export { AvatarComponent, BodyService, BrandLogoComponent, BreadcrumbComponent, BreadcrumbPanelDirective, BreadcrumbRouteListenerService, BreadcrumbService, CONTENT_AFTER_ROUTES, CONTENT_BEFORE_ROUTES, ClickOutsideDirective, DataStore, DefaultAuthService, DefaultTranslateService, FooterComponent, FooterLinksService, FooterPanelDirective, ICON_MAP, IconComponent, LEPTON_X_ICON_SET, LPX_AUTH_SERVICE_PROVIDER, LPX_AUTH_SERVICE_TOKEN, LPX_INITIAL_STYLES, LPX_LANGUAGE, LPX_LAYOUT_STYLE_FINAL, LPX_MENU_ITEMS, LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS, LPX_STYLE_FINAL, LPX_STYLE_PROVIDERS, LPX_TRANSLATE_SERVICE_TOKEN, LPX_TRANSLATE_TOKEN, LanguageService, LanguageTranslateDefaults, LanguageTranslateKeys, LayoutService, LpxAvatarModule, LpxBrandLogoModule, LpxBreadcrumbModule, LpxClickOutsideModule, LpxCoreModule, LpxFooterModule, LpxIconModule, LpxLanguageModule, LpxNavbarModule, LpxResponsiveModule, LpxThemeTranslateService, LpxTranslateModule, MobileNavbarPanelDirective, NavbarComponent, NavbarPanelDirective, NavbarRoutesComponent, NavbarRoutesDirective, NavbarService, PanelsModule, RESPONSIVE_BREAKPOINTS, ResponsiveDirective, ResponsiveService, StyleService, SubNavbarComponent, ToObservableModule, ToObservablePipe, ToolbarPanelDirective, TopNavbarPanelDirective, TranslatePipe, UserProfileService, WINDOW, breadCrumbInit, createDirectionProvider, createResponsiveProvider, createStyleFactory, createWindowProvider, exportedDeclarations, flatArrayDeepToObject, getStream$, listenDirectionChange, loadInitialStyles, sortItems };
1547
+ export { AvatarComponent, BodyService, BrandLogoComponent, BreadcrumbComponent, BreadcrumbPanelDirective, BreadcrumbRouteListenerService, BreadcrumbService, CONTENT_AFTER_ROUTES, CONTENT_BEFORE_ROUTES, ClickOutsideDirective, DataStore, DefaultAuthService, DefaultTranslateService, FooterComponent, FooterLinksService, FooterPanelDirective, ICON_MAP, IconComponent, LEPTON_X_ICON_SET, LPX_AUTH_SERVICE_PROVIDER, LPX_AUTH_SERVICE_TOKEN, LPX_INITIAL_STYLES, LPX_LANGUAGE, LPX_LAYOUT_STYLE_FINAL, LPX_MENU_ITEMS, LPX_RESPONSIVE_BREAKPOINTS_DEFAULTS, LPX_STYLE_FINAL, LPX_STYLE_PROVIDERS, LPX_TRANSLATE_SERVICE_TOKEN, LPX_TRANSLATE_TOKEN, LanguageService, LanguageTranslateDefaults, LanguageTranslateKeys, LayoutService, LpxAvatarModule, LpxBrandLogoModule, LpxBreadcrumbModule, LpxClickOutsideModule, LpxCoreModule, LpxFooterModule, LpxIconModule, LpxLanguageModule, LpxNavbarModule, LpxResponsiveModule, LpxThemeTranslateService, LpxTranslateModule, MobileNavbarPanelDirective, NavbarComponent, NavbarPanelDirective, NavbarRoutesComponent, NavbarRoutesDirective, NavbarService, PanelsModule, RESPONSIVE_BREAKPOINTS, ResponsiveDirective, ResponsiveService, SettingsPanelDirective, StyleService, SubNavbarComponent, ToObservableModule, ToObservablePipe, ToolbarPanelDirective, TopNavbarPanelDirective, TranslatePipe, UserProfileService, WINDOW, breadCrumbInit, createDirectionProvider, createResponsiveProvider, createStyleFactory, createWindowProvider, exportedDeclarations, flatArrayDeepToObject, getStream$, listenDirectionChange, loadInitialStyles, sortItems };
1531
1548
  //# sourceMappingURL=volo-ngx-lepton-x.core.mjs.map