@dereekb/dbx-web 9.23.7 → 9.23.8

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web/calendar",
3
- "version": "9.23.7",
3
+ "version": "9.23.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.2.0",
6
6
  "@angular/core": "^14.2.0",
@@ -8,7 +8,7 @@
8
8
  "rxjs": "^7.5.0",
9
9
  "@angular/material": "^14.2.0",
10
10
  "angular-calendar": "^0.30.1",
11
- "@dereekb/dbx-web": "9.23.7"
11
+ "@dereekb/dbx-web": "9.23.8"
12
12
  },
13
13
  "dependencies": {
14
14
  "tslib": "^2.3.0"
@@ -24,6 +24,7 @@ export class DbxNavbarComponent extends AbstractTransitionDirective {
24
24
  this.navAlign = 'center';
25
25
  this._icon = new BehaviorSubject(undefined);
26
26
  this._defaultIcon = new BehaviorSubject('menu');
27
+ this._defaultText = new BehaviorSubject(undefined);
27
28
  this._inputMode = new BehaviorSubject(undefined);
28
29
  this._breakpoint = new BehaviorSubject('large');
29
30
  this._anchors = new BehaviorSubject([]);
@@ -43,16 +44,16 @@ export class DbxNavbarComponent extends AbstractTransitionDirective {
43
44
  }), tapDetectChanges(this.cdRef), shareReplay(1));
44
45
  this.selectedAnchor$ = this.anchors$.pipe(map((x) => x.find((y) => y.selected)));
45
46
  this.hasNoAnchors$ = this.anchors$.pipe(map((x) => x.length === 0), distinctUntilChanged(), shareReplay(1));
