UNPKG

@lxlib/seed

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.1.

738 lines (729 loc) 23.7 kB
import { __assign, __decorate, __metadata, __spread } from 'tslib'; import { Injectable, ɵɵdefineInjectable, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Host, Optional, ElementRef, Renderer2, TemplateRef, ChangeDetectorRef, ContentChild, ViewChild, NgModule } from '@angular/core'; import { toNumber, InputNumber, InputBoolean, isEmpty, LxlibUtilModule } from '@lxlib/util'; import { RequiredValidator, NgModel, FormControlName } from '@angular/forms'; import { ResponsiveService } from '@lxlib/theme'; import { helpMotion } from 'ng-zorro-antd/core/animation'; import { CommonModule } from '@angular/common'; import { NzOutletModule } from 'ng-zorro-antd/core/outlet'; import { NzIconModule } from 'ng-zorro-antd/icon'; import { NzToolTipModule } from 'ng-zorro-antd/tooltip'; /** * @fileoverview added by tsickle * Generated from: se.config.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var SEConfig = /** @class */ (function () { function SEConfig() { /** * 大小,默认:`default` * - `compact` 紧凑型,强制忽略 `error`、`extra` 展示 */ this.size = 'default'; /** * 布局类型,等同 `nzLayout` * - `inline` 时强制大小为 `compact` */ this.nzLayout = 'horizontal'; /** * 间距,当 `nzLayout:horizontal` 时有效,默认:`32` */ this.gutter = 32; /** * 列数,默认:`2` */ this.col = 2; /** * 标签文本宽度,单位:`px`,默认:`150` */ this.labelWidth = 150; /** * 是否立即呈现错误视觉 */ this.firstVisual = false; } SEConfig.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ SEConfig.ɵprov = ɵɵdefineInjectable({ factory: function SEConfig_Factory() { return new SEConfig(); }, token: SEConfig, providedIn: "root" }); return SEConfig; }()); if (false) { /** * 大小,默认:`default` * - `compact` 紧凑型,强制忽略 `error`、`extra` 展示 * @type {?} */ SEConfig.prototype.size; /** * 布局类型,等同 `nzLayout` * - `inline` 时强制大小为 `compact` * @type {?} */ SEConfig.prototype.nzLayout; /** * 间距,当 `nzLayout:horizontal` 时有效,默认:`32` * @type {?} */ SEConfig.prototype.gutter; /** * 列数,默认:`2` * @type {?} */ SEConfig.prototype.col; /** * 标签文本宽度,单位:`px`,默认:`150` * @type {?} */ SEConfig.prototype.labelWidth; /** * 是否立即呈现错误视觉 * @type {?} */ SEConfig.prototype.firstVisual; } /** * @fileoverview added by tsickle * Generated from: se-container.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var SEContainerComponent = /** @class */ (function () { // #endregion function SEContainerComponent(cog) { this.line = false; Object.assign(this, __assign(__assign({}, new SEConfig()), cog)); } Object.defineProperty(SEContainerComponent.prototype, "gutter", { get: /** * @return {?} */ function () { return this.nzLayout === 'horizontal' ? this._gutter : 0; }, set: /** * @param {?} value * @return {?} */ function (value) { this._gutter = toNumber(value); }, enumerable: true, configurable: true }); Object.defineProperty(SEContainerComponent.prototype, "nzLayout", { get: /** * @return {?} */ function () { return this._nzLayout; }, set: /** * @param {?} value * @return {?} */ function (value) { this._nzLayout = value; if (value === 'inline') { this.size = 'compact'; } }, enumerable: true, configurable: true }); SEContainerComponent.decorators = [ { type: Component, args: [{ selector: 'se-container, [se-container]', exportAs: 'seContainer', template: "<div class=\"ant-row se__container se__{{nzLayout}} se__{{size}}\"\n [ngStyle]=\"{'margin-left.px': -(gutter / 2), 'margin-right.px': -(gutter / 2)}\">\n <se-title *ngIf=\"title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n </se-title>\n <ng-content></ng-content>\n</div>\n", preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ SEContainerComponent.ctorParameters = function () { return [ { type: SEConfig } ]; }; SEContainerComponent.propDecorators = { colInCon: [{ type: Input, args: ['se-container',] }], col: [{ type: Input }], labelWidth: [{ type: Input }], title: [{ type: Input }], gutter: [{ type: Input }], nzLayout: [{ type: Input }], size: [{ type: Input }], firstVisual: [{ type: Input }], line: [{ type: Input }] }; __decorate([ InputNumber(null), __metadata("design:type", Number) ], SEContainerComponent.prototype, "colInCon", void 0); __decorate([ InputNumber(null), __metadata("design:type", Number) ], SEContainerComponent.prototype, "col", void 0); __decorate([ InputNumber(null), __metadata("design:type", Number) ], SEContainerComponent.prototype, "labelWidth", void 0); __decorate([ InputBoolean(), __metadata("design:type", Boolean) ], SEContainerComponent.prototype, "firstVisual", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], SEContainerComponent.prototype, "line", void 0); return SEContainerComponent; }()); if (false) { /** @type {?} */ SEContainerComponent.prototype.colInCon; /** @type {?} */ SEContainerComponent.prototype.col; /** @type {?} */ SEContainerComponent.prototype.labelWidth; /** @type {?} */ SEContainerComponent.prototype.title; /** * @type {?} * @private */ SEContainerComponent.prototype._gutter; /** * @type {?} * @private */ SEContainerComponent.prototype._nzLayout; /** @type {?} */ SEContainerComponent.prototype.size; /** @type {?} */ SEContainerComponent.prototype.firstVisual; /** @type {?} */ SEContainerComponent.prototype.line; } /** * @fileoverview added by tsickle * Generated from: se-title.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var SETitleComponent = /** @class */ (function () { function SETitleComponent(parent, el, ren) { this.parent = parent; this.ren = ren; if (parent == null) { throw new Error("[se-title] must include 'se-container' component"); } this.el = el.nativeElement; } /** * @private * @return {?} */ SETitleComponent.prototype.setClass = /** * @private * @return {?} */ function () { var gutter = this.parent.gutter; var el = this.el; this.ren.setStyle(el, 'padding-left', gutter / 2 + "px"); this.ren.setStyle(el, 'padding-right', gutter / 2 + "px"); }; /** * @return {?} */ SETitleComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.setClass(); }; SETitleComponent.decorators = [ { type: Component, args: [{ selector: 'se-title, [se-title]', exportAs: 'seTitle', template: '<ng-content></ng-content>', host: { '[class.se__title]': 'true', }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ SETitleComponent.ctorParameters = function () { return [ { type: SEContainerComponent, decorators: [{ type: Host }, { type: Optional }] }, { type: ElementRef }, { type: Renderer2 } ]; }; return SETitleComponent; }()); if (false) { /** * @type {?} * @private */ SETitleComponent.prototype.el; /** * @type {?} * @private */ SETitleComponent.prototype.parent; /** * @type {?} * @private */ SETitleComponent.prototype.ren; } /** * @fileoverview added by tsickle * Generated from: se.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var prefixCls = "se"; /** @type {?} */ var nextUniqueId = 0; var SEComponent = /** @class */ (function () { function SEComponent(el, parent, rep, ren, cdr) { this.parent = parent; this.rep = rep; this.ren = ren; this.cdr = cdr; this.clsMap = []; this.inited = false; this.onceFlag = false; this.errorData = {}; this.invalid = false; this._labelWidth = null; this.required = false; this.controlClass = ''; this._id = "_se-" + nextUniqueId++; this._autoId = true; if (parent == null) { throw new Error("[se] must include 'se-container' component"); } this.el = el.nativeElement; } Object.defineProperty(SEComponent.prototype, "error", { set: /** * @param {?} val * @return {?} */ function (val) { this.errorData = typeof val === 'string' || val instanceof TemplateRef ? { '': val } : val; }, enumerable: true, configurable: true }); Object.defineProperty(SEComponent.prototype, "id", { set: /** * @param {?} value * @return {?} */ function (value) { this._id = value; this._autoId = false; }, enumerable: true, configurable: true }); Object.defineProperty(SEComponent.prototype, "paddingValue", { // #endregion get: // #endregion /** * @return {?} */ function () { return this.parent.gutter / 2; }, enumerable: true, configurable: true }); Object.defineProperty(SEComponent.prototype, "showErr", { get: /** * @return {?} */ function () { return this.invalid && !!this._error; }, enumerable: true, configurable: true }); Object.defineProperty(SEComponent.prototype, "compact", { get: /** * @return {?} */ function () { return this.parent.size === 'compact'; }, enumerable: true, configurable: true }); Object.defineProperty(SEComponent.prototype, "ngControl", { get: /** * @private * @return {?} */ function () { return this.ngModel || this.formControlName; }, enumerable: true, configurable: true }); /** * @private * @template THIS * @this {THIS} * @return {THIS} */ SEComponent.prototype.setClass = /** * @private * @template THIS * @this {THIS} * @return {THIS} */ function () { var _a = (/** @type {?} */ (this)), el = _a.el, ren = _a.ren, clsMap = _a.clsMap, col = _a.col, parent = _a.parent, cdr = _a.cdr, line = _a.line, labelWidth = _a.labelWidth, rep = _a.rep; (/** @type {?} */ (this))._labelWidth = parent.nzLayout === 'horizontal' ? (labelWidth != null ? labelWidth : parent.labelWidth) : null; clsMap.forEach((/** * @param {?} cls * @return {?} */ function (cls) { return ren.removeClass(el, cls); })); clsMap.length = 0; /** @type {?} */ var repCls = parent.nzLayout === 'horizontal' ? rep.genCls(col != null ? col : parent.colInCon || parent.col) : []; clsMap.push.apply(clsMap, __spread(["ant-form-item"], repCls, [prefixCls + "__item"])); if (line || parent.line) { clsMap.push(prefixCls + "__line"); } clsMap.forEach((/** * @param {?} cls * @return {?} */ function (cls) { return ren.addClass(el, cls); })); cdr.detectChanges(); return (/** @type {?} */ (this)); }; /** * @private * @return {?} */ SEComponent.prototype.bindModel = /** * @private * @return {?} */ function () { var _this = this; var _a, _b, _c; if (!this.ngControl || this.status$) return; this.status$ = (/** @type {?} */ (this.ngControl.statusChanges)).subscribe((/** * @param {?} res * @return {?} */ function (res) { return _this.updateStatus(res === 'INVALID'); })); if (this._autoId) { /** @type {?} */ var control = (/** @type {?} */ ((_b = (_a = ((/** @type {?} */ (this.ngControl.valueAccessor)))) === null || _a === void 0 ? void 0 : _a._elementRef) === null || _b === void 0 ? void 0 : _b.nativeElement)); if (control) { control.id = this._id; } } // auto required if (this.required !== true) { /** @type {?} */ var rawValidators = (/** @type {?} */ ((_c = ((/** @type {?} */ (this.ngControl)))) === null || _c === void 0 ? void 0 : _c._rawValidators)); this.required = rawValidators.find((/** * @param {?} w * @return {?} */ function (w) { return w instanceof RequiredValidator; })) != null; this.cdr.detectChanges(); } }; /** * @private * @param {?} invalid * @return {?} */ SEComponent.prototype.updateStatus = /** * @private * @param {?} invalid * @return {?} */ function (invalid) { if (this.ngControl.disabled || this.ngControl.isDisabled) { return; } this.invalid = (/** @type {?} */ (((invalid && this.onceFlag) || (this.ngControl.dirty && invalid)))); /** @type {?} */ var errors = this.ngControl.errors; if (errors != null && Object.keys(errors).length > 0) { /** @type {?} */ var key = Object.keys(errors)[0] || ''; /** @type {?} */ var err = this.errorData[key]; this._error = err != null ? err : this.errorData[''] || ''; } this.cdr.detectChanges(); }; /** * @return {?} */ SEComponent.prototype.checkContent = /** * @return {?} */ function () { /** @type {?} */ var el = this.contentElement.nativeElement; /** @type {?} */ var cls = prefixCls + "__item-empty"; if (isEmpty(el)) { this.ren.addClass(el, cls); } else { this.ren.removeClass(el, cls); } }; /** * @return {?} */ SEComponent.prototype.ngAfterContentInit = /** * @return {?} */ function () { this.checkContent(); }; /** * @return {?} */ SEComponent.prototype.ngOnChanges = /** * @return {?} */ function () { this.onceFlag = this.parent.firstVisual; if (this.inited) this.setClass().bindModel(); }; /** * @return {?} */ SEComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; this.setClass().bindModel(); this.inited = true; if (this.onceFlag) { Promise.resolve().then((/** * @return {?} */ function () { _this.updateStatus((/** @type {?} */ (_this.ngControl.invalid))); _this.onceFlag = false; })); } }; /** * @return {?} */ SEComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this.status$) { this.status$.unsubscribe(); } }; SEComponent.decorators = [ { type: Component, args: [{ selector: 'se', exportAs: 'se', template: "<div class=\"ant-form-item-label\" [class.se__nolabel]=\"!label\" [style.width.px]=\"_labelWidth\">\n <label *ngIf=\"label\" [attr.for]=\"_id\" class=\"se__label\" [ngClass]=\"{'ant-form-item-required': required}\">\n <span class=\"se__label-text\">\n <ng-container *nzStringTemplateOutlet=\"label\">{{ label }}</ng-container>\n </span>\n <span *ngIf=\"optional || optionalHelp\" class=\"se__label-optional\" [class.se__label-optional-no-text]=\"!optional\">\n <ng-container *nzStringTemplateOutlet=\"optional\">{{ optional }}</ng-container>\n <i *ngIf=\"optionalHelp\" nz-tooltip [nzTooltipTitle]=\"optionalHelp\" nz-icon nzType=\"question-circle\"></i>\n </span>\n </label>\n</div>\n<div class=\"ant-form-item-control se__control\">\n <div class=\"ant-form-item-control-input {{controlClass}}\">\n <div class=\"ant-form-item-control-input-content\" (cdkObserveContent)=\"checkContent()\" #contentElement>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ant-form-item-explain\" *ngIf=\"showErr && !compact\">\n <div @helpMotion>\n <ng-container *nzStringTemplateOutlet=\"_error\">{{ _error }}</ng-container>\n </div>\n </div>\n <div *ngIf=\"extra && !compact\" class=\"ant-form-item-extra\">\n <ng-container *nzStringTemplateOutlet=\"extra\">{{ extra }}</ng-container>\n </div>\n</div>\n", host: { '[style.padding-left.px]': 'paddingValue', '[style.padding-right.px]': 'paddingValue', '[class.ant-form-item-has-error]': 'showErr', '[class.ant-form-item-with-help]': 'showErr && !compact', }, preserveWhitespaces: false, animations: [helpMotion], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ SEComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: SEContainerComponent, decorators: [{ type: Optional }, { type: Host }] }, { type: ResponsiveService }, { type: Renderer2 }, { type: ChangeDetectorRef } ]; }; SEComponent.propDecorators = { ngModel: [{ type: ContentChild, args: [NgModel, { static: true },] }], formControlName: [{ type: ContentChild, args: [FormControlName, { static: true },] }], contentElement: [{ type: ViewChild, args: ['contentElement', { static: true },] }], optional: [{ type: Input }], optionalHelp: [{ type: Input }], error: [{ type: Input }], extra: [{ type: Input }], label: [{ type: Input }], col: [{ type: Input }], required: [{ type: Input }], controlClass: [{ type: Input }], line: [{ type: Input }], labelWidth: [{ type: Input }], id: [{ type: Input }] }; __decorate([ InputNumber(null), __metadata("design:type", Number) ], SEComponent.prototype, "col", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], SEComponent.prototype, "required", void 0); __decorate([ InputBoolean(null), __metadata("design:type", Boolean) ], SEComponent.prototype, "line", void 0); __decorate([ InputNumber(null), __metadata("design:type", Number) ], SEComponent.prototype, "labelWidth", void 0); return SEComponent; }()); if (false) { /** * @type {?} * @private */ SEComponent.prototype.el; /** * @type {?} * @private */ SEComponent.prototype.status$; /** * @type {?} * @private */ SEComponent.prototype.ngModel; /** * @type {?} * @private */ SEComponent.prototype.formControlName; /** * @type {?} * @private */ SEComponent.prototype.contentElement; /** * @type {?} * @private */ SEComponent.prototype.clsMap; /** * @type {?} * @private */ SEComponent.prototype.inited; /** * @type {?} * @private */ SEComponent.prototype.onceFlag; /** * @type {?} * @private */ SEComponent.prototype.errorData; /** @type {?} */ SEComponent.prototype.invalid; /** @type {?} */ SEComponent.prototype._labelWidth; /** @type {?} */ SEComponent.prototype._error; /** @type {?} */ SEComponent.prototype.optional; /** @type {?} */ SEComponent.prototype.optionalHelp; /** @type {?} */ SEComponent.prototype.extra; /** @type {?} */ SEComponent.prototype.label; /** @type {?} */ SEComponent.prototype.col; /** @type {?} */ SEComponent.prototype.required; /** @type {?} */ SEComponent.prototype.controlClass; /** @type {?} */ SEComponent.prototype.line; /** @type {?} */ SEComponent.prototype.labelWidth; /** @type {?} */ SEComponent.prototype._id; /** @type {?} */ SEComponent.prototype._autoId; /** * @type {?} * @private */ SEComponent.prototype.parent; /** * @type {?} * @private */ SEComponent.prototype.rep; /** * @type {?} * @private */ SEComponent.prototype.ren; /** * @type {?} * @private */ SEComponent.prototype.cdr; } /** * @fileoverview added by tsickle * Generated from: se.module.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var COMPONENTS = [SEContainerComponent, SEComponent, SETitleComponent]; var SEModule = /** @class */ (function () { function SEModule() { } SEModule.decorators = [ { type: NgModule, args: [{ imports: [CommonModule, LxlibUtilModule, NzToolTipModule, NzIconModule, NzOutletModule], declarations: __spread(COMPONENTS), exports: __spread(COMPONENTS), },] } ]; return SEModule; }()); /** * @fileoverview added by tsickle * Generated from: public_api.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * Generated from: edit.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export { SEComponent, SEConfig, SEContainerComponent, SEModule, SETitleComponent }; //# sourceMappingURL=edit.js.map