0.0.129 • Published 4 years ago

ngx-simple-form v0.0.129

Weekly downloads
-
License
-
Repository
-
Last release
4 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

4 years ago

0.0.127

4 years ago

0.0.126

4 years ago

0.0.125

4 years ago

0.0.124

4 years ago

0.0.123

4 years ago

0.0.122

4 years ago

0.0.121

4 years ago

0.0.120

4 years ago

0.0.119

4 years ago

0.0.118

4 years ago

0.0.117

4 years ago

0.0.116

4 years ago

0.0.115

4 years ago

0.0.114

4 years ago

0.0.113

4 years ago

0.0.112

4 years ago

0.0.111

4 years ago

0.0.110

4 years ago

0.0.109

4 years ago

0.0.108

4 years ago

0.0.107

4 years ago

0.0.106

4 years ago

0.0.105

4 years ago

0.0.104

4 years ago

0.0.103

4 years ago

0.0.102

4 years ago

0.0.101

4 years ago

0.0.100

4 years ago

0.0.99

4 years ago

0.0.98

4 years ago

0.0.97

4 years ago

0.0.96

4 years ago

0.0.95

4 years ago

0.0.94

4 years ago

0.0.93

4 years ago

0.0.92

4 years ago

0.0.91

4 years ago

0.0.90

4 years ago

0.0.89

4 years ago

0.0.88

4 years ago

0.0.87

4 years ago

0.0.86

4 years ago

0.0.85

4 years ago

0.0.84

4 years ago

0.0.83

4 years ago

0.0.82

4 years ago

0.0.81

4 years ago

0.0.80

4 years ago

0.0.79

4 years ago

0.0.78

4 years ago

0.0.77

4 years ago

0.0.76

4 years ago

0.0.75

4 years ago

0.0.74

4 years ago

0.0.73

4 years ago

0.0.72

4 years ago

0.0.71

4 years ago

0.0.70

4 years ago

0.0.69

4 years ago

0.0.68

4 years ago

0.0.67

4 years ago

0.0.66

4 years ago

0.0.65

4 years ago

0.0.64

4 years ago

0.0.63

4 years ago

0.0.62

4 years ago

0.0.61

4 years ago

0.0.60

4 years ago

0.0.59

4 years ago

0.0.58

4 years ago

0.0.57

4 years ago

0.0.56

4 years ago

0.0.55

4 years ago

0.0.54

4 years ago

0.0.53

4 years ago

0.0.52

4 years ago

0.0.51

4 years ago

0.0.50

4 years ago

0.0.49

4 years ago

0.0.48

4 years ago

0.0.47

4 years ago

0.0.46

4 years ago

0.0.45

4 years ago

0.0.44

4 years ago

0.0.43

4 years ago

0.0.42

4 years ago

0.0.41

4 years ago

0.0.40

4 years ago

0.0.39

4 years ago

0.0.37

4 years ago

0.0.36

4 years ago

0.0.35

4 years ago

0.0.33

4 years ago

0.0.32

4 years ago

0.0.31

4 years ago

0.0.30

4 years ago

0.0.29

4 years ago

0.0.28

4 years ago

0.0.27

4 years ago

0.0.26

4 years ago

0.0.25

4 years ago

0.0.24

4 years ago

0.0.23

4 years ago

0.0.22

4 years ago

0.0.21

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.18

4 years ago

0.0.17

4 years ago

0.0.16

4 years ago

0.0.15

4 years ago

0.0.14

4 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago