ngx-mat-dynamic-form-builder
Version:
Build dynamic forms in Angular Material using Reactive forms.
42 lines • 7.9 kB
JavaScript
/**
* Base question with no mat form field
*/
export class Question {
constructor(options = {}) {
this.value = options.value;
this.key = options.key || '';
this.label = options.label || '';
this.controlType = options.controlType || '';
this.validators = options.validators || null;
this.flex = options.flex || 100;
this.xsFlex = options.xsFlex || 100;
this.disabled = options.disabled || false;
this.conditional = options.conditional;
this.conditional ? this.show = false : this.show = true;
}
}
/**
* Base for all mat form field questions:
* Auto complete
* Chip Selector
* Date time
* Date
* Dropdown
* Select
* Text area
* Text Box
*/
export class QuestionBase extends Question {
constructor(options = {}) {
super(options);
this.hint = options.hint || '';
this.placeholder = options.placeholder || '';
this.appearance = options.appearance || 'standard';
this.validators = options.validators || null;
this.prefix = options.prefix;
this.suffix = options.suffix;
this.prefixIcon = options.prefixIcon;
this.suffixIcon = options.suffixIcon;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXQtZHluYW1pYy1mb3JtLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL2hlbHBlci1jbGFzc2VzL3F1ZXN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQWVqQixZQUFZLFVBY1IsRUFBRTtRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDNUQsQ0FBQztDQUNKO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBTyxZQUFnQixTQUFRLFFBQVc7SUFVNUMsWUFBWSxVQW9CUixFQUFFO1FBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDekMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiBCYXNlIHF1ZXN0aW9uIHdpdGggbm8gbWF0IGZvcm0gZmllbGRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbjxUPiB7XHJcbiAgICB2YWx1ZTogVDsgLy8gVGhlIHZhbHVlIG9mIHRoZSBmb3JtXHJcbiAgICBrZXk6IHN0cmluZzsgLy8gSWRlbnRpZmllciBmb3IgdGhpcyBxdWVzdGlvbiBhbmQgYWxzbyB0aGUga2V5IGluIHdoaWNoIHRoZSByZXN1bHQgd2lsbCBiZVxyXG4gICAgbGFiZWw6IHN0cmluZzsgLy8gVGhlIGxhYmVsIG9mIHRoZSBmb3JtIGZpZWxkXHJcbiAgICBjb250cm9sVHlwZTogc3RyaW5nOyAvLyBUaGUgdHlwZSBvZiBxdWVzdGlvbiwgc2V0IGJ5IGV4dGVuZGVkIGNsYXNzZXNcclxuICAgIHZhbGlkYXRvcnM/OiBhbnkgLy8gQW5ndWxhciB2YWxpZGF0b3JzXHJcbiAgICBmbGV4PzogbnVtYmVyOyAvLyBhbmd1bGFyIGZsZXggbGF5b3V0LCBhbGwgcXVlc3Rpb25zIGFyZSBpbiBmbGV4TGF5b3V0PVwicm93IHdyYXBcIiBpLmUuIGZsZXg9MTAwIHdpbGwgYmUgMTAwJSB3aWR0aFxyXG4gICAgeHNGbGV4PzogbnVtYmVyOyAvLyBhbmd1bGFyIGZsZXggbGF5b3V0IGZvciBtb2JpbGUgZGV2aWNlcywgZGVmYXVsdCB0byAxMDBcclxuICAgIGNvbmRpdGlvbmFsPzogeyAvLyBJZiB0aGlzIHF1ZXN0aW9uIGlzIGNvbmRpdGlvbmFsIG9uIHRoZSByZXN1bHQgb2YgYW5vdGhlclxyXG4gICAgICAgIGNvbnRyb2xLZXk6IHN0cmluZzsgLy8gdGhlIGlkZW50aWZpZXIgb2YgdGhlIG90aGVyIHF1ZXN0aW9uXHJcbiAgICAgICAgdmFsdWU6IGFueSAvLyB0aGUgdmFsdWUgdGhlIG90aGVyIHF1ZXN0aW9uIG11c3QgYmUgZm9yIHRoaXMgb25lIHRvIGFwcGVhclxyXG4gICAgfVxyXG4gICAgc2hvdz86IGJvb2xlYW47IC8vIGhpZGUgdGhpcyBxdWVzdGlvbiB3aXRoIG5nSWZcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjsgLy8gc2hvdyBidXQgZGlzYWJsZVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHtcclxuICAgICAgICB2YWx1ZT86IFQsXHJcbiAgICAgICAga2V5Pzogc3RyaW5nLFxyXG4gICAgICAgIGxhYmVsPzogc3RyaW5nLFxyXG4gICAgICAgIHJlcXVpcmVkPzogYm9vbGVhbixcclxuICAgICAgICBjb250cm9sVHlwZT86IHN0cmluZyxcclxuICAgICAgICB2YWxpZGF0b3JzPzogYW55LFxyXG4gICAgICAgIGZsZXg/OiBudW1iZXIsXHJcbiAgICAgICAgeHNGbGV4PzogbnVtYmVyLFxyXG4gICAgICAgIGRpc2FibGVkPzogYm9vbGVhbixcclxuICAgICAgICBjb25kaXRpb25hbD86IHtcclxuICAgICAgICAgICAgY29udHJvbEtleTogc3RyaW5nO1xyXG4gICAgICAgICAgICB2YWx1ZTogYW55XHJcbiAgICAgICAgfVxyXG4gICAgfSA9IHt9KSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG9wdGlvbnMudmFsdWU7XHJcbiAgICAgICAgdGhpcy5rZXkgPSBvcHRpb25zLmtleSB8fCAnJztcclxuICAgICAgICB0aGlzLmxhYmVsID0gb3B0aW9ucy5sYWJlbCB8fCAnJztcclxuICAgICAgICB0aGlzLmNvbnRyb2xUeXBlID0gb3B0aW9ucy5jb250cm9sVHlwZSB8fCAnJztcclxuICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSBvcHRpb25zLnZhbGlkYXRvcnMgfHwgbnVsbDtcclxuICAgICAgICB0aGlzLmZsZXggPSBvcHRpb25zLmZsZXggfHwgMTAwO1xyXG4gICAgICAgIHRoaXMueHNGbGV4ID0gb3B0aW9ucy54c0ZsZXggfHwgMTAwO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBvcHRpb25zLmRpc2FibGVkIHx8IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZGl0aW9uYWwgPSBvcHRpb25zLmNvbmRpdGlvbmFsO1xyXG4gICAgICAgIHRoaXMuY29uZGl0aW9uYWwgPyB0aGlzLnNob3cgPSBmYWxzZSA6IHRoaXMuc2hvdyA9IHRydWU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCYXNlIGZvciBhbGwgbWF0IGZvcm0gZmllbGQgcXVlc3Rpb25zOlxyXG4gKiBBdXRvIGNvbXBsZXRlXHJcbiAqIENoaXAgU2VsZWN0b3JcclxuICogRGF0ZSB0aW1lXHJcbiAqIERhdGVcclxuICogRHJvcGRvd25cclxuICogU2VsZWN0XHJcbiAqIFRleHQgYXJlYVxyXG4gKiBUZXh0IEJveFxyXG4gKi9cclxuXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkJhc2U8VD4gZXh0ZW5kcyBRdWVzdGlvbjxUPiB7XHJcblxyXG4gICAgaGludD86IHN0cmluZyAvLyBIaW50IG9mIHRoZSBtYXQgZm9ybSBmaWVsZFxyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcgLy8gUGxhY2Vob2xkZXIgb2YgaW5wdXRcclxuICAgIGFwcGVhcmFuY2U/OiBzdHJpbmc7IC8vIG1hdCBmb3JtIGZpZWxkIGFwcGVhcmFuY2VcclxuICAgIHByZWZpeD86IHN0cmluZzsgLy8gbWF0IGZvcm0gZmllbGQgcHJlZml4XHJcbiAgICBzdWZmaXg/OiBzdHJpbmc7IC8vIG1hdCBmb3JtIGZpZWxkIHN1ZmZpeFxyXG4gICAgcHJlZml4SWNvbj86IHN0cmluZzsgLy8gbWF0IGZvcm0gZmllbGQgaWNvbiBwcmVmaXhcclxuICAgIHN1ZmZpeEljb24/OiBzdHJpbmc7IC8vIG1hdCBmb3JtIGZpZWxkIGljb24gc3VmZml4XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczoge1xyXG4gICAgICAgIHZhbHVlPzogVCxcclxuICAgICAgICBrZXk/OiBzdHJpbmcsXHJcbiAgICAgICAgbGFiZWw/OiBzdHJpbmcsXHJcbiAgICAgICAgcmVxdWlyZWQ/OiBib29sZWFuLFxyXG4gICAgICAgIGNvbnRyb2xUeXBlPzogc3RyaW5nLFxyXG4gICAgICAgIGhpbnQ/OiBzdHJpbmcsXHJcbiAgICAgICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXHJcbiAgICAgICAgYXBwZWFyYW5jZT86IHN0cmluZyxcclxuICAgICAgICB2YWxpZGF0b3JzPzogYW55LFxyXG4gICAgICAgIHByZWZpeD86IHN0cmluZyxcclxuICAgICAgICBzdWZmaXg/OiBzdHJpbmcsXHJcbiAgICAgICAgcHJlZml4SWNvbj86IHN0cmluZyxcclxuICAgICAgICBzdWZmaXhJY29uPzogc3RyaW5nLFxyXG4gICAgICAgIGZsZXg/OiBudW1iZXIsXHJcbiAgICAgICAgZGlzYWJsZWQ/OiBib29sZWFuLFxyXG4gICAgICAgIGNvbmRpdGlvbmFsPzoge1xyXG4gICAgICAgICAgICBjb250cm9sS2V5OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHZhbHVlOiBhbnlcclxuICAgICAgICB9XHJcbiAgICB9ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKVxyXG4gICAgICAgIHRoaXMuaGludCA9IG9wdGlvbnMuaGludCB8fCAnJztcclxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gb3B0aW9ucy5wbGFjZWhvbGRlciB8fCAnJztcclxuICAgICAgICB0aGlzLmFwcGVhcmFuY2UgPSBvcHRpb25zLmFwcGVhcmFuY2UgfHwgJ3N0YW5kYXJkJztcclxuICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSBvcHRpb25zLnZhbGlkYXRvcnMgfHwgbnVsbDtcclxuICAgICAgICB0aGlzLnByZWZpeCA9IG9wdGlvbnMucHJlZml4O1xyXG4gICAgICAgIHRoaXMuc3VmZml4ID0gb3B0aW9ucy5zdWZmaXg7XHJcbiAgICAgICAgdGhpcy5wcmVmaXhJY29uID0gb3B0aW9ucy5wcmVmaXhJY29uO1xyXG4gICAgICAgIHRoaXMuc3VmZml4SWNvbiA9IG9wdGlvbnMuc3VmZml4SWNvbjtcclxuICAgIH1cclxufSJdfQ==