special-forms 21.0.0 → 21.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.
@@ -1 +1 @@
1
- {"version":3,"file":"special-forms.mjs","sources":["../../../projects/special-forms/src/lib/core/pipes/error-message-pipe/error.pipe.ts","../../../projects/special-forms/src/lib/core/pipes/text-by-function/text-by-function.pipe.ts","../../../projects/special-forms/src/lib/core/pipes/controls-list-pipe/controls-list.pipe.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-input/special-input.component.ts","../../../projects/special-forms/src/lib/components/special-input/special-input.component.html","../../../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-datepicker/special-datepicker.component.ts","../../../projects/special-forms/src/lib/components/special-datepicker/special-datepicker.component.html","../../../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-checkbox/special-checkbox.component.ts","../../../projects/special-forms/src/lib/components/special-checkbox/special-checkbox.component.html","../../../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-upload/filename.pipe.ts","../../../projects/special-forms/src/lib/components/special-upload/preview-image-pipe.ts","../../../projects/special-forms/src/lib/components/special-upload/truncate.pipe.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/lib/core/services/error-state-matcher/error-matcher.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-label/special-label.component.ts","../../../projects/special-forms/src/lib/components/special-label/special-label.component.html","../../../projects/special-forms/src/lib/components/special-richtext/special-richtext.component.ts","../../../projects/special-forms/src/lib/components/special-richtext/special-richtext.component.html","../../../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/components/special-form/special-form.module.ts","../../../projects/special-forms/src/lib/core/interfaces/special-control.interface.ts","../../../projects/special-forms/src/lib/core/masks/currency.mask.ts","../../../projects/special-forms/src/lib/core/masks/number.mask.ts","../../../projects/special-forms/src/public-api.ts","../../../projects/special-forms/src/special-forms.ts"],"sourcesContent":["import { Pipe, PipeTransform } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\n@Pipe({\n name: \"errorMessage\",\n standalone:true\n})\nexport class ErrorMessagePipe implements PipeTransform {\n transform(\n errorsObj: { [key: string]: any },\n errorMessages: { [key: string]: any },\n control?: FormControl\n ): any {\n const errors = errorsObj ? Object.keys(errorsObj) : [];\n const error = errors[0];\n const message = errorMessages[error] || error;\n if (control) {\n control.setErrors(errorsObj);\n }\n return message;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'textByFunction', standalone: true })\nexport class TextByFunctionPipe implements PipeTransform {\n transform(value: any, field: string | ((value: any) => string)): any {\n if (field instanceof Function) {\n return field(value);\n } else if (value instanceof Object) {\n return value[field];\n }\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { SpecialFormControl } from '../../forms/special-forms';\n\n@Pipe({ name: 'controlsList', standalone: true })\nexport class FormControlsListPipe implements PipeTransform {\n transform(controls: {\n [key: string]: AbstractControl;\n }): SpecialFormControl<any>[] {\n if (!controls) return [];\n return Object.values(controls)\n .filter((control: SpecialFormControl<any>) => !control.hidden)\n .map((control) => control as SpecialFormControl<any>);\n }\n}\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n MatAutocompleteModule,\n MatAutocompleteSelectedEvent,\n} from '@angular/material/autocomplete';\nimport { Subscription } from 'rxjs';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport {\n IAutocompleteField,\n IAutocompleteSettings,\n} from './special-autocomplete.interface';\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ErrorMessagePipe, TextByFunctionPipe } from '../../core/pipes';\n@Component({\n selector: 'sp-autocomplete',\n templateUrl: './special-autocomplete.component.html',\n styleUrls: ['./special-autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatInputModule,\n CommonModule,\n MatAutocompleteModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipe,\n TextByFunctionPipe,\n ]\n})\nexport class SpecialAutocompleteComponent {\n @Input() control: SpecialFormControl<IAutocompleteField>;\n subs = new Subscription();\n\n constructor() {}\n\n ngOnInit() {\n this.init();\n }\n\n get settings(): IAutocompleteSettings<any> {\n return this.control.settings;\n }\n\n init() {\n this.subs.add(\n this.control.valueChanges.pipe(debounceTime(500)).subscribe((value) => {\n if (typeof value === 'string') {\n this.settings.getData(value, this.control);\n }\n })\n );\n }\n\n configValue = (item: any) => {\n if (!item) return '';\n const fieldName = this.settings.fieldName;\n return fieldName instanceof Function ? fieldName(item) : item[fieldName];\n };\n\n optionSelected(data: MatAutocompleteSelectedEvent) {\n this.control.setValue(data.option.value);\n if (this.settings.onSelect) this.settings.onSelect(data.option.value);\n }\n\n iconClick(event: Event) {\n if (this.settings.iconAction) {\n this.settings.iconAction(this.control.value);\n event.stopPropagation();\n }\n }\n\n ngOnDestroy() {\n this.subs.unsubscribe();\n }\n}\n","@if (control && !control.hidden) {\n <mat-form-field\n class=\"special-autocomplete w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n type=\"text\"\n autocomplete=\"off\"\n [required]=\"control.required\"\n [readonly]=\"control.readOnly\"\n [placeholder]=\"control.placeholder\"\n matInput\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"configValue\"\n (optionSelected)=\"optionSelected($event)\"\n >\n @for (\n option of settings?.source | async;\n track option[settings.fieldId]\n ) {\n <mat-option [value]=\"option\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"option | textByFunction: settings.fieldImage\"\n />\n }\n <span>\n {{ option | textByFunction: settings.fieldName }}\n </span>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n","\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { InputMaskModule } from '@ngneat/input-mask';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { ErrorMessagePipe } from '../../core/pipes';\nimport { IInputField, IInputSettings } from './special-input.interface';\n\n@Component({\n selector: 'sp-input',\n templateUrl: './special-input.component.html',\n styleUrls: ['./special-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n InputMaskModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipe\n],\n})\nexport class SpecialInputComponent implements OnInit {\n @Input() control!: SpecialFormControl<IInputField>;\n\n watchValue = signal(false);\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: Event) {\n if (this.settings.iconAction) {\n this.settings.iconAction(this.control.value);\n event.stopPropagation();\n }\n }\n\n clear() {\n this.control.reset('');\n }\n\n watch() {\n this.watchValue.set(!this.watchValue());\n }\n}\n","@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-input w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n matInput\n (blur)=\"onBlurAction()\"\n (keydown.enter)=\"onEnterClick()\"\n [inputMask]=\"settings?.mask\"\n autocomplete=\"off\"\n [type]=\"watchValue() ? 'text' : this.settings.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [maxlength]=\"settings?.withMaxlength ? control.length : null\"\n [formControl]=\"control\"\n />\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n\n @if (settings.withClearButton && control.value) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clear(); $event.preventDefault(); $event.stopPropagation()\"\n >\n <mat-icon> close </mat-icon>\n </button>\n }\n\n @if (settings.withWatchButton && settings.type === \"password\") {\n <button\n mat-icon-button\n matSuffix\n (click)=\"watch(); $event.preventDefault(); $event.stopPropagation()\"\n >\n <mat-icon>\n {{ watchValue() ? \"visibility_off\" : \"visibility\" }}\n </mat-icon>\n </button>\n }\n\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n @if (settings.withCounter && control.length) {\n <mat-hint align=\"end\"\n >{{ control.value?.length ?? 0 }} / {{ control.length }}</mat-hint\n >\n }\n </mat-form-field>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n} from '@angular/core';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { IDropdownField, IDropdownSettings } from './special-dropdown.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n ErrorMessagePipe,\n TextByFunctionPipe,\n} from '../../core/pipes';\n@Component({\n selector: 'sp-dropdown',\n templateUrl: './special-dropdown.component.html',\n styleUrls: ['./special-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n MatSelectModule,\n ReactiveFormsModule,\n ErrorMessagePipe,\n MatIconModule,\n MatButtonModule,\n TextByFunctionPipe,\n ]\n})\nexport class SpecialDropdownComponent {\n @Input() control!: SpecialFormControl<IDropdownField>;\n\n get settings(): IDropdownSettings {\n return this.control.settings;\n }\n\n iconClick(event: Event) {\n if (this.settings.iconAction) {\n this.settings.iconAction(this.control.value);\n event.stopPropagation();\n }\n }\n\n optionSelected(value: any) {\n if (this.settings.onSelect) this.settings.onSelect(value);\n }\n}\n","@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-dropdown w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <mat-select\n [formControl]=\"control\"\n [required]=\"control.required\"\n (selectionChange)=\"optionSelected($event.value)\"\n [placeholder]=\"control.placeholder\"\n >\n @if (!control.required) {\n <mat-option [value]=\"null\">\n {{ control.placeholder || settings.notSelectedText }}\n </mat-option>\n }\n @for (item of settings.source | async; track item[settings.fieldId]) {\n <mat-option [value]=\"item[settings.fieldId]\">\n {{ item | textByFunction: settings.fieldName }}\n </mat-option>\n }\n </mat-select>\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n","\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { ErrorMessagePipe } from '../../core/pipes';\nimport {\n IDatePickerField,\n IDatePickerSettings,\n} from './special-datepicker.interface';\n@Component({\n selector: 'sp-datepicker',\n templateUrl: './special-datepicker.component.html',\n styleUrls: ['./special-datepicker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatInputModule,\n MatDatepickerModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipe,\n MatNativeDateModule\n]\n})\nexport class SpecialDatepickerComponent implements OnInit {\n @Input() control!: SpecialFormControl<IDatePickerField>;\n\n constructor() {}\n\n get settings(): IDatePickerSettings {\n return this.control.settings;\n }\n\n get startAt() {\n return this.settings?.startAt || new Date();\n }\n\n ngOnInit(): void {}\n}\n","@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\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}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n MatAutocompleteModule,\n MatAutocompleteSelectedEvent,\n} from '@angular/material/autocomplete';\nimport { Subscription } from 'rxjs';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { IMultipleAutocompleteField, IMultipleAutocompleteSettings } from './special-multiple-autocomplete.interface';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { MatChipsModule } from '@angular/material/chips';\nimport { ErrorMessagePipe, TextByFunctionPipe } from '../../core/pipes';\n\n@Component({\n selector: 'sp-multiple-autocomplete',\n templateUrl: './special-multiple-autocomplete.component.html',\n styleUrls: ['./special-multiple-autocomplete.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatInputModule,\n CommonModule,\n MatAutocompleteModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipe,\n TextByFunctionPipe,\n MatChipsModule,\n ]\n})\nexport class SpecialMultipleAutocompleteComponent {\n @Input() control!: SpecialFormControl<IMultipleAutocompleteField>;\n\n subs = new Subscription();\n internalControl = new FormControl();\n\n constructor() {}\n\n ngOnInit() {\n this.init();\n }\n\n get settings(): IMultipleAutocompleteSettings<any> {\n return this.control.settings;\n }\n\n init() {\n this.subs.add(\n this.internalControl.valueChanges\n .pipe(debounceTime(500))\n .subscribe((value) => {\n if (typeof value === 'string') {\n this.control.settings.getData(value, this.control);\n }\n })\n );\n }\n\n optionSelected(data: MatAutocompleteSelectedEvent) {\n const newItem = data.option.value;\n this.internalControl.reset();\n this.control.setValue([\n ...(this.control.value || []).filter(\n (item: any) =>\n item[this.control.settings.fieldId] !==\n newItem[this.control.settings.fieldId]\n ),\n newItem,\n ]);\n\n if (this.settings.onSelect) this.settings.onSelect(newItem);\n }\n\n iconClick(event: Event) {\n if (this.settings.iconAction) {\n this.settings.iconAction(this.control.value);\n event.stopPropagation();\n }\n }\n\n remove(value: any[]): void {\n let currentValues = Array.from(this.control.value);\n const index = currentValues.indexOf(value);\n\n if (index > -1) {\n currentValues.splice(index, 1);\n const value = currentValues;\n this.control.markAsDirty();\n this.control.setValue(value);\n }\n }\n\n configValue = (item: any) => {\n if (!item) return '';\n const fieldName = this.control.settings.fieldName;\n return fieldName instanceof Function ? fieldName(item) : item[fieldName];\n };\n\n ngOnDestroy() {\n this.subs.unsubscribe();\n }\n}\n","@if (control && !control.hidden) {\n <div\n class=\"special-multiple-autocomplete w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n >\n <mat-form-field\n class=\"w-full\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n type=\"text\"\n autocomplete=\"off\"\n [required]=\"control.required && !control.value?.length\"\n [readonly]=\"control.readOnly\"\n [placeholder]=\"control.placeholder\"\n matInput\n [formControl]=\"internalControl\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"configValue\"\n (optionSelected)=\"optionSelected($event)\"\n >\n @for (\n option of settings?.source | async;\n track option[settings.fieldId]\n ) {\n <mat-option [value]=\"option\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"option | textByFunction: settings.fieldImage\"\n />\n }\n <span>\n {{ option | textByFunction: settings.fieldName }}\n </span>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n\n <mat-chip-listbox>\n @for (chip of control.value; track chip[settings.fieldId]) {\n <mat-chip-row [removable]=\"true\" (removed)=\"remove(chip)\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"chip | textByFunction: settings.fieldImage\"\n />\n }\n {{ chip | textByFunction: settings.fieldName }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </div>\n </mat-chip-row>\n }\n </mat-chip-listbox>\n </div>\n}\n","\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { ErrorMessagePipe } from '../../core/pipes';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { ICheckboxField, ICheckboxSettings } from './special-checkbox.interface';\n\n@Component({\n selector: 'sp-checkbox',\n templateUrl: './special-checkbox.component.html',\n styleUrls: ['./special-checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatCheckboxModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipe\n]\n})\nexport class SpecialCheckboxComponent implements OnInit {\n @Input() control!: SpecialFormControl<ICheckboxField>;\n\n get settings(): ICheckboxSettings {\n return this.control.settings;\n }\n constructor() {}\n ngOnInit(): void {}\n\n\n}\n","@if (control && !control.hidden) {\n <div\n [id]=\"control.elementId\"\n class=\"special-checkbox w-full mb-3 flex flex-col {{\n control.styleClasses\n }}\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <mat-checkbox\n [required]=\"control.required\"\n [ngModel]=\"control.value\"\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\n [indeterminate]=\"settings.indeterminate\"\n [labelPosition]=\"settings.labelPosition\"\n [color]=\"settings.color\"\n [disabled]=\"control.disabled\"\n >\n @if (control.icon) {\n <mat-icon matSuffix>{{ control.icon }}</mat-icon>\n }\n {{ control.placeholder }}\n </mat-checkbox>\n </div>\n}\n","\nimport { ChangeDetectionStrategy } from '@angular/core';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { InputMaskModule } from '@ngneat/input-mask';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { ErrorMessagePipe } from '../../core/pipes';\nimport { ITextAreaField, ITextAreaSettings } from './special-text-area.interface';\n\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 imports: [\n InputMaskModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipe\n],\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 get settings(): ITextAreaSettings {\n return this.control.settings;\n }\n}\n","@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-textarea w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\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 [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [maxlength]=\"settings?.withMaxlength ? control.length : null\"\n [formControl]=\"control\"\n ></textarea>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n @if (settings.withCounter && control.length) {\n <mat-hint align=\"end\"\n >{{ control.value?.length ?? 0 }} / {{ control.length }}</mat-hint\n >\n }\n </mat-form-field>\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'fileName', standalone: true })\nexport class FileNamePipe implements PipeTransform {\n transform(input: File | string): string {\n if (input instanceof File) {\n return input.name;\n }\n const url = new URL(input as string, window.location.origin);\n return url.pathname.substring(url.pathname.lastIndexOf('/') + 1);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({ name: 'previewImage', standalone: true })\nexport class previewImagePipe implements PipeTransform {\n private readonly imageTypeFormats = [\n 'jpeg',\n 'jpg',\n 'png',\n 'gif',\n 'bmp',\n 'webp',\n 'svg',\n ];\n\n private readonly docFormats = ['doc', 'docx'];\n\n private readonly pdfIcon = `\n <svg version=\"1.1\" id=\"_x34_\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 512 512\" xml:space=\"preserve\" width=\"800px\" height=\"800px\" fill=\"#000000\">\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"/>\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <g id=\"SVGRepo_iconCarrier\"> <g> <polygon style=\"fill:#FFFEFE;\" points=\"475.435,117.825 475.435,512 47.791,512 47.791,0.002 357.613,0.002 412.491,54.881 \"/> <rect x=\"36.565\" y=\"34.295\" style=\"fill:#B43331;\" width=\"205.097\" height=\"91.768\"/> <g> <g> <path style=\"fill:#FFFEFE;\" d=\"M110.133,64.379c-0.905-2.186-2.111-4.146-3.769-5.804c-1.659-1.658-3.694-3.015-6.031-3.92 c-2.412-0.98-5.127-1.432-8.141-1.432H69.652v58.195h11.383V89.481h11.157c3.015,0,5.729-0.452,8.141-1.432 c2.337-0.905,4.371-2.261,6.031-3.92c1.658-1.658,2.865-3.543,3.769-5.804c0.828-2.186,1.281-4.523,1.281-6.935 C111.413,68.902,110.961,66.565,110.133,64.379z M97.845,77.118c-1.508,1.432-3.618,2.186-6.182,2.186H81.035V63.323h10.628 c2.564,0,4.674,0.754,6.182,2.261c1.432,1.432,2.185,3.392,2.185,5.804C100.031,73.726,99.277,75.686,97.845,77.118z\"/> <path style=\"fill:#FFFEFE;\" d=\"M164.558,75.761c-0.075-2.035-0.15-3.844-0.377-5.503c-0.225-1.659-0.603-3.166-1.131-4.598 c-0.527-1.357-1.206-2.714-2.111-3.92c-2.035-2.94-4.522-5.126-7.312-6.483c-2.864-1.357-6.256-2.035-10.252-2.035H122.42v58.195 h20.956c3.996,0,7.388-0.678,10.252-2.035c2.79-1.357,5.277-3.543,7.312-6.483c0.905-1.206,1.584-2.563,2.111-3.92 c0.528-1.432,0.905-2.94,1.131-4.598c0.227-1.658,0.301-3.468,0.377-5.503c0.075-1.96,0.075-4.146,0.075-6.558 C164.633,79.908,164.633,77.721,164.558,75.761z M153.175,88.2c0,1.734-0.15,3.091-0.302,4.297 c-0.151,1.131-0.376,2.186-0.678,2.94c-0.301,0.829-0.754,1.583-1.281,2.261c-1.885,2.412-4.749,3.543-8.518,3.543h-8.668V63.323 h8.668c3.769,0,6.634,1.206,8.518,3.618c0.528,0.678,0.98,1.357,1.281,2.186c0.302,0.829,0.528,1.809,0.678,3.015 c0.152,1.131,0.302,2.563,0.302,4.221c0.075,1.659,0.075,3.694,0.075,5.955C153.251,84.581,153.251,86.541,153.175,88.2z\"/> <path style=\"fill:#FFFEFE;\" d=\"M213.18,63.323V53.222h-38.37v58.195h11.383V87.823h22.992V77.646h-22.992V63.323H213.18z\"/> </g> <g> <path style=\"fill:#FFFEFE;\" d=\"M110.133,64.379c-0.905-2.186-2.111-4.146-3.769-5.804c-1.659-1.658-3.694-3.015-6.031-3.92 c-2.412-0.98-5.127-1.432-8.141-1.432H69.652v58.195h11.383V89.481h11.157c3.015,0,5.729-0.452,8.141-1.432 c2.337-0.905,4.371-2.261,6.031-3.92c1.658-1.658,2.865-3.543,3.769-5.804c0.828-2.186,1.281-4.523,1.281-6.935 C111.413,68.902,110.961,66.565,110.133,64.379z M97.845,77.118c-1.508,1.432-3.618,2.186-6.182,2.186H81.035V63.323h10.628 c2.564,0,4.674,0.754,6.182,2.261c1.432,1.432,2.185,3.392,2.185,5.804C100.031,73.726,99.277,75.686,97.845,77.118z\"/> </g> </g> <polygon style=\"opacity:0.08;fill:#040000;\" points=\"475.435,117.825 475.435,512 47.791,512 47.791,419.581 247.706,219.667 259.541,207.832 266.099,201.273 277.029,190.343 289.995,177.377 412.491,54.881 \"/> <polygon style=\"fill:#BBBBBA;\" points=\"475.435,117.836 357.6,117.836 357.6,0 \"/> <g> <path style=\"fill:#B43331;\" d=\"M414.376,370.658c-2.488-4.372-5.88-8.518-10.101-12.287c-3.467-3.166-7.538-6.106-12.137-8.82 c-18.543-10.93-45.003-16.207-80.961-16.207h-3.618c-1.96-1.809-3.996-3.618-6.106-5.503 c-13.644-12.287-24.499-25.63-32.942-40.48c16.583-36.561,24.499-69.126,23.519-96.867c-0.151-4.674-0.83-9.046-2.036-13.117 c-1.808-6.558-4.824-12.363-9.046-17.112c-0.075-0.075-0.075-0.075-0.15-0.151c-6.709-7.538-16.056-11.835-25.555-11.835 c-9.574,0-18.393,4.146-24.802,11.76c-6.331,7.538-9.724,17.866-9.875,30.002c-0.225,18.544,1.282,36.108,4.448,52.315 c0.301,1.282,0.528,2.563,0.829,3.844c3.166,14.7,7.84,28.645,13.871,41.611c-7.086,14.398-14.248,26.836-19.222,35.279 c-3.769,6.408-7.916,13.117-12.213,19.826c-19.373,3.468-35.807,7.689-50.129,12.966c-19.374,7.011-34.903,16.056-46.059,26.836 c-7.238,6.935-12.137,14.323-14.55,22.012c-2.563,7.915-2.411,15.83,0.453,22.916c2.638,6.558,7.387,12.061,13.719,15.83 c1.508,0.905,3.091,1.658,4.749,2.337c4.825,1.96,10.102,3.015,15.604,3.015c12.74,0,25.856-5.503,36.938-15.378 c20.654-18.469,41.988-48.169,54.576-66.94c10.327-1.583,21.559-2.94,34.224-4.297c14.927-1.508,28.118-2.412,40.104-2.865 c3.694,3.317,7.237,6.483,10.63,9.498c18.846,16.81,33.168,28.947,46.134,37.465c0,0.075,0.075,0.075,0.15,0.075 c5.127,3.392,10.026,6.181,14.926,8.443c5.502,2.563,11.081,3.92,16.81,3.92c7.237,0,14.021-2.186,19.675-6.181 c5.729-4.146,9.875-10.101,11.76-16.81C420.181,387.694,418.899,378.724,414.376,370.658z M247.706,219.667 c-1.056-9.348-1.508-19.072-1.357-29.324c0.15-9.724,3.694-16.283,8.895-16.283c3.919,0,8.066,3.543,9.951,10.327 c0.528,2.035,0.905,4.372,0.98,7.01c0.15,3.166,0.075,6.483-0.075,9.875c-0.452,9.574-2.112,19.75-4.976,30.681 c-1.734,7.011-3.995,14.323-6.784,21.936C251.173,243.186,248.911,231.803,247.706,219.667z M121.968,418.073 c-1.282-3.166,0.15-9.272,7.99-16.81c11.985-11.458,30.755-20.504,56.914-27.364c-4.976,6.784-9.875,12.966-14.625,18.619 c-7.237,8.744-14.172,16.132-20.429,21.71c-5.351,4.824-11.232,7.84-16.81,8.594c-0.98,0.151-1.96,0.226-2.94,0.226 C127.169,423.049,123.173,421.089,121.968,418.073z M242.428,337.942l0.528-0.829l-0.829,0.151 c0.15-0.377,0.377-0.754,0.602-1.055c3.167-5.352,7.161-12.212,11.458-20.127l0.377,0.829l0.98-2.035 c3.166,4.523,6.634,8.971,10.252,13.267c1.735,2.035,3.544,3.995,5.352,5.955l-1.205,0.075l1.055,0.98 c-3.09,0.226-6.331,0.528-9.573,0.829c-2.036,0.226-4.147,0.377-6.257,0.603C250.796,337.037,246.499,337.49,242.428,337.942z M369.298,384.98c-8.97-5.729-18.997-13.795-31.36-24.575c17.564,1.809,31.36,5.654,41.159,11.383 c4.297,2.488,7.538,5.051,9.724,7.538c3.619,3.844,4.901,7.312,4.221,9.649c-0.602,2.337-3.241,3.92-6.483,3.92 c-1.885,0-3.844-0.452-5.879-1.432c-3.468-1.658-7.086-3.694-10.931-6.181C369.598,385.282,369.448,385.131,369.298,384.98z\"/> </g> </g> </g>\n </svg>\n `;\n\n private readonly wordIcon = `\n <svg width=\"800px\" height=\"800px\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#000000\">\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"/>\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <g id=\"SVGRepo_iconCarrier\">\n <title>file_type_word2</title>\n <path d=\"M18.536,2.323V4.868c3.4.019,7.12-.035,10.521.019a.783.783,0,0,1,.912.861c.054,6.266-.013,12.89.032,19.157-.02.4.009,1.118-.053,1.517-.079.509-.306.607-.817.676-.286.039-.764.034-1.045.047-2.792-.014-5.582-.011-8.374-.01l-1.175,0v2.547L2,27.133Q2,16,2,4.873L18.536,2.322\" style=\"fill:#283c82\"/>\n <path d=\"M18.536,5.822h10.5V26.18h-10.5V23.635h8.27V22.363h-8.27v-1.59h8.27V19.5h-8.27v-1.59h8.27V16.637h-8.27v-1.59h8.27V13.774h-8.27v-1.59h8.27V10.911h-8.27V9.321h8.27V8.048h-8.27V5.822\" style=\"fill:#fff\"/>\n <path d=\"M8.573,11.443c.6-.035,1.209-.06,1.813-.092.423,2.147.856,4.291,1.314,6.429.359-2.208.757-4.409,1.142-6.613.636-.022,1.272-.057,1.905-.1-.719,3.082-1.349,6.19-2.134,9.254-.531.277-1.326-.013-1.956.032-.423-2.106-.916-4.2-1.295-6.314C8.99,16.1,8.506,18.133,8.08,20.175q-.916-.048-1.839-.111c-.528-2.8-1.148-5.579-1.641-8.385.544-.025,1.091-.048,1.635-.067.328,2.026.7,4.043.986,6.072.448-2.08.907-4.161,1.352-6.241\" style=\"fill:#fff\"/>\n </g>\n </svg>\n `;\n\n private readonly byDefectIcon = `\n <svg width=\"800px\" height=\"800px\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#000000\">\n<g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"/>\n<g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<g id=\"SVGRepo_iconCarrier\">\n<title>file_type_word2</title>\n<path d=\"M18.536,2.323V4.868c3.4.019,7.12-.035,10.521.019a.783.783,0,0,1,.912.861c.054,6.266-.013,12.89.032,19.157-.02.4.009,1.118-.053,1.517-.079.509-.306.607-.817.676-.286.039-.764.034-1.045.047-2.792-.014-5.582-.011-8.374-.01l-1.175,0v2.547L2,27.133Q2,16,2,4.873L18.536,2.322\" style=\"fill:#283c82\"/>\n<path d=\"M18.536,5.822h10.5V26.18h-10.5V23.635h8.27V22.363h-8.27v-1.59h8.27V19.5h-8.27v-1.59h8.27V16.637h-8.27v-1.59h8.27V13.774h-8.27v-1.59h8.27V10.911h-8.27V9.321h8.27V8.048h-8.27V5.822\" style=\"fill:#fff\"/>\n<path d=\"M8.573,11.443c.6-.035,1.209-.06,1.813-.092.423,2.147.856,4.291,1.314,6.429.359-2.208.757-4.409,1.142-6.613.636-.022,1.272-.057,1.905-.1-.719,3.082-1.349,6.19-2.134,9.254-.531.277-1.326-.013-1.956.032-.423-2.106-.916-4.2-1.295-6.314C8.99,16.1,8.506,18.133,8.08,20.175q-.916-.048-1.839-.111c-.528-2.8-1.148-5.579-1.641-8.385.544-.025,1.091-.048,1.635-.067.328,2.026.7,4.043.986,6.072.448-2.08.907-4.161,1.352-6.241\" style=\"fill:#fff\"/>\n</g>\n</svg>\n `;\n\n private sanitizer = inject(DomSanitizer);\n\n transform(input: File | string): SafeUrl {\n if (input instanceof File) {\n return this.getImageWhenIsFile(input);\n }\n return this.getImageWhenIsUrl(input);\n }\n\n private getImageWhenIsUrl(href: string): SafeUrl {\n const extension = this.getFileExtension(href);\n if (this.isImage(extension)) {\n return this.configUrl(href);\n }\n return this.getNotImageFormat(extension);\n }\n\n private getFileExtension(href: string) {\n const path = new URL(href, window.location.origin).pathname;\n return path.split('.').pop() || '';\n }\n\n private getImageWhenIsFile(file: File): SafeUrl {\n if (this.isImage(file.type)) {\n return this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file));\n }\n return this.getNotImageFormat(file.type);\n }\n\n private getNotImageFormat(type: string) {\n if (this.isPdf(type)) {\n return this.svgConfiguration(this.pdfIcon);\n }\n if (this.isDocument(type)) {\n return this.svgConfiguration(this.wordIcon);\n }\n return this.svgConfiguration(this.byDefectIcon);\n }\n\n private isImage(type: string) {\n return this.imageTypeFormats.some((format) => type.includes(format));\n }\n\n private isPdf(type: string) {\n return type.includes('pdf');\n }\n\n private isDocument(type: string) {\n return this.docFormats.some((format) => type.includes(format));\n }\n\n configUrl(url: string) {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n\n svgConfiguration(svg: string) {\n return this.sanitizer.bypassSecurityTrustUrl(\n 'data:image/svg+xml;base64,' + btoa(this.pdfIcon),\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'truncate', standalone: true })\nexport class TruncatePipe implements PipeTransform {\n transform(text: string, lenght = 12, suffix = '...'): string {\n return text.slice(0, lenght) + suffix;\n }\n}","export enum EControlTypes {\n pkey = 'PRIMARY-KEY',\n input = 'INPUT',\n richText = 'RICH-TEXT',\n textArea = 'TEXT-AREA',\n dropdown = 'DROPDOWN',\n date = 'DATE',\n checkbox = 'CHECKBOX',\n upload = 'UPLOAD',\n autocomplete = 'AUTOCOMPLETE',\n multiple = 'MULTIPLE-AUTOCOMPLETE',\n array = 'ARRAY',\n form = 'FORM',\n label = 'LABEL',\n default = 'DEFAULT',\n}\n","import {\n AbstractControl,\n FormArray,\n FormControl,\n FormGroup,\n} from '@angular/forms';\nimport { EControlTypes } from '../aux-data/control-types.enum';\nimport { IFieldBasicData } from '../interfaces/field-basics.interfaces';\nimport {\n IArraySettings,\n IFormSettings,\n TSpecialFields,\n TSpecialForm,\n TSpecialArray,\n TRawFields,\n} from '../interfaces/form.interfaces';\nimport * as _ from 'lodash';\nexport class SpecialFormControl<T extends TRawFields> extends FormControl {\n public name: string;\n public placeholder: T['placeholder'];\n public label: T['label'];\n public tooltip: T['tooltip'];\n public icon: T['icon'];\n public elementId: T['elementId'];\n public styleClasses: T['styleClasses'];\n public length: T['length'];\n public required: T['required'];\n public hidden: T['hidden'];\n public readOnly: T['readOnly'];\n public settings: T['settings'];\n public type: T['type'];\n public errorMessages: T['errorMessages'];\n\n constructor({\n updateOn,\n name,\n settings,\n type,\n validators,\n asyncValidators,\n elementId,\n styleClasses,\n defaultValue,\n hidden,\n icon,\n label,\n length,\n placeholder,\n readOnly,\n required,\n tooltip,\n errorMessages,\n disabled,\n }: TSpecialFields) {\n super(defaultValue, { validators, asyncValidators, updateOn });\n this.name = name;\n this.placeholder = placeholder;\n this.label = label;\n this.tooltip = tooltip;\n this.icon = icon;\n this.elementId = elementId;\n this.settings = settings;\n this.type = type;\n this.styleClasses = styleClasses;\n this.hidden = hidden;\n this.length = length;\n this.readOnly = readOnly;\n this.required = required;\n this.errorMessages = errorMessages;\n disabled ? this.disable() : this.enable();\n }\n\n setReadOnly(status: boolean = true) {\n this.readOnly = status;\n }\n\n setDisabled(status: boolean = true) {\n status ? this.disable() : this.enable();\n }\n\n setHidden(status = true) {\n this.hidden = status;\n }\n}\nexport class SpecialFormGroup extends FormGroup {\n public name: string;\n public placeholder: string;\n public label: string;\n public tooltip: string;\n public icon: string;\n public elementId: string;\n public styleClasses: string;\n public length: number;\n public required: boolean;\n public hidden: boolean;\n public readOnly: boolean;\n public settings: IFormSettings;\n public type: EControlTypes.form;\n public defaultValue: any;\n public errorMessages: { [key: string]: string };\n\n constructor(\n {\n updateOn,\n name,\n settings,\n type,\n validators,\n asyncValidators,\n elementId,\n styleClasses,\n defaultValue,\n hidden,\n icon,\n label,\n length,\n placeholder,\n readOnly,\n required,\n tooltip,\n disabled,\n }: TSpecialForm,\n controls: {\n [key: string]: SpecialFormControl<any>;\n },\n ) {\n super(controls, { validators, asyncValidators, updateOn });\n\n this.name = name;\n this.placeholder = placeholder;\n this.label = label;\n this.tooltip = tooltip;\n this.icon = icon;\n this.elementId = elementId;\n this.settings = settings;\n this.type = type;\n this.styleClasses = styleClasses;\n this.hidden = hidden;\n this.length = length;\n this.readOnly = readOnly;\n this.required = required;\n this.defaultValue = defaultValue;\n disabled ? this.disable() : this.enable();\n }\n\n getDirty() {\n this.markAsDirty();\n Object.values(this.controls).forEach((control) => {\n if (control instanceof SpecialFormControl) {\n control.markAsDirty();\n } else if (control instanceof SpecialFormGroup) {\n control.getDirty();\n } else if (control instanceof SpecialFormArray) {\n control.getDirty();\n }\n });\n }\n\n specialReset(value = {}) {\n const aux: any = {};\n Object.entries(this.controls).map(([key, control]) => {\n if (control instanceof SpecialFormControl) {\n aux[key] = control.defaultValue;\n } else if (control instanceof SpecialFormArray) {\n control.clear();\n }\n });\n\n this.reset({ ...aux, ...value });\n }\n\n setReadOnly(status: boolean = true) {\n Object.values(this.controls).map((value) => {\n if (\n value instanceof SpecialFormControl ||\n value instanceof SpecialFormArray ||\n value instanceof SpecialFormGroup\n ) {\n value.setReadOnly(status);\n }\n });\n }\n\n setReadOnlyByFields(fieldsObject: { [key: string]: boolean }) {\n Object.entries(fieldsObject).map(([key, value]) => {\n const control = this.controls[key];\n if (control instanceof SpecialFormControl) {\n control.readOnly = value;\n }\n });\n }\n\n setHiddenByFields(fields: { [key: string]: boolean }) {\n Object.entries(fields).map(([key, value]) => {\n const control = this.controls[key];\n if (control instanceof SpecialFormControl) {\n control.hidden = value;\n }\n });\n }\n\n setDisabled(status: boolean) {\n Object.values(this.controls).map((value) => {\n if (\n value instanceof SpecialFormControl ||\n value instanceof SpecialFormArray ||\n value instanceof SpecialFormGroup\n ) {\n value.setDisabled(status);\n }\n });\n }\n\n setDisabledByFields(fieldsObject: any) {\n Object.entries(fieldsObject).map((entries) => {\n if (this.controls[entries[0]] instanceof SpecialFormControl) {\n entries[1]\n ? this.controls[entries[0]].enable()\n : this.controls[entries[0]].disable();\n }\n });\n }\n\n /**\n * donde value es el objeto semilla y detailForm es un arreglo de form key para dar un marco al formarray\n */\n\n setFormValue(value: any) {\n this.specialReset(value);\n Object.entries(this.controls)\n .filter(([_key, control]) => control instanceof SpecialFormArray)\n .map(([key, control]) => {\n (control as SpecialFormArray).fillFormArray(value[key]);\n });\n }\n\n /**\n * Método que retorna\n */\n\n getIdPkey(): SpecialFormControl<any> | undefined {\n return Object.values(this.controls).find(\n (control) =>\n control instanceof SpecialFormControl && control.type === 'PRIMARY-KEY',\n ) as SpecialFormControl<any> | undefined;\n }\n}\n\nexport class SpecialFormArray extends FormArray implements IFieldBasicData {\n public name: string;\n public placeholder: string;\n public label: string;\n public tooltip: string;\n public icon: string;\n public elementId: string;\n public styleClasses: string;\n public required: boolean;\n public hidden: boolean;\n public readOnly: boolean;\n public settings: IArraySettings;\n public type: EControlTypes;\n public defaultValue: any;\n public form: SpecialFormGroup;\n private formCreation: (value?: any) => SpecialFormGroup;\n public errorMessages: { [key: string]: string };\n\n constructor(\n {\n updateOn,\n name,\n settings,\n type,\n validators,\n asyncValidators,\n elementId,\n styleClasses,\n defaultValue,\n hidden,\n icon,\n label,\n placeholder,\n readOnly,\n required,\n tooltip,\n errorMessages,\n disabled,\n }: TSpecialArray,\n formCreation: () => SpecialFormGroup,\n controls: AbstractControl[],\n ) {\n super(controls, { validators, asyncValidators, updateOn });\n this.formCreation = formCreation;\n this.form = this.formCreation();\n this.name = name;\n this.placeholder = placeholder;\n this.label = label;\n this.tooltip = tooltip;\n this.icon = icon;\n this.elementId = elementId;\n this.settings = settings;\n this.type = type;\n this.styleClasses = styleClasses;\n this.hidden = hidden;\n this.readOnly = readOnly;\n this.required = required;\n this.defaultValue = defaultValue;\n this.errorMessages = errorMessages;\n disabled ? this.disable() : this.enable();\n }\n\n fillFormArray(data: any[]) {\n this.form.reset();\n this.clear();\n data.forEach((item) => {\n const form = this.formCreation(item);\n this.push(form);\n });\n }\n\n addItem() {\n const form = this.formCreation(this.form.value);\n this.form.specialReset();\n this.push(form);\n this.markAsDirty();\n }\n\n specialPush(index?: number) {\n const form = this.formCreation(this.form.value);\n if (!index) this.push(form);\n else this.controls[index].reset(this.form.value);\n }\n\n specialInsert(index = 0) {\n const form = this.formCreation(this.form.value);\n this.insert(index, form);\n }\n\n specialEdit(index: number, newValue: Object) {\n this.controls[index].reset({ ...this.controls[index].value, ...newValue });\n this.markAsDirty();\n }\n\n /**\n * Vuelve todos los controles del formArray de lectura o de sololectura\n * @param status\n */\n\n setReadOnly(status: boolean) {\n this.readOnly = status;\n this.controls.forEach((control) => {\n if (control instanceof SpecialFormGroup) {\n control.setReadOnly(status);\n }\n });\n }\n\n /**\n * Vuelve todos los controles del formArray habilitados o deshabilitados\n * @param status\n */\n\n setDisabled(status: boolean) {\n status ? this.disable() : this.enable();\n this.controls.forEach((control) => {\n if (control instanceof SpecialFormGroup) {\n control.setDisabled(status);\n }\n });\n }\n\n /**\n * Permite editar un control especifico.\n * @param index\n */\n\n editControl(index: number) {\n this.form.reset(this.controls[index].value);\n }\n\n getDirty() {\n this.markAsDirty();\n this.form.getDirty();\n this.controls.forEach((item) => {\n (<SpecialFormGroup>item).getDirty();\n });\n }\n\n recursiveFillForm(form: FormGroup, data: any): FormGroup {\n Object.entries(form.controls).map(([key, control]) => {\n if (control instanceof FormControl) {\n control.setValue(data[key]);\n } else if (control instanceof FormArray) {\n data[key].forEach(() => {});\n } else if (control instanceof FormGroup) {\n control.reset(data[key]);\n }\n });\n return form;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\nimport { IAutocompleteField } 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 IArrayField,\n IFormField,\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\ntype TFieldControl<TField> = TField extends { type: EControlTypes.form }\n ? SpecialFormGroup\n : TField extends { type: EControlTypes.array }\n ? SpecialFormArray\n : SpecialFormControl<TField extends TRawFields ? TField : TRawFields>;\n\ntype TFormControls<T extends IFormStructure> = {\n [K in keyof T]: TFieldControl<NonNullable<T[K]>>;\n};\n\ntype TFieldValue<TField> =\n TField extends IArrayField<infer TValue, infer TFields>\n ? TFields extends IFormStructure\n ? TFormValue<TFields>[]\n : TValue[]\n : TField extends IFormField<infer TValue, infer TFields>\n ? TFields extends IFormStructure\n ? TFormValue<TFields>\n : TValue\n : TField extends TRawFields\n ? TField['defaultValue']\n : any;\n\ntype TFormValue<T extends IFormStructure> = {\n [K in keyof T]: TFieldValue<NonNullable<T[K]>>;\n};\n\nexport type TypedSpecialFormGroup<T extends IFormStructure> =\n SpecialFormGroup & {\n controls: TFormControls<T>;\n value: TFormValue<T>;\n getRawValue: () => TFormValue<T>;\n };\n@Injectable({\n providedIn: 'root',\n})\nexport class SpecialFormBuilderService {\n private readonly defectField: IFieldData = {\n asyncValidators: [],\n validators: [],\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 updateOn: 'change',\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 defaultValue: {},\n type: EControlTypes.form,\n name: '',\n };\n\n private readonly arrayDefectField: TSpecialArray = {\n ...this.defectField,\n defaultValue: [],\n settings: {\n formFields: {},\n },\n type: EControlTypes.array,\n name: '',\n };\n\n public control<T extends TRawFields>(\n field: Partial<T>,\n ): SpecialFormControl<T> {\n const formField: TSpecialFields = {\n ...this.inputDefectField,\n ...field,\n } as TSpecialFields;\n const { control } = this.setFormControl(formField);\n return control as SpecialFormControl<T>;\n }\n\n public group<T extends IFormStructure>(\n fields: T,\n parentField: Partial<TSpecialForm> = {},\n ): TypedSpecialFormGroup<T> {\n return this.formGenerator(\n this.fieldDataToArray(fields),\n parentField,\n ) as TypedSpecialFormGroup<T>;\n }\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\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 return (control: SpecialFormControl<IAutocompleteField>) =>\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 null;\n }\n return { noItems: 'NO_SELECTED_ITEM' };\n }\n}\n","import { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ErrorStateMatcherService implements ErrorStateMatcher {\n isErrorState(control: FormControl): boolean {\n return control && control.invalid && control.dirty;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n} from '@angular/core';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { IUploadField, IUploadSettings } from './special-upload.interface';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ErrorMessagePipe } from '../../core/pipes';\nimport { FileInputValidators, FileInputDirective } from '@ngx-dropzone/cdk';\nimport { MatDropzone } from '@ngx-dropzone/material';\nimport { MatInputModule, MatLabel } from '@angular/material/input';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { FileNamePipe } from './filename.pipe';\nimport { MatCardModule } from '@angular/material/card';\nimport { previewImagePipe } from './preview-image-pipe';\nimport { TruncatePipe } from './truncate.pipe';\nimport { SpecialFormBuilderService } from '../../core/services';\n@Component({\n selector: 'sp-upload',\n templateUrl: './special-upload.component.html',\n styleUrls: ['./special-upload.component.scss'],\n imports: [\n previewImagePipe,\n FileNamePipe,\n FormsModule,\n MatDropzone,\n FileInputDirective,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatButtonModule,\n ErrorMessagePipe,\n MatChipsModule,\n TruncatePipe,\n MatCardModule\n],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialUploadComponent {\n readonly DEFAULT_ACCEPTED_TYPES = 'image/png, .jpeg, .jpg, image/gif';\n sfb = inject(SpecialFormBuilderService);\n @Input() set control(control: SpecialFormControl<IUploadField>) {\n this.realControl = control;\n this.internalControl = this.sfb.control<IUploadField>(control);\n this.initialConfig();\n }\n\n internalControl: SpecialFormControl<IUploadField>;\n realControl: SpecialFormControl<IUploadField>;\n\n get settings(): IUploadSettings {\n return this.internalControl.settings;\n }\n\n get elements() {\n return this.settings.multiple ? this.multipleElements : this.singleElement;\n }\n\n get multipleElements() {\n return this.realControl.value ? this.realControl.value : [];\n }\n\n get singleElement() {\n return this.realControl.value ? [this.realControl.value] : [];\n }\n\n private initialConfig() {\n this.acceptConfig();\n this.minSizeConfig();\n this.maxSizeConfig();\n }\n\n private minSizeConfig() {\n if (this.settings.minSize) {\n this.internalControl.setValidators(\n FileInputValidators.minSize(this.settings.minSize),\n );\n }\n }\n\n private maxSizeConfig() {\n if (this.settings.maxSize) {\n this.internalControl.setValidators(\n FileInputValidators.maxSize(this.settings.maxSize),\n );\n }\n }\n\n private isFile(input): boolean {\n return input && input instanceof File;\n }\n\n private isNotFile(input) {\n return !this.isFile(input);\n }\n\n private acceptConfig() {\n this.internalControl.setValidators(\n FileInputValidators.accept(\n this.settings.accept || this.DEFAULT_ACCEPTED_TYPES,\n ),\n );\n }\n\n onSelectFile(input: File[] | File) {\n this.updateRealControlInput(input);\n this.onSelectFileTrigger(input);\n }\n\n private updateRealControlInput(input: File[] | File) {\n if (this.internalControl.valid) {\n if (this.settings.multiple) {\n this.realControl.setValue(this.realControl.value.concat(input));\n } else {\n this.realControl.setValue(input);\n }\n }\n }\n\n private onSelectFileTrigger(files) {\n if (this.settings?.onSelectFile) {\n this.settings.onSelectFile(files);\n }\n }\n\n onRemove(input: File | string) {\n if (this.isFile(input)) {\n this.removeFile(input as File);\n } else {\n this.removeElement(input as string);\n }\n }\n\n private removeFile(file: File) {\n if (this.settings.multiple) {\n this.removeFileFromControl(file);\n } else {\n this.internalControl.reset();\n this.realControl.reset();\n }\n }\n\n private removeFileFromControl(file: File) {\n this.realControl.setValue(\n this.realControl.value.filter(\n (item: File | string) =>\n this.isNotFile(item) ||\n (item as File)?.lastModified !== file.lastModified,\n ),\n );\n }\n\n private removeElement(element: string) {\n if (this.settings.multiple) {\n this.realControl.setValue(\n this.realControl.value.filter(\n (item: File | string) => this.isFile(item) || item !== element,\n ),\n );\n } else {\n this.internalControl.reset();\n this.realControl.reset();\n }\n }\n}\n","@if (internalControl && !internalControl.hidden) {\n <mat-form-field\n [id]=\"internalControl.elementId\"\n class=\"w-full mb-3 {{ internalControl.styleClasses }}\"\n [appearance]=\"internalControl.label ? 'outline' : 'fill'\"\n >\n @if (internalControl.label) {\n <mat-label>\n {{ internalControl.label }} {{ internalControl.required ? \"*\" : \"\" }}\n </mat-label>\n }\n <ngx-mat-dropzone>\n <input\n type=\"file\"\n fileInput\n [multiple]=\"settings.multiple\"\n [mode]=\"settings.mode\"\n [accept]=\"settings?.accept || DEFAULT_ACCEPTED_TYPES\"\n [placeholder]=\"internalControl.placeholder\"\n [formControl]=\"internalControl\"\n [required]=\"internalControl.required\"\n [disabled]=\"internalControl.disabled\"\n (ngModelChange)=\"onSelectFile($event)\"\n />\n @for (item of elements; track item?.lastModified || item) {\n <mat-chip-row>\n <img matChipAvatar [src]=\"item | previewImage\" alt=\"\" />\n {{ item | fileName | truncate }}\n <button (click)=\"onRemove(item)\" matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </ngx-mat-dropzone>\n @if (internalControl.icon) {\n <mat-icon matSuffix>{{ internalControl.icon }}</mat-icon>\n }\n @if (internalControl.tooltip) {\n <mat-hint>{{ internalControl.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ internalControl.errors | errorMessage: internalControl.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { TextByFunctionPipe } from '../../core/pipes';\nimport { ILabelField, 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 imports: [CommonModule, MatIconModule, TextByFunctionPipe]\n})\nexport class SpecialLabelComponent implements OnInit {\n @Input() control!: SpecialFormControl<ILabelField>;\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","@if (control && !control.hidden) {\n <div\n class=\"special-label px-2 mb-3 {{ control.styleClasses }} {{\n control.value | textByFunction: settings.stylesPipe\n }}\"\n [id]=\"control.elementId\"\n >\n @if (control.label) {\n <div class=\"special-label__title font-bold\">\n {{ control.label }}\n </div>\n }\n <div\n class=\"special-label__text\"\n [ngClass]=\"{\n 'cursor-pointer text-blue-600 hover:text-blue-700': settings.isLink,\n }\"\n (click)=\"onLink()\"\n >\n {{ control.value | textByFunction: control.settings.pipe }}\n </div>\n </div>\n}\n","\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SpecialFormControl } from '../../core/forms/special-forms';\nimport { IRichTextField } from './special-richtext.interface';\nimport { NgxEditorModule, Toolbar, Editor } from 'ngx-editor';\nimport { MatInputModule } from '@angular/material/input';\nimport { ErrorMessagePipe } from '../../core/pipes';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@Component({\n selector: 'sp-input',\n templateUrl: './special-richtext.component.html',\n styleUrls: ['./special-richtext.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n NgxEditorModule,\n ErrorMessagePipe,\n MatFormFieldModule\n]\n})\nexport class SpecialRichtextComponent {\n editor: Editor;\n formControl: SpecialFormControl<IRichTextField>;\n colorPresets = ['red', 'yellow', 'green', 'blue', 'black'];\n\n @Input() control: SpecialFormControl<IRichTextField>;\n toolbar: Toolbar = [\n // default value\n ['bold', 'italic'],\n ['underline', 'strike'],\n ['code', 'blockquote'],\n ['ordered_list', 'bullet_list'],\n [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],\n ['link', 'image'],\n ['text_color', 'background_color'],\n ['align_left', 'align_center', 'align_right', 'align_justify'],\n ['horizontal_rule', 'format_clear'],\n ];\n\n ngOnInit() {\n if (this.control.settings.colorPresets)\n this.colorPresets = this.control.settings.colorPresets;\n this.editor = new Editor();\n }\n ngOnDestroy(): void {\n this.editor.destroy();\n }\n}\n","@if (control && !control.hidden) {\n <div\n class=\"special-richtext w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n >\n @if (control.label) {\n <h4 class=\"text-md font-medium pl-2 mb-2\">\n {{ control.label }}\n </h4>\n }\n <ngx-editor-menu\n [colorPresets]=\"colorPresets\"\n [toolbar]=\"toolbar\"\n [editor]=\"editor\"\n >\n </ngx-editor-menu>\n <ngx-editor\n [editor]=\"editor\"\n [formControl]=\"control\"\n [required]=\"control.required\"\n [outputFormat]=\"control.settings.outputFormat || 'html'\"\n [disabled]=\"false\"\n [placeholder]=\"control.placeholder\"\n ></ngx-editor>\n <div class=\"px-5 mt-2\">\n @if (\n control.dirty && control.errors | errorMessage: control.errorMessages;\n as error\n ) {\n <div class=\"text-sm text-rose-500\">\n {{ error }}\n </div>\n } @else {\n <div class=\"text-sm font-medium\">{{ control.tooltip }}</div>\n }\n </div>\n </div>\n}\n","import {\n ChangeDetectionStrategy,\n Directive,\n ViewContainerRef,\n} from '@angular/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { EControlTypes } from '../../core/aux-data/control-types.enum';\nimport {\n SpecialFormGroup,\n SpecialFormControl,\n SpecialFormArray\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 { SpecialRichtextComponent } from '../special-richtext/special-richtext.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 standalone: false\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 standalone: false\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: number) {\n this.formArray.removeAt(index);\n }\n addItem() {\n this.formArray.addItem();\n }\n}\n\n@Directive({\n selector: `[controlRender]`,\n standalone: false\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 [EControlTypes.richText]: SpecialRichtextComponent,\n };\n @Input('control') set controlSetter(control: SpecialFormControl<any>) {\n this.viewContainer.clear();\n const component = (this.componentsBuffer as any)[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","@if (form && !form.hidden) {\n <div\n [id]=\"form.elementId\"\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\n >\n @if (form) {\n <div\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 @if (form.label) {\n <h1 class=\"font-bold py-3\">{{ form.label }}</h1>\n }\n <div class=\"w-full flex flex-wrap\">\n @for (control of form.controls | controlsList; track control.name) {\n <ng-template controlRender [control]=\"control\"></ng-template>\n }\n </div>\n </div>\n }\n </div>\n}\n","@if (formArray && !formArray.hidden) {\n <div\n [id]=\"formArray.elementId\"\n class=\"special-form-array w-full box-border p-2 {{\n formArray.styleClasses\n }}\"\n >\n <div\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\n >\n @if (formArray.label) {\n <h1 class=\"font-bold py-3\">\n {{ formArray.label }}\n </h1>\n }\n <div class=\"divide-y divide-x-0 divide-solid divide-slate-200\">\n @if (formArray.form) {\n <div\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\n class=\"grid gap-4 grid-cols-12\"\n >\n @if (!withFormHeader) {\n @for (\n item of formArray.form.controls | controlsList;\n track item.name\n ) {\n <h2 [class]=\"item.styleClasses\">\n {{ item.label }}\n </h2>\n }\n @if (settings.withActionButtons) {\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n ></div>\n }\n } @else {\n @for (\n item of formArray.form.controls | controlsList;\n track item.name\n ) {\n <ng-template controlRender [control]=\"item\"></ng-template>\n }\n @if (settings.withActionButtons) {\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n >\n <button\n mat-flat-button\n color=\"primary\"\n [disabled]=\"formArray.form.invalid\"\n (click)=\"addItem()\"\n >\n {{ settings.addActionLabel || \"Add\" }}\n </button>\n </div>\n }\n }\n </div>\n }\n @for (\n formGroup of formArray.controls;\n track formGroup.name;\n let i = $index\n ) {\n <div class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\">\n @for (item of formGroup.controls | controlsList; track item.name) {\n <ng-template controlRender [control]=\"item\"></ng-template>\n }\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n >\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\n {{ settings.removeActionLabel || \"Remove\" }}\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n}\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 { FormControlsListPipe } from '../../core/pipes';\nimport { SpecialDropdownComponent } from '../special-dropdown/special-dropdown.component';\nimport { SpecialInputComponent } from '../special-input/special-input.component';\nimport { SpecialAutocompleteComponent } from '../special-autocomplete/special-autocomplete.component';\nimport { SpecialDatepickerComponent } from '../special-datepicker/special-datepicker.component';\nimport { SpecialLabelComponent } from '../special-label/special-label.component';\nimport { SpecialMultipleAutocompleteComponent } from '../special-multiple-autocomplete/special-multiple-autocomplete.component';\nimport { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.component';\nimport { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';\nimport { SpecialUploadComponent } from '../special-upload/special-upload.component';\nimport { SpecialRichtextComponent } from '../special-richtext/special-richtext.component';\n\n@NgModule({\n declarations: [\n SpecialArrayComponent,\n FormControlsRenderDirective,\n SpecialFormComponent,\n ],\n imports: [\n CommonModule,\n FormControlsListPipe,\n MatButtonModule,\n SpecialRichtextComponent,\n SpecialDropdownComponent,\n SpecialInputComponent,\n SpecialAutocompleteComponent,\n SpecialDatepickerComponent,\n SpecialLabelComponent,\n SpecialMultipleAutocompleteComponent,\n SpecialCheckboxComponent,\n SpecialTextAreaComponent,\n SpecialUploadComponent,\n ],\n exports: [\n SpecialArrayComponent,\n FormControlsRenderDirective,\n SpecialFormComponent,\n ],\n})\nexport class SpecialFormModule {}\n","import {\n SpecialFormControl,\n SpecialFormArray,\n SpecialFormGroup,\n} from '../forms/special-forms';\n\nexport abstract class ISpecialControl {\n control: SpecialFormControl<any> | SpecialFormArray | SpecialFormGroup;\n}\n","import { createMask } from '@ngneat/input-mask';\n\nexport const currencyInputMask = createMask({\n alias: 'numeric',\n groupSeparator: ',',\n autoUnmask: true,\n digits: 2,\n digitsOptional: false,\n prefix: '$ ',\n placeholder: '0',\n});\n","import { createMask } from '@ngneat/input-mask';\n\nexport const numberMask = (max = 1000) =>\n createMask({ alias: 'numeric', min: 0, max });\n","/*\n * Public API Surface of special-forms\n */\n\nexport * from './lib/components';\nexport * from './lib/core/services/index';\nexport { EControlTypes } from './lib/core/aux-data/control-types.enum';\nexport * from './lib/core/forms/special-forms';\nexport * from './lib/core/interfaces/field-basics.interfaces';\nexport * from './lib/core/interfaces/form.interfaces';\nexport * from './lib/core/interfaces/special-control.interface';\nexport * from './lib/core/masks/index';\nexport * from './lib/core/pipes/index';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i6","i1","i2","i3","i5","i4","i1.FormControlsListPipe"],"mappings":"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"}
1
+ {"version":3,"file":"special-forms.mjs","sources":["../../../projects/special-forms/src/lib/core/pipes/error-message-pipe/error.pipe.ts","../../../projects/special-forms/src/lib/core/pipes/text-by-function/text-by-function.pipe.ts","../../../projects/special-forms/src/lib/core/pipes/controls-list-pipe/controls-list.pipe.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-input/special-input.component.ts","../../../projects/special-forms/src/lib/components/special-input/special-input.component.html","../../../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-datepicker/special-datepicker.component.ts","../../../projects/special-forms/src/lib/components/special-datepicker/special-datepicker.component.html","../../../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-checkbox/special-checkbox.component.ts","../../../projects/special-forms/src/lib/components/special-checkbox/special-checkbox.component.html","../../../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-upload/filename.pipe.ts","../../../projects/special-forms/src/lib/components/special-upload/preview-image-pipe.ts","../../../projects/special-forms/src/lib/components/special-upload/truncate.pipe.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/lib/core/services/error-state-matcher/error-matcher.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-label/special-label.component.ts","../../../projects/special-forms/src/lib/components/special-label/special-label.component.html","../../../projects/special-forms/src/lib/components/special-richtext/special-richtext.component.ts","../../../projects/special-forms/src/lib/components/special-richtext/special-richtext.component.html","../../../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/components/special-form/special-form.module.ts","../../../projects/special-forms/src/lib/core/interfaces/special-control.interface.ts","../../../projects/special-forms/src/lib/core/masks/currency.mask.ts","../../../projects/special-forms/src/lib/core/masks/number.mask.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 standalone:true\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 { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'textByFunction', standalone: true })\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 }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { SpecialFormControl } from '../../forms/special-forms';\r\n\r\n@Pipe({ name: 'controlsList', standalone: true })\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 { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { debounceTime, take } from 'rxjs/operators';\r\nimport {\r\n MatAutocompleteModule,\r\n MatAutocompleteSelectedEvent,\r\n} from '@angular/material/autocomplete';\r\nimport { Subscription } from 'rxjs';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport {\r\n IAutocompleteField,\r\n IAutocompleteSettings,\r\n} from './special-autocomplete.interface';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { ErrorMessagePipe, TextByFunctionPipe } from '../../core/pipes';\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 imports: [\r\n MatInputModule,\r\n CommonModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n TextByFunctionPipe,\r\n ],\r\n})\r\nexport class SpecialAutocompleteComponent {\r\n @Input() control: SpecialFormControl<IAutocompleteField>;\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<any> {\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\r\n firstLoad() {\r\n if (this.settings.withFirstLoad) {\r\n this.settings.getData('', this.control);\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: 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","@if (control && !control.hidden) {\r\n <mat-form-field\r\n class=\"special-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\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 (focus)=\"firstLoad()\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n @for (\r\n option of settings?.source | async;\r\n track option[settings.fieldId]\r\n ) {\r\n <mat-option [value]=\"option\">\r\n <div class=\"flex items-center\">\r\n @if (settings.fieldImage) {\r\n <img\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n }\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n @if (settings.icon) {\r\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n }\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n","\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { InputMaskModule } from '@ngneat/input-mask';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { IInputField, IInputSettings } from './special-input.interface';\r\n\r\n@Component({\r\n selector: 'sp-input',\r\n templateUrl: './special-input.component.html',\r\n styleUrls: ['./special-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n InputMaskModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe\r\n],\r\n})\r\nexport class SpecialInputComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<IInputField>;\r\n\r\n watchValue = signal(false);\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onEnterClick() {\r\n if (this.settings.onEnter) {\r\n this.settings.onEnter(this.control.value);\r\n }\r\n }\r\n\r\n onBlurAction() {\r\n if (this.settings.onBlur) {\r\n this.settings.onBlur(this.control.value);\r\n }\r\n }\r\n\r\n get settings(): IInputSettings {\r\n return this.control.settings;\r\n }\r\n\r\n iconClick(event: 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 clear() {\r\n this.control.reset('');\r\n }\r\n\r\n watch() {\r\n this.watchValue.set(!this.watchValue());\r\n }\r\n}\r\n","@if (control && !control.hidden) {\r\n <mat-form-field\r\n [id]=\"control.elementId\"\r\n class=\"special-input w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <input\r\n matInput\r\n (blur)=\"onBlurAction()\"\r\n (keydown.enter)=\"onEnterClick()\"\r\n [inputMask]=\"settings?.mask\"\r\n autocomplete=\"off\"\r\n [type]=\"watchValue() ? 'text' : this.settings.type || 'text'\"\r\n [readonly]=\"control.readOnly\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [maxlength]=\"settings?.withMaxlength ? control.length : null\"\r\n [formControl]=\"control\"\r\n />\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\r\n @if (settings.icon) {\r\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n }\r\n\r\n @if (settings.withClearButton && control.value) {\r\n <button\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"clear(); $event.preventDefault(); $event.stopPropagation()\"\r\n >\r\n <mat-icon> close </mat-icon>\r\n </button>\r\n }\r\n\r\n @if (settings.withWatchButton && settings.type === \"password\") {\r\n <button\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"watch(); $event.preventDefault(); $event.stopPropagation()\"\r\n >\r\n <mat-icon>\r\n {{ watchValue() ? \"visibility_off\" : \"visibility\" }}\r\n </mat-icon>\r\n </button>\r\n }\r\n\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n @if (settings.withCounter && control.length) {\r\n <mat-hint align=\"end\"\r\n >{{ control.value?.length ?? 0 }} / {{ control.length }}</mat-hint\r\n >\r\n }\r\n </mat-form-field>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n} from '@angular/core';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IDropdownField, IDropdownSettings } from './special-dropdown.interface';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {\r\n ErrorMessagePipe,\r\n TextByFunctionPipe,\r\n} from '../../core/pipes';\r\n@Component({\n selector: 'sp-dropdown',\n templateUrl: './special-dropdown.component.html',\n styleUrls: ['./special-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n MatSelectModule,\n ReactiveFormsModule,\n ErrorMessagePipe,\n MatIconModule,\n MatButtonModule,\n TextByFunctionPipe,\n ]\n})\r\nexport class SpecialDropdownComponent {\r\n @Input() control!: SpecialFormControl<IDropdownField>;\r\n\r\n get settings(): IDropdownSettings {\r\n return this.control.settings;\r\n }\r\n\r\n iconClick(event: 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: any) {\r\n if (this.settings.onSelect) this.settings.onSelect(value);\r\n }\r\n}\r\n","@if (control && !control.hidden) {\r\n <mat-form-field\r\n [id]=\"control.elementId\"\r\n class=\"special-dropdown w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\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 @if (!control.required) {\r\n <mat-option [value]=\"null\">\r\n {{ control.placeholder || settings.notSelectedText }}\r\n </mat-option>\r\n }\r\n @for (item of settings.source | async; track item[settings.fieldId]) {\r\n <mat-option [value]=\"item[settings.fieldId]\">\r\n {{ item | textByFunction: settings.fieldName }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (settings.icon) {\r\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n }\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n","\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport {\r\n IDatePickerField,\r\n IDatePickerSettings,\r\n} from './special-datepicker.interface';\r\n@Component({\r\n selector: 'sp-datepicker',\r\n templateUrl: './special-datepicker.component.html',\r\n styleUrls: ['./special-datepicker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n MatNativeDateModule\r\n]\r\n})\r\nexport class SpecialDatepickerComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<IDatePickerField>;\r\n\r\n constructor() {}\r\n\r\n get settings(): IDatePickerSettings {\r\n return this.control.settings;\r\n }\r\n\r\n get startAt() {\r\n return this.settings?.startAt || new Date();\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","@if (control && !control.hidden) {\r\n <mat-form-field\r\n [id]=\"control.elementId\"\r\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [readonly]=\"control.readOnly\"\r\n [matDatepicker]=\"picker\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\r\n </mat-datepicker>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </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","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { debounceTime, take } from 'rxjs/operators';\r\nimport {\r\n MatAutocompleteModule,\r\n MatAutocompleteSelectedEvent,\r\n} from '@angular/material/autocomplete';\r\nimport { Subscription } from 'rxjs';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport {\r\n IMultipleAutocompleteField,\r\n IMultipleAutocompleteSettings,\r\n} from './special-multiple-autocomplete.interface';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { ErrorMessagePipe, TextByFunctionPipe } from '../../core/pipes';\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 imports: [\r\n MatInputModule,\r\n CommonModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n TextByFunctionPipe,\r\n MatChipsModule,\r\n ],\r\n})\r\nexport class SpecialMultipleAutocompleteComponent {\r\n @Input() control!: SpecialFormControl<IMultipleAutocompleteField>;\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<any> {\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 firstLoad() {\r\n if (this.settings.withFirstLoad) {\r\n this.settings.getData('', this.control);\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: any) =>\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: 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","@if (control && !control.hidden) {\r\n <div\r\n class=\"special-multiple-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n >\r\n \r\n <mat-form-field\r\n class=\"w-full\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\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 (focus)=\"firstLoad()\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n @for (\r\n option of settings?.source | async;\r\n track option[settings.fieldId]\r\n ) {\r\n <mat-option [value]=\"option\">\r\n <div class=\"flex items-center\">\r\n @if (settings.fieldImage) {\r\n <img\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n }\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n @if (settings.icon) {\r\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n }\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\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-listbox>\r\n @for (chip of control.value; track chip[settings.fieldId]) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"remove(chip)\">\r\n <div class=\"flex items-center\">\r\n @if (settings.fieldImage) {\r\n <img\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"chip | textByFunction: settings.fieldImage\"\r\n />\r\n }\r\n {{ chip | textByFunction: settings.fieldName }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </div>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-listbox>\r\n </div>\r\n}\r\n","\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { ICheckboxField, ICheckboxSettings } from './special-checkbox.interface';\r\n\r\n@Component({\r\n selector: 'sp-checkbox',\r\n templateUrl: './special-checkbox.component.html',\r\n styleUrls: ['./special-checkbox.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n FormsModule,\r\n MatCheckboxModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe\r\n]\r\n})\r\nexport class SpecialCheckboxComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<ICheckboxField>;\r\n\r\n get settings(): ICheckboxSettings {\r\n return this.control.settings;\r\n }\r\n constructor() {}\r\n ngOnInit(): void {}\r\n\r\n\r\n}\r\n","@if (control && !control.hidden) {\r\n <div\r\n [id]=\"control.elementId\"\r\n class=\"special-checkbox w-full mb-3 flex flex-col {{\r\n control.styleClasses\r\n }}\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <mat-checkbox\r\n [required]=\"control.required\"\r\n [ngModel]=\"control.value\"\r\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\r\n [indeterminate]=\"settings.indeterminate\"\r\n [labelPosition]=\"settings.labelPosition\"\r\n [color]=\"settings.color\"\r\n [disabled]=\"control.disabled\"\r\n >\r\n @if (control.icon) {\r\n <mat-icon matSuffix>{{ control.icon }}</mat-icon>\r\n }\r\n {{ control.placeholder }}\r\n </mat-checkbox>\r\n </div>\r\n}\r\n","\r\nimport { ChangeDetectionStrategy } from '@angular/core';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { InputMaskModule } from '@ngneat/input-mask';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { ITextAreaField, ITextAreaSettings } from './special-text-area.interface';\r\n\r\n@Component({\r\n selector: 'sp-text-area',\r\n templateUrl: './special-text-area.component.html',\r\n styleUrls: ['./special-text-area.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n InputMaskModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe\r\n],\r\n})\r\nexport class SpecialTextAreaComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<ITextAreaField>;\r\n\r\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n @Output() onEnter: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n get settings(): ITextAreaSettings {\r\n return this.control.settings;\r\n }\r\n}\r\n","@if (control && !control.hidden) {\r\n <mat-form-field\r\n [id]=\"control.elementId\"\r\n class=\"special-textarea w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n @if (control.label) {\r\n <mat-label>\r\n {{ control.label }}\r\n </mat-label>\r\n }\r\n <textarea\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n matInput\r\n (blur)=\"onBlur.emit(control.value)\"\r\n (keydown.enter)=\"onEnter.emit(control.value)\"\r\n [readonly]=\"control.readOnly\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [maxlength]=\"settings?.withMaxlength ? control.length : null\"\r\n [formControl]=\"control\"\r\n ></textarea>\r\n @if (control.icon) {\r\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\r\n }\r\n @if (control.tooltip) {\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n }\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n @if (settings.withCounter && control.length) {\r\n <mat-hint align=\"end\"\r\n >{{ control.value?.length ?? 0 }} / {{ control.length }}</mat-hint\r\n >\r\n }\r\n </mat-form-field>\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: 'fileName', standalone: true })\r\nexport class FileNamePipe implements PipeTransform {\r\n transform(input: File | string): string {\r\n if (input instanceof File) {\r\n return input.name;\r\n }\r\n const url = new URL(input as string, window.location.origin);\r\n return url.pathname.substring(url.pathname.lastIndexOf('/') + 1);\r\n }\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'previewImage', standalone: true })\r\nexport class previewImagePipe implements PipeTransform {\r\n private readonly imageTypeFormats = [\r\n 'jpeg',\r\n 'jpg',\r\n 'png',\r\n 'gif',\r\n 'bmp',\r\n 'webp',\r\n 'svg',\r\n ];\r\n\r\n private readonly docFormats = ['doc', 'docx'];\r\n\r\n private readonly pdfIcon = `\r\n <svg version=\"1.1\" id=\"_x34_\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 512 512\" xml:space=\"preserve\" width=\"800px\" height=\"800px\" fill=\"#000000\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"/>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <g id=\"SVGRepo_iconCarrier\"> <g> <polygon style=\"fill:#FFFEFE;\" points=\"475.435,117.825 475.435,512 47.791,512 47.791,0.002 357.613,0.002 412.491,54.881 \"/> <rect x=\"36.565\" y=\"34.295\" style=\"fill:#B43331;\" width=\"205.097\" height=\"91.768\"/> <g> <g> <path style=\"fill:#FFFEFE;\" d=\"M110.133,64.379c-0.905-2.186-2.111-4.146-3.769-5.804c-1.659-1.658-3.694-3.015-6.031-3.92 c-2.412-0.98-5.127-1.432-8.141-1.432H69.652v58.195h11.383V89.481h11.157c3.015,0,5.729-0.452,8.141-1.432 c2.337-0.905,4.371-2.261,6.031-3.92c1.658-1.658,2.865-3.543,3.769-5.804c0.828-2.186,1.281-4.523,1.281-6.935 C111.413,68.902,110.961,66.565,110.133,64.379z M97.845,77.118c-1.508,1.432-3.618,2.186-6.182,2.186H81.035V63.323h10.628 c2.564,0,4.674,0.754,6.182,2.261c1.432,1.432,2.185,3.392,2.185,5.804C100.031,73.726,99.277,75.686,97.845,77.118z\"/> <path style=\"fill:#FFFEFE;\" d=\"M164.558,75.761c-0.075-2.035-0.15-3.844-0.377-5.503c-0.225-1.659-0.603-3.166-1.131-4.598 c-0.527-1.357-1.206-2.714-2.111-3.92c-2.035-2.94-4.522-5.126-7.312-6.483c-2.864-1.357-6.256-2.035-10.252-2.035H122.42v58.195 h20.956c3.996,0,7.388-0.678,10.252-2.035c2.79-1.357,5.277-3.543,7.312-6.483c0.905-1.206,1.584-2.563,2.111-3.92 c0.528-1.432,0.905-2.94,1.131-4.598c0.227-1.658,0.301-3.468,0.377-5.503c0.075-1.96,0.075-4.146,0.075-6.558 C164.633,79.908,164.633,77.721,164.558,75.761z M153.175,88.2c0,1.734-0.15,3.091-0.302,4.297 c-0.151,1.131-0.376,2.186-0.678,2.94c-0.301,0.829-0.754,1.583-1.281,2.261c-1.885,2.412-4.749,3.543-8.518,3.543h-8.668V63.323 h8.668c3.769,0,6.634,1.206,8.518,3.618c0.528,0.678,0.98,1.357,1.281,2.186c0.302,0.829,0.528,1.809,0.678,3.015 c0.152,1.131,0.302,2.563,0.302,4.221c0.075,1.659,0.075,3.694,0.075,5.955C153.251,84.581,153.251,86.541,153.175,88.2z\"/> <path style=\"fill:#FFFEFE;\" d=\"M213.18,63.323V53.222h-38.37v58.195h11.383V87.823h22.992V77.646h-22.992V63.323H213.18z\"/> </g> <g> <path style=\"fill:#FFFEFE;\" d=\"M110.133,64.379c-0.905-2.186-2.111-4.146-3.769-5.804c-1.659-1.658-3.694-3.015-6.031-3.92 c-2.412-0.98-5.127-1.432-8.141-1.432H69.652v58.195h11.383V89.481h11.157c3.015,0,5.729-0.452,8.141-1.432 c2.337-0.905,4.371-2.261,6.031-3.92c1.658-1.658,2.865-3.543,3.769-5.804c0.828-2.186,1.281-4.523,1.281-6.935 C111.413,68.902,110.961,66.565,110.133,64.379z M97.845,77.118c-1.508,1.432-3.618,2.186-6.182,2.186H81.035V63.323h10.628 c2.564,0,4.674,0.754,6.182,2.261c1.432,1.432,2.185,3.392,2.185,5.804C100.031,73.726,99.277,75.686,97.845,77.118z\"/> </g> </g> <polygon style=\"opacity:0.08;fill:#040000;\" points=\"475.435,117.825 475.435,512 47.791,512 47.791,419.581 247.706,219.667 259.541,207.832 266.099,201.273 277.029,190.343 289.995,177.377 412.491,54.881 \"/> <polygon style=\"fill:#BBBBBA;\" points=\"475.435,117.836 357.6,117.836 357.6,0 \"/> <g> <path style=\"fill:#B43331;\" d=\"M414.376,370.658c-2.488-4.372-5.88-8.518-10.101-12.287c-3.467-3.166-7.538-6.106-12.137-8.82 c-18.543-10.93-45.003-16.207-80.961-16.207h-3.618c-1.96-1.809-3.996-3.618-6.106-5.503 c-13.644-12.287-24.499-25.63-32.942-40.48c16.583-36.561,24.499-69.126,23.519-96.867c-0.151-4.674-0.83-9.046-2.036-13.117 c-1.808-6.558-4.824-12.363-9.046-17.112c-0.075-0.075-0.075-0.075-0.15-0.151c-6.709-7.538-16.056-11.835-25.555-11.835 c-9.574,0-18.393,4.146-24.802,11.76c-6.331,7.538-9.724,17.866-9.875,30.002c-0.225,18.544,1.282,36.108,4.448,52.315 c0.301,1.282,0.528,2.563,0.829,3.844c3.166,14.7,7.84,28.645,13.871,41.611c-7.086,14.398-14.248,26.836-19.222,35.279 c-3.769,6.408-7.916,13.117-12.213,19.826c-19.373,3.468-35.807,7.689-50.129,12.966c-19.374,7.011-34.903,16.056-46.059,26.836 c-7.238,6.935-12.137,14.323-14.55,22.012c-2.563,7.915-2.411,15.83,0.453,22.916c2.638,6.558,7.387,12.061,13.719,15.83 c1.508,0.905,3.091,1.658,4.749,2.337c4.825,1.96,10.102,3.015,15.604,3.015c12.74,0,25.856-5.503,36.938-15.378 c20.654-18.469,41.988-48.169,54.576-66.94c10.327-1.583,21.559-2.94,34.224-4.297c14.927-1.508,28.118-2.412,40.104-2.865 c3.694,3.317,7.237,6.483,10.63,9.498c18.846,16.81,33.168,28.947,46.134,37.465c0,0.075,0.075,0.075,0.15,0.075 c5.127,3.392,10.026,6.181,14.926,8.443c5.502,2.563,11.081,3.92,16.81,3.92c7.237,0,14.021-2.186,19.675-6.181 c5.729-4.146,9.875-10.101,11.76-16.81C420.181,387.694,418.899,378.724,414.376,370.658z M247.706,219.667 c-1.056-9.348-1.508-19.072-1.357-29.324c0.15-9.724,3.694-16.283,8.895-16.283c3.919,0,8.066,3.543,9.951,10.327 c0.528,2.035,0.905,4.372,0.98,7.01c0.15,3.166,0.075,6.483-0.075,9.875c-0.452,9.574-2.112,19.75-4.976,30.681 c-1.734,7.011-3.995,14.323-6.784,21.936C251.173,243.186,248.911,231.803,247.706,219.667z M121.968,418.073 c-1.282-3.166,0.15-9.272,7.99-16.81c11.985-11.458,30.755-20.504,56.914-27.364c-4.976,6.784-9.875,12.966-14.625,18.619 c-7.237,8.744-14.172,16.132-20.429,21.71c-5.351,4.824-11.232,7.84-16.81,8.594c-0.98,0.151-1.96,0.226-2.94,0.226 C127.169,423.049,123.173,421.089,121.968,418.073z M242.428,337.942l0.528-0.829l-0.829,0.151 c0.15-0.377,0.377-0.754,0.602-1.055c3.167-5.352,7.161-12.212,11.458-20.127l0.377,0.829l0.98-2.035 c3.166,4.523,6.634,8.971,10.252,13.267c1.735,2.035,3.544,3.995,5.352,5.955l-1.205,0.075l1.055,0.98 c-3.09,0.226-6.331,0.528-9.573,0.829c-2.036,0.226-4.147,0.377-6.257,0.603C250.796,337.037,246.499,337.49,242.428,337.942z M369.298,384.98c-8.97-5.729-18.997-13.795-31.36-24.575c17.564,1.809,31.36,5.654,41.159,11.383 c4.297,2.488,7.538,5.051,9.724,7.538c3.619,3.844,4.901,7.312,4.221,9.649c-0.602,2.337-3.241,3.92-6.483,3.92 c-1.885,0-3.844-0.452-5.879-1.432c-3.468-1.658-7.086-3.694-10.931-6.181C369.598,385.282,369.448,385.131,369.298,384.98z\"/> </g> </g> </g>\r\n </svg>\r\n `;\r\n\r\n private readonly wordIcon = `\r\n <svg width=\"800px\" height=\"800px\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#000000\">\r\n <g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"/>\r\n <g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <g id=\"SVGRepo_iconCarrier\">\r\n <title>file_type_word2</title>\r\n <path d=\"M18.536,2.323V4.868c3.4.019,7.12-.035,10.521.019a.783.783,0,0,1,.912.861c.054,6.266-.013,12.89.032,19.157-.02.4.009,1.118-.053,1.517-.079.509-.306.607-.817.676-.286.039-.764.034-1.045.047-2.792-.014-5.582-.011-8.374-.01l-1.175,0v2.547L2,27.133Q2,16,2,4.873L18.536,2.322\" style=\"fill:#283c82\"/>\r\n <path d=\"M18.536,5.822h10.5V26.18h-10.5V23.635h8.27V22.363h-8.27v-1.59h8.27V19.5h-8.27v-1.59h8.27V16.637h-8.27v-1.59h8.27V13.774h-8.27v-1.59h8.27V10.911h-8.27V9.321h8.27V8.048h-8.27V5.822\" style=\"fill:#fff\"/>\r\n <path d=\"M8.573,11.443c.6-.035,1.209-.06,1.813-.092.423,2.147.856,4.291,1.314,6.429.359-2.208.757-4.409,1.142-6.613.636-.022,1.272-.057,1.905-.1-.719,3.082-1.349,6.19-2.134,9.254-.531.277-1.326-.013-1.956.032-.423-2.106-.916-4.2-1.295-6.314C8.99,16.1,8.506,18.133,8.08,20.175q-.916-.048-1.839-.111c-.528-2.8-1.148-5.579-1.641-8.385.544-.025,1.091-.048,1.635-.067.328,2.026.7,4.043.986,6.072.448-2.08.907-4.161,1.352-6.241\" style=\"fill:#fff\"/>\r\n </g>\r\n </svg>\r\n `;\r\n\r\n private readonly byDefectIcon = `\r\n <svg width=\"800px\" height=\"800px\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#000000\">\r\n<g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"/>\r\n<g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n<g id=\"SVGRepo_iconCarrier\">\r\n<title>file_type_word2</title>\r\n<path d=\"M18.536,2.323V4.868c3.4.019,7.12-.035,10.521.019a.783.783,0,0,1,.912.861c.054,6.266-.013,12.89.032,19.157-.02.4.009,1.118-.053,1.517-.079.509-.306.607-.817.676-.286.039-.764.034-1.045.047-2.792-.014-5.582-.011-8.374-.01l-1.175,0v2.547L2,27.133Q2,16,2,4.873L18.536,2.322\" style=\"fill:#283c82\"/>\r\n<path d=\"M18.536,5.822h10.5V26.18h-10.5V23.635h8.27V22.363h-8.27v-1.59h8.27V19.5h-8.27v-1.59h8.27V16.637h-8.27v-1.59h8.27V13.774h-8.27v-1.59h8.27V10.911h-8.27V9.321h8.27V8.048h-8.27V5.822\" style=\"fill:#fff\"/>\r\n<path d=\"M8.573,11.443c.6-.035,1.209-.06,1.813-.092.423,2.147.856,4.291,1.314,6.429.359-2.208.757-4.409,1.142-6.613.636-.022,1.272-.057,1.905-.1-.719,3.082-1.349,6.19-2.134,9.254-.531.277-1.326-.013-1.956.032-.423-2.106-.916-4.2-1.295-6.314C8.99,16.1,8.506,18.133,8.08,20.175q-.916-.048-1.839-.111c-.528-2.8-1.148-5.579-1.641-8.385.544-.025,1.091-.048,1.635-.067.328,2.026.7,4.043.986,6.072.448-2.08.907-4.161,1.352-6.241\" style=\"fill:#fff\"/>\r\n</g>\r\n</svg>\r\n `;\r\n\r\n private sanitizer = inject(DomSanitizer);\r\n\r\n transform(input: File | string): SafeUrl {\r\n if (input instanceof File) {\r\n return this.getImageWhenIsFile(input);\r\n }\r\n return this.getImageWhenIsUrl(input);\r\n }\r\n\r\n private getImageWhenIsUrl(href: string): SafeUrl {\r\n const extension = this.getFileExtension(href);\r\n if (this.isImage(extension)) {\r\n return this.configUrl(href);\r\n }\r\n return this.getNotImageFormat(extension);\r\n }\r\n\r\n private getFileExtension(href: string) {\r\n const path = new URL(href, window.location.origin).pathname;\r\n return path.split('.').pop() || '';\r\n }\r\n\r\n private getImageWhenIsFile(file: File): SafeUrl {\r\n if (this.isImage(file.type)) {\r\n return this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file));\r\n }\r\n return this.getNotImageFormat(file.type);\r\n }\r\n\r\n private getNotImageFormat(type: string) {\r\n if (this.isPdf(type)) {\r\n return this.svgConfiguration(this.pdfIcon);\r\n }\r\n if (this.isDocument(type)) {\r\n return this.svgConfiguration(this.wordIcon);\r\n }\r\n return this.svgConfiguration(this.byDefectIcon);\r\n }\r\n\r\n private isImage(type: string) {\r\n return this.imageTypeFormats.some((format) => type.includes(format));\r\n }\r\n\r\n private isPdf(type: string) {\r\n return type.includes('pdf');\r\n }\r\n\r\n private isDocument(type: string) {\r\n return this.docFormats.some((format) => type.includes(format));\r\n }\r\n\r\n configUrl(url: string) {\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n svgConfiguration(svg: string) {\r\n return this.sanitizer.bypassSecurityTrustUrl(\r\n 'data:image/svg+xml;base64,' + btoa(this.pdfIcon),\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: 'truncate', standalone: true })\r\nexport class TruncatePipe implements PipeTransform {\r\n transform(text: string, lenght = 12, suffix = '...'): string {\r\n return text.slice(0, lenght) + suffix;\r\n }\r\n}","export enum EControlTypes {\r\n pkey = 'PRIMARY-KEY',\r\n input = 'INPUT',\r\n richText = 'RICH-TEXT',\r\n textArea = 'TEXT-AREA',\r\n dropdown = 'DROPDOWN',\r\n date = 'DATE',\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 TRawFields,\r\n} from '../interfaces/form.interfaces';\r\nimport * as _ from 'lodash';\r\nexport class SpecialFormControl<T extends TRawFields> extends FormControl {\r\n public name: string;\r\n public placeholder: T['placeholder'];\r\n public label: T['label'];\r\n public tooltip: T['tooltip'];\r\n public icon: T['icon'];\r\n public elementId: T['elementId'];\r\n public styleClasses: T['styleClasses'];\r\n public length: T['length'];\r\n public required: T['required'];\r\n public hidden: T['hidden'];\r\n public readOnly: T['readOnly'];\r\n public settings: T['settings'];\r\n public type: T['type'];\r\n public errorMessages: T['errorMessages'];\r\n\r\n constructor({\r\n updateOn,\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, updateOn });\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.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 {\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 updateOn,\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, updateOn });\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 getDirty() {\r\n this.markAsDirty();\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.getDirty();\r\n } else if (control instanceof SpecialFormArray) {\r\n control.getDirty();\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\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\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\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 updateOn,\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, updateOn });\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 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 getDirty() {\r\n this.markAsDirty();\r\n this.form.getDirty();\r\n this.controls.forEach((item) => {\r\n (<SpecialFormGroup>item).getDirty();\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';\r\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\r\nimport { IAutocompleteField } from '../../../components/special-autocomplete/special-autocomplete.interface';\r\nimport { EControlTypes } from '../../aux-data/control-types.enum';\r\nimport {\r\n SpecialFormArray,\r\n SpecialFormControl,\r\n SpecialFormGroup,\r\n} from '../../forms/special-forms';\r\nimport { IFieldData } from '../../interfaces/field-basics.interfaces';\r\nimport {\r\n IFormStructure,\r\n IArrayField,\r\n IFormField,\r\n TRawFields,\r\n TSpecialArray,\r\n TSpecialFields,\r\n TSpecialForm,\r\n TSpecialInput,\r\n} from '../../interfaces/form.interfaces';\r\n\r\ninterface IControlParams {\r\n name: string;\r\n control: SpecialFormArray | SpecialFormGroup | SpecialFormControl<any>;\r\n}\r\n\r\ntype TFieldControl<TField> = TField extends { type: EControlTypes.form }\r\n ? SpecialFormGroup\r\n : TField extends { type: EControlTypes.array }\r\n ? SpecialFormArray\r\n : SpecialFormControl<TField extends TRawFields ? TField : TRawFields>;\r\n\r\ntype TFormControls<T extends IFormStructure> = {\r\n [K in keyof T]: TFieldControl<NonNullable<T[K]>>;\r\n};\r\n\r\ntype TFieldValue<TField> =\r\n TField extends IArrayField<infer TValue, infer TFields>\r\n ? TFields extends IFormStructure\r\n ? TFormValue<TFields>[]\r\n : TValue[]\r\n : TField extends IFormField<infer TValue, infer TFields>\r\n ? TFields extends IFormStructure\r\n ? TFormValue<TFields>\r\n : TValue\r\n : TField extends TRawFields\r\n ? TField['defaultValue']\r\n : any;\r\n\r\ntype TFormValue<T extends IFormStructure> = {\r\n [K in keyof T]: TFieldValue<NonNullable<T[K]>>;\r\n};\r\n\r\nexport type TypedSpecialFormGroup<T extends IFormStructure> =\r\n SpecialFormGroup & {\r\n controls: TFormControls<T>;\r\n value: TFormValue<T>;\r\n getRawValue: () => TFormValue<T>;\r\n };\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SpecialFormBuilderService {\r\n private readonly defectField: IFieldData = {\r\n asyncValidators: [],\r\n validators: [],\r\n defaultValue: null,\r\n elementId: '',\r\n hidden: false,\r\n icon: '',\r\n label: '',\r\n disabled: false,\r\n length: 0,\r\n placeholder: '',\r\n readOnly: false,\r\n required: false,\r\n styleClasses: '',\r\n errorMessages: {},\r\n tooltip: '',\r\n updateOn: 'change',\r\n };\r\n\r\n private readonly inputDefectField: TSpecialInput = {\r\n ...this.defectField,\r\n settings: {},\r\n type: EControlTypes.input,\r\n name: '',\r\n };\r\n\r\n private readonly formDefectField: TSpecialForm = {\r\n ...this.defectField,\r\n settings: {\r\n formFields: {},\r\n },\r\n defaultValue: {},\r\n type: EControlTypes.form,\r\n name: '',\r\n };\r\n\r\n private readonly arrayDefectField: TSpecialArray = {\r\n ...this.defectField,\r\n defaultValue: [],\r\n settings: {\r\n formFields: {},\r\n },\r\n type: EControlTypes.array,\r\n name: '',\r\n };\r\n\r\n public control<T extends TRawFields>(\r\n field: Partial<T>,\r\n ): SpecialFormControl<T> {\r\n const formField: TSpecialFields = {\r\n ...this.inputDefectField,\r\n ...field,\r\n } as TSpecialFields;\r\n const { control } = this.setFormControl(formField);\r\n return control as SpecialFormControl<T>;\r\n }\r\n\r\n public group<T extends IFormStructure>(\r\n fields: T,\r\n parentField: Partial<TSpecialForm> = {},\r\n ): TypedSpecialFormGroup<T> {\r\n return this.formGenerator(\r\n this.fieldDataToArray(fields),\r\n parentField,\r\n ) as TypedSpecialFormGroup<T>;\r\n }\r\n\r\n public fieldDataToArray(fields: IFormStructure): TSpecialFields[] {\r\n return Object.entries(fields).map(([name, field]) =>\r\n this.setDefectFieldOptions(name, field),\r\n );\r\n }\r\n\r\n private setDefectFieldOptions(\r\n name: string,\r\n field: Partial<TRawFields>,\r\n ): TSpecialFields {\r\n return {\r\n ...this.inputDefectField,\r\n ...field,\r\n name,\r\n } as TSpecialFields;\r\n }\r\n\r\n private formGenerator(\r\n fields: TSpecialFields[],\r\n parentField: Partial<TSpecialForm> = {},\r\n ): SpecialFormGroup {\r\n const formField: TSpecialForm = {\r\n ...this.formDefectField,\r\n ...parentField,\r\n };\r\n const structure = fields\r\n .map((field) => this.getControlAndNameByType(field))\r\n .reduce(\r\n (prev, { name, control }: IControlParams) => ({\r\n ...prev,\r\n [name]: control,\r\n }),\r\n {},\r\n );\r\n return new SpecialFormGroup(formField, structure);\r\n }\r\n\r\n\r\n private getControlAndNameByType(field: TSpecialFields) {\r\n switch (field.type) {\r\n case EControlTypes.array:\r\n return this.setFormArray(field);\r\n case EControlTypes.form:\r\n return this.setFormGroup(field);\r\n default:\r\n return this.setFormControl(field);\r\n }\r\n }\r\n\r\n private setFormGroup(field: TSpecialForm): {\r\n name: string;\r\n control: SpecialFormGroup;\r\n } {\r\n const control = this.formGenerator(\r\n this.fieldDataToArray(field.settings.formFields),\r\n field,\r\n );\r\n return { control, name: field.name };\r\n }\r\n\r\n private setFormArray(field: TSpecialArray): {\r\n name: string;\r\n control: SpecialFormArray;\r\n } {\r\n const auxForm = (value = {}) => {\r\n const auxForm = this.formGenerator(\r\n this.fieldDataToArray(field.settings.formFields),\r\n {},\r\n );\r\n auxForm.reset(value);\r\n return auxForm;\r\n };\r\n\r\n if (field.required) {\r\n field.validators = this.setValidatorsArray(field.validators, [\r\n this.arrayLengthRequired,\r\n ]);\r\n }\r\n\r\n return {\r\n name: field.name,\r\n control: new SpecialFormArray(field, auxForm, []),\r\n };\r\n }\r\n\r\n private setFormControl(field: TSpecialFields): {\r\n name: string;\r\n control: SpecialFormControl<any>;\r\n } {\r\n const validators: ValidatorFn[] = [];\r\n\r\n if (field.required) validators.push(this.setRequiredValidator(field));\r\n if (field.length) validators.push(Validators.maxLength(field.length));\r\n\r\n field.validators = this.setValidatorsArray(field.validators, validators);\r\n\r\n return {\r\n name: field.name,\r\n control: new SpecialFormControl(field),\r\n };\r\n }\r\n\r\n private setRequiredValidator(field: TSpecialFields): ValidatorFn {\r\n if (field.type !== EControlTypes.autocomplete) {\r\n return Validators.required;\r\n }\r\n return (control: SpecialFormControl<IAutocompleteField>) =>\r\n !!control.value && control.value instanceof Object\r\n ? null\r\n : { required: true };\r\n }\r\n private setValidatorsArray(\r\n validators: ValidatorFn | ValidatorFn[] | null,\r\n newValidators: ValidatorFn[],\r\n ): ValidatorFn[] {\r\n if (!validators) {\r\n return newValidators;\r\n }\r\n return validators instanceof Array\r\n ? [...validators, ...newValidators]\r\n : [validators, ...newValidators];\r\n }\r\n\r\n private arrayLengthRequired(control: AbstractControl) {\r\n if (control.value.length) {\r\n return null;\r\n }\r\n return { noItems: 'NO_SELECTED_ITEM' };\r\n }\r\n}\r\n","import { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ErrorStateMatcherService implements ErrorStateMatcher {\r\n isErrorState(control: FormControl): boolean {\r\n return control && control.invalid && control.dirty;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n Input,\r\n} from '@angular/core';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IUploadField, IUploadSettings } from './special-upload.interface';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { FileInputValidators, FileInputDirective } from '@ngx-dropzone/cdk';\r\nimport { MatDropzone } from '@ngx-dropzone/material';\r\nimport { MatInputModule, MatLabel } from '@angular/material/input';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { FileNamePipe } from './filename.pipe';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { previewImagePipe } from './preview-image-pipe';\r\nimport { TruncatePipe } from './truncate.pipe';\r\nimport { SpecialFormBuilderService } from '../../core/services';\r\n@Component({\r\n selector: 'sp-upload',\r\n templateUrl: './special-upload.component.html',\r\n styleUrls: ['./special-upload.component.scss'],\r\n imports: [\r\n previewImagePipe,\r\n FileNamePipe,\r\n FormsModule,\r\n MatDropzone,\r\n FileInputDirective,\r\n MatInputModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n MatChipsModule,\r\n TruncatePipe,\r\n MatCardModule\r\n],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SpecialUploadComponent {\r\n readonly DEFAULT_ACCEPTED_TYPES = 'image/png, .jpeg, .jpg, image/gif';\r\n sfb = inject(SpecialFormBuilderService);\r\n @Input() set control(control: SpecialFormControl<IUploadField>) {\r\n this.realControl = control;\r\n this.internalControl = this.sfb.control<IUploadField>(control);\r\n this.initialConfig();\r\n }\r\n\r\n internalControl: SpecialFormControl<IUploadField>;\r\n realControl: SpecialFormControl<IUploadField>;\r\n\r\n get settings(): IUploadSettings {\r\n return this.internalControl.settings;\r\n }\r\n\r\n get elements() {\r\n return this.settings.multiple ? this.multipleElements : this.singleElement;\r\n }\r\n\r\n get multipleElements() {\r\n return this.realControl.value ? this.realControl.value : [];\r\n }\r\n\r\n get singleElement() {\r\n return this.realControl.value ? [this.realControl.value] : [];\r\n }\r\n\r\n private initialConfig() {\r\n this.acceptConfig();\r\n this.minSizeConfig();\r\n this.maxSizeConfig();\r\n }\r\n\r\n private minSizeConfig() {\r\n if (this.settings.minSize) {\r\n this.internalControl.setValidators(\r\n FileInputValidators.minSize(this.settings.minSize),\r\n );\r\n }\r\n }\r\n\r\n private maxSizeConfig() {\r\n if (this.settings.maxSize) {\r\n this.internalControl.setValidators(\r\n FileInputValidators.maxSize(this.settings.maxSize),\r\n );\r\n }\r\n }\r\n\r\n private isFile(input): boolean {\r\n return input && input instanceof File;\r\n }\r\n\r\n private isNotFile(input) {\r\n return !this.isFile(input);\r\n }\r\n\r\n private acceptConfig() {\r\n this.internalControl.setValidators(\r\n FileInputValidators.accept(\r\n this.settings.accept || this.DEFAULT_ACCEPTED_TYPES,\r\n ),\r\n );\r\n }\r\n\r\n onSelectFile(input: File[] | File) {\r\n this.updateRealControlInput(input);\r\n this.onSelectFileTrigger(input);\r\n }\r\n\r\n private updateRealControlInput(input: File[] | File) {\r\n if (this.internalControl.valid) {\r\n if (this.settings.multiple) {\r\n this.realControl.setValue(this.realControl.value.concat(input));\r\n } else {\r\n this.realControl.setValue(input);\r\n }\r\n }\r\n }\r\n\r\n private onSelectFileTrigger(files) {\r\n if (this.settings?.onSelectFile) {\r\n this.settings.onSelectFile(files);\r\n }\r\n }\r\n\r\n onRemove(input: File | string) {\r\n if (this.isFile(input)) {\r\n this.removeFile(input as File);\r\n } else {\r\n this.removeElement(input as string);\r\n }\r\n }\r\n\r\n private removeFile(file: File) {\r\n if (this.settings.multiple) {\r\n this.removeFileFromControl(file);\r\n } else {\r\n this.internalControl.reset();\r\n this.realControl.reset();\r\n }\r\n }\r\n\r\n private removeFileFromControl(file: File) {\r\n this.realControl.setValue(\r\n this.realControl.value.filter(\r\n (item: File | string) =>\r\n this.isNotFile(item) ||\r\n (item as File)?.lastModified !== file.lastModified,\r\n ),\r\n );\r\n }\r\n\r\n private removeElement(element: string) {\r\n if (this.settings.multiple) {\r\n this.realControl.setValue(\r\n this.realControl.value.filter(\r\n (item: File | string) => this.isFile(item) || item !== element,\r\n ),\r\n );\r\n } else {\r\n this.internalControl.reset();\r\n this.realControl.reset();\r\n }\r\n }\r\n}\r\n","@if (internalControl && !internalControl.hidden) {\r\n <mat-form-field\r\n [id]=\"internalControl.elementId\"\r\n class=\"w-full mb-3 {{ internalControl.styleClasses }}\"\r\n [appearance]=\"internalControl.label ? 'outline' : 'fill'\"\r\n >\r\n @if (internalControl.label) {\r\n <mat-label>\r\n {{ internalControl.label }} {{ internalControl.required ? \"*\" : \"\" }}\r\n </mat-label>\r\n }\r\n <ngx-mat-dropzone>\r\n <input\r\n type=\"file\"\r\n fileInput\r\n [multiple]=\"settings.multiple\"\r\n [mode]=\"settings.mode\"\r\n [accept]=\"settings?.accept || DEFAULT_ACCEPTED_TYPES\"\r\n [placeholder]=\"internalControl.placeholder\"\r\n [formControl]=\"internalControl\"\r\n [required]=\"internalControl.required\"\r\n [disabled]=\"internalControl.disabled\"\r\n (ngModelChange)=\"onSelectFile($event)\"\r\n />\r\n @for (item of elements; track item?.lastModified || item) {\r\n <mat-chip-row>\r\n <img matChipAvatar [src]=\"item | previewImage\" alt=\"\" />\r\n {{ item | fileName | truncate }}\r\n <button (click)=\"onRemove(item)\" matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n </ngx-mat-dropzone>\r\n @if (internalControl.icon) {\r\n <mat-icon matSuffix>{{ internalControl.icon }}</mat-icon>\r\n }\r\n @if (internalControl.tooltip) {\r\n <mat-hint>{{ internalControl.tooltip }}</mat-hint>\r\n }\r\n <mat-error>\r\n {{ internalControl.errors | errorMessage: internalControl.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { TextByFunctionPipe } from '../../core/pipes';\r\nimport { ILabelField, ILabelSettings } from './special-label.interface';\r\n\r\n@Component({\n selector: 'sp-label',\n templateUrl: './special-label.component.html',\n styleUrls: ['./special-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, MatIconModule, TextByFunctionPipe]\n})\r\nexport class SpecialLabelComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<ILabelField>;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n get settings(): ILabelSettings {\r\n return this.control.settings || { isLink: false };\r\n }\r\n\r\n onLink() {\r\n if (this.settings.isLink && this.settings.onClickLink) {\r\n this.settings.onClickLink(this.control.value);\r\n }\r\n }\r\n}\r\n","@if (control && !control.hidden) {\r\n <div\r\n class=\"special-label px-2 mb-3 {{ control.styleClasses }} {{\r\n control.value | textByFunction: settings.stylesPipe\r\n }}\"\r\n [id]=\"control.elementId\"\r\n >\r\n @if (control.label) {\r\n <div class=\"special-label__title font-bold\">\r\n {{ control.label }}\r\n </div>\r\n }\r\n <div\r\n class=\"special-label__text\"\r\n [ngClass]=\"{\r\n 'cursor-pointer text-blue-600 hover:text-blue-700': settings.isLink,\r\n }\"\r\n (click)=\"onLink()\"\r\n >\r\n {{ control.value | textByFunction: control.settings.pipe }}\r\n </div>\r\n </div>\r\n}\r\n","\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IRichTextField } from './special-richtext.interface';\r\nimport { NgxEditorModule, Toolbar, Editor } from 'ngx-editor';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\n@Component({\r\n selector: 'sp-input',\r\n templateUrl: './special-richtext.component.html',\r\n styleUrls: ['./special-richtext.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n MatInputModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n NgxEditorModule,\r\n ErrorMessagePipe,\r\n MatFormFieldModule\r\n]\r\n})\r\nexport class SpecialRichtextComponent {\r\n editor: Editor;\r\n formControl: SpecialFormControl<IRichTextField>;\r\n colorPresets = ['red', 'yellow', 'green', 'blue', 'black'];\r\n\r\n @Input() control: SpecialFormControl<IRichTextField>;\r\n toolbar: Toolbar = [\r\n // default value\r\n ['bold', 'italic'],\r\n ['underline', 'strike'],\r\n ['code', 'blockquote'],\r\n ['ordered_list', 'bullet_list'],\r\n [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],\r\n ['link', 'image'],\r\n ['text_color', 'background_color'],\r\n ['align_left', 'align_center', 'align_right', 'align_justify'],\r\n ['horizontal_rule', 'format_clear'],\r\n ];\r\n\r\n ngOnInit() {\r\n if (this.control.settings.colorPresets)\r\n this.colorPresets = this.control.settings.colorPresets;\r\n this.editor = new Editor();\r\n }\r\n ngOnDestroy(): void {\r\n this.editor.destroy();\r\n }\r\n}\r\n","@if (control && !control.hidden) {\r\n <div\r\n class=\"special-richtext w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n >\r\n @if (control.label) {\r\n <h4 class=\"text-md font-medium pl-2 mb-2\">\r\n {{ control.label }}\r\n </h4>\r\n }\r\n <ngx-editor-menu\r\n [colorPresets]=\"colorPresets\"\r\n [toolbar]=\"toolbar\"\r\n [editor]=\"editor\"\r\n >\r\n </ngx-editor-menu>\r\n <ngx-editor\r\n [editor]=\"editor\"\r\n [formControl]=\"control\"\r\n [required]=\"control.required\"\r\n [outputFormat]=\"control.settings.outputFormat || 'html'\"\r\n [disabled]=\"false\"\r\n [placeholder]=\"control.placeholder\"\r\n ></ngx-editor>\r\n <div class=\"px-5 mt-2\">\r\n @if (\r\n control.dirty && control.errors | errorMessage: control.errorMessages;\r\n as error\r\n ) {\r\n <div class=\"text-sm text-rose-500\">\r\n {{ error }}\r\n </div>\r\n } @else {\r\n <div class=\"text-sm font-medium\">{{ control.tooltip }}</div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Directive,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { EControlTypes } from '../../core/aux-data/control-types.enum';\r\nimport {\r\n SpecialFormGroup,\r\n SpecialFormControl,\r\n SpecialFormArray\r\n} from '../../core/forms/special-forms';\r\nimport { SpecialAutocompleteComponent } from '../special-autocomplete/special-autocomplete.component';\r\nimport { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.component';\r\nimport { SpecialDatepickerComponent } from '../special-datepicker/special-datepicker.component';\r\nimport { SpecialDropdownComponent } from '../special-dropdown/special-dropdown.component';\r\nimport { SpecialInputComponent } from '../special-input/special-input.component';\r\nimport { SpecialLabelComponent } from '../special-label/special-label.component';\r\nimport { SpecialMultipleAutocompleteComponent } from '../special-multiple-autocomplete/special-multiple-autocomplete.component';\r\nimport { SpecialRichtextComponent } from '../special-richtext/special-richtext.component';\r\nimport { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';\r\nimport { SpecialUploadComponent } from '../special-upload/special-upload.component';\r\n\r\n@Component({\n selector: 'sp-form',\n templateUrl: './special-form.component.html',\n styleUrls: ['./special-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\r\nexport class SpecialFormComponent implements OnInit {\r\n @Input('control') form: SpecialFormGroup;\r\n set control(form: SpecialFormGroup) {\r\n this.form = form;\r\n }\r\n ngOnInit(): void {}\r\n}\r\n\r\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 standalone: false\n})\r\nexport class SpecialArrayComponent implements OnInit {\r\n @Input('control') formArray: any;\r\n\r\n set control(formArray: any) {\r\n this.formArray = formArray;\r\n }\r\n\r\n get withFormHeader() {\r\n return this.formArray.settings.withFormHeader;\r\n }\r\n\r\n get settings() {\r\n return this.formArray.settings;\r\n }\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n removeItem(index: number) {\r\n this.formArray.removeAt(index);\r\n }\r\n addItem() {\r\n this.formArray.addItem();\r\n }\r\n}\r\n\r\n@Directive({\n selector: `[controlRender]`,\n standalone: false\n})\r\nexport class FormControlsRenderDirective {\r\n private readonly componentsBuffer = {\r\n [EControlTypes.autocomplete]: SpecialAutocompleteComponent,\r\n [EControlTypes.checkbox]: SpecialCheckboxComponent,\r\n [EControlTypes.date]: SpecialDatepickerComponent,\r\n [EControlTypes.dropdown]: SpecialDropdownComponent,\r\n [EControlTypes.array]: SpecialArrayComponent,\r\n [EControlTypes.input]: SpecialInputComponent,\r\n [EControlTypes.multiple]: SpecialMultipleAutocompleteComponent,\r\n [EControlTypes.textArea]: SpecialTextAreaComponent,\r\n [EControlTypes.label]: SpecialLabelComponent,\r\n [EControlTypes.upload]: SpecialUploadComponent,\r\n [EControlTypes.form]: SpecialFormComponent,\r\n [EControlTypes.richText]: SpecialRichtextComponent,\r\n };\r\n @Input('control') set controlSetter(control: SpecialFormControl<any>) {\r\n this.viewContainer.clear();\r\n const component = (this.componentsBuffer as any)[control.type];\r\n if (component) {\r\n const componentRef = this.viewContainer.createComponent(component);\r\n (componentRef.instance as any).control = control;\r\n }\r\n }\r\n\r\n constructor(private viewContainer: ViewContainerRef) {}\r\n}\r\n","@if (form && !form.hidden) {\r\n <div\r\n [id]=\"form.elementId\"\r\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\r\n >\r\n @if (form) {\r\n <div\r\n [class]=\"\r\n form.label\r\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\r\n : 'container'\r\n \"\r\n >\r\n @if (form.label) {\r\n <h1 class=\"font-bold py-3\">{{ form.label }}</h1>\r\n }\r\n <div class=\"w-full flex flex-wrap\">\r\n @for (control of form.controls | controlsList; track control.name) {\r\n <ng-template controlRender [control]=\"control\"></ng-template>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","@if (formArray && !formArray.hidden) {\r\n <div\r\n [id]=\"formArray.elementId\"\r\n class=\"special-form-array w-full box-border p-2 {{\r\n formArray.styleClasses\r\n }}\"\r\n >\r\n <div\r\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\r\n >\r\n @if (formArray.label) {\r\n <h1 class=\"font-bold py-3\">\r\n {{ formArray.label }}\r\n </h1>\r\n }\r\n <div class=\"divide-y divide-x-0 divide-solid divide-slate-200\">\r\n @if (formArray.form) {\r\n <div\r\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\r\n class=\"grid gap-4 grid-cols-12\"\r\n >\r\n @if (!withFormHeader) {\r\n @for (\r\n item of formArray.form.controls | controlsList;\r\n track item.name\r\n ) {\r\n <h2 [class]=\"item.styleClasses\">\r\n {{ item.label }}\r\n </h2>\r\n }\r\n @if (settings.withActionButtons) {\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\r\n ></div>\r\n }\r\n } @else {\r\n @for (\r\n item of formArray.form.controls | controlsList;\r\n track item.name\r\n ) {\r\n <ng-template controlRender [control]=\"item\"></ng-template>\r\n }\r\n @if (settings.withActionButtons) {\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\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 {{ settings.addActionLabel || \"Add\" }}\r\n </button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @for (\r\n formGroup of formArray.controls;\r\n track formGroup.name;\r\n let i = $index\r\n ) {\r\n <div class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\">\r\n @for (item of formGroup.controls | controlsList; track item.name) {\r\n <ng-template controlRender [control]=\"item\"></ng-template>\r\n }\r\n <div\r\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\r\n >\r\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\r\n {{ settings.removeActionLabel || \"Remove\" }}\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n FormControlsRenderDirective,\r\n SpecialFormComponent,\r\n SpecialArrayComponent,\r\n} from './special-form.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { FormControlsListPipe } from '../../core/pipes';\r\nimport { SpecialDropdownComponent } from '../special-dropdown/special-dropdown.component';\r\nimport { SpecialInputComponent } from '../special-input/special-input.component';\r\nimport { SpecialAutocompleteComponent } from '../special-autocomplete/special-autocomplete.component';\r\nimport { SpecialDatepickerComponent } from '../special-datepicker/special-datepicker.component';\r\nimport { SpecialLabelComponent } from '../special-label/special-label.component';\r\nimport { SpecialMultipleAutocompleteComponent } from '../special-multiple-autocomplete/special-multiple-autocomplete.component';\r\nimport { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.component';\r\nimport { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';\r\nimport { SpecialUploadComponent } from '../special-upload/special-upload.component';\r\nimport { SpecialRichtextComponent } from '../special-richtext/special-richtext.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SpecialArrayComponent,\r\n FormControlsRenderDirective,\r\n SpecialFormComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormControlsListPipe,\r\n MatButtonModule,\r\n SpecialRichtextComponent,\r\n SpecialDropdownComponent,\r\n SpecialInputComponent,\r\n SpecialAutocompleteComponent,\r\n SpecialDatepickerComponent,\r\n SpecialLabelComponent,\r\n SpecialMultipleAutocompleteComponent,\r\n SpecialCheckboxComponent,\r\n SpecialTextAreaComponent,\r\n SpecialUploadComponent,\r\n ],\r\n exports: [\r\n SpecialArrayComponent,\r\n FormControlsRenderDirective,\r\n SpecialFormComponent,\r\n ],\r\n})\r\nexport class SpecialFormModule {}\r\n","import {\r\n SpecialFormControl,\r\n SpecialFormArray,\r\n SpecialFormGroup,\r\n} from '../forms/special-forms';\r\n\r\nexport abstract class ISpecialControl {\r\n control: SpecialFormControl<any> | SpecialFormArray | SpecialFormGroup;\r\n}\r\n","import { createMask } from '@ngneat/input-mask';\r\n\r\nexport const currencyInputMask = createMask({\r\n alias: 'numeric',\r\n groupSeparator: ',',\r\n autoUnmask: true,\r\n digits: 2,\r\n digitsOptional: false,\r\n prefix: '$ ',\r\n placeholder: '0',\r\n});\r\n","import { createMask } from '@ngneat/input-mask';\r\n\r\nexport const numberMask = (max = 1000) =>\r\n createMask({ alias: 'numeric', min: 0, max });\r\n","/*\r\n * Public API Surface of special-forms\r\n */\r\n\r\nexport * from './lib/components';\r\nexport * from './lib/core/services/index';\r\nexport { EControlTypes } from './lib/core/aux-data/control-types.enum';\r\nexport * from './lib/core/forms/special-forms';\r\nexport * from './lib/core/interfaces/field-basics.interfaces';\r\nexport * from './lib/core/interfaces/form.interfaces';\r\nexport * from './lib/core/interfaces/special-control.interface';\r\nexport * from './lib/core/masks/index';\r\nexport * from './lib/core/pipes/index';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i6","i1","i2","i3","i5","i4","i1.FormControlsListPipe"],"mappings":"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"}