ng-responsive-nav
Version:
A mobile friendly navigation solution
550 lines (531 loc) • 25.9 kB
JavaScript
import { Component, InjectionToken, Inject, Directive, PLATFORM_ID, NgModule } from '@angular/core';
import { DOCUMENT, isPlatformBrowser, CommonModule } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { NavigationEnd, Router, RouterModule } from '@angular/router';
import { Subscription } from 'rxjs';
import { faBars } from '@fortawesome/free-solid-svg-icons/faBars';
import { faTimes } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
/**
* @fileoverview added by tsickle
* Generated from: app/ng-responsive-nav.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NgResponsiveNavComponent {
}
NgResponsiveNavComponent.decorators = [
{ type: Component, args: [{
selector: 'ng-responsive-nav',
template: "<app-desktop-navigation class=\"display-flex\">\r\n <div desktopExtras>\r\n <ng-content select=\"[ngDesktopNavExtras]\"></ng-content>\r\n </div>\r\n</app-desktop-navigation>\r\n\r\n<app-mobile-navigation-component>\r\n <div mobileExtras>\r\n <ng-content select=\"[ngMobileNavExtras]\"></ng-content>\r\n </div>\r\n</app-mobile-navigation-component>\r\n",
styles: [".link.desktop-link{margin:0 7px}.link.desktop-link.primary{text-decoration:none}.link.desktop-link.primary:hover{-webkit-filter:brightness(60%);filter:brightness(60%);text-decoration:underline}.link.desktop-link.primary:active{-webkit-filter:brightness(60%);filter:brightness(60%)}.link.mobile-link{margin:7px 0}.link.mobile-link.primary:active{-webkit-filter:brightness(60%);filter:brightness(60%)}.display-flex{display:flex}"]
}] }
];
/**
* @fileoverview added by tsickle
* Generated from: app/models/nav.config.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @abstract
*/
class NavConfig {
}
if (false) {
/** @type {?} */
NavConfig.prototype.navBrandConfig;
/** @type {?} */
NavConfig.prototype.navigationMenuRoutes;
/** @type {?} */
NavConfig.prototype.navigationHomeRoute;
}
/**
* @fileoverview added by tsickle
* Generated from: app/window/window.provider.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const WINDOW = new InjectionToken('WindowToken');
/**
* @fileoverview added by tsickle
* Generated from: app/desktop-navigation/desktop-navigation.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class DesktopNavigationComponent {
/**
* @param {?} navConfig
* @param {?} window
*/
constructor(navConfig, window) {
this.canFadeBoxShadowOut = false;
this.navConfig = navConfig;
this._window = window;
}
/**
* @return {?}
*/
ngOnInit() {
this._window.addEventListener('scroll', (/**
* @return {?}
*/
() => {
this.canFadeBoxShadowOut = this._window.scrollY > 0;
}));
}
}
DesktopNavigationComponent.decorators = [
{ type: Component, args: [{
selector: 'app-desktop-navigation',
template: "<div class=\"navigation-container\"\r\n [ngStyle]=\"{\r\n 'background-color': navConfig.navBrandConfig.colorPalette.backGroundColor,\r\n 'z-index': navConfig.navBrandConfig.zIndex,\r\n 'box-shadow': navConfig.navBrandConfig.boxShadow === true ? '0 0.5rem 1rem rgba(0, 0, 0, 0.15)' : 'none'\r\n}\">\r\n <div class=\"navigation-inner-container\">\r\n <div class=\"navigation-links\">\r\n <img class=\"navigation-image\"\r\n [routerLink]=\"navConfig.navigationHomeRoute.routePath\"\r\n [src]=\"navConfig.navBrandConfig.brandImageUrl\">\r\n <a class=\"link desktop-link primary\"\r\n [ngStyle]=\"{ 'color': navConfig.navBrandConfig.colorPalette.linkColor }\"\r\n *ngFor=\"let route of navConfig.navigationMenuRoutes\"\r\n [routerLink]=\"route.routePath\">{{route.routeName}}</a>\r\n </div>\r\n\r\n <div class=\"navigation-extras\">\r\n <ng-content select=\"[desktopExtras]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n",
styles: [".link.desktop-link{margin:0 7px}.link.desktop-link.primary{text-decoration:none}.link.desktop-link.primary:hover{-webkit-filter:brightness(60%);filter:brightness(60%);text-decoration:underline}.link.desktop-link.primary:active{-webkit-filter:brightness(60%);filter:brightness(60%)}.link.mobile-link{margin:7px 0}.link.mobile-link.primary:active{-webkit-filter:brightness(60%);filter:brightness(60%)}.display-flex{display:flex}.navigation-container{height:64px;width:100%;position:fixed}@media only screen and (max-width:576px){.navigation-container{display:none}}.navigation-container .navigation-inner-container{display:flex!important;justify-content:space-between!important;height:100%}.navigation-container .navigation-inner-container .navigation-links{display:flex!important;align-items:center!important;height:100%}.navigation-container .navigation-inner-container .navigation-links .navigation-image{height:100%;cursor:pointer}.navigation-container .navigation-inner-container .navigation-extras{display:flex!important;align-items:center!important;height:100%;padding-right:1rem}"]
}] }
];
/** @nocollapse */
DesktopNavigationComponent.ctorParameters = () => [
{ type: NavConfig },
{ type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] }
];
if (false) {
/** @type {?} */
DesktopNavigationComponent.prototype.navConfig;
/** @type {?} */
DesktopNavigationComponent.prototype.canFadeBoxShadowOut;
/**
* @type {?}
* @private
*/
DesktopNavigationComponent.prototype._window;
}
/**
* @fileoverview added by tsickle
* Generated from: app/mobile-navigation/mobile-navigation.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class MobileNavigationComponent {
/**
* @param {?} router
* @param {?} document
* @param {?} navConfig
*/
constructor(router, document, navConfig) {
this.faBars = faBars;
this.faTimes = faTimes;
this.canActivateMobileNav = false;
this._subscriptions = new Subscription();
this._router = router;
this._document = document;
this.navConfig = navConfig;
}
/**
* @return {?}
*/
ngOnInit() {
this._document.body.style.overflowY = 'scroll';
this._watchNavigationChanges(this._router);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.canActivateMobileNav = false;
this._setOverFlowY();
this._subscriptions.unsubscribe();
}
/**
* @return {?}
*/
toggleCanActivateMobileNavBar() {
this.canActivateMobileNav = !this.canActivateMobileNav;
this._setOverFlowY();
}
/**
* @private
* @return {?}
*/
_setOverFlowY() {
this.canActivateMobileNav
? this._document.body.style.overflowY = 'hidden'
: this._document.body.style.overflowY = 'scroll';
}
/**
* @private
* @param {?} router
* @return {?}
*/
_watchNavigationChanges(router) {
this._subscriptions.add(router.events.subscribe((/**
* @param {?} event
* @return {?}
*/
(event) => {
if (event instanceof NavigationEnd && this.canActivateMobileNav) {
this.toggleCanActivateMobileNavBar();
}
})));
}
}
MobileNavigationComponent.decorators = [
{ type: Component, args: [{
selector: 'app-mobile-navigation-component',
template: "<div class=\"mobile-navigation-burger-menu-button circle-container\"\r\n [ngStyle]=\"{\r\n 'background-color': navConfig.navBrandConfig.colorPalette.primaryColor,\r\n 'z-index': navConfig.navBrandConfig.zIndex + 1\r\n }\"\r\n (click)=\"toggleCanActivateMobileNavBar()\"\r\n [class.animation-slide-burger-right]=\"canActivateMobileNav\"\r\n [class.animation-slide-burger-left]=\"!canActivateMobileNav\" >\r\n\r\n <div class=\"mobile-navigation-burger-menu-button-inner\" [ngStyle]=\"{'z-index': navConfig.navBrandConfig.zIndex + 1}\">\r\n <fa-icon class=\"icon\" *ngIf=\"!canActivateMobileNav\" [ngStyle]=\"{ 'color': navConfig.navBrandConfig.colorPalette.secondaryColor }\" [icon]=\"faBars\"></fa-icon>\r\n <fa-icon class=\"icon\" *ngIf=\"canActivateMobileNav\" [ngStyle]=\"{ 'color': navConfig.navBrandConfig.colorPalette.primaryColor }\" [icon]=\"faTimes\"></fa-icon>\r\n </div>\r\n</div>\r\n\r\n<div appCheckOrientation class=\"mobile-navigation-menu\" *ngIf=\"canActivateMobileNav\" [ngStyle]=\"{'z-index': navConfig.navBrandConfig.zIndex}\">\r\n <div class=\"mobile-navigation-menu-items\"\r\n [ngStyle]=\"{ 'background-color': navConfig.navBrandConfig.colorPalette.backGroundColor }\"\r\n [class.animation-slide-in-nav-menu]=\"canActivateMobileNav\"\r\n [class.animation-slide-out-nav-menu]=\"!canActivateMobileNav\">\r\n\r\n <div class=\"mobile-navigation-button-runner\"\r\n [ngStyle]=\"{ 'background-color': navConfig.navBrandConfig.colorPalette.primaryColor }\"\r\n *ngIf=\"canActivateMobileNav\">\r\n <div class=\"runner-inner\"></div>\r\n </div>\r\n\r\n <div class=\"mobile-navigation-links\">\r\n <div class=\"mobile-navigation-links-inner\">\r\n <img class=\"mobile-navigation-inner-icon\"\r\n [routerLink]=\"navConfig.navigationHomeRoute.routePath\"\r\n [src]=\"navConfig.navBrandConfig.brandImageUrl\" />\r\n </div>\r\n <a class=\"link mobile-link\"\r\n *ngFor=\"let route of navConfig.navigationMenuRoutes\"\r\n [routerLink]=\"route.routePath\"\r\n [ngStyle]=\"{ 'color': navConfig.navBrandConfig.colorPalette.primaryColor }\">{{route.routeName}}</a>\r\n </div>\r\n\r\n <div class=\"mobile-navigation-extras\">\r\n <ng-content select=\"[mobileExtras]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n",
styles: ["@-webkit-keyframes slide-burger-right{to{right:29%;margin:18px 0 0;background-color:transparent;color:#1976d2}}@keyframes slide-burger-right{to{right:29%;margin:18px 0 0;background-color:transparent;color:#1976d2}}@-webkit-keyframes slide-burger-left{from{right:29%}to{right:68%}}@keyframes slide-burger-left{from{right:29%}to{right:68%}}@-webkit-keyframes animation-slide-in-nav-left{from{right:100%}to{right:25%}}@keyframes animation-slide-in-nav-left{from{right:100%}to{right:25%}}@-webkit-keyframes animation-slide-in-left{from{right:100%}to{right:0}}@keyframes animation-slide-in-left{from{right:100%}to{right:0}}@-webkit-keyframes animation-slide-out-nav-right{from{right:0}to{right:100%}}@keyframes animation-slide-out-nav-right{from{right:0}to{right:100%}}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes rotate-clockwise{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotate-clockwise{from{transform:rotate(0)}to{transform:rotate(360deg)}}.animation-slide-burger-right{-webkit-animation:.2s 75ms forwards slide-burger-right;animation:.2s 75ms forwards slide-burger-right}.animation-slide-burger-left{-webkit-animation:.2s forwards slide-burger-left;animation:.2s forwards slide-burger-left}.animation-slide-in-nav-menu{-webkit-animation:.2s forwards animation-slide-in-nav-left;animation:.2s forwards animation-slide-in-nav-left}.animation-slide-out-nav-menu{-webkit-animation:.2s forwards animation-slide-out-nav-right;animation:.2s forwards animation-slide-out-nav-right}.link.desktop-link{margin:0 7px}.link.desktop-link.primary{text-decoration:none}.link.desktop-link.primary:hover{-webkit-filter:brightness(60%);filter:brightness(60%);text-decoration:underline}.link.desktop-link.primary:active{-webkit-filter:brightness(60%);filter:brightness(60%)}.link.mobile-link{margin:7px 0}.link.mobile-link.primary:active{-webkit-filter:brightness(60%);filter:brightness(60%)}.display-flex{display:flex}.mobile-navigation-burger-menu-button{position:fixed;z-index:1001;font-size:1.25rem;color:#fff;width:50px;height:50px;text-align:center;cursor:pointer;margin:18px 59px 0 0;right:68%}.mobile-navigation-burger-menu-button .mobile-navigation-burger-menu-button-inner{padding-top:27%}.mobile-navigation-burger-menu-button .mobile-navigation-burger-menu-button-inner .icon{font-weight:600!important;padding-top:14px}.mobile-navigation-burger-menu-button.circle-container{border-radius:50%;color:#fff;border:none}.mobile-navigation-menu{height:100%;z-index:1}@media only screen and (min-width:576px){.mobile-navigation-burger-menu-button,.mobile-navigation-menu{display:none}}.mobile-navigation-menu .mobile-navigation-menu-items{box-shadow:7px 4px 12px -8px rgba(0,0,0,.75);width:75%;height:100%;z-index:1;position:fixed;color:#fff}.mobile-navigation-menu .mobile-navigation-menu-items .mobile-navigation-extras{padding:12px!important;height:50vh;display:flex!important;flex-direction:column!important}.mobile-navigation-menu .mobile-navigation-menu-items .mobile-navigation-button-runner{padding-right:3rem;z-index:13;height:3px;width:60%;margin-top:41px}.mobile-navigation-menu .mobile-navigation-menu-items .mobile-navigation-button-runner .runner-inner{border-radius:50%;height:inherit;margin-top:.25rem;width:100%}.mobile-navigation-menu .mobile-navigation-menu-items .mobile-navigation-links{display:flex!important;flex-direction:column!important;height:50vh;margin-top:3rem!important;text-align:center}.mobile-navigation-menu .mobile-navigation-menu-items .mobile-navigation-links .mobile-navigation-links-inner{display:flex!important;justify-content:center!important}.mobile-navigation-menu .mobile-navigation-menu-items .mobile-navigation-links .mobile-navigation-inner-icon{width:80px;height:80px;margin-bottom:12px;padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%}.mobile-navigation-menu .mobile-navigation-menu-items .sticky-bottom{height:400px}"]
}] }
];
/** @nocollapse */
MobileNavigationComponent.ctorParameters = () => [
{ type: Router },
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: NavConfig }
];
if (false) {
/** @type {?} */
MobileNavigationComponent.prototype.navConfig;
/** @type {?} */
MobileNavigationComponent.prototype.faBars;
/** @type {?} */
MobileNavigationComponent.prototype.faTimes;
/** @type {?} */
MobileNavigationComponent.prototype.canActivateMobileNav;
/**
* @type {?}
* @private
*/
MobileNavigationComponent.prototype._document;
/**
* @type {?}
* @private
*/
MobileNavigationComponent.prototype._router;
/**
* @type {?}
* @private
*/
MobileNavigationComponent.prototype._subscriptions;
}
/**
* @fileoverview added by tsickle
* Generated from: app/directives/orientation.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class OrientationDirective {
/**
* @param {?} document
* @param {?} window
* @param {?} mobileNavMenu
*/
constructor(document, window, mobileNavMenu) {
this.window = window;
this.mobileNavMenu = mobileNavMenu;
this.onInitialise();
}
/**
* @return {?}
*/
onInitialise() {
this.window.addEventListener('orientationchange', (/**
* @return {?}
*/
() => {
if (this._isLandScape()) {
this.mobileNavMenu.canActivateMobileNav = false;
document.body.style.overflowY = 'scroll';
}
}));
}
/**
* @private
* @return {?}
*/
_isLandScape() {
return this.window.outerWidth < this.window.outerHeight;
}
}
OrientationDirective.decorators = [
{ type: Directive, args: [{
selector: '[appCheckOrientation]'
},] }
];
/** @nocollapse */
OrientationDirective.ctorParameters = () => [
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] },
{ type: MobileNavigationComponent }
];
if (false) {
/**
* @type {?}
* @private
*/
OrientationDirective.prototype.window;
/**
* @type {?}
* @private
*/
OrientationDirective.prototype.mobileNavMenu;
}
/**
* @fileoverview added by tsickle
* Generated from: app/window/window.ref.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @abstract
*/
class WindowRef {
/**
* @return {?}
*/
get nativeWindow() {
throw new Error('Not Implemented');
}
}
/**
* @fileoverview added by tsickle
* Generated from: app/window/browser-window.ref.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class BrowserWindowRef extends WindowRef {
/**
* @return {?}
*/
get nativeWindow() {
return window;
}
constructor() {
super();
}
}
/**
* @fileoverview added by tsickle
* Generated from: app/window/window.factory.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} browserWindowRef
* @param {?} platformId
* @return {?}
*/
function WindowFactory(browserWindowRef, platformId) {
if (isPlatformBrowser(platformId)) {
return browserWindowRef.nativeWindow;
}
return {};
}
/**
* @fileoverview added by tsickle
* Generated from: app/window/browser-window.provider.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const browserWindowProvider = {
provide: WindowRef,
useClass: BrowserWindowRef
};
const ɵ0 = WindowFactory;
/** @type {?} */
const windowProvider = {
provide: WINDOW,
useFactory: ɵ0,
deps: [WindowRef, PLATFORM_ID]
};
/** @type {?} */
const WINDOW_PROVIDERS = [
browserWindowProvider,
windowProvider
];
/**
* @fileoverview added by tsickle
* Generated from: app/factories/default-config.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const defaultConfig = {
navBrandConfig: {
colorPalette: {
primaryColor: '#1976D2',
secondaryColor: '#ffffff',
linkActiveColor: '#1976D2',
linkColor: '#1976D2',
tertiaryColor: '#1976D2',
backGroundColor: '#ffffff'
},
brandImageUrl: 'https://placehold.it/300x300',
zIndex: 1,
boxShadow: true,
},
navigationHomeRoute: {
routePath: '/',
routeName: 'home'
},
navigationMenuRoutes: []
};
/**
* @fileoverview added by tsickle
* Generated from: app/factories/nav-config.factory.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
// @dynamic
class NavConfigFactory {
/**
* @private
* @param {?} navLinks
* @return {?}
*/
_mapNavigationMenuRoutes(navLinks) {
return navLinks ? navLinks : defaultConfig.navigationMenuRoutes;
}
/**
* @private
* @param {?} homeRoute
* @return {?}
*/
_mapNavigationHomeRoute(homeRoute) {
return homeRoute ? homeRoute : defaultConfig.navigationHomeRoute;
}
/**
* @private
* @param {?} styles
* @return {?}
*/
_mapBrandConfig(styles) {
if (styles !== undefined) {
return {
brandImageUrl: styles.brandImageUrl ? styles.brandImageUrl : defaultConfig.navBrandConfig.brandImageUrl,
colorPalette: this._mapColorPalette(styles.colorPalette),
zIndex: styles.zIndex ? styles.zIndex : defaultConfig.navBrandConfig.zIndex,
boxShadow: (styles.boxShadow === false || styles.boxShadow === true) ? styles.boxShadow : defaultConfig.navBrandConfig.boxShadow,
};
}
return defaultConfig.navBrandConfig;
}
/**
* @private
* @param {?} colorPalette
* @return {?}
*/
_mapColorPalette(colorPalette) {
if (colorPalette) {
return {
primaryColor: colorPalette.primaryColor,
secondaryColor: colorPalette.secondaryColor,
linkActiveColor: colorPalette.linkActiveColor,
linkColor: colorPalette.linkColor,
tertiaryColor: colorPalette.tertiaryColor,
backGroundColor: colorPalette.backGroundColor,
};
}
return {
primaryColor: defaultConfig.navBrandConfig.colorPalette.primaryColor,
secondaryColor: defaultConfig.navBrandConfig.colorPalette.secondaryColor,
linkActiveColor: defaultConfig.navBrandConfig.colorPalette.linkActiveColor,
linkColor: defaultConfig.navBrandConfig.colorPalette.linkColor,
tertiaryColor: defaultConfig.navBrandConfig.colorPalette.tertiaryColor,
backGroundColor: defaultConfig.navBrandConfig.colorPalette.backGroundColor,
};
}
/**
* @param {?} config
* @return {?}
*/
for(config) {
return {
navigationMenuRoutes: this._mapNavigationMenuRoutes(config.navigationMenuRoutes),
navigationHomeRoute: this._mapNavigationHomeRoute(config.navigationHomeRoute),
navBrandConfig: this._mapBrandConfig(config.navBrandConfig)
};
}
}
/**
* @fileoverview added by tsickle
* Generated from: app/ng-responsive-nav.module.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const declarations = [
DesktopNavigationComponent,
MobileNavigationComponent,
OrientationDirective,
NgResponsiveNavComponent
];
class NgResponsiveNavModule {
/**
* @param {?} navConfig
* @return {?}
*/
static forRoot(navConfig) {
/** @type {?} */
const navFactory = new NavConfigFactory();
/** @type {?} */
const navigationConfig = navFactory.for(navConfig);
return {
ngModule: NgResponsiveNavModule,
providers: [
{ provide: NavConfig, useValue: navigationConfig }
]
};
}
}
NgResponsiveNavModule.decorators = [
{ type: NgModule, args: [{
declarations: [...declarations],
imports: [
CommonModule,
BrowserModule,
RouterModule,
FontAwesomeModule
],
exports: [
NgResponsiveNavComponent
],
providers: [
WINDOW_PROVIDERS
]
},] }
];
/**
* @fileoverview added by tsickle
* Generated from: app/models/nav-brand.config.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @abstract
*/
class NavBrandConfig {
}
if (false) {
/** @type {?} */
NavBrandConfig.prototype.colorPalette;
/** @type {?} */
NavBrandConfig.prototype.brandImageUrl;
/** @type {?} */
NavBrandConfig.prototype.zIndex;
/** @type {?} */
NavBrandConfig.prototype.boxShadow;
}
/**
* @fileoverview added by tsickle
* Generated from: app/models/nav-routes.config.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @abstract
*/
class NavigationMenuRoute {
}
if (false) {
/** @type {?} */
NavigationMenuRoute.prototype.routeName;
/** @type {?} */
NavigationMenuRoute.prototype.routePath;
}
/**
* @fileoverview added by tsickle
* Generated from: public-api.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* Generated from: ng-responsive-nav.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { BrowserWindowRef, DesktopNavigationComponent, MobileNavigationComponent, NavBrandConfig, NavConfig, NavigationMenuRoute, NgResponsiveNavComponent, NgResponsiveNavModule, WINDOW, WINDOW_PROVIDERS, WindowFactory, WindowRef, OrientationDirective as ɵa };
//# sourceMappingURL=ng-responsive-nav.js.map