ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
226 lines • 17.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: row.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { __read } from "tslib";
/**
* @license
* Copyright Alibaba.com All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
import { MediaMatcher } from '@angular/cdk/layout';
import { Platform } from '@angular/cdk/platform';
import { Directive, ElementRef, Input, NgZone, Renderer2 } from '@angular/core';
import { gridResponsiveMap, NzBreakpointService } from 'ng-zorro-antd/core/services';
import { ReplaySubject, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
var NzRowDirective = /** @class */ (function () {
function NzRowDirective(elementRef, renderer, mediaMatcher, ngZone, platform, breakpointService) {
this.elementRef = elementRef;
this.renderer = renderer;
this.mediaMatcher = mediaMatcher;
this.ngZone = ngZone;
this.platform = platform;
this.breakpointService = breakpointService;
this.nzAlign = null;
this.nzJustify = null;
this.nzGutter = null;
this.actualGutter$ = new ReplaySubject(1);
this.destroy$ = new Subject();
}
/**
* @return {?}
*/
NzRowDirective.prototype.getGutter = /**
* @return {?}
*/
function () {
var _this = this;
/** @type {?} */
var results = [0, 0];
/** @type {?} */
var gutter = this.nzGutter || 0;
/** @type {?} */
var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, 0];
normalizedGutter.forEach((/**
* @param {?} g
* @param {?} index
* @return {?}
*/
function (g, index) {
if (typeof g === 'object') {
results[index] = 0;
Object.keys(gridResponsiveMap).map((/**
* @param {?} screen
* @return {?}
*/
function (screen) {
/** @type {?} */
var bp = (/** @type {?} */ (screen));
if (_this.mediaMatcher.matchMedia(gridResponsiveMap[bp]).matches && g[bp]) {
results[index] = (/** @type {?} */ ((/** @type {?} */ (g))[bp]));
}
}));
}
else {
results[index] = g || 0;
}
}));
return results;
};
/**
* @return {?}
*/
NzRowDirective.prototype.setGutterStyle = /**
* @return {?}
*/
function () {
var _this = this;
var _a = __read(this.getGutter(), 2), horizontalGutter = _a[0], verticalGutter = _a[1];
this.actualGutter$.next([horizontalGutter, verticalGutter]);
/** @type {?} */
var renderGutter = (/**
* @param {?} name
* @param {?} gutter
* @return {?}
*/
function (name, gutter) {
/** @type {?} */
var nativeElement = _this.elementRef.nativeElement;
_this.renderer.setStyle(nativeElement, name, "-" + gutter / 2 + "px");
});
if (horizontalGutter > 0) {
renderGutter('margin-left', horizontalGutter);
renderGutter('margin-right', horizontalGutter);
}
if (verticalGutter > 0) {
renderGutter('margin-top', verticalGutter);
renderGutter('margin-bottom', verticalGutter);
}
};
/**
* @return {?}
*/
NzRowDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.setGutterStyle();
};
/**
* @param {?} changes
* @return {?}
*/
NzRowDirective.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
if (changes.nzGutter) {
this.setGutterStyle();
}
};
/**
* @return {?}
*/
NzRowDirective.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.platform.isBrowser) {
this.breakpointService
.subscribe(gridResponsiveMap)
.pipe(takeUntil(this.destroy$))
.subscribe((/**
* @return {?}
*/
function () {
_this.setGutterStyle();
}));
}
};
/**
* @return {?}
*/
NzRowDirective.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.destroy$.next();
this.destroy$.complete();
};
NzRowDirective.decorators = [
{ type: Directive, args: [{
selector: '[nz-row],nz-row,nz-form-item',
exportAs: 'nzRow',
host: {
'[class.ant-row]': "true",
'[class.ant-row-top]': "nzAlign === 'top'",
'[class.ant-row-middle]': "nzAlign === 'middle'",
'[class.ant-row-bottom]': "nzAlign === 'bottom'",
'[class.ant-row-start]': "nzJustify === 'start'",
'[class.ant-row-end]': "nzJustify === 'end'",
'[class.ant-row-center]': "nzJustify === 'center'",
'[class.ant-row-space-around]': "nzJustify === 'space-around'",
'[class.ant-row-space-between]': "nzJustify === 'space-between'"
}
},] }
];
/** @nocollapse */
NzRowDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 },
{ type: MediaMatcher },
{ type: NgZone },
{ type: Platform },
{ type: NzBreakpointService }
]; };
NzRowDirective.propDecorators = {
nzType: [{ type: Input }],
nzAlign: [{ type: Input }],
nzJustify: [{ type: Input }],
nzGutter: [{ type: Input }]
};
return NzRowDirective;
}());
export { NzRowDirective };
if (false) {
/**
* @deprecated don't need nzType="flex" after 9.0
* @type {?}
*/
NzRowDirective.prototype.nzType;
/** @type {?} */
NzRowDirective.prototype.nzAlign;
/** @type {?} */
NzRowDirective.prototype.nzJustify;
/** @type {?} */
NzRowDirective.prototype.nzGutter;
/** @type {?} */
NzRowDirective.prototype.actualGutter$;
/**
* @type {?}
* @private
*/
NzRowDirective.prototype.destroy$;
/** @type {?} */
NzRowDirective.prototype.elementRef;
/** @type {?} */
NzRowDirective.prototype.renderer;
/** @type {?} */
NzRowDirective.prototype.mediaMatcher;
/** @type {?} */
NzRowDirective.prototype.ngZone;
/** @type {?} */
NzRowDirective.prototype.platform;
/**
* @type {?}
* @private
*/
NzRowDirective.prototype.breakpointService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQvZ3JpZC8iLCJzb3VyY2VzIjpbInJvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQVFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWdDLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLGlCQUFpQixFQUFtQixtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRHLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUszQztJQWlFRSx3QkFDUyxVQUFzQixFQUN0QixRQUFtQixFQUNuQixZQUEwQixFQUMxQixNQUFjLEVBQ2QsUUFBa0IsRUFDakIsaUJBQXNDO1FBTHZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNqQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBbkR2QyxZQUFPLEdBQW1CLElBQUksQ0FBQztRQUMvQixjQUFTLEdBQXFCLElBQUksQ0FBQztRQUNuQyxhQUFRLEdBQTRGLElBQUksQ0FBQztRQUV6RyxrQkFBYSxHQUFHLElBQUksYUFBYSxDQUFtQixDQUFDLENBQUMsQ0FBQztRQUUvQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQThDdkMsQ0FBQzs7OztJQTVDSixr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TjtJQUNILENBQUM7Ozs7SUFFRCxvQ0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0JBbEdGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUUsT0FBTztvQkFDakIsSUFBSSxFQUFFO3dCQUNKLGlCQUFpQixFQUFFLE1BQU07d0JBQ3pCLHFCQUFxQixFQUFFLG1CQUFtQjt3QkFDMUMsd0JBQXdCLEVBQUUsc0JBQXNCO3dCQUNoRCx3QkFBd0IsRUFBRSxzQkFBc0I7d0JBQ2hELHVCQUF1QixFQUFFLHVCQUF1Qjt3QkFDaEQscUJBQXFCLEVBQUUscUJBQXFCO3dCQUM1Qyx3QkFBd0IsRUFBRSx3QkFBd0I7d0JBQ2xELDhCQUE4QixFQUFFLDhCQUE4Qjt3QkFDOUQsK0JBQStCLEVBQUUsK0JBQStCO3FCQUNqRTtpQkFDRjs7OztnQkF2QmtDLFVBQVU7Z0JBQStDLFNBQVM7Z0JBRjVGLFlBQVk7Z0JBRWlDLE1BQU07Z0JBRG5ELFFBQVE7Z0JBRTRCLG1CQUFtQjs7O3lCQTJCN0QsS0FBSzswQkFDTCxLQUFLOzRCQUNMLEtBQUs7MkJBQ0wsS0FBSzs7SUE2RVIscUJBQUM7Q0FBQSxBQW5HRCxJQW1HQztTQXBGWSxjQUFjOzs7Ozs7SUFJekIsZ0NBQStCOztJQUMvQixpQ0FBd0M7O0lBQ3hDLG1DQUE0Qzs7SUFDNUMsa0NBQWtIOztJQUVsSCx1Q0FBZ0U7Ozs7O0lBRWhFLGtDQUEwQzs7SUF3Q3hDLG9DQUE2Qjs7SUFDN0Isa0NBQTBCOztJQUMxQixzQ0FBaUM7O0lBQ2pDLGdDQUFxQjs7SUFDckIsa0NBQXlCOzs7OztJQUN6QiwyQ0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgTWVkaWFNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBOZ1pvbmUsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ3JpZFJlc3BvbnNpdmVNYXAsIE56QnJlYWtwb2ludEtleSwgTnpCcmVha3BvaW50U2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJbmRleGFibGVPYmplY3QgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBOekp1c3RpZnkgPSAnc3RhcnQnIHwgJ2VuZCcgfCAnY2VudGVyJyB8ICdzcGFjZS1hcm91bmQnIHwgJ3NwYWNlLWJldHdlZW4nO1xuZXhwb3J0IHR5cGUgTnpBbGlnbiA9ICd0b3AnIHwgJ21pZGRsZScgfCAnYm90dG9tJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW256LXJvd10sbnotcm93LG56LWZvcm0taXRlbScsXG4gIGV4cG9ydEFzOiAnbnpSb3cnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5hbnQtcm93XSc6IGB0cnVlYCxcbiAgICAnW2NsYXNzLmFudC1yb3ctdG9wXSc6IGBuekFsaWduID09PSAndG9wJ2AsXG4gICAgJ1tjbGFzcy5hbnQtcm93LW1pZGRsZV0nOiBgbnpBbGlnbiA9PT0gJ21pZGRsZSdgLFxuICAgICdbY2xhc3MuYW50LXJvdy1ib3R0b21dJzogYG56QWxpZ24gPT09ICdib3R0b20nYCxcbiAgICAnW2NsYXNzLmFudC1yb3ctc3RhcnRdJzogYG56SnVzdGlmeSA9PT0gJ3N0YXJ0J2AsXG4gICAgJ1tjbGFzcy5hbnQtcm93LWVuZF0nOiBgbnpKdXN0aWZ5ID09PSAnZW5kJ2AsXG4gICAgJ1tjbGFzcy5hbnQtcm93LWNlbnRlcl0nOiBgbnpKdXN0aWZ5ID09PSAnY2VudGVyJ2AsXG4gICAgJ1tjbGFzcy5hbnQtcm93LXNwYWNlLWFyb3VuZF0nOiBgbnpKdXN0aWZ5ID09PSAnc3BhY2UtYXJvdW5kJ2AsXG4gICAgJ1tjbGFzcy5hbnQtcm93LXNwYWNlLWJldHdlZW5dJzogYG56SnVzdGlmeSA9PT0gJ3NwYWNlLWJldHdlZW4nYFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIE56Um93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBkb24ndCBuZWVkIG56VHlwZT1cImZsZXhcIiBhZnRlciA5LjBcbiAgICovXG4gIEBJbnB1dCgpIG56VHlwZTogJ2ZsZXgnIHwgbnVsbDtcbiAgQElucHV0KCkgbnpBbGlnbjogTnpBbGlnbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBuekp1c3RpZnk6IE56SnVzdGlmeSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBuekd1dHRlcjogbnVtYmVyIHwgSW5kZXhhYmxlT2JqZWN0IHwgW251bWJlciwgbnVtYmVyXSB8IFtJbmRleGFibGVPYmplY3QsIEluZGV4YWJsZU9iamVjdF0gfCBudWxsID0gbnVsbDtcblxuICByZWFkb25seSBhY3R1YWxHdXR0ZXIkID0gbmV3IFJlcGxheVN1YmplY3Q8W251bWJlciwgbnVtYmVyXT4oMSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgZ2V0R3V0dGVyKCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIGNvbnN0IHJlc3VsdHM6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMF07XG4gICAgY29uc3QgZ3V0dGVyID0gdGhpcy5uekd1dHRlciB8fCAwO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRHdXR0ZXIgPSBBcnJheS5pc0FycmF5KGd1dHRlcikgPyBndXR0ZXIgOiBbZ3V0dGVyLCAwXTtcbiAgICBub3JtYWxpemVkR3V0dGVyLmZvckVhY2goKGcsIGluZGV4KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGcgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJlc3VsdHNbaW5kZXhdID0gMDtcbiAgICAgICAgT2JqZWN0LmtleXMoZ3JpZFJlc3BvbnNpdmVNYXApLm1hcCgoc2NyZWVuOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBicCA9IHNjcmVlbiBhcyBOekJyZWFrcG9pbnRLZXk7XG4gICAgICAgICAgaWYgKHRoaXMubWVkaWFNYXRjaGVyLm1hdGNoTWVkaWEoZ3JpZFJlc3BvbnNpdmVNYXBbYnBdKS5tYXRjaGVzICYmIGdbYnBdKSB7XG4gICAgICAgICAgICByZXN1bHRzW2luZGV4XSA9IGchW2JwXSBhcyBudW1iZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdHNbaW5kZXhdID0gZyB8fCAwO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgc2V0R3V0dGVyU3R5bGUoKTogdm9pZCB7XG4gICAgY29uc3QgW2hvcml6b250YWxHdXR0ZXIsIHZlcnRpY2FsR3V0dGVyXSA9IHRoaXMuZ2V0R3V0dGVyKCk7XG4gICAgdGhpcy5hY3R1YWxHdXR0ZXIkLm5leHQoW2hvcml6b250YWxHdXR0ZXIsIHZlcnRpY2FsR3V0dGVyXSk7XG4gICAgY29uc3QgcmVuZGVyR3V0dGVyID0gKG5hbWU6IHN0cmluZywgZ3V0dGVyOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUobmF0aXZlRWxlbWVudCwgbmFtZSwgYC0ke2d1dHRlciAvIDJ9cHhgKTtcbiAgICB9O1xuICAgIGlmIChob3Jpem9udGFsR3V0dGVyID4gMCkge1xuICAgICAgcmVuZGVyR3V0dGVyKCdtYXJnaW4tbGVmdCcsIGhvcml6b250YWxHdXR0ZXIpO1xuICAgICAgcmVuZGVyR3V0dGVyKCdtYXJnaW4tcmlnaHQnLCBob3Jpem9udGFsR3V0dGVyKTtcbiAgICB9XG4gICAgaWYgKHZlcnRpY2FsR3V0dGVyID4gMCkge1xuICAgICAgcmVuZGVyR3V0dGVyKCdtYXJnaW4tdG9wJywgdmVydGljYWxHdXR0ZXIpO1xuICAgICAgcmVuZGVyR3V0dGVyKCdtYXJnaW4tYm90dG9tJywgdmVydGljYWxHdXR0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHB1YmxpYyBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBwdWJsaWMgbmdab25lOiBOZ1pvbmUsXG4gICAgcHVibGljIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRTZXJ2aWNlOiBOekJyZWFrcG9pbnRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEd1dHRlclN0eWxlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMubnpHdXR0ZXIpIHtcbiAgICAgIHRoaXMuc2V0R3V0dGVyU3R5bGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICB0aGlzLmJyZWFrcG9pbnRTZXJ2aWNlXG4gICAgICAgIC5zdWJzY3JpYmUoZ3JpZFJlc3BvbnNpdmVNYXApXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRHdXR0ZXJTdHlsZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==