@coreui/angular
Version:
CoreUI Angular Bootstrap 4 components
1,728 lines (1,698 loc) • 51 kB
JavaScript
import { BehaviorSubject } from 'rxjs/index';
import { filter } from 'rxjs/operators';
import { Inject, Injectable, Renderer2, Directive, HostListener, Input, NgModule, Component, ElementRef, HostBinding } from '@angular/core';
import { DOCUMENT, CommonModule } from '@angular/common';
import { Router, ActivatedRoute, NavigationEnd, RouterModule } from '@angular/router';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const sidebarCssClasses = [
'sidebar-show',
'sidebar-sm-show',
'sidebar-md-show',
'sidebar-lg-show',
'sidebar-xl-show'
];
/** @type {?} */
const asideMenuCssClasses = [
'aside-menu-show',
'aside-menu-sm-show',
'aside-menu-md-show',
'aside-menu-lg-show',
'aside-menu-xl-show'
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const RemoveClasses = (NewClassNames) => {
/** @type {?} */
const MatchClasses = NewClassNames.map((Class) => document.body.classList.contains(Class));
return MatchClasses.indexOf(true) !== -1;
};
/** @type {?} */
const ToggleClasses = (Toggle, ClassNames) => {
/** @type {?} */
const Level = ClassNames.indexOf(Toggle);
/** @type {?} */
const NewClassNames = ClassNames.slice(0, Level + 1);
if (RemoveClasses(NewClassNames)) {
NewClassNames.map((Class) => document.body.classList.remove(Class));
}
else {
document.body.classList.add(Toggle);
}
};
class ClassToggler {
/**
* @param {?} document
* @param {?} renderer
*/
constructor(document, renderer) {
this.document = document;
this.renderer = renderer;
}
/**
* @param {?} NewClassNames
* @return {?}
*/
removeClasses(NewClassNames) {
/** @type {?} */
const MatchClasses = NewClassNames.map((Class) => this.document.body.classList.contains(Class));
return MatchClasses.indexOf(true) !== -1;
}
/**
* @param {?} Toggle
* @param {?} ClassNames
* @return {?}
*/
toggleClasses(Toggle, ClassNames) {
/** @type {?} */
const Level = ClassNames.indexOf(Toggle);
/** @type {?} */
const NewClassNames = ClassNames.slice(0, Level + 1);
if (this.removeClasses(NewClassNames)) {
NewClassNames.map((Class) => this.renderer.removeClass(this.document.body, Class));
}
else {
this.renderer.addClass(this.document.body, Toggle);
}
}
}
ClassToggler.decorators = [
{ type: Injectable }
];
/** @nocollapse */
ClassToggler.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Allows the sidebar to be toggled via click.
*/
class SidebarToggleDirective {
constructor() { }
/**
* @return {?}
*/
ngOnInit() {
this.bp = this.breakpoint;
}
/**
* @param {?} $event
* @return {?}
*/
toggleOpen($event) {
$event.preventDefault();
/** @type {?} */
let cssClass;
this.bp ? cssClass = `sidebar-${this.bp}-show` : cssClass = sidebarCssClasses[0];
ToggleClasses(cssClass, sidebarCssClasses);
}
}
SidebarToggleDirective.decorators = [
{ type: Directive, args: [{
selector: '[appSidebarToggler]'
},] }
];
/** @nocollapse */
SidebarToggleDirective.ctorParameters = () => [];
SidebarToggleDirective.propDecorators = {
breakpoint: [{ type: Input, args: ['appSidebarToggler',] }],
toggleOpen: [{ type: HostListener, args: ['click', ['$event'],] }]
};
class SidebarMinimizeDirective {
/**
* @param {?} document
* @param {?} renderer
*/
constructor(document, renderer) {
this.document = document;
this.renderer = renderer;
}
/**
* @param {?} $event
* @return {?}
*/
toggleOpen($event) {
$event.preventDefault();
/** @type {?} */
const body = this.document.body;
body.classList.contains('sidebar-minimized') ?
this.renderer.removeClass(body, 'sidebar-minimized') :
this.renderer.addClass(body, 'sidebar-minimized');
// document.body.classList.toggle('sidebar-minimized');
}
}
SidebarMinimizeDirective.decorators = [
{ type: Directive, args: [{
selector: '[appSidebarMinimizer]'
},] }
];
/** @nocollapse */
SidebarMinimizeDirective.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 }
];
SidebarMinimizeDirective.propDecorators = {
toggleOpen: [{ type: HostListener, args: ['click', ['$event'],] }]
};
class MobileSidebarToggleDirective {
/**
* @param {?} document
* @param {?} renderer
*/
constructor(document, renderer) {
this.document = document;
this.renderer = renderer;
}
// Check if element has class
/**
* @private
* @param {?} target
* @param {?} elementClassName
* @return {?}
*/
hasClass(target, elementClassName) {
return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className);
}
/**
* @param {?} $event
* @return {?}
*/
toggleOpen($event) {
$event.preventDefault();
/** @type {?} */
const body = this.document.body;
body.classList.contains('sidebar-show') ?
this.renderer.removeClass(body, 'sidebar-show') :
this.renderer.addClass(body, 'sidebar-show');
// document.body.classList.toggle('sidebar-show');
}
}
MobileSidebarToggleDirective.decorators = [
{ type: Directive, args: [{
selector: '[appMobileSidebarToggler]'
},] }
];
/** @nocollapse */
MobileSidebarToggleDirective.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 }
];
MobileSidebarToggleDirective.propDecorators = {
toggleOpen: [{ type: HostListener, args: ['click', ['$event'],] }]
};
/**
* Allows the off-canvas sidebar to be closed via click.
*/
class SidebarOffCanvasCloseDirective {
/**
* @param {?} document
* @param {?} renderer
*/
constructor(document, renderer) {
this.document = document;
this.renderer = renderer;
}
// Check if element has class
/**
* @private
* @param {?} target
* @param {?} elementClassName
* @return {?}
*/
hasClass(target, elementClassName) {
return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className);
}
// Toggle element class
/**
* @private
* @param {?} elem
* @param {?} elementClassName
* @return {?}
*/
toggleClass(elem, elementClassName) {
/** @type {?} */
let newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' ';
if (this.hasClass(elem, elementClassName)) {
while (newClass.indexOf(' ' + elementClassName + ' ') >= 0) {
newClass = newClass.replace(' ' + elementClassName + ' ', ' ');
}
elem.className = newClass.replace(/^\s+|\s+$/g, '');
}
else {
elem.className += ' ' + elementClassName;
}
}
/**
* @param {?} $event
* @return {?}
*/
toggleOpen($event) {
$event.preventDefault();
/** @type {?} */
const body = this.document.body;
if (this.hasClass(body, 'sidebar-off-canvas')) {
body.classList.contains('sidebar-show') ?
this.renderer.removeClass(body, 'sidebar-show') :
this.renderer.addClass(body, 'sidebar-show');
// this.toggleClass(document.body, 'sidebar-opened');
}
}
}
SidebarOffCanvasCloseDirective.decorators = [
{ type: Directive, args: [{
selector: '[appSidebarClose]'
},] }
];
/** @nocollapse */
SidebarOffCanvasCloseDirective.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 }
];
SidebarOffCanvasCloseDirective.propDecorators = {
toggleOpen: [{ type: HostListener, args: ['click', ['$event'],] }]
};
class BrandMinimizeDirective {
/**
* @param {?} document
* @param {?} renderer
*/
constructor(document, renderer) {
this.document = document;
this.renderer = renderer;
}
/**
* @param {?} $event
* @return {?}
*/
toggleOpen($event) {
$event.preventDefault();
/** @type {?} */
const body = this.document.body;
body.classList.contains('brand-minimized') ?
this.renderer.removeClass(body, 'brand-minimized') :
this.renderer.addClass(body, 'brand-minimized');
// document.body.classList.toggle('brand-minimized');
}
}
BrandMinimizeDirective.decorators = [
{ type: Directive, args: [{
selector: '[appBrandMinimizer]'
},] }
];
/** @nocollapse */
BrandMinimizeDirective.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 }
];
BrandMinimizeDirective.propDecorators = {
toggleOpen: [{ type: HostListener, args: ['click', ['$event'],] }]
};
/**
* Allows the aside to be toggled via click.
*/
class AsideToggleDirective {
/**
* @param {?} classToggler
*/
constructor(classToggler) {
this.classToggler = classToggler;
}
/**
* @return {?}
*/
ngOnInit() {
this.bp = this.breakpoint;
}
/**
* @param {?} $event
* @return {?}
*/
toggleOpen($event) {
$event.preventDefault();
/** @type {?} */
const cssClass = this.bp ? `aside-menu-${this.bp}-show` : asideMenuCssClasses[0];
this.classToggler.toggleClasses(cssClass, asideMenuCssClasses);
}
}
AsideToggleDirective.decorators = [
{ type: Directive, args: [{
selector: '[appAsideMenuToggler]',
providers: [ClassToggler]
},] }
];
/** @nocollapse */
AsideToggleDirective.ctorParameters = () => [
{ type: ClassToggler }
];
AsideToggleDirective.propDecorators = {
breakpoint: [{ type: Input, args: ['appAsideMenuToggler',] }],
toggleOpen: [{ type: HostListener, args: ['click', ['$event'],] }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class LayoutModule {
}
LayoutModule.decorators = [
{ type: NgModule, args: [{
imports: [
CommonModule
],
exports: [
AsideToggleDirective,
BrandMinimizeDirective,
MobileSidebarToggleDirective,
SidebarToggleDirective,
SidebarMinimizeDirective,
SidebarOffCanvasCloseDirective
],
declarations: [
AsideToggleDirective,
BrandMinimizeDirective,
MobileSidebarToggleDirective,
SidebarToggleDirective,
SidebarMinimizeDirective,
SidebarOffCanvasCloseDirective
],
providers: [
ClassToggler
]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} el
* @return {?}
*/
function Replace(el) {
/** @type {?} */
const nativeElement = el.nativeElement;
/** @type {?} */
const parentElement = nativeElement.parentElement;
// move all children out of the element
while (nativeElement.firstChild) {
parentElement.insertBefore(nativeElement.firstChild, nativeElement);
}
// remove the empty element(the host)
parentElement.removeChild(nativeElement);
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppAsideComponent {
/**
* @param {?} document
* @param {?} renderer
* @param {?} el
*/
constructor(document, renderer, el) {
this.document = document;
this.renderer = renderer;
this.el = el;
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
this.isFixed(this.fixed);
this.isOffCanvas(this.offCanvas);
this.displayBreakpoint(this.display);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.renderer.removeClass(this.document.body, 'aside-menu-fixed');
}
/**
* @param {?=} fixed
* @return {?}
*/
isFixed(fixed = this.fixed) {
if (fixed) {
this.renderer.addClass(this.document.body, 'aside-menu-fixed');
}
}
/**
* @param {?=} offCanvas
* @return {?}
*/
isOffCanvas(offCanvas = this.offCanvas) {
if (offCanvas) {
this.renderer.addClass(this.document.body, 'aside-menu-off-canvas');
}
}
/**
* @param {?=} display
* @return {?}
*/
displayBreakpoint(display = this.display) {
if (display !== false) {
/** @type {?} */
const cssClass = this.display ? `aside-menu-${this.display}-show` : asideMenuCssClasses[0];
this.renderer.addClass(this.document.body, cssClass);
}
}
}
AppAsideComponent.decorators = [
{ type: Component, args: [{
selector: 'app-aside',
template: `
<aside class="aside-menu">
<ng-content></ng-content>
</aside>
`
}] }
];
/** @nocollapse */
AppAsideComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 },
{ type: ElementRef }
];
AppAsideComponent.propDecorators = {
display: [{ type: Input }],
fixed: [{ type: Input }],
offCanvas: [{ type: Input }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppAsideModule {
}
AppAsideModule.decorators = [
{ type: NgModule, args: [{
imports: [
CommonModule,
LayoutModule
],
exports: [
AppAsideComponent,
LayoutModule
],
declarations: [
AppAsideComponent
]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppBreadcrumbService {
/**
* @param {?} router
* @param {?} route
*/
constructor(router, route) {
this.router = router;
this.route = route;
this._breadcrumbs = new BehaviorSubject(new Array());
this.breadcrumbs = this._breadcrumbs.asObservable();
this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event) => {
/** @type {?} */
const breadcrumbs = [];
/** @type {?} */
let currentRoute = this.route.root;
/** @type {?} */
let url = '';
do {
/** @type {?} */
const childrenRoutes = currentRoute.children;
currentRoute = null;
// tslint:disable-next-line:no-shadowed-variable
childrenRoutes.forEach(route => {
if (route.outlet === 'primary') {
/** @type {?} */
const routeSnapshot = route.snapshot;
url += '/' + routeSnapshot.url.map(segment => segment.path).join('/');
breadcrumbs.push({
label: route.snapshot.data,
url: url
});
currentRoute = route;
}
});
} while (currentRoute);
this._breadcrumbs.next(Object.assign([], breadcrumbs));
return breadcrumbs;
});
}
}
AppBreadcrumbService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
AppBreadcrumbService.ctorParameters = () => [
{ type: Router },
{ type: ActivatedRoute }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppBreadcrumbComponent {
/**
* @param {?} document
* @param {?} renderer
* @param {?} service
* @param {?} el
*/
constructor(document, renderer, service, el) {
this.document = document;
this.renderer = renderer;
this.service = service;
this.el = el;
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
this.isFixed(this.fixed);
this.breadcrumbs = this.service.breadcrumbs;
}
/**
* @return {?}
*/
ngOnDestroy() {
this.renderer.removeClass(this.document.body, 'breadcrumb-fixed');
}
/**
* @param {?=} fixed
* @return {?}
*/
isFixed(fixed = this.fixed) {
if (fixed) {
this.renderer.addClass(this.document.body, 'breadcrumb-fixed');
}
}
}
AppBreadcrumbComponent.decorators = [
{ type: Component, args: [{
selector: 'app-breadcrumb',
template: `
<ng-template ngFor let-breadcrumb [ngForOf]="breadcrumbs | async" let-last = last>
<li class="breadcrumb-item"
*ngIf="breadcrumb.label.title && (breadcrumb.url.slice(-1) == '/' || last)"
[ngClass]="{active: last}">
<a *ngIf="!last" [routerLink]="breadcrumb.url">{{breadcrumb.label.title}}</a>
<span *ngIf="last" [routerLink]="breadcrumb.url">{{breadcrumb.label.title}}</span>
</li>
</ng-template>
`
}] }
];
/** @nocollapse */
AppBreadcrumbComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 },
{ type: AppBreadcrumbService },
{ type: ElementRef }
];
AppBreadcrumbComponent.propDecorators = {
fixed: [{ type: Input }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
// @dynamic
class AppBreadcrumbModule {
/**
* @param {?=} config
* @return {?}
*/
static forRoot(config) {
return {
ngModule: AppBreadcrumbModule,
providers: [
AppBreadcrumbService
]
};
}
}
AppBreadcrumbModule.decorators = [
{ type: NgModule, args: [{
imports: [CommonModule, RouterModule],
exports: [AppBreadcrumbComponent],
declarations: [AppBreadcrumbComponent]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppFooterComponent {
/**
* @param {?} document
* @param {?} renderer
* @param {?} el
*/
constructor(document, renderer, el) {
this.document = document;
this.renderer = renderer;
this.el = el;
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
this.isFixed(this.fixed);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.renderer.removeClass(this.document.body, 'footer-fixed');
}
/**
* @param {?=} fixed
* @return {?}
*/
isFixed(fixed = this.fixed) {
if (fixed) {
this.renderer.addClass(this.document.body, 'footer-fixed');
}
}
}
AppFooterComponent.decorators = [
{ type: Component, args: [{
selector: 'app-footer',
template: `
<ng-container class="app-footer"></ng-container>
<footer class="app-footer">
<ng-content></ng-content>
</footer>
`
}] }
];
/** @nocollapse */
AppFooterComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 },
{ type: ElementRef }
];
AppFooterComponent.propDecorators = {
fixed: [{ type: Input }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppFooterModule {
}
AppFooterModule.decorators = [
{ type: NgModule, args: [{
imports: [CommonModule],
exports: [AppFooterComponent],
declarations: [AppFooterComponent]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppHeaderComponent {
/**
* @param {?} document
* @param {?} renderer
* @param {?} el
*/
constructor(document, renderer, el) {
this.document = document;
this.renderer = renderer;
this.el = el;
this.navbarBrandText = { icon: '🅲', text: '🅲 CoreUI' };
this.navbarBrandHref = '';
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
this.isFixed(this.fixed);
this.navbarBrandImg = Boolean(this.navbarBrand || this.navbarBrandFull || this.navbarBrandMinimized);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.renderer.removeClass(this.document.body, 'header-fixed');
}
/**
* @param {?=} fixed
* @return {?}
*/
isFixed(fixed = this.fixed) {
if (fixed) {
this.renderer.addClass(this.document.body, 'header-fixed');
}
}
/**
* @param {?} brand
* @return {?}
*/
imgSrc(brand) {
return brand.src ? brand.src : '';
}
/**
* @param {?} brand
* @return {?}
*/
imgWidth(brand) {
return brand.width ? brand.width : 'auto';
}
/**
* @param {?} brand
* @return {?}
*/
imgHeight(brand) {
return brand.height ? brand.height : 'auto';
}
/**
* @param {?} brand
* @return {?}
*/
imgAlt(brand) {
return brand.alt ? brand.alt : '';
}
/**
* @param {?} breakpoint
* @return {?}
*/
breakpoint(breakpoint) {
console.log(breakpoint);
return breakpoint ? breakpoint : '';
}
}
AppHeaderComponent.decorators = [
{ type: Component, args: [{
selector: 'app-header',
template: `
<header class="app-header navbar">
<ng-template [ngIf]="mobileSidebarToggler != false">
<button class="navbar-toggler d-lg-none" type="button" appSidebarToggler>
<span class="navbar-toggler-icon"></span>
</button>
</ng-template>
<a class="navbar-brand" [href]="navbarBrandHref">
<ng-template [ngIf]="navbarBrandImg">
<img *ngIf="navbarBrand"
[src]="imgSrc(navbarBrand)"
[attr.width]="imgWidth(navbarBrand)"
[attr.height]="imgHeight(navbarBrand)"
[attr.alt]="imgAlt(navbarBrand)"
class="navbar-brand">
<img *ngIf="navbarBrandFull"
[src]="imgSrc(navbarBrandFull)"
[attr.width]="imgWidth(navbarBrandFull)"
[attr.height]="imgHeight(navbarBrandFull)"
[attr.alt]="imgAlt(navbarBrandFull)"
class="navbar-brand-full">
<img *ngIf="navbarBrandMinimized"
[src]="imgSrc(navbarBrandMinimized)"
[attr.width]="imgWidth(navbarBrandMinimized)"
[attr.height]="imgHeight(navbarBrandMinimized)"
[attr.alt]="imgAlt(navbarBrandMinimized)"
class="navbar-brand-minimized">
</ng-template>
<ng-template [ngIf]="!navbarBrandImg">
<div class="navbar-brand-full" [innerHTML]="navbarBrandText.text"></div>
<div class="navbar-brand-minimized" [innerHTML]="navbarBrandText.icon"></div>
</ng-template>
</a>
<ng-template [ngIf]="sidebarToggler != false">
<button class="navbar-toggler d-md-down-none" type="button" [appSidebarToggler]="sidebarToggler">
<span class="navbar-toggler-icon"></span>
</button>
</ng-template>
<ng-content></ng-content>
<ng-template [ngIf]="asideMenuToggler != false">
<button class="navbar-toggler d-md-down-none" type="button" [appAsideMenuToggler]="asideMenuToggler">
<span class="navbar-toggler-icon"></span>
</button>
</ng-template>
<ng-template [ngIf]="mobileAsideMenuToggler != false">
<button class="navbar-toggler d-lg-none" type="button" appAsideMenuToggler>
<span class="navbar-toggler-icon"></span>
</button>
</ng-template>
</header>
`
}] }
];
/** @nocollapse */
AppHeaderComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 },
{ type: ElementRef }
];
AppHeaderComponent.propDecorators = {
fixed: [{ type: Input }],
navbarBrand: [{ type: Input }],
navbarBrandFull: [{ type: Input }],
navbarBrandMinimized: [{ type: Input }],
navbarBrandText: [{ type: Input }],
navbarBrandHref: [{ type: Input }],
sidebarToggler: [{ type: Input }],
mobileSidebarToggler: [{ type: Input }],
asideMenuToggler: [{ type: Input }],
mobileAsideMenuToggler: [{ type: Input }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppHeaderModule {
}
AppHeaderModule.decorators = [
{ type: NgModule, args: [{
imports: [
CommonModule,
LayoutModule
],
exports: [
AppHeaderComponent,
LayoutModule
],
declarations: [
AppHeaderComponent
]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppSidebarFooterComponent {
/**
* @param {?} el
*/
constructor(el) {
this.el = el;
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
}
}
AppSidebarFooterComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-footer',
template: `
<div class="sidebar-footer">
<ng-content></ng-content>
</div>`
}] }
];
/** @nocollapse */
AppSidebarFooterComponent.ctorParameters = () => [
{ type: ElementRef }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppSidebarFormComponent {
/**
* @param {?} el
*/
constructor(el) {
this.el = el;
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
}
}
AppSidebarFormComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-form',
template: `
<form class="sidebar-form">
<ng-content></ng-content>
</form>
`
}] }
];
/** @nocollapse */
AppSidebarFormComponent.ctorParameters = () => [
{ type: ElementRef }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppSidebarHeaderComponent {
/**
* @param {?} el
*/
constructor(el) {
this.el = el;
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
}
}
AppSidebarHeaderComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-header',
template: `
<div class="sidebar-header">
<ng-content></ng-content>
</div>
`
}] }
];
/** @nocollapse */
AppSidebarHeaderComponent.ctorParameters = () => [
{ type: ElementRef }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppSidebarMinimizerComponent {
/**
* @param {?} el
*/
constructor(el) {
this.el = el;
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
}
}
AppSidebarMinimizerComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-minimizer',
template: `
<button class="sidebar-minimizer" type="button" appSidebarMinimizer appBrandMinimizer></button>
`
}] }
];
/** @nocollapse */
AppSidebarMinimizerComponent.ctorParameters = () => [
{ type: ElementRef }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppSidebarComponent {
/**
* @param {?} document
* @param {?} renderer
*/
constructor(document, renderer) {
this.document = document;
this.renderer = renderer;
}
/**
* @return {?}
*/
ngOnInit() {
this.displayBreakpoint(this.display);
this.isCompact(this.compact);
this.isFixed(this.fixed);
this.isMinimized(this.minimized);
this.isOffCanvas(this.offCanvas);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.renderer.removeClass(this.document.body, 'sidebar-fixed');
}
/**
* @param {?=} compact
* @return {?}
*/
isCompact(compact = this.compact) {
if (compact) {
this.renderer.addClass(this.document.body, 'sidebar-compact');
}
}
/**
* @param {?=} fixed
* @return {?}
*/
isFixed(fixed = this.fixed) {
if (fixed) {
this.renderer.addClass(this.document.body, 'sidebar-fixed');
}
}
/**
* @param {?=} minimized
* @return {?}
*/
isMinimized(minimized = this.minimized) {
if (minimized) {
this.renderer.addClass(this.document.body, 'sidebar-minimized');
}
}
/**
* @param {?=} offCanvas
* @return {?}
*/
isOffCanvas(offCanvas = this.offCanvas) {
if (offCanvas) {
this.renderer.addClass(this.document.body, 'sidebar-off-canvas');
}
}
/**
* @param {?=} fixed
* @return {?}
*/
fixedPosition(fixed = this.fixed) {
console.warn('deprecated fixedPosition(), use isFixed() instead');
if (fixed) {
this.renderer.addClass(this.document.body, 'sidebar-fixed');
}
}
/**
* @param {?=} display
* @return {?}
*/
displayBreakpoint(display = this.display) {
if (display !== false) {
/** @type {?} */
const cssClass = display ? `sidebar-${display}-show` : sidebarCssClasses[0];
this.renderer.addClass(this.document.body, cssClass);
}
}
}
AppSidebarComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar',
template: `<ng-content></ng-content>`
}] }
];
/** @nocollapse */
AppSidebarComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 }
];
AppSidebarComponent.propDecorators = {
compact: [{ type: Input }],
display: [{ type: Input }],
fixed: [{ type: Input }],
minimized: [{ type: Input }],
offCanvas: [{ type: Input }],
true: [{ type: HostBinding, args: ['class.sidebar',] }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NavDropdownDirective {
/**
* @param {?} el
*/
constructor(el) {
this.el = el;
}
/**
* @return {?}
*/
toggle() {
this.el.nativeElement.classList.toggle('open');
}
}
NavDropdownDirective.decorators = [
{ type: Directive, args: [{
selector: '[appNavDropdown]'
},] }
];
/** @nocollapse */
NavDropdownDirective.ctorParameters = () => [
{ type: ElementRef }
];
/**
* Allows the dropdown to be toggled via click.
*/
class NavDropdownToggleDirective {
/**
* @param {?} dropdown
*/
constructor(dropdown) {
this.dropdown = dropdown;
}
/**
* @param {?} $event
* @return {?}
*/
toggleOpen($event) {
$event.preventDefault();
this.dropdown.toggle();
}
}
NavDropdownToggleDirective.decorators = [
{ type: Directive, args: [{
selector: '[appNavDropdownToggle]'
},] }
];
/** @nocollapse */
NavDropdownToggleDirective.ctorParameters = () => [
{ type: NavDropdownDirective }
];
NavDropdownToggleDirective.propDecorators = {
toggleOpen: [{ type: HostListener, args: ['click', ['$event'],] }]
};
class LinkAttributesDirective {
/**
* @param {?} document
* @param {?} renderer
* @param {?} el
*/
constructor(document, renderer, el) {
this.document = document;
this.renderer = renderer;
this.el = el;
}
/**
* @return {?}
*/
ngOnInit() {
/** @type {?} */
const attribs = this.appLinkAttributes;
for (const attr in attribs) {
if (attr === 'style' && typeof (attribs[attr]) === 'object') {
this.setStyle(attribs[attr]);
}
else if (attr === 'class') {
this.addClass(attribs[attr]);
}
else {
this.setAttrib(attr, attribs[attr]);
}
}
}
/**
* @private
* @param {?} styles
* @return {?}
*/
setStyle(styles) {
for (const style in styles) {
this.renderer.setStyle(this.el.nativeElement, style, styles[style]);
}
}
/**
* @private
* @param {?} classes
* @return {?}
*/
addClass(classes) {
/** @type {?} */
const classArray = Array.isArray(classes) ? classes : classes.split(' ');
classArray.forEach(element => {
this.renderer.addClass(this.el.nativeElement, element);
});
}
/**
* @private
* @param {?} key
* @param {?} value
* @return {?}
*/
setAttrib(key, value) {
/** @type {?} */
const newAttr = this.document.createAttribute(key);
newAttr.value = value;
this.renderer.setAttribute(this.el.nativeElement, key, value);
}
}
LinkAttributesDirective.decorators = [
{ type: Directive, args: [{
selector: '[appLinkAttributes]'
},] }
];
/** @nocollapse */
LinkAttributesDirective.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 },
{ type: ElementRef }
];
LinkAttributesDirective.propDecorators = {
appLinkAttributes: [{ type: Input }]
};
class AppSidebarNavComponent {
constructor() {
this.role = 'nav';
}
/**
* @param {?} item
* @return {?}
*/
isDivider(item) {
return item.divider ? true : false;
}
/**
* @param {?} item
* @return {?}
*/
isTitle(item) {
return item.title ? true : false;
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
this.navItemsArray = JSON.parse(JSON.stringify(this.navItems));
}
}
AppSidebarNavComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-nav',
template: `
<ul class="nav">
<ng-template ngFor let-navitem [ngForOf]="navItems">
<li *ngIf="isDivider(navitem)" class="nav-divider"></li>
<ng-template [ngIf]="isTitle(navitem)">
<app-sidebar-nav-title [title]='navitem'></app-sidebar-nav-title>
</ng-template>
<ng-template [ngIf]="!isDivider(navitem)&&!isTitle(navitem)">
<app-sidebar-nav-item [item]='navitem'></app-sidebar-nav-item>
</ng-template>
</ng-template>
</ul>`
}] }
];
/** @nocollapse */
AppSidebarNavComponent.ctorParameters = () => [];
AppSidebarNavComponent.propDecorators = {
navItems: [{ type: Input }],
true: [{ type: HostBinding, args: ['class.sidebar-nav',] }],
role: [{ type: HostBinding, args: ['attr.role',] }]
};
class AppSidebarNavItemComponent {
/**
* @param {?} router
* @param {?} el
*/
constructor(router, el) {
this.router = router;
this.el = el;
}
/**
* @return {?}
*/
hasClass() {
return this.item.class ? true : false;
}
/**
* @return {?}
*/
isDropdown() {
return this.item.children ? true : false;
}
/**
* @return {?}
*/
thisUrl() {
return this.item.url;
}
/**
* @return {?}
*/
isActive() {
return this.router.isActive(this.thisUrl(), false);
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
}
}
AppSidebarNavItemComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-nav-item',
template: `
<li *ngIf="!isDropdown(); else dropdown" [ngClass]="hasClass() ? 'nav-item ' + item.class : 'nav-item'">
<app-sidebar-nav-link [link]='item'></app-sidebar-nav-link>
</li>
<ng-template #dropdown>
<li [ngClass]="hasClass() ? 'nav-item nav-dropdown ' + item.class : 'nav-item nav-dropdown'"
[class.open]="isActive()"
routerLinkActive="open"
appNavDropdown>
<app-sidebar-nav-dropdown [link]='item'></app-sidebar-nav-dropdown>
</li>
</ng-template>
`
}] }
];
/** @nocollapse */
AppSidebarNavItemComponent.ctorParameters = () => [
{ type: Router },
{ type: ElementRef }
];
AppSidebarNavItemComponent.propDecorators = {
item: [{ type: Input }]
};
class AppSidebarNavLinkComponent {
/**
* @param {?} document
* @param {?} renderer
* @param {?} router
* @param {?} el
*/
constructor(document, renderer, router, el) {
this.document = document;
this.renderer = renderer;
this.router = router;
this.el = el;
}
/**
* @return {?}
*/
getClasses() {
/** @type {?} */
const disabled = this.isDisabled();
/** @type {?} */
const classes = {
'nav-link': true,
'disabled': disabled,
'btn-link': disabled
};
if (this.hasVariant()) {
/** @type {?} */
const variant = `nav-link-${this.link.variant}`;
classes[variant] = true;
}
return classes;
}
/**
* @return {?}
*/
getLinkType() {
return this.isDisabled() ? 'disabled' : this.isExternalLink() ? 'external' : '';
}
/**
* @return {?}
*/
hasVariant() {
return this.link.variant ? true : false;
}
/**
* @return {?}
*/
isBadge() {
return this.link.badge ? true : false;
}
/**
* @return {?}
*/
isDisabled() {
return this.link.attributes && this.link.attributes.disabled ? true : false;
}
/**
* @return {?}
*/
isExternalLink() {
return this.link.url.substring(0, 4) === 'http' ? true : false;
}
/**
* @return {?}
*/
isIcon() {
return this.link.icon ? true : false;
}
/**
* @return {?}
*/
hideMobile() {
if (this.document.body.classList.contains('sidebar-show')) {
this.renderer.removeClass(this.document.body, 'sidebar-show');
}
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
}
}
AppSidebarNavLinkComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-nav-link',
template: `
<ng-container [ngSwitch]="getLinkType()">
<a *ngSwitchCase="'disabled'"
[attr.disabled]="true"
[appLinkAttributes]="link.attributes"
href=""
[ngClass]="getClasses()">
<i *ngIf="isIcon()" class="nav-icon {{ link.icon }}"></i>
{{ link.name }}
<span *ngIf="isBadge()" [ngClass]="'badge badge-' + link.badge.variant">{{ link.badge.text }}</span>
</a>
<a *ngSwitchCase="'external'" [ngClass]="getClasses()" href="{{link.url}}" [appLinkAttributes]="link.attributes">
<i *ngIf="isIcon()" class="nav-icon {{ link.icon }}"></i>
{{ link.name }}
<span *ngIf="isBadge()" [ngClass]="'badge badge-' + link.badge.variant">{{ link.badge.text }}</span>
</a>
<a *ngSwitchDefault
[ngClass]="getClasses()"
[appLinkAttributes]="link.attributes"
routerLinkActive="active"
[routerLink]="[link.url]"
(click)="hideMobile()">
<i *ngIf="isIcon()" class="nav-icon {{ link.icon }}"></i>
{{ link.name }}
<span *ngIf="isBadge()" [ngClass]="'badge badge-' + link.badge.variant">{{ link.badge.text }}</span>
</a>
</ng-container>
`
}] }
];
/** @nocollapse */
AppSidebarNavLinkComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: Renderer2 },
{ type: Router },
{ type: ElementRef }
];
AppSidebarNavLinkComponent.propDecorators = {
link: [{ type: Input }]
};
class AppSidebarNavDropdownComponent {
/**
* @param {?} router
* @param {?} el
*/
constructor(router, el) {
this.router = router;
this.el = el;
}
/**
* @return {?}
*/
isBadge() {
return this.link.badge ? true : false;
}
/**
* @return {?}
*/
isIcon() {
return this.link.icon ? true : false;
}
/**
* @return {?}
*/
ngOnInit() {
Replace(this.el);
}
}
AppSidebarNavDropdownComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-nav-dropdown',
template: `
<a class="nav-link nav-dropdown-toggle" appNavDropdownToggle>
<i *ngIf="isIcon()" class="nav-icon {{ link.icon }}"></i>
{{ link.name }}
<span *ngIf="isBadge()" [ngClass]="'badge badge-' + link.badge.variant">{{ link.badge.text }}</span>
</a>
<ul class="nav-dropdown-items">
<ng-template ngFor let-child [ngForOf]="link.children">
<app-sidebar-nav-item [item]='child'></app-sidebar-nav-item>
</ng-template>
</ul>
`,
styles: ['.nav-dropdown-toggle { cursor: pointer; }']
}] }
];
/** @nocollapse */
AppSidebarNavDropdownComponent.ctorParameters = () => [
{ type: Router },
{ type: ElementRef }
];
AppSidebarNavDropdownComponent.propDecorators = {
link: [{ type: Input }]
};
class AppSidebarNavTitleComponent {
/**
* @param {?} el
* @param {?} renderer
*/
constructor(el, renderer) {
this.el = el;
this.renderer = renderer;
}
/**
* @return {?}
*/
ngOnInit() {
/** @type {?} */
const nativeElement = this.el.nativeElement;
/** @type {?} */
const li = this.renderer.createElement('li');
/** @type {?} */
const name = this.renderer.createText(this.title.name);
this.renderer.addClass(li, 'nav-title');
if (this.title.class) {
/** @type {?} */
const classes = this.title.class;
this.renderer.addClass(li, classes);
}
if (this.title.wrapper) {
/** @type {?} */
const wrapper = this.renderer.createElement(this.title.wrapper.element);
this.renderer.appendChild(wrapper, name);
this.renderer.appendChild(li, wrapper);
}
else {
this.renderer.appendChild(li, name);
}
this.renderer.appendChild(nativeElement, li);
Replace(this.el);
}
}
AppSidebarNavTitleComponent.decorators = [
{ type: Component, args: [{
selector: 'app-sidebar-nav-title',
template: ''
}] }
];
/** @nocollapse */
AppSidebarNavTitleComponent.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
AppSidebarNavTitleComponent.propDecorators = {
title: [{ type: Input }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class AppSidebarModule {
}
AppSidebarModule.decorators = [
{ type: NgModule, args: [{
imports: [
CommonModule,
RouterModule,
LayoutModule
],
exports: [
AppSidebarFooterComponent,
AppSidebarFormComponent,
AppSidebarHeaderComponent,
AppSidebarMinimizerComponent,
AppSidebarComponent,
AppSidebarNavComponent,
AppSidebarNavDropdownComponent,
AppSidebarNavItemComponent,
AppSidebarNavLinkComponent,
AppSidebarNavTitleComponent,
NavDropdownDirective,
NavDropdownToggleDirective,
LinkAttributesDirective,
LayoutModule
],
declarations: [
AppSidebarFooterComponent,
AppSidebarFormComponent,
AppSidebarHeaderComponent,
AppSidebarMinimizerComponent,
AppSidebarMinimizerComponent,
AppSidebarComponent,
AppSidebarNavComponent,
AppSidebarNavDropdownComponent,
AppSidebarNavItemComponent,
AppSidebarNavLinkComponent,
AppSidebarNavTitleComponent,
NavDropdownDirective,
NavDropdownToggleDirective,
LinkAttributesDirective
]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn