special-forms 4.1.2 → 16.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/{esm2020 → esm2022}/lib/components/special-autocomplete/special-autocomplete.component.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/components/special-checkbox/special-checkbox.component.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/components/special-datepicker/special-datepicker.component.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/components/special-dropdown/special-dropdown.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/components/special-form/special-form.component.mjs +10 -10
  6. package/{esm2020 → esm2022}/lib/components/special-form/special-form.module.mjs +32 -32
  7. package/{esm2020 → esm2022}/lib/components/special-input/special-input.component.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/components/special-label/special-label.component.mjs +4 -4
  9. package/{esm2020 → esm2022}/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +4 -4
  10. package/esm2022/lib/components/special-richtext/special-richtext.component.mjs +45 -0
  11. package/{esm2020 → esm2022}/lib/components/special-text-area/special-text-area.component.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/components/special-upload/special-upload.component.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/core/pipes/controls-list-pipe/controls-list.pipe.mjs +4 -4
  14. package/{esm2020 → esm2022}/lib/core/pipes/error-message-pipe/error.pipe.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/core/pipes/text-by-function/text-by-function.pipe.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/core/services/error-state-matcher/error-matcher.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/core/services/special-form-builder/special-form-builder.service.mjs +4 -4
  18. package/{fesm2020 → fesm2022}/special-forms.mjs +85 -85
  19. package/fesm2022/special-forms.mjs.map +1 -0
  20. package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +1 -1
  21. package/lib/components/special-checkbox/special-checkbox.component.d.ts +1 -1
  22. package/lib/components/special-datepicker/special-datepicker.component.d.ts +1 -1
  23. package/lib/components/special-dropdown/special-dropdown.component.d.ts +1 -1
  24. package/lib/components/special-form/special-form.component.d.ts +3 -3
  25. package/lib/components/special-input/special-input.component.d.ts +1 -1
  26. package/lib/components/special-label/special-label.component.d.ts +1 -1
  27. package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +1 -1
  28. package/lib/components/special-richtext/special-richtext.component.d.ts +2 -3
  29. package/lib/components/special-text-area/special-text-area.component.d.ts +1 -1
  30. package/lib/components/special-upload/special-upload.component.d.ts +1 -1
  31. package/{src/lib/assets → lib/styles}/tailwind-final.scss +6 -0
  32. package/package.json +11 -16
  33. package/esm2020/lib/components/special-richtext/special-richtext.component.mjs +0 -46
  34. package/fesm2015/special-forms.mjs +0 -1083
  35. package/fesm2015/special-forms.mjs.map +0 -1
  36. package/fesm2020/special-forms.mjs.map +0 -1
  37. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  38. /package/{esm2020 → esm2022}/lib/components/special-autocomplete/special-autocomplete.interface.mjs +0 -0
  39. /package/{esm2020 → esm2022}/lib/components/special-checkbox/special-checkbox.interface.mjs +0 -0
  40. /package/{esm2020 → esm2022}/lib/components/special-datepicker/special-datepicker.interface.mjs +0 -0
  41. /package/{esm2020 → esm2022}/lib/components/special-dropdown/special-dropdown.interface.mjs +0 -0
  42. /package/{esm2020 → esm2022}/lib/components/special-input/special-input.interface.mjs +0 -0
  43. /package/{esm2020 → esm2022}/lib/components/special-label/special-label.interface.mjs +0 -0
  44. /package/{esm2020 → esm2022}/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +0 -0
  45. /package/{esm2020 → esm2022}/lib/components/special-richtext/special-richtext.interface.mjs +0 -0
  46. /package/{esm2020 → esm2022}/lib/components/special-text-area/special-text-area.interface.mjs +0 -0
  47. /package/{esm2020 → esm2022}/lib/components/special-upload/special-upload.interface.mjs +0 -0
  48. /package/{esm2020 → esm2022}/lib/core/aux-data/control-types.enum.mjs +0 -0
  49. /package/{esm2020 → esm2022}/lib/core/aux-data/input-types.mjs +0 -0
  50. /package/{esm2020 → esm2022}/lib/core/forms/special-forms.mjs +0 -0
  51. /package/{esm2020 → esm2022}/lib/core/interfaces/field-basics.interfaces.mjs +0 -0
  52. /package/{esm2020 → esm2022}/lib/core/interfaces/form.interfaces.mjs +0 -0
  53. /package/{esm2020 → esm2022}/lib/core/interfaces/special-control.interface.mjs +0 -0
  54. /package/{esm2020 → esm2022}/lib/core/masks/currency.mask.mjs +0 -0
  55. /package/{esm2020 → esm2022}/lib/core/masks/index.mjs +0 -0
  56. /package/{esm2020 → esm2022}/lib/core/masks/number.mask.mjs +0 -0
  57. /package/{esm2020 → esm2022}/lib/core/pipes/index.mjs +0 -0
  58. /package/{esm2020 → esm2022}/lib/core/services/index.mjs +0 -0
  59. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  60. /package/{esm2020 → esm2022}/special-forms.mjs +0 -0
  61. /package/{src/lib/assets → lib/styles}/final.scss +0 -0
  62. /package/{src/lib/assets → lib/styles}/styles-config.scss +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"special-forms.mjs","sources":["../../../projects/special-forms/src/lib/core/pipes/error-message-pipe/error.pipe.ts","../../../projects/special-forms/src/lib/core/pipes/text-by-function/text-by-function.pipe.ts","../../../projects/special-forms/src/lib/core/pipes/controls-list-pipe/controls-list.pipe.ts","../../../projects/special-forms/src/lib/components/special-autocomplete/special-autocomplete.component.ts","../../../projects/special-forms/src/lib/components/special-autocomplete/special-autocomplete.component.html","../../../projects/special-forms/src/lib/components/special-input/special-input.component.ts","../../../projects/special-forms/src/lib/components/special-input/special-input.component.html","../../../projects/special-forms/src/lib/components/special-dropdown/special-dropdown.component.ts","../../../projects/special-forms/src/lib/components/special-dropdown/special-dropdown.component.html","../../../projects/special-forms/src/lib/components/special-datepicker/special-datepicker.component.ts","../../../projects/special-forms/src/lib/components/special-datepicker/special-datepicker.component.html","../../../projects/special-forms/src/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.ts","../../../projects/special-forms/src/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.html","../../../projects/special-forms/src/lib/components/special-checkbox/special-checkbox.component.ts","../../../projects/special-forms/src/lib/components/special-checkbox/special-checkbox.component.html","../../../projects/special-forms/src/lib/components/special-text-area/special-text-area.component.ts","../../../projects/special-forms/src/lib/components/special-text-area/special-text-area.component.html","../../../projects/special-forms/src/lib/components/special-upload/special-upload.component.ts","../../../projects/special-forms/src/lib/components/special-upload/special-upload.component.html","../../../projects/special-forms/src/lib/components/special-label/special-label.component.ts","../../../projects/special-forms/src/lib/components/special-label/special-label.component.html","../../../projects/special-forms/src/lib/core/aux-data/control-types.enum.ts","../../../projects/special-forms/src/lib/components/special-richtext/special-richtext.component.ts","../../../projects/special-forms/src/lib/components/special-richtext/special-richtext.component.html","../../../projects/special-forms/src/lib/components/special-form/special-form.component.ts","../../../projects/special-forms/src/lib/components/special-form/special-form.component.html","../../../projects/special-forms/src/lib/components/special-form/special-form-array.component.html","../../../projects/special-forms/src/lib/components/special-form/special-form.module.ts","../../../projects/special-forms/src/lib/core/forms/special-forms.ts","../../../projects/special-forms/src/lib/core/services/special-form-builder/special-form-builder.service.ts","../../../projects/special-forms/src/lib/core/services/error-state-matcher/error-matcher.ts","../../../projects/special-forms/src/lib/core/interfaces/special-control.interface.ts","../../../projects/special-forms/src/lib/core/masks/currency.mask.ts","../../../projects/special-forms/src/lib/core/masks/number.mask.ts","../../../projects/special-forms/src/public-api.ts","../../../projects/special-forms/src/special-forms.ts"],"sourcesContent":["import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\n\r\n@Pipe({\r\n name: \"errorMessage\",\r\n standalone:true\r\n})\r\nexport class ErrorMessagePipe implements PipeTransform {\r\n transform(\r\n errorsObj: { [key: string]: any },\r\n errorMessages: { [key: string]: any },\r\n control?: FormControl\r\n ): any {\r\n const errors = errorsObj ? Object.keys(errorsObj) : [];\r\n const error = errors[0];\r\n const message = errorMessages[error] || error;\r\n if (control) {\r\n control.setErrors(errorsObj);\r\n }\r\n return message;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'textByFunction', standalone: true })\r\nexport class TextByFunctionPipe implements PipeTransform {\r\n transform(value: any, field: string | ((value: any) => string)): any {\r\n if (field instanceof Function) {\r\n return field(value);\r\n } else if (value instanceof Object) {\r\n return value[field];\r\n } else {\r\n return value;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { SpecialFormControl } from '../../forms/special-forms';\r\n\r\n@Pipe({ name: 'controlsList', standalone: true })\r\nexport class FormControlsListPipe implements PipeTransform {\r\n transform(controls: {\r\n [key: string]: AbstractControl;\r\n }): SpecialFormControl<any>[] {\r\n if (!controls) return [];\r\n return Object.values(controls)\r\n .filter((control: SpecialFormControl<any>) => !control.hidden)\r\n .map((control) => control as SpecialFormControl<any>);\r\n }\r\n}\r\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport {\r\n MatAutocompleteModule,\r\n MatAutocompleteSelectedEvent,\r\n} from '@angular/material/autocomplete';\r\nimport { Subscription } from 'rxjs';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IAutocompleteSettings } from './special-autocomplete.interface';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {\r\n ErrorMessagePipe,\r\n TextByFunctionPipe,\r\n} from '../../core/pipes';\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-autocomplete',\r\n templateUrl: './special-autocomplete.component.html',\r\n styleUrls: ['./special-autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n MatInputModule,\r\n CommonModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n TextByFunctionPipe,\r\n ],\r\n})\r\nexport class SpecialAutocompleteComponent {\r\n @Input() control!: SpecialFormControl<IAutocompleteSettings>;\r\n\r\n subs = new Subscription();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n get settings(): IAutocompleteSettings {\r\n return this.control.settings;\r\n }\r\n\r\n init() {\r\n this.subs.add(\r\n this.control.valueChanges.pipe(debounceTime(500)).subscribe((value) => {\r\n if (typeof value === 'string') {\r\n this.settings.getData(value, this.control);\r\n }\r\n })\r\n );\r\n }\r\n configValue = (item: any) => {\r\n if (!item) return '';\r\n const fieldName = this.settings.fieldName;\r\n return fieldName instanceof Function ? fieldName(item) : item[fieldName];\r\n };\r\n\r\n optionSelected(data: MatAutocompleteSelectedEvent) {\r\n this.control.setValue(data.option.value);\r\n if (this.settings.onSelect) this.settings.onSelect(data.option.value);\r\n }\r\n\r\n iconClick(event: Event) {\r\n if (this.settings.iconAction) {\r\n this.settings.iconAction(this.control.value);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n}\r\n","<mat-form-field\r\n class=\"special-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n *ngIf=\"control && !control.hidden\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label\r\n *ngIf=\"control.label\"\r\n >\r\n {{ control.label }}\r\n </mat-label>\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"control\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n <mat-option\r\n *ngFor=\"let option of settings?.source | async\"\r\n [value]=\"option\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { InputMaskModule } from '@ngneat/input-mask';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { IInputSettings } from './special-input.interface';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-input',\r\n templateUrl: './special-input.component.html',\r\n styleUrls: ['./special-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n InputMaskModule,\r\n CommonModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n ],\r\n})\r\nexport class SpecialInputComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<IInputSettings>;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onEnterClick() {\r\n if (this.settings.onEnter) {\r\n this.settings.onEnter(this.control.value);\r\n }\r\n }\r\n\r\n onBlurAction() {\r\n if (this.settings.onBlur) {\r\n this.settings.onBlur(this.control.value);\r\n }\r\n }\r\n\r\n get settings(): IInputSettings {\r\n return this.control.settings;\r\n }\r\n\r\n iconClick(event: Event) {\r\n if (this.settings.iconAction) {\r\n this.settings.iconAction(this.control.value);\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-input w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <input\r\n matInput\r\n (blur)=\"onBlurAction()\"\r\n (keydown.enter)=\"onEnterClick()\"\r\n [inputMask]=\"settings?.mask\"\r\n autocomplete=\"off\"\r\n [type]=\"settings?.type || 'text'\"\r\n [readonly]=\"control.readOnly\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n />\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <button\r\n *ngIf=\"settings?.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n} from '@angular/core';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IDropdownSettings } from './special-dropdown.interface';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {\r\n ErrorMessagePipe,\r\n TextByFunctionPipe,\r\n} from '../../core/pipes';\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-dropdown',\r\n templateUrl: './special-dropdown.component.html',\r\n styleUrls: ['./special-dropdown.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n MatSelectModule,\r\n ReactiveFormsModule,\r\n ErrorMessagePipe,\r\n MatIconModule,\r\n MatButtonModule,\r\n TextByFunctionPipe,\r\n ],\r\n})\r\nexport class SpecialDropdownComponent {\r\n @Input() control!: SpecialFormControl<IDropdownSettings>;\r\n\r\n get settings(): IDropdownSettings {\r\n return this.control.settings;\r\n }\r\n\r\n iconClick(event: Event) {\r\n if (this.settings.iconAction) {\r\n this.settings.iconAction(this.control.value);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n optionSelected(value: any) {\r\n if (this.settings.onSelect) this.settings.onSelect(value);\r\n }\r\n}\r\n","<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-dropdown w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">\r\n {{ control.label }}\r\n </mat-label>\r\n <mat-select\r\n [formControl]=\"control\"\r\n [required]=\"control.required\"\r\n (selectionChange)=\"optionSelected($event.value)\"\r\n [placeholder]=\"control.placeholder\"\r\n >\r\n <mat-option *ngIf=\"!control.required\" [value]=\"null\">\r\n {{ control.placeholder || control.settings.notSelectedText }}\r\n </mat-option>\r\n <mat-option\r\n *ngFor=\"let item of control.settings.source | async\"\r\n [value]=\"item[control.settings.fieldId]\"\r\n >\r\n {{ item | textByFunction: control.settings.fieldName }}\r\n </mat-option>\r\n </mat-select>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <mat-hint *ngIf=\"control.tooltip\">{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { IDatePickerSettings } from './special-datepicker.interface';\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-datepicker',\r\n templateUrl: './special-datepicker.component.html',\r\n styleUrls: ['./special-datepicker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n MatInputModule,\r\n MatDatepickerModule,\r\n CommonModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n MatNativeDateModule,\r\n ],\r\n})\r\nexport class SpecialDatepickerComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<IDatePickerSettings>;\r\n\r\n constructor() {}\r\n\r\n get startAt() {\r\n return this.control.settings?.startAt || new Date();\r\n }\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [readonly]=\"control.readOnly\"\r\n [matDatepicker]=\"picker\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\r\n </mat-datepicker>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport {\r\n MatAutocompleteModule,\r\n MatAutocompleteSelectedEvent,\r\n} from '@angular/material/autocomplete';\r\nimport { Subscription } from 'rxjs';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IMultipleAutocompleteSettings } from './special-multiple-autocomplete.interface';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { ErrorMessagePipe, TextByFunctionPipe } from '../../core/pipes';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-multiple-autocomplete',\r\n templateUrl: './special-multiple-autocomplete.component.html',\r\n styleUrls: ['./special-multiple-autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n MatInputModule,\r\n CommonModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n TextByFunctionPipe,\r\n MatChipsModule,\r\n ],\r\n})\r\nexport class SpecialMultipleAutocompleteComponent {\r\n @Input() control!: SpecialFormControl<IMultipleAutocompleteSettings>;\r\n\r\n subs = new Subscription();\r\n internalControl = new FormControl();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n get settings(): IMultipleAutocompleteSettings {\r\n return this.control.settings;\r\n }\r\n\r\n init() {\r\n this.subs.add(\r\n this.internalControl.valueChanges\r\n .pipe(debounceTime(500))\r\n .subscribe((value) => {\r\n if (typeof value === 'string') {\r\n this.control.settings.getData(value, this.control);\r\n }\r\n })\r\n );\r\n }\r\n\r\n optionSelected(data: MatAutocompleteSelectedEvent) {\r\n const newItem = data.option.value;\r\n this.internalControl.reset();\r\n this.control.setValue([\r\n ...(this.control.value || []).filter(\r\n (item: any) =>\r\n item[this.control.settings.fieldId] !==\r\n newItem[this.control.settings.fieldId]\r\n ),\r\n newItem,\r\n ]);\r\n\r\n if (this.settings.onSelect) this.settings.onSelect(newItem);\r\n }\r\n\r\n iconClick(event: Event) {\r\n if (this.settings.iconAction) {\r\n this.settings.iconAction(this.control.value);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n remove(value: any[]): void {\r\n let currentValues = Array.from(this.control.value);\r\n const index = currentValues.indexOf(value);\r\n\r\n if (index > -1) {\r\n currentValues.splice(index, 1);\r\n const value = currentValues;\r\n this.control.markAsDirty();\r\n this.control.setValue(value);\r\n }\r\n }\r\n\r\n configValue = (item: any) => {\r\n if (!item) return '';\r\n const fieldName = this.control.settings.fieldName;\r\n return fieldName instanceof Function ? fieldName(item) : item[fieldName];\r\n };\r\n\r\n ngOnDestroy() {\r\n this.subs.unsubscribe();\r\n }\r\n}\r\n","<div\r\n class=\"special-multiple-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n *ngIf=\"control && !control.hidden\"\r\n>\r\n <mat-form-field\r\n class=\"w-full\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n <mat-label *ngIf=\"control.label\">\r\n {{ control.label }}\r\n </mat-label>\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required && !control.value?.length\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"internalControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n <mat-option\r\n *ngFor=\"let option of settings?.source | async\"\r\n [value]=\"option\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-chip-listbox>\r\n <mat-chip\r\n *ngFor=\"let chip of control.value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(chip)\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"chip | textByFunction: settings.fieldImage\"\r\n />\r\n {{ chip | textByFunction: settings.fieldName }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </div>\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { ICheckboxSettings } from './special-checkbox.interface';\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-checkbox',\r\n templateUrl: './special-checkbox.component.html',\r\n styleUrls: ['./special-checkbox.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n FormsModule,\r\n MatCheckboxModule,\r\n CommonModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n ],\r\n})\r\nexport class SpecialCheckboxComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<ICheckboxSettings>;\r\n constructor() {}\r\n ngOnInit(): void {}\r\n}\r\n","<div\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-checkbox w-full mb-3 flex flex-col {{ control.styleClasses }}\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <mat-checkbox\r\n [required]=\"control.required\"\r\n [ngModel]=\"control.value\"\r\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\r\n [indeterminate]=\"control.settings.indeterminate\"\r\n [labelPosition]=\"control.settings.labelPosition\"\r\n [color]=\"control.settings.color\"\r\n [disabled]=\"control.disabled\"\r\n >\r\n <mat-icon *ngIf=\"control.icon\" matSuffix>{{ control.icon }} </mat-icon>\r\n {{ control.placeholder }}\r\n </mat-checkbox>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy } from '@angular/core';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { InputMaskModule } from '@ngneat/input-mask';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\nimport { ITextAreaField } from './special-text-area.interface';\r\n\r\n@Component({\r\n standalone:true,\r\n selector: 'sp-text-area',\r\n templateUrl: './special-text-area.component.html',\r\n styleUrls: ['./special-text-area.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports:[\r\n InputMaskModule,\r\n CommonModule,\r\n MatInputModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n ]\r\n})\r\nexport class SpecialTextAreaComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<ITextAreaField>;\r\n\r\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n @Output() onEnter: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-textarea w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <textarea\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n matInput\r\n (blur)=\"onBlur.emit(control.value)\"\r\n (keydown.enter)=\"onEnter.emit(control.value)\"\r\n [type]=\"control.settings?.type || 'text'\"\r\n [readonly]=\"control.readOnly\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n ></textarea>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IUploadSettings } from './special-upload.interface';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ChangeDetectionStrategy } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxDropzoneModule } from 'ngx-dropzone';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { ErrorMessagePipe } from '../../core/pipes';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-upload',\r\n templateUrl: './special-upload.component.html',\r\n styleUrls: ['./special-upload.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n FormsModule,\r\n NgxDropzoneModule,\r\n CommonModule,\r\n MatIconModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n ErrorMessagePipe,\r\n ],\r\n})\r\nexport class SpecialUploadComponent implements OnInit {\r\n control!: SpecialFormControl<IUploadSettings>;\r\n\r\n @Input('control') set controlSetter(\r\n control: SpecialFormControl<IUploadSettings>\r\n ) {\r\n this.control = control;\r\n this.previewImages = control.value;\r\n }\r\n\r\n previewImages: any[] = [];\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onSelectMultiple(event: any) {\r\n this.previewImages = [\r\n ...this.previewImages,\r\n ...event.addedFiles.map((file: File) => ({\r\n lastModified: file.lastModified,\r\n url: this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file)),\r\n })),\r\n ];\r\n\r\n this.control.setValue([\r\n ...(this.control.value || []),\r\n ...event.addedFiles.map(this.fixFileName),\r\n ]);\r\n this.onselectFile(this.control.value);\r\n this.control.markAsDirty();\r\n }\r\n\r\n onSelectOne(event: any) {\r\n this.previewImages = event.addedFiles.map((file: File) => ({\r\n lastModified: file.lastModified,\r\n url: this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file)),\r\n }));\r\n\r\n this.control.setValue(event.addedFiles.map(this.fixFileName));\r\n this.onselectFile(this.control.value);\r\n this.control.markAsDirty();\r\n }\r\n\r\n private onselectFile(value) {\r\n if (this.control.settings?.onSelectFile) {\r\n this.control.settings.onSelectFile(value);\r\n }\r\n }\r\n\r\n fixFileName(file: File) {\r\n return Object.defineProperty(file, 'name', {\r\n writable: true,\r\n value: file.name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''),\r\n });\r\n }\r\n\r\n clean() {\r\n this.previewImages = [];\r\n }\r\n onRemove(file: File) {\r\n this.control.setValue(\r\n this.control.value.filter(\r\n (fl: any) => fl.lastModified !== file.lastModified\r\n )\r\n );\r\n this.previewImages = this.previewImages.filter(\r\n (fl) => fl.lastModified !== file.lastModified\r\n );\r\n }\r\n}\r\n","<div\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-upload w-full mb-3 {{ control.styleClasses }}\"\r\n>\r\n <ngx-dropzone\r\n class=\"special-upload__dropzone\"\r\n [ngClass]=\"{\r\n 'special-upload--error-dashed':\r\n !!control.errors && (control.dirty || control.touched)\r\n }\"\r\n [multiple]=\"control.settings?.multiple\"\r\n [accept]=\"\r\n control.settings?.accept\r\n ? control.settings?.accept\r\n : 'image/png, .jpeg, .jpg, image/gif'\r\n \"\r\n (change)=\"\r\n control.settings?.multiple\r\n ? onSelectMultiple($event)\r\n : onSelectOne($event)\r\n \"\r\n >\r\n <ngx-dropzone-label\r\n [ngClass]=\"{\r\n 'special-upload--error':\r\n !!control.errors && (control.dirty || control.touched)\r\n }\"\r\n >\r\n <mat-icon class=\"special-upload__icon\" *ngIf=\"control.icon\"\r\n >{{ control.icon }}\r\n </mat-icon>\r\n <h2 class=\"text-base font-bold\">\r\n {{ control.label }}\r\n </h2>\r\n <h3 class=\"text-base\">\r\n {{ control.placeholder }}\r\n </h3>\r\n </ngx-dropzone-label>\r\n <ngx-dropzone-preview\r\n *ngFor=\"let file of previewImages\"\r\n [removable]=\"true\"\r\n (removed)=\"onRemove(file)\"\r\n >\r\n <ngx-dropzone-label class=\"special-upload__card\">\r\n <img class=\"special-upload__card--image\" [src]=\"file?.url\" alt=\"\" />\r\n </ngx-dropzone-label>\r\n </ngx-dropzone-preview>\r\n </ngx-dropzone>\r\n <div\r\n class=\"special-upload--error mt-2\"\r\n *ngIf=\"!!control.errors && (control.dirty || control.touched)\"\r\n >\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { TextByFunctionPipe } from '../../core/pipes';\r\nimport { ILabelSettings } from './special-label.interface';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-label',\r\n templateUrl: './special-label.component.html',\r\n styleUrls: ['./special-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule, MatIconModule, TextByFunctionPipe],\r\n})\r\nexport class SpecialLabelComponent implements OnInit {\r\n @Input() control!: SpecialFormControl<ILabelSettings>;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n get settings(): ILabelSettings {\r\n return this.control.settings || { isLink: false };\r\n }\r\n\r\n onLink() {\r\n if (this.settings.isLink && this.settings.onClickLink) {\r\n this.settings.onClickLink(this.control.value);\r\n }\r\n }\r\n}\r\n","<div\r\n *ngIf=\"control && !control.hidden\"\r\n class=\"special-label px-2 mb-3 {{ control.styleClasses }} {{\r\n control.value | textByFunction: settings.stylesPipe\r\n }}\"\r\n [id]=\"control.elementId\"\r\n>\r\n <div *ngIf=\"!!control.label\" class=\"special-label__title font-bold\">\r\n {{ control.label }}\r\n </div>\r\n <div\r\n class=\"special-label__text\"\r\n [ngClass]=\"{\r\n 'cursor-pointer text-blue-600 hover:text-blue-700': settings.isLink\r\n }\"\r\n (click)=\"onLink()\"\r\n >\r\n {{ control.value | textByFunction: control.settings.pipe }}\r\n </div>\r\n</div>\r\n","export enum EControlTypes {\r\n pkey = 'PRIMARY-KEY',\r\n input = 'INPUT',\r\n richText = 'RICH-TEXT',\r\n textArea = 'TEXT-AREA',\r\n dropdown = 'DROPDOWN',\r\n date = 'DATE',\r\n checkbox = 'CHECKBOX',\r\n upload = 'UPLOAD',\r\n autocomplete = 'AUTOCOMPLETE',\r\n multiple = 'MULTIPLE-AUTOCOMPLETE',\r\n array = 'ARRAY',\r\n form = 'FORM',\r\n label = 'LABEL',\r\n default = 'DEFAULT',\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SpecialFormControl } from '../../core/forms/special-forms';\r\nimport { IRichTextSettings } from './special-richtext.interface';\r\nimport { NgxEditorModule, Toolbar,Editor } from 'ngx-editor';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'sp-input',\r\n templateUrl: './special-richtext.component.html',\r\n styleUrls: ['./special-richtext.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule, MatIconModule, ReactiveFormsModule, NgxEditorModule],\r\n})\r\nexport class SpecialRichtextComponent implements OnInit {\r\n editor: Editor;\r\n formControl: SpecialFormControl<IRichTextSettings>;\r\n colorPresets = ['red', 'yellow', 'green', 'blue', 'black'];\r\n\r\n @Input() set control(control: SpecialFormControl<IRichTextSettings>) {\r\n this.formControl = control;\r\n if (control.settings.colorPresets)\r\n this.colorPresets = control.settings.colorPresets;\r\n this.editor = new Editor();\r\n }\r\n\r\n toolbar: Toolbar = [\r\n // default value\r\n ['bold', 'italic'],\r\n ['underline', 'strike'],\r\n ['code', 'blockquote'],\r\n ['ordered_list', 'bullet_list'],\r\n [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],\r\n ['link', 'image'],\r\n ['text_color', 'background_color'],\r\n ['align_left', 'align_center', 'align_right', 'align_justify'],\r\n ['horizontal_rule', 'format_clear'],\r\n ];\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n ngOnDestroy(): void {\r\n this.editor.destroy();\r\n }\r\n}\r\n","<div\r\n class=\"special-richtext w-full mb-3 {{ formControl.styleClasses }}\"\r\n [id]=\"formControl.elementId\"\r\n *ngIf=\"formControl && !formControl.hidden\"\r\n>\r\n <ngx-editor-menu\r\n [colorPresets]=\"colorPresets\"\r\n [toolbar]=\"toolbar\"\r\n [editor]=\"editor\"\r\n >\r\n </ngx-editor-menu>\r\n <ngx-editor\r\n [editor]=\"editor\"\r\n [formControl]=\"formControl\"\r\n [disabled]=\"false\"\r\n [placeholder]=\"formControl.placeholder\"\r\n ></ngx-editor>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Directive,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { EControlTypes } from '../../core/aux-data/control-types.enum';\r\nimport {\r\n SpecialFormGroup,\r\n SpecialFormControl,\r\n} from '../../core/forms/special-forms';\r\nimport { SpecialAutocompleteComponent } from '../special-autocomplete/special-autocomplete.component';\r\nimport { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.component';\r\nimport { SpecialDatepickerComponent } from '../special-datepicker/special-datepicker.component';\r\nimport { SpecialDropdownComponent } from '../special-dropdown/special-dropdown.component';\r\nimport { SpecialInputComponent } from '../special-input/special-input.component';\r\nimport { SpecialLabelComponent } from '../special-label/special-label.component';\r\nimport { SpecialMultipleAutocompleteComponent } from '../special-multiple-autocomplete/special-multiple-autocomplete.component';\r\nimport { SpecialRichtextComponent } from '../special-richtext/special-richtext.component';\r\nimport { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';\r\nimport { SpecialUploadComponent } from '../special-upload/special-upload.component';\r\n\r\n@Component({\r\n selector: 'sp-form',\r\n templateUrl: './special-form.component.html',\r\n styleUrls: ['./special-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SpecialFormComponent implements OnInit {\r\n @Input('control') form: SpecialFormGroup;\r\n set control(form: SpecialFormGroup) {\r\n this.form = form;\r\n }\r\n ngOnInit(): void {}\r\n}\r\n\r\n@Component({\r\n selector: 'sp-array',\r\n templateUrl: './special-form-array.component.html',\r\n styleUrls: ['./special-form-array.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SpecialArrayComponent implements OnInit {\r\n @Input('control') formArray: any;\r\n\r\n set control(formArray: any) {\r\n this.formArray = formArray;\r\n }\r\n\r\n get withFormHeader() {\r\n return this.formArray.settings.withFormHeader;\r\n }\r\n\r\n get settings() {\r\n return this.formArray.settings;\r\n }\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n removeItem(index: number) {\r\n this.formArray.removeAt(index);\r\n }\r\n addItem() {\r\n this.formArray.addItem();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: `[controlRender]`,\r\n})\r\nexport class FormControlsRenderDirective {\r\n private readonly componentsBuffer = {\r\n [EControlTypes.autocomplete]: SpecialAutocompleteComponent,\r\n [EControlTypes.checkbox]: SpecialCheckboxComponent,\r\n [EControlTypes.date]: SpecialDatepickerComponent,\r\n [EControlTypes.dropdown]: SpecialDropdownComponent,\r\n [EControlTypes.array]: SpecialArrayComponent,\r\n [EControlTypes.input]: SpecialInputComponent,\r\n [EControlTypes.multiple]: SpecialMultipleAutocompleteComponent,\r\n [EControlTypes.textArea]: SpecialTextAreaComponent,\r\n [EControlTypes.label]: SpecialLabelComponent,\r\n [EControlTypes.upload]: SpecialUploadComponent,\r\n [EControlTypes.form]: SpecialFormComponent,\r\n [EControlTypes.richText]: SpecialRichtextComponent,\r\n };\r\n @Input('control') set controlSetter(control: SpecialFormControl<any>) {\r\n this.viewContainer.clear();\r\n const component = (this.componentsBuffer as any)[control.type];\r\n if (component) {\r\n const componentRef = this.viewContainer.createComponent(component);\r\n (componentRef.instance as any).control = control;\r\n }\r\n }\r\n\r\n constructor(private viewContainer: ViewContainerRef) {}\r\n}\r\n","<div\r\n *ngIf=\"form && !form.hidden\"\r\n [id]=\"form.elementId\"\r\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\r\n>\r\n <div\r\n *ngIf=\"form\"\r\n [class]=\"\r\n form.label\r\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\r\n : 'container'\r\n \"\r\n >\r\n <h1 *ngIf=\"!!form.label\" class=\"font-bold py-3\">{{ form.label }}</h1>\r\n <div class=\"w-full flex flex-wrap\">\r\n <ng-template\r\n *ngFor=\"let control of form.controls | controlsList\"\r\n controlRender\r\n [control]=\"control\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n","<div\r\n *ngIf=\"formArray && !formArray.hidden\"\r\n [id]=\"formArray.elementId\"\r\n class=\"special-form-array w-full box-border p-2 {{ formArray.styleClasses }}\"\r\n>\r\n <div class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\">\r\n <h1 *ngIf=\"!!formArray.label\" class=\"font-bold py-3\">\r\n {{ formArray.label }}\r\n </h1>\r\n <div class=\"divide-y divide-x-0 divide-solid divide-slate-200\">\r\n <div\r\n *ngIf=\"formArray.form\"\r\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\r\n class=\"grid gap-4 grid-cols-12\"\r\n >\r\n <ng-container *ngIf=\"!withFormHeader; else FORMHEADERREF\">\r\n <h2\r\n [class]=\"item.styleClasses\"\r\n *ngFor=\"let item of formArray.form.controls | controlsList\"\r\n >\r\n {{ item.label }}\r\n </h2>\r\n <div\r\n *ngIf=\"settings.withActionButtons\"\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n ></div>\r\n </ng-container>\r\n <ng-template #FORMHEADERREF>\r\n <ng-template\r\n *ngFor=\"let item of formArray.form.controls | controlsList\"\r\n controlRender\r\n [control]=\"item\"\r\n ></ng-template>\r\n <div\r\n *ngIf=\"settings.withActionButtons\"\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n >\r\n <button\r\n mat-flat-button\r\n color=\"primary\"\r\n [disabled]=\"formArray.form.invalid\"\r\n (click)=\"addItem()\"\r\n >\r\n {{settings.addActionLabel || 'Add'}}\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div\r\n class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\"\r\n *ngFor=\"let formGroup of formArray.controls; let i = index\"\r\n >\r\n <ng-template\r\n *ngFor=\"let item of formGroup.controls | controlsList\"\r\n controlRender\r\n [control]=\"item\"\r\n ></ng-template>\r\n <div\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n >\r\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\r\n {{ settings.removeActionLabel || \"Remove\" }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n FormControlsRenderDirective,\r\n SpecialFormComponent,\r\n SpecialArrayComponent,\r\n} from './special-form.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { FormControlsListPipe } from '../../core/pipes';\r\nimport { SpecialDropdownComponent } from '../special-dropdown/special-dropdown.component';\r\nimport { SpecialInputComponent } from '../special-input/special-input.component';\r\nimport { SpecialAutocompleteComponent } from '../special-autocomplete/special-autocomplete.component';\r\nimport { SpecialDatepickerComponent } from '../special-datepicker/special-datepicker.component';\r\nimport { SpecialLabelComponent } from '../special-label/special-label.component';\r\nimport { SpecialMultipleAutocompleteComponent } from '../special-multiple-autocomplete/special-multiple-autocomplete.component';\r\nimport { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.component';\r\nimport { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';\r\nimport { SpecialUploadComponent } from '../special-upload/special-upload.component';\r\nimport { SpecialRichtextComponent } from '../special-richtext/special-richtext.component';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\n\r\n@NgModule({\r\n declarations: [\r\n SpecialArrayComponent,\r\n FormControlsRenderDirective,\r\n SpecialFormComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormControlsListPipe,\r\n MatButtonModule,\r\n SpecialRichtextComponent,\r\n SpecialDropdownComponent,\r\n SpecialInputComponent,\r\n SpecialAutocompleteComponent,\r\n SpecialDatepickerComponent,\r\n SpecialLabelComponent,\r\n SpecialMultipleAutocompleteComponent,\r\n SpecialCheckboxComponent,\r\n SpecialTextAreaComponent,\r\n SpecialUploadComponent,\r\n ],\r\n exports: [\r\n SpecialArrayComponent,\r\n FormControlsRenderDirective,\r\n SpecialFormComponent,\r\n ],\r\n})\r\nexport class SpecialFormModule {}\r\n","import {\r\n AbstractControl,\r\n FormArray,\r\n FormControl,\r\n FormGroup,\r\n} from '@angular/forms';\r\nimport { EControlTypes } from '../aux-data/control-types.enum';\r\nimport { IFieldBasicData } from '../interfaces/field-basics.interfaces';\r\nimport {\r\n IArraySettings,\r\n IFormSettings,\r\n TSpecialFields,\r\n TSpecialForm,\r\n TSpecialArray,\r\n} from '../interfaces/form.interfaces';\r\nimport * as _ from 'lodash';\r\nexport class SpecialFormControl<T>\r\n extends FormControl\r\n implements IFieldBasicData\r\n{\r\n public name: string;\r\n public placeholder: string;\r\n public label: string;\r\n public tooltip: string;\r\n public icon: string;\r\n public elementId: string;\r\n public styleClasses: string;\r\n public length: number;\r\n public required: boolean;\r\n public hidden: boolean;\r\n public readOnly: boolean;\r\n public settings: T;\r\n public type: EControlTypes;\r\n public errorMessages: { [key: string]: string };\r\n\r\n constructor({\r\n name,\r\n settings,\r\n type,\r\n validators,\r\n asyncValidators,\r\n elementId,\r\n styleClasses,\r\n defaultValue,\r\n hidden,\r\n icon,\r\n label,\r\n length,\r\n placeholder,\r\n readOnly,\r\n required,\r\n tooltip,\r\n errorMessages,\r\n disabled,\r\n }: TSpecialFields) {\r\n super(defaultValue, validators, asyncValidators);\r\n\r\n this.name = name;\r\n this.placeholder = placeholder;\r\n this.label = label;\r\n this.tooltip = tooltip;\r\n this.icon = icon;\r\n this.elementId = elementId;\r\n this.settings = settings as T;\r\n this.type = type;\r\n this.styleClasses = styleClasses;\r\n this.hidden = hidden;\r\n this.length = length;\r\n this.readOnly = readOnly;\r\n this.required = required;\r\n this.errorMessages = errorMessages;\r\n disabled ? this.disable() : this.enable();\r\n }\r\n\r\n override markAsDirty(opts?: { onlySelf?: boolean; }): void {\r\n super.markAsDirty(opts);\r\n this.updateValueAndValidity();\r\n }\r\n\r\n override markAsPristine(opts?: { onlySelf?: boolean; }): void {\r\n super.markAsPristine(opts);\r\n this.updateValueAndValidity();\r\n }\r\n override markAsTouched(opts?: { onlySelf?: boolean; }): void {\r\n super.markAsTouched(opts);\r\n this.updateValueAndValidity();\r\n }\r\n\r\n override markAsUntouched(opts?: { onlySelf?: boolean; }): void {\r\n super.markAsUntouched(opts);\r\n this.updateValueAndValidity();\r\n }\r\n\r\n override markAllAsTouched(): void {\r\n super.markAllAsTouched();\r\n this.updateValueAndValidity();\r\n }\r\n\r\n setReadOnly(status: boolean = true) {\r\n this.readOnly = status;\r\n }\r\n\r\n setDisabled(status: boolean = true) {\r\n status ? this.disable() : this.enable();\r\n }\r\n\r\n setHidden(status = true) {\r\n this.hidden = status;\r\n }\r\n}\r\nexport class SpecialFormGroup extends FormGroup implements IFieldBasicData {\r\n public name: string;\r\n public placeholder: string;\r\n public label: string;\r\n public tooltip: string;\r\n public icon: string;\r\n public elementId: string;\r\n public styleClasses: string;\r\n public length: number;\r\n public required: boolean;\r\n public hidden: boolean;\r\n public readOnly: boolean;\r\n public settings: IFormSettings;\r\n public type: EControlTypes.form;\r\n public defaultValue: any;\r\n public errorMessages: { [key: string]: string };\r\n\r\n constructor(\r\n {\r\n name,\r\n settings,\r\n type,\r\n validators,\r\n asyncValidators,\r\n elementId,\r\n styleClasses,\r\n defaultValue,\r\n hidden,\r\n icon,\r\n label,\r\n length,\r\n placeholder,\r\n readOnly,\r\n required,\r\n tooltip,\r\n disabled,\r\n }: TSpecialForm,\r\n controls: {\r\n [key: string]: SpecialFormControl<any>;\r\n }\r\n ) {\r\n super(controls, validators, asyncValidators);\r\n\r\n this.name = name;\r\n this.placeholder = placeholder;\r\n this.label = label;\r\n this.tooltip = tooltip;\r\n this.icon = icon;\r\n this.elementId = elementId;\r\n this.settings = settings;\r\n this.type = type;\r\n this.styleClasses = styleClasses;\r\n this.hidden = hidden;\r\n this.length = length;\r\n this.readOnly = readOnly;\r\n this.required = required;\r\n this.defaultValue = defaultValue;\r\n disabled ? this.disable() : this.enable();\r\n }\r\n\r\n getDirty() {\r\n this.markAsDirty();\r\n Object.values(this.controls).forEach((control) => {\r\n if (control instanceof SpecialFormControl) {\r\n control.markAsDirty();\r\n } else if (control instanceof SpecialFormGroup) {\r\n control.getDirty();\r\n } else if (control instanceof SpecialFormArray) {\r\n control.getDirty();\r\n }\r\n });\r\n }\r\n\r\n specialReset(value = {}) {\r\n const aux: any = {};\r\n Object.entries(this.controls).map(([key, control]) => {\r\n if (control instanceof SpecialFormControl) {\r\n aux[key] = control.defaultValue;\r\n } else if (control instanceof SpecialFormArray) {\r\n control.clear();\r\n }\r\n });\r\n\r\n this.reset({ ...aux, ...value });\r\n }\r\n\r\n setReadOnly(status: boolean = true) {\r\n Object.values(this.controls).map((value) => {\r\n if (\r\n value instanceof SpecialFormControl ||\r\n value instanceof SpecialFormArray ||\r\n value instanceof SpecialFormGroup\r\n ) {\r\n value.setReadOnly(status);\r\n }\r\n });\r\n }\r\n\r\n setReadOnlyByFields(fieldsObject: { [key: string]: boolean }) {\r\n Object.entries(fieldsObject).map(([key, value]) => {\r\n const control = this.controls[key];\r\n if (control instanceof SpecialFormControl) {\r\n control.readOnly = value;\r\n }\r\n });\r\n }\r\n\r\n setHiddenByFields(fields: { [key: string]: boolean }) {\r\n Object.entries(fields).map(([key, value]) => {\r\n const control = this.controls[key];\r\n if (control instanceof SpecialFormControl) {\r\n control.hidden = value;\r\n }\r\n });\r\n }\r\n\r\n setDisabled(status: boolean) {\r\n Object.values(this.controls).map((value) => {\r\n if (\r\n value instanceof SpecialFormControl ||\r\n value instanceof SpecialFormArray ||\r\n value instanceof SpecialFormGroup\r\n ) {\r\n value.setDisabled(status);\r\n }\r\n });\r\n }\r\n\r\n setDisabledByFields(fieldsObject: any) {\r\n Object.entries(fieldsObject).map((entries) => {\r\n if (this.controls[entries[0]] instanceof SpecialFormControl) {\r\n entries[1]\r\n ? this.controls[entries[0]].enable()\r\n : this.controls[entries[0]].disable();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * donde value es el objeto semilla y detailForm es un arreglo de form key para dar un marco al formarray\r\n */\r\n\r\n setFormValue(value: any) {\r\n this.specialReset(value);\r\n Object.entries(this.controls)\r\n .filter(([_key, control]) => control instanceof SpecialFormArray)\r\n .map(([key, control]) => {\r\n (control as SpecialFormArray).fillFormArray(value[key]);\r\n });\r\n }\r\n\r\n /**\r\n * Método que retorna\r\n */\r\n\r\n getIdPkey(): SpecialFormControl<any> | undefined {\r\n return Object.values(this.controls).find(\r\n (control) =>\r\n control instanceof SpecialFormControl && control.type === 'PRIMARY-KEY'\r\n ) as SpecialFormControl<any> | undefined;\r\n }\r\n}\r\n\r\nexport class SpecialFormArray extends FormArray implements IFieldBasicData {\r\n public name: string;\r\n public placeholder: string;\r\n public label: string;\r\n public tooltip: string;\r\n public icon: string;\r\n public elementId: string;\r\n public styleClasses: string;\r\n public required: boolean;\r\n public hidden: boolean;\r\n public readOnly: boolean;\r\n public settings: IArraySettings;\r\n public type: EControlTypes;\r\n public defaultValue: any;\r\n public form: SpecialFormGroup;\r\n private formCreation: (value?: any) => SpecialFormGroup;\r\n public errorMessages: { [key: string]: string };\r\n\r\n constructor(\r\n {\r\n name,\r\n settings,\r\n type,\r\n validators,\r\n asyncValidators,\r\n elementId,\r\n styleClasses,\r\n defaultValue,\r\n hidden,\r\n icon,\r\n label,\r\n placeholder,\r\n readOnly,\r\n required,\r\n tooltip,\r\n errorMessages,\r\n disabled,\r\n }: TSpecialArray,\r\n formCreation: () => SpecialFormGroup,\r\n controls: AbstractControl[]\r\n ) {\r\n super(controls, validators, asyncValidators);\r\n this.formCreation = formCreation;\r\n this.form = this.formCreation();\r\n this.name = name;\r\n this.placeholder = placeholder;\r\n this.label = label;\r\n this.tooltip = tooltip;\r\n this.icon = icon;\r\n this.elementId = elementId;\r\n this.settings = settings;\r\n this.type = type;\r\n this.styleClasses = styleClasses;\r\n this.hidden = hidden;\r\n this.readOnly = readOnly;\r\n this.required = required;\r\n this.defaultValue = defaultValue;\r\n this.errorMessages = errorMessages;\r\n disabled ? this.disable() : this.enable();\r\n }\r\n\r\n fillFormArray(data: any[]) {\r\n this.form.reset();\r\n this.clear();\r\n data.forEach((item) => {\r\n const form = this.formCreation(item);\r\n this.push(form);\r\n });\r\n }\r\n\r\n addItem() {\r\n const form = this.formCreation(this.form.value);\r\n this.form.specialReset();\r\n this.push(form);\r\n this.markAsDirty();\r\n }\r\n\r\n specialPush(index?: number) {\r\n const form = this.formCreation(this.form.value);\r\n if (!index) this.push(form);\r\n else this.controls[index].reset(this.form.value);\r\n }\r\n\r\n specialInsert(index = 0) {\r\n const form = this.formCreation(this.form.value);\r\n this.insert(index, form);\r\n }\r\n\r\n specialEdit(index: number, newValue: Object) {\r\n this.controls[index].reset({ ...this.controls[index].value, ...newValue });\r\n this.markAsDirty();\r\n }\r\n\r\n /**\r\n * Vuelve todos los controles del formArray de lectura o de sololectura\r\n * @param status\r\n */\r\n\r\n setReadOnly(status: boolean) {\r\n this.readOnly = status;\r\n this.controls.forEach((control) => {\r\n if (control instanceof SpecialFormGroup) {\r\n control.setReadOnly(status);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Vuelve todos los controles del formArray habilitados o deshabilitados\r\n * @param status\r\n */\r\n\r\n setDisabled(status: boolean) {\r\n status ? this.disable() : this.enable();\r\n this.controls.forEach((control) => {\r\n if (control instanceof SpecialFormGroup) {\r\n control.setDisabled(status);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Permite editar un control especifico.\r\n * @param index\r\n */\r\n\r\n editControl(index: number) {\r\n this.form.reset(this.controls[index].value);\r\n }\r\n\r\n getDirty() {\r\n this.markAsDirty();\r\n this.form.getDirty();\r\n this.controls.forEach((item) => {\r\n (<SpecialFormGroup>item).getDirty();\r\n });\r\n }\r\n\r\n recursiveFillForm(form: FormGroup, data: any): FormGroup {\r\n Object.entries(form.controls).map(([key, control]) => {\r\n if (control instanceof FormControl) {\r\n control.setValue(data[key]);\r\n } else if (control instanceof FormArray) {\r\n data[key].forEach(() => {});\r\n } else if (control instanceof FormGroup) {\r\n control.reset(data[key]);\r\n }\r\n });\r\n return form;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, ValidatorFn, Validators } from '@angular/forms';\r\nimport { IAutocompleteSettings } from '../../../components/special-autocomplete/special-autocomplete.interface';\r\nimport { EControlTypes } from '../../aux-data/control-types.enum';\r\nimport {\r\n SpecialFormArray,\r\n SpecialFormControl,\r\n SpecialFormGroup,\r\n} from '../../forms/special-forms';\r\nimport { IFieldData } from '../../interfaces/field-basics.interfaces';\r\nimport {\r\n IFormStructure,\r\n TRawFields,\r\n TSpecialArray,\r\n TSpecialFields,\r\n TSpecialForm,\r\n TSpecialInput,\r\n} from '../../interfaces/form.interfaces';\r\n\r\ninterface IControlParams {\r\n name: string;\r\n control: SpecialFormArray | SpecialFormGroup | SpecialFormControl<any>;\r\n}\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SpecialFormBuilderService {\r\n private readonly defectField: IFieldData = {\r\n asyncValidators: null,\r\n validators: null,\r\n defaultValue: null,\r\n elementId: '',\r\n hidden: false,\r\n icon: '',\r\n label: '',\r\n disabled: false,\r\n length: 0,\r\n placeholder: '',\r\n readOnly: false,\r\n required: false,\r\n styleClasses: '',\r\n errorMessages: {},\r\n tooltip: '',\r\n };\r\n\r\n private readonly inputDefectField: TSpecialInput = {\r\n ...this.defectField,\r\n settings: {},\r\n type: EControlTypes.input,\r\n name: '',\r\n };\r\n\r\n private readonly formDefectField: TSpecialForm = {\r\n ...this.defectField,\r\n settings: {\r\n formFields: {},\r\n },\r\n type: EControlTypes.form,\r\n name: '',\r\n };\r\n\r\n private readonly arrayDefectField: TSpecialArray = {\r\n ...this.defectField,\r\n settings: {\r\n formFields: {},\r\n },\r\n type: EControlTypes.array,\r\n name: '',\r\n };\r\n\r\n constructor() {}\r\n\r\n public control(field: Partial<TSpecialFields>): SpecialFormControl<any> {\r\n const formField: TSpecialFields = {\r\n ...this.inputDefectField,\r\n ...field,\r\n } as TSpecialFields;\r\n const { control } = this.setFormControl(formField);\r\n return control;\r\n }\r\n\r\n public group(\r\n fields: IFormStructure,\r\n parentField: Partial<TSpecialForm> = {}\r\n ) {\r\n return this.formGenerator(this.fieldDataToArray(fields), parentField);\r\n }\r\n\r\n public array() {}\r\n\r\n public fieldDataToArray(fields: IFormStructure): TSpecialFields[] {\r\n return Object.entries(fields).map(([name, field]) =>\r\n this.setDefectFieldOptions(name, field)\r\n );\r\n }\r\n\r\n private setDefectFieldOptions(\r\n name: string,\r\n field: Partial<TRawFields>\r\n ): TSpecialFields {\r\n return {\r\n ...this.inputDefectField,\r\n ...field,\r\n name,\r\n } as TSpecialFields;\r\n }\r\n\r\n private formGenerator(\r\n fields: TSpecialFields[],\r\n parentField: Partial<TSpecialForm> = {}\r\n ): SpecialFormGroup {\r\n const formField: TSpecialForm = {\r\n ...this.formDefectField,\r\n ...parentField,\r\n };\r\n const structure = fields\r\n .map((field) => this.getControlAndNameByType(field))\r\n .reduce(\r\n (prev, { name, control }: IControlParams) => ({\r\n ...prev,\r\n [name]: control,\r\n }),\r\n {}\r\n );\r\n return new SpecialFormGroup(formField, structure);\r\n }\r\n\r\n private getControlAndNameByType(field: TSpecialFields) {\r\n switch (field.type) {\r\n case EControlTypes.array:\r\n return this.setFormArray(field);\r\n case EControlTypes.form:\r\n return this.setFormGroup(field);\r\n default:\r\n return this.setFormControl(field);\r\n }\r\n }\r\n\r\n private setFormGroup(field: TSpecialForm): {\r\n name: string;\r\n control: SpecialFormGroup;\r\n } {\r\n const control = this.formGenerator(\r\n this.fieldDataToArray(field.settings.formFields),\r\n field\r\n );\r\n return { control, name: field.name };\r\n }\r\n\r\n private setFormArray(field: TSpecialArray): {\r\n name: string;\r\n control: SpecialFormArray;\r\n } {\r\n const auxForm = (value = {}) => {\r\n const auxForm = this.formGenerator(\r\n this.fieldDataToArray(field.settings.formFields),\r\n {}\r\n );\r\n auxForm.reset(value);\r\n return auxForm;\r\n };\r\n\r\n if (field.required) {\r\n field.validators = this.setValidatorsArray(field.validators, [\r\n this.arrayLengthRequired,\r\n ]);\r\n }\r\n\r\n return {\r\n name: field.name,\r\n control: new SpecialFormArray(field, auxForm, []),\r\n };\r\n }\r\n\r\n private setFormControl(field: TSpecialFields): {\r\n name: string;\r\n control: SpecialFormControl<any>;\r\n } {\r\n const validators: ValidatorFn[] = [];\r\n\r\n if (field.required) validators.push(this.setRequiredValidator(field));\r\n if (field.length) validators.push(Validators.maxLength(field.length));\r\n\r\n field.validators = this.setValidatorsArray(field.validators, validators);\r\n\r\n return {\r\n name: field.name,\r\n control: new SpecialFormControl(field),\r\n };\r\n }\r\n\r\n private setRequiredValidator(field: TSpecialFields): ValidatorFn {\r\n if (field.type !== EControlTypes.autocomplete) {\r\n return Validators.required;\r\n }\r\n\r\n return (control: SpecialFormControl<IAutocompleteSettings>) =>\r\n !!control.value && control.value instanceof Object\r\n ? null\r\n : { required: true };\r\n }\r\n private setValidatorsArray(\r\n validators: ValidatorFn | ValidatorFn[] | null,\r\n newValidators: ValidatorFn[]\r\n ): ValidatorFn[] {\r\n if (!validators) {\r\n return newValidators;\r\n }\r\n return validators instanceof Array\r\n ? [...validators, ...newValidators]\r\n : [validators, ...newValidators];\r\n }\r\n\r\n private arrayLengthRequired(control: AbstractControl) {\r\n if (control.value.length) {\r\n return {};\r\n }\r\n return { noItems: 'NO_SELECTED_ITEM' };\r\n }\r\n}\r\n","import { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ErrorStateMatcherService implements ErrorStateMatcher {\r\n isErrorState(control: FormControl): boolean {\r\n return control && control.invalid && control.dirty;\r\n }\r\n}\r\n","import {\r\n SpecialFormControl,\r\n SpecialFormArray,\r\n SpecialFormGroup,\r\n} from '../forms/special-forms';\r\n\r\nexport abstract class ISpecialControl {\r\n control: SpecialFormControl<any> | SpecialFormArray | SpecialFormGroup;\r\n}\r\n","import { createMask } from '@ngneat/input-mask';\r\n\r\nexport const currencyInputMask = createMask({\r\n alias: 'numeric',\r\n groupSeparator: ',',\r\n autoUnmask: true,\r\n digits: 2,\r\n digitsOptional: false,\r\n prefix: '$ ',\r\n placeholder: '0',\r\n});\r\n","import { createMask } from '@ngneat/input-mask';\r\n\r\nexport const numberMask = (max = 1000) =>\r\n createMask({ alias: 'numeric', min: 0, max });\r\n","/*\r\n * Public API Surface of special-forms\r\n */\r\n\r\nexport * from './lib/components';\r\nexport * from './lib/core/services/index';\r\nexport { EControlTypes } from './lib/core/aux-data/control-types.enum';\r\nexport * from './lib/core/forms/special-forms';\r\nexport * from './lib/core/interfaces/field-basics.interfaces';\r\nexport * from './lib/core/interfaces/form.interfaces';\r\nexport * from './lib/core/interfaces/special-control.interface';\r\nexport * from './lib/core/masks/index';\r\nexport * from './lib/core/pipes/index';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i8","i2","i4","i5","i6","i1","i2.FormControlsListPipe"],"mappings":"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"}