46
- this.buttonDisplay$ = combineLatest([this._defaultIcon, this._icon, this.selectedAnchor$, this.mode$]).pipe(map(([defaultIcon, icon, selectedAmchor, mode]) => {
47
+ this.buttonDisplay$ = combineLatest([this._defaultIcon, this._icon, this._defaultText, this.selectedAnchor$, this.mode$]).pipe(map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {
47
48
  let content;
48
49
  if (icon) {
49
- content = { icon };
50
+ content = { icon, text: defaultText };
50
51
  }
51
- else if (selectedAmchor) {
52
- content = { icon: selectedAmchor.anchor.icon ?? this._defaultIcon.value, text: selectedAmchor.anchor.title };
52
+ else if (selectedAnchor) {
53
+ content = { icon: selectedAnchor.anchor.icon ?? defaultIcon, text: selectedAnchor.anchor.title };
53
54
  }
54
55
  else {
55
- content = { icon: this._defaultIcon.value ?? 'menu' };
56
+ content = { icon: defaultIcon ?? 'menu', text: defaultText };
56
57
  }
57
58
  if (mode === 'icon') {
58
59
  return { icon: content.icon };
@@ -65,6 +66,7 @@ export class DbxNavbarComponent extends AbstractTransitionDirective {
65
66
  ngOnDestroy() {
66
67
  this._icon.complete();
67
68
  this._defaultIcon.complete();
69
+ this._defaultText.complete();
68
70
  this._inputMode.complete();
69
71
  this._breakpoint.complete();
70
72
  this._anchors.complete();
@@ -76,6 +78,9 @@ export class DbxNavbarComponent extends AbstractTransitionDirective {
76
78
  set defaultIcon(defaultIcon) {
77
79
  this._defaultIcon.next(defaultIcon);
78
80
  }
81
+ set defaultText(defaultText) {
82
+ this._defaultText.next(defaultText);
83
+ }
79
84
  set anchors(anchors) {
80
85
  this._anchors.next(anchors ?? []);
81
86
  }
@@ -87,7 +92,7 @@ export class DbxNavbarComponent extends AbstractTransitionDirective {
87
92
  }
88
93
  }
89
94
  DbxNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxNavbarComponent, deps: [{ token: i1.DbxRouterTransitionService }, { token: i0.ChangeDetectorRef }, { token: i2.DbxScreenMediaService }, { token: i1.DbxRouterService }], target: i0.ɵɵFactoryTarget.Component });
90
- DbxNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxNavbarComponent, selector: "dbx-navbar", inputs: { navAlign: "navAlign", icon: "icon", defaultIcon: "defaultIcon", anchors: "anchors", mode: "mode", breakpoint: "breakpoint" }, host: { classAttribute: "dbx-navbar" }, usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <!-- Bar -->\n <nav *ngSwitchCase=\"'bar'\" mat-tab-nav-bar [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.DbxIconButtonComponent, selector: "dbx-icon-button" }, { kind: "component", type: i5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "directive", type: i5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
95
+ DbxNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxNavbarComponent, selector: "dbx-navbar", inputs: { navAlign: "navAlign", icon: "icon", defaultIcon: "defaultIcon", defaultText: "defaultText", anchors: "anchors", mode: "mode", breakpoint: "breakpoint" }, host: { classAttribute: "dbx-navbar" }, usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <!-- Bar -->\n <nav *ngSwitchCase=\"'bar'\" mat-tab-nav-bar [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.DbxIconButtonComponent, selector: "dbx-icon-button" }, { kind: "component", type: i5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "directive", type: i5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxNavbarComponent, decorators: [{
92
97
  type: Component,
93
98
  args: [{ selector: 'dbx-navbar', changeDetection: ChangeDetectionStrategy.OnPush, host: {
@@ -99,6 +104,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
99
104
  type: Input
100
105
  }], defaultIcon: [{
101
106
  type: Input
107
+ }], defaultText: [{
108
+ type: Input
102
109
  }], anchors: [{
103
110
  type: Input
104
111
  }], mode: [{
@@ -106,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
106
113
  }], breakpoint: [{
107
114
  type: Input
108
115
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvbGF5b3V0L25hdmJhci9uYXZiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL3JvdXRlci9sYXlvdXQvbmF2YmFyL25hdmJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWEsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUErQixnQkFBZ0IsRUFBRSwwQkFBMEIsRUFBRSwyQkFBMkIsRUFBRSxnQkFBZ0IsRUFBMkIsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7OztBQVd0TDs7R0FFRztBQVNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwyQkFBMkI7SUF5RWpFLFlBQVksMEJBQXNELEVBQVUsS0FBd0IsRUFBbUIsc0JBQTZDLEVBQW1CLGlCQUFtQztRQUN4TixLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUR3QyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUFtQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQW1CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUF2RTFOLGFBQVEsR0FBNEIsUUFBUSxDQUFDO1FBRXJDLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBZ0Is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QUEwQjtRQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFDVyxPQUFPLENBQUMsT0FBNkM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUNXLElBQUksQ0FBQyxJQUF1QjtRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFDVyxVQUFVLENBQUMsVUFBZ0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Z0hBN0dVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHlQQzNCL0IsaThCQW9CQTs0RkRPYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsWUFBWSxtQkFFTCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxZQUFZO3FCQUNwQjtvTkFJRCxRQUFRO3NCQURQLEtBQUs7Z0JBc0ZLLElBQUk7c0JBRGQsS0FBSztnQkFNSyxXQUFXO3NCQURyQixLQUFLO2dCQU1LLE9BQU87c0JBRGpCLEtBQUs7Z0JBTUssSUFBSTtzQkFEZCxLQUFLO2dCQU1LLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgc2hhcmVSZXBsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTY3JlZW5NZWRpYVdpZHRoVHlwZSB9IGZyb20gJy4vLi4vLi4vLi4vc2NyZWVuL3NjcmVlbic7XG5pbXBvcnQgeyBEYnhTY3JlZW5NZWRpYVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zY3JlZW4vc2NyZWVuLnNlcnZpY2UnO1xuaW1wb3J0IHsgYXBwbHlCZXN0Rml0LCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgSW5wdXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsaWNrYWJsZUFuY2hvckxpbmtTZWd1ZVJlZiwgRGJ4Um91dGVyU2VydmljZSwgRGJ4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UsIEFic3RyYWN0VHJhbnNpdGlvbkRpcmVjdGl2ZSwgdGFwRGV0ZWN0Q2hhbmdlcywgRGJ4QnV0dG9uRGlzcGxheUNvbnRlbnQgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBIb3Jpem9udGFsQ29ubmVjdGlvblBvcyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcblxuaW50ZXJmYWNlIE5hdkFuY2hvckxpbmsge1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgYW5jaG9yOiBDbGlja2FibGVBbmNob3JMaW5rU2VndWVSZWY7XG59XG5cbmV4cG9ydCB0eXBlIE5hdkJhckNvbnRlbnRBbGlnbiA9ICdjZW50ZXInIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcbmV4cG9ydCB0eXBlIE5hdmJhck1vZGUgPSAnYmFyJyB8ICdidXR0b24nIHwgJ2ljb24nO1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGEgbmF2YmFyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbmF2YmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkYngtbmF2YmFyJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIERieE5hdmJhckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0VHJhbnNpdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIG5hdkFsaWduOiBIb3Jpem9udGFsQ29ubmVjdGlvblBvcyA9ICdjZW50ZXInO1xuXG4gIHByaXZhdGUgX2ljb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPHN0cmluZz4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgX2RlZmF1bHRJY29uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxzdHJpbmc+PignbWVudScpO1xuXG4gIHByaXZhdGUgX2lucHV0TW9kZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8TmF2YmFyTW9kZT4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgX2JyZWFrcG9pbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjcmVlbk1lZGlhV2lkdGhUeXBlPignbGFyZ2UnKTtcbiAgcHJpdmF0ZSBfYW5jaG9ycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2xpY2thYmxlQW5jaG9yTGlua1NlZ3VlUmVmW10+KFtdKTtcblxuICByZWFkb25seSBpc0JyZWFrcG9pbnRBY3RpdmUkID0gdGhpcy5fZGJ4U2NyZWVuTWVkaWFTZXJ2aWNlLmlzQnJlYWtwb2ludEFjdGl2ZSh0aGlzLl9icmVha3BvaW50KTtcblxuICByZWFkb25seSBtb2RlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2lucHV0TW9kZSwgdGhpcy5pc0JyZWFrcG9pbnRBY3RpdmUkXSkucGlwZShcbiAgICBtYXAoKFtpbnB1dE1vZGUsIGJyZWFrcG9pbnRBY3RpdmVdKSA9PiB7XG4gICAgICByZXR1cm4gYnJlYWtwb2ludEFjdGl2ZSA/IGlucHV0TW9kZSA/PyAnYmFyJyA6ICdidXR0b24nO1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgdGFwRGV0ZWN0Q2hhbmdlcyh0aGlzLmNkUmVmKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFuY2hvcnMkOiBPYnNlcnZhYmxlPE5hdkFuY2hvckxpbmtbXT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9hbmNob3JzLCB0aGlzLmluaXRBbmRVcGRhdGVPblRyYW5zaXRpb25TdWNjZXNzJF0pLnBpcGUoXG4gICAgbWFwKChbYW5jaG9yc10pID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhbmNob3JzLm1hcCgoYW5jaG9yKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5fZGJ4Um91dGVyU2VydmljZS5pc0FjdGl2ZShhbmNob3IpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgYW5jaG9yXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGFwcGx5QmVzdEZpdChcbiAgICAgICAgcmVzdWx0cyxcbiAgICAgICAgKHgpID0+IHguc2VsZWN0ZWQsXG4gICAgICAgIChhLCBiKSA9PiB0aGlzLl9kYnhSb3V0ZXJTZXJ2aWNlLmNvbXBhcmVQcmVjaXNpb24oYS5hbmNob3IsIGIuYW5jaG9yKSxcbiAgICAgICAgKG5vbkJlc3RGaXQpID0+ICh7IC4uLm5vbkJlc3RGaXQsIHNlbGVjdGVkOiBmYWxzZSB9KVxuICAgICAgKTtcbiAgICB9KSxcbiAgICB0YXBEZXRlY3RDaGFuZ2VzKHRoaXMuY2RSZWYpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRBbmNob3IkOiBPYnNlcnZhYmxlPE1heWJlPE5hdkFuY2hvckxpbms+PiA9IHRoaXMuYW5jaG9ycyQucGlwZShtYXAoKHgpID0+IHguZmluZCgoeSkgPT4geS5zZWxlY3RlZCkpKTtcblxuICByZWFkb25seSBoYXNOb0FuY2hvcnMkID0gdGhpcy5hbmNob3JzJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5sZW5ndGggPT09IDApLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBidXR0b25EaXNwbGF5JDogT2JzZXJ2YWJsZTxEYnhCdXR0b25EaXNwbGF5Q29udGVudD4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9kZWZhdWx0SWNvbiwgdGhpcy5faWNvbiwgdGhpcy5zZWxlY3RlZEFuY2hvciQsIHRoaXMubW9kZSRdKS5waXBlKFxuICAgIG1hcCgoW2RlZmF1bHRJY29uLCBpY29uLCBzZWxlY3RlZEFtY2hvciwgbW9kZV0pID0+IHtcbiAgICAgIGxldCBjb250ZW50OiBEYnhCdXR0b25EaXNwbGF5Q29udGVudDtcblxuICAgICAgaWYgKGljb24pIHtcbiAgICAgICAgY29udGVudCA9IHsgaWNvbiB9O1xuICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZEFtY2hvcikge1xuICAgICAgICBjb250ZW50ID0geyBpY29uOiBzZWxlY3RlZEFtY2hvci5hbmNob3IuaWNvbiA/PyB0aGlzLl9kZWZhdWx0SWNvbi52YWx1ZSwgdGV4dDogc2VsZWN0ZWRBbWNob3IuYW5jaG9yLnRpdGxlIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZW50ID0geyBpY29uOiB0aGlzLl9kZWZhdWx0SWNvbi52YWx1ZSA/PyAnbWVudScgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgPT09ICdpY29uJykge1xuICAgICAgICByZXR1cm4geyBpY29uOiBjb250ZW50Lmljb24gfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IoZGJ4Um91dGVyVHJhbnNpdGlvblNlcnZpY2U6IERieFJvdXRlclRyYW5zaXRpb25TZXJ2aWNlLCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByZWFkb25seSBfZGJ4U2NyZWVuTWVkaWFTZXJ2aWNlOiBEYnhTY3JlZW5NZWRpYVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgX2RieFJvdXRlclNlcnZpY2U6IERieFJvdXRlclNlcnZpY2UpIHtcbiAgICBzdXBlcihkYnhSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pY29uLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZGVmYXVsdEljb24uY29tcGxldGUoKTtcbiAgICB0aGlzLl9pbnB1dE1vZGUuY29tcGxldGUoKTtcbiAgICB0aGlzLl9icmVha3BvaW50LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYW5jaG9ycy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWNvbihpY29uOiBNYXliZTxzdHJpbmc+KSB7XG4gICAgdGhpcy5faWNvbi5uZXh0KGljb24pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0SWNvbihkZWZhdWx0SWNvbjogTWF5YmU8c3RyaW5nPikge1xuICAgIHRoaXMuX2RlZmF1bHRJY29uLm5leHQoZGVmYXVsdEljb24pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhbmNob3JzKGFuY2hvcnM6IE1heWJlPENsaWNrYWJsZUFuY2hvckxpbmtTZWd1ZVJlZltdPikge1xuICAgIHRoaXMuX2FuY2hvcnMubmV4dChhbmNob3JzID8/IFtdKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbW9kZShtb2RlOiBNYXliZTxOYXZiYXJNb2RlPikge1xuICAgIHRoaXMuX2lucHV0TW9kZS5uZXh0KG1vZGUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBicmVha3BvaW50KGJyZWFrcG9pbnQ6IFNjcmVlbk1lZGlhV2lkdGhUeXBlKSB7XG4gICAgdGhpcy5fYnJlYWtwb2ludC5uZXh0KGJyZWFrcG9pbnQpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlJCB8IGFzeW5jXCI+XG4gIDwhLS0gQnV0dG9uIC0tPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPGRieC1pY29uLWJ1dHRvbiBjbGFzcz1cIm5hdi1tZW51LWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJvcGVuIG5hdmlnYXRpb25cIiBbYnV0dG9uRGlzcGxheV09XCJidXR0b25EaXNwbGF5JCB8IGFzeW5jXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbZGlzYWJsZWRdPVwiaGFzTm9BbmNob3JzJCB8IGFzeW5jXCI+PC9kYngtaWNvbi1idXR0b24+XG4gICAgPG1hdC1tZW51ICNtZW51PlxuICAgICAgPGRieC1hbmNob3IgKm5nRm9yPVwibGV0IHggb2YgYW5jaG9ycyQgfCBhc3luY1wiIFthbmNob3JdPVwieC5hbmNob3JcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFtuZ0NsYXNzXT1cInguc2VsZWN0ZWQgPyAnYWN0aXZlJyA6ICcnXCI+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwieC5hbmNob3IuaWNvblwiPnt7IHguYW5jaG9yLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgIHt7IHguYW5jaG9yLnRpdGxlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kYngtYW5jaG9yPlxuICAgIDwvbWF0LW1lbnU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIEJhciAtLT5cbiAgPG5hdiAqbmdTd2l0Y2hDYXNlPVwiJ2JhcidcIiBtYXQtdGFiLW5hdi1iYXIgW2F0dHIubWF0LWFsaWduLXRhYnNdPVwibmF2QWxpZ25cIj5cbiAgICA8ZGJ4LWFuY2hvciAqbmdGb3I9XCJsZXQgeCBvZiBhbmNob3JzJCB8IGFzeW5jXCIgW2FuY2hvcl09XCJ4LmFuY2hvclwiPlxuICAgICAgPGEgbWF0LXRhYi1saW5rIFthY3RpdmVdPVwieC5zZWxlY3RlZFwiPnt7IHguYW5jaG9yLnRpdGxlIH19PC9hPlxuICAgIDwvZGJ4LWFuY2hvcj5cbiAgPC9uYXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvbGF5b3V0L25hdmJhci9uYXZiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL3JvdXRlci9sYXlvdXQvbmF2YmFyL25hdmJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWEsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUErQixnQkFBZ0IsRUFBRSwwQkFBMEIsRUFBRSwyQkFBMkIsRUFBRSxnQkFBZ0IsRUFBMkIsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7OztBQVd0TDs7R0FFRztBQVNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwyQkFBMkI7SUEwRWpFLFlBQVksMEJBQXNELEVBQVUsS0FBd0IsRUFBbUIsc0JBQTZDLEVBQW1CLGlCQUFtQztRQUN4TixLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUR3QyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUFtQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQW1CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUF4RTFOLGFBQVEsR0FBNEIsUUFBUSxDQUFDO1FBRXJDLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsU0FBUyxDQUFDLENBQUM7UUFDdEQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsTUFBTSxDQUFDLENBQUM7UUFDMUQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsU0FBUyxDQUFDLENBQUM7UUFFN0QsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFvQixTQUFTLENBQUMsQ0FBQztRQUMvRCxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUF1QixPQUFPLENBQUMsQ0FBQztRQUNqRSxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQWdDLEVBQUUsQ0FBQyxDQUFDO1FBRWpFLHdCQUFtQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkYsVUFBSyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlFLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsRUFBRTtZQUNwQyxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDMUQsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLEVBQUUsRUFDdEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUM1QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLGFBQVEsR0FBZ0MsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDMUgsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFekQsT0FBTztvQkFDTCxRQUFRO29CQUNSLE1BQU07aUJBQ1AsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxZQUFZLENBQ2pCLE9BQU8sRUFDUCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFDakIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQ3JFLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQ3JELENBQUM7UUFDSixDQUFDLENBQUMsRUFDRixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQzVCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sb0JBQWUsR0FBcUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlHLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFDMUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxtQkFBYyxHQUF3QyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckssR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUM3RCxJQUFJLE9BQWdDLENBQUM7WUFFckMsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUN2QztpQkFBTSxJQUFJLGNBQWMsRUFBRTtnQkFDekIsT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNsRztpQkFBTTtnQkFDTCxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDOUQ7WUFFRCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ25CLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQy9CO2lCQUFNO2dCQUNMLE9BQU8sT0FBTyxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFJRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFDVyxJQUFJLENBQUMsSUFBbUI7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ1csV0FBVyxDQUFDLFdBQTBCO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUNXLFdBQVcsQ0FBQyxXQUEwQjtRQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFDVyxPQUFPLENBQUMsT0FBNkM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUNXLElBQUksQ0FBQyxJQUF1QjtRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFDVyxVQUFVLENBQUMsVUFBZ0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Z0hBcEhVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHFSQzNCL0IsaThCQW9CQTs0RkRPYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsWUFBWSxtQkFFTCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxZQUFZO3FCQUNwQjtvTkFJRCxRQUFRO3NCQURQLEtBQUs7Z0JBd0ZLLElBQUk7c0JBRGQsS0FBSztnQkFNSyxXQUFXO3NCQURyQixLQUFLO2dCQU1LLFdBQVc7c0JBRHJCLEtBQUs7Z0JBTUssT0FBTztzQkFEakIsS0FBSztnQkFNSyxJQUFJO3NCQURkLEtBQUs7Z0JBTUssVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNjcmVlbk1lZGlhV2lkdGhUeXBlIH0gZnJvbSAnLi8uLi8uLi8uLi9zY3JlZW4vc2NyZWVuJztcbmltcG9ydCB7IERieFNjcmVlbk1lZGlhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NjcmVlbi9zY3JlZW4uc2VydmljZSc7XG5pbXBvcnQgeyBhcHBseUJlc3RGaXQsIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpY2thYmxlQW5jaG9yTGlua1NlZ3VlUmVmLCBEYnhSb3V0ZXJTZXJ2aWNlLCBEYnhSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSwgQWJzdHJhY3RUcmFuc2l0aW9uRGlyZWN0aXZlLCB0YXBEZXRlY3RDaGFuZ2VzLCBEYnhCdXR0b25EaXNwbGF5Q29udGVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IEhvcml6b250YWxDb25uZWN0aW9uUG9zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5pbnRlcmZhY2UgTmF2QW5jaG9yTGluayB7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBhbmNob3I6IENsaWNrYWJsZUFuY2hvckxpbmtTZWd1ZVJlZjtcbn1cblxuZXhwb3J0IHR5cGUgTmF2QmFyQ29udGVudEFsaWduID0gJ2NlbnRlcicgfCAnbGVmdCcgfCAncmlnaHQnO1xuZXhwb3J0IHR5cGUgTmF2YmFyTW9kZSA9ICdiYXInIHwgJ2J1dHRvbicgfCAnaWNvbic7XG5cbi8qKlxuICogQ29tcG9uZW50IHRoYXQgZGlzcGxheXMgYSBuYXZiYXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1uYXZiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2RieC1uYXZiYXInXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4TmF2YmFyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RUcmFuc2l0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgbmF2QWxpZ246IEhvcml6b250YWxDb25uZWN0aW9uUG9zID0gJ2NlbnRlcic7XG5cbiAgcHJpdmF0ZSBfaWNvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8c3RyaW5nPj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfZGVmYXVsdEljb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPHN0cmluZz4+KCdtZW51Jyk7XG4gIHByaXZhdGUgX2RlZmF1bHRUZXh0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgX2lucHV0TW9kZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8TmF2YmFyTW9kZT4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgX2JyZWFrcG9pbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjcmVlbk1lZGlhV2lkdGhUeXBlPignbGFyZ2UnKTtcbiAgcHJpdmF0ZSBfYW5jaG9ycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2xpY2thYmxlQW5jaG9yTGlua1NlZ3VlUmVmW10+KFtdKTtcblxuICByZWFkb25seSBpc0JyZWFrcG9pbnRBY3RpdmUkID0gdGhpcy5fZGJ4U2NyZWVuTWVkaWFTZXJ2aWNlLmlzQnJlYWtwb2ludEFjdGl2ZSh0aGlzLl9icmVha3BvaW50KTtcblxuICByZWFkb25seSBtb2RlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2lucHV0TW9kZSwgdGhpcy5pc0JyZWFrcG9pbnRBY3RpdmUkXSkucGlwZShcbiAgICBtYXAoKFtpbnB1dE1vZGUsIGJyZWFrcG9pbnRBY3RpdmVdKSA9PiB7XG4gICAgICByZXR1cm4gYnJlYWtwb2ludEFjdGl2ZSA/IGlucHV0TW9kZSA/PyAnYmFyJyA6ICdidXR0b24nO1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgdGFwRGV0ZWN0Q2hhbmdlcyh0aGlzLmNkUmVmKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFuY2hvcnMkOiBPYnNlcnZhYmxlPE5hdkFuY2hvckxpbmtbXT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9hbmNob3JzLCB0aGlzLmluaXRBbmRVcGRhdGVPblRyYW5zaXRpb25TdWNjZXNzJF0pLnBpcGUoXG4gICAgbWFwKChbYW5jaG9yc10pID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhbmNob3JzLm1hcCgoYW5jaG9yKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5fZGJ4Um91dGVyU2VydmljZS5pc0FjdGl2ZShhbmNob3IpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgYW5jaG9yXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGFwcGx5QmVzdEZpdChcbiAgICAgICAgcmVzdWx0cyxcbiAgICAgICAgKHgpID0+IHguc2VsZWN0ZWQsXG4gICAgICAgIChhLCBiKSA9PiB0aGlzLl9kYnhSb3V0ZXJTZXJ2aWNlLmNvbXBhcmVQcmVjaXNpb24oYS5hbmNob3IsIGIuYW5jaG9yKSxcbiAgICAgICAgKG5vbkJlc3RGaXQpID0+ICh7IC4uLm5vbkJlc3RGaXQsIHNlbGVjdGVkOiBmYWxzZSB9KVxuICAgICAgKTtcbiAgICB9KSxcbiAgICB0YXBEZXRlY3RDaGFuZ2VzKHRoaXMuY2RSZWYpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRBbmNob3IkOiBPYnNlcnZhYmxlPE1heWJlPE5hdkFuY2hvckxpbms+PiA9IHRoaXMuYW5jaG9ycyQucGlwZShtYXAoKHgpID0+IHguZmluZCgoeSkgPT4geS5zZWxlY3RlZCkpKTtcblxuICByZWFkb25seSBoYXNOb0FuY2hvcnMkID0gdGhpcy5hbmNob3JzJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5sZW5ndGggPT09IDApLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBidXR0b25EaXNwbGF5JDogT2JzZXJ2YWJsZTxEYnhCdXR0b25EaXNwbGF5Q29udGVudD4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9kZWZhdWx0SWNvbiwgdGhpcy5faWNvbiwgdGhpcy5fZGVmYXVsdFRleHQsIHRoaXMuc2VsZWN0ZWRBbmNob3IkLCB0aGlzLm1vZGUkXSkucGlwZShcbiAgICBtYXAoKFtkZWZhdWx0SWNvbiwgaWNvbiwgZGVmYXVsdFRleHQsIHNlbGVjdGVkQW5jaG9yLCBtb2RlXSkgPT4ge1xuICAgICAgbGV0IGNvbnRlbnQ6IERieEJ1dHRvbkRpc3BsYXlDb250ZW50O1xuXG4gICAgICBpZiAoaWNvbikge1xuICAgICAgICBjb250ZW50ID0geyBpY29uLCB0ZXh0OiBkZWZhdWx0VGV4dCB9O1xuICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZEFuY2hvcikge1xuICAgICAgICBjb250ZW50ID0geyBpY29uOiBzZWxlY3RlZEFuY2hvci5hbmNob3IuaWNvbiA/PyBkZWZhdWx0SWNvbiwgdGV4dDogc2VsZWN0ZWRBbmNob3IuYW5jaG9yLnRpdGxlIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZW50ID0geyBpY29uOiBkZWZhdWx0SWNvbiA/PyAnbWVudScsIHRleHQ6IGRlZmF1bHRUZXh0IH07XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2RlID09PSAnaWNvbicpIHtcbiAgICAgICAgcmV0dXJuIHsgaWNvbjogY29udGVudC5pY29uIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKGRieFJvdXRlclRyYW5zaXRpb25TZXJ2aWNlOiBEYnhSb3V0ZXJUcmFuc2l0aW9uU2VydmljZSwgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgX2RieFNjcmVlbk1lZGlhU2VydmljZTogRGJ4U2NyZWVuTWVkaWFTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IF9kYnhSb3V0ZXJTZXJ2aWNlOiBEYnhSb3V0ZXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoZGJ4Um91dGVyVHJhbnNpdGlvblNlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5faWNvbi5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2RlZmF1bHRJY29uLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZGVmYXVsdFRleHQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9pbnB1dE1vZGUuY29tcGxldGUoKTtcbiAgICB0aGlzLl9icmVha3BvaW50LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYW5jaG9ycy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWNvbihpY29uOiBNYXliZTxzdHJpbmc+KSB7XG4gICAgdGhpcy5faWNvbi5uZXh0KGljb24pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0SWNvbihkZWZhdWx0SWNvbjogTWF5YmU8c3RyaW5nPikge1xuICAgIHRoaXMuX2RlZmF1bHRJY29uLm5leHQoZGVmYXVsdEljb24pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0VGV4dChkZWZhdWx0VGV4dDogTWF5YmU8c3RyaW5nPikge1xuICAgIHRoaXMuX2RlZmF1bHRUZXh0Lm5leHQoZGVmYXVsdFRleHQpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhbmNob3JzKGFuY2hvcnM6IE1heWJlPENsaWNrYWJsZUFuY2hvckxpbmtTZWd1ZVJlZltdPikge1xuICAgIHRoaXMuX2FuY2hvcnMubmV4dChhbmNob3JzID8/IFtdKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbW9kZShtb2RlOiBNYXliZTxOYXZiYXJNb2RlPikge1xuICAgIHRoaXMuX2lucHV0TW9kZS5uZXh0KG1vZGUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBicmVha3BvaW50KGJyZWFrcG9pbnQ6IFNjcmVlbk1lZGlhV2lkdGhUeXBlKSB7XG4gICAgdGhpcy5fYnJlYWtwb2ludC5uZXh0KGJyZWFrcG9pbnQpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlJCB8IGFzeW5jXCI+XG4gIDwhLS0gQnV0dG9uIC0tPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPGRieC1pY29uLWJ1dHRvbiBjbGFzcz1cIm5hdi1tZW51LWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJvcGVuIG5hdmlnYXRpb25cIiBbYnV0dG9uRGlzcGxheV09XCJidXR0b25EaXNwbGF5JCB8IGFzeW5jXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbZGlzYWJsZWRdPVwiaGFzTm9BbmNob3JzJCB8IGFzeW5jXCI+PC9kYngtaWNvbi1idXR0b24+XG4gICAgPG1hdC1tZW51ICNtZW51PlxuICAgICAgPGRieC1hbmNob3IgKm5nRm9yPVwibGV0IHggb2YgYW5jaG9ycyQgfCBhc3luY1wiIFthbmNob3JdPVwieC5hbmNob3JcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFtuZ0NsYXNzXT1cInguc2VsZWN0ZWQgPyAnYWN0aXZlJyA6ICcnXCI+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwieC5hbmNob3IuaWNvblwiPnt7IHguYW5jaG9yLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgIHt7IHguYW5jaG9yLnRpdGxlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kYngtYW5jaG9yPlxuICAgIDwvbWF0LW1lbnU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIEJhciAtLT5cbiAgPG5hdiAqbmdTd2l0Y2hDYXNlPVwiJ2JhcidcIiBtYXQtdGFiLW5hdi1iYXIgW2F0dHIubWF0LWFsaWduLXRhYnNdPVwibmF2QWxpZ25cIj5cbiAgICA8ZGJ4LWFuY2hvciAqbmdGb3I9XCJsZXQgeCBvZiBhbmNob3JzJCB8IGFzeW5jXCIgW2FuY2hvcl09XCJ4LmFuY2hvclwiPlxuICAgICAgPGEgbWF0LXRhYi1saW5rIFthY3RpdmVdPVwieC5zZWxlY3RlZFwiPnt7IHguYW5jaG9yLnRpdGxlIH19PC9hPlxuICAgIDwvZGJ4LWFuY2hvcj5cbiAgPC9uYXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -2834,6 +2834,7 @@ class DbxNavbarComponent extends AbstractTransitionDirective {
2834
2834
  this.navAlign = 'center';
2835
2835
  this._icon = new BehaviorSubject(undefined);
2836
2836
  this._defaultIcon = new BehaviorSubject('menu');
2837
+ this._defaultText = new BehaviorSubject(undefined);
2837
2838
  this._inputMode = new BehaviorSubject(undefined);
2838
2839
  this._breakpoint = new BehaviorSubject('large');
2839
2840
  this._anchors = new BehaviorSubject([]);
@@ -2853,17 +2854,17 @@ class DbxNavbarComponent extends AbstractTransitionDirective {
2853
2854
  }), tapDetectChanges(this.cdRef), shareReplay(1));
2854
2855
  this.selectedAnchor$ = this.anchors$.pipe(map((x) => x.find((y) => y.selected)));
2855
2856
  this.hasNoAnchors$ = this.anchors$.pipe(map((x) => x.length === 0), distinctUntilChanged(), shareReplay(1));
2856
- this.buttonDisplay$ = combineLatest([this._defaultIcon, this._icon, this.selectedAnchor$, this.mode$]).pipe(map(([defaultIcon, icon, selectedAmchor, mode]) => {
2857
- var _a, _b;
2857
+ this.buttonDisplay$ = combineLatest([this._defaultIcon, this._icon, this._defaultText, this.selectedAnchor$, this.mode$]).pipe(map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {
2858
+ var _a;
2858
2859
  let content;
2859
2860
  if (icon) {
2860
- content = { icon };
2861
+ content = { icon, text: defaultText };
2861
2862
  }
2862
- else if (selectedAmchor) {
2863
- content = { icon: (_a = selectedAmchor.anchor.icon) !== null && _a !== void 0 ? _a : this._defaultIcon.value, text: selectedAmchor.anchor.title };
2863
+ else if (selectedAnchor) {
2864
+ content = { icon: (_a = selectedAnchor.anchor.icon) !== null && _a !== void 0 ? _a : defaultIcon, text: selectedAnchor.anchor.title };
2864
2865
  }
2865
2866
  else {
2866
- content = { icon: (_b = this._defaultIcon.value) !== null && _b !== void 0 ? _b : 'menu' };
2867
+ content = { icon: defaultIcon !== null && defaultIcon !== void 0 ? defaultIcon : 'menu', text: defaultText };
2867
2868
  }
2868
2869
  if (mode === 'icon') {
2869
2870
  return { icon: content.icon };
@@ -2876,6 +2877,7 @@ class DbxNavbarComponent extends AbstractTransitionDirective {
2876
2877
  ngOnDestroy() {
2877
2878
  this._icon.complete();
2878
2879
  this._defaultIcon.complete();
2880
+ this._defaultText.complete();
2879
2881
  this._inputMode.complete();
2880
2882
  this._breakpoint.complete();
2881
2883
  this._anchors.complete();
@@ -2887,6 +2889,9 @@ class DbxNavbarComponent extends AbstractTransitionDirective {
2887
2889
  set defaultIcon(defaultIcon) {
2888
2890
  this._defaultIcon.next(defaultIcon);
2889
2891
  }
2892
+ set defaultText(defaultText) {
2893
+ this._defaultText.next(defaultText);
2894
+ }
2890
2895
  set anchors(anchors) {
2891
2896
  this._anchors.next(anchors !== null && anchors !== void 0 ? anchors : []);
2892
2897
  }
@@ -2898,7 +2903,7 @@ class DbxNavbarComponent extends AbstractTransitionDirective {
2898
2903
  }
2899
2904
  }
2900
2905
  DbxNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxNavbarComponent, deps: [{ token: i1$2.DbxRouterTransitionService }, { token: i0.ChangeDetectorRef }, { token: DbxScreenMediaService }, { token: i1$2.DbxRouterService }], target: i0.ɵɵFactoryTarget.Component });
2901
- DbxNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxNavbarComponent, selector: "dbx-navbar", inputs: { navAlign: "navAlign", icon: "icon", defaultIcon: "defaultIcon", anchors: "anchors", mode: "mode", breakpoint: "breakpoint" }, host: { classAttribute: "dbx-navbar" }, usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <!-- Bar -->\n <nav *ngSwitchCase=\"'bar'\" mat-tab-nav-bar [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }, { kind: "component", type: i5$1.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "directive", type: i5$1.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2906
+ DbxNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxNavbarComponent, selector: "dbx-navbar", inputs: { navAlign: "navAlign", icon: "icon", defaultIcon: "defaultIcon", defaultText: "defaultText", anchors: "anchors", mode: "mode", breakpoint: "breakpoint" }, host: { classAttribute: "dbx-navbar" }, usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <!-- Bar -->\n <nav *ngSwitchCase=\"'bar'\" mat-tab-nav-bar [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }, { kind: "component", type: i5$1.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "directive", type: i5$1.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2902
2907
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxNavbarComponent, decorators: [{
2903
2908
  type: Component,
2904
2909
  args: [{ selector: 'dbx-navbar', changeDetection: ChangeDetectionStrategy.OnPush, host: {
@@ -2910,6 +2915,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2910
2915
  type: Input
2911
2916
  }], defaultIcon: [{
2912
2917
  type: Input
2918
+ }], defaultText: [{
2919
+ type: Input
2913
2920
  }], anchors: [{
2914
2921
  type: Input
2915
2922
  }], mode: [{