@bsachref/ng-form 1.0.2 → 1.0.4

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":"bsachref-ng-form.mjs","sources":["../../../ngForm/src/app/validation-messages/validation-messages.component.ts","../../../ngForm/src/app/validation-messages/validation-messages.component.html","../../../ngForm/src/app/default-forms/default-forms.component.ts","../../../ngForm/src/app/default-forms/default-forms.component.html","../../../ngForm/src/app/material-form/material-form.component.ts","../../../ngForm/src/app/material-form/material-form.component.html","../../../ngForm/src/app/file-upload-accessor.directive.ts","../../../ngForm/src/app/prime-form/prime-form.component.ts","../../../ngForm/src/app/prime-form/prime-form.component.html","../../../ngForm/src/bsachref-ng-form.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { FormControlConfig } from '../formControlConfig';\n\n@Component({\n selector: 'validation-messages',\n standalone: true,\n imports: [],\n templateUrl: './validation-messages.component.html',\n styleUrl: './validation-messages.component.css',\n})\nexport class ValidationMessagesComponent {\n @Input() control!: AbstractControl | null; // The form control to validate\n @Input() controlName!: string; // The name of the control (for displaying in messages)\n @Input() config!: FormControlConfig; // The configuration for the control\n\n getValidatorValue(validatorName: keyof ValidationErrors, key: string): any {\n return this.control?.errors?.[validatorName]?.[key];\n }\n\n getCustomErrorMessage(): string | null {\n if (this.control?.errors?.['custom']) {\n return this.control.errors['custom'].message ?? 'Invalid input';\n }\n return null;\n }\n}\n","@if (control?.invalid && control?.touched) {\n <section class=\"error-messages\" style=\"color: red\">\n @if (control?.errors?.[\"required\"]) {\n <small>{{ controlName }} is required</small>\n }\n @if (control?.errors?.[\"minlength\"]) {\n <small\n >Minimum length:\n {{ getValidatorValue(\"minlength\", \"requiredLength\") }}</small\n >\n }\n @if (control?.errors?.[\"maxlength\"]) {\n <small\n >Maximum length:\n {{ getValidatorValue(\"maxlength\", \"requiredLength\") }}</small\n >\n }\n @if (control?.errors?.[\"pattern\"]) {\n <small>Invalid format</small>\n }\n @if (control?.errors?.[\"email\"]) {\n <small>Invalid email address</small>\n }\n @if (control?.errors?.[\"min\"]) {\n <small\n >Value must be at least {{ getValidatorValue(\"min\", \"min\") }}</small\n >\n }\n @if (control?.errors?.[\"max\"]) {\n <small>Value must not exceed {{ getValidatorValue(\"max\", \"max\") }}</small>\n }\n @if (control?.errors?.[\"custom\"]) {\n <small>{{ getCustomErrorMessage() }}</small>\n }\n </section>\n}\n","/**\n * @component DefaultFormsComponent\n * @description\n * The `DefaultFormsComponent` is an Angular standalone component that provides a dynamic form generation\n * based on the provided configuration. It uses reactive forms to handle form controls and their validations.\n * The component is designed to be highly configurable and supports various types of form validators.\n *\n * @selector default-forms\n * @standalone true\n * @imports\n * - ReactiveFormsModule\n * - CommonModule\n * - FormsModule\n * - ValidationMessagesComponent\n * @templateUrl ./default-forms.component.html\n * @styleUrl ./default-forms.component.css\n * @changeDetection ChangeDetectionStrategy.OnPush\n *\n * @input\n * - `formName: string` - The name of the form.\n * - `controls: FormControlConfig[]` - An array of form control configurations.\n *\n * @output\n * - `formSubmit: EventEmitter<Record<string, any>>` - Emits the form value when the form is submitted.\n *\n * @class DefaultFormsComponent\n * @implements OnInit\n *\n * @property {string} formName - The name of the form.\n * @property {FormControlConfig[]} controls - The configuration for the form controls.\n * @property {EventEmitter<Record<string, any>>} formSubmit - Event emitter for form submission.\n * @property {FormGroup} form - The reactive form group instance.\n * @property {BehaviorSubject<boolean>} formChanges$ - A subject to track form changes.\n *\n * @constructor\n * @param {FormBuilder} fb - Angular's FormBuilder service to create form controls.\n * @param {ChangeDetectorRef} cdr - Angular's ChangeDetectorRef service to manually trigger change detection.\n *\n * @method ngOnInit\n * @description Lifecycle hook that is called after the component's view has been initialized. It initializes the form.\n *\n * @method initializeForm\n * @description Initializes the form by creating form controls based on the provided configuration and sets up value change subscriptions.\n *\n * @method getValidators\n * @param {FormControlConfig} control - The configuration for a form control.\n * @returns {ValidatorFn[]} An array of validators for the form control.\n * @description Generates an array of validators based on the provided control configuration.\n *\n * @method updateValidators\n * @param {AbstractControl} control - The form control to update validators for.\n * @param {any} value - The current value of the form control.\n * @description Updates the validators for a form control based on its current value.\n *\n * @method shouldRequireValidation\n * @param {any} value - The value to check for validation requirement.\n * @returns {boolean} Whether the value requires validation.\n * @description Determines if a value should require validation.\n *\n * @method onSubmit\n * @description Handles the form submission. Marks the form as touched and dirty, validates the form, emits the form value if valid, and resets the form.\n */\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n input,\n output,\n signal,\n} from '@angular/core';\nimport {\n ReactiveFormsModule,\n FormsModule,\n FormGroup,\n FormBuilder,\n ValidatorFn,\n Validators,\n AbstractControl,\n} from '@angular/forms';\nimport { ValidationMessagesComponent } from '../validation-messages/validation-messages.component';\nimport { FormControlConfig } from '../formControlConfig';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'default-forms',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n CommonModule,\n FormsModule,\n ValidationMessagesComponent,\n ],\n templateUrl: './default-forms.component.html',\n styleUrl: './default-forms.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultFormsComponent {\n formName = input.required<string>();\n controls = input.required<FormControlConfig[]>();\n formSubmit = output<Record<string, any>>();\n\n form!: FormGroup;\n private formChanges$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.initializeForm();\n }\n\n private initializeForm(): void {\n const formControls: { [key: string]: any } = {};\n\n this.controls().forEach((control) => {\n formControls[control.name] = [\n control.value ?? '',\n this.getValidators(control),\n ];\n });\n\n this.form = this.fb.group(formControls);\n\n this.controls().forEach((control) => {\n const formControl = this.form.get(control.name);\n if (formControl) {\n formControl.valueChanges.subscribe((value) => {\n this.updateValidators(formControl, value);\n });\n }\n });\n\n this.formChanges$.subscribe(() => this.cdr.markForCheck());\n }\n\n private getValidators(control: FormControlConfig): ValidatorFn[] {\n const validators: ValidatorFn[] = [];\n\n if (control.validators) {\n control.validators.forEach((validator) => {\n if (validator.required) validators.push(Validators.required);\n if (validator.minlength)\n validators.push(Validators.minLength(validator.minlength));\n if (validator.maxlength)\n validators.push(Validators.maxLength(validator.maxlength));\n if (validator.pattern)\n validators.push(Validators.pattern(validator.pattern));\n if (validator.email) validators.push(Validators.email);\n if (validator.custom) validators.push(validator.custom);\n });\n }\n\n return validators;\n }\n\n private updateValidators(control: AbstractControl, value: any): void {\n if (this.shouldRequireValidation(value)) {\n control.addValidators(Validators.required);\n } else {\n control.removeValidators(Validators.required);\n }\n\n control.updateValueAndValidity();\n this.formChanges$.next(true);\n }\n\n private shouldRequireValidation(value: any): boolean {\n return value !== null && value !== '';\n }\n\n onSubmit(): void {\n this.form.markAllAsTouched();\n this.form.markAsDirty();\n this.form.updateValueAndValidity();\n\n if (this.form.valid) {\n this.formSubmit.emit(this.form.value);\n this.form.reset();\n } else {\n console.error('Form Invalid');\n }\n\n this.formChanges$.next(true);\n }\n}\n","<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"default\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @if (control.type === \"input\") {\n <input\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n type=\"text\"\n />\n }\n @if (control.type === \"select\") {\n <select [formControlName]=\"control.name\" [id]=\"control.name\">\n @for (option of control.options; track $index) {\n <option [value]=\"option\">{{ option }}</option>\n }\n </select>\n }\n @if (control.type === \"textarea\") {\n <textarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n ></textarea>\n }\n @if (control.type === \"checkbox\") {\n <input\n type=\"checkbox\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n />\n }\n @if (control.type === \"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.name\"\n [id]=\"control.name + '-' + option\"\n [value]=\"option\"\n />\n <label [for]=\"control.name + '-' + option\">{{ option }}</label>\n </div>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button type=\"submit\" [disabled]=\"form.invalid\">Submit</button>\n</form>\n","/**\n * @component\n * @name MaterialFormsComponent\n * @description\n * A standalone Angular component that renders a dynamic form using Angular Material components.\n * The form configuration is provided via inputs, and the form submission is handled via an output event.\n * \n * @selector material-forms\n * @standalone true\n * @imports\n * - CommonModule\n * - ReactiveFormsModule\n * - MatInputModule\n * - MatSelectModule\n * - MatCheckboxModule\n * - MatRadioModule\n * - MatButtonModule\n * - ValidationMessagesComponent\n * - MatDatepickerModule\n * - MatFormFieldModule\n * @providers provideNativeDateAdapter\n * @templateUrl ./material-form.component.html\n * @styleUrl ./material-form.component.css\n * @changeDetection ChangeDetectionStrategy.OnPush\n * \n * @inputs\n * @property {string} formName - The name of the form.\n * @property {FormControlConfig[]} controls - The configuration for the form controls.\n * \n * @outputs\n * @property {EventEmitter<Record<string, any>>} formSubmit - Event emitted when the form is submitted.\n * \n * @class\n * @name MaterialFormsComponent\n * @description\n * This class defines the MaterialFormsComponent which initializes the form based on the provided controls configuration,\n * handles form submission, and provides validation for the form controls.\n * \n * @constructor\n * @param {FormBuilder} fb - Angular FormBuilder service to create form groups and controls.\n * @param {ChangeDetectorRef} cdr - Angular ChangeDetectorRef service to manually trigger change detection.\n * \n * @method\n * @name ngOnInit\n * @description\n * Lifecycle hook that is called after the component's view has been initialized. It initializes the form.\n * \n * @method\n * @name initializeForm\n * @description\n * Initializes the form controls based on the provided configuration. Supports datepicker range controls.\n * \n * @method\n * @name getValidators\n * @description\n * Returns an array of Angular validators based on the provided control configuration.\n * @param {FormControlConfig} control - The configuration for the form control.\n * @returns {Validators[]} - An array of Angular validators.\n * \n * @method\n * @name onSubmit\n * @description\n * Handles the form submission. Marks all controls as touched and dirty, updates the form's validity,\n * emits the form values if the form is valid, and resets the form. Triggers change detection.\n */\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n input,\n output,\n} from '@angular/core';\nimport {\n ReactiveFormsModule,\n FormGroup,\n FormBuilder,\n Validators,\n} from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ValidationMessagesComponent } from '../validation-messages/validation-messages.component';\nimport { FormControlConfig } from '../formControlConfig';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { provideNativeDateAdapter } from '@angular/material/core';\n\n\n@Component({\n selector: 'material-forms',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatInputModule,\n MatSelectModule,\n MatCheckboxModule,\n MatRadioModule,\n MatButtonModule,\n ValidationMessagesComponent,\n MatDatepickerModule,\n MatFormFieldModule,\n ],\n providers: [provideNativeDateAdapter()],\n templateUrl: './material-form.component.html',\n styleUrl: './material-form.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MaterialFormsComponent {\n formName = input.required<string>();\n controls = input.required<FormControlConfig[]>();\n formSubmit = output<Record<string, any>>();\n\n form!: FormGroup;\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.initializeForm();\n }\n\n private initializeForm(): void {\n const formControls: { [key: string]: any } = {};\n\n this.controls().forEach((control) => {\n if (control.type === 'datepicker' && control.datePickerMode === 'range') {\n formControls[`${control.name}_Start`] = [\n control.value?.start ?? '',\n this.getValidators(control),\n ];\n formControls[`${control.name}_End`] = [\n control.value?.end ?? '',\n this.getValidators(control),\n ];\n } else {\n formControls[control.name] = [\n control.value ?? '',\n this.getValidators(control),\n ];\n }\n });\n\n this.form = this.fb.group(formControls);\n }\n\n private getValidators(control: FormControlConfig): Validators[] {\n const validators: Validators[] = [];\n\n if (control.validators) {\n control.validators.forEach((validator) => {\n if (validator.required) validators.push(Validators.required);\n if (validator.minlength)\n validators.push(Validators.minLength(validator.minlength));\n if (validator.maxlength)\n validators.push(Validators.maxLength(validator.maxlength));\n if (validator.pattern)\n validators.push(Validators.pattern(validator.pattern));\n if (validator.email) validators.push(Validators.email);\n if (validator.custom) validators.push(validator.custom);\n });\n }\n\n return validators;\n }\n\n onSubmit(): void {\n this.form.markAllAsTouched();\n this.form.markAsDirty();\n this.form.updateValueAndValidity();\n\n if (this.form.valid) {\n this.formSubmit.emit(this.form.value);\n this.form.reset();\n } else {\n console.error('Form Invalid');\n }\n\n this.cdr.markForCheck();\n }\n}\n","<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"material\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.type === \"input\") {\n <mat-form-field appearance=\"outline\">\n @if (control.label) {\n <mat-label>{{ control.label }}</mat-label>\n }\n <input\n matInput\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n type=\"text\"\n />\n </mat-form-field>\n }\n @if (control.type === \"select\") {\n <mat-form-field appearance=\"outline\">\n @if (control.label) {\n <mat-label>{{ control.label }}</mat-label>\n }\n <mat-select [formControlName]=\"control.name\" [id]=\"control.name\">\n @for (option of control.options ?? []; track $index) {\n <mat-option [value]=\"option\">{{ option }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (control.type === \"checkbox\") {\n <mat-checkbox [formControlName]=\"control.name\" [id]=\"control.name\">\n {{ control.label }}\n </mat-checkbox>\n }\n @if (control.type === \"radio\") {\n @for (option of control.options ?? []; track $index) {\n <mat-radio-group [formControlName]=\"control.name\">\n <mat-radio-button\n [id]=\"control.name + '-' + option\"\n [value]=\"option\"\n >\n {{ option }}\n </mat-radio-button>\n </mat-radio-group>\n }\n }\n @if (control.type === \"datepicker\") {\n @if (control.datePickerMode === \"single\") {\n <mat-form-field appearance=\"outline\">\n <mat-label>Choose a date</mat-label>\n <input\n matInput\n [matDatepicker]=\"datepicker\"\n [formControlName]=\"control.name\"\n />\n <mat-datepicker-toggle\n matIconSuffix\n [for]=\"datepicker\"\n ></mat-datepicker-toggle>\n <mat-datepicker #datepicker></mat-datepicker>\n </mat-form-field>\n } @else if (control.datePickerMode === \"range\") {\n <mat-form-field>\n <mat-label>Enter a date range</mat-label>\n <mat-date-range-input\n [rangePicker]=\"picker\"\n [formGroup]=\"form\"\n ]\n >\n <input\n matStartDate\n formControlName=\"{{ control.name }}_Start\"\n placeholder=\"Start date\"\n />\n <input\n matEndDate\n formControlName=\"{{ control.name }}_End\"\n placeholder=\"End date\"\n />\n </mat-date-range-input>\n <mat-datepicker-toggle\n matIconSuffix\n [for]=\"picker\"\n ></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n <!-- @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n } -->\n </mat-form-field>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button\n mat-raised-button\n color=\"primary\"\n type=\"submit\"\n [disabled]=\"form.invalid\"\n >\n Submit\n </button>\n</form>\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { FileUpload } from 'primeng/fileupload';\n\n@Directive({\n standalone: true,\n selector: 'p-fileUpload[formControlName], p-fileUpload[formControl], p-fileUpload[ngModel]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileUploadValueAccessor),\n multi: true,\n },\n ],\n})\nexport class FileUploadValueAccessor implements ControlValueAccessor {\n constructor(private host: FileUpload) {}\n\n writeValue(value: any): void {\n if (value) {\n this.host.files = value;\n } else {\n this.host.clear();\n }\n }\n\n registerOnChange(fn: any): void {\n this.host.onUpload.subscribe((event: any) => {\n fn(event.files);\n });\n }\n\n registerOnTouched(fn: any): void {\n // this.host.onBlur.subscribe(fn);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.host.disabled = isDisabled;\n }\n}","/**\n * PrimeNgFormsComponent is a standalone Angular component that dynamically generates\n * a form based on the provided configuration. It leverages PrimeNG UI components\n * and Angular Reactive Forms for form creation and validation.\n * \n * @selector primeng-forms\n * @standalone true\n * @imports [\n * CommonModule,\n * FormsModule,\n * ReactiveFormsModule,\n * ValidationMessagesComponent,\n * InputTextModule,\n * MultiSelectModule,\n * TextareaModule,\n * CheckboxModule,\n * RadioButtonModule,\n * DatePickerModule,\n * ToggleButtonModule,\n * FileUploadModule,\n * SliderModule,\n * ButtonModule,\n * SelectModule,\n * FileUploadValueAccessor\n * ]\n * @templateUrl ./prime-form.component.html\n * @styleUrl ./prime-form.component.css\n * @changeDetection ChangeDetectionStrategy.OnPush\n * \n * @property {string} formName - The name of the form.\n * @property {FormControlConfig[]} controls - The configuration for the form controls.\n * @property {EventEmitter<Record<string, any>>} formSubmit - Event emitter for form submission.\n * @property {FormGroup} form - The reactive form group.\n * @property {BehaviorSubject<boolean>} formChanges$ - Observable to track form changes.\n * \n * @constructor\n * @param {FormBuilder} fb - FormBuilder service to create form controls.\n * @param {ChangeDetectorRef} cdr - ChangeDetectorRef to manually trigger change detection.\n * \n * @method ngOnInit - Lifecycle hook that initializes the form.\n * @method initializeForm - Initializes the form controls and sets up value change subscriptions.\n * @method getValidators - Returns an array of validators for a given form control configuration.\n * @param {FormControlConfig} control - The configuration for a form control.\n * @returns {ValidatorFn[]} - An array of validator functions.\n * @method updateValidators - Updates the validators for a form control based on its value.\n * @param {AbstractControl} control - The form control to update.\n * @param {any} value - The current value of the form control.\n * @method shouldRequireValidation - Determines if a form control should require validation.\n * @param {any} value - The current value of the form control.\n * @returns {boolean} - True if validation is required, false otherwise.\n * @method onFileSelect - Handles file selection for file upload controls.\n * @param {any} event - The file selection event.\n * @param {string} controlName - The name of the form control.\n * @method onSubmit - Handles form submission, validates the form, and emits the form value.\n */\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n input,\n output,\n} from '@angular/core';\nimport {\n ReactiveFormsModule,\n FormsModule,\n FormGroup,\n FormBuilder,\n ValidatorFn,\n Validators,\n AbstractControl,\n} from '@angular/forms';\nimport { ValidationMessagesComponent } from '../validation-messages/validation-messages.component';\nimport { FormControlConfig } from '../formControlConfig';\nimport { BehaviorSubject } from 'rxjs';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { TextareaModule } from 'primeng/textarea';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { SliderModule } from 'primeng/slider';\nimport { ButtonModule } from 'primeng/button';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { SelectModule } from 'primeng/select';\nimport { FileUploadValueAccessor } from '../file-upload-accessor.directive';\n\n\n@Component({\n selector: 'primeng-forms',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ValidationMessagesComponent,\n InputTextModule,\n MultiSelectModule,\n TextareaModule,\n CheckboxModule,\n RadioButtonModule,\n DatePickerModule,\n ToggleButtonModule,\n FileUploadModule,\n SliderModule,\n ButtonModule,\n SelectModule,\n FileUploadValueAccessor\n ],\n templateUrl: './prime-form.component.html',\n styleUrl: './prime-form.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PrimeNgFormsComponent {\n formName = input.required<string>();\n controls = input.required<FormControlConfig[]>();\n formSubmit = output<Record<string, any>>();\n\n form!: FormGroup;\n private formChanges$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.initializeForm();\n }\n\n private initializeForm(): void {\n const formControls: { [key: string]: any } = {};\n\n this.controls().forEach((control) => {\n formControls[control.name] = [\n control.value ?? null,\n this.getValidators(control),\n ];\n });\n\n this.form = this.fb.group(formControls);\n\n this.controls().forEach((control) => {\n const formControl = this.form.get(control.name);\n if (formControl) {\n formControl.valueChanges.subscribe((value) => {\n this.updateValidators(formControl, value);\n });\n }\n });\n\n this.formChanges$.subscribe(() => this.cdr.markForCheck());\n }\n\n private getValidators(control: FormControlConfig): ValidatorFn[] {\n const validators: ValidatorFn[] = [];\n\n if (control.validators) {\n control.validators.forEach((validator) => {\n if (validator.required) validators.push(Validators.required);\n if (validator.minlength)\n validators.push(Validators.minLength(validator.minlength));\n if (validator.maxlength)\n validators.push(Validators.maxLength(validator.maxlength));\n if (validator.pattern)\n validators.push(Validators.pattern(validator.pattern));\n if (validator.email) validators.push(Validators.email);\n if (validator.custom) validators.push(validator.custom);\n });\n }\n\n return validators;\n }\n\n private updateValidators(control: AbstractControl, value: any): void {\n if (this.shouldRequireValidation(value)) {\n control.addValidators(Validators.required);\n } else {\n control.removeValidators(Validators.required);\n }\n\n control.updateValueAndValidity();\n this.formChanges$.next(true);\n }\n\n private shouldRequireValidation(value: any): boolean {\n return value !== null && value !== '';\n }\n\n onFileSelect(event: any, controlName: string) {\n const file = event.files[0]; // Getting the first selected file\n if (file) {\n console.log(`Selected file for ${controlName}:`, file);\n console.log(this.form.get(controlName)?.value);\n \n this.form.get(controlName)?.setValue(file);\n console.log(this.form.get(controlName)?.value);\n this.form.get(controlName)?.updateValueAndValidity(); // Update the form control's validity\n \n // Emit the onUpload event if defined\n const controlConfig = this.controls().find(control => control.name === controlName);\n if (controlConfig?.events?.onUpload) {\n controlConfig.events.onUpload(event);\n }\n }\n }\n\n onSubmit(): void {\n this.form.markAllAsTouched();\n this.form.markAsDirty();\n this.form.updateValueAndValidity();\n \n if (this.form.valid) {\n this.formSubmit.emit(this.form.value);\n this.form.reset();\n // Clear the file input\n const fileInput = document.querySelector('input[type=\"file\"]') as HTMLInputElement;\n if (fileInput) {\n fileInput.value = '';\n }\n } else {\n console.error('Form Invalid');\n }\n \n this.formChanges$.next(true);\n }\n}\n","<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"primeng\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @switch (control.type) {\n @case (\"text\") {\n <input\n pInputText\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"number\") {\n <input\n pInputText\n type=\"number\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"password\") {\n <input\n pInputText\n type=\"password\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"email\") {\n <input\n pInputText\n type=\"email\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"select\") {\n <p-select\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"multi-select\") {\n <p-multiSelect\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-multiSelect>\n }\n @case (\"textarea\") {\n <textarea\n pTextarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n ></textarea>\n }\n @case (\"checkbox\") {\n <p-checkbox\n [binary]=\"true\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-checkbox>\n }\n @case (\"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <p-radioButton\n [name]=\"control.name\"\n [formControlName]=\"control.name\"\n [value]=\"option\"\n [inputId]=\"'radio-' + option\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-radioButton>\n <label [for]=\"'radio-' + option\">{{ option }}</label>\n </div>\n }\n }\n @case (\"date\") {\n <p-datepicker\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"toggle\") {\n <p-toggleButton\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-toggleButton>\n }\n <!-- @case (\"file\") {\n <p-fileUpload \n [customUpload]=\"true\"\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n\n <p-fileUpload\n [customUpload]=\"true\"\n (onUpload)=\"onFileSelect($event, control.name)\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n [chooseLabel]=\"control.primeng?.chooseLabel\"\n [uploadLabel]=\"control.primeng?.uploadLabel\"\n [cancelLabel]=\"control.primeng?.cancelLabel\"\n [auto]=\"control.primeng?.auto\"\n [url]=\"control.primeng?.url\"\n [withCredentials]=\"control.primeng?.withCredentials\"\n [multiple]=\"control.primeng?.multiple\"\n [maxFileSize]=\"control.primeng?.maxFileSize\"\n [customUpload]=\"control.primeng?.customUpload\"\n [showUploadButton]=\"control.primeng?.showUploadButton\"\n [showCancelButton]=\"control.primeng?.showCancelButton\"\n [accept]=\"control.primeng?.accept\"\n [mode]=\"control.primeng?.mode\"\n [previewWidth]=\"control.primeng?.previewWidth\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n <ng-template pTemplate=\"content\">\n <p-button label=\"Choose File\" icon=\"pi pi-upload\"></p-button>\n </ng-template>\n </p-fileUpload>\n } -->\n @case (\"slider\") {\n <p-slider\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onSlideEnd)=\"control.events?.onSlideEnd?.($event)\"\n ></p-slider>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button\n pButton\n type=\"submit\"\n [disabled]=\"form.invalid\"\n label=\"Submit\"\n ></button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i4","i5","i6","i7","i8","i9","i10"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWa,2BAA2B,CAAA;IAC7B,OAAO,CAA0B;IACjC,WAAW,CAAU;IACrB,MAAM,CAAqB;IAEpC,iBAAiB,CAAC,aAAqC,EAAE,GAAW,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;KACrD;IAED,qBAAqB,GAAA;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC;SACjE;AACD,QAAA,OAAO,IAAI,CAAC;KACb;wGAdU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,6JCXxC,8nCAoCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDzBa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,QAAA,EAAA,8nCAAA,EAAA,CAAA;8BAKF,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEdR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DG;MAoCU,qBAAqB,CAAA;AAStB,IAAA,EAAA,CAAA;AACA,IAAA,GAAA,CAAA;AATV,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AACpC,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAuB,CAAC;IACjD,UAAU,GAAG,MAAM,EAAuB,CAAC;AAE3C,IAAA,IAAI,CAAa;AACT,IAAA,YAAY,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;IAE3D,WACU,CAAA,EAAe,EACf,GAAsB,EAAA;QADtB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;KAC5B;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEO,cAAc,GAAA;QACpB,MAAM,YAAY,GAA2B,EAAE,CAAC;QAEhD,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;gBAC3B,OAAO,CAAC,KAAK,IAAI,EAAE;AACnB,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;aAC5B,CAAC;AACJ,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC3C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC5C,iBAAC,CAAC,CAAC;aACJ;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;KAC5D;AAEO,IAAA,aAAa,CAAC,OAA0B,EAAA;QAC9C,MAAM,UAAU,GAAkB,EAAE,CAAC;AAErC,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;gBACvC,IAAI,SAAS,CAAC,QAAQ;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,SAAS;AACrB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,SAAS;AACrB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,OAAO;AACnB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzD,IAAI,SAAS,CAAC,KAAK;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,SAAS,CAAC,MAAM;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;IAEO,gBAAgB,CAAC,OAAwB,EAAE,KAAU,EAAA;AAC3D,QAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE;AACvC,YAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC5C;aAAM;AACL,YAAA,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC/C;QAED,OAAO,CAAC,sBAAsB,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;AAEO,IAAA,uBAAuB,CAAC,KAAU,EAAA;AACxC,QAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;KACvC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;SACnB;aAAM;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;wGAzFU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjGlC,yyEAmEA,EDqBI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,2uDACnB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,2BAA2B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAMlB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EACP,OAAA,EAAA;wBACP,mBAAmB;wBACnB,YAAY;wBACZ,WAAW;wBACX,2BAA2B;qBAC5B,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yyEAAA,EAAA,CAAA;;;AE/FjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEG;MA+CU,sBAAsB,CAAA;AAQvB,IAAA,EAAA,CAAA;AACA,IAAA,GAAA,CAAA;AARV,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AACpC,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAuB,CAAC;IACjD,UAAU,GAAG,MAAM,EAAuB,CAAC;AAE3C,IAAA,IAAI,CAAa;IAEjB,WACU,CAAA,EAAe,EACf,GAAsB,EAAA;QADtB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;KAC5B;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEO,cAAc,GAAA;QACpB,MAAM,YAAY,GAA2B,EAAE,CAAC;QAEhD,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,cAAc,KAAK,OAAO,EAAE;AACvE,gBAAA,YAAY,CAAC,CAAG,EAAA,OAAO,CAAC,IAAI,CAAA,MAAA,CAAQ,CAAC,GAAG;AACtC,oBAAA,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;AAC1B,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;iBAC5B,CAAC;AACF,gBAAA,YAAY,CAAC,CAAG,EAAA,OAAO,CAAC,IAAI,CAAA,IAAA,CAAM,CAAC,GAAG;AACpC,oBAAA,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE;AACxB,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;iBAC5B,CAAC;aACH;iBAAM;AACL,gBAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;oBAC3B,OAAO,CAAC,KAAK,IAAI,EAAE;AACnB,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;iBAC5B,CAAC;aACH;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KACzC;AAEO,IAAA,aAAa,CAAC,OAA0B,EAAA;QAC9C,MAAM,UAAU,GAAiB,EAAE,CAAC;AAEpC,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;gBACvC,IAAI,SAAS,CAAC,QAAQ;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,SAAS;AACrB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,SAAS;AACrB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,OAAO;AACnB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzD,IAAI,SAAS,CAAC,KAAK;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,SAAS,CAAC,MAAM;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;SACnB;aAAM;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;wGAzEU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EALtB,CAAC,wBAAwB,EAAE,CAAC,EC1GzC,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,q0IAmHA,EDpBI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,uvBACd,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,2BAA2B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC3B,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,UAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,kBAAkB,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAOT,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBApBlC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,2BAA2B;wBAC3B,mBAAmB;wBACnB,kBAAkB;AACnB,qBAAA,EAAA,SAAA,EACU,CAAC,wBAAwB,EAAE,CAAC,EAGtB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,q0IAAA,EAAA,CAAA;;;ME9FpC,uBAAuB,CAAA;AACd,IAAA,IAAA,CAAA;AAApB,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KAAI;AAExC,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACzB;aAAM;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;SACnB;KACF;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AAC1C,YAAA,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;;KAExB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KACjC;wGAvBU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EARvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iFAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,iFAAiF;AAC3F,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,6BAA6B,CAAC;AACtD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACdD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDG;MA4DU,qBAAqB,CAAA;AAStB,IAAA,EAAA,CAAA;AACA,IAAA,GAAA,CAAA;AATV,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;AACpC,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAuB,CAAC;IACjD,UAAU,GAAG,MAAM,EAAuB,CAAC;AAE3C,IAAA,IAAI,CAAa;AACT,IAAA,YAAY,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;IAE3D,WACU,CAAA,EAAe,EACf,GAAsB,EAAA;QADtB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;KAC5B;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEO,cAAc,GAAA;QACpB,MAAM,YAAY,GAA2B,EAAE,CAAC;QAEhD,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;gBAC3B,OAAO,CAAC,KAAK,IAAI,IAAI;AACrB,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;aAC5B,CAAC;AACJ,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC3C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC5C,iBAAC,CAAC,CAAC;aACJ;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;KAC5D;AAEO,IAAA,aAAa,CAAC,OAA0B,EAAA;QAC9C,MAAM,UAAU,GAAkB,EAAE,CAAC;AAErC,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;gBACvC,IAAI,SAAS,CAAC,QAAQ;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,SAAS;AACrB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,SAAS;AACrB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,IAAI,SAAS,CAAC,OAAO;AACnB,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzD,IAAI,SAAS,CAAC,KAAK;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,SAAS,CAAC,MAAM;AAAE,oBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;IAEO,gBAAgB,CAAC,OAAwB,EAAE,KAAU,EAAA;AAC3D,QAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE;AACvC,YAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC5C;aAAM;AACL,YAAA,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC/C;QAED,OAAO,CAAC,sBAAsB,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;AAEO,IAAA,uBAAuB,CAAC,KAAU,EAAA;AACxC,QAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;KACvC;IAED,YAAY,CAAC,KAAU,EAAE,WAAmB,EAAA;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,CAAA,kBAAA,EAAqB,WAAW,CAAG,CAAA,CAAA,EAAE,IAAI,CAAC,CAAC;AACvD,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;AAE/C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;;AAGrD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;AACpF,YAAA,IAAI,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE;AACnC,gBAAA,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtC;SACF;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;;YAElB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAqB,CAAC;YACnF,IAAI,SAAS,EAAE;AACb,gBAAA,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;aACtB;SACF;aAAM;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SAC/B;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;wGAhHU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EClHlC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6tSAqNA,EDxHI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,2BAA2B,EAC3B,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,4IACf,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,MAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,KAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,qQACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAOH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAzBjC,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,2BAA2B;wBAC3B,eAAe;wBACf,iBAAiB;wBACjB,cAAc;wBACd,cAAc;wBACd,iBAAiB;wBACjB,gBAAgB;wBAChB,kBAAkB;wBAClB,gBAAgB;wBAChB,YAAY;wBACZ,YAAY;wBACZ,YAAY;wBACZ,uBAAuB;qBACxB,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6tSAAA,EAAA,CAAA;;;AEhHjD;;AAEG;;;;"}
1
+ {"version":3,"file":"bsachref-ng-form.mjs","sources":["../../../ngForm/src/app/validation-messages/validation-messages.component.ts","../../../ngForm/src/app/validation-messages/validation-messages.component.html","../../../ngForm/src/app/base.component.ts","../../../ngForm/src/app/default-forms/default-forms.component.ts","../../../ngForm/src/app/default-forms/default-forms.component.html","../../../ngForm/src/app/material-form/material-form.component.ts","../../../ngForm/src/app/material-form/material-form.component.html","../../../ngForm/src/app/prime-form/prime-form.component.ts","../../../ngForm/src/app/prime-form/prime-form.component.html","../../../ngForm/src/bsachref-ng-form.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { FormControlConfig } from '../formControlConfig';\n\n@Component({\n selector: 'validation-messages',\n standalone: true,\n imports: [],\n templateUrl: './validation-messages.component.html',\n})\nexport class ValidationMessagesComponent {\n @Input() control!: AbstractControl | null; // The form control to validate\n @Input() controlName!: string; // The name of the control (for displaying in messages)\n @Input() config!: FormControlConfig; // The configuration for the control\n\n getValidatorValue(validatorName: keyof ValidationErrors, key: string): any {\n return this.control?.errors?.[validatorName]?.[key];\n }\n\n getCustomErrorMessage(): string | null {\n if (this.control?.errors?.['custom']) {\n return this.control.errors['custom'].message ?? 'Invalid input';\n }\n return null;\n }\n}\n","@if (control?.invalid && control?.touched) {\n <section class=\"error-messages\" style=\"color: red\">\n @if (control?.errors?.[\"required\"]) {\n <small>{{ controlName }} is required</small>\n }\n @if (control?.errors?.[\"minlength\"]) {\n <small\n >Minimum length:\n {{ getValidatorValue(\"minlength\", \"requiredLength\") }}</small\n >\n }\n @if (control?.errors?.[\"maxlength\"]) {\n <small\n >Maximum length:\n {{ getValidatorValue(\"maxlength\", \"requiredLength\") }}</small\n >\n }\n @if (control?.errors?.[\"pattern\"]) {\n <small>Invalid format</small>\n }\n @if (control?.errors?.[\"email\"]) {\n <small>Invalid email address</small>\n }\n @if (control?.errors?.[\"min\"]) {\n <small\n >Value must be at least {{ getValidatorValue(\"min\", \"min\") }}</small\n >\n }\n @if (control?.errors?.[\"max\"]) {\n <small>Value must not exceed {{ getValidatorValue(\"max\", \"max\") }}</small>\n }\n @if (control?.errors?.[\"custom\"]) {\n <small>{{ getCustomErrorMessage() }}</small>\n }\n </section>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n input,\n output,\n} from '@angular/core';\nimport {\n ReactiveFormsModule,\n FormsModule,\n FormGroup,\n FormBuilder,\n ValidatorFn,\n Validators,\n AbstractControl,\n} from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { ValidationMessagesComponent } from './validation-messages/validation-messages.component';\nimport { FormControlConfig } from '../public-api';\n\n@Component({\n selector: 'base-forms',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n ValidationMessagesComponent,\n ],\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseFormsComponent {\n formName = input.required<string>();\n controls = input.required<FormControlConfig[]>();\n formSubmit = output<Record<string, any>>();\n\n form!: FormGroup;\n protected formChanges$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n protected fb: FormBuilder,\n protected cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.initializeForm();\n }\n\n protected initializeForm(): void {\n const formControls: { [key: string]: any } = {};\n\n this.controls().forEach((control) => {\n formControls[control.name] = [\n control.value ?? '',\n this.getValidators(control),\n ];\n });\n\n this.form = this.fb.group(formControls);\n\n this.controls().forEach((control) => {\n const formControl = this.form.get(control.name);\n if (formControl) {\n formControl.valueChanges.subscribe((value) => {\n // Only update validators if the value actually changes\n if (formControl.value !== value) {\n this.updateValidators(formControl, value);\n }\n });\n }\n });\n\n this.formChanges$.subscribe(() => this.cdr.markForCheck());\n }\n\n protected getValidators(control: FormControlConfig): ValidatorFn[] {\n const validators: ValidatorFn[] = [];\n\n if (control.validators) {\n control.validators.forEach((validator) => {\n if (validator.required) validators.push(Validators.required);\n if (validator.minlength)\n validators.push(Validators.minLength(validator.minlength));\n if (validator.maxlength)\n validators.push(Validators.maxLength(validator.maxlength));\n if (validator.pattern)\n validators.push(Validators.pattern(validator.pattern));\n if (validator.email) validators.push(Validators.email);\n if (validator.custom) validators.push(validator.custom);\n });\n }\n\n return validators;\n }\n\n protected updateValidators(control: AbstractControl, value: any): void {\n const requiresValidation = this.shouldRequireValidation(value);\n\n // Check if the validators need to be updated\n const hasRequiredValidator = control.hasValidator(Validators.required);\n\n if (requiresValidation && !hasRequiredValidator) {\n control.addValidators(Validators.required);\n control.updateValueAndValidity();\n } else if (!requiresValidation && hasRequiredValidator) {\n control.removeValidators(Validators.required);\n control.updateValueAndValidity();\n }\n\n this.formChanges$.next(true);\n }\n\n protected shouldRequireValidation(value: any): boolean {\n return value !== null && value !== '';\n }\n\n onSubmit(): void {\n this.form.markAllAsTouched();\n this.form.markAsDirty();\n this.form.updateValueAndValidity();\n\n if (this.form.valid) {\n this.formSubmit.emit(this.form.value);\n this.form.reset();\n } else {\n console.error('Form Invalid');\n }\n\n this.formChanges$.next(true);\n }\n}","/**\n * @component DefaultFormsComponent\n * @description\n * The `DefaultFormsComponent` is an Angular standalone component that provides a dynamic form generation\n * based on the provided configuration. It uses reactive forms to handle form controls and their validations.\n * The component is designed to be highly configurable and supports various types of form validators.\n *\n * @selector default-forms\n * @standalone true\n * @imports\n * - ReactiveFormsModule\n * - CommonModule\n * - FormsModule\n * - ValidationMessagesComponent\n * @templateUrl ./default-forms.component.html\n * @styleUrl ./default-forms.component.css\n * @changeDetection ChangeDetectionStrategy.OnPush\n *\n * @input\n * - `formName: string` - The name of the form.\n * - `controls: FormControlConfig[]` - An array of form control configurations.\n *\n * @output\n * - `formSubmit: EventEmitter<Record<string, any>>` - Emits the form value when the form is submitted.\n *\n * @class DefaultFormsComponent\n * @implements OnInit\n *\n * @property {string} formName - The name of the form.\n * @property {FormControlConfig[]} controls - The configuration for the form controls.\n * @property {EventEmitter<Record<string, any>>} formSubmit - Event emitter for form submission.\n * @property {FormGroup} form - The reactive form group instance.\n * @property {BehaviorSubject<boolean>} formChanges$ - A subject to track form changes.\n *\n * @constructor\n * @param {FormBuilder} fb - Angular's FormBuilder service to create form controls.\n * @param {ChangeDetectorRef} cdr - Angular's ChangeDetectorRef service to manually trigger change detection.\n *\n * @method ngOnInit\n * @description Lifecycle hook that is called after the component's view has been initialized. It initializes the form.\n *\n * @method initializeForm\n * @description Initializes the form by creating form controls based on the provided configuration and sets up value change subscriptions.\n *\n * @method getValidators\n * @param {FormControlConfig} control - The configuration for a form control.\n * @returns {ValidatorFn[]} An array of validators for the form control.\n * @description Generates an array of validators based on the provided control configuration.\n *\n * @method updateValidators\n * @param {AbstractControl} control - The form control to update validators for.\n * @param {any} value - The current value of the form control.\n * @description Updates the validators for a form control based on its current value.\n *\n * @method shouldRequireValidation\n * @param {any} value - The value to check for validation requirement.\n * @returns {boolean} Whether the value requires validation.\n * @description Determines if a value should require validation.\n *\n * @method onSubmit\n * @description Handles the form submission. Marks the form as touched and dirty, validates the form, emits the form value if valid, and resets the form.\n */\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { ValidationMessagesComponent } from '../validation-messages/validation-messages.component';\nimport { BaseFormsComponent } from '../base.component';\n\n@Component({\n selector: 'default-forms',\n standalone: true,\n imports: [\n BaseFormsComponent,\n ReactiveFormsModule,\n CommonModule,\n FormsModule,\n ValidationMessagesComponent,\n ],\n templateUrl: './default-forms.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultFormsComponent extends BaseFormsComponent {}\n","<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"default\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @if (control.type === \"input\") {\n <input\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n type=\"text\"\n />\n }\n @if (control.type === \"select\") {\n <select [formControlName]=\"control.name\" [id]=\"control.name\">\n @for (option of control.options; track $index) {\n <option [value]=\"option\">{{ option }}</option>\n }\n </select>\n }\n @if (control.type === \"textarea\") {\n <textarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n ></textarea>\n }\n @if (control.type === \"checkbox\") {\n <input\n type=\"checkbox\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n />\n }\n @if (control.type === \"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.name\"\n [id]=\"control.name + '-' + option\"\n [value]=\"option\"\n />\n <label [for]=\"control.name + '-' + option\">{{ option }}</label>\n </div>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button type=\"submit\" [disabled]=\"form.invalid\">Submit</button>\n</form>\n","/**\n * @component\n * @name MaterialFormsComponent\n * @description\n * A standalone Angular component that renders a dynamic form using Angular Material components.\n * The form configuration is provided via inputs, and the form submission is handled via an output event.\n * \n * @selector material-forms\n * @standalone true\n * @imports\n * - CommonModule\n * - ReactiveFormsModule\n * - MatInputModule\n * - MatSelectModule\n * - MatCheckboxModule\n * - MatRadioModule\n * - MatButtonModule\n * - ValidationMessagesComponent\n * - MatDatepickerModule\n * - MatFormFieldModule\n * @providers provideNativeDateAdapter\n * @templateUrl ./material-form.component.html\n * @styleUrl ./material-form.component.css\n * @changeDetection ChangeDetectionStrategy.OnPush\n * \n * @inputs\n * @property {string} formName - The name of the form.\n * @property {FormControlConfig[]} controls - The configuration for the form controls.\n * \n * @outputs\n * @property {EventEmitter<Record<string, any>>} formSubmit - Event emitted when the form is submitted.\n * \n * @class\n * @name MaterialFormsComponent\n * @description\n * This class defines the MaterialFormsComponent which initializes the form based on the provided controls configuration,\n * handles form submission, and provides validation for the form controls.\n * \n * @constructor\n * @param {FormBuilder} fb - Angular FormBuilder service to create form groups and controls.\n * @param {ChangeDetectorRef} cdr - Angular ChangeDetectorRef service to manually trigger change detection.\n * \n * @method\n * @name ngOnInit\n * @description\n * Lifecycle hook that is called after the component's view has been initialized. It initializes the form.\n * \n * @method\n * @name initializeForm\n * @description\n * Initializes the form controls based on the provided configuration. Supports datepicker range controls.\n * \n * @method\n * @name getValidators\n * @description\n * Returns an array of Angular validators based on the provided control configuration.\n * @param {FormControlConfig} control - The configuration for the form control.\n * @returns {Validators[]} - An array of Angular validators.\n * \n * @method\n * @name onSubmit\n * @description\n * Handles the form submission. Marks all controls as touched and dirty, updates the form's validity,\n * emits the form values if the form is valid, and resets the form. Triggers change detection.\n */\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport {\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ValidationMessagesComponent } from '../validation-messages/validation-messages.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { provideNativeDateAdapter } from '@angular/material/core';\nimport { BaseFormsComponent } from '../base.component';\n\n\n@Component({\n selector: 'material-forms',\n standalone: true,\n imports: [\n BaseFormsComponent,\n CommonModule,\n ReactiveFormsModule,\n MatInputModule,\n MatSelectModule,\n MatCheckboxModule,\n MatRadioModule,\n MatButtonModule,\n ValidationMessagesComponent,\n MatDatepickerModule,\n MatFormFieldModule,\n ],\n providers: [provideNativeDateAdapter()],\n templateUrl: './material-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MaterialFormsComponent extends BaseFormsComponent {}","<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"material\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.type === \"input\") {\n <mat-form-field appearance=\"outline\">\n @if (control.label) {\n <mat-label>{{ control.label }}</mat-label>\n }\n <input matInput [formControlName]=\"control.name\" [id]=\"control.name\" type=\"text\" />\n </mat-form-field>\n }\n @if (control.type === \"select\") {\n <mat-form-field appearance=\"outline\">\n @if (control.label) {\n <mat-label>{{ control.label }}</mat-label>\n }\n <mat-select [formControlName]=\"control.name\" [id]=\"control.name\">\n @for (option of control.options ?? []; track $index) {\n <mat-option [value]=\"option\">{{ option }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (control.type === \"checkbox\") {\n <mat-checkbox [formControlName]=\"control.name\" [id]=\"control.name\">\n {{ control.label }}\n </mat-checkbox>\n }\n @if (control.type === \"radio\") {\n <mat-radio-group [formControlName]=\"control.name\">\n @for (option of control.options ?? []; track $index) {\n <mat-radio-button [id]=\"control.name + '-' + option\" [value]=\"option\">\n {{ option }}\n </mat-radio-button>\n }\n </mat-radio-group>\n }\n @if (control.type === \"datepicker\") {\n @if (control.datePickerMode === \"single\") {\n <mat-form-field appearance=\"outline\">\n <mat-label>Choose a date</mat-label>\n <input matInput [matDatepicker]=\"datepicker\" [formControlName]=\"control.name\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker #datepicker></mat-datepicker>\n </mat-form-field>\n } @else if (control.datePickerMode === \"range\") {\n <mat-form-field>\n <mat-label>Enter a date range</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" [formGroup]=\"form\" ]>\n <input matStartDate formControlName=\"{{ control.name }}_Start\" placeholder=\"Start date\" />\n <input matEndDate formControlName=\"{{ control.name }}_End\" placeholder=\"End date\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n <!-- @if (form.controls.start.hasError('matStartDateInvalid')) {\n <mat-error>Invalid start date</mat-error>\n }\n @if (form.controls.end.hasError('matEndDateInvalid')) {\n <mat-error>Invalid end date</mat-error>\n } -->\n </mat-form-field>\n }\n }\n\n <validation-messages [control]=\"form.get(control.name)\" [controlName]=\"control.name\"\n [config]=\"control\"></validation-messages>\n </section>\n }\n }\n }\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"form.invalid\">\n Submit\n </button>\n</form>","/**\n * PrimeNgFormsComponent is a standalone Angular component that dynamically generates\n * a form based on the provided configuration. It leverages PrimeNG UI components\n * and Angular Reactive Forms for form creation and validation.\n *\n * @selector primeng-forms\n * @standalone true\n * @imports [\n * CommonModule,\n * FormsModule,\n * ReactiveFormsModule,\n * ValidationMessagesComponent,\n * InputTextModule,\n * MultiSelectModule,\n * TextareaModule,\n * CheckboxModule,\n * RadioButtonModule,\n * DatePickerModule,\n * ToggleButtonModule,\n * FileUploadModule,\n * SliderModule,\n * ButtonModule,\n * SelectModule,\n * FileUploadValueAccessor\n * ]\n * @templateUrl ./prime-form.component.html\n * @styleUrl ./prime-form.component.css\n * @changeDetection ChangeDetectionStrategy.OnPush\n *\n * @property {string} formName - The name of the form.\n * @property {FormControlConfig[]} controls - The configuration for the form controls.\n * @property {EventEmitter<Record<string, any>>} formSubmit - Event emitter for form submission.\n * @property {FormGroup} form - The reactive form group.\n * @property {BehaviorSubject<boolean>} formChanges$ - Observable to track form changes.\n *\n * @constructor\n * @param {FormBuilder} fb - FormBuilder service to create form controls.\n * @param {ChangeDetectorRef} cdr - ChangeDetectorRef to manually trigger change detection.\n *\n * @method ngOnInit - Lifecycle hook that initializes the form.\n * @method initializeForm - Initializes the form controls and sets up value change subscriptions.\n * @method getValidators - Returns an array of validators for a given form control configuration.\n * @param {FormControlConfig} control - The configuration for a form control.\n * @returns {ValidatorFn[]} - An array of validator functions.\n * @method updateValidators - Updates the validators for a form control based on its value.\n * @param {AbstractControl} control - The form control to update.\n * @param {any} value - The current value of the form control.\n * @method shouldRequireValidation - Determines if a form control should require validation.\n * @param {any} value - The current value of the form control.\n * @returns {boolean} - True if validation is required, false otherwise.\n * @method onFileSelect - Handles file selection for file upload controls.\n * @param {any} event - The file selection event.\n * @param {string} controlName - The name of the form control.\n * @method onSubmit - Handles form submission, validates the form, and emits the form value.\n */\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { ValidationMessagesComponent } from '../validation-messages/validation-messages.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { TextareaModule } from 'primeng/textarea';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { SliderModule } from 'primeng/slider';\nimport { ButtonModule } from 'primeng/button';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { SelectModule } from 'primeng/select';\nimport { BaseFormsComponent } from '../base.component';\n\n@Component({\n selector: 'primeng-forms',\n standalone: true,\n imports: [\n BaseFormsComponent,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ValidationMessagesComponent,\n InputTextModule,\n MultiSelectModule,\n TextareaModule,\n CheckboxModule,\n RadioButtonModule,\n DatePickerModule,\n ToggleButtonModule,\n FileUploadModule,\n SliderModule,\n ButtonModule,\n SelectModule,\n ],\n templateUrl: './prime-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PrimeNgFormsComponent extends BaseFormsComponent {\n onFileSelect(event: any, controlName: string) {\n const file = event.files[0];\n if (file) {\n this.form.get(controlName)?.setValue(file);\n this.form.get(controlName)?.updateValueAndValidity();\n\n const controlConfig = this.controls().find(\n (control) => control.name === controlName\n );\n if (controlConfig?.events?.onUpload) {\n controlConfig.events.onUpload(event);\n }\n }\n }\n}\n","<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"primeng\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @switch (control.type) {\n @case (\"text\") {\n <input\n pInputText\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"number\") {\n <input\n pInputText\n type=\"number\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"password\") {\n <input\n pInputText\n type=\"password\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"email\") {\n <input\n pInputText\n type=\"email\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"select\") {\n <p-select\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"multi-select\") {\n <p-multiSelect\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-multiSelect>\n }\n @case (\"textarea\") {\n <textarea\n pTextarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n ></textarea>\n }\n @case (\"checkbox\") {\n <p-checkbox\n [binary]=\"true\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-checkbox>\n }\n @case (\"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <p-radioButton\n [name]=\"control.name\"\n [formControlName]=\"control.name\"\n [value]=\"option\"\n [inputId]=\"'radio-' + option\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-radioButton>\n <label [for]=\"'radio-' + option\">{{ option }}</label>\n </div>\n }\n }\n @case (\"date\") {\n <p-datepicker\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"toggle\") {\n <p-toggleButton\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-toggleButton>\n }\n <!-- @case (\"file\") {\n <p-fileUpload \n [customUpload]=\"true\"\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n\n <p-fileUpload\n [customUpload]=\"true\"\n (onUpload)=\"onFileSelect($event, control.name)\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n [chooseLabel]=\"control.primeng?.chooseLabel\"\n [uploadLabel]=\"control.primeng?.uploadLabel\"\n [cancelLabel]=\"control.primeng?.cancelLabel\"\n [auto]=\"control.primeng?.auto\"\n [url]=\"control.primeng?.url\"\n [withCredentials]=\"control.primeng?.withCredentials\"\n [multiple]=\"control.primeng?.multiple\"\n [maxFileSize]=\"control.primeng?.maxFileSize\"\n [customUpload]=\"control.primeng?.customUpload\"\n [showUploadButton]=\"control.primeng?.showUploadButton\"\n [showCancelButton]=\"control.primeng?.showCancelButton\"\n [accept]=\"control.primeng?.accept\"\n [mode]=\"control.primeng?.mode\"\n [previewWidth]=\"control.primeng?.previewWidth\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n <ng-template pTemplate=\"content\">\n <p-button label=\"Choose File\" icon=\"pi pi-upload\"></p-button>\n </ng-template>\n </p-fileUpload>\n } -->\n @case (\"slider\") {\n <p-slider\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onSlideEnd)=\"control.events?.onSlideEnd?.($event)\"\n ></p-slider>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button\n pButton\n type=\"submit\"\n [disabled]=\"form.invalid\"\n label=\"Submit\"\n ></button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i4","i5","i6","i7","i8","i9","i10"],"mappings":"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"}
package/package.json CHANGED
@@ -17,15 +17,32 @@
17
17
  "angular-form-validation-errors"
18
18
  ],
19
19
  "author": "BOUSNINA Achraf",
20
- "version": "1.0.2",
20
+ "version": "1.0.4",
21
21
  "repository": {
22
22
  "type": "git",
23
- "url": "git+https://github.com/bsachref/ngForm.git"
23
+ "url": "https://github.com/bsachref/ngForm.git"
24
24
  },
25
25
  "license": "MIT",
26
26
  "private": false,
27
27
  "peerDependencies": {
28
28
  "@angular/core": "^18.0.0",
29
+ "@angular/cdk": "^18.2.14",
30
+ "@angular/compiler": "^18.2.0",
31
+ "@angular/forms": "^18.0.0",
32
+ "@angular/material": "^18.2.14",
33
+ "@angular/animations": "^18.2.0",
34
+ "@angular/common": "^18.2.0",
35
+ "@angular/platform-browser": "^18.2.0",
36
+ "@angular/platform-browser-dynamic": "^18.2.0",
37
+ "@angular/platform-server": "^18.2.0",
38
+ "@angular/router": "^18.2.0",
39
+ "@angular/ssr": "^18.2.12",
40
+ "@bsachref/ng-form": "^1.0.1",
41
+ "@primeng/themes": "^19.0.6",
42
+ "express": "^4.18.2",
43
+ "primeicons": "^7.0.0",
44
+ "rxjs": "~7.8.0",
45
+ "zone.js": "~0.14.10",
29
46
  "primeng": "^18.0.0"
30
47
  },
31
48
  "files": [
@@ -59,4 +76,4 @@
59
76
  "dependencies": {
60
77
  "tslib": "^2.3.0"
61
78
  }
62
- }
79
+ }
@@ -1,13 +0,0 @@
1
- import { ControlValueAccessor } from '@angular/forms';
2
- import { FileUpload } from 'primeng/fileupload';
3
- import * as i0 from "@angular/core";
4
- export declare class FileUploadValueAccessor implements ControlValueAccessor {
5
- private host;
6
- constructor(host: FileUpload);
7
- writeValue(value: any): void;
8
- registerOnChange(fn: any): void;
9
- registerOnTouched(fn: any): void;
10
- setDisabledState(isDisabled: boolean): void;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadValueAccessor, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<FileUploadValueAccessor, "p-fileUpload[formControlName], p-fileUpload[formControl], p-fileUpload[ngModel]", never, {}, {}, never, never, true, never>;
13
- }
@@ -1,52 +0,0 @@
1
- import { Directive, forwardRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "primeng/fileupload";
5
- export class FileUploadValueAccessor {
6
- host;
7
- constructor(host) {
8
- this.host = host;
9
- }
10
- writeValue(value) {
11
- if (value) {
12
- this.host.files = value;
13
- }
14
- else {
15
- this.host.clear();
16
- }
17
- }
18
- registerOnChange(fn) {
19
- this.host.onUpload.subscribe((event) => {
20
- fn(event.files);
21
- });
22
- }
23
- registerOnTouched(fn) {
24
- // this.host.onBlur.subscribe(fn);
25
- }
26
- setDisabledState(isDisabled) {
27
- this.host.disabled = isDisabled;
28
- }
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileUploadValueAccessor, deps: [{ token: i1.FileUpload }], target: i0.ɵɵFactoryTarget.Directive });
30
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FileUploadValueAccessor, isStandalone: true, selector: "p-fileUpload[formControlName], p-fileUpload[formControl], p-fileUpload[ngModel]", providers: [
31
- {
32
- provide: NG_VALUE_ACCESSOR,
33
- useExisting: forwardRef(() => FileUploadValueAccessor),
34
- multi: true,
35
- },
36
- ], ngImport: i0 });
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileUploadValueAccessor, decorators: [{
39
- type: Directive,
40
- args: [{
41
- standalone: true,
42
- selector: 'p-fileUpload[formControlName], p-fileUpload[formControl], p-fileUpload[ngModel]',
43
- providers: [
44
- {
45
- provide: NG_VALUE_ACCESSOR,
46
- useExisting: forwardRef(() => FileUploadValueAccessor),
47
- multi: true,
48
- },
49
- ],
50
- }]
51
- }], ctorParameters: () => [{ type: i1.FileUpload }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtYWNjZXNzb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbmdGb3JtL3NyYy9hcHAvZmlsZS11cGxvYWQtYWNjZXNzb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBY3pFLE1BQU0sT0FBTyx1QkFBdUI7SUFDZDtJQUFwQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUcsQ0FBQztJQUV4QyxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLGtDQUFrQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQ2xDLENBQUM7d0dBdkJVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDhIQVJ2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBRVUsdUJBQXVCO2tCQVhuQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsaUZBQWlGO29CQUMzRixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAncC1maWxlVXBsb2FkW2Zvcm1Db250cm9sTmFtZV0sIHAtZmlsZVVwbG9hZFtmb3JtQ29udHJvbF0sIHAtZmlsZVVwbG9hZFtuZ01vZGVsXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVVwbG9hZFZhbHVlQWNjZXNzb3IpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaG9zdDogRmlsZVVwbG9hZCkge31cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuaG9zdC5maWxlcyA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhvc3QuY2xlYXIoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3Qub25VcGxvYWQuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICBmbihldmVudC5maWxlcyk7XG4gICAgfSk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgLy8gdGhpcy5ob3N0Lm9uQmx1ci5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0LmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufSJdfQ==