UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

651 lines (638 loc) 21 kB
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 } 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 */ class NzFormExplainComponent { /** * @param {?} elementRef * @param {?} renderer */ constructor(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: [` nz-form-explain { display: block; } `] }] } ]; /** @nocollapse */ NzFormExplainComponent.ctorParameters = () => [ { type: ElementRef }, { type: Renderer2 } ]; /** * @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 * */ class NzFormItemComponent extends NzRowDirective { /** * @param {?} elementRef * @param {?} renderer * @param {?} nzUpdateHostClassService * @param {?} mediaMatcher * @param {?} ngZone * @param {?} platform * @param {?} cdr */ constructor(elementRef, renderer, nzUpdateHostClassService, mediaMatcher, ngZone, platform, cdr) { super(elementRef, renderer, nzUpdateHostClassService, mediaMatcher, ngZone, platform); this.cdr = cdr; this.nzFlex = false; renderer.addClass(elementRef.nativeElement, 'ant-form-item'); } /** * @return {?} */ ngAfterContentInit() { if (this.listOfNzFormExplainComponent) { this.listOfNzFormExplainComponent.changes.pipe(takeUntil(this.destroy$)).subscribe((/** * @return {?} */ () => { this.cdr.markForCheck(); })); } } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { super.ngOnChanges(changes); if (changes.hasOwnProperty('nzFlex')) { /** @type {?} */ const flex = changes.nzFlex.currentValue; if (flex) { this.renderer.setStyle(this.elementRef.nativeElement, 'display', 'flex'); } else { this.renderer.removeStyle(this.elementRef.nativeElement, 'display'); } } } } 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: [` nz-form-item { display: block; } `] }] } ]; /** @nocollapse */ NzFormItemComponent.ctorParameters = () => [ { 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); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NzFormControlComponent extends NzColDirective { /** * @param {?} nzUpdateHostClassService * @param {?} elementRef * @param {?} nzFormItemComponent * @param {?} nzRowDirective * @param {?} cdr * @param {?} renderer */ constructor(nzUpdateHostClassService, elementRef, nzFormItemComponent, nzRowDirective, cdr, renderer) { super(nzUpdateHostClassService, elementRef, nzFormItemComponent || nzRowDirective, renderer); this.cdr = cdr; this._hasFeedback = false; this.controlClassMap = {}; renderer.addClass(elementRef.nativeElement, 'ant-form-item-control-wrapper'); } /** * @param {?} value * @return {?} */ set nzHasFeedback(value) { this._hasFeedback = toBoolean(value); this.setControlClassMap(); } /** * @return {?} */ get nzHasFeedback() { return this._hasFeedback; } /** * @param {?} value * @return {?} */ set nzValidateStatus(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(); } } /** * @return {?} */ removeSubscribe() { if (this.validateChanges) { this.validateChanges.unsubscribe(); this.validateChanges = null; } } /** * @return {?} */ watchControl() { 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 {?} */ () => { this.setControlClassMap(); this.cdr.markForCheck(); })); } } /** * @param {?} status * @return {?} */ validateControlStatus(status) { return (/** @type {?} */ ((!!this.validateControl && (this.validateControl.dirty || this.validateControl.touched) && this.validateControl.status === status))); } /** * @return {?} */ setControlClassMap() { 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 = { [`has-warning`]: this.status === 'warning', [`is-validating`]: this.status === 'validating', [`has-error`]: this.status === 'error', [`has-success`]: this.status === 'success', [`has-feedback`]: this.nzHasFeedback }; } /** * @return {?} */ ngOnInit() { super.ngOnInit(); this.setControlClassMap(); } /** * @return {?} */ ngOnDestroy() { this.removeSubscribe(); super.ngOnDestroy(); } /** * @return {?} */ ngAfterContentInit() { if (this.defaultValidateControl && !this.validateControl && !this.validateString) { this.nzValidateStatus = this.defaultValidateControl; } } /** * @return {?} */ ngAfterViewInit() { super.ngAfterViewInit(); } } 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: [` nz-form-control { display: block; } `] }] } ]; /** @nocollapse */ NzFormControlComponent.ctorParameters = () => [ { 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 }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NzFormExtraComponent { /** * @param {?} elementRef * @param {?} renderer */ constructor(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: [` nz-form-extra { display: block; } `] }] } ]; /** @nocollapse */ NzFormExtraComponent.ctorParameters = () => [ { type: ElementRef }, { type: Renderer2 } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NzFormLabelComponent extends NzColDirective { /** * @param {?} nzUpdateHostClassService * @param {?} elementRef * @param {?} nzFormItemComponent * @param {?} nzRowDirective * @param {?} renderer * @param {?} cdr */ constructor(nzUpdateHostClassService, elementRef, nzFormItemComponent, nzRowDirective, renderer, cdr) { super(nzUpdateHostClassService, elementRef, nzFormItemComponent || nzRowDirective, renderer); this.cdr = cdr; this.nzRequired = false; this.defaultNoColon = false; this.noColon = 'default'; renderer.addClass(elementRef.nativeElement, 'ant-form-item-label'); } /** * @param {?} value * @return {?} */ set nzNoColon(value) { this.noColon = toBoolean(value); } /** * @return {?} */ get nzNoColon() { return !!this.noColon; } /** * @param {?} value * @return {?} */ setDefaultNoColon(value) { this.defaultNoColon = toBoolean(value); this.cdr.markForCheck(); } /** * @return {?} */ ngOnDestroy() { super.ngOnDestroy(); } /** * @return {?} */ ngAfterViewInit() { super.ngAfterViewInit(); } } 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 = () => [ { 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); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NzFormSplitComponent { /** * @param {?} elementRef * @param {?} renderer */ constructor(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 = () => [ { type: ElementRef }, { type: Renderer2 } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NzFormTextComponent { /** * @param {?} elementRef * @param {?} renderer */ constructor(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 = () => [ { type: ElementRef }, { type: Renderer2 } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NzFormDirective { /** * @param {?} elementRef * @param {?} renderer * @param {?} nzUpdateHostClassService */ constructor(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 {?} */ setClassMap() { this.nzUpdateHostClassService.updateHostClass(this.elementRef.nativeElement, { [`ant-form-${this.nzLayout}`]: this.nzLayout }); } /** * @return {?} */ updateItemsDefaultColon() { if (this.nzFormLabelComponent) { this.nzFormLabelComponent.forEach((/** * @param {?} item * @return {?} */ item => item.setDefaultNoColon(this.nzNoColon))); } } /** * @return {?} */ ngOnInit() { this.setClassMap(); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { this.setClassMap(); if (changes.hasOwnProperty('nzNoColon')) { this.updateItemsDefaultColon(); } } /** * @return {?} */ ngAfterContentInit() { this.nzFormLabelComponent.changes .pipe(startWith(null), takeUntil(this.destroy$)) .subscribe((/** * @return {?} */ () => { this.updateItemsDefaultColon(); })); } /** * @return {?} */ ngOnDestroy() { this.destroy$.next(); this.destroy$.complete(); } } NzFormDirective.decorators = [ { type: Directive, args: [{ selector: '[nz-form]', exportAs: 'nzForm', providers: [NzUpdateHostClassService] },] } ]; /** @nocollapse */ NzFormDirective.ctorParameters = () => [ { 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); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class 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] },] } ]; /** * @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