0.0.129 • Published 2 years ago

ngx-simple-form v0.0.129

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

NgxPainlessForm

Agonising form creation made easy. Simply create fully responsive and validated forms within minutes. Made with Angular v13 and Bootstrap 5 design.

Installation

  1. Install dependencies
npm install jquery@3.5.x
npm install select2@4.0.x
npm install ng-select2@1.3.1
npm install ngx-simple-form
  1. Add styles to angular.json
{
  "styles": [
    "node_modules/ngx-simple-form/assets/style.scss",
    "node_modules/select2/dist/css/select2.min.css"
  ]
}
  1. Add scripts to angular.json
{
  "scripts": [
    "node_modules/jquery/dist/jquery.js",
    "node_modules/select2/dist/js/select2.min.js"
  ]
}

Usage

Component call in template file

<ngxp-form
  [form]="formInstance"
  [formTitle]="formTitle"
  [fnSubmit]="onSubmitFn">
</ngxp-form>

Important imports

import { Validators } from '@angular/forms';
import { 
  Form, 
  FormControlWrapper, 
  InputType,
  IForm,
  ISelect2MultipleId,
  ISelect2SingleId
} from 'ngx-simple-form';

Example form instance retrieved from a database

let exampleFormValue: IForm = {
  id: 1,
  date: new Date(),
  datetime: new Date(),
  number: 150.50,
  text: 'This is a text example',
  textarea: 'This is a text area example',
  password: 'password-example',
  checkbox: true,
  select2Multiple: { ids: ["1", "2"] } as ISelect2MultipleId,
  select2Single: { id: "1" } as ISelect2SingleId
}

Form generation modeled by the form instance

onSubmitFn = (value: IForm): any => console.log(value)
formTitle: string = 'Example title';
formInstance: Form = FormControlWrapper.builder(exampleFormValue)
  .set({
    key: 'id', 
    inputType: InputType.INPUT_HIDDEN
  })
  .set({
    key: 'datetime', 
    validatorConfigs: [{validator: Validators.required, message: 'Datetime required!', validatorName: 'required'}],
    inputType: InputType.INPUT_DATETIME,
    label: 'Datetime label',
    placeholder: 'Datetime placeholder'
  })
  .set({
    key: 'number', 
    validatorConfigs: [{validator: Validators.required, message: 'Number required!', validatorName: 'required'}],
    inputType: InputType.INPUT_NUMBER,
    label: 'Number label',
    placeholder: 'Number placeholder'
  })
  .set({
    key: 'text', 
    validatorConfigs: [{validator: Validators.required, message: 'Text required!', validatorName: 'required'}],
    inputType: InputType.INPUT_TEXT,
    label: 'Text label',
    placeholder: 'Text placeholder'
  })
  .set({
    key: 'textarea', 
    validatorConfigs: [{validator: Validators.required, message: 'Textarea required!', validatorName: 'required'}],
    inputType: InputType.INPUT_TEXTAREA,
    label: 'Textarea label',
    placeholder: 'Textarea placeholder'
  })
  .set({
    key: 'password', 
    validatorConfigs: [{validator: Validators.required, message: 'Password required!', validatorName: 'required'}],
    inputType: InputType.INPUT_PASSWORD,
    label: 'Password label',
    placeholder: 'Password placeholder'
  })
  .set({
    key: 'date', 
    validatorConfigs: [{validator: Validators.required, message: 'Date required!', validatorName: 'required'}],
    inputType: InputType.INPUT_DATE,
    label: 'Date label',
    placeholder: 'Date placeholder'
  })
  .set({
    key: 'checkbox', 
    validatorConfigs: [{validator: Validators.pattern('true'), message: 'Checkbox required!', validatorName: 'pattern'}],
    inputType: InputType.INPUT_CHECKBOX,
    label: 'Checkbox label',
    placeholder: 'Checkbox placeholder'
  })
  .set({
    key: 'select2Single', 
    validatorConfigs: [{validator: Validators.required, message: 'Select2 single required!', validatorName: 'required'}],
    inputType: InputType.SELECT_SINGLE,
    label: 'Select2 single label',
    placeholder: 'Select2 single placeholder',
    select2Data: [
      {id: "1", text: "Text1"},
      {id: "2", text: "Text2"},
      {id: "3", text: "Text3"}
    ]
  })
  .set({
    key: 'select2Multiple', 
    validatorConfigs: [{validator: Validators.required, message: 'Select2 multiple required!', validatorName: 'required'}],
    inputType: InputType.SELECT_MULTIPLE,
    label: 'Select2 multiple label',
    placeholder: 'Select2 multiple placeholder',
    select2Data: [
      {id: "1", text: "Text1"},
      {id: "2", text: "Text2"},
      {id: "3", text: "Text3"}
    ]
  })
  .getForm()

