ngx-iso-form 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +116 -0
- package/esm2022/lib/Models/Control.mjs +2 -0
- package/esm2022/lib/Models/IsoForm.mjs +8 -0
- package/esm2022/lib/Models/Schema.mjs +2 -0
- package/esm2022/lib/components/controls/iso-base-control.component.mjs +25 -0
- package/esm2022/lib/components/controls/iso-mat-checkbox.component.mjs +17 -0
- package/esm2022/lib/components/controls/iso-mat-currency.component.mjs +18 -0
- package/esm2022/lib/components/controls/iso-mat-date.component.mjs +19 -0
- package/esm2022/lib/components/controls/iso-mat-datetime.component.mjs +19 -0
- package/esm2022/lib/components/controls/iso-mat-input.component.mjs +18 -0
- package/esm2022/lib/components/controls/iso-mat-select.component.mjs +19 -0
- package/esm2022/lib/components/controls/iso-mat-textarea.component.mjs +18 -0
- package/esm2022/lib/components/index.mjs +10 -0
- package/esm2022/lib/components/iso-control/iso-control.component.mjs +72 -0
- package/esm2022/lib/ngx-iso-form.component.mjs +173 -0
- package/esm2022/lib/ngx-iso-form.module.mjs +115 -0
- package/esm2022/lib/ngx-iso-form.service.mjs +228 -0
- package/esm2022/lib/shared/components/dynamic/ngx-dynamic.component.mjs +33 -0
- package/esm2022/lib/shared/directives/component-content.directive.mjs +16 -0
- package/esm2022/lib/shared/models/component.model.mjs +7 -0
- package/esm2022/lib/shared/pipe/error.pipe.mjs +33 -0
- package/esm2022/lib/shared/pipe/general.pipe.mjs +33 -0
- package/esm2022/lib/shared/pipe/translate.pipe.mjs +33 -0
- package/esm2022/lib/shared/services/component.service.mjs +15 -0
- package/esm2022/lib/shared/services/control.service.mjs +35 -0
- package/esm2022/lib/shared/services/index.mjs +3 -0
- package/esm2022/ngx-iso-form.mjs +5 -0
- package/esm2022/public-api.mjs +9 -0
- package/fesm2022/ngx-iso-form.mjs +859 -0
- package/fesm2022/ngx-iso-form.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/Models/Control.d.ts +20 -0
- package/lib/Models/IsoForm.d.ts +5 -0
- package/lib/Models/Schema.d.ts +28 -0
- package/lib/components/controls/iso-base-control.component.d.ts +10 -0
- package/lib/components/controls/iso-mat-checkbox.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-currency.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-date.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-datetime.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-input.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-select.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-textarea.component.d.ts +6 -0
- package/lib/components/index.d.ts +9 -0
- package/lib/components/iso-control/iso-control.component.d.ts +21 -0
- package/lib/ngx-iso-form.component.d.ts +34 -0
- package/lib/ngx-iso-form.module.d.ts +33 -0
- package/lib/ngx-iso-form.service.d.ts +17 -0
- package/lib/shared/components/dynamic/ngx-dynamic.component.d.ts +13 -0
- package/lib/shared/directives/component-content.directive.d.ts +8 -0
- package/lib/shared/models/component.model.d.ts +6 -0
- package/lib/shared/pipe/error.pipe.d.ts +10 -0
- package/lib/shared/pipe/general.pipe.d.ts +10 -0
- package/lib/shared/pipe/translate.pipe.d.ts +10 -0
- package/lib/shared/services/component.service.d.ts +5 -0
- package/lib/shared/services/control.service.d.ts +6 -0
- package/lib/shared/services/index.d.ts +2 -0
- package/lib/styles/index.scss +33 -0
- package/lib/styles/ngx-iso-form.component.scss +10 -0
- package/package.json +47 -0
- package/public-api.d.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-iso-form.mjs","sources":["../../../projects/ngx-iso-form/src/lib/components/controls/iso-base-control.component.ts","../../../projects/ngx-iso-form/src/lib/shared/pipe/translate.pipe.ts","../../../projects/ngx-iso-form/src/lib/shared/pipe/error.pipe.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-date.component.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-date.component.html","../../../projects/ngx-iso-form/src/lib/shared/pipe/general.pipe.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-datetime.component.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-datetime.component.html","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-input.component.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-input.component.html","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-checkbox.component.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-checkbox.component.html","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-textarea.component.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-textarea.component.html","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-select.component.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-select.component.html","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-currency.component.ts","../../../projects/ngx-iso-form/src/lib/components/controls/iso-mat-currency.component.html","../../../projects/ngx-iso-form/src/lib/shared/models/component.model.ts","../../../projects/ngx-iso-form/src/lib/shared/services/control.service.ts","../../../projects/ngx-iso-form/src/lib/shared/directives/component-content.directive.ts","../../../projects/ngx-iso-form/src/lib/shared/components/dynamic/ngx-dynamic.component.ts","../../../projects/ngx-iso-form/src/lib/components/iso-control/iso-control.component.ts","../../../projects/ngx-iso-form/src/lib/components/iso-control/iso-control.component.html","../../../projects/ngx-iso-form/src/lib/ngx-iso-form.service.ts","../../../projects/ngx-iso-form/src/lib/ngx-iso-form.component.ts","../../../projects/ngx-iso-form/src/lib/ngx-iso-form.component.html","../../../projects/ngx-iso-form/src/lib/shared/services/component.service.ts","../../../projects/ngx-iso-form/src/lib/ngx-iso-form.module.ts","../../../projects/ngx-iso-form/src/lib/Models/IsoForm.ts","../../../projects/ngx-iso-form/src/public-api.ts","../../../projects/ngx-iso-form/src/ngx-iso-form.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { IControlModel } from '../../Models/Control';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'iso-base',\r\n template:'',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IsoBaseControlComponent {\r\n\r\n @Input() control: IControlModel;\r\n @Input() formControl: FormControl;\r\n\r\n getKeys(errors: any)\r\n {\r\n if(errors)\r\n {\r\n return Object.keys(errors);\r\n }\r\n return [];\r\n }\r\n}","import { Inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'trans',\r\n pure: false\r\n})\r\nexport class IsoTranslatePipe implements PipeTransform {\r\n\r\n constructor(private translateService: TranslateService) {\r\n\r\n }\r\n\r\n transform(value: string, id: string, defaultValue: string): string {\r\n let key = `iso.${value}`;\r\n let tran = this.translateService.instant(key);\r\n if (tran === key) {\r\n key = `iso.${id.toLocaleLowerCase()}`;\r\n tran = this.translateService.instant(key);\r\n if (tran === key) {\r\n return defaultValue;\r\n }\r\n }\r\n if(tran.label)\r\n {\r\n return tran.label;\r\n }\r\n return defaultValue;\r\n }\r\n\r\n}","import { Inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'error',\r\n pure: false\r\n})\r\nexport class IsoErrorPipe implements PipeTransform {\r\n\r\n constructor(private translateService: TranslateService) {\r\n\r\n }\r\n\r\n transform(value: string, id: string,errorKey:string, defaultValue: string): string {\r\n let key = `iso.${value}`;\r\n let tran = this.translateService.instant(key);\r\n if (tran === key) {\r\n key = `iso.${id.toLocaleLowerCase()}`;\r\n tran = this.translateService.instant(key);\r\n if (tran === key) {\r\n return defaultValue;\r\n }\r\n }\r\n if(tran.error && tran.error[errorKey])\r\n {\r\n return tran.error[errorKey];\r\n }\r\n return defaultValue;\r\n }\r\n\r\n}","import { Component, Input } from '@angular/core';\r\nimport { IControlModel } from '../../Models/Control';\r\nimport { FormControl } from '@angular/forms';\r\nimport { IsoBaseControlComponent } from './iso-base-control.component';\r\n\r\n@Component({\r\n selector: 'iso-mat-date',\r\n templateUrl: './iso-mat-date.component.html'\r\n})\r\n\r\nexport class IsoMatDate extends IsoBaseControlComponent {\r\n \r\n}","<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput [matDatepicker]=\"picker\" [formControl]=\"formControl\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>","import { Inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'general',\r\n pure: false\r\n})\r\nexport class IsoGeneralPipe implements PipeTransform {\r\n\r\n constructor(private translateService: TranslateService) {\r\n\r\n }\r\n\r\n transform(value: string, id: string,generalKey:string, defaultValue: string): string {\r\n let key = `iso.${value}`;\r\n let tran = this.translateService.instant(key);\r\n if (tran === key) {\r\n key = `iso.${id.toLocaleLowerCase()}`;\r\n tran = this.translateService.instant(key);\r\n if (tran === key) {\r\n return defaultValue;\r\n }\r\n }\r\n if(tran.general && tran.general[generalKey])\r\n {\r\n return tran.general[generalKey];\r\n }\r\n return defaultValue;\r\n }\r\n\r\n}","import { Component } from '@angular/core';\r\nimport { IsoBaseControlComponent } from './iso-base-control.component';\r\n\r\n@Component({\r\n selector: 'iso-mat-datetime',\r\n templateUrl: './iso-mat-datetime.component.html'\r\n})\r\nexport class IsoMatDateTime extends IsoBaseControlComponent {\r\n \r\n}","<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.minlength]=\"control.minLength\" [attr.maxlength]=\"control.maxLength\">\r\n <mat-hint>{{ control.id | general: control.id : \"format\" : \"YYYY-MM-DDThh:mm:ss.sss+/-hh:mm\" }}</mat-hint>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n \r\n</mat-form-field>","import { Component } from '@angular/core';\r\nimport { IsoBaseControlComponent } from './iso-base-control.component';\r\n\r\n@Component({\r\n selector: 'iso-mat-input',\r\n templateUrl: './iso-mat-input.component.html'\r\n})\r\nexport class IsoMatInput extends IsoBaseControlComponent {\r\n \r\n}","<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.minlength]=\"control.minLength\" [attr.maxlength]=\"control.maxLength\">\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n \r\n</mat-form-field>","import { Component } from '@angular/core';\r\nimport { IsoBaseControlComponent } from './iso-base-control.component';\r\n\r\n@Component({\r\n selector: 'iso-mat-checkbox',\r\n templateUrl: './iso-mat-checkbox.component.html'\r\n})\r\nexport class IsoMatCheckbox extends IsoBaseControlComponent {\r\n \r\n}","<mat-form-field class=\"form-control form-control-m\">\r\n <mat-checkbox [formControl]=\"formControl\">{{ control.name | trans: control.id : control.name }}</mat-checkbox>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>","\r\nimport { Component } from '@angular/core';\r\nimport { IsoBaseControlComponent } from './iso-base-control.component';\r\n\r\n@Component({\r\n selector: 'iso-mat-textarea',\r\n templateUrl: './iso-mat-textarea.component.html'\r\n})\r\n\r\nexport class IsoMatTextarea extends IsoBaseControlComponent {\r\n \r\n}","<mat-form-field class=\"form-control form-control-full\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <textarea matInput placeholder=\"{{control.name}}\" [formControl]=\"formControl\"></textarea>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>","\r\nimport { Component } from '@angular/core';\r\nimport { IsoBaseControlComponent } from './iso-base-control.component';\r\n\r\n@Component({\r\n selector: 'iso-mat-select',\r\n templateUrl: './iso-mat-select.component.html'\r\n})\r\n\r\nexport class IsoMatSelect extends IsoBaseControlComponent {\r\n \r\n}","<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <mat-select [formControl]=\"formControl\">\r\n <mat-option *ngFor=\"let item of control.values\" [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n </mat-select>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n </mat-form-field>","import { Component } from '@angular/core';\r\nimport { IsoBaseControlComponent } from './iso-base-control.component';\r\n\r\n@Component({\r\n selector: 'iso-mat-currency',\r\n templateUrl: './iso-mat-currency.component.html'\r\n})\r\nexport class IsoMatCurrency extends IsoBaseControlComponent {\r\n \r\n}","<mat-form-field class=\"form-control form-control-s\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.maxlength]=\"control.maxLength\">\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>","import { Type } from \"@angular/core\";\r\n\r\nexport class ComponentModel {\r\n constructor(public component: Type<any>, public prop: any) { }\r\n}","import { FormControl } from \"@angular/forms\";\r\nimport { ComponentModel } from \"../models/component.model\";\r\nimport { SchemaElement } from \"../../Models/Schema\";\r\nimport { IsoMatCurrency, IsoMatDate, IsoMatDateTime, IsoMatInput, IsoMatSelect, IsoMatTextarea } from \"../../components\";\r\n\r\nexport class ControlService {\r\n\r\n public getComponentByType(controlModel: SchemaElement, formControl: FormControl): ComponentModel {\r\n if (!controlModel.dataType) {\r\n console.log(\"controlModel name {0}\", controlModel.name);\r\n throw `Argument null exception dataType`;\r\n }\r\n switch (controlModel.dataType.toLocaleLowerCase()) {\r\n case \"string\":\r\n case \"decimal\":\r\n if(controlModel.name.toLocaleLowerCase().indexOf('ccy') > -1)\r\n {\r\n return new ComponentModel(IsoMatCurrency, { \"control\": controlModel, \"formControl\": formControl });\r\n }\r\n if (controlModel.values?.length > 0) {\r\n return new ComponentModel(IsoMatSelect, { \"control\": controlModel, \"formControl\": formControl });\r\n }\r\n if (controlModel.maxLength && parseInt(controlModel.maxLength, 10) > 50) {\r\n return new ComponentModel(IsoMatTextarea, { \"control\": controlModel, \"formControl\": formControl });\r\n }\r\n return new ComponentModel(IsoMatInput, { \"control\": controlModel, \"formControl\": formControl });\r\n case \"date\":\r\n return new ComponentModel(IsoMatDate, { \"control\": controlModel, \"formControl\": formControl });\r\n case \"datetime\":\r\n return new ComponentModel(IsoMatDateTime, { \"control\": controlModel, \"formControl\": formControl });\r\n case \"boolean\":\r\n return new ComponentModel(IsoMatDate, { \"control\": controlModel, \"formControl\": formControl });\r\n case \"any\":\r\n return new ComponentModel(IsoMatTextarea, { \"control\": controlModel, \"formControl\": formControl });\r\n default:\r\n return new ComponentModel(IsoMatInput, { \"control\": controlModel, \"formControl\": formControl });\r\n }\r\n }\r\n}","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[componentContent]',\r\n})\r\nexport class ComponentDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}","import { Component, Input, OnInit, Type, ViewChild } from '@angular/core';\nimport { ComponentDirective } from '../../directives/component-content.directive';\nimport { ComponentModel } from '../../models/component.model';\n\n@Component({\n selector: 'ngx-dynamic',\n template: `<div><ng-template componentContent></ng-template></div>`\n})\nexport class NgxDynamicComponent implements OnInit {\n\n @Input() componentModel: ComponentModel;\n @ViewChild(ComponentDirective, { static: true }) componentContent!: ComponentDirective;\n constructor() { }\n\n ngOnInit(): void {\n this.loadComponent();\n }\n\n loadComponent() {\n const viewContainerRef = this.componentContent.viewContainerRef;\n viewContainerRef.clear();\n const componentRef = viewContainerRef.createComponent<any>(this.componentModel.component);\n if (this.componentModel.prop) {\n Object.assign(componentRef.instance, this.componentModel.prop);\n }\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { ControlService } from '../../shared/services/control.service';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\r\nimport { ComponentModel } from '../../shared/models/component.model';\r\nimport { SchemaElement } from '../../Models/Schema';\r\n\r\n@Component({\r\n selector: 'ngx-iso-control',\r\n templateUrl: './iso-control.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgxIsoControlComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\n\r\nexport class NgxIsoControlComponent implements OnInit, ControlValueAccessor {\r\n @Input() formControl: FormControl;\r\n @Input() control: SchemaElement\r\n component: ComponentModel\r\n constructor(private controlService: ControlService) {\r\n\r\n }\r\n ngOnInit(): void {\r\n this.addValidator();\r\n this.component = this.controlService.getComponentByType(this.control, this.formControl);\r\n }\r\n\r\n writeValue(obj: any): void {\r\n }\r\n registerOnChange(fn: any): void {\r\n }\r\n registerOnTouched(fn: any): void {\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n }\r\n\r\n private addValidator = (): void => {\r\n try {\r\n const minOccurs = parseInt(this.control.minOccurs, 10);\r\n let minLength = parseInt(this.control.minLength, 10);\r\n const maxLength = parseInt(this.control.maxLength, 10);\r\n if (minOccurs) {\r\n this.formControl.addValidators(Validators.required);\r\n }\r\n if (!Number.isNaN(minLength)) {\r\n this.formControl.addValidators(Validators.minLength(minLength));\r\n }\r\n if (!Number.isNaN(maxLength)) {\r\n this.formControl.addValidators(Validators.maxLength(maxLength));\r\n }\r\n if (this.control.pattern) {\r\n this.formControl.addValidators(Validators.pattern(this.control.pattern));\r\n }\r\n if (this.control.fractionDigits) {\r\n minLength = Number.isNaN(minLength) ? 0 : minLength;\r\n const pattern = `^[\\\\d\\\\.\\\\d{0,${this.control.fractionDigits}}]{${minLength},${this.control.totalDigits}}$`\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n}","<ngx-dynamic *ngIf=\"component\" [componentModel]=\"component\"></ngx-dynamic>","import { Injectable } from '@angular/core';\nimport { FormGroup, FormControl, FormArray, FormBuilder } from '@angular/forms';\nimport { SchemaModel } from './Models/Schema';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxIsoService {\n public _formModel: any[] = [];\n constructor(private fb: FormBuilder) { }\n\n public maxOccurs(maxOccurs: string): boolean {\n return maxOccurs === 'unbounded' || parseInt(maxOccurs, 10) > 1;\n }\n\n public initFormModel(model: any, form: FormGroup | FormArray): void {\n if (typeof model === 'object') {\n for (const key in model) {\n if (Array.isArray(model[key])) {\n const parentNode = this.getFormModel(this._formModel[0], key);\n const item = model[key];\n const formArray = form.get(key) as FormArray;\n if (formArray && formArray.length !== item.length) {\n const newEle = structuredClone(parentNode.elements[parentNode.elements.length - 1]);\n if (!(newEle.maxOccurs && parseInt(newEle.maxOccurs, 10) <= parentNode.elements.length)) {\n const newKeys: any = [];\n const groupControls = this.getFormGroupControls(newEle.elements, newKeys, parentNode.elements.length - 1);\n parentNode.elements.push(newEle);\n formArray.push(groupControls);\n parentNode.elements.forEach((element: SchemaModel) => {\n if (!element.minOccurs || parseInt(element.minOccurs, 10) === 0) {\n element.minOccurs = \"1\";\n }\n });\n }\n }\n\n for (let i = 0; i < item.length; i++) {\n const formArray = form.get(key);\n if (formArray) {\n const frmGroup = (formArray as FormArray).at(i);\n if (frmGroup) {\n this.initFormModel(item[i], frmGroup as FormGroup);\n }\n }\n }\n } else if (typeof model[key] === 'object') {\n const node = this.getFormModel(this._formModel[0], key);\n if (node && (!node.minOccurs || parseInt(node.minOccurs, 10) === 0)) {\n node.minOccurs = \"1\";\n }\n const _form = form.get(key) as FormGroup\n if (_form) {\n if (node.dataType === 'choice') { \n const choickKey = Object.keys(model[key])[0];\n const choiceEle = node.elements.find((item: SchemaModel) => item.id === choickKey);\n node.choiceFormControl.setValue(choickKey);\n choiceEle.hidden = false;\n const newNode = structuredClone(choiceEle);\n if (newNode.elements.length) {\n const group = this.getFormGroupControls(newNode.elements, [], 0, true);\n _form.addControl(newNode.id, group);\n } else {\n const control = this.getFormControl('');\n _form.addControl(newNode.id, control);\n }\n }\n this.initFormModel(model[key], _form);\n }\n }\n else {\n const _form = form.get(key) as FormControl;\n _form.setValue(model[key]);\n }\n }\n } else if (Array.isArray(model)) {\n for (let i = 0; i < model.length; i++) {\n const frmGroup = (form as FormArray).at(i);\n this.initFormModel(model[i], frmGroup as FormGroup);\n }\n }\n }\n\n public getFormGroupControls(json: SchemaModel[], keys: any, index: number = 0, choiceEle: boolean = false): FormGroup {\n let control: any = {};\n let controls: any;\n let value = {};\n\n json.forEach((item: SchemaModel) => {\n item.hidden = choiceEle;\n value = item.elements;\n const id = item.id\n const element = { ...item, elements: [], id };\n if (item.elements.length > 0) {\n let choice = item.dataType === 'choice';\n if (choice) {\n element.choiceFormControl = this.getFormControl('');\n }\n if (this.maxOccurs(item.maxOccurs)) {\n element.uniqueId = `${element.id}_${index}`;\n keys.push({ id: element.id, multi: true, xpath: element.xpath, elements: [element] });\n const data = this.getFormGroupControls(item.elements, element.elements, index, choice);\n controls = this.fb.array([]);\n if (!choice) {\n controls.push(data);\n }\n control[id] = controls;\n }\n else if (item.multi && !item.isFormControls) {\n keys.push({ id: element.id, multi: true, xpath: element.xpath, elements: element.elements });\n const data = this.getFormGroupControls(item.elements[item.elements.length - 1].elements, element.elements, index, choice);\n controls = this.fb.array([]);\n if (!choice) {\n controls.push(data);\n }\n control[id] = controls;\n }\n else if (item.multi && item.isFormControls) {\n if (item.elements.length > 1) {\n item.elements.splice(1, item.elements.length - 1);\n }\n keys.push(item);\n control[id] = this.fb.array([this.getFormControl(item.value || \"\")]);\n }\n else {\n keys.push(element);\n const data = this.getFormGroupControls(item.elements, element.elements, index, choice);\n if (!choice) {\n control[id] = data;\n } else {\n control[id] = this.fb.group({});\n }\n }\n\n }\n else if (this.maxOccurs(item.maxOccurs)) {\n keys.push({ id: element.id, multi: true, xpath: element.xpath, elements: [element], isFormControls: true });\n control[id] = this.fb.array([this.getFormControl(item.value)]);\n } else if (item.isCurrency) {\n const _amountCurrency = this.getAmountCurrency(item);\n keys.push(element);\n const data = this.getFormGroupControls(_amountCurrency, element.elements, 0, false);\n control[item.id] = data;\n }\n else {\n keys.push(element);\n control[id] = this.getFormControl(item.value || \"\");\n }\n });\n\n return new FormGroup(control);\n }\n\n public getFormControl(values: any): FormControl {\n return new FormControl(values || \"\", {\n updateOn: 'blur'\n });\n }\n\n public sanitize = (obj: any): any => {\n if (obj === null || obj === \"\") {\n return null;\n }\n\n if (Array.isArray(obj)) {\n const cleanedObj: any = [];\n for (const index in obj) {\n const cleanedValue = this.sanitize(obj[index]);\n if (cleanedValue !== null && cleanedValue !== \"\" && Object.keys(cleanedValue).length > 0 && (!Array.isArray(cleanedValue) || cleanedValue.length > 0)) {\n cleanedObj.push(cleanedValue);\n }\n }\n return cleanedObj;\n } else if (typeof obj === 'object') {\n const cleanedObj: any = {};\n\n for (const key in obj) {\n const cleanedValue = this.sanitize(obj[key]);\n if (cleanedValue !== null && cleanedValue !== \"\" && Object.keys(cleanedValue).length > 0 && (!Array.isArray(cleanedValue) || cleanedValue.length > 0)) {\n cleanedObj[key] = cleanedValue;\n }\n }\n return cleanedObj;\n }\n\n return obj;\n }\n\n private getFormModel = (object: any, key: string): any => {\n if (object) {\n if (object.elements.length) {\n if (object.id === key) {\n return object;\n }\n for (let i = 0; i < object.elements.length; i++) {\n const obj = this.getFormModel(object.elements[i], key);\n if (obj)\n return obj;\n }\n } else {\n if (object.id === key) {\n return object;\n }\n }\n }\n }\n\n private getAmountCurrency(item: SchemaModel): SchemaModel[] {\n const elements: SchemaModel[] = [];\n const ccy = structuredClone(item);\n const amt = structuredClone(item);\n\n ccy.id = `${ccy.id}_ccy`;\n ccy.name = \"Ccy\";\n ccy.fractionDigits = '';\n ccy.totalDigits = '';\n ccy.maxLength = \"3\"\n ccy.xpath = `${ccy.xpath}@ccy`;\n ccy.isCurrency = false;\n elements.push(ccy);\n\n amt.id = `${amt.id}_amt`;\n amt.xpath = `${amt.xpath}/amt`;\n amt.isCurrency = false;\n amt.pattern = '';\n elements.push(amt);\n return elements;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport {\n FormGroup,\n FormControl,\n FormArray,\n AbstractControl\n} from '@angular/forms';\n\nimport { SchemaModel } from './Models/Schema';\nimport { NgxIsoService } from './ngx-iso-form.service';\nimport { IsoForm } from './Models/IsoForm';\n\n@Component({\n selector: 'ngx-iso-form',\n templateUrl: './ngx-iso-form.component.html',\n styleUrls: ['./ngx-iso-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgxIsoFormComponent implements OnChanges {\n @Input({ required: true }) form: IsoForm;\n @Input({ required: true }) schema: SchemaModel;\n protected _form: FormGroup;\n private _isFormInitiate: boolean;\n private _ngModel: any;\n\n constructor(private service: NgxIsoService, private changeDetection: ChangeDetectorRef) {\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['schema'] && changes['schema'].currentValue) {\n this.initiateForm();\n }\n if (changes['form'] && changes['form'].currentValue) {\n this.initiateFormModel();\n }\n }\n\n public get getIsoForm(): any {\n if (this._form)\n return this.service.sanitize(this._form.value);\n }\n\n protected get getFormModel(): any[] {\n return this.service._formModel;\n }\n\n private initiateForm(): void {\n this.service._formModel = [structuredClone(this.schema)];\n this.service._formModel[0].elements = [];\n let group: any = {};\n group[this.schema.id] = this.service.getFormGroupControls(this.schema.elements, this.service._formModel[0].elements);\n this._form = new FormGroup(group);\n if (!this._isFormInitiate) {\n this.initiateFormModel();\n }\n }\n\n private initiateFormModel(): void {\n if (this._form) {\n this._ngModel = this.form._model; \n this.form.getFormModel = () => {\n return this.getIsoForm;\n };\n this._isFormInitiate = true;\n this.service.initFormModel(this._ngModel, this._form);\n }\n }\n\n protected onChoiceSelectionChange(id: string, formElement: any, nodes: SchemaModel): void {\n nodes.elements.forEach((element: SchemaModel) => {\n element.hidden = true;\n formElement.removeControl(element.id);\n if (element.id === id) {\n element.hidden = false;\n if (element.elements.length) {\n const group = this.service.getFormGroupControls(element.elements, [], 0, true);\n formElement.addControl(element.id, group);\n } else {\n const control = this.service.getFormControl('');\n formElement.addControl(element.id, control);\n }\n\n }\n });\n }\n\n protected maxOccurs(maxOccurs: string): boolean {\n return maxOccurs !== null && maxOccurs !== undefined && this.service.maxOccurs(maxOccurs);\n }\n\n protected expand(minOccurs: string): boolean {\n return minOccurs !== null && minOccurs !== undefined && parseInt(minOccurs, 10) > 0;\n }\n\n protected addSection($event: Event, node: SchemaModel, parentNode: SchemaModel, parentFormEle: FormGroup): void {\n $event.stopPropagation();\n const control: FormArray = parentFormEle.get(node.id) as FormArray;\n if (node.maxOccurs && parseInt(node.maxOccurs, 10) <= parentNode.elements.length) {\n return;\n }\n const newEle = structuredClone(parentNode.elements[0]);\n const newKeys: any = [];\n const groupControls = this.service.getFormGroupControls(newEle.elements, newKeys, parentNode.elements.length - 1);\n parentNode.elements.push(newEle);\n control.push(groupControls);\n this.changeDetection.detectChanges();\n }\n\n protected removeSection($event: Event, parentNode: SchemaModel, parentFormEle: FormGroup, index: number): void {\n $event.stopPropagation();\n const control: FormArray = parentFormEle.get(parentNode.id) as FormArray;\n parentNode.elements.splice(index, 1);\n control.removeAt(index);\n this.changeDetection.detectChanges();\n }\n\n protected addNewControl($event: Event, node: SchemaModel, parentNode: SchemaModel, parentFormEle: FormGroup): void {\n $event.stopPropagation();\n if (node.maxOccurs && parseInt(node.maxOccurs, 10) <= parentNode.elements.length) {\n return;\n }\n const control: FormArray = parentFormEle.get(node.id) as FormArray;\n const newControl = this.service.getFormControl('');\n const newEle = structuredClone(parentNode.elements[parentNode.elements.length - 1]);\n control.push(newControl);\n parentNode.elements.push(newEle);\n this.changeDetection.detectChanges();\n }\n\n protected removeNewControl($event: Event, parentNode: SchemaModel, parentFormEle: FormGroup, index: number): void {\n $event.stopPropagation();\n const control: FormArray = parentFormEle.get(parentNode.id) as FormArray;\n parentNode.elements.splice(index, 1);\n control.removeAt(index);\n this.changeDetection.detectChanges();\n }\n\n protected isArray(myKey: Object | Array<any>): boolean {\n if (myKey instanceof Array) {\n return true;\n }\n return false;\n }\n\n protected isEmpty(formElement: FormGroup): boolean {\n return Object.keys(formElement.controls).length === 0;\n }\n\n protected getElement(formElement: FormGroup, element: any): AbstractControl<any, any> | undefined {\n if (element.hidden) {\n return;\n }\n let _element;\n if (element.multi) {\n _element = element.elements[element.elements.length - 1];\n } else {\n _element = element;\n }\n\n let formControl = formElement.controls[_element.id];\n if (!formControl) {\n formControl = (formElement as any)[_element.id];\n if (!formControl)\n throw `FormControl not found ${_element.id}`;\n }\n if (formControl instanceof FormArray) {\n const formGroup = formControl.controls.find((item: any) => {\n if (item instanceof FormControl)\n return true;\n return Object.keys(item.controls).find((ctrl) => {\n return ctrl.indexOf(element.id) > -1;\n })\n });\n if (formGroup)\n return formControl.at(formControl.length - 1);\n }\n return formControl;\n }\n\n protected getFormControl(node: SchemaModel): FormControl{\n debugger\n return this.service.getFormControl('');\n }\n}\n","<form *ngIf=\"_form && schema\" [formGroup]=\"_form\">\r\n <div class=\"form-group\">\r\n <ng-template #nodeTemplateRef let-node=\"node\" let-formElement=\"formElement\" let-index=\"index\"\r\n let-parentNode=\"parentNode\" let-parentFormElement=\"parentFormElement\">\r\n <ng-container *ngIf=\"node.multi then arr else obj\"></ng-container>\r\n <ng-template #arr>\r\n <ng-template *ngFor=\"let model of node.elements;let i = index\" [ngTemplateOutlet]=\"nodeTemplateRef\"\r\n [ngTemplateOutletContext]=\"{\r\n node: model,\r\n formElement: formElement,\r\n parentFormElement: parentFormElement,\r\n parentNode: node,\r\n index: i\r\n }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #obj>\r\n <ng-container *ngIf=\"node.elements.length\">\r\n <mat-accordion [formGroup]=\"formElement\" *ngIf=\"!node.hidden\">\r\n <mat-expansion-panel multi [expanded]=\"expand(node.minOccurs)\" #expan>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ node.name | trans: node.id : node.name }}\r\n </mat-panel-title>\r\n <mat-panel-description *ngIf=\"maxOccurs(node.maxOccurs)\">\r\n \r\n <button *ngIf=\"index < 1\" mat-icon-button (click)=\"addSection($event, node,parentNode, parentFormElement)\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n <button *ngIf=\"index > 0\" mat-icon-button (click)=\"removeSection($event,parentNode,parentFormElement,index)\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-container *ngIf=\"expan.expanded\">\r\n <mat-form-field *ngIf=\"node.dataType === 'choice'\">\r\n <mat-label>{{ node.name | trans: node.id : node.name }}</mat-label>\r\n <mat-select (selectionChange)=\"onChoiceSelectionChange($event.value,formElement, node)\" [formControl]=\"node.choiceFormControl\">\r\n <mat-option *ngFor=\"let item of node.elements\" [value]=\"item.id\">\r\n {{item.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <ng-container *ngIf=\"!isEmpty(formElement)\">\r\n <ng-template *ngFor=\"let model of node.elements; let i = index\" [ngTemplateOutlet]=\"nodeTemplateRef\"\r\n [ngTemplateOutletContext]=\"{\r\n node: model,\r\n formElement: getElement(formElement,model),\r\n parentFormElement: formElement\r\n }\">\r\n </ng-template>\r\n </ng-container>\r\n <div *ngIf=\"node.elements.length === 0\">\r\n <ngx-iso-control *ngIf=\"!node.hidden\" [formControl]=\"formElement\" [control]=\"node\"></ngx-iso-control>\r\n </div>\r\n </ng-container>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </ng-container>\r\n <ng-container *ngIf=\"!node.elements.length && !node.hidden\">\r\n <div *ngIf=\"maxOccurs(node.maxOccurs)\" class=\"form-add-section\">\r\n \r\n <button *ngIf=\"index < 1\" mat-icon-button (click)=\"addNewControl($event, node,parentNode,parentFormElement)\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n <button *ngIf=\"index > 0\" mat-icon-button (click)=\"removeNewControl($event,parentNode,parentFormElement,index)\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n </div>\r\n <ngx-iso-control [formControl]=\"formElement\" [control]=\"node\"></ngx-iso-control>\r\n </ng-container>\r\n </ng-template>\r\n </ng-template>\r\n <ng-container *ngFor=\"let model of getFormModel; let i = index\">\r\n <ng-container *ngIf=\"isArray(model);then formArray else formObject\">\r\n </ng-container>\r\n <ng-template #formArray>\r\n <ng-template *ngFor=\"let key of model;let i = index\" [ngTemplateOutlet]=\"nodeTemplateRef\"\r\n [ngTemplateOutletContext]=\"{\r\n node: key,\r\n formElement: getElement(_form,key),\r\n parentFormElement: _form,\r\n index:i\r\n }\">\r\n </ng-template>\r\n </ng-template>\r\n <ng-template #formObject>\r\n <ng-template [ngTemplateOutlet]=\"nodeTemplateRef\" [ngTemplateOutletContext]=\"{\r\n node: model,\r\n formElement: getElement(_form,model),\r\n parentFormElement: _form,\r\n index: i,\r\n }\">\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</form>","import { ComponentRef, Inject, Type, ViewContainerRef } from \"@angular/core\";\r\nimport { ComponentModel } from \"../models/component.model\";\r\n\r\n@Inject('root')\r\nexport class ComponentService{\r\n public getComponent<T>(viewContainerRef: ViewContainerRef,dynamicModel: ComponentModel): ComponentRef<T> {\r\n const componentRef = viewContainerRef.createComponent<T>(dynamicModel.component);\r\n if(dynamicModel.prop){\r\n (componentRef.instance as any).prop = dynamicModel.prop;\r\n }\r\n return componentRef;\r\n }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\n\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\"\nimport { BrowserModule } from '@angular/platform-browser';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport {\n NgxIsoControlComponent,\n IsoBaseControlComponent,\n IsoMatInput,\n IsoMatDate,\n IsoMatTextarea,\n IsoMatSelect,\n IsoMatCheckbox,\n IsoMatDateTime,\n IsoMatCurrency,\n} from './components';\n\nimport { NgxIsoFormComponent } from './ngx-iso-form.component';\n\nimport { ComponentDirective } from './shared/directives/component-content.directive';\nimport { NgxDynamicComponent } from './shared/components/dynamic/ngx-dynamic.component';\nimport { IsoTranslatePipe } from './shared/pipe/translate.pipe';\nimport { IsoErrorPipe } from './shared/pipe/error.pipe';\nimport { IsoGeneralPipe } from './shared/pipe/general.pipe';\nimport { ControlService } from './shared/services';\n\n\n// // AoT requires an exported function for factories\n// export function HttpLoaderFactory(http: HttpClient) {\n// return new TranslateHttpLoader(http);\n// }\n\n@NgModule({\n declarations: [\n NgxIsoFormComponent,\n NgxIsoControlComponent,\n NgxDynamicComponent,\n IsoBaseControlComponent,\n IsoMatInput,\n IsoMatTextarea,\n IsoMatDate,\n IsoMatDateTime,\n IsoMatSelect,\n IsoMatCheckbox,\n IsoMatCurrency,\n ComponentDirective,\n IsoTranslatePipe,\n IsoErrorPipe,\n IsoGeneralPipe\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n TranslateModule,\n FormsModule,\n ReactiveFormsModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatInputModule,\n MatNativeDateModule,\n MatDatepickerModule,\n MatButtonModule,\n MatSelectModule,\n MatIconModule,\n ],\n providers: [\n ControlService\n ],\n exports: [\n NgxIsoFormComponent\n ]\n})\nexport class NgxIsoFormModule { }\n","import { SchemaElement } from \"./Schema\";\r\n\r\nexport class IsoForm { \r\n public _model: any;\r\n constructor(model: any) {\r\n this._model = model;\r\n \r\n } \r\n public getFormModel = (): any => { \r\n };\r\n}","/*\n * Public API Surface of ngx-iso-form\n */\n\nexport * from './lib/ngx-iso-form.module';\nexport * from './lib/ngx-iso-form.component';\nexport * from './lib/shared/services';\n\nexport { SchemaElement } from './lib/Models/Schema'\nexport * from './lib/Models/Control'\nexport * from './lib/Models/IsoForm'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i6.IsoTranslatePipe","i7.IsoErrorPipe","i5.IsoTranslatePipe","i6.IsoErrorPipe","i7.IsoGeneralPipe","i4.IsoTranslatePipe","i5.IsoErrorPipe","i4","i5","i1.ComponentDirective","i1.ControlService","i2","i3.NgxDynamicComponent","i1.NgxIsoService","i3","i7","i8","i10.NgxIsoControlComponent","i11.IsoTranslatePipe"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ComponentModel } from "../shared/models/component.model";
|
|
2
|
+
export interface IControlModel {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
dataType: string;
|
|
6
|
+
minOccurs: string;
|
|
7
|
+
maxOccurs: string;
|
|
8
|
+
minLength: string;
|
|
9
|
+
maxLength: string;
|
|
10
|
+
pattern: string;
|
|
11
|
+
fractionDigits: string;
|
|
12
|
+
totalDigits: string;
|
|
13
|
+
minInclusive: string;
|
|
14
|
+
maxInclusive: string;
|
|
15
|
+
values: string[];
|
|
16
|
+
isCurrency: boolean;
|
|
17
|
+
xpath: string;
|
|
18
|
+
value: string;
|
|
19
|
+
component: ComponentModel;
|
|
20
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractControl } from "@angular/forms";
|
|
2
|
+
export interface SchemaElement {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
dataType: string;
|
|
6
|
+
minOccurs: string;
|
|
7
|
+
maxOccurs: string;
|
|
8
|
+
minLength: string;
|
|
9
|
+
maxLength: string;
|
|
10
|
+
pattern: string;
|
|
11
|
+
fractionDigits: string;
|
|
12
|
+
totalDigits: string;
|
|
13
|
+
minInclusive: string;
|
|
14
|
+
maxInclusive: string;
|
|
15
|
+
values: string[];
|
|
16
|
+
isCurrency: boolean;
|
|
17
|
+
xpath: string;
|
|
18
|
+
elements: SchemaElement[];
|
|
19
|
+
}
|
|
20
|
+
export interface SchemaModel extends SchemaElement {
|
|
21
|
+
uniqueId?: string;
|
|
22
|
+
hidden?: boolean;
|
|
23
|
+
value?: string;
|
|
24
|
+
multi?: string;
|
|
25
|
+
isFormControls?: boolean;
|
|
26
|
+
children?: SchemaModel[];
|
|
27
|
+
choiceFormControl?: AbstractControl<any, any>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IControlModel } from '../../Models/Control';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class IsoBaseControlComponent {
|
|
5
|
+
control: IControlModel;
|
|
6
|
+
formControl: FormControl;
|
|
7
|
+
getKeys(errors: any): string[];
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoBaseControlComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IsoBaseControlComponent, "iso-base", never, { "control": { "alias": "control"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; }, {}, never, never, false, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IsoMatCheckbox extends IsoBaseControlComponent {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoMatCheckbox, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IsoMatCheckbox, "iso-mat-checkbox", never, {}, {}, never, never, false, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IsoMatCurrency extends IsoBaseControlComponent {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoMatCurrency, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IsoMatCurrency, "iso-mat-currency", never, {}, {}, never, never, false, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IsoMatDate extends IsoBaseControlComponent {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoMatDate, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IsoMatDate, "iso-mat-date", never, {}, {}, never, never, false, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IsoMatDateTime extends IsoBaseControlComponent {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoMatDateTime, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IsoMatDateTime, "iso-mat-datetime", never, {}, {}, never, never, false, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IsoMatInput extends IsoBaseControlComponent {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoMatInput, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IsoMatInput, "iso-mat-input", never, {}, {}, never, never, false, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IsoMatSelect extends IsoBaseControlComponent {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoMatSelect, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IsoMatSelect, "iso-mat-select", never, {}, {}, never, never, false, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IsoMatTextarea extends IsoBaseControlComponent {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoMatTextarea, never>;
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IsoMatTextarea, "iso-mat-textarea", never, {}, {}, never, never, false, never>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './controls/iso-base-control.component';
|
|
2
|
+
export * from './controls/iso-mat-date.component';
|
|
3
|
+
export * from './controls/iso-mat-datetime.component';
|
|
4
|
+
export * from './controls/iso-mat-input.component';
|
|
5
|
+
export * from './controls/iso-mat-checkbox.component';
|
|
6
|
+
export * from './controls/iso-mat-textarea.component';
|
|
7
|
+
export * from './controls/iso-mat-select.component';
|
|
8
|
+
export * from './controls/iso-mat-currency.component';
|
|
9
|
+
export * from './iso-control/iso-control.component';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { ControlService } from '../../shared/services/control.service';
|
|
3
|
+
import { ControlValueAccessor, FormControl } from '@angular/forms';
|
|
4
|
+
import { ComponentModel } from '../../shared/models/component.model';
|
|
5
|
+
import { SchemaElement } from '../../Models/Schema';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class NgxIsoControlComponent implements OnInit, ControlValueAccessor {
|
|
8
|
+
private controlService;
|
|
9
|
+
formControl: FormControl;
|
|
10
|
+
control: SchemaElement;
|
|
11
|
+
component: ComponentModel;
|
|
12
|
+
constructor(controlService: ControlService);
|
|
13
|
+
ngOnInit(): void;
|
|
14
|
+
writeValue(obj: any): void;
|
|
15
|
+
registerOnChange(fn: any): void;
|
|
16
|
+
registerOnTouched(fn: any): void;
|
|
17
|
+
setDisabledState?(isDisabled: boolean): void;
|
|
18
|
+
private addValidator;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxIsoControlComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxIsoControlComponent, "ngx-iso-control", never, { "formControl": { "alias": "formControl"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, false, never>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ChangeDetectorRef, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { FormGroup, FormControl, AbstractControl } from '@angular/forms';
|
|
3
|
+
import { SchemaModel } from './Models/Schema';
|
|
4
|
+
import { NgxIsoService } from './ngx-iso-form.service';
|
|
5
|
+
import { IsoForm } from './Models/IsoForm';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class NgxIsoFormComponent implements OnChanges {
|
|
8
|
+
private service;
|
|
9
|
+
private changeDetection;
|
|
10
|
+
form: IsoForm;
|
|
11
|
+
schema: SchemaModel;
|
|
12
|
+
protected _form: FormGroup;
|
|
13
|
+
private _isFormInitiate;
|
|
14
|
+
private _ngModel;
|
|
15
|
+
constructor(service: NgxIsoService, changeDetection: ChangeDetectorRef);
|
|
16
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
17
|
+
get getIsoForm(): any;
|
|
18
|
+
protected get getFormModel(): any[];
|
|
19
|
+
private initiateForm;
|
|
20
|
+
private initiateFormModel;
|
|
21
|
+
protected onChoiceSelectionChange(id: string, formElement: any, nodes: SchemaModel): void;
|
|
22
|
+
protected maxOccurs(maxOccurs: string): boolean;
|
|
23
|
+
protected expand(minOccurs: string): boolean;
|
|
24
|
+
protected addSection($event: Event, node: SchemaModel, parentNode: SchemaModel, parentFormEle: FormGroup): void;
|
|
25
|
+
protected removeSection($event: Event, parentNode: SchemaModel, parentFormEle: FormGroup, index: number): void;
|
|
26
|
+
protected addNewControl($event: Event, node: SchemaModel, parentNode: SchemaModel, parentFormEle: FormGroup): void;
|
|
27
|
+
protected removeNewControl($event: Event, parentNode: SchemaModel, parentFormEle: FormGroup, index: number): void;
|
|
28
|
+
protected isArray(myKey: Object | Array<any>): boolean;
|
|
29
|
+
protected isEmpty(formElement: FormGroup): boolean;
|
|
30
|
+
protected getElement(formElement: FormGroup, element: any): AbstractControl<any, any> | undefined;
|
|
31
|
+
protected getFormControl(node: SchemaModel): FormControl;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxIsoFormComponent, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxIsoFormComponent, "ngx-iso-form", never, { "form": { "alias": "form"; "required": true; }; "schema": { "alias": "schema"; "required": true; }; }, {}, never, never, false, never>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./ngx-iso-form.component";
|
|
3
|
+
import * as i2 from "./components/iso-control/iso-control.component";
|
|
4
|
+
import * as i3 from "./shared/components/dynamic/ngx-dynamic.component";
|
|
5
|
+
import * as i4 from "./components/controls/iso-base-control.component";
|
|
6
|
+
import * as i5 from "./components/controls/iso-mat-input.component";
|
|
7
|
+
import * as i6 from "./components/controls/iso-mat-textarea.component";
|
|
8
|
+
import * as i7 from "./components/controls/iso-mat-date.component";
|
|
9
|
+
import * as i8 from "./components/controls/iso-mat-datetime.component";
|
|
10
|
+
import * as i9 from "./components/controls/iso-mat-select.component";
|
|
11
|
+
import * as i10 from "./components/controls/iso-mat-checkbox.component";
|
|
12
|
+
import * as i11 from "./components/controls/iso-mat-currency.component";
|
|
13
|
+
import * as i12 from "./shared/directives/component-content.directive";
|
|
14
|
+
import * as i13 from "./shared/pipe/translate.pipe";
|
|
15
|
+
import * as i14 from "./shared/pipe/error.pipe";
|
|
16
|
+
import * as i15 from "./shared/pipe/general.pipe";
|
|
17
|
+
import * as i16 from "@angular/platform-browser";
|
|
18
|
+
import * as i17 from "@angular/platform-browser/animations";
|
|
19
|
+
import * as i18 from "@ngx-translate/core";
|
|
20
|
+
import * as i19 from "@angular/forms";
|
|
21
|
+
import * as i20 from "@angular/material/expansion";
|
|
22
|
+
import * as i21 from "@angular/material/form-field";
|
|
23
|
+
import * as i22 from "@angular/material/input";
|
|
24
|
+
import * as i23 from "@angular/material/core";
|
|
25
|
+
import * as i24 from "@angular/material/datepicker";
|
|
26
|
+
import * as i25 from "@angular/material/button";
|
|
27
|
+
import * as i26 from "@angular/material/select";
|
|
28
|
+
import * as i27 from "@angular/material/icon";
|
|
29
|
+
export declare class NgxIsoFormModule {
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxIsoFormModule, never>;
|
|
31
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxIsoFormModule, [typeof i1.NgxIsoFormComponent, typeof i2.NgxIsoControlComponent, typeof i3.NgxDynamicComponent, typeof i4.IsoBaseControlComponent, typeof i5.IsoMatInput, typeof i6.IsoMatTextarea, typeof i7.IsoMatDate, typeof i8.IsoMatDateTime, typeof i9.IsoMatSelect, typeof i10.IsoMatCheckbox, typeof i11.IsoMatCurrency, typeof i12.ComponentDirective, typeof i13.IsoTranslatePipe, typeof i14.IsoErrorPipe, typeof i15.IsoGeneralPipe], [typeof i16.BrowserModule, typeof i17.BrowserAnimationsModule, typeof i18.TranslateModule, typeof i19.FormsModule, typeof i19.ReactiveFormsModule, typeof i20.MatExpansionModule, typeof i21.MatFormFieldModule, typeof i22.MatInputModule, typeof i23.MatNativeDateModule, typeof i24.MatDatepickerModule, typeof i25.MatButtonModule, typeof i26.MatSelectModule, typeof i27.MatIconModule], [typeof i1.NgxIsoFormComponent]>;
|
|
32
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxIsoFormModule>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FormGroup, FormControl, FormArray, FormBuilder } from '@angular/forms';
|
|
2
|
+
import { SchemaModel } from './Models/Schema';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NgxIsoService {
|
|
5
|
+
private fb;
|
|
6
|
+
_formModel: any[];
|
|
7
|
+
constructor(fb: FormBuilder);
|
|
8
|
+
maxOccurs(maxOccurs: string): boolean;
|
|
9
|
+
initFormModel(model: any, form: FormGroup | FormArray): void;
|
|
10
|
+
getFormGroupControls(json: SchemaModel[], keys: any, index?: number, choiceEle?: boolean): FormGroup;
|
|
11
|
+
getFormControl(values: any): FormControl;
|
|
12
|
+
sanitize: (obj: any) => any;
|
|
13
|
+
private getFormModel;
|
|
14
|
+
private getAmountCurrency;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxIsoService, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NgxIsoService>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { ComponentDirective } from '../../directives/component-content.directive';
|
|
3
|
+
import { ComponentModel } from '../../models/component.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class NgxDynamicComponent implements OnInit {
|
|
6
|
+
componentModel: ComponentModel;
|
|
7
|
+
componentContent: ComponentDirective;
|
|
8
|
+
constructor();
|
|
9
|
+
ngOnInit(): void;
|
|
10
|
+
loadComponent(): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDynamicComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxDynamicComponent, "ngx-dynamic", never, { "componentModel": { "alias": "componentModel"; "required": false; }; }, {}, never, never, false, never>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ComponentDirective {
|
|
4
|
+
viewContainerRef: ViewContainerRef;
|
|
5
|
+
constructor(viewContainerRef: ViewContainerRef);
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentDirective, never>;
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ComponentDirective, "[componentContent]", never, {}, {}, never, never, false, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class IsoErrorPipe implements PipeTransform {
|
|
5
|
+
private translateService;
|
|
6
|
+
constructor(translateService: TranslateService);
|
|
7
|
+
transform(value: string, id: string, errorKey: string, defaultValue: string): string;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoErrorPipe, never>;
|
|
9
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsoErrorPipe, "error", false>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class IsoGeneralPipe implements PipeTransform {
|
|
5
|
+
private translateService;
|
|
6
|
+
constructor(translateService: TranslateService);
|
|
7
|
+
transform(value: string, id: string, generalKey: string, defaultValue: string): string;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoGeneralPipe, never>;
|
|
9
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsoGeneralPipe, "general", false>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class IsoTranslatePipe implements PipeTransform {
|
|
5
|
+
private translateService;
|
|
6
|
+
constructor(translateService: TranslateService);
|
|
7
|
+
transform(value: string, id: string, defaultValue: string): string;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsoTranslatePipe, never>;
|
|
9
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsoTranslatePipe, "trans", false>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ComponentRef, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { ComponentModel } from "../models/component.model";
|
|
3
|
+
export declare class ComponentService {
|
|
4
|
+
getComponent<T>(viewContainerRef: ViewContainerRef, dynamicModel: ComponentModel): ComponentRef<T>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FormControl } from "@angular/forms";
|
|
2
|
+
import { ComponentModel } from "../models/component.model";
|
|
3
|
+
import { SchemaElement } from "../../Models/Schema";
|
|
4
|
+
export declare class ControlService {
|
|
5
|
+
getComponentByType(controlModel: SchemaElement, formControl: FormControl): ComponentModel;
|
|
6
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
@import './ngx-iso-form.component.scss';
|
|
2
|
+
|
|
3
|
+
.form-control{
|
|
4
|
+
float: left;
|
|
5
|
+
margin:2px 10px;
|
|
6
|
+
}
|
|
7
|
+
.form-control-s{
|
|
8
|
+
width:10%;
|
|
9
|
+
}
|
|
10
|
+
.form-control-m{
|
|
11
|
+
width:25%;
|
|
12
|
+
}
|
|
13
|
+
.form-control-l{
|
|
14
|
+
width:50%;
|
|
15
|
+
}
|
|
16
|
+
.form-control-full{
|
|
17
|
+
width:100%;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.form-add-section
|
|
21
|
+
{
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-flow: row;
|
|
24
|
+
width: 100%;
|
|
25
|
+
justify-content: space-between;
|
|
26
|
+
|
|
27
|
+
button{
|
|
28
|
+
color: rgba(0, 0, 0, 0.54);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
.iso-mat-error{
|
|
32
|
+
font-size: var(--mdc-typography-caption-font-size, 12px);
|
|
33
|
+
}
|