ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
711 lines (698 loc) • 25 kB
JavaScript
import { CommonModule } from '@angular/common';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { FormControl, FormControlName, NgControl, NgModel } from '@angular/forms';
import { MediaMatcher, LayoutModule } from '@angular/cdk/layout';
import { Platform, PlatformModule } from '@angular/cdk/platform';
import { NzRowDirective, NzColDirective, NzGridModule } from 'ng-zorro-antd/grid';
import { __decorate, __metadata, __extends } from 'tslib';
import { ChangeDetectionStrategy, Component, ElementRef, Renderer2, ViewEncapsulation, ChangeDetectorRef, ContentChildren, Input, NgZone, ContentChild, Host, Optional, Directive, NgModule } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil, startWith } from 'rxjs/operators';
import { helpMotion, InputBoolean, NzUpdateHostClassService, toBoolean } from 'ng-zorro-antd/core';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzFormExplainComponent = /** @class */ (function () {
function NzFormExplainComponent(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.renderer.addClass(this.elementRef.nativeElement, 'ant-form-explain');
}
NzFormExplainComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-form-explain',
exportAs: 'nzFormExplain',
preserveWhitespaces: false,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
animations: [helpMotion],
template: "<div [@helpMotion]>\n <ng-content></ng-content>\n</div>",
styles: ["\n nz-form-explain {\n display: block;\n }\n "]
}] }
];
/** @nocollapse */
NzFormExplainComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
return NzFormExplainComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* should add nz-row directive to host, track https://github.com/angular/angular/issues/8785 *
*/
var NzFormItemComponent = /** @class */ (function (_super) {
__extends(NzFormItemComponent, _super);
function NzFormItemComponent(elementRef, renderer, nzUpdateHostClassService, mediaMatcher, ngZone, platform, cdr) {
var _this = _super.call(this, elementRef, renderer, nzUpdateHostClassService, mediaMatcher, ngZone, platform) || this;
_this.cdr = cdr;
_this.nzFlex = false;
renderer.addClass(elementRef.nativeElement, 'ant-form-item');
return _this;
}
/**
* @return {?}
*/
NzFormItemComponent.prototype.updateFlexStyle = /**
* @return {?}
*/
function () {
if (this.nzFlex) {
this.renderer.setStyle(this.elementRef.nativeElement, 'display', 'flex');
}
else {
this.renderer.removeStyle(this.elementRef.nativeElement, 'display');
}
};
/**
* @return {?}
*/
NzFormItemComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.listOfNzFormExplainComponent) {
this.listOfNzFormExplainComponent.changes.pipe(takeUntil(this.destroy$)).subscribe((/**
* @return {?}
*/
function () {
_this.cdr.markForCheck();
}));
}
};
/**
* @return {?}
*/
NzFormItemComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
_super.prototype.ngOnInit.call(this);
this.updateFlexStyle();
};
/**
* @return {?}
*/
NzFormItemComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
_super.prototype.ngOnDestroy.call(this);
};
/**
* @param {?} changes
* @return {?}
*/
NzFormItemComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
_super.prototype.ngOnChanges.call(this, changes);
if (changes.hasOwnProperty('nzFlex')) {
this.updateFlexStyle();
}
};
NzFormItemComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-form-item',
exportAs: 'nzFormItem',
preserveWhitespaces: false,
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
providers: [NzUpdateHostClassService],
template: "<ng-content></ng-content>",
host: {
'[class.ant-form-item-with-help]': 'listOfNzFormExplainComponent && (listOfNzFormExplainComponent.length > 0)'
},
styles: ["\n nz-form-item {\n display: block;\n }\n "]
}] }
];
/** @nocollapse */
NzFormItemComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 },
{ type: NzUpdateHostClassService },
{ type: MediaMatcher },
{ type: NgZone },
{ type: Platform },
{ type: ChangeDetectorRef }
]; };
NzFormItemComponent.propDecorators = {
nzFlex: [{ type: Input }],
listOfNzFormExplainComponent: [{ type: ContentChildren, args: [NzFormExplainComponent, { descendants: true },] }]
};
__decorate([
InputBoolean(),
__metadata("design:type", Boolean)
], NzFormItemComponent.prototype, "nzFlex", void 0);
return NzFormItemComponent;
}(NzRowDirective));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzFormControlComponent = /** @class */ (function (_super) {
__extends(NzFormControlComponent, _super);
function NzFormControlComponent(nzUpdateHostClassService, elementRef, nzFormItemComponent, nzRowDirective, cdr, renderer) {
var _this = _super.call(this, nzUpdateHostClassService, elementRef, nzFormItemComponent || nzRowDirective, renderer) || this;
_this.cdr = cdr;
_this._hasFeedback = false;
_this.controlClassMap = {};
renderer.addClass(elementRef.nativeElement, 'ant-form-item-control-wrapper');
return _this;
}
Object.defineProperty(NzFormControlComponent.prototype, "nzHasFeedback", {
get: /**
* @return {?}
*/
function () {
return this._hasFeedback;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._hasFeedback = toBoolean(value);
this.setControlClassMap();
},
enumerable: true,
configurable: true
});
Object.defineProperty(NzFormControlComponent.prototype, "nzValidateStatus", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value instanceof FormControl || value instanceof NgModel) {
this.validateControl = value;
this.validateString = null;
this.watchControl();
}
else if (value instanceof FormControlName) {
this.validateControl = value.control;
this.validateString = null;
this.watchControl();
}
else {
this.validateString = value;
this.validateControl = null;
this.setControlClassMap();
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NzFormControlComponent.prototype.removeSubscribe = /**
* @return {?}
*/
function () {
if (this.validateChanges) {
this.validateChanges.unsubscribe();
this.validateChanges = null;
}
};
/**
* @return {?}
*/
NzFormControlComponent.prototype.watchControl = /**
* @return {?}
*/
function () {
var _this = this;
this.removeSubscribe();
/** miss detect https://github.com/angular/angular/issues/10887 **/
if (this.validateControl && this.validateControl.statusChanges) {
this.validateChanges = this.validateControl.statusChanges.pipe(startWith(null)).subscribe((/**
* @return {?}
*/
function () {
_this.setControlClassMap();
_this.cdr.markForCheck();
}));
}
};
/**
* @param {?} status
* @return {?}
*/
NzFormControlComponent.prototype.validateControlStatus = /**
* @param {?} status
* @return {?}
*/
function (status) {
return (/** @type {?} */ ((!!this.validateControl &&
(this.validateControl.dirty || this.validateControl.touched) &&
this.validateControl.status === status)));
};
/**
* @return {?}
*/
NzFormControlComponent.prototype.setControlClassMap = /**
* @return {?}
*/
function () {
var _a;
if (this.validateString === 'warning') {
this.status = 'warning';
this.iconType = 'exclamation-circle-fill';
}
else if (this.validateString === 'validating' ||
this.validateString === 'pending' ||
this.validateControlStatus('PENDING')) {
this.status = 'validating';
this.iconType = 'loading';
}
else if (this.validateString === 'error' || this.validateControlStatus('INVALID')) {
this.status = 'error';
this.iconType = 'close-circle-fill';
}
else if (this.validateString === 'success' || this.validateControlStatus('VALID')) {
this.status = 'success';
this.iconType = 'check-circle-fill';
}
else {
this.status = 'init';
this.iconType = '';
}
this.controlClassMap = (_a = {},
_a["has-warning"] = this.status === 'warning',
_a["is-validating"] = this.status === 'validating',
_a["has-error"] = this.status === 'error',
_a["has-success"] = this.status === 'success',
_a["has-feedback"] = this.nzHasFeedback,
_a);
};
/**
* @return {?}
*/
NzFormControlComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
_super.prototype.ngOnInit.call(this);
this.setControlClassMap();
};
/**
* @return {?}
*/
NzFormControlComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.removeSubscribe();
_super.prototype.ngOnDestroy.call(this);
};
/**
* @return {?}
*/
NzFormControlComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
if (this.defaultValidateControl && !this.validateControl && !this.validateString) {
this.nzValidateStatus = this.defaultValidateControl;
}
};
/**
* @return {?}
*/
NzFormControlComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
_super.prototype.ngAfterViewInit.call(this);
};
NzFormControlComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-form-control',
exportAs: 'nzFormControl',
preserveWhitespaces: false,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [NzUpdateHostClassService],
template: "<div class=\"ant-form-item-control\" [ngClass]=\"controlClassMap\">\n <span class=\"ant-form-item-children\">\n <ng-content></ng-content>\n <span class=\"ant-form-item-children-icon\">\n <i *ngIf=\"nzHasFeedback && iconType\" nz-icon [type]=\"iconType\"></i>\n </span>\n </span>\n <ng-content select=\"nz-form-explain\"></ng-content>\n</div>",
styles: ["\n nz-form-control {\n display: block;\n }\n "]
}] }
];
/** @nocollapse */
NzFormControlComponent.ctorParameters = function () { return [
{ type: NzUpdateHostClassService },
{ type: ElementRef },
{ type: NzFormItemComponent, decorators: [{ type: Optional }, { type: Host }] },
{ type: NzRowDirective, decorators: [{ type: Optional }, { type: Host }] },
{ type: ChangeDetectorRef },
{ type: Renderer2 }
]; };
NzFormControlComponent.propDecorators = {
defaultValidateControl: [{ type: ContentChild, args: [NgControl,] }],
nzHasFeedback: [{ type: Input }],
nzValidateStatus: [{ type: Input }]
};
return NzFormControlComponent;
}(NzColDirective));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzFormExtraComponent = /** @class */ (function () {
function NzFormExtraComponent(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.renderer.addClass(this.elementRef.nativeElement, 'ant-form-extra');
}
NzFormExtraComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-form-extra',
exportAs: 'nzFormExtra',
template: "<ng-content></ng-content>",
preserveWhitespaces: false,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
styles: ["\n nz-form-extra {\n display: block;\n }\n "]
}] }
];
/** @nocollapse */
NzFormExtraComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
return NzFormExtraComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzFormLabelComponent = /** @class */ (function (_super) {
__extends(NzFormLabelComponent, _super);
function NzFormLabelComponent(nzUpdateHostClassService, elementRef, nzFormItemComponent, nzRowDirective, renderer, cdr) {
var _this = _super.call(this, nzUpdateHostClassService, elementRef, nzFormItemComponent || nzRowDirective, renderer) || this;
_this.cdr = cdr;
_this.nzRequired = false;
_this.defaultNoColon = false;
_this.noColon = 'default';
renderer.addClass(elementRef.nativeElement, 'ant-form-item-label');
return _this;
}
Object.defineProperty(NzFormLabelComponent.prototype, "nzNoColon", {
get: /**
* @return {?}
*/
function () {
return !!this.noColon;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this.noColon = toBoolean(value);
},
enumerable: true,
configurable: true
});
/**
* @param {?} value
* @return {?}
*/
NzFormLabelComponent.prototype.setDefaultNoColon = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.defaultNoColon = toBoolean(value);
this.cdr.markForCheck();
};
/**
* @return {?}
*/
NzFormLabelComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
_super.prototype.ngOnDestroy.call(this);
};
/**
* @return {?}
*/
NzFormLabelComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
_super.prototype.ngAfterViewInit.call(this);
};
NzFormLabelComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-form-label',
exportAs: 'nzFormLabel',
providers: [NzUpdateHostClassService],
preserveWhitespaces: false,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: "<label [attr.for]=\"nzFor\"\n [class.ant-form-item-no-colon]=\"noColon === 'default' ? defaultNoColon : nzNoColon\"\n [class.ant-form-item-required]=\"nzRequired\">\n <ng-content></ng-content>\n</label>"
}] }
];
/** @nocollapse */
NzFormLabelComponent.ctorParameters = function () { return [
{ type: NzUpdateHostClassService },
{ type: ElementRef },
{ type: NzFormItemComponent, decorators: [{ type: Optional }, { type: Host }] },
{ type: NzRowDirective, decorators: [{ type: Optional }, { type: Host }] },
{ type: Renderer2 },
{ type: ChangeDetectorRef }
]; };
NzFormLabelComponent.propDecorators = {
nzFor: [{ type: Input }],
nzRequired: [{ type: Input }],
nzNoColon: [{ type: Input }]
};
__decorate([
InputBoolean(),
__metadata("design:type", Object)
], NzFormLabelComponent.prototype, "nzRequired", void 0);
return NzFormLabelComponent;
}(NzColDirective));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzFormSplitComponent = /** @class */ (function () {
function NzFormSplitComponent(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.renderer.addClass(this.elementRef.nativeElement, 'ant-form-split');
}
NzFormSplitComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-form-split',
exportAs: 'nzFormSplit',
preserveWhitespaces: false,
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: "<ng-content></ng-content>"
}] }
];
/** @nocollapse */
NzFormSplitComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
return NzFormSplitComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzFormTextComponent = /** @class */ (function () {
function NzFormTextComponent(elementRef, renderer) {
this.elementRef = elementRef;
this.renderer = renderer;
this.renderer.addClass(this.elementRef.nativeElement, 'ant-form-text');
}
NzFormTextComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-form-text',
exportAs: 'nzFormText',
preserveWhitespaces: false,
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
template: "<ng-content></ng-content>"
}] }
];
/** @nocollapse */
NzFormTextComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
return NzFormTextComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzFormDirective = /** @class */ (function () {
function NzFormDirective(elementRef, renderer, nzUpdateHostClassService) {
this.elementRef = elementRef;
this.renderer = renderer;
this.nzUpdateHostClassService = nzUpdateHostClassService;
this.nzLayout = 'horizontal';
this.nzNoColon = false;
this.destroy$ = new Subject();
this.renderer.addClass(elementRef.nativeElement, 'ant-form');
}
/**
* @return {?}
*/
NzFormDirective.prototype.setClassMap = /**
* @return {?}
*/
function () {
var _a;
this.nzUpdateHostClassService.updateHostClass(this.elementRef.nativeElement, (_a = {},
_a["ant-form-" + this.nzLayout] = this.nzLayout,
_a));
};
/**
* @return {?}
*/
NzFormDirective.prototype.updateItemsDefaultColon = /**
* @return {?}
*/
function () {
var _this = this;
if (this.nzFormLabelComponent) {
this.nzFormLabelComponent.forEach((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.setDefaultNoColon(_this.nzNoColon); }));
}
};
/**
* @return {?}
*/
NzFormDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.setClassMap();
};
/**
* @param {?} changes
* @return {?}
*/
NzFormDirective.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
this.setClassMap();
if (changes.hasOwnProperty('nzNoColon')) {
this.updateItemsDefaultColon();
}
};
/**
* @return {?}
*/
NzFormDirective.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
this.nzFormLabelComponent.changes
.pipe(startWith(null), takeUntil(this.destroy$))
.subscribe((/**
* @return {?}
*/
function () {
_this.updateItemsDefaultColon();
}));
};
/**
* @return {?}
*/
NzFormDirective.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.destroy$.next();
this.destroy$.complete();
};
NzFormDirective.decorators = [
{ type: Directive, args: [{
selector: '[nz-form]',
exportAs: 'nzForm',
providers: [NzUpdateHostClassService]
},] }
];
/** @nocollapse */
NzFormDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 },
{ type: NzUpdateHostClassService }
]; };
NzFormDirective.propDecorators = {
nzLayout: [{ type: Input }],
nzNoColon: [{ type: Input }],
nzFormLabelComponent: [{ type: ContentChildren, args: [NzFormLabelComponent, { descendants: true },] }]
};
__decorate([
InputBoolean(),
__metadata("design:type", Boolean)
], NzFormDirective.prototype, "nzNoColon", void 0);
return NzFormDirective;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NzFormModule = /** @class */ (function () {
function NzFormModule() {
}
NzFormModule.decorators = [
{ type: NgModule, args: [{
declarations: [
NzFormExtraComponent,
NzFormLabelComponent,
NzFormDirective,
NzFormItemComponent,
NzFormControlComponent,
NzFormExplainComponent,
NzFormTextComponent,
NzFormSplitComponent
],
exports: [
NzFormExtraComponent,
NzFormLabelComponent,
NzFormDirective,
NzFormItemComponent,
NzFormControlComponent,
NzFormExplainComponent,
NzFormTextComponent,
NzFormSplitComponent
],
imports: [CommonModule, NzGridModule, NzIconModule, LayoutModule, PlatformModule]
},] }
];
return NzFormModule;
}());
/**
* @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 { NzFormModule, NzFormDirective, NzFormControlComponent, NzFormExplainComponent, NzFormItemComponent, NzFormExtraComponent, NzFormLabelComponent, NzFormSplitComponent, NzFormTextComponent };
//# sourceMappingURL=ng-zorro-antd-form.js.map