UNPKG

@kre-form/ant

Version:

191 lines 21 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input } from "@angular/core"; import { FormBuilder, Validators } from "@angular/forms"; /** * @record */ function Item() { } if (false) { /** @type {?} */ Item.prototype.value; /** @type {?} */ Item.prototype.label; } export class EventComponent { /** * @param {?} fb */ constructor(fb) { this.fb = fb; this.data = {}; this.fields = []; this.options = []; this.triggerJson = []; this.validateForm = this.fb.group({}); this.validateForm.addControl("eventList", this.fb.array([])); } /** * @return {?} */ get eventList() { return (/** @type {?} */ (this.validateForm.get("eventList"))); } /** * @return {?} */ save() { (/** @type {?} */ (((/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (((/** @type {?} */ (this.validateForm))))).controls)).eventList))["controls"]))))).forEach((/** * @param {?} element * @return {?} */ (element) => { for (const i in element.controls) { element.controls[i].markAsDirty(); element.controls[i].updateValueAndValidity(); } })); } /** * @return {?} */ ngOnInit() { this.fields = this.fields.filter((/** * @param {?} el * @return {?} */ (el) => el.type !== "datetime")); if (!!this.triggerJson && this.triggerJson.length > 0) { this.triggerJson.forEach((/** * @param {?} el * @return {?} */ (el) => { this.eventList.push(this.addEventList(el)); })); } } /** * @return {?} */ ngOnChanges() { } /** * @return {?} */ add() { // console.log(this.validateForm); this.save(); if (!this.validateForm.valid) { return; } this.eventList.push(this.addEventList()); } /** * @param {?=} element * @return {?} */ addEventList(element) { return this.fb.group({ selected: [ element ? (/** @type {?} */ (element)).selected || null : null, [Validators.required], ], fieldType: [this.data.type, [Validators.required]], secondType: [(/** @type {?} */ ((/** @type {?} */ (this.data)).templateOptions)).type], required: [(/** @type {?} */ ((/** @type {?} */ (this.data)).templateOptions)).required || false], fieldName: [(/** @type {?} */ ((/** @type {?} */ (this.data)).templateOptions)).label], selectItem: [element ? (/** @type {?} */ (element)).selectItem || null : null], selectItems: [element ? (/** @type {?} */ (element)).selectItems || null : null], fieldKey: [ element ? (/** @type {?} */ (element)).fieldKey || null : null, [Validators.required], ], changeFieldName: [element ? (/** @type {?} */ (element)).changeFieldName || null : null, []], changeFieldType: [ element ? (/** @type {?} */ (element)).changeFieldType || null : null, [Validators.required], ], changeAction: [ element ? (/** @type {?} */ (element)).changeAction || null : null, [Validators.required], ], changeActions: [ element ? (/** @type {?} */ (element)).changeActions || null : null, [Validators.required], ], changeToItem: [ element ? (/** @type {?} */ (element)).changeToItem || null : null, [Validators.required], ], changeToItems: [ element ? (/** @type {?} */ (element)).changeToItems || null : null, [Validators.required], ], maxLength: [element ? (/** @type {?} */ (element)).maxLength : null], maxLengthIncludes: [element ? (/** @type {?} */ (element)).maxLengthIncludes || null : null], minLength: [element ? (/** @type {?} */ (element)).minLength : null], minLengthIncludes: [element ? (/** @type {?} */ (element)).minLengthIncludes || null : null], maxIncludes: [element ? (/** @type {?} */ (element)).maxIncludes || null : null], max: [element ? (/** @type {?} */ (element)).max : null], minIncludes: [element ? (/** @type {?} */ (element)).minIncludes || null : null], min: [element ? (/** @type {?} */ (element)).min : null], // maxDateTime: [element ? element!.maxDateTime : null], // maxDateTimeIncludes: [ // element ? element!.maxDateTimeIncludes || null : null, // ], // minDateTime: [element ? element!.minDateTime : null], // minDateTimeIncludes: [ // element ? element!.minDateTimeIncludes || null : null, // ], specValue: [element ? (/** @type {?} */ (element)).specValue || null : null], // specDateTime: [element ? element!.specValue || null : null], fixedValue: [element ? (/** @type {?} */ (element)).fixedValue || null : null], // fixedDateTime: [element ? element!.fixedValue || null : null], code: [element ? (/** @type {?} */ (element)).code || Math.random() : Math.random()], }); } /** * @param {?} i * @return {?} */ removeEventList(i) { this.eventList.removeAt(i); } } EventComponent.decorators = [ { type: Component, args: [{ selector: "demo-event", template: "<div class=\"w-100 p-3 flex-h\">\n <div class=\"new-flex-1\">\n <div>\n <button nz-button nzType=\"primary\" (click)=\"add()\" nzSize=\"small\">\n \u65B0\u589E\n </button>\n <div class=\"event-boxs\">\n <form\n nz-form\n [formGroup]=\"validateForm\"\n class=\"form-wrap form-box h-100 flex-v\"\n >\n <ng-container *ngIf=\"eventList.value.length > 0; else cardEmpty\">\n <div\n formArrayName=\"eventList\"\n class=\"flex-h dynamic-from\"\n *ngFor=\"let lateAnalysis of eventList.controls; let i = index\"\n nz-row\n >\n <ng-container [formGroupName]=\"i\">\n <div class=\"new-flex-1 p-0\">\n <demo-event-item\n [myForm]=\"eventList.controls[i]\"\n [index]=\"i\"\n [options]=\"options\"\n [field]=\"data\"\n [fields]=\"fields\"\n >\n </demo-event-item>\n </div>\n <div style=\"width: 36px\">\n <div\n class=\"\n btn-close btn-close-show\n flex-h flex-align-center flex-justify-center\n h-100\n \"\n (click)=\"removeEventList(i)\"\n >\n <i class=\"icon-N_delete\"> </i>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #cardEmpty>\n <div class=\"repeat-card-empty\">\n <div class=\"repeat-empty-image\"></div>\n <p class=\"ant-empty-description\">\u6682\u65E0\u6570\u636E</p>\n </div>\n </ng-template>\n </form>\n </div>\n </div>\n </div>\n</div>", styles: [""] }] } ]; /** @nocollapse */ EventComponent.ctorParameters = () => [ { type: FormBuilder } ]; EventComponent.propDecorators = { data: [{ type: Input }], fields: [{ type: Input }], options: [{ type: Input }], triggerJson: [{ type: Input }] }; if (false) { /** @type {?} */ EventComponent.prototype.data; /** @type {?} */ EventComponent.prototype.fields; /** @type {?} */ EventComponent.prototype.options; /** @type {?} */ EventComponent.prototype.triggerJson; /** @type {?} */ EventComponent.prototype.validateForm; /** * @type {?} * @private */ EventComponent.prototype.fb; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi9kZXNpZ24vZXZlbnQvZXZlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUvRSxtQkFHQzs7O0lBRkMscUJBQWM7O0lBQ2QscUJBQWM7O0FBT2hCLE1BQU0sT0FBTyxjQUFjOzs7O0lBWXpCLFlBQW9CLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBWDFCLFNBQUksR0FBdUIsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBeUIsRUFBRSxDQUFDO1FBQ2xDLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFTL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7O0lBUEQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxtQkFBQSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBYSxDQUFDO0lBQ3pELENBQUM7Ozs7SUFPRCxJQUFJO1FBQ0YsbUJBQUEsQ0FBQyxtQkFBQSxtQkFBQSxtQkFBQSxtQkFBQSxDQUFDLG1CQUFBLElBQUksQ0FBQyxZQUFZLEVBQU8sQ0FBQyxFQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsU0FBUyxFQUFDLENBQy9DLFVBQVUsQ0FDWCxFQUFlLENBQUMsRUFBQyxD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QUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFDRCxlQUFlLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7WUFoSUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixzNkRBQXFDOzthQUV0Qzs7OztZQVZRLFdBQVc7OzttQkFZakIsS0FBSztxQkFDTCxLQUFLO3NCQUNMLEtBQUs7MEJBQ0wsS0FBSzs7OztJQUhOLDhCQUF1Qzs7SUFDdkMsZ0NBQTJDOztJQUMzQyxpQ0FBOEI7O0lBQzlCLHFDQUFpQzs7SUFFakMsc0NBQXdCOzs7OztJQU1aLDRCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEtyZUZvcm1GaWVsZENvbmZpZyB9IGZyb20gXCJAa3JlLWZvcm0vY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1BcnJheSwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbmludGVyZmFjZSBJdGVtIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJkZW1vLWV2ZW50XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZXZlbnQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2V2ZW50LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBFdmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YTogS3JlRm9ybUZpZWxkQ29uZmlnID0ge307XG4gIEBJbnB1dCgpIGZpZWxkczogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXTtcbiAgQElucHV0KCkgb3B0aW9uczogSXRlbVtdID0gW107XG4gIEBJbnB1dCgpIHRyaWdnZXJKc29uOiBhbnlbXSA9IFtdO1xuXG4gIHZhbGlkYXRlRm9ybTogRm9ybUdyb3VwO1xuXG4gIGdldCBldmVudExpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVGb3JtLmdldChcImV2ZW50TGlzdFwiKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMudmFsaWRhdGVGb3JtID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gICAgdGhpcy52YWxpZGF0ZUZvcm0uYWRkQ29udHJvbChcImV2ZW50TGlzdFwiLCB0aGlzLmZiLmFycmF5KFtdKSk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgICgodGhpcy52YWxpZGF0ZUZvcm0gYXMgYW55KSEuY29udHJvbHMhLmV2ZW50TGlzdCFbXG4gICAgICBcImNvbnRyb2xzXCJcbiAgICBdIGFzIEZvcm1Hcm91cFtdKSEuZm9yRWFjaCgoZWxlbWVudDogRm9ybUdyb3VwKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGkgaW4gZWxlbWVudC5jb250cm9scykge1xuICAgICAgICBlbGVtZW50LmNvbnRyb2xzW2ldLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIGVsZW1lbnQuY29udHJvbHNbaV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkcy5maWx0ZXIoKGVsKSA9PiBlbC50eXBlICE9PSBcImRhdGV0aW1lXCIpO1xuICAgIGlmICghIXRoaXMudHJpZ2dlckpzb24gJiYgdGhpcy50cmlnZ2VySnNvbi5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRyaWdnZXJKc29uLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnRMaXN0LnB1c2godGhpcy5hZGRFdmVudExpc3QoZWwpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBuZ09uQ2hhbmdlcygpIHt9XG4gIGFkZCgpIHtcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnZhbGlkYXRlRm9ybSk7XG5cbiAgICB0aGlzLnNhdmUoKTtcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVGb3JtLnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZXZlbnRMaXN0LnB1c2godGhpcy5hZGRFdmVudExpc3QoKSk7XG4gIH1cblxuICBhZGRFdmVudExpc3QoZWxlbWVudD86IGFueSkge1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHNlbGVjdGVkOiBbXG4gICAgICAgIGVsZW1lbnQgPyBlbGVtZW50IS5zZWxlY3RlZCB8fCBudWxsIDogbnVsbCxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgXSxcbiAgICAgIGZpZWxkVHlwZTogW3RoaXMuZGF0YS50eXBlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuXG4gICAgICBzZWNvbmRUeXBlOiBbdGhpcy5kYXRhIS50ZW1wbGF0ZU9wdGlvbnMhLnR5cGVdLFxuICAgICAgcmVxdWlyZWQ6IFt0aGlzLmRhdGEhLnRlbXBsYXRlT3B0aW9ucyEucmVxdWlyZWQgfHwgZmFsc2VdLFxuXG4gICAgICBmaWVsZE5hbWU6IFt0aGlzLmRhdGEhLnRlbXBsYXRlT3B0aW9ucyEubGFiZWxdLFxuXG4gICAgICBzZWxlY3RJdGVtOiBbZWxlbWVudCA/IGVsZW1lbnQhLnNlbGVjdEl0ZW0gfHwgbnVsbCA6IG51bGxdLFxuICAgICAgc2VsZWN0SXRlbXM6IFtlbGVtZW50ID8gZWxlbWVudCEuc2VsZWN0SXRlbXMgfHwgbnVsbCA6IG51bGxdLFxuXG4gICAgICBmaWVsZEtleTogW1xuICAgICAgICBlbGVtZW50ID8gZWxlbWVudCEuZmllbGRLZXkgfHwgbnVsbCA6IG51bGwsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIF0sXG5cbiAgICAgIGNoYW5nZUZpZWxkTmFtZTogW2VsZW1lbnQgPyBlbGVtZW50IS5jaGFuZ2VGaWVsZE5hbWUgfHwgbnVsbCA6IG51bGwsIFtdXSxcblxuICAgICAgY2hhbmdlRmllbGRUeXBlOiBbXG4gICAgICAgIGVsZW1lbnQgPyBlbGVtZW50IS5jaGFuZ2VGaWVsZFR5cGUgfHwgbnVsbCA6IG51bGwsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIF0sXG5cbiAgICAgIGNoYW5nZUFjdGlvbjogW1xuICAgICAgICBlbGVtZW50ID8gZWxlbWVudCEuY2hhbmdlQWN0aW9uIHx8IG51bGwgOiBudWxsLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBdLFxuICAgICAgY2hhbmdlQWN0aW9uczogW1xuICAgICAgICBlbGVtZW50ID8gZWxlbWVudCEuY2hhbmdlQWN0aW9ucyB8fCBudWxsIDogbnVsbCxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgXSxcblxuICAgICAgY2hhbmdlVG9JdGVtOiBbXG4gICAgICAgIGVsZW1lbnQgPyBlbGVtZW50IS5jaGFuZ2VUb0l0ZW0gfHwgbnVsbCA6IG51bGwsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIF0sXG4gICAgICBjaGFuZ2VUb0l0ZW1zOiBbXG4gICAgICAgIGVsZW1lbnQgPyBlbGVtZW50IS5jaGFuZ2VUb0l0ZW1zIHx8IG51bGwgOiBudWxsLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBdLFxuXG4gICAgICBtYXhMZW5ndGg6IFtlbGVtZW50ID8gZWxlbWVudCEubWF4TGVuZ3RoIDogbnVsbF0sXG4gICAgICBtYXhMZW5ndGhJbmNsdWRlczogW2VsZW1lbnQgPyBlbGVtZW50IS5tYXhMZW5ndGhJbmNsdWRlcyB8fCBudWxsIDogbnVsbF0sXG4gICAgICBtaW5MZW5ndGg6IFtlbGVtZW50ID8gZWxlbWVudCEubWluTGVuZ3RoIDogbnVsbF0sXG4gICAgICBtaW5MZW5ndGhJbmNsdWRlczogW2VsZW1lbnQgPyBlbGVtZW50IS5taW5MZW5ndGhJbmNsdWRlcyB8fCBudWxsIDogbnVsbF0sXG5cbiAgICAgIG1heEluY2x1ZGVzOiBbZWxlbWVudCA/IGVsZW1lbnQhLm1heEluY2x1ZGVzIHx8IG51bGwgOiBudWxsXSxcbiAgICAgIG1heDogW2VsZW1lbnQgPyBlbGVtZW50IS5tYXggOiBudWxsXSxcbiAgICAgIG1pbkluY2x1ZGVzOiBbZWxlbWVudCA/IGVsZW1lbnQhLm1pbkluY2x1ZGVzIHx8IG51bGwgOiBudWxsXSxcbiAgICAgIG1pbjogW2VsZW1lbnQgPyBlbGVtZW50IS5taW4gOiBudWxsXSxcblxuICAgICAgLy8gbWF4RGF0ZVRpbWU6IFtlbGVtZW50ID8gZWxlbWVudCEubWF4RGF0ZVRpbWUgOiBudWxsXSxcbiAgICAgIC8vIG1heERhdGVUaW1lSW5jbHVkZXM6IFtcbiAgICAgIC8vICAgZWxlbWVudCA/IGVsZW1lbnQhLm1heERhdGVUaW1lSW5jbHVkZXMgfHwgbnVsbCA6IG51bGwsXG4gICAgICAvLyBdLFxuICAgICAgLy8gbWluRGF0ZVRpbWU6IFtlbGVtZW50ID8gZWxlbWVudCEubWluRGF0ZVRpbWUgOiBudWxsXSxcbiAgICAgIC8vIG1pbkRhdGVUaW1lSW5jbHVkZXM6IFtcbiAgICAgIC8vICAgZWxlbWVudCA/IGVsZW1lbnQhLm1pbkRhdGVUaW1lSW5jbHVkZXMgfHwgbnVsbCA6IG51bGwsXG4gICAgICAvLyBdLFxuXG4gICAgICBzcGVjVmFsdWU6IFtlbGVtZW50ID8gZWxlbWVudCEuc3BlY1ZhbHVlIHx8IG51bGwgOiBudWxsXSxcbiAgICAgIC8vIHNwZWNEYXRlVGltZTogW2VsZW1lbnQgPyBlbGVtZW50IS5zcGVjVmFsdWUgfHwgbnVsbCA6IG51bGxdLFxuXG4gICAgICBmaXhlZFZhbHVlOiBbZWxlbWVudCA/IGVsZW1lbnQhLmZpeGVkVmFsdWUgfHwgbnVsbCA6IG51bGxdLFxuICAgICAgLy8gZml4ZWREYXRlVGltZTogW2VsZW1lbnQgPyBlbGVtZW50IS5maXhlZFZhbHVlIHx8IG51bGwgOiBudWxsXSxcblxuICAgICAgY29kZTogW2VsZW1lbnQgPyBlbGVtZW50IS5jb2RlIHx8IE1hdGgucmFuZG9tKCkgOiBNYXRoLnJhbmRvbSgpXSxcbiAgICB9KTtcbiAgfVxuICByZW1vdmVFdmVudExpc3QoaTogbnVtYmVyKSB7XG4gICAgdGhpcy5ldmVudExpc3QucmVtb3ZlQXQoaSk7XG4gIH1cbn1cbiJdfQ==