@theseam/ui-common 0.4.12-beta.0 → 0.4.13
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/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
- package/datatable/datatable/datatable.component.d.ts +1 -10
- package/datatable/services/columns-manager.service.d.ts +0 -7
- package/datatable/utils/create-action-menu-column.d.ts +1 -1
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2020/datatable/datatable/datatable.component.mjs +4 -20
- package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
- package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
- package/esm2020/datatable/services/columns-manager.service.mjs +2 -27
- package/esm2020/datatable/utils/create-action-menu-column.mjs +3 -4
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
- package/esm2020/framework/base-layout/base-layout.component.mjs +4 -14
- package/esm2020/framework/base-layout/base-layout.module.mjs +1 -6
- package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +5 -21
- package/esm2020/framework/base-layout/index.mjs +1 -2
- package/esm2020/framework/public-api.mjs +1 -2
- package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +1 -1
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +67 -28
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -12
- package/esm2020/framework/side-nav/side-nav.component.mjs +38 -116
- package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
- package/esm2020/framework/side-nav/side-nav.module.mjs +39 -9
- package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
- package/esm2020/framework/top-bar/index.mjs +1 -3
- package/esm2020/framework/top-bar/top-bar-item.directive.mjs +4 -10
- package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +4 -6
- package/esm2020/framework/top-bar/top-bar.component.mjs +11 -55
- package/esm2020/framework/top-bar/top-bar.module.mjs +5 -15
- package/esm2020/layout/layout.service.mjs +2 -12
- package/esm2020/menu/menu-item.component.mjs +3 -3
- package/esm2020/menu/menu-toggle.directive.mjs +2 -7
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +2 -4
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +10 -56
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +156 -905
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +2 -11
- package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +3 -8
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +1 -3
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +10 -56
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +156 -907
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +2 -11
- package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +3 -8
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +1 -3
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/framework/base-layout/base-layout.component.d.ts +2 -4
- package/framework/base-layout/base-layout.component.scss +10 -18
- package/framework/base-layout/base-layout.module.d.ts +10 -11
- package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +3 -8
- package/framework/base-layout/index.d.ts +0 -1
- package/framework/base-layout/styles/_variables.scss +0 -21
- package/framework/public-api.d.ts +0 -1
- package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +14 -7
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -7
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +3 -5
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +6 -3
- package/framework/side-nav/side-nav.component.d.ts +1 -13
- package/framework/side-nav/side-nav.component.scss +1 -0
- package/framework/side-nav/side-nav.models.d.ts +1 -7
- package/framework/side-nav/side-nav.module.d.ts +9 -1
- package/framework/side-nav/styles/_themes/light/_variables.scss +14 -24
- package/framework/side-nav/styles/_themes/primary/_variables.scss +0 -8
- package/framework/top-bar/index.d.ts +0 -2
- package/framework/top-bar/top-bar-item.directive.d.ts +1 -4
- package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +2 -5
- package/framework/top-bar/top-bar.component.d.ts +3 -25
- package/framework/top-bar/top-bar.component.scss +2 -7
- package/framework/top-bar/top-bar.module.d.ts +8 -10
- package/layout/layout.service.d.ts +1 -9
- package/menu/menu-toggle.directive.d.ts +1 -2
- package/package.json +2 -2
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +14 -57
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +5 -33
- package/datatable/models/action-item-column-position.d.ts +0 -13
- package/esm2020/datatable/models/action-item-column-position.mjs +0 -5
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +0 -16
- package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +0 -55
- package/esm2020/framework/nav/index.mjs +0 -6
- package/esm2020/framework/nav/nav-item/nav-item.component.mjs +0 -227
- package/esm2020/framework/nav/nav-utils.mjs +0 -107
- package/esm2020/framework/nav/nav.models.mjs +0 -2
- package/esm2020/framework/nav/nav.module.mjs +0 -67
- package/esm2020/framework/nav/nav.service.mjs +0 -204
- package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +0 -16
- package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +0 -16
- package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +0 -9
- package/framework/nav/_nav-theme.scss +0 -4
- package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +0 -25
- package/framework/nav/horizontal-nav/horizontal-nav.component.scss +0 -50
- package/framework/nav/index.d.ts +0 -5
- package/framework/nav/nav-item/nav-item.component.d.ts +0 -74
- package/framework/nav/nav-item/nav-item.component.scss +0 -203
- package/framework/nav/nav-utils.d.ts +0 -20
- package/framework/nav/nav.models.d.ts +0 -77
- package/framework/nav/nav.module.d.ts +0 -17
- package/framework/nav/nav.service.d.ts +0 -27
- package/framework/nav/styles/_themes/light/_variables.scss +0 -56
- package/framework/nav/styles/_themes/primary/_variables.scss +0 -56
- package/framework/nav/styles/_utilities.scss +0 -3
- package/framework/nav/styles/_variables.scss +0 -2
- package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +0 -8
- package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +0 -8
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, InjectionToken, Optional, Inject, HostBinding, Input, HostListener, forwardRef, isDevMode, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, NgModule, ViewChild, EventEmitter, Output, Injectable, Injector, ViewChildren, Self, ContentChildren } from '@angular/core';
|
|
3
|
-
import { tap, map, startWith, switchMap, shareReplay, mapTo, take, auditTime, debounceTime, takeUntil, distinctUntilChanged, finalize, filter } from 'rxjs/operators';
|
|
2
|
+
import { Directive, InjectionToken, Optional, Inject, HostBinding, Input, HostListener, forwardRef, isDevMode, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, NgModule, ViewChild, EventEmitter, Output, Injectable, Injector, ViewChildren, SkipSelf, Host, Self, ContentChildren } from '@angular/core';
|
|
4
3
|
import * as i3 from '@angular/cdk/portal';
|
|
5
4
|
import { TemplatePortal, PortalModule, BasePortalOutlet, ComponentPortal } from '@angular/cdk/portal';
|
|
6
|
-
import { BehaviorSubject, isObservable, from, Subject, of, combineLatest,
|
|
5
|
+
import { BehaviorSubject, isObservable, from, Subject, of, combineLatest, defer, Observable } from 'rxjs';
|
|
7
6
|
import { faAngleDoubleRight, faAngleDoubleLeft, faLock, faUnlock, faAngleLeft, faBars, faAngleDown } from '@fortawesome/free-solid-svg-icons';
|
|
8
7
|
import * as i1 from '@theseam/ui-common/layout';
|
|
9
8
|
import { TheSeamLayoutModule } from '@theseam/ui-common/layout';
|
|
@@ -15,7 +14,8 @@ import * as i4$1 from '@theseam/ui-common/buttons';
|
|
|
15
14
|
import { TheSeamButtonsModule } from '@theseam/ui-common/buttons';
|
|
16
15
|
import * as i2$1 from '@theseam/ui-common/icon';
|
|
17
16
|
import { TheSeamIconModule } from '@theseam/ui-common/icon';
|
|
18
|
-
import {
|
|
17
|
+
import { map, startWith, switchMap, shareReplay, tap, mapTo, take, auditTime, debounceTime, takeUntil, distinctUntilChanged, finalize, filter } from 'rxjs/operators';
|
|
18
|
+
import { hasProperty, notNullOrUndefined, observeControlValue, observeControlStatus } from '@theseam/ui-common/utils';
|
|
19
19
|
import { __decorate } from 'tslib';
|
|
20
20
|
import { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
21
21
|
import * as i3$1 from '@angular/cdk/drag-drop';
|
|
@@ -25,16 +25,16 @@ import { THESEAM_WIDGET_DATA, THESEAM_WIDGET_ACCESSOR } from '@theseam/ui-common
|
|
|
25
25
|
import * as i1$1 from '@theseam/ui-common/dynamic-component-loader';
|
|
26
26
|
import * as i6 from '@theseam/ui-common/shared';
|
|
27
27
|
import { TheSeamSharedModule } from '@theseam/ui-common/shared';
|
|
28
|
+
import { trigger, state, style, transition, animate, group, query, animateChild, keyframes } from '@angular/animations';
|
|
28
29
|
import * as i1$2 from '@angular/router';
|
|
29
|
-
import {
|
|
30
|
+
import { NavigationEnd, RouterModule, NavigationStart } from '@angular/router';
|
|
30
31
|
import * as i4$2 from '@angular/cdk/a11y';
|
|
31
32
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
32
33
|
import * as i5 from '@ng-bootstrap/ng-bootstrap';
|
|
33
34
|
import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
|
|
34
|
-
import { trigger, state, style, transition, animate, group, query, animateChild, keyframes } from '@angular/animations';
|
|
35
35
|
import * as i2$2 from '@angular/flex-layout/extended';
|
|
36
36
|
import * as i3$2 from '@theseam/ui-common/menu';
|
|
37
|
-
import { TheSeamMenuModule
|
|
37
|
+
import { TheSeamMenuModule } from '@theseam/ui-common/menu';
|
|
38
38
|
import { faUserCircle } from '@fortawesome/free-regular-svg-icons';
|
|
39
39
|
import * as i1$3 from '@ajsf/core';
|
|
40
40
|
import { isArray, buildTitleMap, hasOwn, Framework, JsonSchemaFormModule, WidgetLibraryModule, JsonSchemaFormService, FrameworkLibraryService, WidgetLibraryService } from '@ajsf/core';
|
|
@@ -102,25 +102,15 @@ class BaseLayoutNavToggleDirective {
|
|
|
102
102
|
this.baseLayout.registeredNav.toggle();
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
constructor(
|
|
106
|
-
this._cdr = _cdr;
|
|
105
|
+
constructor(_baseLayout) {
|
|
107
106
|
this.type = 'button';
|
|
108
107
|
/** Screenreader label for the button. */
|
|
109
108
|
this.ariaLabel = 'Navigation toggle';
|
|
110
|
-
this._toggleClass = true;
|
|
111
|
-
this._expandedClass = false;
|
|
112
109
|
this.baseLayout = _baseLayout;
|
|
113
110
|
}
|
|
114
|
-
ngOnInit() {
|
|
115
|
-
var _a, _b;
|
|
116
|
-
(_b = (_a = this.baseLayout) === null || _a === void 0 ? void 0 : _a.registeredNav) === null || _b === void 0 ? void 0 : _b.expanded$.pipe(tap(exp => {
|
|
117
|
-
this._expandedClass = exp;
|
|
118
|
-
this._cdr.markForCheck();
|
|
119
|
-
})).subscribe();
|
|
120
|
-
}
|
|
121
111
|
}
|
|
122
|
-
BaseLayoutNavToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BaseLayoutNavToggleDirective, deps: [{ token:
|
|
123
|
-
BaseLayoutNavToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: BaseLayoutNavToggleDirective, selector: "button[seamBaseLayoutNavToggle]", inputs: { type: "type", ariaLabel: ["aria-label", "ariaLabel"] }, host: { listeners: { "click": "_onClick()" }, properties: { "attr.type": "this._attrType", "attr.aria-label": "this._attrAriaLabel"
|
|
112
|
+
BaseLayoutNavToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BaseLayoutNavToggleDirective, deps: [{ token: THESEAM_BASE_LAYOUT_REF, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
113
|
+
BaseLayoutNavToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: BaseLayoutNavToggleDirective, selector: "button[seamBaseLayoutNavToggle]", inputs: { type: "type", ariaLabel: ["aria-label", "ariaLabel"] }, host: { listeners: { "click": "_onClick()" }, properties: { "attr.type": "this._attrType", "attr.aria-label": "this._attrAriaLabel" } }, exportAs: ["seamBaseLayoutNavToggle"], ngImport: i0 });
|
|
124
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BaseLayoutNavToggleDirective, decorators: [{
|
|
125
115
|
type: Directive,
|
|
126
116
|
args: [{
|
|
@@ -128,7 +118,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
128
118
|
exportAs: 'seamBaseLayoutNavToggle'
|
|
129
119
|
}]
|
|
130
120
|
}], ctorParameters: function () {
|
|
131
|
-
return [{ type:
|
|
121
|
+
return [{ type: undefined, decorators: [{
|
|
132
122
|
type: Optional
|
|
133
123
|
}, {
|
|
134
124
|
type: Inject,
|
|
@@ -145,12 +135,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
145
135
|
}], ariaLabel: [{
|
|
146
136
|
type: Input,
|
|
147
137
|
args: ['aria-label']
|
|
148
|
-
}], _toggleClass: [{
|
|
149
|
-
type: HostBinding,
|
|
150
|
-
args: ['class.base-layout-nav-toggle']
|
|
151
|
-
}], _expandedClass: [{
|
|
152
|
-
type: HostBinding,
|
|
153
|
-
args: ['class.base-layout-nav-toggle--expanded']
|
|
154
138
|
}], _onClick: [{
|
|
155
139
|
type: HostListener,
|
|
156
140
|
args: ['click']
|
|
@@ -198,20 +182,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
198
182
|
}]
|
|
199
183
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
200
184
|
|
|
201
|
-
class BaseLayoutSideBarHeaderDirective {
|
|
202
|
-
constructor(_elementRef) {
|
|
203
|
-
this._elementRef = _elementRef;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
BaseLayoutSideBarHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BaseLayoutSideBarHeaderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
207
|
-
BaseLayoutSideBarHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: BaseLayoutSideBarHeaderDirective, selector: "[seamBaseLayoutSideBarHeader]", ngImport: i0 });
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BaseLayoutSideBarHeaderDirective, decorators: [{
|
|
209
|
-
type: Directive,
|
|
210
|
-
args: [{
|
|
211
|
-
selector: '[seamBaseLayoutSideBarHeader]'
|
|
212
|
-
}]
|
|
213
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
214
|
-
|
|
215
185
|
const THE_SEAM_BASE_LAYOUT = {
|
|
216
186
|
provide: THESEAM_BASE_LAYOUT_REF,
|
|
217
187
|
// tslint:disable-next-line:no-use-before-declare
|
|
@@ -227,7 +197,6 @@ class TheSeamBaseLayoutComponent {
|
|
|
227
197
|
this.faAngleDoubleRight = faAngleDoubleRight;
|
|
228
198
|
this.faAngleDoubleLeft = faAngleDoubleLeft;
|
|
229
199
|
this.overlayNav = false;
|
|
230
|
-
this.showSidebar = true;
|
|
231
200
|
this._hasSideBar = new BehaviorSubject(false);
|
|
232
201
|
this._registeredNav = new BehaviorSubject(undefined);
|
|
233
202
|
this.registeredNav$ = this._registeredNav.asObservable();
|
|
@@ -237,17 +206,12 @@ class TheSeamBaseLayoutComponent {
|
|
|
237
206
|
this.hasSideBar$ = this._hasSideBar.asObservable();
|
|
238
207
|
}
|
|
239
208
|
ngOnInit() {
|
|
240
|
-
if (this.mobileBreakpoint) {
|
|
241
|
-
this._layout.setMobileBreakpoint(this.mobileBreakpoint);
|
|
242
|
-
}
|
|
243
209
|
if (this._topBarTpl) {
|
|
244
210
|
this._topBarPortal = new TemplatePortal(this._topBarTpl, this._viewContainerRef);
|
|
245
211
|
}
|
|
246
212
|
if (this._sideBarTpl) {
|
|
247
213
|
this._sideBarPortal = new TemplatePortal(this._sideBarTpl, this._viewContainerRef);
|
|
248
|
-
|
|
249
|
-
this._hasSideBar.next(true);
|
|
250
|
-
}
|
|
214
|
+
this._hasSideBar.next(true);
|
|
251
215
|
}
|
|
252
216
|
if (this._contentTpl) {
|
|
253
217
|
this._contentPortal = new TemplatePortal(this._contentTpl, this._viewContainerRef);
|
|
@@ -303,16 +267,12 @@ class TheSeamBaseLayoutComponent {
|
|
|
303
267
|
}
|
|
304
268
|
}
|
|
305
269
|
TheSeamBaseLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamBaseLayoutComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TheSeamLayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
306
|
-
TheSeamBaseLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamBaseLayoutComponent, selector: "seam-base-layout", inputs: { overlayNav: "overlayNav"
|
|
270
|
+
TheSeamBaseLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamBaseLayoutComponent, selector: "seam-base-layout", inputs: { overlayNav: "overlayNav" }, providers: [THE_SEAM_BASE_LAYOUT], queries: [{ propertyName: "_topBarTpl", first: true, predicate: BaseLayoutTopBarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_sideBarTpl", first: true, predicate: BaseLayoutSideBarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentTpl", first: true, predicate: BaseLayoutContentDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentHeaderTpl", first: true, predicate: BaseLayoutContentHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentFooterTpl", first: true, predicate: BaseLayoutContentFooterDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"base-layout-side-bar-nav-content-mobile\" *ngIf=\"isMobile$ | async\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n</div>\n\n<div class=\"base-layout-top-bar-container\">\n <ng-template [cdkPortalOutlet]=\"_topBarPortal\"></ng-template>\n</div>\n<div class=\"base-layout-main-container\">\n <div *ngIf=\"hasSideBar$ | async\"\n class=\"base-layout-side-bar-container\">\n <div class=\"base-layout-side-bar-nav-content\" *ngIf=\"!(isMobile$ | async)\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n </div>\n </div>\n <div class=\"base-layout-content-container\">\n <div class=\"base-layout-content-container-header\">\n <!-- <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template> -->\n\n <div class=\"d-flex d-flex-row\">\n <div class=\"flex-grow-1\">\n <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template>\n </div>\n <div class=\"d-flex\">\n <ng-container *ngFor=\"let action of registeredActions$ | async; first as isFirst\">\n <div>\n <ng-container [ngTemplateOutlet]=\"$any(action)?.template\"></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n\n </div>\n <div class=\"base-layout-content-container-inner\" seamOverlayScrollbar>\n <ng-template [cdkPortalOutlet]=\"_contentPortal\"></ng-template>\n </div>\n <div class=\"base-layout-content-container-footer\">\n <ng-template [cdkPortalOutlet]=\"_contentFooterPortal\"></ng-template>\n </div>\n </div>\n</div>\n", styles: ["seam-base-layout{display:flex;flex-direction:column;height:100%;width:100%}seam-base-layout .base-layout-side-bar-nav-content-mobile{position:absolute;top:0;bottom:0;left:0;float:left;z-index:9999}seam-base-layout .base-layout-side-bar-container{flex:0 0 auto;display:flex;flex-direction:column;border-top:none;border-right:1px solid #dee2e6;border-bottom:none;border-left:none}seam-base-layout .base-layout-side-bar-container .base-layout-side-bar-nav-content{flex:1 1 0}seam-base-layout .base-layout-main-container{flex:1 1 100%;display:flex;flex-direction:row;transform:translateZ(0)}seam-base-layout .base-layout-top-bar-container{flex:0 0 auto;border-top:none;border-right:none;border-bottom:1px solid #dee2e6;border-left:none}seam-base-layout .base-layout-content-container{flex:1 1 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-content-container .base-layout-content-container-header{flex:0 0 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-inner{flex:1 1 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-footer{flex:0 0 auto}seam-base-layout .base-layout-content-container-header{margin:.25rem;padding:0;background:none;border-radius:0;overflow:hidden}seam-base-layout .btn-baselayout-action{margin:0 0 0 .25rem;color:#212529;background-color:#e9ecef;border-color:#e9ecef;padding:.5rem 1rem;font-size:1rem;line-height:1.5;border-radius:.25rem;border:none;color:#6c757d}seam-base-layout .btn-baselayout-action:hover{color:#212529;background-color:#d3d9df;border-color:#cbd3da}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#212529;background-color:#d3d9df;border-color:#cbd3da;box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action.disabled,seam-base-layout .btn-baselayout-action:disabled{color:#212529;background-color:#e9ecef;border-color:#e9ecef}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle{color:#212529;background-color:#d3d9df;border-color:#c4ccd4}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active:focus,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active:focus,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action:hover{color:#6c757d}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#6c757d}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i4.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
307
271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamBaseLayoutComponent, decorators: [{
|
|
308
272
|
type: Component,
|
|
309
|
-
args: [{ selector: 'seam-base-layout', providers: [THE_SEAM_BASE_LAYOUT], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"base-layout-side-bar-nav-content-mobile\" *ngIf=\"isMobile$ | async\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n</div>\n\n<div class=\"base-layout-top-bar-container\">\n <ng-template [cdkPortalOutlet]=\"_topBarPortal\"></ng-template>\n</div>\n<div class=\"base-layout-main-container\">\n <div *ngIf=\"hasSideBar$ | async\"\n class=\"base-layout-side-bar-container\">\n <div class=\"base-layout-side-bar-nav-content\" *ngIf=\"!(isMobile$ | async)\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n </div>\n </div>\n <div class=\"base-layout-content-container\">\n <div class=\"base-layout-content-container-header d-flex flex-row\">\n
|
|
273
|
+
args: [{ selector: 'seam-base-layout', providers: [THE_SEAM_BASE_LAYOUT], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"base-layout-side-bar-nav-content-mobile\" *ngIf=\"isMobile$ | async\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n</div>\n\n<div class=\"base-layout-top-bar-container\">\n <ng-template [cdkPortalOutlet]=\"_topBarPortal\"></ng-template>\n</div>\n<div class=\"base-layout-main-container\">\n <div *ngIf=\"hasSideBar$ | async\"\n class=\"base-layout-side-bar-container\">\n <div class=\"base-layout-side-bar-nav-content\" *ngIf=\"!(isMobile$ | async)\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n </div>\n </div>\n <div class=\"base-layout-content-container\">\n <div class=\"base-layout-content-container-header\">\n <!-- <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template> -->\n\n <div class=\"d-flex d-flex-row\">\n <div class=\"flex-grow-1\">\n <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template>\n </div>\n <div class=\"d-flex\">\n <ng-container *ngFor=\"let action of registeredActions$ | async; first as isFirst\">\n <div>\n <ng-container [ngTemplateOutlet]=\"$any(action)?.template\"></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n\n </div>\n <div class=\"base-layout-content-container-inner\" seamOverlayScrollbar>\n <ng-template [cdkPortalOutlet]=\"_contentPortal\"></ng-template>\n </div>\n <div class=\"base-layout-content-container-footer\">\n <ng-template [cdkPortalOutlet]=\"_contentFooterPortal\"></ng-template>\n </div>\n </div>\n</div>\n", styles: ["seam-base-layout{display:flex;flex-direction:column;height:100%;width:100%}seam-base-layout .base-layout-side-bar-nav-content-mobile{position:absolute;top:0;bottom:0;left:0;float:left;z-index:9999}seam-base-layout .base-layout-side-bar-container{flex:0 0 auto;display:flex;flex-direction:column;border-top:none;border-right:1px solid #dee2e6;border-bottom:none;border-left:none}seam-base-layout .base-layout-side-bar-container .base-layout-side-bar-nav-content{flex:1 1 0}seam-base-layout .base-layout-main-container{flex:1 1 100%;display:flex;flex-direction:row;transform:translateZ(0)}seam-base-layout .base-layout-top-bar-container{flex:0 0 auto;border-top:none;border-right:none;border-bottom:1px solid #dee2e6;border-left:none}seam-base-layout .base-layout-content-container{flex:1 1 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-content-container .base-layout-content-container-header{flex:0 0 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-inner{flex:1 1 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-footer{flex:0 0 auto}seam-base-layout .base-layout-content-container-header{margin:.25rem;padding:0;background:none;border-radius:0;overflow:hidden}seam-base-layout .btn-baselayout-action{margin:0 0 0 .25rem;color:#212529;background-color:#e9ecef;border-color:#e9ecef;padding:.5rem 1rem;font-size:1rem;line-height:1.5;border-radius:.25rem;border:none;color:#6c757d}seam-base-layout .btn-baselayout-action:hover{color:#212529;background-color:#d3d9df;border-color:#cbd3da}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#212529;background-color:#d3d9df;border-color:#cbd3da;box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action.disabled,seam-base-layout .btn-baselayout-action:disabled{color:#212529;background-color:#e9ecef;border-color:#e9ecef}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle{color:#212529;background-color:#d3d9df;border-color:#c4ccd4}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active:focus,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active:focus,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action:hover{color:#6c757d}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#6c757d}\n"] }]
|
|
310
274
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.TheSeamLayoutService }]; }, propDecorators: { overlayNav: [{
|
|
311
275
|
type: Input
|
|
312
|
-
}], mobileBreakpoint: [{
|
|
313
|
-
type: Input
|
|
314
|
-
}], showSidebar: [{
|
|
315
|
-
type: Input
|
|
316
276
|
}], _topBarTpl: [{
|
|
317
277
|
type: ContentChild,
|
|
318
278
|
args: [BaseLayoutTopBarDirective, { static: true, read: TemplateRef }]
|
|
@@ -337,7 +297,6 @@ TheSeamBaseLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
337
297
|
BaseLayoutContentDirective,
|
|
338
298
|
BaseLayoutSideBarDirective,
|
|
339
299
|
BaseLayoutSideBarFooterDirective,
|
|
340
|
-
BaseLayoutSideBarHeaderDirective,
|
|
341
300
|
BaseLayoutTopBarDirective,
|
|
342
301
|
BaseLayoutNavToggleDirective,
|
|
343
302
|
BaseLayoutContentHeaderDirective,
|
|
@@ -349,7 +308,6 @@ TheSeamBaseLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
|
|
|
349
308
|
BaseLayoutContentDirective,
|
|
350
309
|
BaseLayoutSideBarDirective,
|
|
351
310
|
BaseLayoutSideBarFooterDirective,
|
|
352
|
-
BaseLayoutSideBarHeaderDirective,
|
|
353
311
|
BaseLayoutTopBarDirective,
|
|
354
312
|
BaseLayoutNavToggleDirective,
|
|
355
313
|
BaseLayoutContentHeaderDirective,
|
|
@@ -367,7 +325,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
367
325
|
BaseLayoutContentDirective,
|
|
368
326
|
BaseLayoutSideBarDirective,
|
|
369
327
|
BaseLayoutSideBarFooterDirective,
|
|
370
|
-
BaseLayoutSideBarHeaderDirective,
|
|
371
328
|
BaseLayoutTopBarDirective,
|
|
372
329
|
BaseLayoutNavToggleDirective,
|
|
373
330
|
BaseLayoutContentHeaderDirective,
|
|
@@ -385,7 +342,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
385
342
|
BaseLayoutContentDirective,
|
|
386
343
|
BaseLayoutSideBarDirective,
|
|
387
344
|
BaseLayoutSideBarFooterDirective,
|
|
388
|
-
BaseLayoutSideBarHeaderDirective,
|
|
389
345
|
BaseLayoutTopBarDirective,
|
|
390
346
|
BaseLayoutNavToggleDirective,
|
|
391
347
|
BaseLayoutContentHeaderDirective,
|
|
@@ -1143,6 +1099,8 @@ const THESEAM_SIDE_NAV_ACCESSOR = new InjectionToken('THESEAM_SIDE_NAV_ACCESSOR'
|
|
|
1143
1099
|
|
|
1144
1100
|
const EXPANDED_STATE$1 = 'expanded';
|
|
1145
1101
|
const COLLAPSED_STATE$1 = 'collapsed';
|
|
1102
|
+
const FULL_STATE = 'full';
|
|
1103
|
+
const COMPACT_STATE = 'compact';
|
|
1146
1104
|
class SideNavItemComponent {
|
|
1147
1105
|
set link(value) { this._link.next(value); }
|
|
1148
1106
|
get link() { return this._link.value; }
|
|
@@ -1164,7 +1122,7 @@ class SideNavItemComponent {
|
|
|
1164
1122
|
else {
|
|
1165
1123
|
this._badgeTooltip = Object.assign(Object.assign({}, value), { placement: value.placement || 'auto', container: value.container || 'body', disabled: typeof (value === null || value === void 0 ? void 0 : value.disabled) === 'boolean'
|
|
1166
1124
|
? value.disabled
|
|
1167
|
-
: typeof value.tooltip
|
|
1125
|
+
: typeof value.tooltip !== 'string' });
|
|
1168
1126
|
}
|
|
1169
1127
|
}
|
|
1170
1128
|
else {
|
|
@@ -1173,8 +1131,9 @@ class SideNavItemComponent {
|
|
|
1173
1131
|
}
|
|
1174
1132
|
get _isActiveCssClass() { return this.active; }
|
|
1175
1133
|
get _attrDataHierLevel() { return this.hierLevel; }
|
|
1176
|
-
constructor(_sideNav) {
|
|
1134
|
+
constructor(_sideNav, _parent) {
|
|
1177
1135
|
this._sideNav = _sideNav;
|
|
1136
|
+
this._parent = _parent;
|
|
1178
1137
|
this._ngUnsubscribe = new Subject();
|
|
1179
1138
|
this.faAngleLeft = faAngleLeft;
|
|
1180
1139
|
this.active = false;
|
|
@@ -1188,7 +1147,9 @@ class SideNavItemComponent {
|
|
|
1188
1147
|
this.compact$ = this._compact.asObservable();
|
|
1189
1148
|
this.badgeTheme = 'danger';
|
|
1190
1149
|
this.childGroupAnimState$ = this.expanded$
|
|
1191
|
-
.pipe(map
|
|
1150
|
+
.pipe(map(expanded => expanded ? EXPANDED_STATE$1 : COLLAPSED_STATE$1));
|
|
1151
|
+
this.compactAnimState$ = this.compact$
|
|
1152
|
+
.pipe(map(compact => compact ? COMPACT_STATE : FULL_STATE));
|
|
1192
1153
|
}
|
|
1193
1154
|
ngOnDestroy() {
|
|
1194
1155
|
this._ngUnsubscribe.next(undefined);
|
|
@@ -1206,17 +1167,36 @@ class SideNavItemComponent {
|
|
|
1206
1167
|
this._sideNav.collapse();
|
|
1207
1168
|
}
|
|
1208
1169
|
}
|
|
1209
|
-
get showIconBlock() {
|
|
1210
|
-
return notNullOrUndefined(this.icon) || this.hideEmptyIcon !== true;
|
|
1211
|
-
}
|
|
1212
1170
|
}
|
|
1213
|
-
SideNavItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SideNavItemComponent, deps: [{ token: THESEAM_SIDE_NAV_ACCESSOR }], target: i0.ɵɵFactoryTarget.Component });
|
|
1214
|
-
SideNavItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SideNavItemComponent, isStandalone: true, selector: "seam-side-nav-item", inputs: { itemType: "itemType", icon: "icon", hideEmptyIcon: "hideEmptyIcon", label: "label", active: "active", link: "link", queryParams: "queryParams", children: "children", hierLevel: "hierLevel", indentSize: "indentSize", expanded: "expanded", compact: "compact", isMobile: "isMobile", badgeText: "badgeText", badgeTheme: "badgeTheme", badgeSrContent: "badgeSrContent", badgeTooltip: "badgeTooltip", menuItemTooltipConfig: "menuItemTooltipConfig", menuItemTooltipDisabled: "menuItemTooltipDisabled" }, host: { properties: { "class.seam-side-nav-item--active": "this._isActiveCssClass", "attr.data-hier-level": "this._attrDataHierLevel" } }, exportAs: ["seamSideNavItem"], ngImport: i0, template: "<div class=\"d-flex flex-row side-nav-item-wrapper\">\n <ng-container *ngIf=\"itemType === 'basic'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeBasic\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'link'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeLink\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'divider'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeDivider\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'title'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeTitle\"></ng-template>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"hasChildren\">\n <div class=\"side-nav--group side-nav--group--level-{{ hierLevel + 1 }}\"\n [@childGroupAnim]=\"childGroupAnimState$ | async\">\n <seam-side-nav-item *ngFor=\"let child of children\"\n [hierLevel]=\"compact ? 0 : (hierLevel + 1)\"\n [compact]=\"compact\"\n [isMobile]=\"isMobile\"\n [itemType]=\"$any(child).itemType\"\n [icon]=\"$any(child).icon\"\n [label]=\"$any(child).label\"\n [link]=\"$any(child).link\"\n [badgeText]=\"$any(child).badge?.text\"\n [badgeTheme]=\"$any(child).badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(child).badge?.srContent\"\n [badgeTooltip]=\"$any(child)?.badge?.tooltip\"\n [queryParams]=\"$any(child).queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [children]=\"$any(child)?.children\"\n [active]=\"$any(child).__state?.active\"\n [expanded]=\"$any(child).__state?.expanded\"\n [hideEmptyIcon]=\"hideEmptyIcon\"\n [indentSize]=\"indentSize\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled\">\n </seam-side-nav-item>\n </div>\n</ng-container>\n\n<ng-template #itemTypeBasic>\n <button class=\"side-nav-item btn side-nav-btn p-0 d-flex flex-row align-items-stretch rounded-0 text-decoration-none text-nowrap w-100\"\n cdkMonitorElementFocus\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <div class=\"nav-link d-flex flex-row w-100\" [class.nav-link__compact]=\"compact\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" side-nav-item-label style=\"margin-left: 11px;\">\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"hasChildren && !compact\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\">\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n </div>\n </button>\n</ng-template>\n\n<ng-template #itemTypeLink>\n <div class=\"d-flex flex-row w-100\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <a *ngIf=\"link; else noLink\" class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n (click)=\"_linkClicked()\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </a>\n\n <ng-template #noLink>\n <a class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n </a>\n </ng-template>\n\n <button *ngIf=\"hasChildren && !compact\"\n type=\"button\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\"\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n cdkMonitorElementFocus>\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n <span class=\"sr-only\">Group Toggle</span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #itemTypeDivider>\n <div class=\"px-2 w-100\">\n <hr class=\"side-nav-item--divider\" />\n </div>\n</ng-template>\n\n<ng-template #itemTypeTitle>\n <ng-container *ngIf=\"!compact\">\n <span class=\"side-nav-item--title pt-1\" side-nav-item-label>{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #itemBadge>\n <ng-container *ngIf=\"badgeText\">\n <div class=\"badge-spacer flex-grow-1\" *ngIf=\"!compact\"></div>\n <div class=\"side-nav-item--badge\"\n [class.side-nav-item--badge-no-icon]=\"!icon\"\n [ngbTooltip]=\"$any(badgeTooltip)?.tooltip\"\n [tooltipClass]=\"$any(badgeTooltip)?.class\"\n [placement]=\"$any(badgeTooltip)?.placement\"\n [container]=\"$any(badgeTooltip)?.container\"\n [disableTooltip]=\"isMobile || !badgeTooltip || !!$any(badgeTooltip)?.disabled\">\n <span class=\"badge badge-pill badge-{{ badgeTheme }}\">\n <ng-container *ngIf=\"!compact || !icon\">\n {{ badgeText }}\n </ng-container>\n <span *ngIf=\"badgeSrContent\">{{ badgeSrContent }}</span>\n </span>\n </div>\n </ng-container>\n</ng-template>\n", styles: ["seam-side-nav-item{display:block;transition:.25s ease-in-out background-color}seam-side-nav-item.seam-side-nav-item--active{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .active,seam-side-nav-item.seam-side-nav-item--active:active,seam-side-nav-item.seam-side-nav-item--active .side-nav-item.active:hover{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item.seam-side-nav-item--active .nav-link{color:#fff}seam-side-nav-item.seam-side-nav-item--active .side-nav-btn{color:#fff}seam-side-nav-item .badge{vertical-align:middle}seam-side-nav-item:not(.side-nav-item--icon) .side-nav-item--badge{pointer-events:all;margin-left:5px;margin-right:3px}seam-side-nav-item .side-nav-item--icon{position:relative;width:24px;max-width:24px;min-width:24px;height:24px;max-height:24px;min-height:24px;text-align:center}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge{top:-4px;right:-4px;position:absolute}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge .badge:empty{display:block;width:8px;height:8px;padding:0}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge.side-nav-item--badge-no-icon{top:0;right:0}seam-side-nav-item .side-nav-item{min-height:45px;transition:.25s ease-in-out background-color}seam-side-nav-item .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item.active{pointer-events:none;cursor:default}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]){color:#ccc}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]):hover{background-color:transparent}seam-side-nav-item .nav-link{color:#fff;padding-right:2px}seam-side-nav-item .nav-link__compact{padding-right:0;padding-left:12px}seam-side-nav-item .nav-link:last-child{padding-right:8px}seam-side-nav-item .side-nav-btn{font-weight:400;color:#fff;text-decoration:none}seam-side-nav-item .side-nav-btn:hover{color:#fff;text-decoration:underline}seam-side-nav-item .side-nav-btn:focus,seam-side-nav-item .side-nav-btn.focus{text-decoration:underline;box-shadow:none}seam-side-nav-item .side-nav-btn:disabled,seam-side-nav-item .side-nav-btn.disabled{color:#ccc;pointer-events:none}seam-side-nav-item .cdk-keyboard-focused{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}seam-side-nav-item .side-nav-item--toggle-btn-container{transition:.25s ease-in-out background-color;padding:.5rem 1rem}seam-side-nav-item button.side-nav-item--toggle-btn-container:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item--toggle-btn .svg-inline--fa{transition:.1s ease-in-out transform}seam-side-nav-item .side-nav-item--toggle-btn.side-nav-item--toggle-btn-expanded .svg-inline--fa{transform:rotate(-90deg)}seam-side-nav-item .side-nav--group{will-change:height;overflow:hidden}seam-side-nav-item .side-nav--group--level-1{background-color:#3276b1}seam-side-nav-item .side-nav--group--level-2{background-color:#2e6ea5}seam-side-nav-item .side-nav--group--level-3{background-color:#2b6699}seam-side-nav-item .side-nav--group--level-4{background-color:#285e8d}seam-side-nav-item .side-nav--group--level-5{background-color:#245681}seam-side-nav-item .side-nav--group--level-6{background-color:#214e75}seam-side-nav-item .side-nav--group--level-7{background-color:#1e4669}seam-side-nav-item .side-nav--group--level-8{background-color:#1a3e5d}seam-side-nav-item .side-nav--group--level-9{background-color:#173651}seam-side-nav-item .side-nav-item--divider{display:block;border-top:1px solid #2a6395;width:100%}seam-side-nav-item .side-nav-item--title{color:#fff;font-size:24px;padding-left:10px}seam-side-nav-item .sr-only{top:0;left:0}\n"], dependencies: [{ kind: "component", type: SideNavItemComponent, selector: "seam-side-nav-item", inputs: ["itemType", "icon", "hideEmptyIcon", "label", "active", "link", "queryParams", "children", "hierLevel", "indentSize", "expanded", "compact", "isMobile", "badgeText", "badgeTheme", "badgeSrContent", "badgeTooltip", "menuItemTooltipConfig", "menuItemTooltipDisabled"], exportAs: ["seamSideNavItem"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: TheSeamIconModule }, { kind: "component", type: i2$1.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i4$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i5.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }], animations: [
|
|
1171
|
+
SideNavItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SideNavItemComponent, deps: [{ token: THESEAM_SIDE_NAV_ACCESSOR }, { token: SideNavItemComponent, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1172
|
+
SideNavItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SideNavItemComponent, selector: "seam-side-nav-item", inputs: { itemType: "itemType", icon: "icon", label: "label", active: "active", link: "link", queryParams: "queryParams", children: "children", hierLevel: "hierLevel", indentSize: "indentSize", expanded: "expanded", compact: "compact", isMobile: "isMobile", badgeText: "badgeText", badgeTheme: "badgeTheme", badgeSrContent: "badgeSrContent", badgeTooltip: "badgeTooltip", menuItemTooltipConfig: "menuItemTooltipConfig", menuItemTooltipDisabled: "menuItemTooltipDisabled" }, host: { properties: { "class.seam-side-nav-item--active": "this._isActiveCssClass", "attr.data-hier-level": "this._attrDataHierLevel" } }, exportAs: ["seamSideNavItem"], ngImport: i0, template: "<div class=\"d-flex flex-row\">\n <ng-container *ngIf=\"itemType === 'basic'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeBasic\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'link'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeLink\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'divider'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeDivider\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'title'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeTitle\"></ng-template>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"hasChildren\">\n <div class=\"side-nav--group side-nav--group--level-{{ hierLevel + 1 }}\"\n [@childGroupAnim]=\"childGroupAnimState$ | async\">\n <seam-side-nav-item *ngFor=\"let child of children\"\n [hierLevel]=\"compact ? 0 : (hierLevel + 1)\"\n [compact]=\"compact\"\n [isMobile]=\"isMobile\"\n [itemType]=\"$any(child).itemType\"\n [icon]=\"$any(child).icon\"\n [label]=\"$any(child).label\"\n [link]=\"$any(child).link\"\n [badgeText]=\"$any(child).badge?.text\"\n [badgeTheme]=\"$any(child).badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(child).badge?.srContent\"\n [badgeTooltip]=\"$any(child)?.badge?.tooltip\"\n [queryParams]=\"$any(child).queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [children]=\"$any(child)?.children\"\n [active]=\"$any(child).__state?.active\"\n [expanded]=\"$any(child).__state?.expanded\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled\">\n </seam-side-nav-item>\n </div>\n</ng-container>\n\n<ng-template #itemTypeBasic>\n <button class=\"side-nav-item btn side-nav-btn p-0 d-flex flex-row rounded-0 text-decoration-none text-nowrap w-100\"\n cdkMonitorElementFocus\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <div class=\"nav-link d-flex flex-row w-100\" [class.nav-link__compact]=\"compact\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" side-nav-item-label style=\"margin-left: 11px;\">\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"hasChildren && !compact\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\">\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n </div>\n </button>\n</ng-template>\n\n<ng-template #itemTypeLink>\n <div class=\"d-flex flex-row w-100\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <a *ngIf=\"link; else noLink\" class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n (click)=\"_linkClicked()\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </a>\n\n <ng-template #noLink>\n <a class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n </a>\n </ng-template>\n\n <button *ngIf=\"hasChildren && !compact\"\n type=\"button\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\"\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n cdkMonitorElementFocus>\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n <span class=\"sr-only\">Group Toggle</span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #itemTypeDivider>\n <div class=\"px-2 w-100\">\n <hr class=\"side-nav-item--divider\" />\n </div>\n</ng-template>\n\n<ng-template #itemTypeTitle>\n <ng-container *ngIf=\"!compact\">\n <span class=\"side-nav-item--title pt-1\" side-nav-item-label>{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #itemBadge>\n <ng-container *ngIf=\"badgeText\">\n <div class=\"badge-spacer flex-grow-1\" *ngIf=\"!compact\"></div>\n <div class=\"side-nav-item--badge\"\n [class.side-nav-item--badge-no-icon]=\"!icon\"\n [ngbTooltip]=\"$any(badgeTooltip)?.tooltip\"\n [tooltipClass]=\"$any(badgeTooltip)?.class\"\n [placement]=\"$any(badgeTooltip)?.placement\"\n [container]=\"$any(badgeTooltip)?.container\"\n [disableTooltip]=\"isMobile || !badgeTooltip || !!$any(badgeTooltip)?.disabled\">\n <span class=\"badge badge-pill badge-{{ badgeTheme }}\">\n <ng-container *ngIf=\"!compact || !icon\">\n {{ badgeText }}\n </ng-container>\n <span *ngIf=\"badgeSrContent\">{{ badgeSrContent }}</span>\n </span>\n </div>\n </ng-container>\n</ng-template>\n", styles: ["seam-side-nav-item{display:block;transition:.25s ease-in-out background-color}seam-side-nav-item.seam-side-nav-item--active{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .active,seam-side-nav-item.seam-side-nav-item--active:active,seam-side-nav-item.seam-side-nav-item--active .side-nav-item.active:hover{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item.seam-side-nav-item--active .nav-link{color:#fff}seam-side-nav-item .badge{vertical-align:middle}seam-side-nav-item:not(.side-nav-item--icon) .side-nav-item--badge{pointer-events:all;margin-left:5px;margin-right:3px}seam-side-nav-item .side-nav-item--icon{position:relative;width:24px;max-width:24px;min-width:24px;height:24px;max-height:24px;min-height:24px;text-align:center}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge{top:-4px;right:-4px;position:absolute}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge .badge:empty{display:block;width:8px;height:8px;padding:0}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge.side-nav-item--badge-no-icon{top:0;right:0}seam-side-nav-item .side-nav-item{min-height:45px;transition:.25s ease-in-out background-color}seam-side-nav-item .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item.active{pointer-events:none;cursor:default}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]){color:#ccc}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]):hover{background-color:transparent}seam-side-nav-item .nav-link{color:#fff;padding-right:2px}seam-side-nav-item .nav-link__compact{padding-right:0;padding-left:12px}seam-side-nav-item .nav-link:last-child{padding-right:8px}seam-side-nav-item .side-nav-btn{font-weight:400;color:#fff;text-decoration:none}seam-side-nav-item .side-nav-btn:hover{color:#2f71a9;text-decoration:underline}seam-side-nav-item .side-nav-btn:focus,seam-side-nav-item .side-nav-btn.focus{text-decoration:underline;box-shadow:none}seam-side-nav-item .side-nav-btn:disabled,seam-side-nav-item .side-nav-btn.disabled{color:#ccc;pointer-events:none}seam-side-nav-item .cdk-keyboard-focused{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}seam-side-nav-item .side-nav-item--toggle-btn-container{transition:.25s ease-in-out background-color;padding:.5rem 1rem}seam-side-nav-item button.side-nav-item--toggle-btn-container:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item--toggle-btn{color:#fff}seam-side-nav-item .side-nav-item--toggle-btn .svg-inline--fa{transition:.1s ease-in-out transform}seam-side-nav-item .side-nav-item--toggle-btn.side-nav-item--toggle-btn-expanded .svg-inline--fa{transform:rotate(-90deg)}seam-side-nav-item .side-nav--group{will-change:height;overflow:hidden}seam-side-nav-item .side-nav--group--level-1{background-color:#3276b1}seam-side-nav-item .side-nav--group--level-2{background-color:#2e6ea5}seam-side-nav-item .side-nav--group--level-3{background-color:#2b6699}seam-side-nav-item .side-nav--group--level-4{background-color:#285e8d}seam-side-nav-item .side-nav--group--level-5{background-color:#245681}seam-side-nav-item .side-nav--group--level-6{background-color:#214e75}seam-side-nav-item .side-nav--group--level-7{background-color:#1e4669}seam-side-nav-item .side-nav--group--level-8{background-color:#1a3e5d}seam-side-nav-item .side-nav--group--level-9{background-color:#173651}seam-side-nav-item .side-nav-item--divider{display:block;border-top:1px solid #2a6395;width:100%}seam-side-nav-item .side-nav-item--title{color:#fff;font-size:24px;padding-left:10px}seam-side-nav-item .sr-only{top:0;left:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i2$1.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "directive", type: i4$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i5.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: SideNavItemComponent, selector: "seam-side-nav-item", inputs: ["itemType", "icon", "label", "active", "link", "queryParams", "children", "hierLevel", "indentSize", "expanded", "compact", "isMobile", "badgeText", "badgeTheme", "badgeSrContent", "badgeTooltip", "menuItemTooltipConfig", "menuItemTooltipDisabled"], exportAs: ["seamSideNavItem"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
|
|
1215
1173
|
trigger('childGroupAnim', [
|
|
1216
1174
|
state(EXPANDED_STATE$1, style({ height: '*' })),
|
|
1217
|
-
state(COLLAPSED_STATE$1, style({ height: 0, visibility: 'hidden' })),
|
|
1175
|
+
state(COLLAPSED_STATE$1, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
|
|
1218
1176
|
transition(`${EXPANDED_STATE$1} <=> ${COLLAPSED_STATE$1}`, animate('0.2s ease-in-out')),
|
|
1219
1177
|
]),
|
|
1178
|
+
trigger('compactAnim', [
|
|
1179
|
+
// transition('* <=> *', [
|
|
1180
|
+
// query(':enter', [
|
|
1181
|
+
// style({ opacity: '0' }),
|
|
1182
|
+
// animate('5.2s ease-in-out', style({ opacity: '1' }))
|
|
1183
|
+
// ], { optional: true }),
|
|
1184
|
+
// query(':leave', [
|
|
1185
|
+
// style({ opacity: '1' }),
|
|
1186
|
+
// animate('5.2s ease-in-out', style({ opacity: '0' }))
|
|
1187
|
+
// ], { optional: true })
|
|
1188
|
+
// ])
|
|
1189
|
+
// state(FULL_STATE, style({ opacity: '1' })),
|
|
1190
|
+
// state(COMPACT_STATE, style({ opacity: '0' })),
|
|
1191
|
+
// transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, animate('5.2s ease-in-out')),
|
|
1192
|
+
// transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, [
|
|
1193
|
+
// transition('* <=> *', [
|
|
1194
|
+
// query(':leave', [
|
|
1195
|
+
// style({ opacity: '1' }),
|
|
1196
|
+
// animate('5.2s ease-in-out', style({ opacity: '0' }))
|
|
1197
|
+
// ], { optional: true })
|
|
1198
|
+
// ]),
|
|
1199
|
+
])
|
|
1220
1200
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1221
1201
|
__decorate([
|
|
1222
1202
|
InputBoolean()
|
|
@@ -1232,27 +1212,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1232
1212
|
args: [{ selector: 'seam-side-nav-item', exportAs: 'seamSideNavItem', animations: [
|
|
1233
1213
|
trigger('childGroupAnim', [
|
|
1234
1214
|
state(EXPANDED_STATE$1, style({ height: '*' })),
|
|
1235
|
-
state(COLLAPSED_STATE$1, style({ height: 0, visibility: 'hidden' })),
|
|
1215
|
+
state(COLLAPSED_STATE$1, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
|
|
1236
1216
|
transition(`${EXPANDED_STATE$1} <=> ${COLLAPSED_STATE$1}`, animate('0.2s ease-in-out')),
|
|
1237
1217
|
]),
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"d-flex flex-row side-nav-item-wrapper\">\n <ng-container *ngIf=\"itemType === 'basic'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeBasic\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'link'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeLink\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'divider'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeDivider\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'title'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeTitle\"></ng-template>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"hasChildren\">\n <div class=\"side-nav--group side-nav--group--level-{{ hierLevel + 1 }}\"\n [@childGroupAnim]=\"childGroupAnimState$ | async\">\n <seam-side-nav-item *ngFor=\"let child of children\"\n [hierLevel]=\"compact ? 0 : (hierLevel + 1)\"\n [compact]=\"compact\"\n [isMobile]=\"isMobile\"\n [itemType]=\"$any(child).itemType\"\n [icon]=\"$any(child).icon\"\n [label]=\"$any(child).label\"\n [link]=\"$any(child).link\"\n [badgeText]=\"$any(child).badge?.text\"\n [badgeTheme]=\"$any(child).badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(child).badge?.srContent\"\n [badgeTooltip]=\"$any(child)?.badge?.tooltip\"\n [queryParams]=\"$any(child).queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [children]=\"$any(child)?.children\"\n [active]=\"$any(child).__state?.active\"\n [expanded]=\"$any(child).__state?.expanded\"\n [hideEmptyIcon]=\"hideEmptyIcon\"\n [indentSize]=\"indentSize\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled\">\n </seam-side-nav-item>\n </div>\n</ng-container>\n\n<ng-template #itemTypeBasic>\n <button class=\"side-nav-item btn side-nav-btn p-0 d-flex flex-row align-items-stretch rounded-0 text-decoration-none text-nowrap w-100\"\n cdkMonitorElementFocus\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <div class=\"nav-link d-flex flex-row w-100\" [class.nav-link__compact]=\"compact\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" side-nav-item-label style=\"margin-left: 11px;\">\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"hasChildren && !compact\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\">\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n </div>\n </button>\n</ng-template>\n\n<ng-template #itemTypeLink>\n <div class=\"d-flex flex-row w-100\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <a *ngIf=\"link; else noLink\" class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n (click)=\"_linkClicked()\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </a>\n\n <ng-template #noLink>\n <a class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n </a>\n </ng-template>\n\n <button *ngIf=\"hasChildren && !compact\"\n type=\"button\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\"\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n cdkMonitorElementFocus>\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n <span class=\"sr-only\">Group Toggle</span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #itemTypeDivider>\n <div class=\"px-2 w-100\">\n <hr class=\"side-nav-item--divider\" />\n </div>\n</ng-template>\n\n<ng-template #itemTypeTitle>\n <ng-container *ngIf=\"!compact\">\n <span class=\"side-nav-item--title pt-1\" side-nav-item-label>{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #itemBadge>\n <ng-container *ngIf=\"badgeText\">\n <div class=\"badge-spacer flex-grow-1\" *ngIf=\"!compact\"></div>\n <div class=\"side-nav-item--badge\"\n [class.side-nav-item--badge-no-icon]=\"!icon\"\n [ngbTooltip]=\"$any(badgeTooltip)?.tooltip\"\n [tooltipClass]=\"$any(badgeTooltip)?.class\"\n [placement]=\"$any(badgeTooltip)?.placement\"\n [container]=\"$any(badgeTooltip)?.container\"\n [disableTooltip]=\"isMobile || !badgeTooltip || !!$any(badgeTooltip)?.disabled\">\n <span class=\"badge badge-pill badge-{{ badgeTheme }}\">\n <ng-container *ngIf=\"!compact || !icon\">\n {{ badgeText }}\n </ng-container>\n <span *ngIf=\"badgeSrContent\">{{ badgeSrContent }}</span>\n </span>\n </div>\n </ng-container>\n</ng-template>\n", styles: ["seam-side-nav-item{display:block;transition:.25s ease-in-out background-color}seam-side-nav-item.seam-side-nav-item--active{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .active,seam-side-nav-item.seam-side-nav-item--active:active,seam-side-nav-item.seam-side-nav-item--active .side-nav-item.active:hover{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item.seam-side-nav-item--active .nav-link{color:#fff}seam-side-nav-item.seam-side-nav-item--active .side-nav-btn{color:#fff}seam-side-nav-item .badge{vertical-align:middle}seam-side-nav-item:not(.side-nav-item--icon) .side-nav-item--badge{pointer-events:all;margin-left:5px;margin-right:3px}seam-side-nav-item .side-nav-item--icon{position:relative;width:24px;max-width:24px;min-width:24px;height:24px;max-height:24px;min-height:24px;text-align:center}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge{top:-4px;right:-4px;position:absolute}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge .badge:empty{display:block;width:8px;height:8px;padding:0}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge.side-nav-item--badge-no-icon{top:0;right:0}seam-side-nav-item .side-nav-item{min-height:45px;transition:.25s ease-in-out background-color}seam-side-nav-item .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item.active{pointer-events:none;cursor:default}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]){color:#ccc}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]):hover{background-color:transparent}seam-side-nav-item .nav-link{color:#fff;padding-right:2px}seam-side-nav-item .nav-link__compact{padding-right:0;padding-left:12px}seam-side-nav-item .nav-link:last-child{padding-right:8px}seam-side-nav-item .side-nav-btn{font-weight:400;color:#fff;text-decoration:none}seam-side-nav-item .side-nav-btn:hover{color:#fff;text-decoration:underline}seam-side-nav-item .side-nav-btn:focus,seam-side-nav-item .side-nav-btn.focus{text-decoration:underline;box-shadow:none}seam-side-nav-item .side-nav-btn:disabled,seam-side-nav-item .side-nav-btn.disabled{color:#ccc;pointer-events:none}seam-side-nav-item .cdk-keyboard-focused{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}seam-side-nav-item .side-nav-item--toggle-btn-container{transition:.25s ease-in-out background-color;padding:.5rem 1rem}seam-side-nav-item button.side-nav-item--toggle-btn-container:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item--toggle-btn .svg-inline--fa{transition:.1s ease-in-out transform}seam-side-nav-item .side-nav-item--toggle-btn.side-nav-item--toggle-btn-expanded .svg-inline--fa{transform:rotate(-90deg)}seam-side-nav-item .side-nav--group{will-change:height;overflow:hidden}seam-side-nav-item .side-nav--group--level-1{background-color:#3276b1}seam-side-nav-item .side-nav--group--level-2{background-color:#2e6ea5}seam-side-nav-item .side-nav--group--level-3{background-color:#2b6699}seam-side-nav-item .side-nav--group--level-4{background-color:#285e8d}seam-side-nav-item .side-nav--group--level-5{background-color:#245681}seam-side-nav-item .side-nav--group--level-6{background-color:#214e75}seam-side-nav-item .side-nav--group--level-7{background-color:#1e4669}seam-side-nav-item .side-nav--group--level-8{background-color:#1a3e5d}seam-side-nav-item .side-nav--group--level-9{background-color:#173651}seam-side-nav-item .side-nav-item--divider{display:block;border-top:1px solid #2a6395;width:100%}seam-side-nav-item .side-nav-item--title{color:#fff;font-size:24px;padding-left:10px}seam-side-nav-item .sr-only{top:0;left:0}\n"] }]
|
|
1218
|
+
trigger('compactAnim', [
|
|
1219
|
+
// transition('* <=> *', [
|
|
1220
|
+
// query(':enter', [
|
|
1221
|
+
// style({ opacity: '0' }),
|
|
1222
|
+
// animate('5.2s ease-in-out', style({ opacity: '1' }))
|
|
1223
|
+
// ], { optional: true }),
|
|
1224
|
+
// query(':leave', [
|
|
1225
|
+
// style({ opacity: '1' }),
|
|
1226
|
+
// animate('5.2s ease-in-out', style({ opacity: '0' }))
|
|
1227
|
+
// ], { optional: true })
|
|
1228
|
+
// ])
|
|
1229
|
+
// state(FULL_STATE, style({ opacity: '1' })),
|
|
1230
|
+
// state(COMPACT_STATE, style({ opacity: '0' })),
|
|
1231
|
+
// transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, animate('5.2s ease-in-out')),
|
|
1232
|
+
// transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, [
|
|
1233
|
+
// transition('* <=> *', [
|
|
1234
|
+
// query(':leave', [
|
|
1235
|
+
// style({ opacity: '1' }),
|
|
1236
|
+
// animate('5.2s ease-in-out', style({ opacity: '0' }))
|
|
1237
|
+
// ], { optional: true })
|
|
1238
|
+
// ]),
|
|
1239
|
+
])
|
|
1240
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"d-flex flex-row\">\n <ng-container *ngIf=\"itemType === 'basic'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeBasic\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'link'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeLink\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'divider'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeDivider\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'title'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeTitle\"></ng-template>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"hasChildren\">\n <div class=\"side-nav--group side-nav--group--level-{{ hierLevel + 1 }}\"\n [@childGroupAnim]=\"childGroupAnimState$ | async\">\n <seam-side-nav-item *ngFor=\"let child of children\"\n [hierLevel]=\"compact ? 0 : (hierLevel + 1)\"\n [compact]=\"compact\"\n [isMobile]=\"isMobile\"\n [itemType]=\"$any(child).itemType\"\n [icon]=\"$any(child).icon\"\n [label]=\"$any(child).label\"\n [link]=\"$any(child).link\"\n [badgeText]=\"$any(child).badge?.text\"\n [badgeTheme]=\"$any(child).badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(child).badge?.srContent\"\n [badgeTooltip]=\"$any(child)?.badge?.tooltip\"\n [queryParams]=\"$any(child).queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [children]=\"$any(child)?.children\"\n [active]=\"$any(child).__state?.active\"\n [expanded]=\"$any(child).__state?.expanded\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled\">\n </seam-side-nav-item>\n </div>\n</ng-container>\n\n<ng-template #itemTypeBasic>\n <button class=\"side-nav-item btn side-nav-btn p-0 d-flex flex-row rounded-0 text-decoration-none text-nowrap w-100\"\n cdkMonitorElementFocus\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <div class=\"nav-link d-flex flex-row w-100\" [class.nav-link__compact]=\"compact\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" side-nav-item-label style=\"margin-left: 11px;\">\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"hasChildren && !compact\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\">\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n </div>\n </button>\n</ng-template>\n\n<ng-template #itemTypeLink>\n <div class=\"d-flex flex-row w-100\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <a *ngIf=\"link; else noLink\" class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n (click)=\"_linkClicked()\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </a>\n\n <ng-template #noLink>\n <a class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [ngbTooltip]=\"label\"\n [tooltipClass]=\"$any(menuItemTooltipConfig)?.class\"\n [placement]=\"$any(menuItemTooltipConfig)?.placement\"\n [container]=\"$any(menuItemTooltipConfig)?.container\"\n [disableTooltip]=\"$any(menuItemTooltipDisabled)\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n </a>\n </ng-template>\n\n <button *ngIf=\"hasChildren && !compact\"\n type=\"button\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\"\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n cdkMonitorElementFocus>\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n <span class=\"sr-only\">Group Toggle</span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #itemTypeDivider>\n <div class=\"px-2 w-100\">\n <hr class=\"side-nav-item--divider\" />\n </div>\n</ng-template>\n\n<ng-template #itemTypeTitle>\n <ng-container *ngIf=\"!compact\">\n <span class=\"side-nav-item--title pt-1\" side-nav-item-label>{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #itemBadge>\n <ng-container *ngIf=\"badgeText\">\n <div class=\"badge-spacer flex-grow-1\" *ngIf=\"!compact\"></div>\n <div class=\"side-nav-item--badge\"\n [class.side-nav-item--badge-no-icon]=\"!icon\"\n [ngbTooltip]=\"$any(badgeTooltip)?.tooltip\"\n [tooltipClass]=\"$any(badgeTooltip)?.class\"\n [placement]=\"$any(badgeTooltip)?.placement\"\n [container]=\"$any(badgeTooltip)?.container\"\n [disableTooltip]=\"isMobile || !badgeTooltip || !!$any(badgeTooltip)?.disabled\">\n <span class=\"badge badge-pill badge-{{ badgeTheme }}\">\n <ng-container *ngIf=\"!compact || !icon\">\n {{ badgeText }}\n </ng-container>\n <span *ngIf=\"badgeSrContent\">{{ badgeSrContent }}</span>\n </span>\n </div>\n </ng-container>\n</ng-template>\n", styles: ["seam-side-nav-item{display:block;transition:.25s ease-in-out background-color}seam-side-nav-item.seam-side-nav-item--active{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .active,seam-side-nav-item.seam-side-nav-item--active:active,seam-side-nav-item.seam-side-nav-item--active .side-nav-item.active:hover{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item.seam-side-nav-item--active .nav-link{color:#fff}seam-side-nav-item .badge{vertical-align:middle}seam-side-nav-item:not(.side-nav-item--icon) .side-nav-item--badge{pointer-events:all;margin-left:5px;margin-right:3px}seam-side-nav-item .side-nav-item--icon{position:relative;width:24px;max-width:24px;min-width:24px;height:24px;max-height:24px;min-height:24px;text-align:center}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge{top:-4px;right:-4px;position:absolute}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge .badge:empty{display:block;width:8px;height:8px;padding:0}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge.side-nav-item--badge-no-icon{top:0;right:0}seam-side-nav-item .side-nav-item{min-height:45px;transition:.25s ease-in-out background-color}seam-side-nav-item .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item.active{pointer-events:none;cursor:default}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]){color:#ccc}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]):hover{background-color:transparent}seam-side-nav-item .nav-link{color:#fff;padding-right:2px}seam-side-nav-item .nav-link__compact{padding-right:0;padding-left:12px}seam-side-nav-item .nav-link:last-child{padding-right:8px}seam-side-nav-item .side-nav-btn{font-weight:400;color:#fff;text-decoration:none}seam-side-nav-item .side-nav-btn:hover{color:#2f71a9;text-decoration:underline}seam-side-nav-item .side-nav-btn:focus,seam-side-nav-item .side-nav-btn.focus{text-decoration:underline;box-shadow:none}seam-side-nav-item .side-nav-btn:disabled,seam-side-nav-item .side-nav-btn.disabled{color:#ccc;pointer-events:none}seam-side-nav-item .cdk-keyboard-focused{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}seam-side-nav-item .side-nav-item--toggle-btn-container{transition:.25s ease-in-out background-color;padding:.5rem 1rem}seam-side-nav-item button.side-nav-item--toggle-btn-container:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item--toggle-btn{color:#fff}seam-side-nav-item .side-nav-item--toggle-btn .svg-inline--fa{transition:.1s ease-in-out transform}seam-side-nav-item .side-nav-item--toggle-btn.side-nav-item--toggle-btn-expanded .svg-inline--fa{transform:rotate(-90deg)}seam-side-nav-item .side-nav--group{will-change:height;overflow:hidden}seam-side-nav-item .side-nav--group--level-1{background-color:#3276b1}seam-side-nav-item .side-nav--group--level-2{background-color:#2e6ea5}seam-side-nav-item .side-nav--group--level-3{background-color:#2b6699}seam-side-nav-item .side-nav--group--level-4{background-color:#285e8d}seam-side-nav-item .side-nav--group--level-5{background-color:#245681}seam-side-nav-item .side-nav--group--level-6{background-color:#214e75}seam-side-nav-item .side-nav--group--level-7{background-color:#1e4669}seam-side-nav-item .side-nav--group--level-8{background-color:#1a3e5d}seam-side-nav-item .side-nav--group--level-9{background-color:#173651}seam-side-nav-item .side-nav-item--divider{display:block;border-top:1px solid #2a6395;width:100%}seam-side-nav-item .side-nav-item--title{color:#fff;font-size:24px;padding-left:10px}seam-side-nav-item .sr-only{top:0;left:0}\n"] }]
|
|
1245
1241
|
}], ctorParameters: function () {
|
|
1246
1242
|
return [{ type: undefined, decorators: [{
|
|
1247
1243
|
type: Inject,
|
|
1248
1244
|
args: [THESEAM_SIDE_NAV_ACCESSOR]
|
|
1245
|
+
}] }, { type: SideNavItemComponent, decorators: [{
|
|
1246
|
+
type: Optional
|
|
1247
|
+
}, {
|
|
1248
|
+
type: SkipSelf
|
|
1249
|
+
}, {
|
|
1250
|
+
type: Host
|
|
1249
1251
|
}] }];
|
|
1250
1252
|
}, propDecorators: { itemType: [{
|
|
1251
1253
|
type: Input
|
|
1252
1254
|
}], icon: [{
|
|
1253
1255
|
type: Input
|
|
1254
|
-
}], hideEmptyIcon: [{
|
|
1255
|
-
type: Input
|
|
1256
1256
|
}], label: [{
|
|
1257
1257
|
type: Input
|
|
1258
1258
|
}], active: [{
|
|
@@ -1295,6 +1295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1295
1295
|
|
|
1296
1296
|
class SideNavToggleComponent {
|
|
1297
1297
|
constructor() {
|
|
1298
|
+
this.faBars = faBars;
|
|
1298
1299
|
this.expanded = false;
|
|
1299
1300
|
this.toggleExpand = new EventEmitter();
|
|
1300
1301
|
}
|
|
@@ -1303,7 +1304,7 @@ class SideNavToggleComponent {
|
|
|
1303
1304
|
}
|
|
1304
1305
|
}
|
|
1305
1306
|
SideNavToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SideNavToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1306
|
-
SideNavToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SideNavToggleComponent,
|
|
1307
|
+
SideNavToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SideNavToggleComponent, selector: "seam-side-nav-toggle", inputs: { expanded: "expanded" }, outputs: { toggleExpand: "toggleExpand" }, host: { properties: { "class.side-nav-toggle--compact": "!expanded" } }, ngImport: i0, template: "<div class=\"side-nav-toggle--content\" *ngIf=\"expanded\">\n <ng-content></ng-content>\n</div>\n<button seamIconBtn [icon]=\"faBars\"\n iconType=\"borderless-styled-square\"\n btnSize=\"sm\"\n class=\"side-nav-toggle--btn ml-1\"\n (click)=\"toggle()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n</button>\n", styles: ["seam-side-nav-toggle{display:flex;flex-direction:row;flex-shrink:0;position:relative;height:45px;width:100%}seam-side-nav-toggle .side-nav-toggle--content{flex:1 1 0}seam-side-nav-toggle .side-nav-toggle--btn{position:absolute;top:0;right:5px;color:#fff}seam-side-nav-toggle .side-nav-toggle--btn seam-icon{padding:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.IconBtnComponent, selector: "button[seamIconBtn]", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "iconType", "btnTheme", "badgeTheme", "badgeText", "btnSize", "type", "role"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1307
1308
|
__decorate([
|
|
1308
1309
|
InputBoolean()
|
|
1309
1310
|
], SideNavToggleComponent.prototype, "expanded", void 0);
|
|
@@ -1311,16 +1312,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1311
1312
|
type: Component,
|
|
1312
1313
|
args: [{ selector: 'seam-side-nav-toggle', host: {
|
|
1313
1314
|
'[class.side-nav-toggle--compact]': '!expanded'
|
|
1314
|
-
},
|
|
1315
|
-
CommonModule,
|
|
1316
|
-
TheSeamIconModule,
|
|
1317
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"side-nav-toggle--content\">\n <ng-container *ngIf=\"expanded\">\n <ng-content></ng-content>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"toggleTpl; else iconBtn\">\n <button\n class=\"side-nav-toggle--btn mx-1\"\n (click)=\"toggle()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n <ng-container *ngTemplateOutlet=\"toggleTpl\"></ng-container>\n </button>\n</ng-container>\n\n<ng-template #iconBtn>\n <button seamIconBtn [icon]=\"toggleIcon\"\n iconType=\"borderless-styled-square\"\n btnSize=\"sm\"\n class=\"side-nav-toggle--btn mx-1\"\n (click)=\"toggle()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n </button>\n</ng-template>\n", styles: ["seam-side-nav-toggle{display:flex;flex-direction:row;flex-shrink:0;align-items:center;background:#357ebd;position:relative;height:45px;width:100%}seam-side-nav-toggle .side-nav-toggle--content{flex:1 1 0}seam-side-nav-toggle .side-nav-toggle--btn{color:#fff}seam-side-nav-toggle .side-nav-toggle--btn seam-icon{padding:5px}\n"] }]
|
|
1315
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"side-nav-toggle--content\" *ngIf=\"expanded\">\n <ng-content></ng-content>\n</div>\n<button seamIconBtn [icon]=\"faBars\"\n iconType=\"borderless-styled-square\"\n btnSize=\"sm\"\n class=\"side-nav-toggle--btn ml-1\"\n (click)=\"toggle()\">\n <span class=\"sr-only\">Toggle sidebar</span>\n</button>\n", styles: ["seam-side-nav-toggle{display:flex;flex-direction:row;flex-shrink:0;position:relative;height:45px;width:100%}seam-side-nav-toggle .side-nav-toggle--content{flex:1 1 0}seam-side-nav-toggle .side-nav-toggle--btn{position:absolute;top:0;right:5px;color:#fff}seam-side-nav-toggle .side-nav-toggle--btn seam-icon{padding:5px}\n"] }]
|
|
1318
1316
|
}], propDecorators: { expanded: [{
|
|
1319
1317
|
type: Input
|
|
1320
|
-
}], toggleIcon: [{
|
|
1321
|
-
type: Input
|
|
1322
|
-
}], toggleTpl: [{
|
|
1323
|
-
type: Input
|
|
1324
1318
|
}], toggleExpand: [{
|
|
1325
1319
|
type: Output
|
|
1326
1320
|
}] } });
|
|
@@ -1628,20 +1622,14 @@ class SideNavComponent {
|
|
|
1628
1622
|
this._sideNav = _sideNav;
|
|
1629
1623
|
this._baseLayoutRef = _baseLayoutRef;
|
|
1630
1624
|
this._ngUnsubscribe = new Subject();
|
|
1631
|
-
this.faBars = faBars;
|
|
1632
1625
|
// @HostBinding('@sideNavExpand') _sideNavExpand = EXPANDED_STATE
|
|
1633
1626
|
// _sideNavExpand = EXPANDED_STATE
|
|
1634
1627
|
// @HostBinding('@sideNavAnim') _sideNavExpand = EXPANDED_STATE
|
|
1635
1628
|
this._sideNavExpand = 'initial';
|
|
1636
1629
|
this.hasHeaderToggle = true;
|
|
1637
|
-
this.toggleIcon = faBars;
|
|
1638
1630
|
this._items = new BehaviorSubject([]);
|
|
1639
|
-
this.indentSize = 10;
|
|
1640
1631
|
this._expanded = new BehaviorSubject(true);
|
|
1641
1632
|
this.expanded$ = this._expanded.asObservable();
|
|
1642
|
-
this.expandOrigin = 'left';
|
|
1643
|
-
this.expandHeight = '100%';
|
|
1644
|
-
this.expandWidth = 'calc(100vw - 50px)';
|
|
1645
1633
|
this._overlay = new BehaviorSubject(false);
|
|
1646
1634
|
this.overlay$ = this._overlay.asObservable();
|
|
1647
1635
|
this._menuItemTooltipConfig = {
|
|
@@ -1651,7 +1639,7 @@ class SideNavComponent {
|
|
|
1651
1639
|
};
|
|
1652
1640
|
this.toggleExpand = new EventEmitter();
|
|
1653
1641
|
this._backdropHidden = new BehaviorSubject(true);
|
|
1654
|
-
this.items$ = this._items.asObservable().pipe(switchMap(items =>
|
|
1642
|
+
this.items$ = this._items.asObservable().pipe(switchMap(items => this._sideNav.createItemsObservable(items)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
1655
1643
|
this.isMobile$ = this._layout.isMobile$.pipe(tap(isMobile => isMobile ? this.collapse() : this.expand()));
|
|
1656
1644
|
this.sideNavExpandedState$ = combineLatest([this.expanded$, this.overlay$]).pipe(map(([expanded, overlay]) => expanded
|
|
1657
1645
|
? overlay ? EXPANDED_OVERLAY_STATE : EXPANDED_STATE
|
|
@@ -1677,9 +1665,6 @@ class SideNavComponent {
|
|
|
1677
1665
|
this.sideNavExpandedState$
|
|
1678
1666
|
.pipe(takeUntil(this._ngUnsubscribe))
|
|
1679
1667
|
.subscribe(v => this._sideNavExpand = v);
|
|
1680
|
-
if (this._sideBarHeaderTpl) {
|
|
1681
|
-
this._sideBarHeaderPortal = new TemplatePortal(this._sideBarHeaderTpl, this._viewContainerRef);
|
|
1682
|
-
}
|
|
1683
1668
|
if (this._sideBarFooterTpl) {
|
|
1684
1669
|
this._sideBarFooterPortal = new TemplatePortal(this._sideBarFooterTpl, this._viewContainerRef);
|
|
1685
1670
|
}
|
|
@@ -1710,32 +1695,16 @@ class SideNavComponent {
|
|
|
1710
1695
|
this._backdropHidden.next(true);
|
|
1711
1696
|
}
|
|
1712
1697
|
}
|
|
1713
|
-
get expandOriginTransform() {
|
|
1714
|
-
switch (this.expandOrigin) {
|
|
1715
|
-
case 'right':
|
|
1716
|
-
return this._sideNavExpand === EXPANDED_OVERLAY_STATE ? 'translateX(100vw) translateX(-100%)'
|
|
1717
|
-
: this._sideNavExpand === COLLAPSED_OVERLAY_STATE ? 'translateX(100vw)' : null;
|
|
1718
|
-
case 'top':
|
|
1719
|
-
return this._sideNavExpand === EXPANDED_OVERLAY_STATE ? 'translateY(0)'
|
|
1720
|
-
: this._sideNavExpand === COLLAPSED_OVERLAY_STATE ? 'translateY(-100%)' : null;
|
|
1721
|
-
case 'bottom':
|
|
1722
|
-
return this._sideNavExpand === EXPANDED_OVERLAY_STATE ? 'translateY(100vh) translateY(-100%)'
|
|
1723
|
-
: this._sideNavExpand === COLLAPSED_OVERLAY_STATE ? 'translateY(100vh)' : null;
|
|
1724
|
-
case 'left':
|
|
1725
|
-
default:
|
|
1726
|
-
return this._sideNavExpand === EXPANDED_OVERLAY_STATE ? 'translateX(0)'
|
|
1727
|
-
: this._sideNavExpand === COLLAPSED_OVERLAY_STATE ? 'translateX(-100%)' : null;
|
|
1728
|
-
}
|
|
1729
|
-
}
|
|
1730
1698
|
}
|
|
1731
1699
|
SideNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SideNavComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TheSeamLayoutService }, { token: TheSeamSideNavService }, { token: THESEAM_BASE_LAYOUT_REF, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1732
|
-
SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SideNavComponent,
|
|
1700
|
+
SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SideNavComponent, selector: "seam-side-nav", inputs: { hasHeaderToggle: "hasHeaderToggle", items: "items", expanded: "expanded", overlay: "overlay", menuItemTooltipConfig: "menuItemTooltipConfig" }, outputs: { toggleExpand: "toggleExpand" }, host: { properties: { "@sideNavAnim": "this._sideNavExpand" } }, providers: [
|
|
1733
1701
|
TheSeamSideNavService,
|
|
1734
1702
|
{
|
|
1735
1703
|
provide: THESEAM_SIDE_NAV_ACCESSOR,
|
|
1736
|
-
|
|
1704
|
+
// tslint:disable-next-line:no-use-before-declare
|
|
1705
|
+
useExisting: forwardRef(() => SideNavComponent)
|
|
1737
1706
|
},
|
|
1738
|
-
], queries: [{ propertyName: "
|
|
1707
|
+
], queries: [{ propertyName: "_sideBarFooterTpl", first: true, predicate: BaseLayoutSideBarFooterDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [isMobile]=\"isMobile$ | async\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled$ | async\">\n </seam-side-nav-item>\n </div>\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\n </nav>\n</div>\n", styles: ["seam-side-nav,.seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}seam-side-nav .side-nav-inner-wrapper,.seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}seam-side-nav .side-nav-backdrop,.seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-side-nav .side-nav-content,.seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-side-nav .side-nav-items-container,.seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: SideNavItemComponent, selector: "seam-side-nav-item", inputs: ["itemType", "icon", "label", "active", "link", "queryParams", "children", "hierLevel", "indentSize", "expanded", "compact", "isMobile", "badgeText", "badgeTheme", "badgeSrContent", "badgeTooltip", "menuItemTooltipConfig", "menuItemTooltipDisabled"], exportAs: ["seamSideNavItem"] }, { kind: "component", type: SideNavToggleComponent, selector: "seam-side-nav-toggle", inputs: ["expanded"], outputs: ["toggleExpand"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
|
|
1739
1708
|
//
|
|
1740
1709
|
// TODO: This animation code turned into a mess. Clean it up and make it
|
|
1741
1710
|
// more smooth.
|
|
@@ -1758,42 +1727,32 @@ SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
|
|
|
1758
1727
|
transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),
|
|
1759
1728
|
]),
|
|
1760
1729
|
trigger('sideNavExpand', [
|
|
1761
|
-
// TODO: Make width configurable
|
|
1730
|
+
// TODO: Make width configurable.
|
|
1762
1731
|
state(EXPANDED_STATE, style({ width: '260px' })),
|
|
1763
1732
|
state(COLLAPSED_STATE, style({ width: '50px', 'overflow-x': 'hidden' })),
|
|
1764
1733
|
state(EXPANDED_OVERLAY_STATE, style({
|
|
1765
1734
|
position: 'absolute',
|
|
1766
1735
|
top: 0,
|
|
1736
|
+
height: '100%',
|
|
1767
1737
|
bottom: 0,
|
|
1768
1738
|
left: 0,
|
|
1769
|
-
|
|
1770
|
-
width: '{{ width }}',
|
|
1771
|
-
transform: '{{ origin }}',
|
|
1739
|
+
float: 'left',
|
|
1772
1740
|
zIndex: '9999',
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
height: '100%',
|
|
1777
|
-
width: 'calc(100vw - 50px)',
|
|
1778
|
-
}
|
|
1779
|
-
}),
|
|
1741
|
+
width: 'calc(100vw - 50px)',
|
|
1742
|
+
transform: 'translateX(0)'
|
|
1743
|
+
})),
|
|
1780
1744
|
state(COLLAPSED_OVERLAY_STATE, style({
|
|
1781
1745
|
position: 'absolute',
|
|
1782
1746
|
top: 0,
|
|
1747
|
+
height: '100%',
|
|
1783
1748
|
bottom: 0,
|
|
1784
1749
|
left: 0,
|
|
1785
|
-
|
|
1786
|
-
width: '{{ width }}',
|
|
1787
|
-
transform: '{{ origin }}',
|
|
1788
|
-
'overflow-x': 'hidden',
|
|
1750
|
+
float: 'left',
|
|
1789
1751
|
zIndex: '9999',
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
width: 'calc(100vw - 50px)',
|
|
1795
|
-
}
|
|
1796
|
-
}),
|
|
1752
|
+
width: 'calc(100vw - 50px)',
|
|
1753
|
+
transform: 'translateX(calc(-100vw + 50px))',
|
|
1754
|
+
'overflow-x': 'hidden'
|
|
1755
|
+
})),
|
|
1797
1756
|
// transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
|
|
1798
1757
|
transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),
|
|
1799
1758
|
// transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, [
|
|
@@ -1811,16 +1770,14 @@ SideNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
|
|
|
1811
1770
|
__decorate([
|
|
1812
1771
|
InputBoolean()
|
|
1813
1772
|
], SideNavComponent.prototype, "hasHeaderToggle", void 0);
|
|
1814
|
-
__decorate([
|
|
1815
|
-
InputNumber(10)
|
|
1816
|
-
], SideNavComponent.prototype, "indentSize", void 0);
|
|
1817
1773
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SideNavComponent, decorators: [{
|
|
1818
1774
|
type: Component,
|
|
1819
1775
|
args: [{ selector: 'seam-side-nav', providers: [
|
|
1820
1776
|
TheSeamSideNavService,
|
|
1821
1777
|
{
|
|
1822
1778
|
provide: THESEAM_SIDE_NAV_ACCESSOR,
|
|
1823
|
-
|
|
1779
|
+
// tslint:disable-next-line:no-use-before-declare
|
|
1780
|
+
useExisting: forwardRef(() => SideNavComponent)
|
|
1824
1781
|
},
|
|
1825
1782
|
], animations: [
|
|
1826
1783
|
//
|
|
@@ -1845,42 +1802,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1845
1802
|
transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),
|
|
1846
1803
|
]),
|
|
1847
1804
|
trigger('sideNavExpand', [
|
|
1848
|
-
// TODO: Make width configurable
|
|
1805
|
+
// TODO: Make width configurable.
|
|
1849
1806
|
state(EXPANDED_STATE, style({ width: '260px' })),
|
|
1850
1807
|
state(COLLAPSED_STATE, style({ width: '50px', 'overflow-x': 'hidden' })),
|
|
1851
1808
|
state(EXPANDED_OVERLAY_STATE, style({
|
|
1852
1809
|
position: 'absolute',
|
|
1853
1810
|
top: 0,
|
|
1811
|
+
height: '100%',
|
|
1854
1812
|
bottom: 0,
|
|
1855
1813
|
left: 0,
|
|
1856
|
-
|
|
1857
|
-
width: '{{ width }}',
|
|
1858
|
-
transform: '{{ origin }}',
|
|
1814
|
+
float: 'left',
|
|
1859
1815
|
zIndex: '9999',
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
height: '100%',
|
|
1864
|
-
width: 'calc(100vw - 50px)',
|
|
1865
|
-
}
|
|
1866
|
-
}),
|
|
1816
|
+
width: 'calc(100vw - 50px)',
|
|
1817
|
+
transform: 'translateX(0)'
|
|
1818
|
+
})),
|
|
1867
1819
|
state(COLLAPSED_OVERLAY_STATE, style({
|
|
1868
1820
|
position: 'absolute',
|
|
1869
1821
|
top: 0,
|
|
1822
|
+
height: '100%',
|
|
1870
1823
|
bottom: 0,
|
|
1871
1824
|
left: 0,
|
|
1872
|
-
|
|
1873
|
-
width: '{{ width }}',
|
|
1874
|
-
transform: '{{ origin }}',
|
|
1875
|
-
'overflow-x': 'hidden',
|
|
1825
|
+
float: 'left',
|
|
1876
1826
|
zIndex: '9999',
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
width: 'calc(100vw - 50px)',
|
|
1882
|
-
}
|
|
1883
|
-
}),
|
|
1827
|
+
width: 'calc(100vw - 50px)',
|
|
1828
|
+
transform: 'translateX(calc(-100vw + 50px))',
|
|
1829
|
+
'overflow-x': 'hidden'
|
|
1830
|
+
})),
|
|
1884
1831
|
// transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
|
|
1885
1832
|
transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),
|
|
1886
1833
|
// transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, [
|
|
@@ -1894,15 +1841,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1894
1841
|
// ])
|
|
1895
1842
|
// ]),
|
|
1896
1843
|
])
|
|
1897
|
-
],
|
|
1898
|
-
CommonModule,
|
|
1899
|
-
A11yModule,
|
|
1900
|
-
TheSeamScrollbarModule,
|
|
1901
|
-
TheSeamLayoutModule,
|
|
1902
|
-
PortalModule,
|
|
1903
|
-
SideNavItemComponent,
|
|
1904
|
-
SideNavToggleComponent,
|
|
1905
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"\n (click)=\"collapse()\"></div>\n\n<div\n class=\"side-nav-inner-wrapper\"\n [@sideNavExpand]=\"{\n value: _sideNavExpand,\n params: {\n origin: expandOriginTransform,\n height: expandHeight,\n width: expandWidth\n }\n }\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [toggleIcon]=\"toggleIcon\"\n [toggleTpl]=\"toggleTpl\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n <ng-template [cdkPortalOutlet]=\"_sideBarHeaderPortal\"></ng-template>\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <div class=\"side-nav--group side-nav--group--level-0\">\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [isMobile]=\"isMobile$ | async\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state?.active\"\n [expanded]=\"$any(item).__state?.expanded\"\n [hideEmptyIcon]=\"hideEmptyIcon\"\n [indentSize]=\"indentSize\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled$ | async\">\n </seam-side-nav-item>\n </div>\n </div>\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\n </nav>\n</div>\n", styles: ["seam-side-nav,.seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}seam-side-nav .side-nav-inner-wrapper,.seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}seam-side-nav .side-nav-backdrop,.seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-side-nav .side-nav-content,.seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-side-nav .side-nav-items-container,.seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}\n"] }]
|
|
1844
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [isMobile]=\"isMobile$ | async\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\"\n [menuItemTooltipConfig]=\"menuItemTooltipConfig\"\n [menuItemTooltipDisabled]=\"menuItemTooltipDisabled$ | async\">\n </seam-side-nav-item>\n </div>\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\n </nav>\n</div>\n", styles: ["seam-side-nav,.seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}seam-side-nav .side-nav-inner-wrapper,.seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}seam-side-nav .side-nav-backdrop,.seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-side-nav .side-nav-content,.seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-side-nav .side-nav-items-container,.seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}\n"] }]
|
|
1906
1845
|
}], ctorParameters: function () {
|
|
1907
1846
|
return [{ type: i0.ViewContainerRef }, { type: i1.TheSeamLayoutService }, { type: TheSeamSideNavService }, { type: undefined, decorators: [{
|
|
1908
1847
|
type: Optional
|
|
@@ -1915,33 +1854,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1915
1854
|
args: ['@sideNavAnim']
|
|
1916
1855
|
}], hasHeaderToggle: [{
|
|
1917
1856
|
type: Input
|
|
1918
|
-
}], toggleIcon: [{
|
|
1919
|
-
type: Input
|
|
1920
|
-
}], toggleTpl: [{
|
|
1921
|
-
type: Input
|
|
1922
1857
|
}], items: [{
|
|
1923
1858
|
type: Input
|
|
1924
|
-
}], hideEmptyIcon: [{
|
|
1925
|
-
type: Input
|
|
1926
|
-
}], indentSize: [{
|
|
1927
|
-
type: Input
|
|
1928
1859
|
}], expanded: [{
|
|
1929
1860
|
type: Input
|
|
1930
|
-
}], expandOrigin: [{
|
|
1931
|
-
type: Input
|
|
1932
|
-
}], expandHeight: [{
|
|
1933
|
-
type: Input
|
|
1934
|
-
}], expandWidth: [{
|
|
1935
|
-
type: Input
|
|
1936
1861
|
}], overlay: [{
|
|
1937
1862
|
type: Input
|
|
1938
1863
|
}], menuItemTooltipConfig: [{
|
|
1939
1864
|
type: Input
|
|
1940
1865
|
}], toggleExpand: [{
|
|
1941
1866
|
type: Output
|
|
1942
|
-
}], _sideBarHeaderTpl: [{
|
|
1943
|
-
type: ContentChild,
|
|
1944
|
-
args: [BaseLayoutSideBarHeaderDirective, { static: true, read: TemplateRef }]
|
|
1945
1867
|
}], _sideBarFooterTpl: [{
|
|
1946
1868
|
type: ContentChild,
|
|
1947
1869
|
args: [BaseLayoutSideBarFooterDirective, { static: true, read: TemplateRef }]
|
|
@@ -1950,26 +1872,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1950
1872
|
class TheSeamSideNavModule {
|
|
1951
1873
|
}
|
|
1952
1874
|
TheSeamSideNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1953
|
-
TheSeamSideNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule,
|
|
1954
|
-
SideNavComponent,
|
|
1955
|
-
SideNavToggleComponent], exports: [SideNavItemComponent,
|
|
1875
|
+
TheSeamSideNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule, declarations: [SideNavItemComponent,
|
|
1956
1876
|
SideNavComponent,
|
|
1957
|
-
SideNavToggleComponent]
|
|
1958
|
-
|
|
1877
|
+
SideNavToggleComponent], imports: [CommonModule,
|
|
1878
|
+
RouterModule,
|
|
1879
|
+
TheSeamIconModule,
|
|
1880
|
+
A11yModule,
|
|
1881
|
+
TheSeamScrollbarModule,
|
|
1882
|
+
TheSeamLayoutModule,
|
|
1883
|
+
NgbTooltipModule,
|
|
1884
|
+
PortalModule], exports: [SideNavItemComponent,
|
|
1959
1885
|
SideNavComponent,
|
|
1960
1886
|
SideNavToggleComponent] });
|
|
1887
|
+
TheSeamSideNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule, imports: [CommonModule,
|
|
1888
|
+
RouterModule,
|
|
1889
|
+
TheSeamIconModule,
|
|
1890
|
+
A11yModule,
|
|
1891
|
+
TheSeamScrollbarModule,
|
|
1892
|
+
TheSeamLayoutModule,
|
|
1893
|
+
NgbTooltipModule,
|
|
1894
|
+
PortalModule] });
|
|
1961
1895
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSideNavModule, decorators: [{
|
|
1962
1896
|
type: NgModule,
|
|
1963
1897
|
args: [{
|
|
1964
|
-
|
|
1898
|
+
declarations: [
|
|
1965
1899
|
SideNavItemComponent,
|
|
1966
1900
|
SideNavComponent,
|
|
1967
|
-
SideNavToggleComponent
|
|
1901
|
+
SideNavToggleComponent
|
|
1902
|
+
],
|
|
1903
|
+
imports: [
|
|
1904
|
+
CommonModule,
|
|
1905
|
+
RouterModule,
|
|
1906
|
+
TheSeamIconModule,
|
|
1907
|
+
A11yModule,
|
|
1908
|
+
TheSeamScrollbarModule,
|
|
1909
|
+
TheSeamLayoutModule,
|
|
1910
|
+
NgbTooltipModule,
|
|
1911
|
+
PortalModule
|
|
1968
1912
|
],
|
|
1969
1913
|
exports: [
|
|
1970
1914
|
SideNavItemComponent,
|
|
1971
1915
|
SideNavComponent,
|
|
1972
|
-
SideNavToggleComponent
|
|
1916
|
+
SideNavToggleComponent
|
|
1973
1917
|
]
|
|
1974
1918
|
}]
|
|
1975
1919
|
}] });
|
|
@@ -1989,7 +1933,7 @@ class TopBarMenuButtonComponent extends _TopBarMenuButtonMixinBase {
|
|
|
1989
1933
|
get _hasBtnLinkClass() { return !this.compact; }
|
|
1990
1934
|
}
|
|
1991
1935
|
TopBarMenuButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TopBarMenuButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1992
|
-
TopBarMenuButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TopBarMenuButtonComponent, selector: "button[seamTopBarMenuButton]", inputs: { disabled: "disabled", detailTpl: "detailTpl",
|
|
1936
|
+
TopBarMenuButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TopBarMenuButtonComponent, selector: "button[seamTopBarMenuButton]", inputs: { disabled: "disabled", detailTpl: "detailTpl", compact: "compact", profileIcon: "profileIcon" }, host: { attributes: { "attr.type": "button" }, properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null", "class.top-bar-menu-button--compact": "this._hasCompactClass", "class.p-0": "this._hasPadding0Class", "class.rounded": "this._hasRoundedClass", "class.btn-link": "this._hasBtnLinkClass" }, classAttribute: "btn border text-decoration-none py-0" }, exportAs: ["seamButton"], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-row\" *ngIf=\"!compact; else compactTpl\">\n <div class=\"text-left flex-grow-1 text-truncate\">\n <ng-template [ngTemplateOutlet]=\"$any(detailTpl)\"></ng-template>\n </div>\n <!-- Arrow Button -->\n <div class=\"pl-2 d-flex flex-column\">\n <div class=\"flex-grow-1\"></div>\n <seam-icon class=\"d-block\" [icon]=\"faAngleDown\"></seam-icon>\n <div class=\"flex-grow-1\"></div>\n </div>\n</div>\n<ng-template #compactTpl>\n <seam-icon [icon]=\"profileIcon\" iconType=\"borderless-styled-square\"></seam-icon>\n</ng-template>\n", styles: ["button[seamTopBarMenuButton]{min-width:200px;border-radius:0;border-top:0!important;border-bottom:0!important;border-right:0!important}button[seamTopBarMenuButton].top-bar-menu-button--compact{min-width:40px;border-left:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1993
1937
|
__decorate([
|
|
1994
1938
|
InputBoolean()
|
|
1995
1939
|
], TopBarMenuButtonComponent.prototype, "compact", void 0);
|
|
@@ -1997,14 +1941,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1997
1941
|
type: Component,
|
|
1998
1942
|
args: [{ selector: 'button[seamTopBarMenuButton]', encapsulation: ViewEncapsulation.None, exportAs: 'seamButton', inputs: ['disabled'], host: {
|
|
1999
1943
|
'attr.type': 'button',
|
|
2000
|
-
'class': 'btn border text-decoration-none py-0
|
|
1944
|
+
'class': 'btn border text-decoration-none py-0',
|
|
2001
1945
|
'[attr.aria-disabled]': 'disabled.toString()',
|
|
2002
1946
|
'[attr.disabled]': 'disabled || null',
|
|
2003
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\" *ngIf=\"!compact; else compactTpl\">\n <div class=\"text-left flex-grow-1 text-truncate\">\n <ng-template [ngTemplateOutlet]=\"$any(detailTpl)\"></ng-template>\n </div>\n <!-- Arrow Button -->\n <div class=\"pl-2 d-flex flex-column\">\n <div class=\"flex-grow-1\"></div>\n <seam-icon class=\"d-block\" [icon]=\"faAngleDown\"></seam-icon>\n <div class=\"flex-grow-1\"></div>\n </div>\n</div>\n<ng-template #compactTpl>\n <
|
|
1947
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex flex-row\" *ngIf=\"!compact; else compactTpl\">\n <div class=\"text-left flex-grow-1 text-truncate\">\n <ng-template [ngTemplateOutlet]=\"$any(detailTpl)\"></ng-template>\n </div>\n <!-- Arrow Button -->\n <div class=\"pl-2 d-flex flex-column\">\n <div class=\"flex-grow-1\"></div>\n <seam-icon class=\"d-block\" [icon]=\"faAngleDown\"></seam-icon>\n <div class=\"flex-grow-1\"></div>\n </div>\n</div>\n<ng-template #compactTpl>\n <seam-icon [icon]=\"profileIcon\" iconType=\"borderless-styled-square\"></seam-icon>\n</ng-template>\n", styles: ["button[seamTopBarMenuButton]{min-width:200px;border-radius:0;border-top:0!important;border-bottom:0!important;border-right:0!important}button[seamTopBarMenuButton].top-bar-menu-button--compact{min-width:40px;border-left:0!important}\n"] }]
|
|
2004
1948
|
}], propDecorators: { detailTpl: [{
|
|
2005
1949
|
type: Input
|
|
2006
|
-
}], compactDetailTpl: [{
|
|
2007
|
-
type: Input
|
|
2008
1950
|
}], compact: [{
|
|
2009
1951
|
type: Input
|
|
2010
1952
|
}], profileIcon: [{
|
|
@@ -2036,53 +1978,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2036
1978
|
type: Input
|
|
2037
1979
|
}] } });
|
|
2038
1980
|
|
|
2039
|
-
class TopBarCompactMenuBtnDetailDirective {
|
|
2040
|
-
constructor(template) {
|
|
2041
|
-
this.template = template;
|
|
2042
|
-
}
|
|
2043
|
-
}
|
|
2044
|
-
TopBarCompactMenuBtnDetailDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TopBarCompactMenuBtnDetailDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2045
|
-
TopBarCompactMenuBtnDetailDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TopBarCompactMenuBtnDetailDirective, selector: "[seamTopBarCompactMenuBtnDetail]", ngImport: i0 });
|
|
2046
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TopBarCompactMenuBtnDetailDirective, decorators: [{
|
|
2047
|
-
type: Directive,
|
|
2048
|
-
args: [{
|
|
2049
|
-
selector: '[seamTopBarCompactMenuBtnDetail]'
|
|
2050
|
-
}]
|
|
2051
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
2052
|
-
|
|
2053
|
-
class TopBarNavToggleBtnDetailDirective {
|
|
2054
|
-
constructor(template) {
|
|
2055
|
-
this.template = template;
|
|
2056
|
-
}
|
|
2057
|
-
}
|
|
2058
|
-
TopBarNavToggleBtnDetailDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TopBarNavToggleBtnDetailDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2059
|
-
TopBarNavToggleBtnDetailDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TopBarNavToggleBtnDetailDirective, selector: "[seamTopBarNavToggleBtnDetail]", ngImport: i0 });
|
|
2060
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TopBarNavToggleBtnDetailDirective, decorators: [{
|
|
2061
|
-
type: Directive,
|
|
2062
|
-
args: [{
|
|
2063
|
-
selector: '[seamTopBarNavToggleBtnDetail]'
|
|
2064
|
-
}]
|
|
2065
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
2066
|
-
|
|
2067
1981
|
class TopBarItemDirective {
|
|
2068
|
-
set seamTopBarItem(value) {
|
|
2069
|
-
this.position = value;
|
|
2070
|
-
}
|
|
2071
1982
|
constructor(template) {
|
|
2072
1983
|
this.template = template;
|
|
2073
|
-
this.position = 'right';
|
|
2074
1984
|
}
|
|
2075
1985
|
}
|
|
2076
1986
|
TopBarItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TopBarItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2077
|
-
TopBarItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TopBarItemDirective, selector: "[seamTopBarItem]",
|
|
1987
|
+
TopBarItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TopBarItemDirective, selector: "[seamTopBarItem]", ngImport: i0 });
|
|
2078
1988
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TopBarItemDirective, decorators: [{
|
|
2079
1989
|
type: Directive,
|
|
2080
1990
|
args: [{
|
|
2081
1991
|
selector: '[seamTopBarItem]'
|
|
2082
1992
|
}]
|
|
2083
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }
|
|
2084
|
-
type: Input
|
|
2085
|
-
}] } });
|
|
1993
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
2086
1994
|
|
|
2087
1995
|
class TopBarMenuBtnDetailDirective {
|
|
2088
1996
|
constructor(template) {
|
|
@@ -2140,26 +2048,8 @@ class TheSeamTopBarComponent {
|
|
|
2140
2048
|
this.logoRoute = '/';
|
|
2141
2049
|
/** Determines if the title should be displayed. */
|
|
2142
2050
|
this.hasTitle = false;
|
|
2143
|
-
/** Determines if the top bar button should be displayed. */
|
|
2144
|
-
this.hasTopBarMenuButton = true;
|
|
2145
2051
|
/** Icon to display on mobile to activate profile dropdown. Defaults to faUserCircle. */
|
|
2146
2052
|
this.profileIcon = faUserCircle;
|
|
2147
|
-
/** Icon to display for mobile nav toggle. Defaults to faBars. */
|
|
2148
|
-
this.toggleIcon = faBars;
|
|
2149
|
-
/** Display nav toggle on either left or right side of top bar. Defaults to left. */
|
|
2150
|
-
this.navToggleAlign = 'left';
|
|
2151
|
-
/** @ignore */
|
|
2152
|
-
this._leftItems = new BehaviorSubject([]);
|
|
2153
|
-
/** Additional templates to display on left side of top bar */
|
|
2154
|
-
this.leftItems$ = this._leftItems.asObservable();
|
|
2155
|
-
/** @ignore */
|
|
2156
|
-
this._centerItems = new BehaviorSubject([]);
|
|
2157
|
-
/** Additional templates to display in center of top bar */
|
|
2158
|
-
this.centerItems$ = this._centerItems.asObservable();
|
|
2159
|
-
/** @ignore */
|
|
2160
|
-
this._rightItems = new BehaviorSubject([]);
|
|
2161
|
-
/** Additional templates to display on right side of top bar */
|
|
2162
|
-
this.rightItems$ = this._rightItems.asObservable();
|
|
2163
2053
|
this.isMobile$ = this._layout.isMobile$;
|
|
2164
2054
|
}
|
|
2165
2055
|
/** @ignore */
|
|
@@ -2170,30 +2060,18 @@ class TheSeamTopBarComponent {
|
|
|
2170
2060
|
/** @ignore */
|
|
2171
2061
|
ngAfterContentInit() {
|
|
2172
2062
|
if (this._topBarItems) {
|
|
2173
|
-
this._topBarItems.changes.pipe(startWith(undefined), takeUntil(this._ngUnsubscribe), map(() => {
|
|
2174
|
-
var _a;
|
|
2175
|
-
const items = ((_a = this._topBarItems) === null || _a === void 0 ? void 0 : _a.toArray()) || [];
|
|
2176
|
-
const left = items.filter(i => i.position === 'left');
|
|
2177
|
-
const right = items.filter(i => i.position === 'right');
|
|
2178
|
-
const center = items.filter(i => i.position === 'center');
|
|
2179
|
-
this._leftItems.next(left);
|
|
2180
|
-
this._rightItems.next(right);
|
|
2181
|
-
this._centerItems.next(center);
|
|
2182
|
-
}), shareReplay({ bufferSize: 1, refCount: true })).subscribe();
|
|
2063
|
+
this._items$ = this._topBarItems.changes.pipe(startWith(undefined), takeUntil(this._ngUnsubscribe), map(() => { var _a; return ((_a = this._topBarItems) === null || _a === void 0 ? void 0 : _a.toArray()) || []; }), shareReplay({ bufferSize: 1, refCount: true }));
|
|
2183
2064
|
}
|
|
2184
2065
|
}
|
|
2185
2066
|
}
|
|
2186
2067
|
TheSeamTopBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTopBarComponent, deps: [{ token: i1.TheSeamLayoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2187
|
-
TheSeamTopBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamTopBarComponent, selector: "seam-top-bar", inputs: { logo: "logo", logoSm: "logoSm", logoHref: "logoHref", logoHrefTarget: "logoHrefTarget", logoRoute: "logoRoute", hasTitle: "hasTitle", titleText: "titleText", subTitleText: "subTitleText",
|
|
2068
|
+
TheSeamTopBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamTopBarComponent, selector: "seam-top-bar", inputs: { logo: "logo", logoSm: "logoSm", logoHref: "logoHref", logoHrefTarget: "logoHrefTarget", logoRoute: "logoRoute", hasTitle: "hasTitle", titleText: "titleText", subTitleText: "subTitleText", profileIcon: "profileIcon" }, queries: [{ propertyName: "_topBarMenu", first: true, predicate: TopBarMenuDirective, descendants: true, static: true }, { propertyName: "_topBarMenuBtnDetailTpl", first: true, predicate: TopBarMenuBtnDetailDirective, descendants: true }, { propertyName: "_topBarItems", predicate: TopBarItemDirective }], exportAs: ["seamTopBar"], ngImport: i0, template: "<!-- Nav Toggle -->\n<div class=\"d-flex flex-column justify-content-center pr-2\" *ngIf=\"isMobile$ | async\">\n <button seamBaseLayoutNavToggle seamIconBtn [icon]=\"faBars\" iconType=\"borderless-styled-square\"></button>\n</div>\n\n<!-- Logo -->\n<div class=\"top-bar--logo d-flex flex-column justify-content-center\" *ngIf=\"logoHref; else useLogoRoute\"\n [class.top-bar--logo-mobile]=\"isMobile$ | async\">\n <a [href]=\"logoHref\" [target]=\"logoHrefTarget\">\n <div>\n <img *ngIf=\"logo\" [src]=\"logo\" [src.lt-md]=\"hasTitle ? logoSm : logo\" alt=\"Logo\">\n </div>\n </a>\n</div>\n\n<ng-template #useLogoRoute>\n <div class=\"top-bar--logo d-flex flex-column justify-content-center\" [routerLink]=\"logoRoute\"\n [class.top-bar--logo-mobile]=\"isMobile$ | async\">\n <div>\n <img *ngIf=\"logo\" [src]=\"logo\" [src.lt-md]=\"hasTitle ? logoSm : logo\" alt=\"Logo\">\n </div>\n </div>\n</ng-template>\n\n<!-- Title -->\n<div class=\"d-flex flex-column flex-grow-1\">\n <seam-top-bar-title *ngIf=\"hasTitle\"\n [titleText]=\"titleText\"\n [subTitleText]=\"subTitleText\"\n [class.ml-2]=\"isMobile$ | async\">\n </seam-top-bar-title>\n</div>\n\n<!-- Items -->\n<div class=\"top-bar-icon-container mr-2\">\n <ng-container *ngFor=\"let item of _items$ | async\">\n <ng-template [ngTemplateOutlet]=\"item.template\"></ng-template>\n </ng-container>\n</div>\n\n<!-- Menu -->\n<button seamTopBarMenuButton\n [seamMenuToggle]=\"_topBarMenu?.menu\"\n [detailTpl]=\"_topBarMenuBtnDetailTpl?.template\"\n [compact]=\"isMobile$ | async\"\n [profileIcon]=\"profileIcon\">\n</button>\n", styles: ["seam-top-bar{display:flex;flex:1 1 100%;flex-direction:row;background:white;margin:0;padding:8px;border-radius:0;box-shadow:none}.top-bar--logo{flex:0 0 auto;overflow:hidden;cursor:pointer}.top-bar--logo img{height:auto;max-height:60px;width:auto;max-width:200px}.top-bar--logo.top-bar--logo-mobile img{height:auto;max-height:40px;width:auto;max-width:150px}.top-bar-icon-container{margin:auto 0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.DefaultImgSrcDirective, selector: " img[src.xs], img[src.sm], img[src.md], img[src.lg], img[src.xl], img[src.lt-sm], img[src.lt-md], img[src.lt-lg], img[src.lt-xl], img[src.gt-xs], img[src.gt-sm], img[src.gt-md], img[src.gt-lg]", inputs: ["src.xs", "src.sm", "src.md", "src.lg", "src.xl", "src.lt-sm", "src.lt-md", "src.lt-lg", "src.lt-xl", "src.gt-xs", "src.gt-sm", "src.gt-md", "src.gt-lg"] }, { kind: "component", type: i2$1.IconBtnComponent, selector: "button[seamIconBtn]", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "iconType", "btnTheme", "badgeTheme", "badgeText", "btnSize", "type", "role"] }, { kind: "directive", type: i3$2.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "directive", type: BaseLayoutNavToggleDirective, selector: "button[seamBaseLayoutNavToggle]", inputs: ["type", "aria-label"], exportAs: ["seamBaseLayoutNavToggle"] }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: TopBarTitleComponent, selector: "seam-top-bar-title", inputs: ["titleText", "subTitleText"] }, { kind: "component", type: TopBarMenuButtonComponent, selector: "button[seamTopBarMenuButton]", inputs: ["disabled", "detailTpl", "compact", "profileIcon"], exportAs: ["seamButton"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2188
2069
|
__decorate([
|
|
2189
2070
|
InputBoolean()
|
|
2190
2071
|
], TheSeamTopBarComponent.prototype, "hasTitle", void 0);
|
|
2191
|
-
__decorate([
|
|
2192
|
-
InputBoolean()
|
|
2193
|
-
], TheSeamTopBarComponent.prototype, "hasTopBarMenuButton", void 0);
|
|
2194
2072
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTopBarComponent, decorators: [{
|
|
2195
2073
|
type: Component,
|
|
2196
|
-
args: [{ selector: 'seam-top-bar', encapsulation: ViewEncapsulation.None, exportAs: 'seamTopBar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"
|
|
2074
|
+
args: [{ selector: 'seam-top-bar', encapsulation: ViewEncapsulation.None, exportAs: 'seamTopBar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Nav Toggle -->\n<div class=\"d-flex flex-column justify-content-center pr-2\" *ngIf=\"isMobile$ | async\">\n <button seamBaseLayoutNavToggle seamIconBtn [icon]=\"faBars\" iconType=\"borderless-styled-square\"></button>\n</div>\n\n<!-- Logo -->\n<div class=\"top-bar--logo d-flex flex-column justify-content-center\" *ngIf=\"logoHref; else useLogoRoute\"\n [class.top-bar--logo-mobile]=\"isMobile$ | async\">\n <a [href]=\"logoHref\" [target]=\"logoHrefTarget\">\n <div>\n <img *ngIf=\"logo\" [src]=\"logo\" [src.lt-md]=\"hasTitle ? logoSm : logo\" alt=\"Logo\">\n </div>\n </a>\n</div>\n\n<ng-template #useLogoRoute>\n <div class=\"top-bar--logo d-flex flex-column justify-content-center\" [routerLink]=\"logoRoute\"\n [class.top-bar--logo-mobile]=\"isMobile$ | async\">\n <div>\n <img *ngIf=\"logo\" [src]=\"logo\" [src.lt-md]=\"hasTitle ? logoSm : logo\" alt=\"Logo\">\n </div>\n </div>\n</ng-template>\n\n<!-- Title -->\n<div class=\"d-flex flex-column flex-grow-1\">\n <seam-top-bar-title *ngIf=\"hasTitle\"\n [titleText]=\"titleText\"\n [subTitleText]=\"subTitleText\"\n [class.ml-2]=\"isMobile$ | async\">\n </seam-top-bar-title>\n</div>\n\n<!-- Items -->\n<div class=\"top-bar-icon-container mr-2\">\n <ng-container *ngFor=\"let item of _items$ | async\">\n <ng-template [ngTemplateOutlet]=\"item.template\"></ng-template>\n </ng-container>\n</div>\n\n<!-- Menu -->\n<button seamTopBarMenuButton\n [seamMenuToggle]=\"_topBarMenu?.menu\"\n [detailTpl]=\"_topBarMenuBtnDetailTpl?.template\"\n [compact]=\"isMobile$ | async\"\n [profileIcon]=\"profileIcon\">\n</button>\n", styles: ["seam-top-bar{display:flex;flex:1 1 100%;flex-direction:row;background:white;margin:0;padding:8px;border-radius:0;box-shadow:none}.top-bar--logo{flex:0 0 auto;overflow:hidden;cursor:pointer}.top-bar--logo img{height:auto;max-height:60px;width:auto;max-width:200px}.top-bar--logo.top-bar--logo-mobile img{height:auto;max-height:40px;width:auto;max-width:150px}.top-bar-icon-container{margin:auto 0}\n"] }]
|
|
2197
2075
|
}], ctorParameters: function () { return [{ type: i1.TheSeamLayoutService }]; }, propDecorators: { _topBarMenu: [{
|
|
2198
2076
|
type: ContentChild,
|
|
2199
2077
|
args: [TopBarMenuDirective, { static: true }]
|
|
@@ -2203,12 +2081,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2203
2081
|
}], _topBarMenuBtnDetailTpl: [{
|
|
2204
2082
|
type: ContentChild,
|
|
2205
2083
|
args: [TopBarMenuBtnDetailDirective]
|
|
2206
|
-
}], _topBarCompactMenuBtnDetailTpl: [{
|
|
2207
|
-
type: ContentChild,
|
|
2208
|
-
args: [TopBarCompactMenuBtnDetailDirective]
|
|
2209
|
-
}], _topBarNavToggleBtnDetailTpl: [{
|
|
2210
|
-
type: ContentChild,
|
|
2211
|
-
args: [TopBarNavToggleBtnDetailDirective]
|
|
2212
2084
|
}], logo: [{
|
|
2213
2085
|
type: Input
|
|
2214
2086
|
}], logoSm: [{
|
|
@@ -2225,14 +2097,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2225
2097
|
type: Input
|
|
2226
2098
|
}], subTitleText: [{
|
|
2227
2099
|
type: Input
|
|
2228
|
-
}], hasTopBarMenuButton: [{
|
|
2229
|
-
type: Input
|
|
2230
2100
|
}], profileIcon: [{
|
|
2231
2101
|
type: Input
|
|
2232
|
-
}], toggleIcon: [{
|
|
2233
|
-
type: Input
|
|
2234
|
-
}], navToggleAlign: [{
|
|
2235
|
-
type: Input
|
|
2236
2102
|
}] } });
|
|
2237
2103
|
|
|
2238
2104
|
class TheSeamTopBarModule {
|
|
@@ -2243,9 +2109,7 @@ TheSeamTopBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
|
|
|
2243
2109
|
TopBarMenuButtonComponent,
|
|
2244
2110
|
TopBarMenuDirective,
|
|
2245
2111
|
TopBarItemDirective,
|
|
2246
|
-
TopBarMenuBtnDetailDirective,
|
|
2247
|
-
TopBarCompactMenuBtnDetailDirective,
|
|
2248
|
-
TopBarNavToggleBtnDetailDirective], imports: [CommonModule,
|
|
2112
|
+
TopBarMenuBtnDetailDirective], imports: [CommonModule,
|
|
2249
2113
|
TheSeamLayoutModule,
|
|
2250
2114
|
TheSeamButtonsModule,
|
|
2251
2115
|
TheSeamIconModule,
|
|
@@ -2256,9 +2120,7 @@ TheSeamTopBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
|
|
|
2256
2120
|
TopBarMenuDirective,
|
|
2257
2121
|
TheSeamMenuModule,
|
|
2258
2122
|
TopBarItemDirective,
|
|
2259
|
-
TopBarMenuBtnDetailDirective
|
|
2260
|
-
TopBarCompactMenuBtnDetailDirective,
|
|
2261
|
-
TopBarNavToggleBtnDetailDirective] });
|
|
2123
|
+
TopBarMenuBtnDetailDirective] });
|
|
2262
2124
|
TheSeamTopBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTopBarModule, imports: [CommonModule,
|
|
2263
2125
|
TheSeamLayoutModule,
|
|
2264
2126
|
TheSeamButtonsModule,
|
|
@@ -2275,9 +2137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2275
2137
|
TopBarMenuButtonComponent,
|
|
2276
2138
|
TopBarMenuDirective,
|
|
2277
2139
|
TopBarItemDirective,
|
|
2278
|
-
TopBarMenuBtnDetailDirective
|
|
2279
|
-
TopBarCompactMenuBtnDetailDirective,
|
|
2280
|
-
TopBarNavToggleBtnDetailDirective
|
|
2140
|
+
TopBarMenuBtnDetailDirective
|
|
2281
2141
|
],
|
|
2282
2142
|
imports: [
|
|
2283
2143
|
CommonModule,
|
|
@@ -2294,9 +2154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2294
2154
|
TopBarMenuDirective,
|
|
2295
2155
|
TheSeamMenuModule,
|
|
2296
2156
|
TopBarItemDirective,
|
|
2297
|
-
TopBarMenuBtnDetailDirective
|
|
2298
|
-
TopBarCompactMenuBtnDetailDirective,
|
|
2299
|
-
TopBarNavToggleBtnDetailDirective
|
|
2157
|
+
TopBarMenuBtnDetailDirective
|
|
2300
2158
|
]
|
|
2301
2159
|
}]
|
|
2302
2160
|
}] });
|
|
@@ -2962,7 +2820,7 @@ class TheSeamSchemaFormSubmitSplitComponent {
|
|
|
2962
2820
|
}
|
|
2963
2821
|
}
|
|
2964
2822
|
TheSeamSchemaFormSubmitSplitComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormSubmitSplitComponent, deps: [{ token: i1$3.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2965
|
-
TheSeamSchemaFormSubmitSplitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormSubmitSplitComponent, selector: "seam-schema-form-submit-split", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<div\n [class]=\"options?.htmlClass || ''\">\n <div [class.btn-group]=\"_dropdownObj\">\n <button seamButton theme=\"primary\" type=\"submit\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [class]=\"'btn btn-primary ' + (options?.fieldHtmlClass || '')\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n {{ _buttonLabel }}\n <span *ngIf=\"_selectedItem\">\n [{{ _selectedItem.name }}]\n </span>\n </button>\n <ng-container *ngIf=\"_dropdownObj\">\n <button\n [seamMenuToggle]=\"menu\" seamButton theme=\"primary\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [disabled]=\"_dropdownDisabled\">\n <span class=\"sr-only\">Toggle Dropdown</span>\n </button>\n <seam-menu #menu>\n <ng-container *ngFor=\"let item of _selectList\">\n <button seamMenuItem\n [class.active]=\"item.checked\"\n (click)=\"_setDropdownValue(item.value)\">\n {{ item.name }}\n </button>\n </ng-container>\n </seam-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i3$2.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["
|
|
2823
|
+
TheSeamSchemaFormSubmitSplitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormSubmitSplitComponent, selector: "seam-schema-form-submit-split", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<div\n [class]=\"options?.htmlClass || ''\">\n <div [class.btn-group]=\"_dropdownObj\">\n <button seamButton theme=\"primary\" type=\"submit\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [class]=\"'btn btn-primary ' + (options?.fieldHtmlClass || '')\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n {{ _buttonLabel }}\n <span *ngIf=\"_selectedItem\">\n [{{ _selectedItem.name }}]\n </span>\n </button>\n <ng-container *ngIf=\"_dropdownObj\">\n <button\n [seamMenuToggle]=\"menu\" seamButton theme=\"primary\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [disabled]=\"_dropdownDisabled\">\n <span class=\"sr-only\">Toggle Dropdown</span>\n </button>\n <seam-menu #menu>\n <ng-container *ngFor=\"let item of _selectList\">\n <button seamMenuItem\n [class.active]=\"item.checked\"\n (click)=\"_setDropdownValue(item.value)\">\n {{ item.name }}\n </button>\n </ng-container>\n </seam-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i3$2.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i3$2.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i4$1.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }] });
|
|
2966
2824
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormSubmitSplitComponent, decorators: [{
|
|
2967
2825
|
type: Component,
|
|
2968
2826
|
args: [{ selector: 'seam-schema-form-submit-split', template: "<div\n [class]=\"options?.htmlClass || ''\">\n <div [class.btn-group]=\"_dropdownObj\">\n <button seamButton theme=\"primary\" type=\"submit\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [class]=\"'btn btn-primary ' + (options?.fieldHtmlClass || '')\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n {{ _buttonLabel }}\n <span *ngIf=\"_selectedItem\">\n [{{ _selectedItem.name }}]\n </span>\n </button>\n <ng-container *ngIf=\"_dropdownObj\">\n <button\n [seamMenuToggle]=\"menu\" seamButton theme=\"primary\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [disabled]=\"_dropdownDisabled\">\n <span class=\"sr-only\">Toggle Dropdown</span>\n </button>\n <seam-menu #menu>\n <ng-container *ngFor=\"let item of _selectList\">\n <button seamMenuItem\n [class.active]=\"item.checked\"\n (click)=\"_setDropdownValue(item.value)\">\n {{ item.name }}\n </button>\n </ng-container>\n </seam-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
@@ -3160,616 +3018,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
3160
3018
|
}]
|
|
3161
3019
|
}] });
|
|
3162
3020
|
|
|
3163
|
-
function isHorizontalNavItemType(item, type) {
|
|
3164
|
-
return item.itemType === type;
|
|
3165
|
-
}
|
|
3166
|
-
function isHorizontalNavItemActive(item) {
|
|
3167
|
-
var _a, _b;
|
|
3168
|
-
return (_b = (_a = item.__state) === null || _a === void 0 ? void 0 : _a.active) !== null && _b !== void 0 ? _b : false;
|
|
3169
|
-
}
|
|
3170
|
-
function isHorizontalNavItemExpanded(item) {
|
|
3171
|
-
var _a, _b;
|
|
3172
|
-
return (_b = (_a = item.__state) === null || _a === void 0 ? void 0 : _a.expanded) !== null && _b !== void 0 ? _b : false;
|
|
3173
|
-
}
|
|
3174
|
-
function isHorizontalNavItemFocused(item) {
|
|
3175
|
-
var _a, _b;
|
|
3176
|
-
return (_b = (_a = item.__state) === null || _a === void 0 ? void 0 : _a.focused) !== null && _b !== void 0 ? _b : false;
|
|
3177
|
-
}
|
|
3178
|
-
function horizontalNavItemHasChildren(item) {
|
|
3179
|
-
return horizontalNavItemCanHaveChildren(item) && hasProperty(item, 'children') && item.children.length > 0;
|
|
3180
|
-
}
|
|
3181
|
-
function horizontalNavItemCanHaveChildren(item) {
|
|
3182
|
-
return isHorizontalNavItemType(item, 'basic') || isHorizontalNavItemType(item, 'link');
|
|
3183
|
-
}
|
|
3184
|
-
function horizontalNavItemHasActiveChild(item) {
|
|
3185
|
-
if (!horizontalNavItemHasChildren(item)) {
|
|
3186
|
-
return false;
|
|
3187
|
-
}
|
|
3188
|
-
for (const child of item.children) {
|
|
3189
|
-
if (getHorizontalNavItemStateProp(child, 'active') || horizontalNavItemHasActiveChild(child)) {
|
|
3190
|
-
return true;
|
|
3191
|
-
}
|
|
3192
|
-
}
|
|
3193
|
-
return false;
|
|
3194
|
-
}
|
|
3195
|
-
function horizontalNavItemHasExpandedChild(item) {
|
|
3196
|
-
if (!horizontalNavItemHasChildren(item)) {
|
|
3197
|
-
return false;
|
|
3198
|
-
}
|
|
3199
|
-
for (const child of item.children) {
|
|
3200
|
-
if (getHorizontalNavItemStateProp(child, 'expanded')) {
|
|
3201
|
-
return true;
|
|
3202
|
-
}
|
|
3203
|
-
}
|
|
3204
|
-
return false;
|
|
3205
|
-
}
|
|
3206
|
-
function horizontalNavItemCanBeActive(item) {
|
|
3207
|
-
return isHorizontalNavItemType(item, 'basic') || isHorizontalNavItemType(item, 'link');
|
|
3208
|
-
}
|
|
3209
|
-
function horizontalNavItemCanExpand(item) {
|
|
3210
|
-
return horizontalNavItemCanHaveChildren(item);
|
|
3211
|
-
}
|
|
3212
|
-
function findHorizontalNavLinkItems(items) {
|
|
3213
|
-
const linkItems = [];
|
|
3214
|
-
const _fn = (_items) => {
|
|
3215
|
-
for (const item of _items) {
|
|
3216
|
-
if (isHorizontalNavItemType(item, 'link')) {
|
|
3217
|
-
linkItems.push(item);
|
|
3218
|
-
}
|
|
3219
|
-
if (horizontalNavItemCanHaveChildren(item) && hasProperty(item, 'children')) {
|
|
3220
|
-
_fn(item.children);
|
|
3221
|
-
}
|
|
3222
|
-
}
|
|
3223
|
-
};
|
|
3224
|
-
_fn(items);
|
|
3225
|
-
return linkItems;
|
|
3226
|
-
}
|
|
3227
|
-
function setHorizontalNavItemStateProp(item, prop, value) {
|
|
3228
|
-
if (hasProperty(item, '__state')) {
|
|
3229
|
-
item.__state[prop] = value;
|
|
3230
|
-
}
|
|
3231
|
-
}
|
|
3232
|
-
function getHorizontalNavItemStateProp(item, prop) {
|
|
3233
|
-
return setDefaultHorizontalNavItemState(item).__state[prop];
|
|
3234
|
-
}
|
|
3235
|
-
function setDefaultHorizontalNavItemState(item) {
|
|
3236
|
-
if (hasProperty(item, '__state')) {
|
|
3237
|
-
return item;
|
|
3238
|
-
}
|
|
3239
|
-
item.__state = {
|
|
3240
|
-
active: false,
|
|
3241
|
-
expanded: false,
|
|
3242
|
-
focused: false
|
|
3243
|
-
};
|
|
3244
|
-
// TODO: See if there is a nice way to fix the typing for this.
|
|
3245
|
-
return item;
|
|
3246
|
-
}
|
|
3247
|
-
function areSameHorizontalNavItem(item1, item2) {
|
|
3248
|
-
if (isNullOrUndefined(item1) || isNullOrUndefined(item2)) {
|
|
3249
|
-
return false;
|
|
3250
|
-
}
|
|
3251
|
-
if (item1.itemType !== item2.itemType) {
|
|
3252
|
-
return false;
|
|
3253
|
-
}
|
|
3254
|
-
if (isHorizontalNavItemType(item1, 'title') && isHorizontalNavItemType(item2, 'title')) {
|
|
3255
|
-
return item1.label === item2.label;
|
|
3256
|
-
}
|
|
3257
|
-
else if (isHorizontalNavItemType(item1, 'divider') && isHorizontalNavItemType(item2, 'divider')) {
|
|
3258
|
-
return item1.label === item2.label;
|
|
3259
|
-
}
|
|
3260
|
-
else if (isHorizontalNavItemType(item1, 'basic') && isHorizontalNavItemType(item2, 'basic')) {
|
|
3261
|
-
return item1.label === item2.label;
|
|
3262
|
-
}
|
|
3263
|
-
else if (isHorizontalNavItemType(item1, 'link') && isHorizontalNavItemType(item2, 'link')) {
|
|
3264
|
-
return item1.label === item2.label && item1.link === item2.link;
|
|
3265
|
-
}
|
|
3266
|
-
else if (isHorizontalNavItemType(item1, 'button') && isHorizontalNavItemType(item2, 'button')) {
|
|
3267
|
-
return item1.onClick === item2.onClick;
|
|
3268
|
-
}
|
|
3269
|
-
return false;
|
|
3270
|
-
}
|
|
3271
|
-
|
|
3272
|
-
class TheSeamNavService {
|
|
3273
|
-
constructor(_router) {
|
|
3274
|
-
this._router = _router;
|
|
3275
|
-
this._updatingCount = new BehaviorSubject(0);
|
|
3276
|
-
this.itemChanged = new Subject();
|
|
3277
|
-
this.loading$ = this._updatingCount.pipe(map(count => count > 0), distinctUntilChanged(), shareReplay({ bufferSize: 1, refCount: true }));
|
|
3278
|
-
}
|
|
3279
|
-
createItemsObservable(items) {
|
|
3280
|
-
return defer(() => {
|
|
3281
|
-
this.updateItemsStates(items);
|
|
3282
|
-
this.updateRouterFocusedItem(items);
|
|
3283
|
-
return new Observable((subscriber) => {
|
|
3284
|
-
const stateChangeSub = this.itemChanged.pipe(switchMap(change => {
|
|
3285
|
-
if (change.prop === 'focused' && change.newValue) {
|
|
3286
|
-
this.updateFocusedItem(items, change.item);
|
|
3287
|
-
}
|
|
3288
|
-
return this.loading$.pipe(filter(loading => !loading));
|
|
3289
|
-
})).subscribe(() => {
|
|
3290
|
-
subscriber.next(items);
|
|
3291
|
-
});
|
|
3292
|
-
try {
|
|
3293
|
-
this.updateItemsStates(items);
|
|
3294
|
-
}
|
|
3295
|
-
catch (err) {
|
|
3296
|
-
subscriber.error(err);
|
|
3297
|
-
}
|
|
3298
|
-
const routeChangeSub = this._router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(event => {
|
|
3299
|
-
try {
|
|
3300
|
-
this.updateItemsStates(items);
|
|
3301
|
-
this.updateRouterFocusedItem(items);
|
|
3302
|
-
}
|
|
3303
|
-
catch (err) {
|
|
3304
|
-
subscriber.error(err);
|
|
3305
|
-
}
|
|
3306
|
-
});
|
|
3307
|
-
return () => {
|
|
3308
|
-
stateChangeSub.unsubscribe();
|
|
3309
|
-
routeChangeSub.unsubscribe();
|
|
3310
|
-
};
|
|
3311
|
-
}).pipe(startWith(items));
|
|
3312
|
-
});
|
|
3313
|
-
}
|
|
3314
|
-
_incUpdatingCount() {
|
|
3315
|
-
this._updatingCount.next(this._updatingCount.value + 1);
|
|
3316
|
-
}
|
|
3317
|
-
_decrUpdatingCount() {
|
|
3318
|
-
this._updatingCount.next(this._updatingCount.value - 1);
|
|
3319
|
-
}
|
|
3320
|
-
updateItemsStates(items) {
|
|
3321
|
-
this._incUpdatingCount();
|
|
3322
|
-
try {
|
|
3323
|
-
for (const item of items) {
|
|
3324
|
-
if (horizontalNavItemHasChildren(item)) {
|
|
3325
|
-
this.updateItemsStates(item.children);
|
|
3326
|
-
}
|
|
3327
|
-
this.updateItemState(item);
|
|
3328
|
-
}
|
|
3329
|
-
this._decrUpdatingCount();
|
|
3330
|
-
}
|
|
3331
|
-
catch (err) {
|
|
3332
|
-
this._decrUpdatingCount();
|
|
3333
|
-
throw err;
|
|
3334
|
-
}
|
|
3335
|
-
}
|
|
3336
|
-
updateItemState(item) {
|
|
3337
|
-
this._incUpdatingCount();
|
|
3338
|
-
try {
|
|
3339
|
-
setDefaultHorizontalNavItemState(item);
|
|
3340
|
-
this.setItemStateProp(item, 'active', this.horizontalNavLinkActive(item));
|
|
3341
|
-
// TODO: Implement this in a more optimized way. Unless our apps start
|
|
3342
|
-
// having large navs constantly updating their state, this shouldn't
|
|
3343
|
-
// have much impact on performance.
|
|
3344
|
-
this._updateItemExpandedState(item);
|
|
3345
|
-
this._decrUpdatingCount();
|
|
3346
|
-
}
|
|
3347
|
-
catch (err) {
|
|
3348
|
-
this._decrUpdatingCount();
|
|
3349
|
-
throw err;
|
|
3350
|
-
}
|
|
3351
|
-
}
|
|
3352
|
-
horizontalNavLinkActive(item) {
|
|
3353
|
-
if (isHorizontalNavItemType(item, 'link')) {
|
|
3354
|
-
const url = this._getUrl(item);
|
|
3355
|
-
if (notNullOrUndefined(url)) {
|
|
3356
|
-
const opts = this._getMatchOptions(item);
|
|
3357
|
-
return this._router.isActive(url, opts);
|
|
3358
|
-
}
|
|
3359
|
-
}
|
|
3360
|
-
return false;
|
|
3361
|
-
}
|
|
3362
|
-
_updateItemsExpandedState(items) {
|
|
3363
|
-
for (const item of items) {
|
|
3364
|
-
if (horizontalNavItemHasChildren(item)) {
|
|
3365
|
-
this._updateItemsExpandedState(item.children);
|
|
3366
|
-
}
|
|
3367
|
-
this._updateItemExpandedState(item);
|
|
3368
|
-
}
|
|
3369
|
-
}
|
|
3370
|
-
_updateItemExpandedState(item) {
|
|
3371
|
-
if (!horizontalNavItemCanExpand(item)) {
|
|
3372
|
-
if (getHorizontalNavItemStateProp(item, 'expanded')) {
|
|
3373
|
-
this.setItemStateProp(item, 'expanded', false);
|
|
3374
|
-
}
|
|
3375
|
-
return;
|
|
3376
|
-
}
|
|
3377
|
-
if (horizontalNavItemHasChildren(item)) {
|
|
3378
|
-
this._updateItemsExpandedState(item.children);
|
|
3379
|
-
}
|
|
3380
|
-
if (horizontalNavItemHasActiveChild(item) || horizontalNavItemHasExpandedChild(item)) {
|
|
3381
|
-
if (!getHorizontalNavItemStateProp(item, 'expanded')) {
|
|
3382
|
-
this.setItemStateProp(item, 'expanded', true);
|
|
3383
|
-
}
|
|
3384
|
-
}
|
|
3385
|
-
else {
|
|
3386
|
-
if (getHorizontalNavItemStateProp(item, 'expanded')) {
|
|
3387
|
-
this.setItemStateProp(item, 'expanded', false);
|
|
3388
|
-
}
|
|
3389
|
-
}
|
|
3390
|
-
}
|
|
3391
|
-
updateRouterFocusedItem(items) {
|
|
3392
|
-
const focusedItem = items.find(i => isHorizontalNavItemActive(i)) || items.find(i => horizontalNavItemHasActiveChild(i));
|
|
3393
|
-
if (notNullOrUndefined(focusedItem)) {
|
|
3394
|
-
this.updateFocusedItem(items, focusedItem);
|
|
3395
|
-
}
|
|
3396
|
-
}
|
|
3397
|
-
updateFocusedItem(items, focusedItem) {
|
|
3398
|
-
for (const item of items) {
|
|
3399
|
-
if (areSameHorizontalNavItem(item, focusedItem)) {
|
|
3400
|
-
setHorizontalNavItemStateProp(item, 'focused', true);
|
|
3401
|
-
}
|
|
3402
|
-
else {
|
|
3403
|
-
setHorizontalNavItemStateProp(item, 'focused', false);
|
|
3404
|
-
}
|
|
3405
|
-
}
|
|
3406
|
-
}
|
|
3407
|
-
_getNavExtras(item) {
|
|
3408
|
-
const navigationExtras = {};
|
|
3409
|
-
if (hasProperty(item, 'queryParams')) {
|
|
3410
|
-
navigationExtras.queryParams = item.queryParams;
|
|
3411
|
-
}
|
|
3412
|
-
if (hasProperty(item, 'fragment')) {
|
|
3413
|
-
navigationExtras.fragment = item.fragment;
|
|
3414
|
-
}
|
|
3415
|
-
if (hasProperty(item, 'queryParamsHandling')) {
|
|
3416
|
-
navigationExtras.queryParamsHandling = item.queryParamsHandling;
|
|
3417
|
-
}
|
|
3418
|
-
if (hasProperty(item, 'preserveFragment')) {
|
|
3419
|
-
navigationExtras.preserveFragment = item.preserveFragment;
|
|
3420
|
-
}
|
|
3421
|
-
return navigationExtras;
|
|
3422
|
-
}
|
|
3423
|
-
_getUrl(item) {
|
|
3424
|
-
const link = item.link;
|
|
3425
|
-
if (typeof link === 'string') {
|
|
3426
|
-
return this._router.createUrlTree([link], this._getNavExtras(item)).toString();
|
|
3427
|
-
}
|
|
3428
|
-
else if (Array.isArray(link)) {
|
|
3429
|
-
return this._router.createUrlTree(link, this._getNavExtras(item)).toString();
|
|
3430
|
-
}
|
|
3431
|
-
return null;
|
|
3432
|
-
}
|
|
3433
|
-
_getMatchOptions(item) {
|
|
3434
|
-
const defaultMatchOpts = {
|
|
3435
|
-
paths: 'subset',
|
|
3436
|
-
queryParams: 'subset',
|
|
3437
|
-
fragment: 'ignored',
|
|
3438
|
-
matrixParams: 'ignored'
|
|
3439
|
-
};
|
|
3440
|
-
if (hasProperty(item, 'matchOptions')) {
|
|
3441
|
-
return Object.assign(Object.assign({}, defaultMatchOpts), item.matchOptions);
|
|
3442
|
-
}
|
|
3443
|
-
return defaultMatchOpts;
|
|
3444
|
-
}
|
|
3445
|
-
setItemStateProp(item, prop, value) {
|
|
3446
|
-
const currentValue = getHorizontalNavItemStateProp(item, prop);
|
|
3447
|
-
if (currentValue !== value) {
|
|
3448
|
-
setHorizontalNavItemStateProp(item, prop, value);
|
|
3449
|
-
const changed = {
|
|
3450
|
-
item,
|
|
3451
|
-
prop,
|
|
3452
|
-
prevValue: currentValue,
|
|
3453
|
-
newValue: value
|
|
3454
|
-
};
|
|
3455
|
-
this.itemChanged.next(changed);
|
|
3456
|
-
}
|
|
3457
|
-
}
|
|
3458
|
-
}
|
|
3459
|
-
TheSeamNavService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3460
|
-
TheSeamNavService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService });
|
|
3461
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService, decorators: [{
|
|
3462
|
-
type: Injectable
|
|
3463
|
-
}], ctorParameters: function () { return [{ type: i1$2.Router }]; } });
|
|
3464
|
-
|
|
3465
|
-
class NavItemComponent {
|
|
3466
|
-
set link(value) { this._link.next(value); }
|
|
3467
|
-
get link() { return this._link.value; }
|
|
3468
|
-
set expanded(value) {
|
|
3469
|
-
this._expanded.next(coerceBooleanProperty(value));
|
|
3470
|
-
}
|
|
3471
|
-
get expanded() { return this._expanded.value; }
|
|
3472
|
-
set compact(value) { this._compact.next(coerceBooleanProperty(value)); }
|
|
3473
|
-
get compact() { return this._compact.value; }
|
|
3474
|
-
get badgeTooltip() { return this._badgeTooltip; }
|
|
3475
|
-
set badgeTooltip(value) {
|
|
3476
|
-
if (value !== null && value !== undefined) {
|
|
3477
|
-
if (typeof value === 'string') {
|
|
3478
|
-
this._badgeTooltip = {
|
|
3479
|
-
tooltip: value,
|
|
3480
|
-
placement: 'auto',
|
|
3481
|
-
disabled: false
|
|
3482
|
-
};
|
|
3483
|
-
}
|
|
3484
|
-
else {
|
|
3485
|
-
this._badgeTooltip = Object.assign(Object.assign({}, value), { placement: value.placement || 'auto', disabled: typeof (value === null || value === void 0 ? void 0 : value.disabled) === 'boolean'
|
|
3486
|
-
? value.disabled
|
|
3487
|
-
: typeof value.tooltip !== 'string' });
|
|
3488
|
-
}
|
|
3489
|
-
}
|
|
3490
|
-
else {
|
|
3491
|
-
this._badgeTooltip = undefined;
|
|
3492
|
-
}
|
|
3493
|
-
}
|
|
3494
|
-
get _isActiveCssClass() { return this.active; }
|
|
3495
|
-
get _isChildActiveCssClass() { return this.hasActiveChild; }
|
|
3496
|
-
get _isExpandedCssClass() { return this.expanded; }
|
|
3497
|
-
get _isFocusedCssClass() { return this.focused; }
|
|
3498
|
-
get _attrDataHierLevel() { return this.hierLevel; }
|
|
3499
|
-
constructor(_nav) {
|
|
3500
|
-
this._nav = _nav;
|
|
3501
|
-
this._ngUnsubscribe = new Subject();
|
|
3502
|
-
this.faAngleLeft = faAngleLeft;
|
|
3503
|
-
this.active = false;
|
|
3504
|
-
this._link = new BehaviorSubject(undefined);
|
|
3505
|
-
this.link$ = this._link.asObservable();
|
|
3506
|
-
this.hierLevel = 0;
|
|
3507
|
-
this.indentSize = 10;
|
|
3508
|
-
this._expanded = new BehaviorSubject(false);
|
|
3509
|
-
this.expanded$ = this._expanded.asObservable();
|
|
3510
|
-
this._compact = new BehaviorSubject(false);
|
|
3511
|
-
this.compact$ = this._compact.asObservable();
|
|
3512
|
-
this.focused = false;
|
|
3513
|
-
this.badgeTheme = 'danger';
|
|
3514
|
-
this.childAction = 'menu';
|
|
3515
|
-
this.expandAction = 'toggle';
|
|
3516
|
-
this.navItemExpanded = new EventEmitter();
|
|
3517
|
-
}
|
|
3518
|
-
ngOnDestroy() {
|
|
3519
|
-
this._ngUnsubscribe.next();
|
|
3520
|
-
this._ngUnsubscribe.complete();
|
|
3521
|
-
}
|
|
3522
|
-
get hasChildren() {
|
|
3523
|
-
return Array.isArray(this.children) && this.children.length > 0;
|
|
3524
|
-
}
|
|
3525
|
-
get hasActiveChild() {
|
|
3526
|
-
if (notNullOrUndefined(this.item)) {
|
|
3527
|
-
return horizontalNavItemHasActiveChild(this.item);
|
|
3528
|
-
}
|
|
3529
|
-
return false;
|
|
3530
|
-
}
|
|
3531
|
-
get hasMenuToggle() {
|
|
3532
|
-
return this.hasChildren && this.childAction === 'menu';
|
|
3533
|
-
}
|
|
3534
|
-
get menuTpl() {
|
|
3535
|
-
return this.hasMenuToggle ? this._menu : undefined;
|
|
3536
|
-
}
|
|
3537
|
-
get hasExpandingChildren() {
|
|
3538
|
-
return this.hasChildren && this.childAction === 'expand';
|
|
3539
|
-
}
|
|
3540
|
-
_toggleChildren(event) {
|
|
3541
|
-
let ex = !this.expanded;
|
|
3542
|
-
if (this.expandAction === 'expandOnly') {
|
|
3543
|
-
ex = true;
|
|
3544
|
-
}
|
|
3545
|
-
this.expanded = ex;
|
|
3546
|
-
this.navItemExpanded.emit(this.expanded);
|
|
3547
|
-
if (this.item && this.expanded) {
|
|
3548
|
-
this._nav.setItemStateProp(this.item, 'focused', this.expanded);
|
|
3549
|
-
}
|
|
3550
|
-
// Prevents seam-menu from closing out when toggling child expand
|
|
3551
|
-
event.stopPropagation();
|
|
3552
|
-
}
|
|
3553
|
-
// Updates expanded state when user exits seam-menu
|
|
3554
|
-
_menuEvent(menuExpanded) {
|
|
3555
|
-
if (menuExpanded === false) {
|
|
3556
|
-
this.expanded = false;
|
|
3557
|
-
// TODO: figure out why closing seam-menu with expanded submenu messes up animation
|
|
3558
|
-
if (this._navItems && this._navItems.length) {
|
|
3559
|
-
this._navItems.forEach(navItem => {
|
|
3560
|
-
navItem.expanded = false;
|
|
3561
|
-
});
|
|
3562
|
-
}
|
|
3563
|
-
}
|
|
3564
|
-
}
|
|
3565
|
-
get showIconBlock() {
|
|
3566
|
-
return notNullOrUndefined(this.icon) || this.hideEmptyIcon !== true;
|
|
3567
|
-
}
|
|
3568
|
-
}
|
|
3569
|
-
NavItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NavItemComponent, deps: [{ token: TheSeamNavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3570
|
-
NavItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: NavItemComponent, selector: "seam-nav-item", inputs: { item: "item", itemType: "itemType", icon: "icon", hideEmptyIcon: "hideEmptyIcon", label: "label", active: "active", link: "link", queryParams: "queryParams", children: "children", hierLevel: "hierLevel", indentSize: "indentSize", expanded: "expanded", compact: "compact", focused: "focused", badgeText: "badgeText", badgeTheme: "badgeTheme", badgeSrContent: "badgeSrContent", badgeTooltip: "badgeTooltip", childAction: "childAction", expandAction: "expandAction" }, outputs: { navItemExpanded: "navItemExpanded" }, host: { properties: { "class.seam-nav-item--active": "this._isActiveCssClass", "class.seam-nav-item--child-active": "this._isChildActiveCssClass", "class.seam-nav-item--expanded": "this._isExpandedCssClass", "class.seam-nav-item--focused": "this._isFocusedCssClass", "attr.data-hier-level": "this._attrDataHierLevel" } }, viewQueries: [{ propertyName: "_menu", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_navItems", predicate: NavItemComponent, descendants: true }], exportAs: ["seamNavItem"], ngImport: i0, template: "<div class=\"d-flex flex-row h-100\">\n <ng-container *ngIf=\"itemType === 'basic'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeBasic\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'link'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeLink\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'divider'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeDivider\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'title'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeTitle\"></ng-template>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"hasExpandingChildren\">\n <div class=\"nav--group nav--group--level-{{ hierLevel + 1 }}\"\n *ngIf=\"expanded$ | async\" @childGroupAnim>\n <ng-container *ngTemplateOutlet=\"navChildren\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #itemTypeBasic>\n <button class=\"nav-item btn nav-btn p-0 d-flex align-items-stretch flex-row text-decoration-none w-100\"\n cdkMonitorElementFocus\n (click)=\"_toggleChildren($event)\"\n [seamMenuToggle]=\"menuTpl\"\n (menuToggle)=\"_menuEvent($event)\"\n [attr.aria-expanded]=\"expanded$ | async\">\n <div class=\"nav-link d-flex flex-row align-items-center w-100\" [class.nav-link__compact]=\"compact\">\n <div class=\"nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon [icon]=\"icon\" *ngIf=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"hasChildren && !compact\"\n class=\"btn nav-btn nav-item--toggle-btn-container d-flex align-items-center\">\n <seam-icon\n class=\"nav-item--toggle-btn\"\n [class.nav-item--toggle-btn-expanded]=\"expanded$ | async\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n </div>\n </button>\n</ng-template>\n\n<ng-template #itemTypeLink>\n <a *ngIf=\"link; else noLink\" class=\"nav-item nav-link d-flex flex-row w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\">\n <div class=\"nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon [icon]=\"icon\" *ngIf=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </a>\n\n <ng-template #noLink>\n <a class=\"nav-item nav-link d-flex flex-row w-100 align-items-center\" [class.nav-link__compact]=\"compact\">\n <div class=\"nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon [icon]=\"icon\" *ngIf=\"icon\"></seam-icon>\n </div>\n <span *ngIf=\"!compact\" nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" nav-item-label>{{ label }}</span>\n </a>\n </ng-template>\n\n <button *ngIf=\"hasChildren && !compact\"\n type=\"button\"\n class=\"btn nav-btn nav-item--toggle-btn-container\"\n (click)=\"_toggleChildren($event)\"\n [seamMenuToggle]=\"menuTpl\"\n (menuToggle)=\"_menuEvent($event)\"\n [attr.aria-expanded]=\"expanded$ | async\"\n cdkMonitorElementFocus>\n <seam-icon\n class=\"nav-item--toggle-btn\"\n [class.nav-item--toggle-btn-expanded]=\"expanded$ | async\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n <span class=\"sr-only\">Group Toggle</span>\n </button>\n</ng-template>\n\n<ng-template #itemTypeDivider>\n <div class=\"px-2 w-100\">\n <hr class=\"nav-item--divider\" />\n </div>\n</ng-template>\n\n<ng-template #itemTypeTitle>\n <ng-container *ngIf=\"!compact\">\n <span class=\"nav-item--title pt-1\" nav-item-label>{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #itemBadge>\n <ng-container *ngIf=\"badgeText\">\n <div class=\"badge-spacer flex-grow-1\" *ngIf=\"!compact\"></div>\n <div class=\"nav-item--badge\"\n [class.nav-item--badge-no-icon]=\"!icon\"\n [ngbTooltip]=\"$any(badgeTooltip)?.tooltip\"\n [tooltipClass]=\"$any(badgeTooltip)?.class\"\n [placement]=\"$any(badgeTooltip)?.placement\"\n [container]=\"$any(badgeTooltip)?.container\"\n [disableTooltip]=\"!badgeTooltip || !!$any(badgeTooltip)?.disabled\">\n <span class=\"badge badge-pill badge-{{ badgeTheme }}\">\n <ng-container *ngIf=\"!compact || !icon\">\n {{ badgeText }}\n </ng-container>\n <span *ngIf=\"badgeSrContent\">{{ badgeSrContent }}</span>\n </span>\n </div>\n </ng-container>\n</ng-template>\n\n<seam-menu #menu *ngIf=\"hasMenuToggle\">\n <ng-container *ngTemplateOutlet=\"navChildren\"></ng-container>\n</seam-menu>\n\n<ng-template #navChildren>\n <seam-nav-item *ngFor=\"let child of children\"\n [item]=\"child\"\n [hierLevel]=\"compact ? 0 : (hierLevel + 1)\"\n [compact]=\"compact\"\n [itemType]=\"$any(child).itemType\"\n [icon]=\"$any(child).icon\"\n [label]=\"$any(child).label\"\n [link]=\"$any(child).link\"\n [badgeText]=\"$any(child).badge?.text\"\n [badgeTheme]=\"$any(child).badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(child).badge?.srContent\"\n [badgeTooltip]=\"$any(child)?.badge?.tooltip\"\n [queryParams]=\"$any(child).queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [children]=\"$any(child)?.children\"\n [active]=\"$any(child).__state?.active\"\n [expanded]=\"$any(child).__state?.expanded\"\n [focused]=\"$any(child).__state?.focused\"\n childAction=\"expand\"\n [hideEmptyIcon]=\"hideEmptyIcon\">\n </seam-nav-item>\n</ng-template>\n\n", styles: ["seam-nav-item{display:block;transition:.25s ease-in-out background-color;text-align:inherit;border-radius:0;overflow:hidden;background:transparent;margin:0}seam-nav-item.seam-nav-item--expanded{background-color:transparent}seam-nav-item.seam-nav-item--expanded .nav-link{color:#000}seam-nav-item.seam-nav-item--child-active{background-color:#dae0e5}seam-nav-item.seam-nav-item--child-active .nav-link{color:#000}seam-nav-item.seam-nav-item--active{background-color:#dae0e5}seam-nav-item.seam-nav-item--active .active,seam-nav-item.seam-nav-item--active:active,seam-nav-item.seam-nav-item--active .nav-item.active:hover{background-color:#dae0e5}seam-nav-item.seam-nav-item--active .nav-item:hover{background-color:#e9ecef}seam-nav-item.seam-nav-item--active .nav-link{color:#000}seam-nav-item .badge{vertical-align:middle}seam-nav-item:not(.nav-item--icon) .nav-item--badge{pointer-events:all;margin-left:5px;margin-right:3px}seam-nav-item .nav-item--icon{position:relative;width:24px;max-width:24px;min-width:24px;height:24px;max-height:24px;min-height:24px;text-align:center;margin-right:.5rem}seam-nav-item .nav-item--icon .nav-item--badge{top:-4px;right:-4px;position:absolute}seam-nav-item .nav-item--icon .nav-item--badge .badge:empty{display:block;width:8px;height:8px;padding:0}seam-nav-item .nav-item--icon .nav-item--badge.nav-item--badge-no-icon{top:0;right:0}seam-nav-item .nav-item{transition:.25s ease-in-out background-color}seam-nav-item .nav-item:hover{background-color:#e9ecef}seam-nav-item .nav-item.active{pointer-events:none;cursor:default}seam-nav-item a.nav-item:not([href]):not([tabindex]){color:#000}seam-nav-item a.nav-item:not([href]):not([tabindex]):hover{background-color:transparent}seam-nav-item .nav-link{color:#000}seam-nav-item .nav-btn{font-weight:400;color:#000;text-decoration:none;border-radius:0;border:0 solid #dee2e6}seam-nav-item .nav-btn:hover{color:#000;text-decoration:underline}seam-nav-item .nav-btn:focus,seam-nav-item .nav-btn.focus{text-decoration:underline;box-shadow:none}seam-nav-item .nav-btn:disabled,seam-nav-item .nav-btn.disabled{color:#000;pointer-events:none}seam-nav-item .cdk-keyboard-focused{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}seam-nav-item .nav-item--toggle-btn-container{transition:.25s ease-in-out background-color;padding:0 .5rem}seam-nav-item button.nav-item--toggle-btn-container:hover{background-color:#e9ecef}seam-nav-item .nav-item--toggle-btn .svg-inline--fa{transition:.1s ease-in-out transform;transform:none}seam-nav-item .nav-item--toggle-btn.nav-item--toggle-btn-expanded .svg-inline--fa{transform:rotate(-90deg)}seam-nav-item .nav--group{will-change:height;overflow:hidden}seam-nav-item .nav--group--level-1{background-color:#eff1f4}seam-nav-item .nav--group--level-2{background-color:#e6eaed}seam-nav-item .nav--group--level-3{background-color:#dde2e7}seam-nav-item .nav--group--level-4{background-color:#d4dae1}seam-nav-item .nav--group--level-5{background-color:#cbd3da}seam-nav-item .nav--group--level-6{background-color:#c2cbd4}seam-nav-item .nav--group--level-7{background-color:#bac3cd}seam-nav-item .nav--group--level-8{background-color:#b1bcc7}seam-nav-item .nav--group--level-9{background-color:#a8b4c1}seam-nav-item .nav-item--divider{display:block;border-top:1px solid #dae0e5;width:100%}seam-nav-item .nav-item--title{color:#000;font-size:24px;padding-left:10px}seam-nav-item .sr-only{top:0;left:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i2$1.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "directive", type: i4$2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i5.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i3$2.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i3$2.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: NavItemComponent, selector: "seam-nav-item", inputs: ["item", "itemType", "icon", "hideEmptyIcon", "label", "active", "link", "queryParams", "children", "hierLevel", "indentSize", "expanded", "compact", "focused", "badgeText", "badgeTheme", "badgeSrContent", "badgeTooltip", "childAction", "expandAction"], outputs: ["navItemExpanded"], exportAs: ["seamNavItem"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
|
|
3571
|
-
trigger('childGroupAnim', [
|
|
3572
|
-
transition(':enter', [
|
|
3573
|
-
style({ height: 0 }),
|
|
3574
|
-
animate('0.2s ease-in-out', style({ height: '*' }))
|
|
3575
|
-
]),
|
|
3576
|
-
transition(':leave', [
|
|
3577
|
-
style({ height: '*' }),
|
|
3578
|
-
animate('0.2s ease-in-out', style({ height: 0 }))
|
|
3579
|
-
])
|
|
3580
|
-
])
|
|
3581
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3582
|
-
__decorate([
|
|
3583
|
-
InputBoolean()
|
|
3584
|
-
], NavItemComponent.prototype, "active", void 0);
|
|
3585
|
-
__decorate([
|
|
3586
|
-
InputNumber(0)
|
|
3587
|
-
], NavItemComponent.prototype, "hierLevel", void 0);
|
|
3588
|
-
__decorate([
|
|
3589
|
-
InputNumber(10)
|
|
3590
|
-
], NavItemComponent.prototype, "indentSize", void 0);
|
|
3591
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NavItemComponent, decorators: [{
|
|
3592
|
-
type: Component,
|
|
3593
|
-
args: [{ selector: 'seam-nav-item', exportAs: 'seamNavItem', animations: [
|
|
3594
|
-
trigger('childGroupAnim', [
|
|
3595
|
-
transition(':enter', [
|
|
3596
|
-
style({ height: 0 }),
|
|
3597
|
-
animate('0.2s ease-in-out', style({ height: '*' }))
|
|
3598
|
-
]),
|
|
3599
|
-
transition(':leave', [
|
|
3600
|
-
style({ height: '*' }),
|
|
3601
|
-
animate('0.2s ease-in-out', style({ height: 0 }))
|
|
3602
|
-
])
|
|
3603
|
-
])
|
|
3604
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"d-flex flex-row h-100\">\n <ng-container *ngIf=\"itemType === 'basic'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeBasic\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'link'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeLink\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'divider'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeDivider\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'title'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeTitle\"></ng-template>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"hasExpandingChildren\">\n <div class=\"nav--group nav--group--level-{{ hierLevel + 1 }}\"\n *ngIf=\"expanded$ | async\" @childGroupAnim>\n <ng-container *ngTemplateOutlet=\"navChildren\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #itemTypeBasic>\n <button class=\"nav-item btn nav-btn p-0 d-flex align-items-stretch flex-row text-decoration-none w-100\"\n cdkMonitorElementFocus\n (click)=\"_toggleChildren($event)\"\n [seamMenuToggle]=\"menuTpl\"\n (menuToggle)=\"_menuEvent($event)\"\n [attr.aria-expanded]=\"expanded$ | async\">\n <div class=\"nav-link d-flex flex-row align-items-center w-100\" [class.nav-link__compact]=\"compact\">\n <div class=\"nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon [icon]=\"icon\" *ngIf=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"hasChildren && !compact\"\n class=\"btn nav-btn nav-item--toggle-btn-container d-flex align-items-center\">\n <seam-icon\n class=\"nav-item--toggle-btn\"\n [class.nav-item--toggle-btn-expanded]=\"expanded$ | async\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n </div>\n </button>\n</ng-template>\n\n<ng-template #itemTypeLink>\n <a *ngIf=\"link; else noLink\" class=\"nav-item nav-link d-flex flex-row w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\">\n <div class=\"nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon [icon]=\"icon\" *ngIf=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </a>\n\n <ng-template #noLink>\n <a class=\"nav-item nav-link d-flex flex-row w-100 align-items-center\" [class.nav-link__compact]=\"compact\">\n <div class=\"nav-item--icon\" *ngIf=\"showIconBlock\">\n <seam-icon [icon]=\"icon\" *ngIf=\"icon\"></seam-icon>\n </div>\n <span *ngIf=\"!compact\" nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" nav-item-label>{{ label }}</span>\n </a>\n </ng-template>\n\n <button *ngIf=\"hasChildren && !compact\"\n type=\"button\"\n class=\"btn nav-btn nav-item--toggle-btn-container\"\n (click)=\"_toggleChildren($event)\"\n [seamMenuToggle]=\"menuTpl\"\n (menuToggle)=\"_menuEvent($event)\"\n [attr.aria-expanded]=\"expanded$ | async\"\n cdkMonitorElementFocus>\n <seam-icon\n class=\"nav-item--toggle-btn\"\n [class.nav-item--toggle-btn-expanded]=\"expanded$ | async\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n <span class=\"sr-only\">Group Toggle</span>\n </button>\n</ng-template>\n\n<ng-template #itemTypeDivider>\n <div class=\"px-2 w-100\">\n <hr class=\"nav-item--divider\" />\n </div>\n</ng-template>\n\n<ng-template #itemTypeTitle>\n <ng-container *ngIf=\"!compact\">\n <span class=\"nav-item--title pt-1\" nav-item-label>{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #itemBadge>\n <ng-container *ngIf=\"badgeText\">\n <div class=\"badge-spacer flex-grow-1\" *ngIf=\"!compact\"></div>\n <div class=\"nav-item--badge\"\n [class.nav-item--badge-no-icon]=\"!icon\"\n [ngbTooltip]=\"$any(badgeTooltip)?.tooltip\"\n [tooltipClass]=\"$any(badgeTooltip)?.class\"\n [placement]=\"$any(badgeTooltip)?.placement\"\n [container]=\"$any(badgeTooltip)?.container\"\n [disableTooltip]=\"!badgeTooltip || !!$any(badgeTooltip)?.disabled\">\n <span class=\"badge badge-pill badge-{{ badgeTheme }}\">\n <ng-container *ngIf=\"!compact || !icon\">\n {{ badgeText }}\n </ng-container>\n <span *ngIf=\"badgeSrContent\">{{ badgeSrContent }}</span>\n </span>\n </div>\n </ng-container>\n</ng-template>\n\n<seam-menu #menu *ngIf=\"hasMenuToggle\">\n <ng-container *ngTemplateOutlet=\"navChildren\"></ng-container>\n</seam-menu>\n\n<ng-template #navChildren>\n <seam-nav-item *ngFor=\"let child of children\"\n [item]=\"child\"\n [hierLevel]=\"compact ? 0 : (hierLevel + 1)\"\n [compact]=\"compact\"\n [itemType]=\"$any(child).itemType\"\n [icon]=\"$any(child).icon\"\n [label]=\"$any(child).label\"\n [link]=\"$any(child).link\"\n [badgeText]=\"$any(child).badge?.text\"\n [badgeTheme]=\"$any(child).badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(child).badge?.srContent\"\n [badgeTooltip]=\"$any(child)?.badge?.tooltip\"\n [queryParams]=\"$any(child).queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [children]=\"$any(child)?.children\"\n [active]=\"$any(child).__state?.active\"\n [expanded]=\"$any(child).__state?.expanded\"\n [focused]=\"$any(child).__state?.focused\"\n childAction=\"expand\"\n [hideEmptyIcon]=\"hideEmptyIcon\">\n </seam-nav-item>\n</ng-template>\n\n", styles: ["seam-nav-item{display:block;transition:.25s ease-in-out background-color;text-align:inherit;border-radius:0;overflow:hidden;background:transparent;margin:0}seam-nav-item.seam-nav-item--expanded{background-color:transparent}seam-nav-item.seam-nav-item--expanded .nav-link{color:#000}seam-nav-item.seam-nav-item--child-active{background-color:#dae0e5}seam-nav-item.seam-nav-item--child-active .nav-link{color:#000}seam-nav-item.seam-nav-item--active{background-color:#dae0e5}seam-nav-item.seam-nav-item--active .active,seam-nav-item.seam-nav-item--active:active,seam-nav-item.seam-nav-item--active .nav-item.active:hover{background-color:#dae0e5}seam-nav-item.seam-nav-item--active .nav-item:hover{background-color:#e9ecef}seam-nav-item.seam-nav-item--active .nav-link{color:#000}seam-nav-item .badge{vertical-align:middle}seam-nav-item:not(.nav-item--icon) .nav-item--badge{pointer-events:all;margin-left:5px;margin-right:3px}seam-nav-item .nav-item--icon{position:relative;width:24px;max-width:24px;min-width:24px;height:24px;max-height:24px;min-height:24px;text-align:center;margin-right:.5rem}seam-nav-item .nav-item--icon .nav-item--badge{top:-4px;right:-4px;position:absolute}seam-nav-item .nav-item--icon .nav-item--badge .badge:empty{display:block;width:8px;height:8px;padding:0}seam-nav-item .nav-item--icon .nav-item--badge.nav-item--badge-no-icon{top:0;right:0}seam-nav-item .nav-item{transition:.25s ease-in-out background-color}seam-nav-item .nav-item:hover{background-color:#e9ecef}seam-nav-item .nav-item.active{pointer-events:none;cursor:default}seam-nav-item a.nav-item:not([href]):not([tabindex]){color:#000}seam-nav-item a.nav-item:not([href]):not([tabindex]):hover{background-color:transparent}seam-nav-item .nav-link{color:#000}seam-nav-item .nav-btn{font-weight:400;color:#000;text-decoration:none;border-radius:0;border:0 solid #dee2e6}seam-nav-item .nav-btn:hover{color:#000;text-decoration:underline}seam-nav-item .nav-btn:focus,seam-nav-item .nav-btn.focus{text-decoration:underline;box-shadow:none}seam-nav-item .nav-btn:disabled,seam-nav-item .nav-btn.disabled{color:#000;pointer-events:none}seam-nav-item .cdk-keyboard-focused{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}seam-nav-item .nav-item--toggle-btn-container{transition:.25s ease-in-out background-color;padding:0 .5rem}seam-nav-item button.nav-item--toggle-btn-container:hover{background-color:#e9ecef}seam-nav-item .nav-item--toggle-btn .svg-inline--fa{transition:.1s ease-in-out transform;transform:none}seam-nav-item .nav-item--toggle-btn.nav-item--toggle-btn-expanded .svg-inline--fa{transform:rotate(-90deg)}seam-nav-item .nav--group{will-change:height;overflow:hidden}seam-nav-item .nav--group--level-1{background-color:#eff1f4}seam-nav-item .nav--group--level-2{background-color:#e6eaed}seam-nav-item .nav--group--level-3{background-color:#dde2e7}seam-nav-item .nav--group--level-4{background-color:#d4dae1}seam-nav-item .nav--group--level-5{background-color:#cbd3da}seam-nav-item .nav--group--level-6{background-color:#c2cbd4}seam-nav-item .nav--group--level-7{background-color:#bac3cd}seam-nav-item .nav--group--level-8{background-color:#b1bcc7}seam-nav-item .nav--group--level-9{background-color:#a8b4c1}seam-nav-item .nav-item--divider{display:block;border-top:1px solid #dae0e5;width:100%}seam-nav-item .nav-item--title{color:#000;font-size:24px;padding-left:10px}seam-nav-item .sr-only{top:0;left:0}\n"] }]
|
|
3605
|
-
}], ctorParameters: function () { return [{ type: TheSeamNavService }]; }, propDecorators: { item: [{
|
|
3606
|
-
type: Input
|
|
3607
|
-
}], itemType: [{
|
|
3608
|
-
type: Input
|
|
3609
|
-
}], icon: [{
|
|
3610
|
-
type: Input
|
|
3611
|
-
}], hideEmptyIcon: [{
|
|
3612
|
-
type: Input
|
|
3613
|
-
}], label: [{
|
|
3614
|
-
type: Input
|
|
3615
|
-
}], active: [{
|
|
3616
|
-
type: Input
|
|
3617
|
-
}], link: [{
|
|
3618
|
-
type: Input
|
|
3619
|
-
}], queryParams: [{
|
|
3620
|
-
type: Input
|
|
3621
|
-
}], children: [{
|
|
3622
|
-
type: Input
|
|
3623
|
-
}], hierLevel: [{
|
|
3624
|
-
type: Input
|
|
3625
|
-
}], indentSize: [{
|
|
3626
|
-
type: Input
|
|
3627
|
-
}], expanded: [{
|
|
3628
|
-
type: Input
|
|
3629
|
-
}], compact: [{
|
|
3630
|
-
type: Input
|
|
3631
|
-
}], focused: [{
|
|
3632
|
-
type: Input
|
|
3633
|
-
}], badgeText: [{
|
|
3634
|
-
type: Input
|
|
3635
|
-
}], badgeTheme: [{
|
|
3636
|
-
type: Input
|
|
3637
|
-
}], badgeSrContent: [{
|
|
3638
|
-
type: Input
|
|
3639
|
-
}], badgeTooltip: [{
|
|
3640
|
-
type: Input
|
|
3641
|
-
}], childAction: [{
|
|
3642
|
-
type: Input
|
|
3643
|
-
}], expandAction: [{
|
|
3644
|
-
type: Input
|
|
3645
|
-
}], navItemExpanded: [{
|
|
3646
|
-
type: Output
|
|
3647
|
-
}], _isActiveCssClass: [{
|
|
3648
|
-
type: HostBinding,
|
|
3649
|
-
args: ['class.seam-nav-item--active']
|
|
3650
|
-
}], _isChildActiveCssClass: [{
|
|
3651
|
-
type: HostBinding,
|
|
3652
|
-
args: ['class.seam-nav-item--child-active']
|
|
3653
|
-
}], _isExpandedCssClass: [{
|
|
3654
|
-
type: HostBinding,
|
|
3655
|
-
args: ['class.seam-nav-item--expanded']
|
|
3656
|
-
}], _isFocusedCssClass: [{
|
|
3657
|
-
type: HostBinding,
|
|
3658
|
-
args: ['class.seam-nav-item--focused']
|
|
3659
|
-
}], _attrDataHierLevel: [{
|
|
3660
|
-
type: HostBinding,
|
|
3661
|
-
args: ['attr.data-hier-level']
|
|
3662
|
-
}], _menu: [{
|
|
3663
|
-
type: ViewChild,
|
|
3664
|
-
args: [MenuComponent]
|
|
3665
|
-
}], _navItems: [{
|
|
3666
|
-
type: ViewChildren,
|
|
3667
|
-
args: [NavItemComponent]
|
|
3668
|
-
}] } });
|
|
3669
|
-
|
|
3670
|
-
class HorizontalNavComponent {
|
|
3671
|
-
get items() { return this._items.value; }
|
|
3672
|
-
set items(value) {
|
|
3673
|
-
this._items.next(value);
|
|
3674
|
-
}
|
|
3675
|
-
constructor(_nav) {
|
|
3676
|
-
this._nav = _nav;
|
|
3677
|
-
this._ngUnsubscribe = new Subject();
|
|
3678
|
-
this._items = new BehaviorSubject([]);
|
|
3679
|
-
this.hideEmptyIcon = true;
|
|
3680
|
-
this.hierLevel = 0;
|
|
3681
|
-
this.childAction = 'menu';
|
|
3682
|
-
this.expandAction = 'toggle';
|
|
3683
|
-
this.navItemExpanded = new EventEmitter();
|
|
3684
|
-
this.items$ = this._items.asObservable().pipe(switchMap(items => items ? this._nav.createItemsObservable(items) : []), shareReplay({ bufferSize: 1, refCount: true }));
|
|
3685
|
-
}
|
|
3686
|
-
ngOnDestroy() {
|
|
3687
|
-
this._ngUnsubscribe.next();
|
|
3688
|
-
this._ngUnsubscribe.complete();
|
|
3689
|
-
}
|
|
3690
|
-
_navItemExpanded(item, expanded) {
|
|
3691
|
-
this.navItemExpanded.emit({ navItem: item, expanded });
|
|
3692
|
-
}
|
|
3693
|
-
}
|
|
3694
|
-
HorizontalNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: HorizontalNavComponent, deps: [{ token: TheSeamNavService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3695
|
-
HorizontalNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: HorizontalNavComponent, selector: "seam-horizontal-nav", inputs: { items: "items", hideEmptyIcon: "hideEmptyIcon", hierLevel: "hierLevel", childAction: "childAction", expandAction: "expandAction" }, outputs: { navItemExpanded: "navItemExpanded" }, providers: [
|
|
3696
|
-
TheSeamNavService
|
|
3697
|
-
], ngImport: i0, template: "<div class=\"nav-inner-wrapper\" class=\"nav-inner-wrapper-{{hierLevel}}\">\n <div class=\"nav-items-row\">\n <seam-nav-item *ngFor=\"let item of items$ | async\"\n class=\"flex-shrink-0\"\n [item]=\"item\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state?.active\"\n [expanded]=\"$any(item).__state?.expanded\"\n [focused]=\"$any(item).__state?.focused\"\n [hierLevel]=\"hierLevel\"\n [childAction]=\"childAction\"\n [expandAction]=\"expandAction\"\n (navItemExpanded)=\"_navItemExpanded(item, $event)\"\n [hideEmptyIcon]=\"hideEmptyIcon\">\n </seam-nav-item>\n </div>\n</div>\n", styles: ["seam-horizontal-nav,.seam-horizontal-nav{display:block;height:100%;position:relative;z-index:2}seam-horizontal-nav .nav-inner-wrapper,.seam-horizontal-nav .nav-inner-wrapper{background:none;height:100%}seam-horizontal-nav .nav-backdrop,.seam-horizontal-nav .nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-horizontal-nav .nav-backdrop.nav-backdrop-hidden,.seam-horizontal-nav .nav-backdrop.nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-horizontal-nav .nav-content,.seam-horizontal-nav .nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-horizontal-nav .nav-items-container,.seam-horizontal-nav .nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}seam-horizontal-nav .nav-items-row,.seam-horizontal-nav .nav-items-row{height:100%;display:flex;padding:.25rem .5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NavItemComponent, selector: "seam-nav-item", inputs: ["item", "itemType", "icon", "hideEmptyIcon", "label", "active", "link", "queryParams", "children", "hierLevel", "indentSize", "expanded", "compact", "focused", "badgeText", "badgeTheme", "badgeSrContent", "badgeTooltip", "childAction", "expandAction"], outputs: ["navItemExpanded"], exportAs: ["seamNavItem"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3698
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: HorizontalNavComponent, decorators: [{
|
|
3699
|
-
type: Component,
|
|
3700
|
-
args: [{ selector: 'seam-horizontal-nav', providers: [
|
|
3701
|
-
TheSeamNavService
|
|
3702
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"nav-inner-wrapper\" class=\"nav-inner-wrapper-{{hierLevel}}\">\n <div class=\"nav-items-row\">\n <seam-nav-item *ngFor=\"let item of items$ | async\"\n class=\"flex-shrink-0\"\n [item]=\"item\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state?.active\"\n [expanded]=\"$any(item).__state?.expanded\"\n [focused]=\"$any(item).__state?.focused\"\n [hierLevel]=\"hierLevel\"\n [childAction]=\"childAction\"\n [expandAction]=\"expandAction\"\n (navItemExpanded)=\"_navItemExpanded(item, $event)\"\n [hideEmptyIcon]=\"hideEmptyIcon\">\n </seam-nav-item>\n </div>\n</div>\n", styles: ["seam-horizontal-nav,.seam-horizontal-nav{display:block;height:100%;position:relative;z-index:2}seam-horizontal-nav .nav-inner-wrapper,.seam-horizontal-nav .nav-inner-wrapper{background:none;height:100%}seam-horizontal-nav .nav-backdrop,.seam-horizontal-nav .nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-horizontal-nav .nav-backdrop.nav-backdrop-hidden,.seam-horizontal-nav .nav-backdrop.nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-horizontal-nav .nav-content,.seam-horizontal-nav .nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-horizontal-nav .nav-items-container,.seam-horizontal-nav .nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}seam-horizontal-nav .nav-items-row,.seam-horizontal-nav .nav-items-row{height:100%;display:flex;padding:.25rem .5rem}\n"] }]
|
|
3703
|
-
}], ctorParameters: function () { return [{ type: TheSeamNavService }]; }, propDecorators: { items: [{
|
|
3704
|
-
type: Input
|
|
3705
|
-
}], hideEmptyIcon: [{
|
|
3706
|
-
type: Input
|
|
3707
|
-
}], hierLevel: [{
|
|
3708
|
-
type: Input
|
|
3709
|
-
}], childAction: [{
|
|
3710
|
-
type: Input
|
|
3711
|
-
}], expandAction: [{
|
|
3712
|
-
type: Input
|
|
3713
|
-
}], navItemExpanded: [{
|
|
3714
|
-
type: Output
|
|
3715
|
-
}] } });
|
|
3716
|
-
|
|
3717
|
-
class TheSeamNavModule {
|
|
3718
|
-
}
|
|
3719
|
-
TheSeamNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3720
|
-
TheSeamNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavModule, declarations: [NavItemComponent,
|
|
3721
|
-
HorizontalNavComponent], imports: [CommonModule,
|
|
3722
|
-
RouterModule,
|
|
3723
|
-
TheSeamIconModule,
|
|
3724
|
-
A11yModule,
|
|
3725
|
-
TheSeamScrollbarModule,
|
|
3726
|
-
TheSeamLayoutModule,
|
|
3727
|
-
NgbTooltipModule,
|
|
3728
|
-
PortalModule,
|
|
3729
|
-
TheSeamMenuModule], exports: [NavItemComponent,
|
|
3730
|
-
HorizontalNavComponent] });
|
|
3731
|
-
TheSeamNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavModule, providers: [
|
|
3732
|
-
TheSeamNavService,
|
|
3733
|
-
], imports: [CommonModule,
|
|
3734
|
-
RouterModule,
|
|
3735
|
-
TheSeamIconModule,
|
|
3736
|
-
A11yModule,
|
|
3737
|
-
TheSeamScrollbarModule,
|
|
3738
|
-
TheSeamLayoutModule,
|
|
3739
|
-
NgbTooltipModule,
|
|
3740
|
-
PortalModule,
|
|
3741
|
-
TheSeamMenuModule] });
|
|
3742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavModule, decorators: [{
|
|
3743
|
-
type: NgModule,
|
|
3744
|
-
args: [{
|
|
3745
|
-
declarations: [
|
|
3746
|
-
NavItemComponent,
|
|
3747
|
-
HorizontalNavComponent,
|
|
3748
|
-
],
|
|
3749
|
-
imports: [
|
|
3750
|
-
CommonModule,
|
|
3751
|
-
RouterModule,
|
|
3752
|
-
TheSeamIconModule,
|
|
3753
|
-
A11yModule,
|
|
3754
|
-
TheSeamScrollbarModule,
|
|
3755
|
-
TheSeamLayoutModule,
|
|
3756
|
-
NgbTooltipModule,
|
|
3757
|
-
PortalModule,
|
|
3758
|
-
TheSeamMenuModule
|
|
3759
|
-
],
|
|
3760
|
-
exports: [
|
|
3761
|
-
NavItemComponent,
|
|
3762
|
-
HorizontalNavComponent,
|
|
3763
|
-
],
|
|
3764
|
-
providers: [
|
|
3765
|
-
TheSeamNavService,
|
|
3766
|
-
]
|
|
3767
|
-
}]
|
|
3768
|
-
}] });
|
|
3769
|
-
|
|
3770
3021
|
/**
|
|
3771
3022
|
* Generated bundle index. Do not edit.
|
|
3772
3023
|
*/
|
|
3773
3024
|
|
|
3774
|
-
export { BaseLayoutContentDirective, BaseLayoutContentFooterDirective, BaseLayoutContentHeaderDirective, BaseLayoutNavToggleDirective, BaseLayoutSideBarDirective, BaseLayoutSideBarFooterDirective,
|
|
3025
|
+
export { BaseLayoutContentDirective, BaseLayoutContentFooterDirective, BaseLayoutContentHeaderDirective, BaseLayoutNavToggleDirective, BaseLayoutSideBarDirective, BaseLayoutSideBarFooterDirective, BaseLayoutTopBarDirective, DashboardComponent, DashboardWidgetContainerComponent, DashboardWidgetPortalOutletDirective, DashboardWidgetTemplateContainerComponent, DashboardWidgetsComponent, DashboardWidgetsPreferencesService, DashboardWidgetsService, HierarchyLevelResolver, HierarchyRouterOutletComponent, SideNavComponent, SideNavItemComponent, SideNavToggleComponent, THESEAM_BASE_LAYOUT_REF, THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR, THESEAM_SIDE_NAV_ACCESSOR, THE_SEAM_BASE_LAYOUT, TheSeamBaseLayoutComponent, TheSeamBaseLayoutModule, TheSeamDashboardModule, TheSeamDynamicRouterModule, TheSeamFramework, TheSeamSchemaFormFrameworkComponent, TheSeamSchemaFormModule, TheSeamSideNavModule, TheSeamTopBarComponent, TheSeamTopBarModule, TopBarItemDirective, TopBarMenuBtnDetailDirective, TopBarMenuButtonComponent, TopBarMenuDirective, TopBarTitleComponent, canBeActive, canExpand, canHaveChildren, fader, findLinkItems, getItemStateProp, hasActiveChild, hasChildren, hasExpandedChild, isExpanded, isNavItemActive, isNavItemType, routeChanges, setDefaultState, setItemStateProp, sideNavExpandStateChangeFn, sideToSide, slider, stepper, transformer };
|
|
3775
3026
|
//# sourceMappingURL=theseam-ui-common-framework.mjs.map
|