@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.
@@ -1,27 +1,38 @@
1
- import { Component, Input } from '@angular/core';
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/common";
4
- import * as i2 from "@angular/router";
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-content></ng-content>\n </div>\n <i *ngIf=\"pageLink\" class=\"fwe-icon fwe-icon-arrows-right-2\"></i>\n</a>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
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-content></ng-content>\n </div>\n <i *ngIf=\"pageLink\" class=\"fwe-icon fwe-icon-arrows-right-2\"></i>\n</a>\n" }]
22
- }], propDecorators: { icon: [{
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LWl0ZW0vbW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LWl0ZW0vbW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTWpELE1BQU0sT0FBTyx5QkFBeUI7SUFKdEM7UUFLVyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0FTNUI7SUFMQyxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7O3NIQWJVLHlCQUF5QjswR0FBekIseUJBQXlCLDhHQ050Qyx5V0FPQTsyRkREYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQUl6QixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm5nLW1vYmlsZS1mbHlvdXQtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2JpbGUtZmx5b3V0LWl0ZW0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZUZseW91dEl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBwYWdlTGluazogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGxhc3RFbGVtZW50ID0gZmFsc2U7XG5cbiAgcHVibGljIG9uTmF2aWdhdGVDYWxsYmFjazogKChwYWdlTmFtZTogc3RyaW5nKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLm9uTmF2aWdhdGVDYWxsYmFjaykge1xuICAgICAgdGhpcy5vbk5hdmlnYXRlQ2FsbGJhY2sodGhpcy5wYWdlTGluayk7XG4gICAgfVxuICB9XG59XG4iLCI8YSBjbGFzcz1cImZ3ZS1tb2JpbGUtZmx5b3V0LWl0ZW1cIiBbY2xhc3MuZndlLWJiXT1cIiFsYXN0RWxlbWVudFwiIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgPGkgKm5nSWY9XCJpY29uXCIgW2NsYXNzXT1cIidmd2UtbXIteHMgZndlLWljb24gZndlLWljb24tJyArIGljb25cIj48L2k+XG4gIDxkaXYgY2xhc3M9XCJmd2UtZmxleC1ncm93LTFcIiByb3V0ZXJMaW5rQWN0aXZlPVwiZndlLWNvbG9yLWhlcm9cIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8aSAqbmdJZj1cInBhZ2VMaW5rXCIgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1hcnJvd3MtcmlnaHQtMlwiPjwvaT5cbjwvYT5cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LWl0ZW0vbW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LWl0ZW0vbW9iaWxlLWZseW91dC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUM5RCxzREFBc0Q7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQU1uRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQStCLEdBQXFCO1FBQXJCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBTjNDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQUkwQixDQUFDO0lBRXhELFdBQVcsQ0FBQyxDQUFnQjtRQUMxQixtRUFBbUU7SUFDckUsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQzs7c0hBakJVLHlCQUF5QjswR0FBekIseUJBQXlCLCtKQ1R0QyxzdkJBa0JBOzJGRFRhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7OzBCQVVyQixRQUFROzRDQU5aLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tZW1wdHktbGlmZWN5Y2xlLW1ldGhvZCAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm5nLW1vYmlsZS1mbHlvdXQtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2JpbGUtZmx5b3V0LWl0ZW0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZUZseW91dEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGFnZUxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsYXN0RWxlbWVudCA9IGZhbHNlO1xuXG4gIG9uTmF2aWdhdGVDYWxsYmFjazogKChwYWdlTmFtZTogc3RyaW5nKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgcmxhOiBSb3V0ZXJMaW5rQWN0aXZlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBsaWZlY3ljbGUgaG9vayBpcyBjYWxsZWQgYnkgcGFyZW50IGNvbXBvbmVudCBzbyBkbyBub3QgcmVtb3ZlIGl0XG4gIH1cblxuICBvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLm9uTmF2aWdhdGVDYWxsYmFjaykge1xuICAgICAgdGhpcy5vbk5hdmlnYXRlQ2FsbGJhY2sodGhpcy5wYWdlTGluayk7XG4gICAgfVxuICB9XG59XG4iLCI8YSBjbGFzcz1cImZ3ZS1tb2JpbGUtZmx5b3V0LWl0ZW1cIiBbY2xhc3MuZndlLWJiXT1cIiFsYXN0RWxlbWVudFwiIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgPGkgKm5nSWY9XCJpY29uXCIgW2NsYXNzXT1cIidmd2UtbXIteHMgZndlLWljb24gZndlLWljb24tJyArIGljb25cIj48L2k+XG4gIDxkaXYgKm5nSWY9XCIhcmxhXCIgY2xhc3M9XCJmd2UtZmxleC1ncm93LTFcIiByb3V0ZXJMaW5rQWN0aXZlPVwiZndlLWNvbG9yLWhlcm9cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cInJsYT8ucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxuICAgIGNsYXNzPVwiZndlLWZsZXgtZ3Jvdy0xXCJcbiAgICByb3V0ZXJMaW5rQWN0aXZlPVwiZndlLWNvbG9yLWhlcm9cIlxuICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJybGEucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8aSAqbmdJZj1cInBhZ2VMaW5rXCIgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1hcnJvd3MtcmlnaHQtMlwiPjwvaT5cbjwvYT5cbjxuZy10ZW1wbGF0ZSAjaXRlbUNvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -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
- if (!this.itemComponents) {
13
- return;
14
- }
15
- // register click-callbacks
16
- this.itemComponents.forEach(s => {
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
- if (this.itemComponents.last) {
20
- this.itemComponents.last.lastElement = true;
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>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"] }] });
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>Back</div>\n </div>\n <div class=\"fwe-mobile-flyout-item-container\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZseW91dC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LXBhZ2UvbW9iaWxlLWZseW91dC1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbW9iaWxlLWZseW91dC9tb2JpbGUtZmx5b3V0LXBhZ2UvbW9iaWxlLWZseW91dC1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7QUFNL0YsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQU9XLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFcEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsWUFBTyxHQUFHLEtBQUssQ0FBQztLQTBCeEI7SUF2QkMsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUVELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixDQUFDLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFnQjtRQUN6QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7O3NIQS9CVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix1SEFDbkIseUJBQXlCLDZCQ1I1QywwU0FTQTsyRkRGYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQUlVLGNBQWM7c0JBQXpELGVBQWU7dUJBQUMseUJBQXlCO2dCQUVqQyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9iaWxlRmx5b3V0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL21vYmlsZS1mbHlvdXQtaXRlbS9tb2JpbGUtZmx5b3V0LWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm5nLW1vYmlsZS1mbHlvdXQtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2JpbGUtZmx5b3V0LXBhZ2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZUZseW91dFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgQENvbnRlbnRDaGlsZHJlbihNb2JpbGVGbHlvdXRJdGVtQ29tcG9uZW50KSBpdGVtQ29tcG9uZW50cyE6IFF1ZXJ5TGlzdDxNb2JpbGVGbHlvdXRJdGVtQ29tcG9uZW50PjtcblxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgaXNmaXJzdGVsZW1lbnQgPSBmYWxzZTtcbiAgcHVibGljIHZpc2libGUgPSBmYWxzZTtcbiAgcHVibGljIG9uTmF2aWdhdGVDYWxsYmFjazogKChwYWdlTmFtZTogc3RyaW5nKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLml0ZW1Db21wb25lbnRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gcmVnaXN0ZXIgY2xpY2stY2FsbGJhY2tzXG4gICAgdGhpcy5pdGVtQ29tcG9uZW50cy5mb3JFYWNoKHMgPT4ge1xuICAgICAgcy5vbk5hdmlnYXRlQ2FsbGJhY2sgPSBwYWdlTmFtZSA9PiB0aGlzLm9uTmF2aWdhdGUocGFnZU5hbWUpO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLml0ZW1Db21wb25lbnRzLmxhc3QpIHtcbiAgICAgIHRoaXMuaXRlbUNvbXBvbmVudHMubGFzdC5sYXN0RWxlbWVudCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25OYXZpZ2F0ZShwYWdlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMub25OYXZpZ2F0ZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLm9uTmF2aWdhdGVDYWxsYmFjayhwYWdlTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgb25CYWNrKCkge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZndlLW1vYmlsZS1mbHlvdXQtcGFnZVwiIFtjbGFzcy5md2Utb3BlbmVkXT1cInZpc2libGVcIj5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1wYWdlLWJhY2tcIiAqbmdJZj1cIiFpc2ZpcnN0ZWxlbWVudFwiIChjbGljayk9XCJvbkJhY2soKVwiPlxuICAgIDxpPjwvaT5cbiAgICA8ZGl2PkJhY2s8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmd2UtbW9iaWxlLWZseW91dC1pdGVtLWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
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
- if (!this.pageComponents) {
11
- return;
12
- }
13
- // register click-callbacks and open the first element
14
- this.pageComponents.forEach((s, i) => {
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)=\"isOpen = false\" fngClickOutside>\n <button [class.fwe-burger-button]=\"!isOpen\" [class.fwe-close-button]=\"isOpen\" (click)=\"isOpen = !isOpen\"></button>\n\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"] }] });
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)=\"isOpen = false\" fngClickOutside>\n <button [class.fwe-burger-button]=\"!isOpen\" [class.fwe-close-button]=\"isOpen\" (click)=\"isOpen = !isOpen\"></button>\n\n <div class=\"fwe-mobile-flyout-container\" [class.fwe-opened]=\"isOpen\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
37
- }], propDecorators: { pageComponents: [{
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZseW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21vYmlsZS1mbHlvdXQvbW9iaWxlLWZseW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21vYmlsZS1mbHlvdXQvbW9iaWxlLWZseW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7QUFNOUYsTUFBTSxPQUFPLHFCQUFxQjtJQUpsQztRQU9FLFdBQU0sR0FBRyxLQUFLLENBQUM7S0EyQmhCO0lBekJDLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFFRCxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsQ0FBQyxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFnQjtRQUN6QixnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ3JCO1FBRUQsZ0NBQWdDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNwRSxJQUFJLFFBQVEsRUFBRTtZQUNaLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7a0hBN0JVLHFCQUFxQjtzR0FBckIscUJBQXFCLHdGQUNmLHlCQUF5Qiw2QkNSNUMsbVZBT0E7MkZEQWEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLG1CQUFtQjs4QkFJZSxjQUFjO3NCQUF6RCxlQUFlO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vYmlsZUZseW91dFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL21vYmlsZS1mbHlvdXQtcGFnZS9tb2JpbGUtZmx5b3V0LXBhZ2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm5nLW1vYmlsZS1mbHlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9iaWxlLWZseW91dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTW9iaWxlRmx5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oTW9iaWxlRmx5b3V0UGFnZUNvbXBvbmVudCkgcGFnZUNvbXBvbmVudHMhOiBRdWVyeUxpc3Q8TW9iaWxlRmx5b3V0UGFnZUNvbXBvbmVudD47XG5cbiAgaXNPcGVuID0gZmFsc2U7XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdlQ29tcG9uZW50cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHJlZ2lzdGVyIGNsaWNrLWNhbGxiYWNrcyBhbmQgb3BlbiB0aGUgZmlyc3QgZWxlbWVudFxuICAgIHRoaXMucGFnZUNvbXBvbmVudHMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgcy5vbk5hdmlnYXRlQ2FsbGJhY2sgPSBwYWdlTmFtZSA9PiB0aGlzLm9uTmF2aWdhdGUocGFnZU5hbWUpO1xuICAgICAgcy5pc2ZpcnN0ZWxlbWVudCA9IGkgPT09IDA7XG4gICAgICBzLnZpc2libGUgPSBpID09PSAwO1xuICAgIH0pO1xuICB9XG5cbiAgb25OYXZpZ2F0ZShwYWdlTmFtZTogc3RyaW5nKSB7XG4gICAgLy8gaGFuZGxlIGNsaWNrcyBvbiByb3V0ZXIgbGlua3NcbiAgICBpZiAoIXBhZ2VOYW1lKSB7XG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZSBwYWdlLW5hdmlnYXRpb24gY2xpY2tzXG4gICAgY29uc3QgbmV4dFBhZ2UgPSB0aGlzLnBhZ2VDb21wb25lbnRzLmZpbmQocCA9PiBwLm5hbWUgPT09IHBhZ2VOYW1lKTtcbiAgICBpZiAobmV4dFBhZ2UpIHtcbiAgICAgIG5leHRQYWdlLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ3ZS1tb2JpbGUtZmx5b3V0XCIgKGNsaWNrT3V0c2lkZSk9XCJpc09wZW4gPSBmYWxzZVwiIGZuZ0NsaWNrT3V0c2lkZT5cbiAgPGJ1dHRvbiBbY2xhc3MuZndlLWJ1cmdlci1idXR0b25dPVwiIWlzT3BlblwiIFtjbGFzcy5md2UtY2xvc2UtYnV0dG9uXT1cImlzT3BlblwiIChjbGljayk9XCJpc09wZW4gPSAhaXNPcGVuXCI+PC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1tb2JpbGUtZmx5b3V0LWNvbnRhaW5lclwiIFtjbGFzcy5md2Utb3BlbmVkXT1cImlzT3BlblwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWZseW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21vYmlsZS1mbHlvdXQvbW9iaWxlLWZseW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21vYmlsZS1mbHlvdXQvbW9iaWxlLWZseW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7OztBQU05RixNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS1kscUJBQWdCLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVQLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQXFEcEQ7SUFuREMsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLHFFQUFxRTtRQUNyRSxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZ0I7UUFDekIsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUVELGdDQUFnQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDcEUsSUFBSSxRQUFRLEVBQUU7WUFDWixRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUVELHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdELENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEF6RFUscUJBQXFCO3NHQUFyQixxQkFBcUIsMklBRWYseUJBQXlCLDZCQ1o1QywyVUFNQTsyRkRJYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQUluQixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ3FDLGNBQWM7c0JBQXpELGVBQWU7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3QsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNb2JpbGVGbHlvdXRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9tb2JpbGUtZmx5b3V0LXBhZ2UvbW9iaWxlLWZseW91dC1wYWdlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZuZy1tb2JpbGUtZmx5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vYmlsZS1mbHlvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZUZseW91dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBmbHlvdXRPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBDb250ZW50Q2hpbGRyZW4oTW9iaWxlRmx5b3V0UGFnZUNvbXBvbmVudCkgcGFnZUNvbXBvbmVudHMhOiBRdWVyeUxpc3Q8TW9iaWxlRmx5b3V0UGFnZUNvbXBvbmVudD47XG4gIGlzT3BlbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgY29tcGxldGU6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRQYWdlQ29tcG9uZW50cygpO1xuXG4gICAgLy8gaWYgd2UgaGF2ZSBwYWdlIGNvbXBvbmVudHMgdGhhdCBhcmUgYWRkZWQgZHluYW1pY2FsbHkgKGUuZy4gKm5nSWYpXG4gICAgLy8gd2UgbmVlZCB0byBjYWxsIGluaXQgYWdhaW4gdG8gaGF2ZSBhbGwgbmF2aWdhdGUgY2FsbGJhY2tzIGRlZmluZWRcbiAgICB0aGlzLnBhZ2VDb21wb25lbnRzLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wbGV0ZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmluaXRQYWdlQ29tcG9uZW50cygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb21wbGV0ZS5uZXh0KHRydWUpO1xuICAgIHRoaXMuY29tcGxldGUudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uTmF2aWdhdGUocGFnZU5hbWU6IHN0cmluZykge1xuICAgIC8vIGhhbmRsZSBjbGlja3Mgb24gcm91dGVyIGxpbmtzXG4gICAgaWYgKCFwYWdlTmFtZSkge1xuICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuZmx5b3V0T3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgcGFnZS1uYXZpZ2F0aW9uIGNsaWNrc1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5wYWdlQ29tcG9uZW50cy5maW5kKHAgPT4gcC5uYW1lID09PSBwYWdlTmFtZSk7XG4gICAgaWYgKG5leHRQYWdlKSB7XG4gICAgICBuZXh0UGFnZS52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gICAgdGhpcy5mbHlvdXRPcGVuQ2hhbmdlLmVtaXQodGhpcy5pc09wZW4pO1xuICB9XG5cbiAgb25DbGlja091dHNpZGUoKSB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmZseW91dE9wZW5DaGFuZ2UuZW1pdCh0aGlzLmlzT3Blbik7XG4gIH1cblxuICBwcml2YXRlIGluaXRQYWdlQ29tcG9uZW50cygpIHtcbiAgICBpZiAoIXRoaXMucGFnZUNvbXBvbmVudHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyByZWdpc3RlciBjbGljay1jYWxsYmFja3MgYW5kIG9wZW4gdGhlIGZpcnN0IGVsZW1lbnRcbiAgICB0aGlzLnBhZ2VDb21wb25lbnRzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgIHMub25OYXZpZ2F0ZUNhbGxiYWNrID0gcGFnZU5hbWUgPT4gdGhpcy5vbk5hdmlnYXRlKHBhZ2VOYW1lKTtcbiAgICAgIHMuaXNmaXJzdGVsZW1lbnQgPSBpID09PSAwO1xuICAgICAgcy52aXNpYmxlID0gaSA9PT0gMDtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZ3ZS1tb2JpbGUtZmx5b3V0XCIgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgpXCIgZm5nQ2xpY2tPdXRzaWRlPlxuICA8YnV0dG9uIFtjbGFzcy5md2UtYnVyZ2VyLWJ1dHRvbl09XCIhaXNPcGVuXCIgW2NsYXNzLmZ3ZS1jbG9zZS1idXR0b25dPVwiaXNPcGVuXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+PC9idXR0b24+XG4gIDxkaXYgY2xhc3M9XCJmd2UtbW9iaWxlLWZseW91dC1jb250YWluZXJcIiBbY2xhc3MuZndlLW9wZW5lZF09XCJpc09wZW5cIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=