UNPKG

@ng-dynamic-forms/core

Version:

A rapid form development library for Angular

43 lines 5.68 kB
import { __decorate } from "tslib"; import { DynamicFormControlModel } from "../dynamic-form-control.model"; import { serializable } from "../../decorator/serializable.decorator"; export const DYNAMIC_FORM_CONTROL_TYPE_GROUP = "GROUP"; export class DynamicFormGroupModel extends DynamicFormControlModel { constructor(config, layout) { super(config, layout); this.type = DYNAMIC_FORM_CONTROL_TYPE_GROUP; this.group = Array.isArray(config.group) ? config.group : []; this.legend = config.legend ?? null; } get(index) { return this.group[index]; } set(index, controlModel) { this.group[index] = controlModel; } add(controlModel) { this.group.push(controlModel); } insert(index, controlModel) { this.group.splice(index, 0, controlModel); } move(index, step) { this.group.splice(index + step, 0, ...this.group.splice(index, 1)); } remove(index) { this.group.splice(index, 1); } size() { return this.group.length; } } __decorate([ serializable() ], DynamicFormGroupModel.prototype, "group", void 0); __decorate([ serializable() ], DynamicFormGroupModel.prototype, "legend", void 0); __decorate([ serializable() ], DynamicFormGroupModel.prototype, "type", void 0); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWdyb3VwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZHluYW1pYy1mb3Jtcy9jb3JlL3NyYy9saWIvbW9kZWwvZm9ybS1ncm91cC9keW5hbWljLWZvcm0tZ3JvdXAubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBaUMsTUFBTSwrQkFBK0IsQ0FBQztBQUd2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsT0FBTyxDQUFDO0FBT3ZELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx1QkFBdUI7SUFNOUQsWUFBWSxNQUFtQyxFQUFFLE1BQWlDO1FBQzlFLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFIRCxTQUFJLEdBQVcsK0JBQStCLENBQUM7UUFLcEUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBYSxFQUFFLFlBQXFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxHQUFHLENBQUMsWUFBcUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhLEVBQUUsWUFBcUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDN0IsQ0FBQztDQUNKO0FBdkNtQjtJQUFmLFlBQVksRUFBRTtvREFBeUI7QUFDeEI7SUFBZixZQUFZLEVBQUU7cURBQXVCO0FBRWI7SUFBeEIsWUFBWSxFQUFFO21EQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsLCBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbENvbmZpZyB9IGZyb20gXCIuLi9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2RlbCB9IGZyb20gXCIuLi9keW5hbWljLWZvcm0ubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB9IGZyb20gXCIuLi9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLWxheW91dC5tb2RlbFwiO1xuaW1wb3J0IHsgc2VyaWFsaXphYmxlIH0gZnJvbSBcIi4uLy4uL2RlY29yYXRvci9zZXJpYWxpemFibGUuZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCBjb25zdCBEWU5BTUlDX0ZPUk1fQ09OVFJPTF9UWVBFX0dST1VQID0gXCJHUk9VUFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGb3JtR3JvdXBNb2RlbENvbmZpZyBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsQ29uZmlnIHtcbiAgICBncm91cD86IER5bmFtaWNGb3JtTW9kZWw7XG4gICAgbGVnZW5kPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Hcm91cE1vZGVsIGV4dGVuZHMgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwge1xuICAgIEBzZXJpYWxpemFibGUoKSBncm91cDogRHluYW1pY0Zvcm1Nb2RlbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgbGVnZW5kOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgQHNlcmlhbGl6YWJsZSgpIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IERZTkFNSUNfRk9STV9DT05UUk9MX1RZUEVfR1JPVVA7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25maWc6IER5bmFtaWNGb3JtR3JvdXBNb2RlbENvbmZpZywgbGF5b3V0PzogRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0KSB7XG4gICAgICAgIHN1cGVyKGNvbmZpZywgbGF5b3V0KTtcblxuICAgICAgICB0aGlzLmdyb3VwID0gQXJyYXkuaXNBcnJheShjb25maWcuZ3JvdXApID8gY29uZmlnLmdyb3VwIDogW107XG4gICAgICAgIHRoaXMubGVnZW5kID0gY29uZmlnLmxlZ2VuZCA/PyBudWxsO1xuICAgIH1cblxuICAgIGdldChpbmRleDogbnVtYmVyKTogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cFtpbmRleF07XG4gICAgfVxuXG4gICAgc2V0KGluZGV4OiBudW1iZXIsIGNvbnRyb2xNb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cFtpbmRleF0gPSBjb250cm9sTW9kZWw7XG4gICAgfVxuXG4gICAgYWRkKGNvbnRyb2xNb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cC5wdXNoKGNvbnRyb2xNb2RlbCk7XG4gICAgfVxuXG4gICAgaW5zZXJ0KGluZGV4OiBudW1iZXIsIGNvbnRyb2xNb2RlbDogRHluYW1pY0Zvcm1Db250cm9sTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cC5zcGxpY2UoaW5kZXgsIDAsIGNvbnRyb2xNb2RlbCk7XG4gICAgfVxuXG4gICAgbW92ZShpbmRleDogbnVtYmVyLCBzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cC5zcGxpY2UoaW5kZXggKyBzdGVwLCAwLCAuLi50aGlzLmdyb3VwLnNwbGljZShpbmRleCwgMSkpO1xuICAgIH1cblxuICAgIHJlbW92ZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZ3JvdXAuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBzaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwLmxlbmd0aDtcbiAgICB9XG59XG4iXX0=