@@ -15,5 +15,5 @@ export declare class SpecialAutocompleteComponent {
15
15
  iconClick(event: Event): void;
16
16
  ngOnDestroy(): void;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialAutocompleteComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialAutocompleteComponent, "sp-autocomplete", never, { "control": "control"; }, {}, never, never, true, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialAutocompleteComponent, "sp-autocomplete", never, { "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
19
19
  }
@@ -7,5 +7,5 @@ export declare class SpecialCheckboxComponent implements OnInit {
7
7
  constructor();
8
8
  ngOnInit(): void;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialCheckboxComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialCheckboxComponent, "sp-checkbox", never, { "control": "control"; }, {}, never, never, true, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialCheckboxComponent, "sp-checkbox", never, { "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
11
11
  }
@@ -8,5 +8,5 @@ export declare class SpecialDatepickerComponent implements OnInit {
8
8
  get startAt(): Date;
9
9
  ngOnInit(): void;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialDatepickerComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialDatepickerComponent, "sp-datepicker", never, { "control": "control"; }, {}, never, never, true, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialDatepickerComponent, "sp-datepicker", never, { "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
12
12
  }
@@ -7,5 +7,5 @@ export declare class SpecialDropdownComponent {
7
7
  iconClick(event: Event): void;
8
8
  optionSelected(value: any): void;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialDropdownComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialDropdownComponent, "sp-dropdown", never, { "control": "control"; }, {}, never, never, true, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialDropdownComponent, "sp-dropdown", never, { "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
11
11
  }
@@ -7,7 +7,7 @@ export declare class SpecialFormComponent implements OnInit {
7
7
  set control(form: SpecialFormGroup);
8
8
  ngOnInit(): void;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialFormComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialFormComponent, "sp-form", never, { "form": "control"; }, {}, never, never, false, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialFormComponent, "sp-form", never, { "form": { "alias": "control"; "required": false; }; }, {}, never, never, false, never>;
11
11
  }
12
12
  export declare class SpecialArrayComponent implements OnInit {
13
13
  formArray: any;
@@ -19,7 +19,7 @@ export declare class SpecialArrayComponent implements OnInit {
19
19
  removeItem(index: number): void;
20
20
  addItem(): void;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialArrayComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialArrayComponent, "sp-array", never, { "formArray": "control"; }, {}, never, never, false, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialArrayComponent, "sp-array", never, { "formArray": { "alias": "control"; "required": false; }; }, {}, never, never, false, never>;
23
23
  }
24
24
  export declare class FormControlsRenderDirective {
25
25
  private viewContainer;
@@ -27,5 +27,5 @@ export declare class FormControlsRenderDirective {
27
27
  set controlSetter(control: SpecialFormControl<any>);
28
28
  constructor(viewContainer: ViewContainerRef);
29
29
  static ɵfac: i0.ɵɵFactoryDeclaration<FormControlsRenderDirective, never>;
30
- static ɵdir: i0.ɵɵDirectiveDeclaration<FormControlsRenderDirective, "[controlRender]", never, { "controlSetter": "control"; }, {}, never, never, false, never>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FormControlsRenderDirective, "[controlRender]", never, { "controlSetter": { "alias": "control"; "required": false; }; }, {}, never, never, false, never>;
31
31
  }
@@ -11,5 +11,5 @@ export declare class SpecialInputComponent implements OnInit {
11
11
  get settings(): IInputSettings;
12
12
  iconClick(event: Event): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialInputComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialInputComponent, "sp-input", never, { "control": "control"; }, {}, never, never, true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialInputComponent, "sp-input", never, { "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
15
15
  }
@@ -9,5 +9,5 @@ export declare class SpecialLabelComponent implements OnInit {
9
9
  get settings(): ILabelSettings;
10
10
  onLink(): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialLabelComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialLabelComponent, "sp-label", never, { "control": "control"; }, {}, never, never, true, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialLabelComponent, "sp-label", never, { "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
13
13
  }
@@ -18,5 +18,5 @@ export declare class SpecialMultipleAutocompleteComponent {
18
18
  configValue: (item: any) => any;
19
19
  ngOnDestroy(): void;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialMultipleAutocompleteComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialMultipleAutocompleteComponent, "sp-multiple-autocomplete", never, { "control": "control"; }, {}, never, never, true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialMultipleAutocompleteComponent, "sp-multiple-autocomplete", never, { "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
22
22
  }
@@ -1,8 +1,7 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { SpecialFormControl } from '../../core/forms/special-forms';
3
3
  import { IRichTextSettings } from './special-richtext.interface';
4
- import { Toolbar } from 'ngx-editor';
5
- import { Editor } from 'ngx-editor';
4
+ import { Toolbar, Editor } from 'ngx-editor';
6
5
  import * as i0 from "@angular/core";
7
6
  export declare class SpecialRichtextComponent implements OnInit {
8
7
  editor: Editor;
@@ -14,5 +13,5 @@ export declare class SpecialRichtextComponent implements OnInit {
14
13
  ngOnInit(): void;
15
14
  ngOnDestroy(): void;
16
15
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialRichtextComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialRichtextComponent, "sp-input", never, { "control": "control"; }, {}, never, never, true, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialRichtextComponent, "sp-input", never, { "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
18
17
  }
@@ -9,5 +9,5 @@ export declare class SpecialTextAreaComponent implements OnInit {
9
9
  constructor();
10
10
  ngOnInit(): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialTextAreaComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialTextAreaComponent, "sp-text-area", never, { "control": "control"; }, { "onBlur": "onBlur"; "onEnter": "onEnter"; }, never, never, true, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialTextAreaComponent, "sp-text-area", never, { "control": { "alias": "control"; "required": false; }; }, { "onBlur": "onBlur"; "onEnter": "onEnter"; }, never, never, true, never>;
13
13
  }
@@ -17,5 +17,5 @@ export declare class SpecialUploadComponent implements OnInit {
17
17
  clean(): void;
18
18
  onRemove(file: File): void;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<SpecialUploadComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<SpecialUploadComponent, "sp-upload", never, { "controlSetter": "control"; }, {}, never, never, true, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpecialUploadComponent, "sp-upload", never, { "controlSetter": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
21
21
  }
@@ -12,6 +12,9 @@
12
12
  --tw-pan-y: ;
13
13
  --tw-pinch-zoom: ;
14
14
  --tw-scroll-snap-strictness: proximity;
15
+ --tw-gradient-from-position: ;
16
+ --tw-gradient-via-position: ;
17
+ --tw-gradient-to-position: ;
15
18
  --tw-ordinal: ;
16
19
  --tw-slashed-zero: ;
17
20
  --tw-numeric-figure: ;
@@ -59,6 +62,9 @@
59
62
  --tw-pan-y: ;
60
63
  --tw-pinch-zoom: ;
61
64
  --tw-scroll-snap-strictness: proximity;
65
+ --tw-gradient-from-position: ;
66
+ --tw-gradient-via-position: ;
67
+ --tw-gradient-to-position: ;
62
68
  --tw-ordinal: ;
63
69
  --tw-slashed-zero: ;
64
70
  --tw-numeric-figure: ;
package/package.json CHANGED
@@ -1,24 +1,21 @@
1
1
  {
2
2
  "name": "special-forms",
3
- "version": "4.1.2",
3
+ "version": "16.2.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^15.2.7",
6
- "@angular/core": "^15.2.7",
5
+ "@angular/common": "^16.2.0",
6
+ "@angular/core": "^16.2.0",
7
7
  "@ngneat/input-mask": "6.1.0",
8
- "inputmask": "^5.0.7",
8
+ "@angular/material": "^16.2.0",
9
+ "@angular/cdk": "^16.2.0",
10
+ "inputmask": "^5.0.8",
9
11
  "ngx-dropzone": "^3.1.0",
10
- "ngx-editor": "^15.2.0",
11
- "@angular/material": "15.2.7"
12
+ "ngx-editor": "^16.0.0-beta.0"
12
13
  },
13
14
  "dependencies": {
14
15
  "tslib": "^2.3.0"
15
16
  },
16
17
  "sideEffects": false,
17
- "module": "fesm2015/special-forms.mjs",
18
- "es2020": "fesm2020/special-forms.mjs",
19
- "esm2020": "esm2020/special-forms.mjs",
20
- "fesm2020": "fesm2020/special-forms.mjs",
21
- "fesm2015": "fesm2015/special-forms.mjs",
18
+ "module": "fesm2022/special-forms.mjs",
22
19
  "typings": "index.d.ts",
23
20
  "exports": {
24
21
  "./package.json": {
@@ -26,11 +23,9 @@
26
23
  },
27
24
  ".": {
28
25
  "types": "./index.d.ts",
29
- "esm2020": "./esm2020/special-forms.mjs",
30
- "es2020": "./fesm2020/special-forms.mjs",
31
- "es2015": "./fesm2015/special-forms.mjs",
32
- "node": "./fesm2015/special-forms.mjs",
33
- "default": "./fesm2020/special-forms.mjs"
26
+ "esm2022": "./esm2022/special-forms.mjs",
27
+ "esm": "./esm2022/special-forms.mjs",
28
+ "default": "./fesm2022/special-forms.mjs"
34
29
  }
35
30
  }
36
31
  }
@@ -1,46 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
3
- import { ReactiveFormsModule } from '@angular/forms';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { NgxEditorModule } from 'ngx-editor';
6
- import { Editor } from 'ngx-editor';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "ngx-editor";
11
- export class SpecialRichtextComponent {
12
- set control(control) {
13
- this.formControl = control;
14
- if (control.settings.colorPresets)
15
- this.colorPresets = control.settings.colorPresets;
16
- this.editor = new Editor();
17
- }
18
- constructor() {
19
- this.colorPresets = ['red', 'yellow', 'green', 'blue', 'black'];
20
- this.toolbar = [
21
- // default value
22
- ['bold', 'italic'],
23
- ['underline', 'strike'],
24
- ['code', 'blockquote'],
25
- ['ordered_list', 'bullet_list'],
26
- [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],
27
- ['link', 'image'],
28
- ['text_color', 'background_color'],
29
- ['align_left', 'align_center', 'align_right', 'align_justify'],
30
- ['horizontal_rule', 'format_clear'],
31
- ];
32
- }
33
- ngOnInit() { }
34
- ngOnDestroy() {
35
- this.editor.destroy();
36
- }
37
- }
38
- SpecialRichtextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialRichtextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- SpecialRichtextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SpecialRichtextComponent, isStandalone: true, selector: "sp-input", inputs: { control: "control" }, ngImport: i0, template: "<div\r\n class=\"special-richtext w-full mb-3 {{ formControl.styleClasses }}\"\r\n [id]=\"formControl.elementId\"\r\n *ngIf=\"formControl && !formControl.hidden\"\r\n>\r\n <ngx-editor-menu\r\n [colorPresets]=\"colorPresets\"\r\n [toolbar]=\"toolbar\"\r\n [editor]=\"editor\"\r\n >\r\n </ngx-editor-menu>\r\n <ngx-editor\r\n [editor]=\"editor\"\r\n [formControl]=\"formControl\"\r\n [disabled]=\"false\"\r\n [placeholder]=\"formControl.placeholder\"\r\n ></ngx-editor>\r\n</div>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxEditorModule }, { kind: "component", type: i3.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i3.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialRichtextComponent, decorators: [{
41
- type: Component,
42
- args: [{ standalone: true, selector: 'sp-input', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, MatIconModule, ReactiveFormsModule, NgxEditorModule], template: "<div\r\n class=\"special-richtext w-full mb-3 {{ formControl.styleClasses }}\"\r\n [id]=\"formControl.elementId\"\r\n *ngIf=\"formControl && !formControl.hidden\"\r\n>\r\n <ngx-editor-menu\r\n [colorPresets]=\"colorPresets\"\r\n [toolbar]=\"toolbar\"\r\n [editor]=\"editor\"\r\n >\r\n </ngx-editor-menu>\r\n <ngx-editor\r\n [editor]=\"editor\"\r\n [formControl]=\"formControl\"\r\n [disabled]=\"false\"\r\n [placeholder]=\"formControl.placeholder\"\r\n ></ngx-editor>\r\n</div>\r\n", styles: [":host{display:contents}\n"] }]
43
- }], ctorParameters: function () { return []; }, propDecorators: { control: [{
44
- type: Input
45
- }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1yaWNodGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLXJpY2h0ZXh0L3NwZWNpYWwtcmljaHRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1yaWNodGV4dC9zcGVjaWFsLXJpY2h0ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxlQUFlLEVBQVcsTUFBTSxZQUFZLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFVcEMsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQyxJQUFhLE9BQU8sQ0FBQyxPQUE4QztRQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztRQUMzQixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWTtZQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBZUQ7UUF0QkEsaUJBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQVMzRCxZQUFPLEdBQVk7WUFDakIsZ0JBQWdCO1lBQ2hCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUNsQixDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUM7WUFDdkIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO1lBQ3RCLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQztZQUMvQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25ELENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztZQUNqQixDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztZQUNsQyxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQztZQUM5RCxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQztTQUNwQyxDQUFDO0lBRWEsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQztJQUNuQixXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOztxSEE5QlUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isb0dDdEJyQyxnZ0JBa0JBLGtGREVZLFlBQVksa0lBQUUsYUFBYSw4QkFBRSxtQkFBbUIseVRBQUUsZUFBZTsyRkFFaEUsd0JBQXdCO2tCQVJwQyxTQUFTO2lDQUNJLElBQUksWUFDTixVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQzswRUFPL0QsT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBTcGVjaWFsRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMnO1xyXG5pbXBvcnQgeyBJUmljaFRleHRTZXR0aW5ncyB9IGZyb20gJy4vc3BlY2lhbC1yaWNodGV4dC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBOZ3hFZGl0b3JNb2R1bGUsIFRvb2xiYXIgfSBmcm9tICduZ3gtZWRpdG9yJztcclxuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnbmd4LWVkaXRvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnc3AtaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLXJpY2h0ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLXJpY2h0ZXh0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTmd4RWRpdG9yTW9kdWxlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxSaWNodGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZWRpdG9yOiBFZGl0b3I7XHJcbiAgZm9ybUNvbnRyb2w6IFNwZWNpYWxGb3JtQ29udHJvbDxJUmljaFRleHRTZXR0aW5ncz47XHJcbiAgY29sb3JQcmVzZXRzID0gWydyZWQnLCAneWVsbG93JywgJ2dyZWVuJywgJ2JsdWUnLCAnYmxhY2snXTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGNvbnRyb2woY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPElSaWNoVGV4dFNldHRpbmdzPikge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2w7XHJcbiAgICBpZiAoY29udHJvbC5zZXR0aW5ncy5jb2xvclByZXNldHMpXHJcbiAgICAgIHRoaXMuY29sb3JQcmVzZXRzID0gY29udHJvbC5zZXR0aW5ncy5jb2xvclByZXNldHM7XHJcbiAgICB0aGlzLmVkaXRvciA9IG5ldyBFZGl0b3IoKTtcclxuICB9XHJcblxyXG4gIHRvb2xiYXI6IFRvb2xiYXIgPSBbXHJcbiAgICAvLyBkZWZhdWx0IHZhbHVlXHJcbiAgICBbJ2JvbGQnLCAnaXRhbGljJ10sXHJcbiAgICBbJ3VuZGVybGluZScsICdzdHJpa2UnXSxcclxuICAgIFsnY29kZScsICdibG9ja3F1b3RlJ10sXHJcbiAgICBbJ29yZGVyZWRfbGlzdCcsICdidWxsZXRfbGlzdCddLFxyXG4gICAgW3sgaGVhZGluZzogWydoMScsICdoMicsICdoMycsICdoNCcsICdoNScsICdoNiddIH1dLFxyXG4gICAgWydsaW5rJywgJ2ltYWdlJ10sXHJcbiAgICBbJ3RleHRfY29sb3InLCAnYmFja2dyb3VuZF9jb2xvciddLFxyXG4gICAgWydhbGlnbl9sZWZ0JywgJ2FsaWduX2NlbnRlcicsICdhbGlnbl9yaWdodCcsICdhbGlnbl9qdXN0aWZ5J10sXHJcbiAgICBbJ2hvcml6b250YWxfcnVsZScsICdmb3JtYXRfY2xlYXInXSxcclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdG9yLmRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwic3BlY2lhbC1yaWNodGV4dCB3LWZ1bGwgbWItMyB7eyBmb3JtQ29udHJvbC5zdHlsZUNsYXNzZXMgfX1cIlxyXG4gIFtpZF09XCJmb3JtQ29udHJvbC5lbGVtZW50SWRcIlxyXG4gICpuZ0lmPVwiZm9ybUNvbnRyb2wgJiYgIWZvcm1Db250cm9sLmhpZGRlblwiXHJcbj5cclxuICA8bmd4LWVkaXRvci1tZW51XHJcbiAgICBbY29sb3JQcmVzZXRzXT1cImNvbG9yUHJlc2V0c1wiXHJcbiAgICBbdG9vbGJhcl09XCJ0b29sYmFyXCJcclxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcclxuICA+XHJcbiAgPC9uZ3gtZWRpdG9yLW1lbnU+XHJcbiAgPG5neC1lZGl0b3JcclxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cImZvcm1Db250cm9sLnBsYWNlaG9sZGVyXCJcclxuICA+PC9uZ3gtZWRpdG9yPlxyXG48L2Rpdj5cclxuIl19