Form generation result

alt text

0.0.129

2 years ago

0.0.127

2 years ago

0.0.126

2 years ago

0.0.125

2 years ago

0.0.124

2 years ago

0.0.123

2 years ago

0.0.122

2 years ago

0.0.121

2 years ago

0.0.120

2 years ago

0.0.119

2 years ago

0.0.118

2 years ago

0.0.117

2 years ago

0.0.116

2 years ago

0.0.115

2 years ago

0.0.114

2 years ago

0.0.113

2 years ago

0.0.112

2 years ago

0.0.111

2 years ago

0.0.110

2 years ago

0.0.109

2 years ago

0.0.108

2 years ago

0.0.107

2 years ago

0.0.106

2 years ago

0.0.105

2 years ago

0.0.104

2 years ago

0.0.103

2 years ago

0.0.102

2 years ago

0.0.101

2 years ago

0.0.100

2 years ago

0.0.99

2 years ago

0.0.98

2 years ago

0.0.97

2 years ago

0.0.96

2 years ago

0.0.95

2 years ago

0.0.94

2 years ago

0.0.93

2 years ago

0.0.92

2 years ago

0.0.91

2 years ago

0.0.90

2 years ago

0.0.89

2 years ago

0.0.88

2 years ago

0.0.87

2 years ago

0.0.86

2 years ago

0.0.85

2 years ago

0.0.84

2 years ago

0.0.83

2 years ago

0.0.82

2 years ago

0.0.81

2 years ago

0.0.80

2 years ago

0.0.79

2 years ago

0.0.78

2 years ago

0.0.77

2 years ago

0.0.76

2 years ago

0.0.75

2 years ago

0.0.74

2 years ago

0.0.73

2 years ago

0.0.72

2 years ago

0.0.71

2 years ago

0.0.70

2 years ago

0.0.69

2 years ago

0.0.68

2 years ago

0.0.67

2 years ago

0.0.66

2 years ago

0.0.65

2 years ago

0.0.64

2 years ago

0.0.63

2 years ago

0.0.62

2 years ago

0.0.61

2 years ago

0.0.60

2 years ago

0.0.59

2 years ago

0.0.58

2 years ago

0.0.57

2 years ago

0.0.56

2 years ago

0.0.55

2 years ago

0.0.54

2 years ago

0.0.53

2 years ago

0.0.52

2 years ago

0.0.51

2 years ago

0.0.50

2 years ago

0.0.49

2 years ago

0.0.48

2 years ago

0.0.47

2 years ago

0.0.46

2 years ago

0.0.45

2 years ago

0.0.44

2 years ago

0.0.43

2 years ago

0.0.42

2 years ago

0.0.41

2 years ago

0.0.40

2 years ago

0.0.39

2 years ago

0.0.37

2 years ago

0.0.36

2 years ago

0.0.35

2 years ago

0.0.33

2 years ago

0.0.32

2 years ago

0.0.31

2 years ago

0.0.30

2 years ago

0.0.29

2 years ago

0.0.28

2 years ago

0.0.27

2 years ago

0.0.26

2 years ago

0.0.25

2 years ago

0.0.24

2 years ago

0.0.23

2 years ago

0.0.22

2 years ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.18

2 years ago

0.0.17

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

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