0.1.5 • Published 2 years ago

ng-mat-form-builder v0.1.5

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Ng Mat Form Builder

This library was generated with Angular CLI version 15.1.0.

This library help you to create forms fast and clean without no more repeated codes.

In this package we are using angular material and angular reactive forms.

Usage

Install package with this command in root of your project

npm i ng-mat-form-builder

Note that this package use angular material as design system, so you need to install that

ng add @angular/material

In your module file, import the package by this line

import {NgMatFormBuilderModule} from "ng-mat-form-builder";

@NgModule({
  imports: [
    ...
      NgMatFormBuilderModule,
  ]
})

Open your component and put this codes on your typescript file

import {FormGroup} from "@angular/forms";

createSettingReceptor = [
  {
    type: 'text',
    label: 'Fist Name',
    formControlName: 'firstName',
    validators: [Validators.required],
    hint: null,
    options: null,
    required: true,
    isMultiple: null,
  },
];

create(formEvent: FormGroup): void {
  // you will be get the resut of form after submit
}

Next that open your html file in component

<lib-ng-mat-form-builder [items]="createSettingReceptor"
                         (formResult)="create($event)"
                         [saveButtonName]="'submit'">
</lib-ng-mat-form-builder>

Apis

inputs

nametypedescriptionrequired
itemsarray[]list of items in formtrue
formAppearanceMatFormFieldAppearance'fill' or 'outline'true
saveButtonNamestringname of submit button (as default that set in 'save')false
saveButtonColorstringcolor of your submit button (as default that set in 'warn')false
showSaveButtonbooleandefault is truefalse
checkForValidbooleandefault is truefalse
buttonWidthstringbutton size in px or % or anything that you needfalse
patchValueobjectthis would be set your data if you wantfalse
resetFormbooleanthis would be reset form, if you set it truefalse

outputs

nametypedescription
formResultFormGroupresult of form
valueChangesFormFromGroupget value changes of form, also you can set the value into form with patchValue

Structure of items

you should use this object as items type, note that the keys has a default value in this object are not required.

import {HttpHeaders} from "@angular/common/http";

export class FormBuilderModel {
  type: any; // select, number, text, tel, date, autoComplete;
  label: any;
  formControlName: any;
  validators: any; // array or null;
  hint: any;
  options: any; // array or null;
  required = false;
  isTextArea = false;
  isMultiple = false;
  isAutoComplete = false;
  disabled = false;
  readonly = false;
  isFile = false;
  autoCompleteOptions: [] // if you are using autoComplete
  // if you set link in your items, it will be appear the download link.
  link = string; // for file uploader download link
  header = HttpHeaders; // for set headser in download link (Authorozation, contentType, ...)
  downloadLinkTitle = string;
}

export class FormBuilderSelectOption {
  name: any;
  value: any;
}

if you wants to upload file and show download link of that in form builder, you had to set type in 'file' and set isFile 'true', also you have this props for using that:

nametypedescription
linkstringlink for download file
headerHttpHeadersfor set headers
downloadLinkTitlestringthe string that will be appear for user in Html
0.1.5

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.8

2 years ago

0.1.4

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago