{"version":3,"file":"sh-dynamic-form-builder.mjs","sources":["../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/service/form.service.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/validation-error/validation-error.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/validation-error/validation-error.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/checkbox/checkbox.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/checkbox/checkbox.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/service/error.service.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/dropdown/dropdown.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/dropdown/dropdown.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/file/file.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/file/file.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/radio/radio.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/radio/radio.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/input/input.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/input/input.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/date/date.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/date/date.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/range/range.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/range/range.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/password/password.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/password/password.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/basic-field/basic-field.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/basic-field/basic-field.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/divider/divider.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/divider/divider.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/form-array-item/form-array-item.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/form-array-item/form-array-item.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/form-array/form-array.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/form-array/form-array.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/nested-form-group-item/nested-form-group-item.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/nested-form-group-item/nested-form-group-item.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/nested-form-group/nested-form-group.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/form-control/nested-form-group/nested-form-group.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/fields/fields.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/fields/fields.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/dynamic-form/dynamic-form.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/dynamic-form/dynamic-form.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/enum/button-type.enum.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/enum/full-width.enum.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/dynamic-form-builder.component.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/dynamic-form-builder.component.html","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/component/component.module.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/shared/shared.module.ts","../../../projects/sh-dynamic-form-builder/src/lib/dynamic-form-builder/dynamic-form-builder.module.ts","../../../projects/sh-dynamic-form-builder/src/lib/sh-dynamic-form-builder.module.ts","../../../projects/sh-dynamic-form-builder/src/public-api.ts","../../../projects/sh-dynamic-form-builder/src/sh-dynamic-form-builder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { IFieldItem } from '../model/field-item.interface';\nimport { IFormArrayFieldItem } from '../model/form-array-field-item.interface';\nimport { IFormControlConfig } from '../model/form-control-config.interface';\nimport { IFormGroupFieldItem } from '../model/form-group-field-item.interface';\n@Injectable({\n  providedIn: 'root'\n})\nexport class FormService {\n  formControlConfig: IFormControlConfig = {};\n  btnColor = {\n    gray: 'btn-secondary',\n    green: 'btn-success',\n    blue: 'btn-primary',\n    red: 'btn-danger',\n    orange: 'btn-warning',\n    light: 'btn-light',\n    dark: 'btn-dark'\n  }\n  size = {\n    small: 'sm',\n    medium: '',\n    large: 'lg'\n  }\n  constructor() { }\n  setField(field: IFieldItem, formGroup: FormGroup) {\n    const validatorArr: any[] = [];\n    field.validators?.forEach(val => {\n      switch (val.rule) {\n        case 'min':\n          validatorArr.push(\n            Validators.min(+val.value)\n          );\n          break;\n        case 'max':\n          validatorArr.push(\n            Validators.max(+val.value)\n          );\n          break;\n        case 'pattern':\n          validatorArr.push(\n            Validators.pattern(val.value)\n          );\n          break;\n        case 'email':\n          validatorArr.push(\n            Validators.email\n          );\n          break;\n        case 'required':\n          validatorArr.push(\n            Validators.required\n          );\n          break;\n        case 'minlength':\n          validatorArr.push(\n            Validators.minLength(+val.value)\n          );\n          break;\n        case 'maxlength':\n          validatorArr.push(\n            Validators.maxLength(+val.value)\n          );\n          break;\n        case 'requiredTrue':\n          validatorArr.push(\n            Validators.requiredTrue\n          );\n          break;\n        default:\n          break;\n      }\n    });\n    const ctrl: FormControl = new FormControl(field.defaultValue,\n      Validators.compose(validatorArr));\n    if (field.disable) {\n      ctrl.disable();\n    }\n    formGroup.addControl(field.name, ctrl);\n    formGroup.get(field.name)?.updateValueAndValidity();\n  }\n  setFormGroup(field: IFormArrayFieldItem[] | IFormGroupFieldItem[]): FormGroup {\n    const formGroup: FormGroup = new FormGroup({});\n    field?.forEach((val: IFieldItem) => {\n      this.setField(val, formGroup);\n    });\n    return formGroup;\n  }\n  public elementSize(): string {\n    return this.size?.[this.formControlConfig?.elementSize || 'medium'];\n  }\n  public hasSimpleValidationError(): boolean {\n    return this.formControlConfig?.simpleValidationError || false;\n  }\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { IMainFieldItem } from '../../model/main-field-item.interface';\nimport { FormService } from '../../service/form.service';\n\n@Component({\n  selector: 'lib-validation-error',\n  templateUrl: './validation-error.component.html',\n  styleUrls: ['./validation-error.component.css']\n})\nexport class ValidationErrorComponent {\n  @Input() field!: IMainFieldItem;\n  @Input() control!: FormControl;\n  get simple(): boolean {\n    return this.formService.hasSimpleValidationError();\n  }\n  constructor(private formService: FormService) { }\n\n}\n","<ng-container *ngIf=\"field?.type!=='form-array' && !control?.valid && (control?.dirty || control?.touched)\">\n    <ng-container *ngIf=\"!simple else simpleError\">\n        <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n    </ng-container>\n</ng-container>\n<ng-template #error>\n    <div class=\"alert alert-danger my-1 p-2 fadeInDown animated\" [style.width.px]=\"field.width || '100%'\">\n        <ng-container *ngTemplateOutlet=\"message\"></ng-container>\n    </div>\n</ng-template>\n<ng-template #simpleError>\n    <small class=\"text-danger\">\n        <ng-container *ngTemplateOutlet=\"message\"></ng-container>\n    </small>\n</ng-template>\n<ng-template #message>\n    <ng-container *ngFor=\"let err of field.validators\">\n        <ng-container *ngIf=\"control?.getError(err.rule!=='requiredTrue'?err.rule:'required')\">\n            {{err.msg}}\n        </ng-container>\n    </ng-container>\n</ng-template>","import { Component, Input } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\r\n@Component({\r\n  selector: 'lib-checkbox',\r\n  templateUrl: './checkbox.component.html',\r\n  styleUrls: ['./checkbox.component.scss']\r\n})\r\nexport class CheckboxComponent {\r\n  @Input() field!: IMainFieldItem;\r\n  @Input() form!: FormGroup;\r\n  get control(): FormControl {\r\n    return this.form?.controls[this.field?.name] as FormControl;\r\n  }\r\n  constructor() { }\r\n}\r\n","<div>\n    <label class=\"form-check-label\">\n        <input class=\"form-check-input sh-w-control\" [id]=\"field.id \" type=\"checkbox\" [name]=\"field.name\"\n            [formControl]=\"control\" />\n        {{field.label}}\n    </label>\n</div>","import { Injectable } from '@angular/core';\n@Injectable({\n  providedIn: 'root'\n})\nexport class ErrorService {\n  constructor() { }\n  private show(msg: string): void {\n    console.error('SH Form Builder:', msg);\n  }\n  public option(fieldName: string): void {\n    const msg = `${fieldName} doesn't have any option. please set Option property`;\n    this.show(msg);\n  }\n  public formArrayField(fieldName: string): void {\n    const msg = `${fieldName} doesn't have any field. please set value for FormArray Field`;\n    this.show(msg);\n  }\n  public formGroupField(fieldName: string): void {\n    const msg = `${fieldName} doesn't have any field. please set value for FormGroup Field`;\n    this.show(msg);\n  }\n  public fileUpload(fieldName: string): void {\n    const msg = `${fieldName} doesn't have onUpload method. please set it`;\n    this.show(msg);\n  }\n}\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\r\nimport { ErrorService } from '../../../service/error.service';\r\nimport { FormService } from '../../../service/form.service';\r\n@Component({\r\n  selector: 'lib-dropdown',\r\n  templateUrl: './dropdown.component.html',\r\n  styleUrls: ['./dropdown.component.scss']\r\n})\r\nexport class DropdownComponent implements OnInit {\r\n  @Input() field!: IMainFieldItem;\r\n  @Input() form!: FormGroup;\r\n  get control(): FormControl {\r\n    return this.form?.controls[this.field?.name] as FormControl;\r\n  }\r\n  get size(): string {\r\n    return this.formService.elementSize();\r\n  }\r\n  constructor(private errorService: ErrorService,\r\n    private formService: FormService) { }\r\n  ngOnInit(): void {\r\n    if (!this.field?.options?.length) {\r\n      this.errorService.option(this.field?.name);\r\n    }\r\n  }\r\n}\r\n","<select class=\"form-control sh-w-control\" [ngClass]=\"size && 'form-control-'+size\" [id]=\"field.id || ''\"\n    [style.width.px]=\"field.width || '100%'\" [name]=\"field.name\" [formControl]=\"control\">\n    <option *ngFor=\"let opt of field.options\" [value]=\"opt.key\">{{opt.label}}</option>\n</select>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\r\nimport { ErrorService } from '../../../service/error.service';\r\nimport { FormService } from '../../../service/form.service';\r\n@Component({\r\n  selector: 'lib-file',\r\n  templateUrl: './file.component.html',\r\n  styleUrls: ['./file.component.scss']\r\n})\r\nexport class FileComponent implements OnInit {\r\n  @Input() field!: IMainFieldItem;\r\n  @Input() form!: FormGroup;\r\n  get control(): FormControl {\r\n    return this.form?.controls[this.field?.name] as FormControl;\r\n  }\r\n  get size(): string {\r\n    return this.formService.elementSize();\r\n  }\r\n  constructor(private errorService: ErrorService, private formService: FormService) { }\r\n  ngOnInit(): void {\r\n    if (!this.field.onUpload) {\r\n      this.errorService.fileUpload(this.field.name);\r\n    }\r\n  }\r\n}\r\n","<input class=\"form-control sh-w-control\" [ngClass]=\"size && 'form-control-'+size\"  [id]=\"field.id || ''\" type=\"file\" [style.width.px]=\"field?.width || '100%'\" [multiple]=\"field.multipleFile\"\n[name]=\"field.name\" [formControl]=\"control\" (change)=\"field?.onUpload($event.target)\">","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\r\nimport { ErrorService } from '../../../service/error.service';\r\n@Component({\r\n  selector: 'lib-radio',\r\n  templateUrl: './radio.component.html',\r\n  styleUrls: ['./radio.component.scss']\r\n})\r\nexport class RadioComponent implements OnInit {\r\n  @Input() field!: IMainFieldItem;\r\n  @Input() form!: FormGroup;\r\n  get control(): FormControl {\r\n    return this.form?.controls[this.field?.name] as FormControl;\r\n  }\r\n  constructor(private errorService: ErrorService) { }\r\n  ngOnInit(): void {\r\n    if (!this.field?.options?.length) {\r\n      this.errorService.option(this.field?.name);\r\n    }\r\n  }\r\n}\r\n","<div class=\"form-check\" [class.form-check-inline]=\"field.inline\" *ngFor=\"let opt of field?.options\">\n    <label class=\"form-check-label  radio-inline\">\n        <input class=\"form-check-input sh-w-control\" [id]=\"field.id || ''\" type=\"radio\" [name]=\"field.name\"\n            [formControl]=\"control\" [value]=\"opt.key\">\n        {{opt.label}}\n    </label>\n</div>","import { Component, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\r\nimport { FormService } from '../../../service/form.service';\r\n@Component({\r\n  selector: 'lib-input',\r\n  templateUrl: './input.component.html',\r\n  styleUrls: ['./input.component.scss']\r\n})\r\nexport class InputComponent {\r\n  @Input() field!: IMainFieldItem;\r\n  @Input() form!: FormGroup;\r\n  get control(): FormControl {\r\n    return this.form?.controls[this.field?.name] as FormControl;\r\n  }\r\n  get size(): string {\r\n    return this.formService.elementSize();\r\n  }\r\n  constructor(private formService: FormService) { }\r\n}\r\n","<input *ngIf=\"!field?.multiline\" class=\"form-control sh-w-control\" [ngClass]=\"size && 'form-control-'+size\" [id]=\"field.id || ''\"\n    [attr.type]=\"field.type\" [style.width.px]=\"field.width || '100%'\" [name]=\"field.name\"\n    [placeholder]=\"field.placeholder || ''\" [formControl]=\"control\">\n<textarea *ngIf=\"field.multiline\" class=\"form-control sh-w-control\" [ngClass]=\"size && 'form-control-'+size\" [id]=\"field.id || ''\"\n    [style.width.px]=\"field.width || '100%'\" [name]=\"field.name\" [formControl]=\"control\" [rows]=\"field.rowCount || 5\"\n    [placeholder]=\"field.placeholder || ''\"></textarea>","import { Component, Input } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\nimport { FormService } from '../../../service/form.service';\n@Component({\n  selector: 'lib-date',\n  templateUrl: './date.component.html',\n  styleUrls: ['./date.component.scss']\n})\nexport class DateComponent {\n  @Input() field!: IMainFieldItem;\n  @Input() form!: FormGroup;\n  get control(): FormControl {\n    return this.form?.controls[this.field?.name] as FormControl;\n  }\n  get size(): string {\n    return this.formService.elementSize();\n  }\n  constructor(private formService: FormService) { }\n}\n","<input class=\"form-control sh-w-control\" [ngClass]=\"size && 'form-control-'+size\" [id]=\"field.id || ''\" [attr.type]=\"field.type\"\n    [style.width.px]=\"field?.width || '100%'\" [name]=\"field.name\" [formControl]=\"control\">","import { Component, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\r\n@Component({\r\n  selector: 'lib-range',\r\n  templateUrl: './range.component.html',\r\n  styleUrls: ['./range.component.scss']\r\n})\r\nexport class RangeComponent {\r\n  @Input() field!: IMainFieldItem;\r\n  @Input() form!: FormGroup;\r\n  get control(): FormControl {\r\n    return this.form?.controls[this.field?.name] as FormControl;\r\n  }\r\n  constructor() { }\r\n}","<input class=\"form-range  sh-w-control\" [id]=\"field.id || ''\" [attr.type]=\"field.type\" [style.width.px]=\"field.width || '100%'\"\n    [name]=\"field.name\" [min]=\"field.rangeMin\" [max]=\"field.rangeMax\" [step]=\"field.rangeStep\" [formControl]=\"control\">","import { Component, Input } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\r\nimport { FormService } from '../../../service/form.service';\r\n@Component({\r\n  selector: 'lib-password',\r\n  templateUrl: './password.component.html',\r\n  styleUrls: ['./password.component.scss']\r\n})\r\nexport class PasswordComponent {\r\n  @Input() field!: IMainFieldItem;\r\n  @Input() form!: FormGroup;\r\n  show: boolean = false;\r\n  get control(): FormControl {\r\n    return this.form?.controls[this.field?.name] as FormControl;\r\n  }\r\n  get size(): string {\r\n    return this.formService.elementSize();\r\n  }\r\n  constructor(private formService: FormService) { }\r\n  public toggle(): void {\r\n    this.show = !this.show;\r\n  }\r\n}\r\n","<div class=\"input-group flex-nowrap\" [ngClass]=\"size && 'input-group-'+size\">\n    <input *ngIf=\"!field?.multiline\" class=\"form-control sh-w-control\" [id]=\"field?.id || ''\" [type]=\"show?'text':'password'\"\n        autocomplete=\"on\" [style.width.px]=\"field?.width || '100%'\" [name]=\"field?.name\"\n        [placeholder]=\"field?.placeholder || ''\" [formControl]=\"control\">\n    <span class=\"input-group-text\" (click)=\"toggle()\"><i class=\"bi bi-eye-slash\" aria-hidden=\"true\"\n            [ngClass]=\"show?'bi-eye-slash':'bi-eye'\"></i></span>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { IMainFieldItem } from '../../model/main-field-item.interface';\n\n@Component({\n  selector: 'lib-basic-field',\n  templateUrl: './basic-field.component.html',\n  styleUrls: ['./basic-field.component.css']\n})\nexport class BasicFieldComponent implements OnInit {\n  @Input() field!: IMainFieldItem;\n  @Input() form!: FormGroup;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<ng-container [ngSwitch]=\"field?.type\">\n    <lib-input *ngSwitchCase=\"'text'\" [field]=\"field\" [form]=\"form\"></lib-input>\n    <lib-range *ngSwitchCase=\"'range'\" [field]=\"field\" [form]=\"form\"></lib-range>\n    <lib-input *ngSwitchCase=\"'number'\" [field]=\"field\" [form]=\"form\"></lib-input>\n    <lib-password *ngSwitchCase=\"'password'\" [field]=\"field\" [form]=\"form\"></lib-password>\n    <lib-input *ngSwitchCase=\"'color'\" [field]=\"field\" [form]=\"form\"></lib-input>\n    <lib-dropdown *ngSwitchCase=\"'dropdown'\" [field]=\"field\" [form]=\"form\"></lib-dropdown>\n    <lib-radio *ngSwitchCase=\"'radio'\" [field]=\"field\" [form]=\"form\"></lib-radio>\n    <lib-checkbox *ngSwitchCase=\"'checkbox'\" [field]=\"field\" [form]=\"form\"></lib-checkbox>\n    <lib-file *ngSwitchCase=\"'file'\" [field]=\"field\" [form]=\"form\"></lib-file>\n    <lib-date *ngSwitchCase=\"'date'\" [field]=\"field\" [form]=\"form\"></lib-date>\n    <lib-date *ngSwitchCase=\"'datetime-local'\" [field]=\"field\" [form]=\"form\"></lib-date>\n    <lib-date *ngSwitchCase=\"'time'\" [field]=\"field\" [form]=\"form\"></lib-date>\n    <lib-date *ngSwitchCase=\"'week'\" [field]=\"field\" [form]=\"form\"></lib-date>\n    <lib-date *ngSwitchCase=\"'month'\" [field]=\"field\" [form]=\"form\"></lib-date>\n</ng-container>","import { Component, Input, OnInit } from '@angular/core';\nimport { IDivider } from '../../model/divider.interface';\n@Component({\n  selector: 'lib-divider',\n  templateUrl: './divider.component.html',\n  styleUrls: ['./divider.component.scss']\n})\nexport class DividerComponent implements OnInit {\n  @Input() counter: number = 0;\n  @Input() divider!: IDivider;\n  height: number = 0;\n  constructor() { }\n  ngOnInit(): void {\n    this.height = this.divider?.height || 1;\n  }\n}\n","<div class=\"pt-1\">\n    <div *ngIf=\"divider?.suppressOrdinalNumber\" class=\"line mt-2\" [style.height.px]=\"height\"\n        [ngClass]=\"divider?.lineClass||''\">\n    </div>\n    <div *ngIf=\"!divider?.suppressOrdinalNumber\" class=\"d-flex align-items-center\">\n        <div class=\"flex-grow-1 line\" [style.height.px]=\"height\" [ngClass]=\"divider?.lineClass||''\"></div>\n        <span class=\"px-2\" [ngClass]=\"divider?.ordinalNumberClass || 'text-secondary'\">\n            {{counter+1|ordinal}}\n        </span>\n        <div [style.height.px]=\"height\" class=\"flex-grow-1 line\" [ngClass]=\"divider?.lineClass||''\"></div>\n    </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { IFormArrayFieldItem } from '../../../model/form-array-field-item.interface';\nimport { FormService } from '../../../service/form.service';\n@Component({\n  selector: 'lib-form-array-item',\n  templateUrl: './form-array-item.component.html',\n  styleUrls: ['./form-array-item.component.scss']\n})\nexport class FormArrayItemComponent implements OnInit {\n  @Input() form!: any;\n  @Input() field!: IFormArrayFieldItem;\n  get control(): FormControl {\n    return this.form?.controls[this.field?.name] as FormControl;\n  }\n  get required() { return this.field?.validators?.some(x => x.rule == 'required') };\n  get size(): string {\n    return this.formService.elementSize();\n  }\n  constructor(private formService: FormService) { }\n  ngOnInit(): void {\n    this.form = this.form as FormGroup;\n  }\n}\n","<div class=\"form-group row\">\n    <label class=\"form-label\" [attr.for]=\"field?.label\" [ngClass]=\"'col-form-label'+ (size && '-'+size)\">\n        {{field?.label}}\n        <strong class=\"text-danger\" *ngIf=\"required\">*</strong>\n    </label>\n    <div>\n        <lib-basic-field [field]=\"field\" [form]=\"form\"></lib-basic-field>\n        <lib-validation-error [control]=\"control\" [field]=\"field\"></lib-validation-error>\n    </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { FormArray, FormGroup } from '@angular/forms';\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\nimport { ErrorService } from '../../../service/error.service';\nimport { FormService } from '../../../service/form.service';\n@Component({\n  selector: 'lib-form-array',\n  templateUrl: './form-array.component.html',\n  styleUrls: ['./form-array.component.scss']\n})\nexport class FormArrayComponent implements OnInit {\n  @Input() field!: IMainFieldItem;\n  @Input() form!: FormGroup;\n  formGroup: FormGroup = new FormGroup({});\n  formArrayName: string = '';\n  addButtonBgColor: string = 'btn-secondary';\n  get size(): string {\n    return this.formService.elementSize();\n  }\n  get formArray(): FormArray {\n    return this.form.get(this.field?.name) as FormArray;\n  }\n  constructor(\n    private formService: FormService,\n    private errorService: ErrorService,\n  ) { }\n  ngOnInit(): void {\n    this.setAddButtonBgColor();\n    this.formArrayName = this.field?.name;\n  }\n  private setAddButtonBgColor(): void {\n    const bgColor = this.field.formArray?.addButtonBGColor;\n    if (bgColor) {\n      this.addButtonBgColor = this.formService.btnColor[bgColor];\n    }\n  }\n  public removeform(i: number) {\n    this.formArray.removeAt(i);\n  }\n  public addform() {\n    const formArrayField = this.field.formArray?.fields;\n    if (formArrayField?.length) {\n      const form: FormGroup = this.formService.setFormGroup(formArrayField)\n      this.formArray.push(form);\n    } else {\n      this.errorService.formArrayField(this.field.name);\n    }\n  }\n}","<div class=\"form-group row\" [formGroup]=\"form\">\n    <label class=\"form-label sh-form-array-title\" [ngClass]=\"['col-form-label' + (size && '-'+size) , field?.formArray?.titleClass || '']\">\n        {{field?.label}}\n    </label>\n    <div class=\"col-12\">\n        <div [formArrayName]=\"formArrayName\">\n            <div *ngFor=\"let control of formArray.controls; let i=index\">\n                <div [formGroupName]=\"i\">\n                    <lib-divider *ngIf=\"!field?.formArray?.divider?.suppress\" [divider]=\"field?.formArray?.divider!\"\n                        [counter]=\"i\">\n                    </lib-divider>\n                    <div class=\"text-end del-btn\">\n                        <i class=\"bi bi-x-lg text-danger\" aria-hidden=\"true\" (click)=\"removeform(i)\"></i>\n                    </div>\n                    <div class=\"form-group row\">\n                        <ng-container *ngFor=\"let field of field.formArray?.fields\">\n                            <div class=\"\" [ngSwitch]=\"field?.type\">\n                                <lib-form-array-item [field]=\"field\" [form]=\"control\"></lib-form-array-item>\n                            </div>\n                        </ng-container>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n<button *ngIf=\"field.formArray?.simpleAddButton\" class=\"btn mt-2\" [ngClass]=\"[addButtonBgColor,(size && 'btn-'+size)]\"\n    type=\"button\" (mousedown)=\"addform()\">\n    <i class=\"bi bi-plus\"></i>\n</button>\n<button *ngIf=\"!field.formArray?.simpleAddButton\" class=\"btn mt-2\" type=\"button\"\n    [ngClass]=\"[addButtonBgColor ,(size && 'btn-'+size)]\" (mousedown)=\"addform()\">\n    Add\n    <span *ngIf=\"formArray?.controls?.length\"> more</span>\n    {{field?.label}}\n    <i class=\"bi bi-plus\"></i>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { IFormGroupFieldItem } from '../../../model/form-group-field-item.interface';\nimport { FormService } from '../../../service/form.service';\n\n@Component({\n  selector: 'lib-nested-form-group-item',\n  templateUrl: './nested-form-group-item.component.html',\n  styleUrls: ['./nested-form-group-item.component.css']\n})\nexport class NestedFormGroupItemComponent {\n  @Input() field!: IFormGroupFieldItem;\n  @Input() form!: FormGroup;\n  get control(): FormControl {\n    return this.form?.controls[this.field?.name] as FormControl;\n  }\n  get required() { return this.field?.validators?.some(x => x.rule == 'required') };\n  get size(): string {\n    return this.formService.elementSize();\n  }\n  constructor(private formService: FormService) { }\n}\n","<div class=\"form-group row\" [formGroup]=\"form\">\n    <label class=\"form-label\" [ngClass]=\"'col-form-label'+ (size && '-'+size)\">\n        {{field?.label}}\n        <strong class=\"text-danger\" *ngIf=\"required\">*</strong>\n    </label>\n    <lib-basic-field [field]=\"field\" [form]=\"form\"></lib-basic-field>\n    <lib-validation-error [control]=\"control\" [field]=\"field\"></lib-validation-error>\n</div>","import { Component, Input } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { IMainFieldItem } from '../../../model/main-field-item.interface';\nimport { FormService } from '../../../service/form.service';\n\n@Component({\n  selector: 'lib-nested-form-group',\n  templateUrl: './nested-form-group.component.html',\n  styleUrls: ['./nested-form-group.component.css']\n})\nexport class NestedFormGroupComponent {\n  @Input() field!: IMainFieldItem;\n  @Input() form!: FormGroup;\n  @Input() control!: FormControl;\n  get nestedFormGroup(): FormGroup {\n    return this.form?.controls[this.field?.name] as FormGroup;\n  }\n  get size(): string {\n    return this.formService.elementSize();\n  }\n  constructor(private formService: FormService) {\n\n  }\n}\n","<div class=\"form-group row\" [formGroup]=\"form\">\n    <div [formGroupName]=\"field.name\">\n        <ng-container *ngIf=\"!field.formGroup?.showInCard else card\">\n            <label class=\"form-label sh-form-group-title\"\n                [ngClass]=\"['col-form-label' + (size && '-'+size) , field?.formGroup?.titleClass || '']\">\n                {{field?.label}}\n            </label>\n            <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n        </ng-container>\n    </div>\n</div>\n<ng-template #card>\n    <div class=\"card mt-2\">\n        <div class=\"card-header\">\n            <label class=\"form-label sh-form-group-title py-0\"\n                [ngClass]=\"['col-form-label' + (size && '-'+size) , field?.formGroup?.titleClass || '']\">\n                {{field?.label}}\n            </label>\n        </div>\n        <div class=\"card-body\">\n            <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n        </div>\n    </div>\n</ng-template>\n<ng-template #content>\n    <ng-container *ngFor=\"let fieldItem of field.formGroup?.fields\">\n        <div class=\"col-12\">\n            <lib-nested-form-group-item [field]=\"fieldItem\" [form]=\"nestedFormGroup\"></lib-nested-form-group-item>\n        </div>\n    </ng-container>\n</ng-template>","import { Component, Input } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { IMainFieldItem } from '../shared/model/main-field-item.interface';\nimport { FormService } from '../shared/service/form.service';\n@Component({\n  selector: 'lib-fields',\n  templateUrl: './fields.component.html',\n  styleUrls: ['./fields.component.scss']\n})\nexport class FieldsComponent {\n  @Input() field!: IMainFieldItem;\n  @Input() form!: FormGroup;\n  get control(): FormControl {\n    return this.form?.controls[this.field?.name] as FormControl;\n  }\n  get required() { return this.field?.validators?.some(x => x.rule == 'required') };\n  get size(): string {\n    return this.formService.elementSize();\n  }\n  constructor(private formService: FormService) { }\n}\n","<div class=\"form-group row\">\n    <label *ngIf=\"field?.type!=='form-array' && field?.type!=='form-group'\" class=\"form-label\" [ngClass]=\"'col-form-label'+ (size && '-'+size)\"\n        [attr.for]=\"field?.label\">\n        {{field?.label}}\n        <strong class=\"text-danger\" *ngIf=\"required\">*</strong>\n    </label>\n    <div>\n        <lib-form-array *ngIf=\"field?.type=='form-array'\" [field]=\"field\" [form]=\"form\"></lib-form-array>\n        <lib-nested-form-group *ngIf=\"field?.type=='form-group' && field?.formGroup\" [control]=\"control\" [field]=\"field\" [form]=\"form\"></lib-nested-form-group>\n        <ng-container *ngIf=\"field?.type!='form-array' && field?.type!='form-group'\">\n            <lib-basic-field [field]=\"field\" [form]=\"form\"></lib-basic-field>\n            <lib-validation-error [control]=\"control\" [field]=\"field\"></lib-validation-error>\n        </ng-container>\n    </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { IMainFieldItem } from '../shared/model/main-field-item.interface';\n@Component({\n  selector: 'lib-dynamic-form',\n  templateUrl: './dynamic-form.component.html',\n  styleUrls: ['./dynamic-form.component.scss']\n})\nexport class DynamicFormComponent implements OnInit {\n  @Input() fields: IMainFieldItem[] = [];\n  @Input() formGroup!: FormGroup ;\n  constructor() { }\n  ngOnInit(): void {\n  }\n}\n","<div *ngFor=\"let field of fields\">\n    <lib-fields [field]=\"field\" [form]=\"formGroup\"></lib-fields>\n</div>","export enum ButtonType {\n    Submit = 'submit',\n    Cancel = 'cancel',\n    Reset = 'reset',\n}\n","export enum FullWidth {\n    None = 'none',\n    All = 'all',\n    OnlyMobile = 'only-mobile'\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormArray } from '@angular/forms';\r\nimport { ButtonType } from './shared/enum/button-type.enum';\r\nimport { FullWidth } from './shared/enum/full-width.enum';\r\nimport { IButton } from './shared/model/button.interface';\r\nimport { IFormConfig } from './shared/model/form-config.interface';\r\nimport { IMainFieldItem } from './shared/model/main-field-item.interface';\r\nimport { ErrorService } from './shared/service/error.service';\r\nimport { FormService } from './shared/service/form.service';\r\n@Component({\r\n  selector: 'sh-dynamic-form-builder',\r\n  templateUrl: './dynamic-form-builder.component.html',\r\n  styleUrls: ['./dynamic-form-builder.component.scss']\r\n})\r\nexport class DynamicFormBuilderComponent implements OnInit {\r\n  @Output() submit: EventEmitter<FormGroup> = new EventEmitter();\r\n  @Output() cancel: EventEmitter<boolean> = new EventEmitter();\r\n  @Input() config!: IFormConfig;\r\n  @Input() formValue: any = {};\r\n  @Input() isSubmit: boolean = false;\r\n  fullWidthBtn: string = 'none';\r\n  get fullWidth() {\r\n    return FullWidth;\r\n  }\r\n  get btnColor() {\r\n    return this.formService.btnColor;\r\n  }\r\n  get buttonType() {\r\n    return ButtonType;\r\n  }\r\n  componentName = 'formBuilder'\r\n  public formGroup!: FormGroup;\r\n  url: string | ArrayBuffer | null = null;\r\n  buttonsAlign: string = '';\r\n  size: string = '';\r\n  constructor(private formBuilder: FormBuilder,\r\n    private changeDetectorRef: ChangeDetectorRef,\r\n    private formService: FormService,\r\n    private errorService: ErrorService\r\n  ) {\r\n  }\r\n  ngOnInit() {\r\n    this.init();\r\n  }\r\n  private init(): void {\r\n    if (!this.config) {\r\n      return;\r\n    }\r\n    this.formService.formControlConfig = this.config.formControlConfig || {};\r\n    this.size = this.formService.elementSize() ? 'btn-' + this.formService.elementSize() : '';\r\n    if (this.config?.buttonSetting?.fullWidthButtons) {\r\n      this.fullWidthBtn = (this.config.buttonSetting.fullWidthButtons) || 'none';\r\n    }\r\n    this.setBtnAlighn();\r\n    this.setupForm();\r\n  }\r\n  private setupForm(): void {\r\n    this.formGroup = new FormGroup({});\r\n    this.config?.fields.forEach((x: IMainFieldItem, index: number) => {\r\n      switch (x.type) {\r\n        case 'form-array':\r\n          this.setArray(x);\r\n          break;\r\n        case 'form-group':\r\n          this.setNestedFormGroup(x);\r\n          break;\r\n        default:\r\n          this.formService.setField(x, this.formGroup);\r\n          break;\r\n      }\r\n    })\r\n    this.formGroup.patchValue(this.formValue);\r\n  }\r\n  private setBtnAlighn(): void {\r\n    switch (this.config?.buttonSetting?.buttonsAlign) {\r\n      case 'center':\r\n        this.buttonsAlign = 'justify-content-center';\r\n        break;\r\n      case 'right':\r\n        this.buttonsAlign = 'justify-content-end';\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  }\r\n  private setNestedFormGroup(field: IMainFieldItem) {\r\n    if (!field.formGroup?.fields) {\r\n      this.errorService.formGroupField(field.name);\r\n      return\r\n    }\r\n    const formGroup = this.formService.setFormGroup(field.formGroup?.fields);\r\n    this.formGroup.addControl(field.name, formGroup);\r\n  }\r\n  setArray(field: IMainFieldItem) {\r\n    this.formGroup.addControl(field.name, this.formBuilder.array([]));\r\n    const fieldArray: any[] = this.formValue[field.name.toString()];\r\n    if (fieldArray?.length) {\r\n      fieldArray.forEach(val => {\r\n        this.addform(field);\r\n      })\r\n    }\r\n  }\r\n  public addform(field: IMainFieldItem) {\r\n    const formArray = this.formGroup?.get(field?.name) as FormArray;\r\n    const formArrayField = field.formArray?.fields;\r\n    if (formArrayField?.length) {\r\n      const form: FormGroup = this.formService.setFormGroup(formArrayField)\r\n      formArray.push(form);\r\n    } else {\r\n      this.errorService.formArrayField(field.name);\r\n    }\r\n  }\r\n  public action(btn: IButton): void {\r\n    switch (btn.type) {\r\n      case 'submit':\r\n        this.submitAction();\r\n        break;\r\n      case 'reset':\r\n        this.resetAction();\r\n        break;\r\n      case 'cancel':\r\n        this.cancelAction();\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  }\r\n  public submitAction(): void {\r\n    if (!this.formGroup.valid) {\r\n      this.formGroup.markAllAsTouched();\r\n      return;\r\n    }\r\n    this.submit.emit(this.formGroup);\r\n  }\r\n  public resetAction(): void {\r\n    this.formGroup.reset();\r\n    this.formGroup.patchValue(this.formValue);\r\n  }\r\n  public cancelAction(): void {\r\n    this.cancel.emit(true);\r\n  }\r\n  ngDistroy() {\r\n  }\r\n  ngAfterContentInit(): void {\r\n    this.changeDetectorRef.detectChanges();\r\n  }\r\n}\r\n","<div class=\"container-fluid\" *ngIf=\"config\">\r\n    <div class=\"row\">\r\n        <div class=\"col\">\r\n            <h1 *ngIf=\"config?.title\" [ngClass]=\"config?.titleClass || ''\">{{config?.title}}</h1>\r\n            <form [formGroup]=\"formGroup\" class=\"form\">\r\n                <lib-dynamic-form *ngIf=\"config?.fields\" [formGroup]=\"formGroup\" [fields]=\"config.fields\">\r\n                </lib-dynamic-form>\r\n            </form>\r\n        </div>\r\n    </div>\r\n    <div class=\"row\">\r\n        <div class=\"col my-2\">\r\n            <div class=\"d-none d-md-block\">\r\n                <div *ngIf=\"fullWidthBtn==fullWidth.None || fullWidthBtn==fullWidth.OnlyMobile\" class=\"d-flex flex-row\"\r\n                    [ngClass]=\"buttonsAlign\">\r\n                    <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\r\n                </div>\r\n                <div *ngIf=\"fullWidthBtn==fullWidth.All\" class=\"d-grid gap-2\">\r\n                    <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\r\n                </div>\r\n            </div>\r\n            <div class=\"d-block d-md-none\">\r\n                <div *ngIf=\"fullWidthBtn!=fullWidth.None else inline\" class=\"d-grid gap-2\">\r\n                    <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\r\n                </div>\r\n                <ng-template #inline>\r\n                    <div class=\"d-flex flex-row\" [ngClass]=\"buttonsAlign\">\r\n                        <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\r\n                    </div>\r\n                </ng-template>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n<ng-template #buttons>\r\n    <ng-container *ngFor=\"let btn of config?.buttonSetting?.buttons\">\r\n        <button class=\"btn btn-block margin\" [ngClass]=\"[btnColor[btn.bgColor] ,size ]\"\r\n            [disabled]=\"isSubmit && btn.type==buttonType.Submit\" type=\"button\" (mousedown)=\"action(btn)\">\r\n            {{btn.caption}}\r\n        </button>\r\n    </ng-container>\r\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DividerComponent } from './divider/divider.component';\nimport { OrdinalNumbersModule } from 'sh-ordinal-numbers';\nimport { ValidationErrorComponent } from './validation-error/validation-error.component';\nimport { BasicFieldComponent } from './basic-field/basic-field.component';\nimport { CheckboxComponent } from './form-control/checkbox/checkbox.component';\nimport { DateComponent } from './form-control/date/date.component';\nimport { DropdownComponent } from './form-control/dropdown/dropdown.component';\nimport { FileComponent } from './form-control/file/file.component';\nimport { FormArrayItemComponent } from './form-control/form-array-item/form-array-item.component';\nimport { FormArrayComponent } from './form-control/form-array/form-array.component';\nimport { InputComponent } from './form-control/input/input.component';\nimport { PasswordComponent } from './form-control/password/password.component';\nimport { RadioComponent } from './form-control/radio/radio.component';\nimport { RangeComponent } from './form-control/range/range.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NestedFormGroupComponent } from './form-control/nested-form-group/nested-form-group.component';\nimport { NestedFormGroupItemComponent } from './form-control/nested-form-group-item/nested-form-group-item.component';\nconst DECLARATIONS = [\n  DividerComponent,\n  ValidationErrorComponent,\n  BasicFieldComponent,\n  CheckboxComponent,\n  DropdownComponent,\n  FileComponent,\n  RadioComponent,\n  InputComponent,\n  DateComponent,\n  RangeComponent,\n  PasswordComponent,\n  FormArrayComponent,\n  FormArrayItemComponent,\n  NestedFormGroupComponent\n]\n@NgModule({\n  declarations: [DECLARATIONS, NestedFormGroupItemComponent],\n  imports: [\n    CommonModule,\n    OrdinalNumbersModule,\n    FormsModule,\n    ReactiveFormsModule\n  ],\n  exports: [DECLARATIONS]\n})\nexport class ComponentModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ComponentModule } from './component/component.module';\n\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule,\n    ComponentModule\n  ],\n  exports: [ComponentModule]\n})\nexport class SharedModule { }\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldsComponent } from './fields/fields.component';\r\nimport { DynamicFormComponent } from './dynamic-form/dynamic-form.component';\r\nimport { DynamicFormBuilderComponent } from './dynamic-form-builder.component';\r\nimport { SharedModule } from './shared/shared.module';\r\n@NgModule({\r\n  declarations: [\r\n    DynamicFormBuilderComponent,\r\n    FieldsComponent,\r\n    DynamicFormComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    FormsModule,\r\n    SharedModule\r\n  ],\r\n  exports:[\r\n    DynamicFormBuilderComponent\r\n  ]\r\n})\r\nexport class DynamicFormBuilderModule { }\r\n","import { NgModule } from '@angular/core';\nimport { DynamicFormBuilderModule } from './dynamic-form-builder';\n@NgModule({\n  declarations: [\n  ],\n  imports: [\n  ],\n  exports: [\n    DynamicFormBuilderModule\n  ]\n})\nexport class ShDynamicFormBuilderModule { }\n","/*\n * Public API Surface of sh-dynamic-form-builder\n */\n\nexport * from './lib/sh-dynamic-form-builder.module';\nexport * from './lib/dynamic-form-builder'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FormService","i1","i1.ErrorService","i2.FormService","i3","i4","i2.CheckboxComponent","i3.DropdownComponent","i4.FileComponent","i5.RadioComponent","i6.InputComponent","i7.DateComponent","i8.RangeComponent","i9.PasswordComponent","i2","i3.ValidationErrorComponent","i4.BasicFieldComponent","i2.ErrorService","i5.DividerComponent","i6.FormArrayItemComponent","i4.ValidationErrorComponent","i5.BasicFieldComponent","i4.NestedFormGroupItemComponent","i5.FormArrayComponent","i6.NestedFormGroupComponent","i2.FieldsComponent","i3.ErrorService","i5.DynamicFormComponent"],"mappings":"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"}