ng2-material-dynamic-form
Version:
Dynamic form module using material design for angular 2
331 lines (315 loc) • 15.3 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('/common'), require('ng2-material-import'), require('@angular/forms'), require('/core')) :
typeof define === 'function' && define.amd ? define('ng2-material-dynamic-form', ['exports', '/common', 'ng2-material-import', '@angular/forms', '/core'], factory) :
(factory((global['ng2-material-dynamic-form'] = {}),global.ng.common,global.ng2MaterialImport,global.ng.forms,global.ng.core));
}(this, (function (exports,common,ng2MaterialImport,forms,core) { 'use strict';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var InputChooserService = /** @class */ (function () {
function InputChooserService() {
}
/**
* @param {?} inputsSettings
* @return {?}
*/
InputChooserService.prototype.buildFormGroup = /**
* @param {?} inputsSettings
* @return {?}
*/
function (inputsSettings) {
/** @type {?} */
var group = {};
inputsSettings.forEach(function (inputSetting) {
console.log(inputSetting.attr);
group[inputSetting.attr] = inputSetting.required ?
new forms.FormControl(inputSetting.value || '', forms.Validators.required) :
new forms.FormControl(inputSetting.value || '');
});
return new forms.FormGroup(group);
};
InputChooserService.decorators = [
{ type: core.Injectable }
];
/** @nocollapse */
InputChooserService.ctorParameters = function () { return []; };
return InputChooserService;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var DyFormComponent = /** @class */ (function () {
function DyFormComponent(inputGroup) {
this.inputGroup = inputGroup;
this.output = new core.EventEmitter();
}
/**
* @return {?}
*/
DyFormComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.form = this.inputGroup.buildFormGroup(this.formData);
console.log('this.form', this.form);
};
/**
* @param {?} type
* @return {?}
*/
DyFormComponent.prototype.getType = /**
* @param {?} type
* @return {?}
*/
function (type) {
return type ? type : 'input';
};
/**
* @param {?} e
* @return {?}
*/
DyFormComponent.prototype.onSubmit = /**
* @param {?} e
* @return {?}
*/
function (e) {
console.log(e);
this.output.emit(e);
};
DyFormComponent.decorators = [
{ type: core.Component, args: [{
selector: 'ng2-material-form',
template: "<form *ngIf=\"formData\" (submit)=\"onSubmit(form.value)\" [formGroup]=\"form\">\n <div class=\"form-group\" *ngFor=\"let param of formData\">\n <dy-checkbox *ngIf=\"getType(param.type) == 'checkbox'\" [params]=\"param\" [formGroup]=\"form\"></dy-checkbox>\n <!-- <dy-checkbox-list *ngIf=\"getType(param.type) == 'checkbox-list'\" [params]=\"param\" [formGroup]=\"form\"></dy-checkbox-list> -->\n <dy-date-picker *ngIf=\"getType(param.type) == 'date-picker'\" [params]=\"param\" [formGroup]=\"form\"></dy-date-picker>\n <dy-input *ngIf=\"getType(param.type) == 'input'\" [params]=\"param\" [formGroup]=\"form\"></dy-input>\n <dy-radio *ngIf=\"getType(param.type) == 'radio'\" [params]=\"param\" [formGroup]=\"form\"></dy-radio>\n <!-- <dy-radio-list *ngIf=\"getType(param.type) == 'radio-list'\" [params]=\"param\" [formGroup]=\"form\"></dy-radio-list> -->\n <dy-select *ngIf=\"getType(param.type) == 'select'\" [params]=\"param\" [formGroup]=\"form\"></dy-select>\n <dy-slide-toggle *ngIf=\"getType(param.type) == 'slide-toggle'\" [params]=\"param\" [formGroup]=\"form\"></dy-slide-toggle>\n <dy-slider *ngIf=\"getType(param.type) == 'slider'\" [params]=\"param\" [formGroup]=\"form\"></dy-slider>\n </div>\n <button>Submit</button>\n</form>\n",
styles: [""]
}] }
];
/** @nocollapse */
DyFormComponent.ctorParameters = function () {
return [
{ type: InputChooserService }
];
};
DyFormComponent.propDecorators = {
formData: [{ type: core.Input }],
output: [{ type: core.Output }]
};
return DyFormComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var DyInputComponent = /** @class */ (function () {
function DyInputComponent() {
}
DyInputComponent.decorators = [
{ type: core.Component, args: [{
selector: 'dy-input',
template: "<mat-form-field [formGroup]=\"formGroup\" floatPlaceholder=\"auto\" class=\"input\">\n <input matInput type=\"{{params.type}}\" formControlName=\"{{params.attr}}\" placeholder=\"{{params.alias}}\">\n</mat-form-field>\n",
styles: [""]
}] }
];
/** @nocollapse */
DyInputComponent.ctorParameters = function () { return []; };
DyInputComponent.propDecorators = {
params: [{ type: core.Input }],
formGroup: [{ type: core.Input }]
};
return DyInputComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var DyCheckboxComponent = /** @class */ (function () {
function DyCheckboxComponent() {
}
DyCheckboxComponent.decorators = [
{ type: core.Component, args: [{
selector: 'dy-checkbox',
template: "<div class=\"checkbox\" [formGroup]=\"formGroup\">\n <mat-checkbox formControlName=\"{{params.attr}}\">{{params.alias}}</mat-checkbox>\n</div>\n",
styles: [""]
}] }
];
/** @nocollapse */
DyCheckboxComponent.ctorParameters = function () { return []; };
DyCheckboxComponent.propDecorators = {
params: [{ type: core.Input }],
formGroup: [{ type: core.Input }]
};
return DyCheckboxComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var DySliderComponent = /** @class */ (function () {
function DySliderComponent() {
}
DySliderComponent.decorators = [
{ type: core.Component, args: [{
selector: 'dy-slider',
template: "<div class=\"slider-container\" [formGroup]=\"formGroup\">\n <mat-slider\n class=\"slider\"\n formControlName=\"{{params.attr}}\"\n [disabled]=\"params.settings.disabled\"\n [invert]=\"params.settings.invert\"\n [max]=\"params.settings.max\"\n [min]=\"params.settings.min\"\n [step]=\"params.settings.step\"\n [thumbLabel]=\"params.settings.thumbLabel\"\n [tickInterval]=\"params.settings.tickInterval\"\n [vertical]=\"params.settings.vertical\">\n </mat-slider>\n</div>\n",
styles: [""]
}] }
];
/** @nocollapse */
DySliderComponent.ctorParameters = function () { return []; };
DySliderComponent.propDecorators = {
params: [{ type: core.Input }],
formGroup: [{ type: core.Input }]
};
return DySliderComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var DySlideToggleComponent = /** @class */ (function () {
function DySlideToggleComponent() {
}
DySlideToggleComponent.decorators = [
{ type: core.Component, args: [{
selector: 'dy-slide-toggle',
template: "<div class=\"slide-toggle-container\" [formGroup]=\"formGroup\">\n {{params.attr}}\n {{params.settings.checked}}\n <mat-slide-toggle\n class=\"slide-toggle\"\n formControlName=\"{{params.attr}}\"\n checked=false\n [disabled]=\"params.settings.disabled\">\n {{params.alias}}\n </mat-slide-toggle>\n</div>\n",
styles: [""]
}] }
];
/** @nocollapse */
DySlideToggleComponent.ctorParameters = function () { return []; };
DySlideToggleComponent.propDecorators = {
params: [{ type: core.Input }],
formGroup: [{ type: core.Input }]
};
return DySlideToggleComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var DySelectComponent = /** @class */ (function () {
function DySelectComponent() {
}
DySelectComponent.decorators = [
{ type: core.Component, args: [{
selector: 'dy-select',
template: "<div class=\"select-container\" [formGroup]=\"formGroup\">\n <mat-select placeholder=\"{{params.alias}}\" formControlName=\"{{params.attr}}\">\n <mat-option *ngFor=\"let option of params.options\" [value]=\"option.value\">\n {{option.key}}\n </mat-option>\n </mat-select>\n</div>\n",
styles: [""]
}] }
];
/** @nocollapse */
DySelectComponent.ctorParameters = function () { return []; };
DySelectComponent.propDecorators = {
params: [{ type: core.Input }],
formGroup: [{ type: core.Input }]
};
return DySelectComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var DyRadioComponent = /** @class */ (function () {
function DyRadioComponent() {
}
DyRadioComponent.decorators = [
{ type: core.Component, args: [{
selector: 'dy-radio',
template: "<div class=\"radio-group-container\" [formGroup]=\"formGroup\">\n <mat-radio-group class=\"radio\" formControlName=\"{{params.attr}}\">\n <mat-radio-button\n class=\"radio-button\"\n *ngFor=\"let option of params.options\"\n [value]=\"option.key\">\n {{option.value}}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n",
styles: [""]
}] }
];
/** @nocollapse */
DyRadioComponent.ctorParameters = function () { return []; };
DyRadioComponent.propDecorators = {
params: [{ type: core.Input }],
formGroup: [{ type: core.Input }]
};
return DyRadioComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var DyDatePickerComponent = /** @class */ (function () {
function DyDatePickerComponent() {
}
DyDatePickerComponent.decorators = [
{ type: core.Component, args: [{
selector: 'dy-date-picker',
template: "<mat-form-field>\n <input matInput [matDatepicker]=\"picker\" placeholder=\"{{params.alias}}\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n",
styles: [""]
}] }
];
/** @nocollapse */
DyDatePickerComponent.ctorParameters = function () { return []; };
DyDatePickerComponent.propDecorators = {
params: [{ type: core.Input }],
formGroup: [{ type: core.Input }]
};
return DyDatePickerComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormMaterialModule = /** @class */ (function () {
function FormMaterialModule() {
}
FormMaterialModule.decorators = [
{ type: core.NgModule, args: [{
declarations: [
DyFormComponent,
DyInputComponent,
DyCheckboxComponent,
DySliderComponent,
DySlideToggleComponent,
DySelectComponent,
DyRadioComponent,
DyDatePickerComponent
],
imports: [
common.CommonModule,
forms.FormsModule,
forms.ReactiveFormsModule,
ng2MaterialImport.MaterialImportModule
],
exports: [
DyFormComponent,
DyInputComponent,
DyCheckboxComponent,
DySliderComponent,
DySlideToggleComponent,
DySelectComponent,
DyRadioComponent
],
providers: [
InputChooserService
],
},] }
];
return FormMaterialModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
exports.FormMaterialModule = FormMaterialModule;
exports.ɵd = DyCheckboxComponent;
exports.ɵi = DyDatePickerComponent;
exports.ɵa = DyFormComponent;
exports.ɵc = DyInputComponent;
exports.ɵh = DyRadioComponent;
exports.ɵg = DySelectComponent;
exports.ɵf = DySlideToggleComponent;
exports.ɵe = DySliderComponent;
exports.ɵb = InputChooserService;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=ng2-material-dynamic-form.umd.js.map