npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ng-mat-form-builder

v0.1.5

Published

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.1.0.

Downloads

17

Readme

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

| name | type | description | required | |-----------------|------------------------|-------------------------------------------------------------|----------| | items | array[] | list of items in form | true | | formAppearance | MatFormFieldAppearance | 'fill' or 'outline' | true | | saveButtonName | string | name of submit button (as default that set in 'save') | false | | saveButtonColor | string | color of your submit button (as default that set in 'warn') | false | | showSaveButton | boolean | default is true | false | | checkForValid | boolean | default is true | false | | buttonWidth | string | button size in px or % or anything that you need | false | | patchValue | object | this would be set your data if you want | false | | resetForm | boolean | this would be reset form, if you set it true | false |

outputs

| name | type | description | |------------------|-----------|---------------------------------------------------------------------------------| | formResult | FormGroup | result of form | | valueChangesForm | FromGroup | get 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:

| name | type | description | |-------------------|-------------|-------------------------------------------------| | link | string | link for download file | | header | HttpHeaders | for set headers | | downloadLinkTitle | string | the string that will be appear for user in Html |