/ng2-material-dynamic-form

A simple dynamic form module using material design for angular 2

Primary LanguageTypeScriptMIT LicenseMIT

ng2-material-dynamic-form

A simple dynamic form module using material design for angular 2

Version: 1.0.0 Everything should work out of the box.

Instalation

npm i --save ng2-material-dynamic-form

Adding SCSS dependency for material

There are two ways of doing this: Add node_modules/ng2-material-import/theme/default.scss to the styles path in .angular-cli.json.

...

  "styles": [
    "styles.css",
    "../node_modules/ng2-material-import/theme/default.scss"
  ],

...

Or:

Create a folder called themes. Inside that folder add a .SCSS file. inside that file add these lines:

@import '~@angular/material/theming';
@include mat-core();
$default-app-primary: mat-palette($mat-indigo);
$default-app-accent:  mat-palette($mat-pink, A200, A100, A400);
$default-app-warn:    mat-palette($mat-red);
$default-app-theme: mat-light-theme($default-app-primary, $default-app-accent, $default-app-warn);
@include angular-material-theme($default-app-theme);

After that add that file to the angular-cli styles section

...

  "styles": [
    "styles.css",
    "theme/default.scss"
  ],

...

Usage

<ng2-material-form [formData]="formData" (output)="dataOutput($event)"></ng2-material-form>

public formData = [
  //INPUT EXAMPLE
  { type: 'input', attr: 'inputTextExample', alias: 'Placholder', required: true },

  //CHECKBOX EXAMPLE
  { type: 'checkbox', attr: 'checkboxExample', alias: 'Placholder', required: true },

  //SLIDER EXAMPLE
  { type: 'slider', attr: 'sliderExample', settings: { disabled: false, invert: false, max: 10, min: 1, step: 1, thumbLabel: true, tickInterval: 10, vertical: false }, required: true },

  //SLIDE-TOGGLE EXAMPLE
  { type: 'slide-toggle', attr: 'slideToggleExample', settings: { disabled: false, checked: false }, alias: 'Placholder', required: true },

  //SELECT EXAMPLE
  { type: 'select', attr: 'selectExample', alias: 'Placeholder', options: [
    {value: '1', key: 'Label 1'},
    {value: '2', key: 'Label 2'},
    {value: '3', key: 'Label 3'},
  ], required: true },

  //RADIO EXAMPLE
  { type: 'radio', attr: 'radioExample', alias: 'Placeholder', options: [
    {value: '1', key: 'Label 1'},
    {value: '2', key: 'Label 2'},
    {value: '3', key: 'Label 3'},
  ], required: true},
]

Output

dataOutput(e) {
  console.log(e);
}