UNPKG

@kre-form/ant

Version:

217 lines (216 loc) 16.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, } from "@angular/core"; import { FieldType } from "@kre-form/core"; export class KreFormFieldSelect extends FieldType { constructor() { super(...arguments); this._defaultValue = ""; this._defaultValues = []; this.selectType = "default"; } /** * @return {?} */ get getModelValue() { if (this.to.selectType === "multiple") { return this.defaultValues; } else { return this.defaultValue; } } /** * @param {?} value * @return {?} */ set getModelValue(value) { } /** * @return {?} */ get defaultValue() { if (this.model && this.model[this.key] && Array.isArray(this.model[this.key]) && this.model[this.key].length > 0) { this._defaultValue = this.model[this.key][0].value; } else { return null; } return this._defaultValue; } /** * @return {?} */ get defaultValues() { if (this.model && this.model[this.key] && Array.isArray(this.model[this.key])) { this._defaultValues.length = 0; this.model[this.key].forEach((/** * @param {?} item * @return {?} */ (item) => { this._defaultValues.push(item.value); })); } else { return null; } return this._defaultValues; } // get defaultValues() { // if (!this._defaultValues) { // this._defaultValues = []; // } else { // this._defaultValues.length = 0; // } // if ( // this.model && // this.model[this.key] && // Array.isArray(this.model[this.key]) && // !_.isEmpty(this.model[this.key]) // ) { // if (!!this.model[this.key]) { // this.model[this.key].forEach((item: any) => { // this._defaultValues.push(item.value); // }); // } // } else { // this._defaultValues = null; // } // return this._defaultValues; // } /** * @return {?} */ getSelectText() { /** @type {?} */ let result = ""; if (this.to && this.to.selectType) { if (this.to.selectType === "multiple") { result = this.textMultiple; } else { result = this.textSingle; } } else { result = this.textSingle; } return result; } /** * @param {?} e * @return {?} */ selectedChange(e) { /** @type {?} */ let values = []; if (this.to.selectType && this.to.selectType == "multiple") { if (e && Array.isArray(e)) { e.forEach((/** * @param {?} item * @return {?} */ (item) => { if (this.to.options && Array.isArray(this.to.options)) { this.to.options.forEach((/** * @param {?} options * @return {?} */ (options) => { if (options.value == item) { values.push(options); } })); } })); } } else { if (this.to.options && Array.isArray(this.to.options)) { this.to.options.forEach((/** * @param {?} options * @return {?} */ (options) => { if (options.value == e) { values = [options]; } })); } } this.formControl.patchValue(values); this.formControl.markAsTouched(); } /** * @return {?} */ get clear() { if (typeof this.to.clear === "undefined") { return true; } return !!this.to.clear; } } KreFormFieldSelect.decorators = [ { type: Component, args: [{ selector: "krefield-select", template: ` <ng-container *ngIf="formStatus !== 0; else other"> <div class="control-design"> <input nz-input disabled /> </div> </ng-container> <ng-template #other> <ng-container *ngIf="editor === true"> <nz-select [nzAllowClear]="!to.required && clear" [nzMode]="to.selectType === 'multiple' ? 'multiple' : 'default'" [kreFormAttributes]="field" [class.is-invalid]="showError" [nzPlaceHolder]="placeHolder" [(ngModel)]="getModelValue" nzShowSearch="true" (ngModelChange)="selectedChange($event)" > <ng-container *ngFor="let item of to.options"> <nz-option [nzLabel]="item.label" [nzValue]="item.value" ></nz-option> </ng-container> </nz-select> <!-- <div class="tips"> <i class="icon-bangzhu" [nzTooltipTitle]="tips" nzTooltipPlacement="top" nz-tooltip *ngIf="tips != ''" ></i> </div> --> </ng-container> <div class="fieldtext" *ngIf="editor === false"> {{ getSelectText() }} </div> </ng-template> ` }] } ]; if (false) { /** @type {?} */ KreFormFieldSelect.prototype._defaultValue; /** @type {?} */ KreFormFieldSelect.prototype._defaultValues; /** @type {?} */ KreFormFieldSelect.prototype.selectType; /** @type {?} */ KreFormFieldSelect.prototype.listOfSelectedValue; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi90eXBlcy9zZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBK0MzQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBUztJQTdDakQ7O1FBOENFLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBRyxTQUFTLENBQUM7SUFpSHpCLENBQUM7Ozs7SUE5R0MsSUFBSSxhQUFhO1FBQ2YsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzNCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs7OztJQUVELElBQUksYUFBYSxDQUFDLEtBQVUsSUFBRyxDQUFDOzs7O0lBRWhDLElBQUksWUFBWTtRQUNkLElBQ0UsSUFBSSxDQUFDLEtBQUs7WUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUMvQjtZQUNBLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ3BEO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztT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Q1AsSUFBSSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQzs7O1lBaEtGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q1Q7YUFFRjs7OztJQUVDLDJDQUEyQjs7SUFDM0IsNENBQThCOztJQUM5Qix3Q0FBdUI7O0lBQ3ZCLGlEQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNQVRfSEFNTUVSX09QVElPTlMgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIkBrcmUtZm9ybS9jb3JlXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrcmVmaWVsZC1zZWxlY3RcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybVN0YXR1cyAhPT0gMDsgZWxzZSBvdGhlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wtZGVzaWduXCI+XG4gICAgICAgIDxpbnB1dCBuei1pbnB1dCBkaXNhYmxlZCAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI290aGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRvciA9PT0gdHJ1ZVwiPlxuICAgICAgICA8bnotc2VsZWN0XG4gICAgICAgICAgW256QWxsb3dDbGVhcl09XCIhdG8ucmVxdWlyZWQgJiYgY2xlYXJcIlxuICAgICAgICAgIFtuek1vZGVdPVwidG8uc2VsZWN0VHlwZSA9PT0gJ211bHRpcGxlJyA/ICdtdWx0aXBsZScgOiAnZGVmYXVsdCdcIlxuICAgICAgICAgIFtrcmVGb3JtQXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwic2hvd0Vycm9yXCJcbiAgICAgICAgICBbbnpQbGFjZUhvbGRlcl09XCJwbGFjZUhvbGRlclwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJnZXRNb2RlbFZhbHVlXCJcbiAgICAgICAgICBuelNob3dTZWFyY2g9XCJ0cnVlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdG8ub3B0aW9uc1wiPlxuICAgICAgICAgICAgPG56LW9wdGlvblxuICAgICAgICAgICAgICBbbnpMYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgW256VmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICA+PC9uei1vcHRpb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbnotc2VsZWN0PlxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0aXBzXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1iYW5nemh1XCJcbiAgICAgICAgICAgIFtuelRvb2x0aXBUaXRsZV09XCJ0aXBzXCJcbiAgICAgICAgICAgIG56VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgICBuei10b29sdGlwXG4gICAgICAgICAgICAqbmdJZj1cInRpcHMgIT0gJydcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvZGl2PiAtLT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkdGV4dFwiICpuZ0lmPVwiZWRpdG9yID09PSBmYWxzZVwiPlxuICAgICAgICB7eyBnZXRTZWxlY3RUZXh0KCkgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIC8vY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEtyZUZvcm1GaWVsZFNlbGVjdCBleHRlbmRzIEZpZWxkVHlwZSB7XG4gIF9kZWZhdWx0VmFsdWU6IHN0cmluZyA9IFwiXCI7XG4gIF9kZWZhdWx0VmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuICBzZWxlY3RUeXBlID0gXCJkZWZhdWx0XCI7XG4gIGxpc3RPZlNlbGVjdGVkVmFsdWU6IGFueTtcblxuICBnZXQgZ2V0TW9kZWxWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy50by5zZWxlY3RUeXBlID09PSBcIm11bHRpcGxlXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBzZXQgZ2V0TW9kZWxWYWx1ZSh2YWx1ZTogYW55KSB7fVxuXG4gIGdldCBkZWZhdWx0VmFsdWUoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5tb2RlbCAmJlxuICAgICAgdGhpcy5tb2RlbFt0aGlzLmtleV0gJiZcbiAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5tb2RlbFt0aGlzLmtleV0pICYmXG4gICAgICB0aGlzLm1vZGVsW3RoaXMua2V5XS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLl9kZWZhdWx0VmFsdWUgPSB0aGlzLm1vZGVsW3RoaXMua2V5XVswXS52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWU7XG4gIH1cbiAgZ2V0IGRlZmF1bHRWYWx1ZXMoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5tb2RlbCAmJlxuICAgICAgdGhpcy5tb2RlbFt0aGlzLmtleV0gJiZcbiAgICAgIEFycmF5LmlzQXJyYXkodGhpcy5tb2RlbFt0aGlzLmtleV0pXG4gICAgKSB7XG4gICAgICB0aGlzLl9kZWZhdWx0VmFsdWVzLmxlbmd0aCA9IDA7XG4gICAgICB0aGlzLm1vZGVsW3RoaXMua2V5XS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdFZhbHVlcy5wdXNoKGl0ZW0udmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFZhbHVlcztcbiAgfVxuXG4gIC8vIGdldCBkZWZhdWx0VmFsdWVzKCkge1xuICAvLyAgIGlmICghdGhpcy5fZGVmYXVsdFZhbHVlcykge1xuICAvLyAgICAgdGhpcy5fZGVmYXVsdFZhbHVlcyA9IFtdO1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICB0aGlzLl9kZWZhdWx0VmFsdWVzLmxlbmd0aCA9IDA7XG4gIC8vICAgfVxuICAvLyAgIGlmIChcbiAgLy8gICAgIHRoaXMubW9kZWwgJiZcbiAgLy8gICAgIHRoaXMubW9kZWxbdGhpcy5rZXldICYmXG4gIC8vICAgICBBcnJheS5pc0FycmF5KHRoaXMubW9kZWxbdGhpcy5rZXldKSAmJlxuICAvLyAgICAgIV8uaXNFbXB0eSh0aGlzLm1vZGVsW3RoaXMua2V5XSlcbiAgLy8gICApIHtcbiAgLy8gICAgIGlmICghIXRoaXMubW9kZWxbdGhpcy5rZXldKSB7XG4gIC8vICAgICAgIHRoaXMubW9kZWxbdGhpcy5rZXldLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAvLyAgICAgICAgIHRoaXMuX2RlZmF1bHRWYWx1ZXMucHVzaChpdGVtLnZhbHVlKTtcbiAgLy8gICAgICAgfSk7XG4gIC8vICAgICB9XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuX2RlZmF1bHRWYWx1ZXMgPSBudWxsO1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4gdGhpcy5fZGVmYXVsdFZhbHVlcztcbiAgLy8gfVxuXG4gIGdldFNlbGVjdFRleHQoKSB7XG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gXCJcIjtcbiAgICBpZiAodGhpcy50byAmJiB0aGlzLnRvLnNlbGVjdFR5cGUpIHtcbiAgICAgIGlmICh0aGlzLnRvLnNlbGVjdFR5cGUgPT09IFwibXVsdGlwbGVcIikge1xuICAgICAgICByZXN1bHQgPSB0aGlzLnRleHRNdWx0aXBsZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMudGV4dFNpbmdsZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gdGhpcy50ZXh0U2luZ2xlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2VsZWN0ZWRDaGFuZ2UoZTogYW55KSB7XG4gICAgbGV0IHZhbHVlczogYW55W10gPSBbXTtcbiAgICBpZiAodGhpcy50by5zZWxlY3RUeXBlICYmIHRoaXMudG8uc2VsZWN0VHlwZSA9PSBcIm11bHRpcGxlXCIpIHtcbiAgICAgIGlmIChlICYmIEFycmF5LmlzQXJyYXkoZSkpIHtcbiAgICAgICAgZS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy50by5vcHRpb25zICYmIEFycmF5LmlzQXJyYXkodGhpcy50by5vcHRpb25zKSkge1xuICAgICAgICAgICAgdGhpcy50by5vcHRpb25zLmZvckVhY2goKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBpZiAob3B0aW9ucy52YWx1ZSA9PSBpdGVtKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVzLnB1c2gob3B0aW9ucyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnRvLm9wdGlvbnMgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnRvLm9wdGlvbnMpKSB7XG4gICAgICAgIHRoaXMudG8ub3B0aW9ucy5mb3JFYWNoKChvcHRpb25zOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9ucy52YWx1ZSA9PSBlKSB7XG4gICAgICAgICAgICB2YWx1ZXMgPSBbb3B0aW9uc107XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKHZhbHVlcyk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBnZXQgY2xlYXIoKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnRvLmNsZWFyID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gISF0aGlzLnRvLmNsZWFyO1xuICB9XG59XG4iXX0=