@festo-ui/angular 3.2.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +20 -9
- package/esm2020/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +34 -13
- package/esm2020/lib/components/mobile-flyout/mobile-flyout.component.mjs +40 -13
- package/fesm2015/festo-ui-angular.mjs +112 -57
- package/fesm2015/festo-ui-angular.mjs.map +1 -1
- package/fesm2020/festo-ui-angular.mjs +110 -57
- package/fesm2020/festo-ui-angular.mjs.map +1 -1
- package/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.d.ts +8 -3
- package/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.d.ts +7 -3
- package/lib/components/mobile-flyout/mobile-flyout.component.d.ts +9 -3
- package/package.json +1 -1
package/esm2020/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs
CHANGED
|
@@ -1,27 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable @angular-eslint/no-empty-lifecycle-method */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3
|
+
import { Component, Input, Optional } from '@angular/core';
|
|
4
|
+
import { RouterLinkActive } from '@angular/router';
|
|
2
5
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/
|
|
4
|
-
import * as i2 from "@angular/
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
5
8
|
export class MobileFlyoutItemComponent {
|
|
6
|
-
constructor() {
|
|
9
|
+
constructor(rla) {
|
|
10
|
+
this.rla = rla;
|
|
7
11
|
this.icon = '';
|
|
8
12
|
this.pageLink = '';
|
|
9
13
|
this.lastElement = false;
|
|
10
14
|
}
|
|
15
|
+
ngOnChanges(_) {
|
|
16
|
+
// lifecycle hook is called by parent component so do not remove it
|
|
17
|
+
}
|
|
11
18
|
onClick() {
|
|
12
19
|
if (this.onNavigateCallback) {
|
|
13
20
|
this.onNavigateCallback(this.pageLink);
|
|
14
21
|
}
|
|
15
22
|
}
|
|
16
23
|
}
|
|
17
|
-
MobileFlyoutItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MobileFlyoutItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
MobileFlyoutItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MobileFlyoutItemComponent, selector: "fng-mobile-flyout-item", inputs: { icon: "icon", pageLink: "pageLink" }, ngImport: i0, template: "<a class=\"fwe-mobile-flyout-item\" [class.fwe-bb]=\"!lastElement\" (click)=\"onClick()\">\n <i *ngIf=\"icon\" [class]=\"'fwe-mr-xs fwe-icon fwe-icon-' + icon\"></i>\n <div class=\"fwe-flex-grow-1\" routerLinkActive=\"fwe-color-hero\">\n <ng-
|
|
24
|
+
MobileFlyoutItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MobileFlyoutItemComponent, deps: [{ token: i1.RouterLinkActive, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
MobileFlyoutItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MobileFlyoutItemComponent, selector: "fng-mobile-flyout-item", inputs: { icon: "icon", pageLink: "pageLink", lastElement: "lastElement" }, usesOnChanges: true, ngImport: i0, template: "<a class=\"fwe-mobile-flyout-item\" [class.fwe-bb]=\"!lastElement\" (click)=\"onClick()\">\n <i *ngIf=\"icon\" [class]=\"'fwe-mr-xs fwe-icon fwe-icon-' + icon\"></i>\n <div *ngIf=\"!rla\" class=\"fwe-flex-grow-1\" routerLinkActive=\"fwe-color-hero\">\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </div>\n <div\n *ngIf=\"rla?.routerLinkActiveOptions\"\n class=\"fwe-flex-grow-1\"\n routerLinkActive=\"fwe-color-hero\"\n [routerLinkActiveOptions]=\"rla.routerLinkActiveOptions\"\n >\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </div>\n <i *ngIf=\"pageLink\" class=\"fwe-icon fwe-icon-arrows-right-2\"></i>\n</a>\n<ng-template #itemContent>\n <ng-content></ng-content>\n</ng-template>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
19
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MobileFlyoutItemComponent, decorators: [{
|
|
20
27
|
type: Component,
|
|
21
|
-
args: [{ selector: 'fng-mobile-flyout-item', template: "<a class=\"fwe-mobile-flyout-item\" [class.fwe-bb]=\"!lastElement\" (click)=\"onClick()\">\n <i *ngIf=\"icon\" [class]=\"'fwe-mr-xs fwe-icon fwe-icon-' + icon\"></i>\n <div class=\"fwe-flex-grow-1\" routerLinkActive=\"fwe-color-hero\">\n <ng-
|
|
22
|
-
}],
|
|
28
|
+
args: [{ selector: 'fng-mobile-flyout-item', template: "<a class=\"fwe-mobile-flyout-item\" [class.fwe-bb]=\"!lastElement\" (click)=\"onClick()\">\n <i *ngIf=\"icon\" [class]=\"'fwe-mr-xs fwe-icon fwe-icon-' + icon\"></i>\n <div *ngIf=\"!rla\" class=\"fwe-flex-grow-1\" routerLinkActive=\"fwe-color-hero\">\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </div>\n <div\n *ngIf=\"rla?.routerLinkActiveOptions\"\n class=\"fwe-flex-grow-1\"\n routerLinkActive=\"fwe-color-hero\"\n [routerLinkActiveOptions]=\"rla.routerLinkActiveOptions\"\n >\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </div>\n <i *ngIf=\"pageLink\" class=\"fwe-icon fwe-icon-arrows-right-2\"></i>\n</a>\n<ng-template #itemContent>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i1.RouterLinkActive, decorators: [{
|
|
30
|
+
type: Optional
|
|
31
|
+
}] }]; }, propDecorators: { icon: [{
|
|
23
32
|
type: Input
|
|
24
33
|
}], pageLink: [{
|
|
25
34
|
type: Input
|
|
35
|
+
}], lastElement: [{
|
|
36
|
+
type: Input
|
|
26
37
|
}] } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LWl0ZW0vbW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LWl0ZW0vbW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUM5RCxzREFBc0Q7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQU1uRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQStCLEdBQXFCO1FBQXJCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBTjNDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQUkwQixDQUFDO0lBRXhELFdBQVcsQ0FBQyxDQUFnQjtRQUMxQixtRUFBbUU7SUFDckUsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQzs7c0hBakJVLHlCQUF5QjswR0FBekIseUJBQXlCLCtKQ1R0QyxzdkJBa0JBOzJGRFRhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7OzBCQVVyQixRQUFROzRDQU5aLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tZW1wdHktbGlmZWN5Y2xlLW1ldGhvZCAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm5nLW1vYmlsZS1mbHlvdXQtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2JpbGUtZmx5b3V0LWl0ZW0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZUZseW91dEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGFnZUxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsYXN0RWxlbWVudCA9IGZhbHNlO1xuXG4gIG9uTmF2aWdhdGVDYWxsYmFjazogKChwYWdlTmFtZTogc3RyaW5nKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgcmxhOiBSb3V0ZXJMaW5rQWN0aXZlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBsaWZlY3ljbGUgaG9vayBpcyBjYWxsZWQgYnkgcGFyZW50IGNvbXBvbmVudCBzbyBkbyBub3QgcmVtb3ZlIGl0XG4gIH1cblxuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLm9uTmF2aWdhdGVDYWxsYmFjaykge1xuICAgICAgdGhpcy5vbk5hdmlnYXRlQ2FsbGJhY2sodGhpcy5wYWdlTGluayk7XG4gICAgfVxuICB9XG59XG4iLCI8YSBjbGFzcz1cImZ3ZS1tb2JpbGUtZmx5b3V0LWl0ZW1cIiBbY2xhc3MuZndlLWJiXT1cIiFsYXN0RWxlbWVudFwiIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgPGkgKm5nSWY9XCJpY29uXCIgW2NsYXNzXT1cIidmd2UtbXIteHMgZndlLWljb24gZndlLWljb24tJyArIGljb25cIj48L2k+XG4gIDxkaXYgKm5nSWY9XCIhcmxhXCIgY2xhc3M9XCJmd2UtZmxleC1ncm93LTFcIiByb3V0ZXJMaW5rQWN0aXZlPVwiZndlLWNvbG9yLWhlcm9cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cInJsYT8ucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxuICAgIGNsYXNzPVwiZndlLWZsZXgtZ3Jvdy0xXCJcbiAgICByb3V0ZXJMaW5rQWN0aXZlPVwiZndlLWNvbG9yLWhlcm9cIlxuICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJybGEucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8aSAqbmdJZj1cInBhZ2VMaW5rXCIgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1hcnJvd3MtcmlnaHQtMlwiPjwvaT5cbjwvYT5cbjxuZy10ZW1wbGF0ZSAjaXRlbUNvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
package/esm2020/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
|
-
import { Component, ContentChildren, Input, QueryList } from '@angular/core';
|
|
1
|
+
import { Component, ContentChildren, Input, QueryList, SimpleChange } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
2
4
|
import { MobileFlyoutItemComponent } from '../mobile-flyout-item/mobile-flyout-item.component';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
import * as i1 from "@angular/common";
|
|
5
7
|
export class MobileFlyoutPageComponent {
|
|
6
8
|
constructor() {
|
|
7
9
|
this.name = '';
|
|
10
|
+
this.back = 'Back';
|
|
8
11
|
this.isfirstelement = false;
|
|
9
12
|
this.visible = false;
|
|
13
|
+
this.complete = new Subject();
|
|
10
14
|
}
|
|
11
15
|
ngAfterContentInit() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
s.onNavigateCallback = pageName => this.onNavigate(pageName);
|
|
16
|
+
this.initItemComponents();
|
|
17
|
+
// if we have item components that are added dynamically (e.g. *ngIf)
|
|
18
|
+
// we need to call init again to have all navigate callbacks defined
|
|
19
|
+
this.itemComponents.changes.pipe(takeUntil(this.complete)).subscribe(() => {
|
|
20
|
+
this.initItemComponents();
|
|
18
21
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
}
|
|
23
|
+
ngOnDestroy() {
|
|
24
|
+
this.complete.next(true);
|
|
25
|
+
this.complete.unsubscribe();
|
|
22
26
|
}
|
|
23
27
|
onNavigate(pageName) {
|
|
24
28
|
if (this.onNavigateCallback) {
|
|
@@ -28,16 +32,33 @@ export class MobileFlyoutPageComponent {
|
|
|
28
32
|
onBack() {
|
|
29
33
|
this.visible = false;
|
|
30
34
|
}
|
|
35
|
+
initItemComponents() {
|
|
36
|
+
if (!this.itemComponents) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// register click-callbacks
|
|
40
|
+
this.itemComponents.forEach(s => {
|
|
41
|
+
s.onNavigateCallback = pageName => this.onNavigate(pageName);
|
|
42
|
+
});
|
|
43
|
+
if (this.itemComponents.last) {
|
|
44
|
+
// pass new value by ngOnChanges for proper change detection
|
|
45
|
+
this.itemComponents.last.ngOnChanges({
|
|
46
|
+
lastElement: new SimpleChange(null, true, false)
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
31
50
|
}
|
|
32
51
|
MobileFlyoutPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MobileFlyoutPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
MobileFlyoutPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MobileFlyoutPageComponent, selector: "fng-mobile-flyout-page", inputs: { name: "name" }, queries: [{ propertyName: "itemComponents", predicate: MobileFlyoutItemComponent }], ngImport: i0, template: "<div class=\"fwe-mobile-flyout-page\" [class.fwe-opened]=\"visible\">\n <div class=\"fwe-page-back\" *ngIf=\"!isfirstelement\" (click)=\"onBack()\">\n <i></i>\n <div>
|
|
52
|
+
MobileFlyoutPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MobileFlyoutPageComponent, selector: "fng-mobile-flyout-page", inputs: { name: "name", back: "back" }, queries: [{ propertyName: "itemComponents", predicate: MobileFlyoutItemComponent }], ngImport: i0, template: "<div class=\"fwe-mobile-flyout-page\" [class.fwe-opened]=\"visible\">\n <div class=\"fwe-page-back\" *ngIf=\"!isfirstelement\" (click)=\"onBack()\">\n <i></i>\n <div>{{ back }}</div>\n </div>\n <div class=\"fwe-mobile-flyout-item-container\">\n <ng-content></ng-content>\n </div>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
34
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MobileFlyoutPageComponent, decorators: [{
|
|
35
54
|
type: Component,
|
|
36
|
-
args: [{ selector: 'fng-mobile-flyout-page', template: "<div class=\"fwe-mobile-flyout-page\" [class.fwe-opened]=\"visible\">\n <div class=\"fwe-page-back\" *ngIf=\"!isfirstelement\" (click)=\"onBack()\">\n <i></i>\n <div>
|
|
55
|
+
args: [{ selector: 'fng-mobile-flyout-page', template: "<div class=\"fwe-mobile-flyout-page\" [class.fwe-opened]=\"visible\">\n <div class=\"fwe-page-back\" *ngIf=\"!isfirstelement\" (click)=\"onBack()\">\n <i></i>\n <div>{{ back }}</div>\n </div>\n <div class=\"fwe-mobile-flyout-item-container\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
37
56
|
}], propDecorators: { itemComponents: [{
|
|
38
57
|
type: ContentChildren,
|
|
39
58
|
args: [MobileFlyoutItemComponent]
|
|
40
59
|
}], name: [{
|
|
41
60
|
type: Input
|
|
61
|
+
}], back: [{
|
|
62
|
+
type: Input
|
|
42
63
|
}] } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZseW91dC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LXBhZ2UvbW9iaWxlLWZseW91dC1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LXBhZ2UvbW9iaWxlLWZseW91dC1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7O0FBTS9GLE1BQU0sT0FBTyx5QkFBeUI7SUFKdEM7UUFNVyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFNBQUksR0FBVyxNQUFNLENBQUM7UUFFL0IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUdSLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQTRDcEQ7SUExQ0Msa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLHFFQUFxRTtRQUNyRSxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZ0I7UUFDekIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUVELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixDQUFDLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtZQUM1Qiw0REFBNEQ7WUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNuQyxXQUFXLEVBQUUsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7YUFDakQsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztzSEFwRFUseUJBQXlCOzBHQUF6Qix5QkFBeUIscUlBQ25CLHlCQUF5Qiw2QkNYNUMsZ1RBU0E7MkZEQ2EseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNFLHdCQUF3Qjs4QkFJVSxjQUFjO3NCQUF6RCxlQUFlO3VCQUFDLHlCQUF5QjtnQkFDakMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgUXVlcnlMaXN0LCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNb2JpbGVGbHlvdXRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9iaWxlLWZseW91dC1pdGVtL21vYmlsZS1mbHlvdXQtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmbmctbW9iaWxlLWZseW91dC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vYmlsZS1mbHlvdXQtcGFnZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTW9iaWxlRmx5b3V0UGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBDb250ZW50Q2hpbGRyZW4oTW9iaWxlRmx5b3V0SXRlbUNvbXBvbmVudCkgaXRlbUNvbXBvbmVudHMhOiBRdWVyeUxpc3Q8TW9iaWxlRmx5b3V0SXRlbUNvbXBvbmVudD47XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBiYWNrOiBzdHJpbmcgPSAnQmFjayc7XG5cbiAgaXNmaXJzdGVsZW1lbnQgPSBmYWxzZTtcbiAgdmlzaWJsZSA9IGZhbHNlO1xuICBvbk5hdmlnYXRlQ2FsbGJhY2s6ICgocGFnZU5hbWU6IHN0cmluZykgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBjb21wbGV0ZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEl0ZW1Db21wb25lbnRzKCk7XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGl0ZW0gY29tcG9uZW50cyB0aGF0IGFyZSBhZGRlZCBkeW5hbWljYWxseSAoZS5nLiAqbmdJZilcbiAgICAvLyB3ZSBuZWVkIHRvIGNhbGwgaW5pdCBhZ2FpbiB0byBoYXZlIGFsbCBuYXZpZ2F0ZSBjYWxsYmFja3MgZGVmaW5lZFxuICAgIHRoaXMuaXRlbUNvbXBvbmVudHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBsZXRlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaW5pdEl0ZW1Db21wb25lbnRzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBsZXRlLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5jb21wbGV0ZS51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25OYXZpZ2F0ZShwYWdlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMub25OYXZpZ2F0ZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLm9uTmF2aWdhdGVDYWxsYmFjayhwYWdlTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgb25CYWNrKCkge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0SXRlbUNvbXBvbmVudHMoKSB7XG4gICAgaWYgKCF0aGlzLml0ZW1Db21wb25lbnRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gcmVnaXN0ZXIgY2xpY2stY2FsbGJhY2tzXG4gICAgdGhpcy5pdGVtQ29tcG9uZW50cy5mb3JFYWNoKHMgPT4ge1xuICAgICAgcy5vbk5hdmlnYXRlQ2FsbGJhY2sgPSBwYWdlTmFtZSA9PiB0aGlzLm9uTmF2aWdhdGUocGFnZU5hbWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaXRlbUNvbXBvbmVudHMubGFzdCkge1xuICAgICAgLy8gcGFzcyBuZXcgdmFsdWUgYnkgbmdPbkNoYW5nZXMgZm9yIHByb3BlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICB0aGlzLml0ZW1Db21wb25lbnRzLmxhc3QubmdPbkNoYW5nZXMoe1xuICAgICAgICBsYXN0RWxlbWVudDogbmV3IFNpbXBsZUNoYW5nZShudWxsLCB0cnVlLCBmYWxzZSlcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ3ZS1tb2JpbGUtZmx5b3V0LXBhZ2VcIiBbY2xhc3MuZndlLW9wZW5lZF09XCJ2aXNpYmxlXCI+XG4gIDxkaXYgY2xhc3M9XCJmd2UtcGFnZS1iYWNrXCIgKm5nSWY9XCIhaXNmaXJzdGVsZW1lbnRcIiAoY2xpY2spPVwib25CYWNrKClcIj5cbiAgICA8aT48L2k+XG4gICAgPGRpdj57eyBiYWNrIH19PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZndlLW1vYmlsZS1mbHlvdXQtaXRlbS1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
import { Component, ContentChildren, QueryList } from '@angular/core';
|
|
1
|
+
import { Component, ContentChildren, Output, QueryList, EventEmitter } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
2
4
|
import { MobileFlyoutPageComponent } from './mobile-flyout-page/mobile-flyout-page.component';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
import * as i1 from "../click-outside.directive";
|
|
5
7
|
export class MobileFlyoutComponent {
|
|
6
8
|
constructor() {
|
|
9
|
+
this.flyoutOpenChange = new EventEmitter();
|
|
7
10
|
this.isOpen = false;
|
|
11
|
+
this.complete = new Subject();
|
|
8
12
|
}
|
|
9
13
|
ngAfterContentInit() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
s.onNavigateCallback = pageName => this.onNavigate(pageName);
|
|
16
|
-
s.isfirstelement = i === 0;
|
|
17
|
-
s.visible = i === 0;
|
|
14
|
+
this.initPageComponents();
|
|
15
|
+
// if we have page components that are added dynamically (e.g. *ngIf)
|
|
16
|
+
// we need to call init again to have all navigate callbacks defined
|
|
17
|
+
this.pageComponents.changes.pipe(takeUntil(this.complete)).subscribe(() => {
|
|
18
|
+
this.initPageComponents();
|
|
18
19
|
});
|
|
19
20
|
}
|
|
21
|
+
ngOnDestroy() {
|
|
22
|
+
this.complete.next(true);
|
|
23
|
+
this.complete.unsubscribe();
|
|
24
|
+
}
|
|
20
25
|
onNavigate(pageName) {
|
|
21
26
|
// handle clicks on router links
|
|
22
27
|
if (!pageName) {
|
|
23
28
|
this.isOpen = false;
|
|
29
|
+
this.flyoutOpenChange.emit(this.isOpen);
|
|
24
30
|
}
|
|
25
31
|
// handle page-navigation clicks
|
|
26
32
|
const nextPage = this.pageComponents.find(p => p.name === pageName);
|
|
@@ -28,14 +34,35 @@ export class MobileFlyoutComponent {
|
|
|
28
34
|
nextPage.visible = true;
|
|
29
35
|
}
|
|
30
36
|
}
|
|
37
|
+
toggle() {
|
|
38
|
+
this.isOpen = !this.isOpen;
|
|
39
|
+
this.flyoutOpenChange.emit(this.isOpen);
|
|
40
|
+
}
|
|
41
|
+
onClickOutside() {
|
|
42
|
+
this.isOpen = false;
|
|
43
|
+
this.flyoutOpenChange.emit(this.isOpen);
|
|
44
|
+
}
|
|
45
|
+
initPageComponents() {
|
|
46
|
+
if (!this.pageComponents) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// register click-callbacks and open the first element
|
|
50
|
+
this.pageComponents.forEach((s, i) => {
|
|
51
|
+
s.onNavigateCallback = pageName => this.onNavigate(pageName);
|
|
52
|
+
s.isfirstelement = i === 0;
|
|
53
|
+
s.visible = i === 0;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
31
56
|
}
|
|
32
57
|
MobileFlyoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MobileFlyoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
MobileFlyoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MobileFlyoutComponent, selector: "fng-mobile-flyout", queries: [{ propertyName: "pageComponents", predicate: MobileFlyoutPageComponent }], ngImport: i0, template: "<div class=\"fwe-mobile-flyout\" (clickOutside)=\"
|
|
58
|
+
MobileFlyoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MobileFlyoutComponent, selector: "fng-mobile-flyout", outputs: { flyoutOpenChange: "flyoutOpenChange" }, queries: [{ propertyName: "pageComponents", predicate: MobileFlyoutPageComponent }], ngImport: i0, template: "<div class=\"fwe-mobile-flyout\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <button [class.fwe-burger-button]=\"!isOpen\" [class.fwe-close-button]=\"isOpen\" (click)=\"toggle()\"></button>\n <div class=\"fwe-mobile-flyout-container\" [class.fwe-opened]=\"isOpen\">\n <ng-content></ng-content>\n </div>\n</div>\n", directives: [{ type: i1.ClickOutsideDirective, selector: "[fngClickOutside]", outputs: ["clickOutside"] }] });
|
|
34
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MobileFlyoutComponent, decorators: [{
|
|
35
60
|
type: Component,
|
|
36
|
-
args: [{ selector: 'fng-mobile-flyout', template: "<div class=\"fwe-mobile-flyout\" (clickOutside)=\"
|
|
37
|
-
}], propDecorators: {
|
|
61
|
+
args: [{ selector: 'fng-mobile-flyout', template: "<div class=\"fwe-mobile-flyout\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <button [class.fwe-burger-button]=\"!isOpen\" [class.fwe-close-button]=\"isOpen\" (click)=\"toggle()\"></button>\n <div class=\"fwe-mobile-flyout-container\" [class.fwe-opened]=\"isOpen\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
|
|
62
|
+
}], propDecorators: { flyoutOpenChange: [{
|
|
63
|
+
type: Output
|
|
64
|
+
}], pageComponents: [{
|
|
38
65
|
type: ContentChildren,
|
|
39
66
|
args: [MobileFlyoutPageComponent]
|
|
40
67
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZseW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21vYmlsZS1mbHlvdXQvbW9iaWxlLWZseW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21vYmlsZS1mbHlvdXQvbW9iaWxlLWZseW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7OztBQU05RixNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS1kscUJBQWdCLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVQLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQXFEcEQ7SUFuREMsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLHFFQUFxRTtRQUNyRSxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZ0I7UUFDekIsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUVELGdDQUFnQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDcEUsSUFBSSxRQUFRLEVBQUU7WUFDWixRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUVELHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdELENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEF6RFUscUJBQXFCO3NHQUFyQixxQkFBcUIsMklBRWYseUJBQXlCLDZCQ1o1QywyVUFNQTsyRkRJYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQUluQixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ3FDLGNBQWM7c0JBQXpELGVBQWU7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3QsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNb2JpbGVGbHlvdXRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9tb2JpbGUtZmx5b3V0LXBhZ2UvbW9iaWxlLWZseW91dC1wYWdlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZuZy1tb2JpbGUtZmx5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vYmlsZS1mbHlvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZUZseW91dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBmbHlvdXRPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBDb250ZW50Q2hpbGRyZW4oTW9iaWxlRmx5b3V0UGFnZUNvbXBvbmVudCkgcGFnZUNvbXBvbmVudHMhOiBRdWVyeUxpc3Q8TW9iaWxlRmx5b3V0UGFnZUNvbXBvbmVudD47XG4gIGlzT3BlbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgY29tcGxldGU6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRQYWdlQ29tcG9uZW50cygpO1xuXG4gICAgLy8gaWYgd2UgaGF2ZSBwYWdlIGNvbXBvbmVudHMgdGhhdCBhcmUgYWRkZWQgZHluYW1pY2FsbHkgKGUuZy4gKm5nSWYpXG4gICAgLy8gd2UgbmVlZCB0byBjYWxsIGluaXQgYWdhaW4gdG8gaGF2ZSBhbGwgbmF2aWdhdGUgY2FsbGJhY2tzIGRlZmluZWRcbiAgICB0aGlzLnBhZ2VDb21wb25lbnRzLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wbGV0ZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmluaXRQYWdlQ29tcG9uZW50cygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb21wbGV0ZS5uZXh0KHRydWUpO1xuICAgIHRoaXMuY29tcGxldGUudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uTmF2aWdhdGUocGFnZU5hbWU6IHN0cmluZykge1xuICAgIC8vIGhhbmRsZSBjbGlja3Mgb24gcm91dGVyIGxpbmtzXG4gICAgaWYgKCFwYWdlTmFtZSkge1xuICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuZmx5b3V0T3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgcGFnZS1uYXZpZ2F0aW9uIGNsaWNrc1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5wYWdlQ29tcG9uZW50cy5maW5kKHAgPT4gcC5uYW1lID09PSBwYWdlTmFtZSk7XG4gICAgaWYgKG5leHRQYWdlKSB7XG4gICAgICBuZXh0UGFnZS52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gICAgdGhpcy5mbHlvdXRPcGVuQ2hhbmdlLmVtaXQodGhpcy5pc09wZW4pO1xuICB9XG5cbiAgb25DbGlja091dHNpZGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmZseW91dE9wZW5DaGFuZ2UuZW1pdCh0aGlzLmlzT3Blbik7XG4gIH1cblxuICBwcml2YXRlIGluaXRQYWdlQ29tcG9uZW50cygpIHtcbiAgICBpZiAoIXRoaXMucGFnZUNvbXBvbmVudHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyByZWdpc3RlciBjbGljay1jYWxsYmFja3MgYW5kIG9wZW4gdGhlIGZpcnN0IGVsZW1lbnRcbiAgICB0aGlzLnBhZ2VDb21wb25lbnRzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgIHMub25OYXZpZ2F0ZUNhbGxiYWNrID0gcGFnZU5hbWUgPT4gdGhpcy5vbk5hdmlnYXRlKHBhZ2VOYW1lKTtcbiAgICAgIHMuaXNmaXJzdGVsZW1lbnQgPSBpID09PSAwO1xuICAgICAgcy52aXNpYmxlID0gaSA9PT0gMDtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ3ZS1tb2JpbGUtZmx5b3V0XCIgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgpXCIgZm5nQ2xpY2tPdXRzaWRlPlxuICA8YnV0dG9uIFtjbGFzcy5md2UtYnVyZ2VyLWJ1dHRvbl09XCIhaXNPcGVuXCIgW2NsYXNzLmZ3ZS1jbG9zZS1idXR0b25dPVwiaXNPcGVuXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+PC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJmd2UtbW9iaWxlLWZseW91dC1jb250YWluZXJcIiBbY2xhc3MuZndlLW9wZW5lZF09XCJpc09wZW5cIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|