ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
384 lines (374 loc) • 12.7 kB
JavaScript
import { __decorate, __metadata } from 'tslib';
import { fromEvent, Subject } from 'rxjs';
import { auditTime, takeUntil } from 'rxjs/operators';
import { InputBoolean } from 'ng-zorro-antd/core';
import { MediaMatcher, LayoutModule } from '@angular/cdk/layout';
import { Platform, PlatformModule } from '@angular/cdk/platform';
import { CommonModule } from '@angular/common';
import { ChangeDetectionStrategy, Component, ElementRef, Renderer2, ViewEncapsulation, ChangeDetectorRef, EventEmitter, Host, Input, NgZone, Optional, Output, ViewChild, NgModule } from '@angular/core';
import { NzIconModule } from 'ng-zorro-antd/icon';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzContentComponent {
/**
* @param {?} elementRef
* @param {?} renderer
*/
constructor(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.renderer.addClass(this.elementRef.nativeElement, 'ant-layout-content');
}
}
NzContentComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-content',
exportAs: 'nzContent',
preserveWhitespaces: false,
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
template: "<ng-content></ng-content>",
styles: [`
nz-content {
display: block;
}
`]
}] }
];
/** @nocollapse */
NzContentComponent.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzFooterComponent {
/**
* @param {?} elementRef
* @param {?} renderer
*/
constructor(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.renderer.addClass(this.elementRef.nativeElement, 'ant-layout-footer');
}
}
NzFooterComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-footer',
exportAs: 'nzFooter',
preserveWhitespaces: false,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: "<ng-content></ng-content>",
styles: [`
nz-footer {
display: block;
}
`]
}] }
];
/** @nocollapse */
NzFooterComponent.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzHeaderComponent {
/**
* @param {?} elementRef
* @param {?} renderer
*/
constructor(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.renderer.addClass(this.elementRef.nativeElement, 'ant-layout-header');
}
}
NzHeaderComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-header',
exportAs: 'nzHeader',
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
preserveWhitespaces: false,
template: "<ng-content></ng-content>",
styles: [`
nz-header {
display: block;
}
`]
}] }
];
/** @nocollapse */
NzHeaderComponent.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzLayoutComponent {
/**
* @param {?} elementRef
* @param {?} renderer
*/
constructor(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
renderer.addClass(elementRef.nativeElement, 'ant-layout');
}
/**
* @return {?}
*/
destroySider() {
this.renderer.removeClass(this.elementRef.nativeElement, 'ant-layout-has-sider');
}
/**
* @return {?}
*/
initSider() {
this.renderer.addClass(this.elementRef.nativeElement, 'ant-layout-has-sider');
}
}
NzLayoutComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-layout',
exportAs: 'nzLayout',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
preserveWhitespaces: false,
template: "<ng-content></ng-content>"
}] }
];
/** @nocollapse */
NzLayoutComponent.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzSiderComponent {
/**
* @param {?} nzLayoutComponent
* @param {?} mediaMatcher
* @param {?} ngZone
* @param {?} platform
* @param {?} cdr
* @param {?} renderer
* @param {?} elementRef
*/
constructor(nzLayoutComponent, mediaMatcher, ngZone, platform, cdr, renderer, elementRef) {
this.nzLayoutComponent = nzLayoutComponent;
this.mediaMatcher = mediaMatcher;
this.ngZone = ngZone;
this.platform = platform;
this.cdr = cdr;
this.below = false;
this.destroy$ = new Subject();
this.dimensionMap = {
xs: '480px',
sm: '576px',
md: '768px',
lg: '992px',
xl: '1200px',
xxl: '1600px'
};
this.nzWidth = 200;
this.nzTheme = 'dark';
this.nzCollapsedWidth = 80;
this.nzReverseArrow = false;
this.nzCollapsible = false;
this.nzCollapsed = false;
this.nzCollapsedChange = new EventEmitter();
renderer.addClass(elementRef.nativeElement, 'ant-layout-sider');
}
/**
* @return {?}
*/
get flexSetting() {
if (this.nzCollapsed) {
return `0 0 ${this.nzCollapsedWidth}px`;
}
else {
return `0 0 ${this.nzWidth}px`;
}
}
/**
* @return {?}
*/
get widthSetting() {
if (this.nzCollapsed) {
return this.nzCollapsedWidth;
}
else {
return this.nzWidth;
}
}
/**
* @return {?}
*/
watchMatchMedia() {
if (this.nzBreakpoint) {
/** @type {?} */
const matchBelow = this.mediaMatcher.matchMedia(`(max-width: ${this.dimensionMap[this.nzBreakpoint]})`).matches;
this.below = matchBelow;
this.nzCollapsed = matchBelow;
this.nzCollapsedChange.emit(matchBelow);
this.ngZone.run((/**
* @return {?}
*/
() => {
this.cdr.markForCheck();
}));
}
}
/**
* @return {?}
*/
toggleCollapse() {
this.nzCollapsed = !this.nzCollapsed;
this.nzCollapsedChange.emit(this.nzCollapsed);
}
/**
* @return {?}
*/
get isZeroTrigger() {
return (this.nzCollapsible &&
this.nzTrigger &&
this.nzCollapsedWidth === 0 &&
((this.nzBreakpoint && this.below) || !this.nzBreakpoint));
}
/**
* @return {?}
*/
get isSiderTrigger() {
return this.nzCollapsible && this.nzTrigger && this.nzCollapsedWidth !== 0;
}
/**
* @return {?}
*/
ngOnInit() {
if (this.nzLayoutComponent) {
this.nzLayoutComponent.initSider();
}
}
/**
* @return {?}
*/
ngAfterViewInit() {
if (this.platform.isBrowser) {
Promise.resolve().then((/**
* @return {?}
*/
() => this.watchMatchMedia()));
this.ngZone.runOutsideAngular((/**
* @return {?}
*/
() => {
fromEvent(window, 'resize')
.pipe(auditTime(16), takeUntil(this.destroy$))
.subscribe((/**
* @return {?}
*/
() => this.watchMatchMedia()));
}));
}
}
/**
* @return {?}
*/
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
if (this.nzLayoutComponent) {
this.nzLayoutComponent.destroySider();
}
}
}
NzSiderComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-sider',
exportAs: 'nzSider',
preserveWhitespaces: false,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: "<div class=\"ant-layout-sider-children\">\n <ng-content></ng-content>\n</div>\n<span class=\"ant-layout-sider-zero-width-trigger\" *ngIf=\"isZeroTrigger\" (click)=\"toggleCollapse()\">\n <ng-template [ngTemplateOutlet]=\"nzZeroTrigger || zeroTrigger\"></ng-template>\n</span>\n<div class=\"ant-layout-sider-trigger\"\n *ngIf=\"isSiderTrigger\"\n (click)=\"toggleCollapse()\"\n [style.width.px]=\"nzCollapsed ? nzCollapsedWidth : nzWidth\">\n <ng-template [ngTemplateOutlet]=\"nzTrigger\"></ng-template>\n</div>\n<ng-template #defaultTrigger>\n <i nz-icon [type]=\"nzCollapsed ? 'right' : 'left'\" *ngIf=\"!nzReverseArrow\"></i>\n <i nz-icon [type]=\"nzCollapsed ? 'left' : 'right'\" *ngIf=\"nzReverseArrow\"></i>\n</ng-template>\n<ng-template #zeroTrigger>\n <i nz-icon type=\"bars\"></i>\n</ng-template>",
host: {
'[class.ant-layout-sider-zero-width]': 'nzCollapsed && nzCollapsedWidth === 0',
'[class.ant-layout-sider-light]': `nzTheme === 'light'`,
'[class.ant-layout-sider-collapsed]': 'nzCollapsed',
'[style.flex]': 'flexSetting',
'[style.max-width.px]': 'widthSetting',
'[style.min-width.px]': 'widthSetting',
'[style.width.px]': 'widthSetting'
}
}] }
];
/** @nocollapse */
NzSiderComponent.ctorParameters = () => [
{ type: NzLayoutComponent, decorators: [{ type: Optional }, { type: Host }] },
{ type: MediaMatcher },
{ type: NgZone },
{ type: Platform },
{ type: ChangeDetectorRef },
{ type: Renderer2 },
{ type: ElementRef }
];
NzSiderComponent.propDecorators = {
nzWidth: [{ type: Input }],
nzTheme: [{ type: Input }],
nzCollapsedWidth: [{ type: Input }],
nzBreakpoint: [{ type: Input }],
nzZeroTrigger: [{ type: Input }],
nzTrigger: [{ type: Input }, { type: ViewChild, args: ['defaultTrigger',] }],
nzReverseArrow: [{ type: Input }],
nzCollapsible: [{ type: Input }],
nzCollapsed: [{ type: Input }],
nzCollapsedChange: [{ type: Output }]
};
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSiderComponent.prototype, "nzReverseArrow", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSiderComponent.prototype, "nzCollapsible", void 0);
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzSiderComponent.prototype, "nzCollapsed", void 0);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NzLayoutModule {
}
NzLayoutModule.decorators = [
{ type: NgModule, args: [{
declarations: [NzLayoutComponent, NzHeaderComponent, NzContentComponent, NzFooterComponent, NzSiderComponent],
exports: [NzLayoutComponent, NzHeaderComponent, NzContentComponent, NzFooterComponent, NzSiderComponent],
imports: [CommonModule, NzIconModule, LayoutModule, PlatformModule]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { NzContentComponent, NzFooterComponent, NzHeaderComponent, NzLayoutComponent, NzSiderComponent, NzLayoutModule };
//# sourceMappingURL=ng-zorro-antd-layout.js.map