special-forms 0.0.1
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 +24 -0
- package/esm2020/lib/components/index.mjs +22 -0
- package/esm2020/lib/components/special-autocomplete/special-autocomplete.component.mjs +61 -0
- package/esm2020/lib/components/special-autocomplete/special-autocomplete.interface.mjs +2 -0
- package/esm2020/lib/components/special-autocomplete/special-autocomplete.module.mjs +47 -0
- package/esm2020/lib/components/special-checkbox/special-checkbox.component.mjs +20 -0
- package/esm2020/lib/components/special-checkbox/special-checkbox.interface.mjs +2 -0
- package/esm2020/lib/components/special-checkbox/special-checkbox.module.mjs +47 -0
- package/esm2020/lib/components/special-datepicker/special-datepicker.component.mjs +24 -0
- package/esm2020/lib/components/special-datepicker/special-datepicker.interface.mjs +2 -0
- package/esm2020/lib/components/special-datepicker/special-datepicker.module.mjs +48 -0
- package/esm2020/lib/components/special-dropdown/special-dropdown.component.mjs +35 -0
- package/esm2020/lib/components/special-dropdown/special-dropdown.interface.mjs +2 -0
- package/esm2020/lib/components/special-dropdown/special-dropdown.module.mjs +43 -0
- package/esm2020/lib/components/special-form/special-form.component.mjs +97 -0
- package/esm2020/lib/components/special-form/special-form.module.mjs +68 -0
- package/esm2020/lib/components/special-input/special-input.component.mjs +42 -0
- package/esm2020/lib/components/special-input/special-input.interface.mjs +2 -0
- package/esm2020/lib/components/special-input/special-input.module.mjs +44 -0
- package/esm2020/lib/components/special-label/special-label.component.mjs +25 -0
- package/esm2020/lib/components/special-label/special-label.interface.mjs +2 -0
- package/esm2020/lib/components/special-label/special-label.module.mjs +47 -0
- package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +82 -0
- package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +2 -0
- package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.module.mjs +51 -0
- package/esm2020/lib/components/special-text-area/special-text-area.component.mjs +30 -0
- package/esm2020/lib/components/special-text-area/special-text-area.interface.mjs +2 -0
- package/esm2020/lib/components/special-text-area/special-text-area.module.mjs +44 -0
- package/esm2020/lib/components/special-upload/special-upload.component.mjs +69 -0
- package/esm2020/lib/components/special-upload/special-upload.interface.mjs +2 -0
- package/esm2020/lib/components/special-upload/special-upload.module.mjs +43 -0
- package/esm2020/lib/core/aux-data/control-types.enum.mjs +18 -0
- package/esm2020/lib/core/forms/special-forms.mjs +238 -0
- package/esm2020/lib/core/interfaces/field-basics.interfaces.mjs +2 -0
- package/esm2020/lib/core/interfaces/form.interfaces.mjs +2 -0
- package/esm2020/lib/core/services/index.mjs +3 -0
- package/esm2020/lib/core/services/special-form-builder/special-form-builder.service.mjs +156 -0
- package/esm2020/lib/pipes/controls-list-pipe/controls-list.pipe.mjs +18 -0
- package/esm2020/lib/pipes/controls-list-pipe/controls-list.pipe.module.mjs +18 -0
- package/esm2020/lib/pipes/error-message-pipe/error.pipe.mjs +22 -0
- package/esm2020/lib/pipes/error-message-pipe/error.pipe.module.mjs +20 -0
- package/esm2020/lib/pipes/index.mjs +3 -0
- package/esm2020/lib/pipes/text-by-function/text-by-function.pipe.mjs +22 -0
- package/esm2020/lib/pipes/text-by-function/text-by-function.pipe.module.mjs +20 -0
- package/esm2020/public-api.mjs +6 -0
- package/esm2020/special-forms.mjs +5 -0
- package/fesm2015/special-forms.mjs +1292 -0
- package/fesm2015/special-forms.mjs.map +1 -0
- package/fesm2020/special-forms.mjs +1319 -0
- package/fesm2020/special-forms.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/index.d.ts +21 -0
- package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +19 -0
- package/lib/components/special-autocomplete/special-autocomplete.interface.d.ts +18 -0
- package/lib/components/special-autocomplete/special-autocomplete.module.d.ts +15 -0
- package/lib/components/special-checkbox/special-checkbox.component.d.ts +11 -0
- package/lib/components/special-checkbox/special-checkbox.interface.d.ts +10 -0
- package/lib/components/special-checkbox/special-checkbox.module.d.ts +14 -0
- package/lib/components/special-datepicker/special-datepicker.component.d.ts +12 -0
- package/lib/components/special-datepicker/special-datepicker.interface.d.ts +11 -0
- package/lib/components/special-datepicker/special-datepicker.module.d.ts +15 -0
- package/lib/components/special-dropdown/special-dropdown.component.d.ts +11 -0
- package/lib/components/special-dropdown/special-dropdown.interface.d.ts +16 -0
- package/lib/components/special-dropdown/special-dropdown.module.d.ts +14 -0
- package/lib/components/special-form/special-form.component.d.ts +31 -0
- package/lib/components/special-form/special-form.module.d.ts +19 -0
- package/lib/components/special-input/special-input.component.d.ts +15 -0
- package/lib/components/special-input/special-input.interface.d.ts +15 -0
- package/lib/components/special-input/special-input.module.d.ts +14 -0
- package/lib/components/special-label/special-label.component.d.ts +13 -0
- package/lib/components/special-label/special-label.interface.d.ts +12 -0
- package/lib/components/special-label/special-label.module.d.ts +15 -0
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +22 -0
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.d.ts +18 -0
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.module.d.ts +16 -0
- package/lib/components/special-text-area/special-text-area.component.d.ts +13 -0
- package/lib/components/special-text-area/special-text-area.interface.d.ts +7 -0
- package/lib/components/special-text-area/special-text-area.module.d.ts +14 -0
- package/lib/components/special-upload/special-upload.component.d.ts +21 -0
- package/lib/components/special-upload/special-upload.interface.d.ts +10 -0
- package/lib/components/special-upload/special-upload.module.d.ts +13 -0
- package/lib/core/aux-data/control-types.enum.d.ts +16 -0
- package/lib/core/forms/special-forms.d.ts +110 -0
- package/lib/core/interfaces/field-basics.interfaces.d.ts +22 -0
- package/lib/core/interfaces/form.interfaces.d.ts +51 -0
- package/lib/core/services/index.d.ts +2 -0
- package/lib/core/services/special-form-builder/special-form-builder.service.d.ts +25 -0
- package/lib/pipes/controls-list-pipe/controls-list.pipe.d.ts +11 -0
- package/lib/pipes/controls-list-pipe/controls-list.pipe.module.d.ts +8 -0
- package/lib/pipes/error-message-pipe/error.pipe.d.ts +12 -0
- package/lib/pipes/error-message-pipe/error.pipe.module.d.ts +8 -0
- package/lib/pipes/index.d.ts +2 -0
- package/lib/pipes/text-by-function/text-by-function.pipe.d.ts +7 -0
- package/lib/pipes/text-by-function/text-by-function.pipe.module.d.ts +8 -0
- package/package.json +31 -0
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"special-forms.mjs","sources":["../../../projects/special-forms/src/lib/pipes/error-message-pipe/error.pipe.ts","../../../projects/special-forms/src/lib/components/special-input/special-input.component.ts","../../../projects/special-forms/src/lib/components/special-input/special-input.component.html","../../../projects/special-forms/src/lib/pipes/error-message-pipe/error.pipe.module.ts","../../../projects/special-forms/src/lib/pipes/text-by-function/text-by-function.pipe.ts","../../../projects/special-forms/src/lib/pipes/text-by-function/text-by-function.pipe.module.ts","../../../projects/special-forms/src/lib/components/special-input/special-input.module.ts","../../../projects/special-forms/src/lib/components/special-dropdown/special-dropdown.component.ts","../../../projects/special-forms/src/lib/components/special-dropdown/special-dropdown.component.html","../../../projects/special-forms/src/lib/components/special-dropdown/special-dropdown.module.ts","../../../projects/special-forms/src/lib/components/special-autocomplete/special-autocomplete.component.ts","../../../projects/special-forms/src/lib/components/special-autocomplete/special-autocomplete.component.html","../../../projects/special-forms/src/lib/components/special-autocomplete/special-autocomplete.module.ts","../../../projects/special-forms/src/lib/components/special-datepicker/special-datepicker.component.ts","../../../projects/special-forms/src/lib/components/special-datepicker/special-datepicker.component.html","../../../projects/special-forms/src/lib/components/special-datepicker/special-datepicker.module.ts","../../../projects/special-forms/src/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.ts","../../../projects/special-forms/src/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.html","../../../projects/special-forms/src/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.module.ts","../../../projects/special-forms/src/lib/components/special-checkbox/special-checkbox.component.ts","../../../projects/special-forms/src/lib/components/special-checkbox/special-checkbox.component.html","../../../projects/special-forms/src/lib/components/special-checkbox/special-checkbox.module.ts","../../../projects/special-forms/src/lib/components/special-text-area/special-text-area.component.ts","../../../projects/special-forms/src/lib/components/special-text-area/special-text-area.component.html","../../../projects/special-forms/src/lib/components/special-text-area/special-text-area.module.ts","../../../projects/special-forms/src/lib/components/special-upload/special-upload.component.ts","../../../projects/special-forms/src/lib/components/special-upload/special-upload.component.html","../../../projects/special-forms/src/lib/components/special-upload/special-upload.module.ts","../../../projects/special-forms/src/lib/components/special-label/special-label.component.ts","../../../projects/special-forms/src/lib/components/special-label/special-label.component.html","../../../projects/special-forms/src/lib/components/special-label/special-label.module.ts","../../../projects/special-forms/src/lib/pipes/controls-list-pipe/controls-list.pipe.ts","../../../projects/special-forms/src/lib/components/special-form/special-form.component.ts","../../../projects/special-forms/src/lib/components/special-form/special-form.component.html","../../../projects/special-forms/src/lib/components/special-form/special-form-array.component.html","../../../projects/special-forms/src/lib/pipes/controls-list-pipe/controls-list.pipe.module.ts","../../../projects/special-forms/src/lib/components/special-form/special-form.module.ts","../../../projects/special-forms/src/lib/core/aux-data/control-types.enum.ts","../../../projects/special-forms/src/lib/core/forms/special-forms.ts","../../../projects/special-forms/src/lib/core/services/special-form-builder/special-form-builder.service.ts","../../../projects/special-forms/src/public-api.ts","../../../projects/special-forms/src/special-forms.ts"],"sourcesContent":["import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\n\r\n@Pipe({\r\n name: \"errorMessage\",\r\n})\r\nexport class ErrorMessagePipe implements PipeTransform {\r\n transform(\r\n errorsObj: { [key: string]: any },\r\n errorMessages: { [key: string]: any },\r\n control?: FormControl\r\n ): any {\r\n const errors = errorsObj ? Object.keys(errorsObj) : [];\r\n const error = errors[0];\r\n const message = errorMessages[error] || error;\r\n if (control) {\r\n control.setErrors(errorsObj);\r\n }\r\n return message;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { IInputSettings } from './special-input.interface';\n@Component({\n selector: 'sp-input',\n templateUrl: './special-input.component.html',\n styleUrls: ['./special-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialInputComponent implements OnInit {\n @Input() control: SpecialFormControl<IInputSettings>;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onEnterClick() {\n if (this.settings.onEnter) {\n this.settings.onEnter(this.control.value);\n }\n }\n\n onBlurAction() {\n if (this.settings.onBlur) {\n this.settings.onBlur(this.control.value);\n }\n }\n\n get settings(): IInputSettings {\n return this.control.settings;\n }\n\n iconClick(event) {\n if (this.settings.iconAction) {\n this.settings.iconAction(this.control.value);\n event.stopPropagation();\n }\n }\n}\n","<mat-form-field\n *ngIf=\"control\"\n [id]=\"control.elementId\"\n class=\"w-full {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'standard'\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <input\n matInput\n (blur)=\"onBlurAction()\"\n (keydown.enter)=\"onEnterClick()\"\n [inputMask]=\"settings?.mask\"\n autocomplete=\"off\"\n [type]=\"settings?.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n />\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <button\n *ngIf=\"settings?.icon\"\n mat-icon-button\n matSuffix\n (click)=\"iconClick($event)\"\n >\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n</mat-form-field>\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ErrorMessagePipe } from \"./error.pipe\";\r\n\r\n@NgModule({\r\n declarations: [ErrorMessagePipe],\r\n imports: [\r\n CommonModule,\r\n\r\n ],\r\n exports: [ErrorMessagePipe],\r\n})\r\nexport class ErrorMessagePipeModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'textByFunction' })\r\nexport class TextByFunctionPipe implements PipeTransform {\r\n transform(value: any, field: string | ((value: any) => string)): any {\r\n if (field instanceof Function) {\r\n return field(value);\r\n } else if (value instanceof Object) {\r\n return value[field];\r\n } else {\r\n return value;\r\n }\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TextByFunctionPipe } from \"./text-by-function.pipe\";\r\n\r\n@NgModule({\r\n declarations: [TextByFunctionPipe],\r\n imports: [\r\n CommonModule,\r\n\r\n ],\r\n exports: [TextByFunctionPipe],\r\n})\r\nexport class TextByFunctionPipeModule {}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpecialInputComponent } from './special-input.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { InputMaskModule } from \"@ngneat/input-mask\";\nimport { MatIconModule } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule } from '../../pipes';\n\n@NgModule({\n declarations: [SpecialInputComponent],\n imports: [\n InputMaskModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipeModule\n ],\n exports: [SpecialInputComponent],\n})\nexport class SpecialInputModule {}\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n HostBinding,\r\n} from '@angular/core';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IDropdownSettings } from './special-dropdown.interface';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\n@Component({\r\n selector: 'sp-dropdown',\r\n templateUrl: './special-dropdown.component.html',\r\n styleUrls: ['./special-dropdown.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SpecialDropdownComponent {\r\n @Input() control: SpecialFormControl<IDropdownSettings>;\r\n\r\n get settings(): IDropdownSettings {\r\n return this.control.settings;\r\n }\r\n\r\n iconClick(event) {\r\n if (this.settings.iconAction) {\r\n this.settings.iconAction(this.control.value);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n optionSelected(value) {\r\n if (this.settings.onSelect) this.settings.onSelect(value);\r\n }\r\n\r\n}\r\n","<mat-form-field\r\n *ngIf=\"control\"\r\n [id]=\"control.elementId\"\r\n class=\"w-full {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'standard'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">\r\n {{ control.label }}\r\n </mat-label>\r\n <mat-select\r\n [formControl]=\"control\"\r\n [required]=\"control.required\"\r\n (selectionChange)=\"optionSelected($event.value)\"\r\n [placeholder]=\"control.placeholder\"\r\n >\r\n <mat-option *ngIf=\"!control.required\" [value]=\"null\">\r\n {{ control.placeholder || control.settings.notSelectedText }}\r\n </mat-option>\r\n <mat-option\r\n *ngFor=\"let item of control.settings.source | async\"\r\n [value]=\"item[control.settings.fieldId]\"\r\n >\r\n {{ item | textByFunction: control.settings.fieldName }}\r\n </mat-option>\r\n </mat-select>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <mat-hint *ngIf=\"control.tooltip\">{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpecialDropdownComponent } from './special-dropdown.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule, TextByFunctionPipeModule } from '../../pipes';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n@NgModule({\n declarations: [SpecialDropdownComponent],\n imports: [\n CommonModule,\n MatSelectModule,\n ReactiveFormsModule,\n ErrorMessagePipeModule,\n MatIconModule,\n MatButtonModule,\n TextByFunctionPipeModule\n ],\n exports: [SpecialDropdownComponent],\n})\nexport class SpecialDropdownModule {}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { Subscription } from 'rxjs';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IAutocompleteSettings } from './special-autocomplete.interface';\r\n@Component({\r\n selector: 'sp-autocomplete',\r\n templateUrl: './special-autocomplete.component.html',\r\n styleUrls: ['./special-autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SpecialAutocompleteComponent {\r\n @Input() control: SpecialFormControl<IAutocompleteSettings>;\r\n\r\n subs = new Subscription();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n get settings(): IAutocompleteSettings {\r\n return this.control.settings;\r\n }\r\n\r\n init() {\r\n this.subs.add(\r\n this.control.valueChanges.pipe(debounceTime(500)).subscribe((value) => {\r\n if (typeof value === 'string') {\r\n this.settings.getData(value, this.control);\r\n }\r\n })\r\n );\r\n }\r\n configValue = (item: any) => {\r\n if (!item) return '';\r\n const fieldName = this.settings.fieldName;\r\n return fieldName instanceof Function ? fieldName(item) : item[fieldName];\r\n };\r\n\r\n optionSelected(data: MatAutocompleteSelectedEvent) {\r\n this.control.setValue(data.option.value);\r\n if (this.settings.onSelect) this.settings.onSelect(data.option.value);\r\n }\r\n\r\n iconClick(event) {\r\n if (this.settings.iconAction) {\r\n this.settings.iconAction(this.control.value);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n}\r\n","<ng-container *ngIf=\"control && !control.hidden\">\r\n <mat-form-field\r\n class=\"w-full {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'standard'\"\r\n >\r\n <mat-label\r\n [ngClass]=\"{ 'is-link': control.label }\"\r\n class=\"control-label\"\r\n *ngIf=\"control.label\"\r\n >\r\n {{ control.label }}\r\n </mat-label>\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"control\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n class=\"autocomplete-options\"\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n <mat-option\r\n *ngFor=\"let option of settings?.source | async\"\r\n [value]=\"option\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule, TextByFunctionPipeModule } from '../../pipes';\nimport { SpecialAutocompleteComponent } from './special-autocomplete.component';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n declarations: [SpecialAutocompleteComponent],\n imports: [\n MatInputModule,\n CommonModule,\n MatAutocompleteModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipeModule,\n TextByFunctionPipeModule,\n ],\n exports: [SpecialAutocompleteComponent],\n})\nexport class SpecialAutocompleteModule {}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { IDatePickerSettings } from './special-datepicker.interface';\n\n@Component({\n selector: 'sp-datepicker',\n templateUrl: './special-datepicker.component.html',\n styleUrls: ['./special-datepicker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialDatepickerComponent implements OnInit {\n @Input() control: SpecialFormControl<IDatePickerSettings>;\n\n constructor() {}\n\n get startAt() {\n return this.control.settings?.startAt || new Date();\n }\n\n ngOnInit(): void {}\n}\n","<mat-form-field\n *ngIf=\"control\"\n [id]=\"control.elementId\"\n class=\"w-full {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'standard'\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <input\n matInput\n autocomplete=\"off\"\n [readonly]=\"control.readOnly\"\n [matDatepicker]=\"picker\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\n </mat-datepicker>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n</mat-form-field>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpecialDatepickerComponent } from './special-datepicker.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule } from '../../pipes';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\n\n@NgModule({\n declarations: [SpecialDatepickerComponent],\n imports: [\n MatInputModule,\n MatDatepickerModule,\n CommonModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipeModule,\n MatNativeDateModule\n ],\n exports: [SpecialDatepickerComponent],\n})\nexport class SpecialDatepickerModule {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { Subscription } from 'rxjs';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IMultipleAutocompleteSettings } from './special-multiple-autocomplete.interface';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'sp-multiple-autocomplete',\r\n templateUrl: './special-multiple-autocomplete.component.html',\r\n styleUrls: ['./special-multiple-autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SpecialMultipleAutocompleteComponent {\r\n @Input() control: SpecialFormControl<IMultipleAutocompleteSettings>;\r\n\r\n subs = new Subscription();\r\n internalControl = new FormControl();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n get settings(): IMultipleAutocompleteSettings {\r\n return this.control.settings;\r\n }\r\n\r\n init() {\r\n this.subs.add(\r\n this.internalControl.valueChanges\r\n .pipe(debounceTime(500))\r\n .subscribe((value) => {\r\n if (typeof value === 'string') {\r\n this.control.settings.getData(value, this.control);\r\n }\r\n })\r\n );\r\n }\r\n\r\n optionSelected(data: MatAutocompleteSelectedEvent) {\r\n const newItem = data.option.value;\r\n this.internalControl.reset();\r\n this.control.setValue([\r\n ...(this.control.value || []).filter(\r\n (item) =>\r\n item[this.control.settings.fieldId] !==\r\n newItem[this.control.settings.fieldId]\r\n ),\r\n newItem,\r\n ]);\r\n\r\n if (this.settings.onSelect) this.settings.onSelect(newItem);\r\n }\r\n\r\n iconClick(event) {\r\n if (this.settings.iconAction) {\r\n this.settings.iconAction(this.control.value);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n remove(value: any[]): void {\r\n let currentValues = Array.from(this.control.value);\r\n const index = currentValues.indexOf(value);\r\n\r\n if (index > -1) {\r\n currentValues.splice(index, 1);\r\n const value = currentValues;\r\n this.control.markAsDirty();\r\n this.control.setValue(value);\r\n }\r\n }\r\n\r\n configValue = (item: any) => {\r\n if (!item) return '';\r\n const fieldName = this.control.settings.fieldName;\r\n return fieldName instanceof Function ? fieldName(item) : item[fieldName];\r\n };\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n}\r\n","<div\r\n class=\"w-full {{ control.styleClasses }}\"\r\n *ngIf=\"control && !control.hidden\"\r\n>\r\n <mat-form-field\r\n class=\"w-full\"\r\n [id]=\"control.elementId\"\r\n [appearance]=\"control.label ? 'outline' : 'standard'\"\r\n >\r\n <mat-label *ngIf=\"control.label\">\r\n {{ control.label }}\r\n </mat-label>\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required && !control.value?.length\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"internalControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n class=\"autocomplete-options\"\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n <mat-option\r\n *ngFor=\"let option of settings?.source | async\"\r\n [value]=\"option\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2 object-contain\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-chip-list>\r\n <mat-chip\r\n class=\"chip-style\"\r\n *ngFor=\"let chip of control.value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(chip)\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2 object-contain\"\r\n alt=\"\"\r\n [src]=\"chip | textByFunction: settings.fieldImage\"\r\n />\r\n {{ chip | textByFunction: settings.fieldName }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </div>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</div>\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule, TextByFunctionPipeModule } from '../../pipes';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { SpecialMultipleAutocompleteComponent } from './special-multiple-autocomplete.component';\n\n@NgModule({\n declarations: [SpecialMultipleAutocompleteComponent],\n imports: [\n MatInputModule,\n CommonModule,\n MatAutocompleteModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipeModule,\n TextByFunctionPipeModule,\n MatChipsModule,\n\n ],\n exports: [SpecialMultipleAutocompleteComponent],\n})\nexport class SpecialMultipleAutocompleteModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { ICheckboxSettings } from './special-checkbox.interface';\n@Component({\n selector: 'sp-checkbox',\n templateUrl: './special-checkbox.component.html',\n styleUrls: ['./special-checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialCheckboxComponent implements OnInit {\n @Input() control: SpecialFormControl<ICheckboxSettings>;\n constructor() {}\n ngOnInit(): void {}\n}\n","<div\n *ngIf=\"control\"\n [id]=\"control.elementId\"\n class=\"w-full flex flex-col {{ control.styleClasses }}\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <mat-checkbox\n [ngModel]=\"control.value\"\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\n [indeterminate]=\"control.settings.indeterminate\"\n [labelPosition]=\"control.settings.labelPosition\"\n [disabled]=\"control.disabled\"\n >\n <mat-icon *ngIf=\"control.icon\" matSuffix>{{ control.icon }} </mat-icon>\n {{ control.placeholder }}\n </mat-checkbox>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpecialCheckboxComponent } from './special-checkbox.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule } from '../../pipes';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\n\n@NgModule({\n declarations: [SpecialCheckboxComponent],\n imports: [\n FormsModule,\n MatCheckboxModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipeModule\n ],\n exports: [SpecialCheckboxComponent],\n})\nexport class SpecialCheckboxModule {}\n","import { ChangeDetectionStrategy } from '@angular/core';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { ITextAreaField } from './special-text-area.interface';\n@Component({\n selector: 'sp-text-area',\n templateUrl: './special-text-area.component.html',\n styleUrls: ['./special-text-area.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialTextAreaComponent implements OnInit {\n @Input() control: SpecialFormControl<ITextAreaField>;\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n @Output() onEnter: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<mat-form-field\n *ngIf=\"control\"\n [id]=\"control.elementId\"\n class=\"w-full {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'standard'\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <textarea\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n matInput\n (blur)=\"onBlur.emit(control.value)\"\n (keydown.enter)=\"onEnter.emit(control.value)\"\n [type]=\"control.settings?.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n ></textarea>\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n</mat-form-field>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpecialTextAreaComponent } from './special-text-area.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { InputMaskModule } from '@ngneat/input-mask';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule } from '../../pipes';\n\n@NgModule({\n declarations: [SpecialTextAreaComponent],\n imports: [\n InputMaskModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipeModule,\n ],\n exports: [SpecialTextAreaComponent],\n})\nexport class SpecialTextAreaModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { IUploadSettings } from './special-upload.interface';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'sp-upload',\n templateUrl: './special-upload.component.html',\n styleUrls: ['./special-upload.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialUploadComponent implements OnInit {\n control: SpecialFormControl<IUploadSettings>;\n\n @Input('control') set controlSetter(control) {\n this.control = control;\n this.previewImages = control.value;\n }\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n\n previewImages = [];\n\n constructor( private sanitizer: DomSanitizer) {}\n\n ngOnInit(): void {}\n\n onSelectMultiple(event) {\n this.previewImages = [\n ...this.previewImages,\n ...event.addedFiles.map(file =>\n ({\n lastModified: file.lastModified,\n url: this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file))\n }\n ))\n ];\n\n this.control.setValue(\n [\n ...this.control.value,\n ...event.addedFiles.map(this.fixFileName)\n ]\n );\n this.onSelect.emit(this.control.value)\n this.control.markAsDirty();\n }\n\n onSelectOne(event) {\n this.previewImages = event.addedFiles.map(file =>\n ({\n lastModified: file.lastModified,\n url: this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file))\n }))\n\n this.control.setValue(\n event.addedFiles.map(this.fixFileName)\n );\n this.onSelect.emit(this.control.value)\n this.control.markAsDirty();\n }\n\n fixFileName(file: File) {\n return Object.defineProperty(file, 'name', {\n writable: true,\n value: file.name.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\")\n });\n }\n\n clean() {\n this.previewImages = [];\n }\n onRemove(file) {\n this.control.setValue(this.control.value.filter(fl => fl.lastModified !== file.lastModified));\n this.previewImages = this.previewImages.filter(fl => fl.lastModified !== file.lastModified)\n }\n\n}\n","<div class=\"special_upload mb-2\">\n <ngx-dropzone\n class=\"special_upload__dropzone\"\n [ngClass]=\"{\n 'special_upload--error-dashed':\n !!control.errors && (control.dirty || control.touched)\n }\"\n [multiple]=\"control.settings?.multiple\"\n [accept]=\"\n control.settings?.accept\n ? control.settings?.accept\n : 'image/png, .jpeg, .jpg, image/gif'\n \"\n (change)=\"\n control.settings?.multiple\n ? onSelectMultiple($event)\n : onSelectOne($event)\n \"\n >\n <ngx-dropzone-label\n [ngClass]=\"{\n 'special_upload--error':\n !!control.errors && (control.dirty || control.touched)\n }\"\n >\n <mat-icon class=\"special_upload__icon\"*ngIf=\"control.icon\">{{ control.icon }} </mat-icon>\n <h2 class=\"text-base font-bold\">\n {{ control.label }}\n </h2>\n <h3 class=\"text-base\">\n {{ control.placeholder }}\n </h3>\n </ngx-dropzone-label>\n <ngx-dropzone-preview\n *ngFor=\"let file of previewImages\"\n [removable]=\"true\"\n (removed)=\"onRemove(file)\"\n >\n <ngx-dropzone-label class=\"special_upload__card\">\n <img class=\"special_upload__card--image\" [src]=\"file?.url\" alt=\"\" />\n </ngx-dropzone-label>\n </ngx-dropzone-preview>\n </ngx-dropzone>\n <div\n class=\"special_upload--error mt-2\"\n *ngIf=\"!!control.errors && (control.dirty || control.touched)\"\n >\n {{ control.errors | errorMessage: control.errorMessages }}\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpecialUploadComponent } from './special-upload.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule } from '../../pipes';\nimport { NgxDropzoneModule } from 'ngx-dropzone';\n\n@NgModule({\n declarations: [SpecialUploadComponent],\n imports: [\n FormsModule,\n NgxDropzoneModule,\n CommonModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipeModule\n ],\n exports: [SpecialUploadComponent],\n})\nexport class SpecialUploadModule {}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { ILabelSettings } from './special-label.interface';\n\n@Component({\n selector: 'sp-label',\n templateUrl: './special-label.component.html',\n styleUrls: ['./special-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialLabelComponent implements OnInit {\n @Input() control: SpecialFormControl<ILabelSettings>;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n get settings(): ILabelSettings {\n return this.control.settings || { isLink: false };\n }\n\n onLink() {\n if (this.settings.isLink && this.settings.onClickLink) {\n this.settings.onClickLink(this.control.value);\n }\n }\n}\n","<div class=\"px-2 {{control.styleClasses}} {{ control.value | textByFunction: settings.stylesPipe}}\">\n <div *ngIf=\"!!control.label\" class=\"font-bold\">{{control.label}}</div>\n <div [ngClass]=\"{'cursor-pointer text-blue-600 hover:text-blue-700':settings.isLink }\" (click)=\"onLink()\">\n {{ control.value | textByFunction: control.settings.pipe}}\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SpecialLabelComponent } from './special-label.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { InputMaskModule } from \"@ngneat/input-mask\";\nimport { MatIconModule } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ErrorMessagePipeModule, TextByFunctionPipeModule } from '../../pipes';\n\n@NgModule({\n declarations: [SpecialLabelComponent],\n imports: [\n InputMaskModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n TextByFunctionPipeModule,\n ErrorMessagePipeModule\n ],\n exports: [SpecialLabelComponent],\n})\nexport class SpecialLabelModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport {\r\n SpecialFormControl,\r\n} from '../../core/forms/special-forms';\r\n\r\n@Pipe({ name: 'controlsList' })\r\nexport class FormControlsListPipe implements PipeTransform {\r\n transform(controls: {\r\n [key: string]: AbstractControl;\r\n }): SpecialFormControl<any>[] {\r\n if (!controls) return [];\r\n return Object.values(controls)\r\n .filter((control: SpecialFormControl<any>) => !control.hidden)\r\n .map((control) => control as SpecialFormControl<any>);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Directive, ViewContainerRef } from '@angular/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { EControlTypes } from '@lib/core/aux-data/control-types.enum';\nimport {\n SpecialFormGroup,\n SpecialFormControl,\n} from '../../core/forms/special-forms';\nimport { SpecialAutocompleteComponent } from '../special-autocomplete/special-autocomplete.component';\nimport { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.component';\nimport { SpecialDatepickerComponent } from '../special-datepicker/special-datepicker.component';\nimport { SpecialDropdownComponent } from '../special-dropdown/special-dropdown.component';\nimport { SpecialInputComponent } from '../special-input/special-input.component';\nimport { SpecialLabelComponent } from '../special-label/special-label.component';\nimport { SpecialMultipleAutocompleteComponent } from '../special-multiple-autocomplete/special-multiple-autocomplete.component';\nimport { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';\nimport { SpecialUploadComponent } from '../special-upload/special-upload.component';\n\n@Component({\n selector: 'sp-form',\n templateUrl: './special-form.component.html',\n styleUrls: ['./special-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialFormComponent implements OnInit {\n @Input('control') form: SpecialFormGroup;\n set control(form: SpecialFormGroup) {\n this.form = form;\n }\n ngOnInit(): void {}\n}\n\n@Component({\n selector: 'sp-array',\n templateUrl: './special-form-array.component.html',\n styleUrls: ['./special-form-array.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialArrayComponent implements OnInit {\n @Input('control') formArray: any;\n\n set control(formArray: any) {\n this.formArray = formArray;\n }\n\n get withFormHeader() {\n return this.formArray.settings.withFormHeader;\n }\n\n get settings() {\n return this.formArray.settings;\n }\n\n constructor() {}\n\n ngOnInit() {}\n\n removeItem(index) {\n this.formArray.removeAt(index);\n }\n addItem() {\n this.formArray.addItem();\n }\n}\n\n@Directive({\n selector: `[controlRender]`,\n})\nexport class FormControlsRenderDirective {\n private readonly componentsBuffer = {\n [EControlTypes.autocomplete]: SpecialAutocompleteComponent,\n [EControlTypes.checkbox]: SpecialCheckboxComponent,\n [EControlTypes.date]: SpecialDatepickerComponent,\n [EControlTypes.dropdown]: SpecialDropdownComponent,\n [EControlTypes.array]: SpecialArrayComponent,\n [EControlTypes.input]: SpecialInputComponent,\n [EControlTypes.multiple]: SpecialMultipleAutocompleteComponent,\n [EControlTypes.textArea]: SpecialTextAreaComponent,\n [EControlTypes.label]: SpecialLabelComponent,\n [EControlTypes.upload]: SpecialUploadComponent,\n [EControlTypes.form]: SpecialFormComponent,\n };\n @Input('control') set controlSetter(control: SpecialFormControl<any>) {\n this.viewContainer.clear();\n const component = this.componentsBuffer[control.type];\n if (component) {\n const componentRef = this.viewContainer.createComponent(component);\n (componentRef.instance as any).control = control;\n }\n }\n\n constructor(private viewContainer: ViewContainerRef) {}\n}\n","<div class=\"w-full box-border p-2\">\n <div\n *ngIf=\"form\"\n [class]=\"\n form.label\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\n : 'container'\n \"\n >\n <h1 *ngIf=\"!!form.label\" class=\"font-bold py-3\">{{ form.label }}</h1>\n <div class=\"w-full flex flex-wrap\">\n <ng-template\n *ngFor=\"let control of form.controls | controlsList\"\n controlRender\n [control]=\"control\"\n ></ng-template>\n </div>\n </div>\n</div>\n","<div class=\"w-full box-border p-2\">\r\n <div\r\n *ngIf=\"formArray\"\r\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\r\n >\r\n <h1 *ngIf=\"!!formArray.label\" class=\"font-bold py-3\">\r\n {{ formArray.label }}\r\n </h1>\r\n <div class=\"divide-y divide-solid\">\r\n <div\r\n *ngIf=\"formArray.form\"\r\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\r\n class=\"grid gap-4 grid-cols-12\"\r\n >\r\n <ng-container *ngIf=\"!withFormHeader; else FORMHEADERREF\">\r\n <h2\r\n [class]=\"item.styleClasses\"\r\n *ngFor=\"let item of formArray.form.controls | controlsList\"\r\n >\r\n {{ item.label }}\r\n </h2>\r\n <div\r\n *ngIf=\"settings.withActionButtons\"\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n ></div>\r\n </ng-container>\r\n <ng-template #FORMHEADERREF>\r\n <ng-template\r\n *ngFor=\"let item of formArray.form.controls | controlsList\"\r\n controlRender\r\n [control]=\"item\"\r\n ></ng-template>\r\n <div\r\n *ngIf=\"settings.withActionButtons\"\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n >\r\n <button\r\n mat-flat-button\r\n color=\"primary\"\r\n [disabled]=\"formArray.form.invalid\"\r\n (click)=\"addItem()\"\r\n >\r\n Add\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div\r\n class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\"\r\n *ngFor=\"let formGroup of formArray.controls; let i = index\"\r\n >\r\n <ng-template\r\n *ngFor=\"let item of formGroup.controls | controlsList\"\r\n controlRender\r\n [control]=\"item\"\r\n ></ng-template>\r\n <div\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n >\r\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <table class=\"form-array-container__table\">\r\n <thead *ngIf=\"formArray.form\">\r\n <tr\r\n *ngIf=\"headerForm; else HEADERFORMREF\"\r\n class=\"form-array-container__table-header\"\r\n >\r\n <th\r\n class=\"header-cell\"\r\n *ngFor=\"let control of formArray.form | controlsList\"\r\n >\r\n {{ control.label | translate }}\r\n </th>\r\n <th *ngIf=\"!formArray.readOnly\"></th>\r\n </tr>\r\n <ng-template #HEADERFORMREF>\r\n <tr class=\"table-form-header\">\r\n <th\r\n class=\"header-cell\"\r\n [ngSwitch]=\"control.type\"\r\n *ngFor=\"let control of formArray.form | controlsList\"\r\n >\r\n <sp-form-control-selector\r\n [control]=\"control\"\r\n ></sp-form-control-selector>\r\n </th>\r\n <th class=\"header-cell\" *ngIf=\"!formArray.readOnly\">\r\n <ng-container *ngTemplateOutlet=\"ADDBUTTON\"></ng-container>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n </thead> -->\r\n\r\n<!-- [ngStyle]=\"{'max-height':'calc(100vh - '+maxHeight+'px)' }\"> -->\r\n<!-- <tbody>\r\n <tr *ngFor=\"let formGroup of formArray.controls; let i = index\">\r\n <td [ngSwitch]=\"control.type\" *ngFor=\"let control of formGroup.controls | controlsList\">\r\n <sp-form-control-selector\r\n [control]=\"control\"\r\n ></sp-form-control-selector>\r\n </td>\r\n <td *ngIf=\"!formArray.readOnly\">\r\n <bmb-button\r\n [icon]=\"'delete_outline'\"\r\n [type]=\"'Raised'\"\r\n [size]=\"'XLarge'\"\r\n [bdrColor]=\"'error-500'\"\r\n [tColor]=\"'error-500'\"\r\n (onClick)=\"deleteItem(i)\"\r\n >\r\n </bmb-button>\r\n </td>\r\n </tr>\r\n </tbody> -->\r\n<!-- </table> -->\r\n\r\n<!-- <ng-template #TABLET>\r\n <div class=\"mt-1\">\r\n <ng-container *ngIf=\"headerFormEnable\">\r\n <div class=\"card-form-container\">\r\n <automatic-forms [form]=\"formArray.form\" [enableButtons]=\"false\">\r\n </automatic-forms>\r\n <ng-container *ngTemplateOutlet=\"ADDBUTTON\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-content select=\"[header]\"></ng-content>\r\n </div>\r\n <div class=\"accordion-container\">\r\n <mat-accordion>\r\n <mat-expansion-panel\r\n class=\"mat-elevation-z1\"\r\n *ngFor=\"let item of formArray.controls; let i = index\"\r\n >\r\n <mat-expansion-panel-header\r\n class=\"expanded-header\"\r\n collapsedHeight=\"3rem\"\r\n expandedHeight=\"3rem\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"cardHeaderTemplate; context: { $implicit: item }\"\r\n >\r\n </ng-container>\r\n <mat-icon\r\n *ngIf=\"!formArray.readOnly\"\r\n class=\"mobile-delete\"\r\n (click)=\"deleteItem(i)\"\r\n color=\"warn\"\r\n >\r\n delete_outline\r\n </mat-icon>\r\n </mat-expansion-panel-header>\r\n <ng-container\r\n *ngTemplateOutlet=\"cardBodyTemplate; context: { $implicit: item }\"\r\n >\r\n </ng-container>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n</ng-template>\r\n\r\n<div class=\"text-error\" *ngIf=\"formArray.dirty && formArray.invalid\">\r\n {{ formArray.errors | errorMessage | translate }}\r\n</div>\r\n\r\n<ng-template #ADDBUTTON>\r\n <div class=\"add-item-btn\">\r\n <bmb-button\r\n [icon]=\"'add'\"\r\n [type]=\"'Raised'\"\r\n [bdrColor]=\"'aux-success'\"\r\n [size]=\"'XLarge'\"\r\n [tColor]=\"'aux-success'\"\r\n [disabled]=\"!formArray.form.valid || !formArray.form.dirty\"\r\n (onClick)=\"addItemAction()\"\r\n >\r\n </bmb-button>\r\n </div>\r\n</ng-template> -->\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormControlsListPipe } from './controls-list.pipe';\r\n\r\n@NgModule({\r\n declarations: [FormControlsListPipe],\r\n imports: [CommonModule],\r\n exports: [FormControlsListPipe],\r\n})\r\nexport class FormControlsListPipeModule {}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n FormControlsRenderDirective,\n SpecialFormComponent,\n SpecialArrayComponent,\n} from './special-form.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormControlsListPipeModule } from '../../pipes/controls-list-pipe/controls-list.pipe.module';\nimport {\n SpecialDropdownModule,\n SpecialInputModule,\n SpecialAutocompleteModule,\n SpecialDatepickerModule,\n SpecialMultipleAutocompleteModule,\n SpecialCheckboxModule,\n SpecialTextAreaModule,\n SpecialUploadModule,\n SpecialLabelModule,\n} from '../../components';\n\n@NgModule({\n declarations: [\n SpecialArrayComponent,\n FormControlsRenderDirective,\n SpecialFormComponent,\n ],\n imports: [\n CommonModule,\n FormControlsListPipeModule,\n MatButtonModule,\n SpecialDropdownModule,\n SpecialInputModule,\n SpecialAutocompleteModule,\n SpecialDatepickerModule,\n SpecialLabelModule,\n SpecialMultipleAutocompleteModule,\n SpecialCheckboxModule,\n SpecialTextAreaModule,\n SpecialUploadModule,\n ],\n exports: [\n SpecialArrayComponent,\n FormControlsRenderDirective,\n SpecialFormComponent,\n ],\n})\nexport class SpecialFormModule {}\n","export enum EControlTypes {\r\n pkey = 'PRIMARY-KEY',\r\n input = 'INPUT',\r\n textArea = 'TEXT-AREA',\r\n dropdown = 'DROPDOWN',\r\n date = 'DATE',\r\n time = 'TIME',\r\n checkbox = 'CHECKBOX',\r\n upload = 'UPLOAD',\r\n autocomplete = 'AUTOCOMPLETE',\r\n multiple = 'MULTIPLE-AUTOCOMPLETE',\r\n array = 'ARRAY',\r\n form = 'FORM',\r\n label = 'LABEL',\r\n default = 'DEFAULT',\r\n}\r\n","import {\r\n AbstractControl,\r\n FormArray,\r\n FormControl,\r\n FormGroup,\r\n} from '@angular/forms';\r\nimport { EControlTypes } from '../aux-data/control-types.enum';\r\nimport { IFieldBasicData } from '../interfaces/field-basics.interfaces';\r\nimport {\r\n IArraySettings,\r\n IFormSettings,\r\n TSpecialFields,\r\n TSpecialForm,\r\n TSpecialArray,\r\n} from '../interfaces/form.interfaces';\r\nexport class SpecialFormControl<T>\r\n extends FormControl\r\n implements IFieldBasicData\r\n{\r\n public name: string;\r\n public placeholder: string;\r\n public label: string;\r\n public tooltip: string;\r\n public icon: string;\r\n public elementId: string;\r\n public styleClasses: string;\r\n public length: number;\r\n public required: boolean;\r\n public hidden: boolean;\r\n public readOnly: boolean;\r\n public settings: T;\r\n public type: EControlTypes;\r\n public errorMessages: { [key: string]: string };\r\n\r\n constructor({\r\n name,\r\n settings,\r\n type,\r\n validators,\r\n asyncValidators,\r\n elementId,\r\n styleClasses,\r\n defaultValue,\r\n hidden,\r\n icon,\r\n label,\r\n length,\r\n placeholder,\r\n readOnly,\r\n required,\r\n tooltip,\r\n errorMessages,\r\n disabled,\r\n }: TSpecialFields) {\r\n super(defaultValue, validators, asyncValidators);\r\n\r\n this.name = name;\r\n this.placeholder = placeholder;\r\n this.label = label;\r\n this.tooltip = tooltip;\r\n this.icon = icon;\r\n this.elementId = elementId;\r\n this.settings = settings as T;\r\n this.type = type;\r\n this.styleClasses = styleClasses;\r\n this.hidden = hidden;\r\n this.length = length;\r\n this.readOnly = readOnly;\r\n this.required = required;\r\n this.errorMessages = errorMessages;\r\n disabled ? this.disable() : this.enable();\r\n }\r\n\r\n setReadOnly(status: boolean = true) {\r\n this.readOnly = status;\r\n }\r\n\r\n setDisabled(status: boolean = true) {\r\n status ? this.disable() : this.enable();\r\n }\r\n\r\n setHidden(status = true) {\r\n this.hidden = status;\r\n }\r\n}\r\nexport class SpecialFormGroup extends FormGroup implements IFieldBasicData {\r\n public name: string;\r\n public placeholder: string;\r\n public label: string;\r\n public tooltip: string;\r\n public icon: string;\r\n public elementId: string;\r\n public styleClasses: string;\r\n public length: number;\r\n public required: boolean;\r\n public hidden: boolean;\r\n public readOnly: boolean;\r\n public settings: IFormSettings;\r\n public type: EControlTypes.form;\r\n public defaultValue: any;\r\n public errorMessages: { [key: string]: string };\r\n\r\n constructor(\r\n {\r\n name,\r\n settings,\r\n type,\r\n validators,\r\n asyncValidators,\r\n elementId,\r\n styleClasses,\r\n defaultValue,\r\n hidden,\r\n icon,\r\n label,\r\n length,\r\n placeholder,\r\n readOnly,\r\n required,\r\n tooltip,\r\n disabled,\r\n }: TSpecialForm,\r\n controls: {\r\n [key: string]: SpecialFormControl<any>;\r\n },\r\n ) {\r\n super(controls, validators, asyncValidators);\r\n\r\n this.name = name;\r\n this.placeholder = placeholder;\r\n this.label = label;\r\n this.tooltip = tooltip;\r\n this.icon = icon;\r\n this.elementId = elementId;\r\n this.settings = settings;\r\n this.type = type;\r\n this.styleClasses = styleClasses;\r\n this.hidden = hidden;\r\n this.length = length;\r\n this.readOnly = readOnly;\r\n this.required = required;\r\n this.defaultValue = defaultValue;\r\n disabled ? this.disable() : this.enable();\r\n }\r\n\r\n unpristineRequired() {\r\n Object.values(this.controls).forEach((control) => {\r\n if (control instanceof SpecialFormControl) {\r\n control.markAsDirty();\r\n } else if (control instanceof SpecialFormGroup) {\r\n control.unpristineRequired();\r\n } else if (control instanceof SpecialFormArray) {\r\n control.unpristineRequired();\r\n }\r\n });\r\n }\r\n\r\n specialReset(value = {}) {\r\n const aux: any = {};\r\n Object.entries(this.controls).map(([key, control]) => {\r\n if (control instanceof SpecialFormControl) {\r\n aux[key] = control.defaultValue;\r\n } else if (control instanceof SpecialFormArray) {\r\n control.clear();\r\n }\r\n });\r\n\r\n this.reset({ ...aux, ...value });\r\n }\r\n setReadOnly(status: boolean = true) {\r\n Object.values(this.controls).map((value) => {\r\n if (\r\n value instanceof SpecialFormControl ||\r\n value instanceof SpecialFormArray ||\r\n value instanceof SpecialFormGroup\r\n ) {\r\n value.setReadOnly(status);\r\n }\r\n });\r\n }\r\n setReadOnlyByFields(fieldsObject: { [key: string]: boolean }) {\r\n Object.entries(fieldsObject).map(([key, value]) => {\r\n const control = this.controls[key];\r\n if (control instanceof SpecialFormControl) {\r\n control.readOnly = value;\r\n }\r\n });\r\n }\r\n\r\n setHiddenByFields(fields: { [key: string]: boolean }) {\r\n Object.entries(fields).map(([key, value]) => {\r\n const control = this.controls[key];\r\n if (control instanceof SpecialFormControl) {\r\n control.hidden = value;\r\n }\r\n });\r\n }\r\n setDisabled(status: boolean) {\r\n Object.values(this.controls).map((value) => {\r\n if (\r\n value instanceof SpecialFormControl ||\r\n value instanceof SpecialFormArray ||\r\n value instanceof SpecialFormGroup\r\n ) {\r\n value.setDisabled(status);\r\n }\r\n });\r\n }\r\n\r\n setDisabledByFields(fieldsObject: any) {\r\n Object.entries(fieldsObject).map((entries) => {\r\n if (this.controls[entries[0]] instanceof SpecialFormControl) {\r\n entries[1]\r\n ? this.controls[entries[0]].enable()\r\n : this.controls[entries[0]].disable();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * donde value es el objeto semilla y detailForm es un arreglo de form key para dar un marco al formarray\r\n */\r\n\r\n setFormValue(value: any) {\r\n this.specialReset(value);\r\n Object.entries(this.controls)\r\n .filter(([_key, control]) => control instanceof SpecialFormArray)\r\n .map(([key, control]) => {\r\n (control as SpecialFormArray).fillFormArray(value[key]);\r\n });\r\n }\r\n\r\n /**\r\n * Método que retorna\r\n */\r\n\r\n getIdPkey(): SpecialFormControl<any> | undefined {\r\n return Object.values(this.controls).find(\r\n (control) =>\r\n control instanceof SpecialFormControl && control.type === 'PRIMARY-KEY'\r\n ) as SpecialFormControl<any> | undefined;\r\n }\r\n}\r\n\r\nexport class SpecialFormArray extends FormArray implements IFieldBasicData {\r\n public name: string;\r\n public placeholder: string;\r\n public label: string;\r\n public tooltip: string;\r\n public icon: string;\r\n public elementId: string;\r\n public styleClasses: string;\r\n public required: boolean;\r\n public hidden: boolean;\r\n public readOnly: boolean;\r\n public settings: IArraySettings;\r\n public type: EControlTypes;\r\n public defaultValue: any;\r\n public form: SpecialFormGroup;\r\n private formCreation: (value?: any) => SpecialFormGroup;\r\n public errorMessages: { [key: string]: string };\r\n\r\n constructor(\r\n {\r\n name,\r\n settings,\r\n type,\r\n validators,\r\n asyncValidators,\r\n elementId,\r\n styleClasses,\r\n defaultValue,\r\n hidden,\r\n icon,\r\n label,\r\n placeholder,\r\n readOnly,\r\n required,\r\n tooltip,\r\n errorMessages,\r\n disabled,\r\n }: TSpecialArray,\r\n formCreation: () => SpecialFormGroup,\r\n controls: AbstractControl[]\r\n ) {\r\n super(controls, validators, asyncValidators);\r\n this.formCreation = formCreation;\r\n this.form = this.formCreation();\r\n this.name = name;\r\n this.placeholder = placeholder;\r\n this.label = label;\r\n this.tooltip = tooltip;\r\n this.icon = icon;\r\n this.elementId = elementId;\r\n this.settings = settings;\r\n this.type = type;\r\n this.styleClasses = styleClasses;\r\n this.hidden = hidden;\r\n this.readOnly = readOnly;\r\n this.required = required;\r\n this.defaultValue = defaultValue;\r\n this.errorMessages = errorMessages;\r\n disabled ? this.disable() : this.enable();\r\n }\r\n\r\n fillFormArray(data: any[]) {\r\n this.form.reset();\r\n this.clear();\r\n data.forEach((item) => {\r\n const form = this.formCreation(item);\r\n this.push(form);\r\n });\r\n }\r\n\r\n addItem() {\r\n const form = this.formCreation(this.form.value);\r\n\r\n this.form.specialReset();\r\n this.push(form);\r\n this.markAsDirty();\r\n }\r\n\r\n specialPush(index?: number) {\r\n const form = this.formCreation(this.form.value);\r\n if (!index) this.push(form);\r\n else this.controls[index].reset(this.form.value);\r\n }\r\n\r\n specialInsert(index = 0) {\r\n const form = this.formCreation(this.form.value);\r\n this.insert(index, form);\r\n }\r\n\r\n specialEdit(index: number, newValue: Object) {\r\n this.controls[index].reset({ ...this.controls[index].value, ...newValue });\r\n this.markAsDirty();\r\n }\r\n\r\n /**\r\n * Vuelve todos los controles del formArray de lectura o de sololectura\r\n * @param status\r\n */\r\n\r\n setReadOnly(status: boolean) {\r\n this.readOnly = status;\r\n this.controls.forEach((control) => {\r\n if (control instanceof SpecialFormGroup) {\r\n control.setReadOnly(status);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Vuelve todos los controles del formArray habilitados o deshabilitados\r\n * @param status\r\n */\r\n\r\n setDisabled(status: boolean) {\r\n status ? this.disable() : this.enable();\r\n this.controls.forEach((control) => {\r\n if (control instanceof SpecialFormGroup) {\r\n control.setDisabled(status);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Permite editar un control especifico.\r\n * @param index\r\n */\r\n\r\n editControl(index: number) {\r\n this.form.reset(this.controls[index].value);\r\n }\r\n\r\n unpristineRequired() {\r\n this.markAsDirty();\r\n this.controls.forEach((item) => {\r\n (<SpecialFormGroup>item).unpristineRequired();\r\n });\r\n }\r\n\r\n recursiveFillForm(form: FormGroup, data: any): FormGroup {\r\n Object.entries(form.controls).map(([key, control]) => {\r\n if (control instanceof FormControl) {\r\n control.setValue(data[key]);\r\n } else if (control instanceof FormArray) {\r\n data[key].forEach(() => {});\r\n } else if (control instanceof FormGroup) {\r\n control.reset(data[key]);\r\n }\r\n });\r\n return form;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\nimport { IAutocompleteSettings } from '../../../components/special-autocomplete/special-autocomplete.interface';\nimport { EControlTypes } from '../../aux-data/control-types.enum';\nimport {\n SpecialFormArray,\n SpecialFormControl,\n SpecialFormGroup,\n} from '../../forms/special-forms';\nimport { IFieldData } from '../../interfaces/field-basics.interfaces';\nimport {\n IFormStructure,\n TRawFields,\n TSpecialArray,\n TSpecialFields,\n TSpecialForm,\n TSpecialInput,\n} from '../../interfaces/form.interfaces';\n\ninterface IControlParams {\n name: string;\n control: SpecialFormArray | SpecialFormGroup | SpecialFormControl<any>;\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class SpecialFormBuilderService {\n private readonly defectField: IFieldData = {\n asyncValidators: null,\n validators: null,\n defaultValue: null,\n elementId: '',\n hidden: false,\n icon: '',\n label: '',\n disabled: false,\n length: 0,\n placeholder: '',\n readOnly: false,\n required: false,\n styleClasses: '',\n errorMessages: {},\n tooltip: '',\n };\n\n private readonly inputDefectField: TSpecialInput = {\n ...this.defectField,\n settings: {},\n type: EControlTypes.input,\n name: '',\n };\n\n private readonly formDefectField: TSpecialForm = {\n ...this.defectField,\n settings: {\n formFields: {},\n },\n type: EControlTypes.form,\n name: '',\n };\n\n private readonly arrayDefectField: TSpecialArray = {\n ...this.defectField,\n settings: {\n formFields: {},\n },\n type: EControlTypes.array,\n name: '',\n };\n\n constructor() {}\n\n public control(field: Partial<TSpecialFields>): SpecialFormControl<any> {\n const formField: TSpecialFields = {\n ...this.inputDefectField,\n ...field,\n } as TSpecialFields;\n const { control } = this.setFormControl(formField);\n return control;\n }\n\n public group(\n fields: IFormStructure,\n parentField: Partial<TSpecialForm> = {}\n ) {\n return this.formGenerator(this.fieldDataToArray(fields), parentField);\n }\n\n public array() {}\n\n public fieldDataToArray(fields: IFormStructure): TSpecialFields[] {\n return Object.entries(fields).map(([name, field]) =>\n this.setDefectFieldOptions(name, field)\n );\n }\n\n private setDefectFieldOptions(\n name: string,\n field: Partial<TRawFields>\n ): TSpecialFields {\n return {\n ...this.inputDefectField,\n ...field,\n name,\n } as TSpecialFields;\n }\n\n private formGenerator(\n fields: TSpecialFields[],\n parentField: Partial<TSpecialForm> = {}\n ): SpecialFormGroup {\n const formField: TSpecialForm = {\n ...this.formDefectField,\n ...parentField,\n };\n const structure = fields\n .map((field) => this.getControlAndNameByType(field))\n .reduce(\n (prev, { name, control }: IControlParams) => ({\n ...prev,\n [name]: control,\n }),\n {}\n );\n return new SpecialFormGroup(formField, structure);\n }\n\n private getControlAndNameByType(field: TSpecialFields) {\n switch (field.type) {\n case EControlTypes.array:\n return this.setFormArray(field);\n case EControlTypes.form:\n return this.setFormGroup(field);\n default:\n return this.setFormControl(field);\n }\n }\n\n private setFormGroup(field: TSpecialForm): {\n name: string;\n control: SpecialFormGroup;\n } {\n const control = this.formGenerator(\n this.fieldDataToArray(field.settings.formFields),\n field\n );\n return { control, name: field.name };\n }\n\n private setFormArray(field: TSpecialArray): {\n name: string;\n control: SpecialFormArray;\n } {\n const auxForm = (value = {}) => {\n const auxForm = this.formGenerator(\n this.fieldDataToArray(field.settings.formFields),\n {}\n );\n auxForm.reset(value);\n return auxForm;\n };\n\n if (field.required) {\n field.validators = this.setValidatorsArray(field.validators, [\n this.arrayLengthRequired,\n ]);\n }\n\n return {\n name: field.name,\n control: new SpecialFormArray(field, auxForm, []),\n };\n }\n\n private setFormControl(field: TSpecialFields): {\n name: string;\n control: SpecialFormControl<any>;\n } {\n const validators: ValidatorFn[] = [];\n\n if (field.required) validators.push(this.setRequiredValidator(field));\n if (field.length) validators.push(Validators.maxLength(field.length));\n\n field.validators = this.setValidatorsArray(field.validators, validators);\n\n return {\n name: field.name,\n control: new SpecialFormControl(field),\n };\n }\n\n private setRequiredValidator(field: TSpecialFields): ValidatorFn {\n if (field.type !== EControlTypes.autocomplete) {\n return Validators.required;\n }\n\n return (control: SpecialFormControl<IAutocompleteSettings>) =>\n !!control.value && control.value instanceof Object\n ? null\n : { required: true };\n }\n private setValidatorsArray(\n validators: ValidatorFn | ValidatorFn[] | null,\n newValidators: ValidatorFn[]\n ): ValidatorFn[] {\n if (!validators) {\n return newValidators;\n }\n return validators instanceof Array\n ? [...validators, ...newValidators]\n : [validators, ...newValidators];\n }\n\n private arrayLengthRequired(control: AbstractControl) {\n if (control.value.length) {\n return {};\n }\n return { noItems: 'NO_SELECTED_ITEM' };\n }\n}\n","/*\n * Public API Surface of special-forms\n */\n\nexport * from './lib/components';\nexport * from './lib/core/services/index';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i4","i5","i6","i7","i8.ErrorMessagePipe","i1","i9.TextByFunctionPipe","i8","i9.ErrorMessagePipe","i10.TextByFunctionPipe","i6.ErrorMessagePipe","i10.ErrorMessagePipe","i11.TextByFunctionPipe","i7.ErrorMessagePipe","i5.ErrorMessagePipe","i2.TextByFunctionPipe","i2.FormControlsListPipe","EControlTypes"],"mappings":"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"}
|