onshore-forms 0.0.51 → 0.0.52

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":"onshore-forms.mjs","sources":["../../../projects/onshore-forms/src/lib/enums/form.enums.ts","../../../projects/onshore-forms/src/lib/onshore-forms.service.ts","../../../projects/onshore-forms/src/lib/onshore-forms.component.ts","../../../projects/onshore-forms/src/lib/components/form-validation-output/form-validation-output.component.ts","../../../projects/onshore-forms/src/lib/components/form-validation-output/form-validation-output.component.html","../../../projects/onshore-forms/src/lib/components/form-item-container/form-item-container.component.ts","../../../projects/onshore-forms/src/lib/components/form-item-container/form-item-container.component.html","../../../projects/onshore-forms/src/lib/components/form-input-item/form-input-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-input-item/form-input-item.component.html","../../../projects/onshore-forms/src/lib/components/form-switch-item/form-switch-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-switch-item/form-switch-item.component.html","../../../projects/onshore-forms/src/lib/components/image-placeholder/image-placeholder.component.ts","../../../projects/onshore-forms/src/lib/components/image-placeholder/image-placeholder.component.html","../../../projects/onshore-forms/src/lib/components/image-chooser/image-chooser.component.ts","../../../projects/onshore-forms/src/lib/components/image-chooser/image-chooser.component.html","../../../projects/onshore-forms/src/lib/components/webcam/webcam.component.ts","../../../projects/onshore-forms/src/lib/components/webcam/webcam.component.html","../../../projects/onshore-forms/src/lib/components/form-image-item/form-image-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-image-item/form-image-item.component.html","../../../projects/onshore-forms/src/lib/components/form-dropdown-item/form-dropdown-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-dropdown-item/form-dropdown-item.component.html","../../../projects/onshore-forms/src/lib/components/form-colorpicker-item/form-colorpicker-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-colorpicker-item/form-colorpicker-item.component.html","../../../projects/onshore-forms/src/lib/components/form-checkbox-item/form-checkbox-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-checkbox-item/form-checkbox-item.component.html","../../../projects/onshore-forms/src/lib/components/form-autocomplete-item/form-autocomplete-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-autocomplete-item/form-autocomplete-item.component.html","../../../projects/onshore-forms/src/lib/components/form-datetime-item/form-datetime-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-datetime-item/form-datetime-item.component.html","../../../projects/onshore-forms/src/lib/components/form-sort-item/form-sort-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-sort-item/form-sort-item.component.html","../../../projects/onshore-forms/src/lib/onshore-forms.module.ts","../../../projects/onshore-forms/src/lib/validators/form.validators.ts","../../../projects/onshore-forms/src/public-api.ts","../../../projects/onshore-forms/src/onshore-forms.ts"],"sourcesContent":["export enum OnshoreFormTemplateType {\r\n text = 'text',\r\n textarea = 'textarea',\r\n editor = 'editor',\r\n password = 'password',\r\n number = 'number',\r\n email = 'email',\r\n phone = 'phone',\r\n regexp = 'regexp',\r\n select = 'select',\r\n switch = 'switch',\r\n check = 'check',\r\n radio = 'radio',\r\n image = 'image',\r\n autocomplete = 'autocomplete',\r\n color = 'color',\r\n date = 'date',\r\n time = 'time',\r\n datetime = 'datetime',\r\n sort = 'sort',\r\n subform = 'subform'\r\n}\r\n\r\nexport enum OnshoreFormTemplateLayout {\r\n vertical = 'vertical',\r\n horizontal = 'horizontal',\r\n auto = 'auto'\r\n}\r\n\r\nexport enum OnshoreImageError {\r\n none = '',\r\n fileType = 'fileType',\r\n ratio = 'ratio',\r\n size = 'size',\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { OnshoreFormTemplateType } from './enums/form.enums';\nimport { OnshoreFormArrayDefault, OnshoreFormTemplateItem } from './models/form.models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnshoreFormsService {\n\n _form: FormGroup;\n _formTemplate: OnshoreFormTemplateItem[];\n _formValidations: string[] = [];\n\n subscriptions: Array<Subscription> = [];\n\n public isLoading$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n this._form = new FormGroup({}, {updateOn: 'change'});\n this._formTemplate = [];\n }\n\n public get form(): FormGroup {\n return this._form;\n }\n\n public get formValues() {\n return this._form?.value;\n }\n\n public patchForm(value: any) {\n this._form?.patchValue(value);\n }\n\n public resetForm() {\n this._form?.reset();\n this._form?.updateValueAndValidity({ onlySelf: false, emitEvent: true });\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n\n this._form = null!;\n this._formTemplate = null!;\n }\n\n public resetFormControl(name: string, touched: boolean = false) {\n this._form?.get(name).reset();\n if(touched) {\n this._form?.get(name).markAsTouched();\n this._form?.get(name).markAsDirty();\n }\n this._form?.get(name).updateValueAndValidity({ onlySelf: false, emitEvent: true });\n }\n\n public generateForm(formTemplate: OnshoreFormTemplateItem[]): FormGroup | null {\n this._formTemplate = formTemplate;\n this._form = new FormGroup({}, {updateOn: 'change'});\n this._form = this.iterateNestedForm(this._form, formTemplate);\n return this._form;\n }\n\n public formTemplate(name: string, formTemplate: OnshoreFormTemplateItem[] = this._formTemplate): OnshoreFormTemplateItem {\n let template: OnshoreFormTemplateItem;\n\n if(formTemplate) {\n for(let i = 0; i < formTemplate?.length; i++) {\n const item = formTemplate[i];\n if(item.name === name) {\n template = item;\n i = formTemplate.length;\n }else if(item.subformArray) {\n const arrayTemplate = this.formTemplate(name, item.subformArray);\n if(arrayTemplate) template = arrayTemplate;\n }else if(item.subformObject) {\n const objectTemplate = this.formTemplate(name, item.subformObject);\n if(objectTemplate) template = objectTemplate;\n }\n }\n }\n\n return template!;\n }\n\n public formControl(name: string, formGroup: FormGroup | null = this._form): FormControl {\n return formGroup?.get(name) as FormControl;\n }\n\n public formArray(name: string): FormArray {\n return this._form?.get(name) as FormArray;\n }\n\n public formGroup(form: FormGroup, name: string): FormGroup {\n return form.get(name) as FormGroup;\n }\n\n public addFormArrayItem(formArray: FormArray, item: OnshoreFormTemplateItem, defaultValues: OnshoreFormArrayDefault[] = null) {\n let formControls = <any>{};\n\n if(item) {\n item.subformArray?.forEach((subitem: OnshoreFormTemplateItem) => {\n if(subitem.type == OnshoreFormTemplateType.subform) {\n if (item.subformArray) {\n formControls[subitem.name] = new FormArray([]);\n formControls[subitem.name].setParent(formControls[subitem.name]);\n this.subscribeNestedFormArray(formControls[subitem.name] as FormArray);\n }\n if (item.subformObject) {\n formControls[subitem.name] = new FormGroup({});\n this.subscribeNestedFormGroup(formControls[subitem.name] as FormGroup);\n }\n } else {\n const defaultValue = defaultValues?.find(value => value.name === subitem.name)?.value;\nconsole.log(\"OSF - SET DEFAULT\", defaultValue);\n formControls[subitem.name] = new FormControl(defaultValue ?? (subitem.default !== undefined ? subitem.default : ''), {\n validators: subitem.validators || [],\n updateOn: 'change'\n });\n formControls[subitem.name].updateValueAndValidity({ onlySelf: false, emitEvent: true });\n console.log(\"OSF - FORM CONTROL VAL\", formControls[subitem.name], formControls[subitem.name].value);\n }\n });\n }\n\n const formGroup = new FormGroup(formControls);\n formGroup.setParent(formArray);\n\n formArray.push(formGroup);\n\n this.subscribeNestedFormGroup(formGroup);\n }\n\n public removeFormArrayItem(form: FormArray, index: number) {\n form.removeAt(index);\n }\n\n public setFormValidations(validations: string[] = []) {\n this._formValidations = validations;\n }\n\n public enable() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.enabled = true;\n });\n setTimeout(() => {\n this._form?.enable({onlySelf: true, emitEvent: false});\n }, 100);\n }\n\n public disable() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.enabled = false;\n });\n setTimeout(() => {\n this._form?.disable({onlySelf: true, emitEvent: false});\n }, 100);\n }\n\n public setError(control: string, error: Object) {\n const errors = {...this.formControl(control).errors ?? {}, ...error} ;\n this.formControl(control).setErrors(errors);\n }\n\n public setLoader(loaders$: Subject<boolean>[]) {\n loaders$.forEach($loader => {\n this.subscriptions.push($loader.subscribe(isLoading => {\n isLoading ? this.disable() : this.enable();\n this.isLoading$.next(isLoading);\n }));\n });\n }\n\n public lock(lockSubfields: boolean = true) {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.locked = true;\n if(item.subformArray && lockSubfields) {\n item.subformArray.forEach( subitem => {\n subitem.locked = true;\n });\n }\n });\n }\n\n public unlock() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.locked = false;\n if(item.subformArray) {\n item.subformArray.forEach( subitem => {\n subitem.locked = false;\n });\n }\n });\n }\n\n iterateNestedForm(form: FormGroup, formTemplate: OnshoreFormTemplateItem[]): any {\n formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n if(item.type === OnshoreFormTemplateType.subform) {\n if(item.subformArray) {\n form.controls[item.name] = new FormArray([]);\n form.controls[item.name].setParent(form);\n this.subscribeNestedFormArray(form.controls[item.name] as FormArray);\n }\n if(item.subformObject) {\n form.controls[item.name] = new FormGroup({});\n form.controls[item.name] = this.iterateNestedForm(form.controls[item.name] as FormGroup, item.subformObject) as FormGroup;\n this.subscribeNestedFormGroup(form.controls[item.name] as FormGroup);\n }\n } else {\n form.addControl(item.name, new FormControl(item.default !== undefined ? item.default : '', {\n validators: item.validators || [],\n updateOn: 'change'\n }));\n }\n });\n return form;\n }\n\n subscribeNestedFormArray(nestedFormItem: FormArray) {\n this.subscriptions.push(nestedFormItem.valueChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n this.subscriptions.push(nestedFormItem.statusChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n }\n\n subscribeNestedFormGroup(nestedFormItem: FormGroup) {\n this.subscriptions.push(nestedFormItem.valueChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n this.subscriptions.push(nestedFormItem.statusChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-onshore-forms',\n template: `\n <p>\n onshore-forms works!\n </p>\n `,\n styles: [\n ]\n})\nexport class OnshoreFormsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input, OnChanges, SimpleChanges\n} from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'onshore-form-validation-output',\n templateUrl: './form-validation-output.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormValidationOutputComponent implements OnChanges {\n @Input() validationErrors!: ValidationErrors | null;\n @Input() validationItems!: string[];\n\n validationTranslation: string = '';\n\n ngOnChanges(changes: SimpleChanges) {\n this.validationTranslation = '';\n if(changes['validationErrors'].currentValue && this.validationErrors) {\n Object.keys(this.validationErrors!).forEach(error => {\n const exists = Object.values(this.validationItems ?? []).filter( validationItem => validationItem == error);\n if(exists && exists.length > 0) {\n this.validationTranslation += this.translate.instant('form.validation.' + error) + '<br>';\n } else {\n const errorValues = this.validationErrors![error];\n this.validationTranslation += this.translate.instant('form.validation.' + error, errorValues) + '<br>';\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef,\n private translate: TranslateService,) {\n\n }\n}\n","<small class=\"onshore-color-danger\"\n *ngIf=\"validationTranslation\"\n [innerHTML]=\"validationTranslation\">\n</small>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, ElementRef, EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit, Output,\n SimpleChanges, ViewChild\n} from '@angular/core';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateLayout } from '../../enums/form.enums';\nimport { NgControl } from '@angular/forms';\n\n@Component({\n selector: 'onshore-form-item-container',\n templateUrl: './form-item-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormItemContainer implements OnInit, OnChanges, AfterViewInit {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() ngControl!: NgControl;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n @Output() lockIsChanged = new EventEmitter();\n\n @ViewChild('formContainer') formContainer!: ElementRef;\n\n disabled: boolean = false;\n tempLockValue: any;\n\n OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;\n\n layout: OnshoreFormTemplateLayout = OnshoreFormTemplateLayout.auto;\n\n enabled(enable: boolean) {\n setTimeout(() => {\n if(enable) {\n this.ngControl?.control.enable();\n } else {\n this.ngControl?.control.disable();\n }\n this.disabled = !enable;\n this.cdr.markForCheck();\n }, 100);\n }\n\n lockChanged(unlocked: boolean) {\n if(unlocked && this.formTemplate.enabled) {\n this.tempLockValue = this.ngControl?.control.value;\n this.enabled(true);\n this.disabled = false;\n this.lockIsChanged.emit(unlocked);\n } else {\n this.enabled(false);\n this.disabled = true;\n this.ngControl?.control.setValue(this.tempLockValue);\n this.tempLockValue = null;\n this.lockIsChanged.emit(unlocked);\n }\n\n this.cdr.markForCheck();\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize() {\n const conatinerWidth = this.formContainer?.nativeElement.offsetWidth;\n if(conatinerWidth > 500 && this.formTemplate.layout === OnshoreFormTemplateLayout.auto && this.layout !== OnshoreFormTemplateLayout.horizontal) {\n this.layout = OnshoreFormTemplateLayout.horizontal;\n this.cdr.markForCheck();\n }\n if(conatinerWidth <= 500 && this.formTemplate.layout === OnshoreFormTemplateLayout.auto && this.layout !== OnshoreFormTemplateLayout.vertical) {\n this.layout = OnshoreFormTemplateLayout.vertical;\n this.cdr.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.ngControl?.control?.valueChanges.subscribe(value => {\n this.cdr.markForCheck();\n });\n this.ngControl?.control?.statusChanges.subscribe(status => {\n this.cdr.markForCheck();\n });\n\n this.enabled(this.formTemplate.enabled);\n this.disabled = !this.formTemplate.enabled;\n\n if(this.formTemplate.locked) {\n this.enabled(false);\n this.disabled = true;\n }\n\n this.layout = this.formTemplate.layout;\n\n setTimeout(() => {\n this.cdr.markForCheck();\n }, 100);\n }\n\n ngAfterViewInit() {\n this.onWindowResize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const previousValue = changes['formTemplate'].previousValue;\n const currentValue = changes['formTemplate'].currentValue;\n\n if(currentValue) {\n\n if(previousValue?.enabled !== currentValue?.enabled) {\n this.enabled(currentValue?.enabled);\n this.disabled = !currentValue?.enabled;\n }\n\n if(previousValue?.locked !== currentValue?.locked) {\n if(currentValue.locked) {\n this.enabled(false);\n this.disabled = true;\n } else {\n this.enabled(currentValue.enabled);\n this.disabled = currentValue.enabled;\n }\n }\n\n if(previousValue?.layout !== currentValue?.layout) {\n this.layout = this.formTemplate.layout;\n this.onWindowResize();\n }\n\n if(previousValue?.labelStyle !== currentValue?.labelStyle) {\n this.onWindowResize();\n }\n\n this.cdr.markForCheck();\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n\n }\n}\n","<div [class.mb-4]=\"!formTemplate.noGap\" #formContainer>\n <div class=\"flex w-full\"\n [class.flex-column]=\"layout == OnshoreFormTemplateLayout.vertical\"\n [class.flex-row]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.justify-content-between]=\"layout == OnshoreFormTemplateLayout.horizontal\">\n\n <div #formLabel\n [hidden]=\"!formTemplate.label || formTemplate.label == ''\"\n class=\"flex justify-content-between\"\n [style]=\"formTemplate.labelStyle ?? 'min-width: 200px; max-height: 36px'\">\n\n <span *ngIf=\"formTemplate.label && formTemplate.label != ''\" [class.mr-2]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.align-self-center]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.mb-2]=\"layout == OnshoreFormTemplateLayout.vertical\">\n {{formTemplate.label}}\n <small *ngIf=\"formTemplate.required\" class=\"onshore-color-danger\">*</small>\n </span>\n\n <div *ngIf=\"formTemplate.tooltip && layout == OnshoreFormTemplateLayout.vertical\" [pTooltip]=\"formTemplate.tooltip\" [escape]=\"false\" [tooltipPosition]=\"'left'\" appendTo=\"body\"><i class=\"fa fa-circle-question onshore-color-gray-5\"></i></div>\n\n </div>\n\n <div class=\"flex w-full\">\n <p-toggleButton\n *ngIf=\"formTemplate.locked\"\n (onChange)=\"lockChanged($event.checked)\"\n onIcon=\"fa fa-lock-open\"\n offIcon=\"fa fa-lock\"\n class=\"mr-2\"\n [style]=\"{'height': '37px'}\"\n [disabled]=\"!formTemplate.enabled\">\n </p-toggleButton>\n\n <div class=\"w-full overflow-hidden align-self-center\">\n <ng-content></ng-content>\n </div>\n\n <button *ngIf=\"formTemplate.actionButton\"\n class=\"ml-2 onshore-button-light\"\n [style]=\"{'height': '37px', 'min-width': '38px'}\"\n pButton\n [disabled]=\"actionButtonDisabled\"\n [icon]=\"formTemplate.actionButtonIcon\"\n (click)=\"actionButtonClick.emit()\">\n </button>\n </div>\n\n <div *ngIf=\"formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal\" class=\"ml-2 align-self-center\" [pTooltip]=\"formTemplate.tooltip\" [tooltipPosition]=\"'left'\" [escape]=\"false\"><i class=\"fa fa-circle-question onshore-color-gray-5\"></i></div>\n </div>\n\n <div *ngIf=\"ngControl.control.touched || ngControl.control.dirty\" [style]=\"{'margin-left': layout == OnshoreFormTemplateLayout.horizontal ? (formLabel?.clientWidth + (formTemplate.locked ? 48 : 0)) + 'px' : (formTemplate.locked ? 48 : 0) + 'px', 'margin-right': formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal ? '16px' : '0px'}\">\n <onshore-form-validation-output\n [validationItems]=\"formTemplate.validationItems\"\n [validationErrors]=\"ngControl.control.errors\">\n </onshore-form-validation-output>\n </div>\n\n <div *ngIf=\"formTemplate.description\" class=\"mt-2\" [style]=\"{'margin-left': layout == OnshoreFormTemplateLayout.horizontal ? (formLabel?.clientWidth + (formTemplate.locked ? 48 : 0)) + 'px' : (formTemplate.locked ? 48 : 0) + 'px', 'margin-right': formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal ? '16px' : '0px'}\">\n <small class=\"onshore-color-gray-5\"><i class=\"fa fa-info-circle\"></i> {{formTemplate.description}}</small>\n </div>\n\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\n\n@Component({\n selector: 'onshore-form-input-item',\n templateUrl: './form-input-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormInputItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() step?: number = 1;\n @Input() min?: number = 0;\n @Input() max?: number = 999999;\n @Input() minLength?: number = 0;\n @Input() maxLength?: number = 999999;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n passwordVisible: boolean = false;\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <span class=\"p-inputgroup w-full\">\n\n <textarea *ngIf=\"formTemplate.type == OnshoreFormTemplateType.textarea\"\n class=\"w-full\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n [rows]=\"3\"\n [cols]=\"30\"\n pInputTextarea\n [autoResize]=\"true\"\n [formControl]=\"ngControl.control\"\n [class.p-invalid]=\"ngControl.control?.touched && ngControl.control?.invalid\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"></textarea>\n\n <input *ngIf=\"formTemplate.type == OnshoreFormTemplateType.text || formTemplate.type == OnshoreFormTemplateType.email || formTemplate.type == OnshoreFormTemplateType.phone\"\n class=\"w-full\"\n [type]=\"formTemplate.type\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n pInputText\n [formControl]=\"ngControl.control\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"/>\n\n <input *ngIf=\"formTemplate.type == OnshoreFormTemplateType.password\"\n class=\"w-full\"\n [type]=\"passwordVisible ? 'text' : formTemplate.type\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n pInputText\n [formControl]=\"ngControl.control\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"/>\n\n <p-inputNumber *ngIf=\"formTemplate.type == OnshoreFormTemplateType.number\"\n class=\"w-full\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? 0\"\n [disabled]=\"disabled\"\n [formControl]=\"ngControl.control\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [showButtons]=\"true\"\n [step]=\"step ?? 1\"\n [min]=\"min\"\n [max]=\"max\">\n </p-inputNumber>\n\n <span *ngIf=\"formTemplate.inputAddon\" class=\"p-inputgroup-addon\">\n <i [class]=\"formTemplate.inputAddon\"></i>\n </span>\n\n <span *ngIf=\"formTemplate.type == OnshoreFormTemplateType.password\"\n (click)=\"passwordVisible = !passwordVisible\"\n class=\"p-inputgroup-addon cursor-pointer\">\n <i class=\"fa\"\n [class.fa-eye-slash]=\"passwordVisible\"\n [class.fa-eye]=\"!passwordVisible\"\n ></i>\n </span>\n\n </span>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-form-switch-item',\n templateUrl: './form-switch-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormSwitchItemComponent implements OnInit, ControlValueAccessor, OnDestroy, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n\n ngOnInit(): void {\n this.ngControl.control?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n skip(1)\n ).subscribe(newValue => {\n this.valueChange.emit(this.ngControl.control?.value);\n });\n\n if(this.ngControl.control?.value == undefined && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <div class=\"h-full align-items-center mt-1\">\n <p-inputSwitch [name]=\"formTemplate.name\"\n [formControl]=\"ngControl.control\"\n [disabled]=\"disabled\"\n [inputId]=\"formTemplate.name\">\n </p-inputSwitch>\n </div>\n\n</onshore-form-item-container>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'onshore-image-placeholder',\n templateUrl: './image-placeholder.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreImagePlaceholderComponent {\n\n @Input() public placeholderIcon: string = '';\n @Input() public placeholderImage: string = '';\n @Input() public image: string = '';\n @Input() public imageStyle: string = '';\n @Input() public placeholderStyle: string = '';\n @Input() public showLoader: boolean = true;\n\n imageLoaded = false;\n\n loadReady() {\n this.imageLoaded = true;\n this.showLoader = false;\n }\n\n abort() {\n this.imageLoaded = false;\n this.showLoader = false;\n }\n\n constructor() {}\n\n}\n","<div [hidden]=\"!imageLoaded || !image\">\n <img [style]=\"imageStyle\" [src]=\"image\" (load)=\"loadReady()\" (abort)=\"abort()\" />\n</div>\n\n<div *ngIf=\"!imageLoaded || !image\" class=\"flex justify-content-center align-items-center\" [style]=\"placeholderStyle\" [class.bg-gray-200]=\"placeholderIcon\" [class.p-2]=\"placeholderIcon\">\n <i *ngIf=\"placeholderIcon\" [class]=\"'text-muted fa ' + placeholderIcon\" [class.opacity-20]=\"showLoader && image\"></i>\n <img *ngIf=\"placeholderImage\" [src]=\"placeholderImage\" [class.opacity-20]=\"showLoader && image\" class=\"h-full\" />\n <i *ngIf=\"showLoader && image\" class=\"fas fa-circle-notch fa-spin fa-2x absolute\"></i>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\nimport { OnshoreImageError } from '../../enums/form.enums';\nimport { OnshoreFormImageSettings } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-image-chooser',\n templateUrl: './image-chooser.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreImageChooserComponent {\n\n drag = false;\n image = '';\n finalImage = '';\n imageErrorType = OnshoreImageError;\n imageError: OnshoreImageError = OnshoreImageError.none;\n\n @Input() imageSettings: OnshoreFormImageSettings;\n\n @Output() choosen: EventEmitter<string> = new EventEmitter();\n @Output() canceled: EventEmitter<boolean> = new EventEmitter();\n\n clear() {\n this.image = '';\n this.finalImage = '';\n this.imageError = OnshoreImageError.none;\n }\n\n public fileChange(event: Event): void {\n this.imageError = OnshoreImageError.none;\n const target = event.target as HTMLInputElement;\n const file: File | undefined | null = target?.files ? target?.files[0] : null;\n\n if (file?.type != 'image/png' && file?.type != 'image/jpeg' && file?.type != 'image/webp') {\n this.imageError = OnshoreImageError.fileType;\n return;\n }\n\n if (file?.size > this.imageSettings.maxFileSize) {\n this.imageError = OnshoreImageError.size;\n return;\n }\n\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n\n const img = new Image();\n img.src = window.URL.createObjectURL(file);\n img.onload = () => {\n\n const originalWidth = img.width;\n const originalHeight = img.height;\n\n if (originalWidth >= this.imageSettings.imageWidth && originalHeight >= this.imageSettings.imageHeight) {\n this.image = reader.result?.toString() || '';\n } else {\n this.imageError = OnshoreImageError.ratio;\n }\n this.cdr.markForCheck();\n\n }\n\n };\n }\n\n\n\n }\n\n public imageCropped(event: ImageCroppedEvent): void {\n // ToDo: Check needed base64 format\n //this.finalImage = event.base64.split(',')[1];\n this.finalImage = event.base64 || '';\n }\n\n public imageCroppedReady(): void {\n this.choosen.emit(this.finalImage);\n this.clear();\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n}\n","<div class=\"flex flex-column justify-content-center align-items-center w-full\">\n\n <div *ngIf=\"!image\" class=\"flex justify-content-center flex-column align-items-center w-full\">\n <div\n class=\"onshore-image-upload flex flex-column justify-content-between align-items-center rounded-lg p-4 relative m-3\"\n [class.onshore-border-gray-3]=\"drag\"\n [class.onshore-border-danger]=\"imageError != imageErrorType.none\">\n <i class=\"fa fa-image fa-5x onshore-color-gray-4\"></i>\n <small class=\"onshore-color-gray-4 mb-2\">{{'form.imageControl.dropImageLabel' | translate}}</small>\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-file\"\n [label]=\"'form.imageControl.imageChooserFileButton' | translate\"\n class=\"onshore-button-primary mr-2\">\n </button>\n\n <input\n (change)=\"fileChange($event)\"\n *ngIf=\"!image\"\n accept=\"image/png, image/jpeg, image/webp\"\n class=\"onshore-image-input absolute w-full h-full\"\n type=\"file\"\n (dragenter)=\"drag = true\"\n (dragleave)=\"drag = false\"\n (dragend)=\"drag = false\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-column relative align-items-center w-full\" *ngIf=\"image\">\n <image-cropper\n class=\"m-3\"\n [style]=\"'align-items: center; height: ' + (imageSettings.cropperPreviewHeight * this.imageSettings.aspectRatio) + 'px; width: ' + (imageSettings.cropperPreviewWidth * this.imageSettings.aspectRatio) + 'px'\"\n [class.onshore-cropper-circle]=\"this.imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"this.imageSettings.imageQuality\"\n [alignImage]=\"this.imageSettings.alignImage\"\n [backgroundColor]=\"this.imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"this.imageSettings.containWithinAspectRatio\"\n [format]=\"this.imageSettings.format\"\n [aspectRatio]=\"this.imageSettings.aspectRatio\"\n [resizeToHeight]=\"this.imageSettings.imageWidth * this.imageSettings.aspectRatio\"\n [resizeToWidth]=\"this.imageSettings.imageHeight * this.imageSettings.aspectRatio\">\n </image-cropper>\n </div>\n\n <div *ngIf=\"imageError\"class=\"pb-2 text-wrap text-center onshore-color-danger\">\n <small *ngIf=\"imageError == imageErrorType.ratio\">{{'form.imageControl.imageErrorRatio' | translate: {resizeToWidth: this.imageSettings.imageWidth, resizeToHeight: this.imageSettings.imageHeight} }}</small>\n <small *ngIf=\"imageError == imageErrorType.fileType\">{{'form.imageControl.imageErrorFileType' | translate}}</small>\n <small *ngIf=\"imageError == imageErrorType.size\">{{'form.imageControl.imageErrorSize' | translate}}</small>\n </div>\n</div>\n\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'form.imageControl.imageChooserCancelButton' | translate\"\n class=\"onshore-button-light mr-2\"\n (click)=\"clear(); canceled.emit(true)\">\n </button>\n\n <button pButton\n type=\"button\"\n [label]=\"'form.imageControl.imageChooserSelectButton' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-check\"\n [disabled]=\"!image\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { WebcamImage } from 'ngx-webcam';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\nimport { OnshoreFormImageSettings } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-webcam',\n templateUrl: './webcam.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WebcamComponent {\n\n @Input() imageSettings: OnshoreFormImageSettings;\n\n @Output() shot: EventEmitter<string> = new EventEmitter();\n @Output() canceled: EventEmitter<boolean> = new EventEmitter();\n\n image = '';\n finalImage = '';\n\n public trigger: Subject<void> = new Subject<void>();\n\n public camImageShot(webcamImage: WebcamImage): void {\n this.image = webcamImage.imageAsDataUrl;\n this.cdr.markForCheck();\n }\n\n public imageCropped(event: ImageCroppedEvent): void {\n // ToDo: Check needed base64 format\n this.finalImage = event.base64 || '';\n }\n\n public imageCroppedReady(): void {\n this.shot.emit(this.finalImage);\n }\n\n\n public get triggerObservable(): Observable<void> {\n return this.trigger.asObservable();\n }\n\n public triggerSnapshot(): void {\n this.trigger.next();\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n}\n","<div class=\"flex w-full justify-content-center align-items-center overflow-hidden p-2\">\n <webcam *ngIf=\"!image || image == ''\"\n [mirrorImage]=\"'never'\"\n [height]=\"imageSettings.webcamWidth * this.imageSettings.aspectRatio\"\n [width]=\"imageSettings.webcamHeight * this.imageSettings.aspectRatio\"\n [allowCameraSwitch]=\"true\"\n [trigger]=\"triggerObservable\"\n [imageQuality]=\"imageSettings.imageQuality / 100\"\n (imageCapture)=\"camImageShot($event)\">\n </webcam>\n\n <image-cropper *ngIf=\"image && image != ''\"\n class=\"m-3\" [style]=\"'height: ' + (imageSettings.cropperPreviewWidth * this.imageSettings.aspectRatio) + 'px; width: ' + (imageSettings.cropperPreviewHeight * this.imageSettings.aspectRatio) + 'px'\"\n [class.onshore-cropper-circle]=\"imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageSettings.imageQuality\"\n [alignImage]=\"imageSettings.alignImage\"\n [backgroundColor]=\"imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"imageSettings.containWithinAspectRatio\"\n [format]=\"imageSettings.format\"\n [aspectRatio]=\"imageSettings.aspectRatio\"\n [resizeToHeight]=\"imageSettings.imageHeight * this.imageSettings.aspectRatio\"\n [resizeToWidth]=\"this.imageSettings.imageWidth * this.imageSettings.aspectRatio\">\n </image-cropper>\n</div>\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'global.cancel' | translate\"\n class=\"onshore-button-light mr-2\"\n (click)=\"canceled.emit(true)\">\n </button>\n\n <button *ngIf=\"!image || image == ''\"\n pButton\n type=\"button\"\n [label]=\"'form.imageControl.webcamSmileButton' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-laugh-wink\"\n (click)=\"triggerSnapshot()\">\n </button>\n\n <button *ngIf=\"image && image != ''\"\n pButton\n type=\"button\"\n [label]=\"'global.use' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit,\n Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { OnshoreFormImageSettings, OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateLayout } from '../../enums/form.enums';\n\n@Component({\n selector: 'onshore-form-image-item',\n templateUrl: './form-image-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormImageItemComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() imageSettings: OnshoreFormImageSettings;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() imageDeleted: EventEmitter<string> = new EventEmitter();\n @Output() imageCleared: EventEmitter<any> = new EventEmitter();\n @Output() imageReady: EventEmitter<string> = new EventEmitter();\n @Output() selectFromMedia: EventEmitter<any> = new EventEmitter();\n @Output() isLoading: EventEmitter<boolean> = new EventEmitter();\n\n OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;\n\n defaultImageSettings: OnshoreFormImageSettings = {\n imageWidth: 400,\n imageHeight: 400,\n containWithinAspectRatio: false,\n aspectRatio: 1 / 1,\n imageSelectionEnabled: true,\n webcamSelectionEnabled: true,\n mediaSelectionEnabled: true,\n deleteEnabled: true,\n placeholderImage: '',\n placeholderIcon: 'fa fa-image fa-10x',\n containerWidth: 250,\n containerHeight: 250,\n imageQuality: 100,\n format: 'png',\n alignImage: 'center',\n cropperPreviewWidth: 400,\n cropperPreviewHeight: 400,\n webcamWidth: 400,\n webcamHeight: 400,\n circleCropper: false,\n maxFileSize: 6400000,\n backgroundColor: 'white'\n };\n\n image: string | null = '';\n disabled = false;\n webcamDialogVisible: boolean = false;\n imageChooserDialogVisible: boolean = false;\n\n subscriptions: Array<Subscription> = [];\n\n getFileImage(image: any) {\n this.imageChooserDialogVisible = false;\n if(image) {\n this.image = image;\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.image);\n this.ngControl?.control?.markAsDirty();\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }, 500);\n }\n }\n\n getWebcamImage(image: any) {\n this.webcamDialogVisible = false;\n if(image) {\n this.image = image;\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.image);\n this.ngControl?.control?.markAsDirty();\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }, 500);\n }\n }\n\n removeImage() {\n if(this.image && !this.image.includes('base64')) {\n this.imageDeleted.emit(this.image);\n } else {\n this.imageCleared.emit();\n }\n\n this.ngControl?.control?.setValue(null);\n this.ngControl?.control?.markAsDirty();\n this.image = '';\n this.cdr.markForCheck();\n }\n\n public writeValue(obj: any): void {\n if(obj && !obj.includes('base64')) {\n this.image = obj;\n }\n if(obj == null) {\n this.image = '';\n }\n\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.image = this.ngControl.value;\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n if(this.ngControl?.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl?.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n this.ngControl?.control?.disable();\n this.image = null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const imageSettings: OnshoreFormImageSettings = changes['imageSettings']?.currentValue;\n\n this.imageSettings = {\n ...this.defaultImageSettings,\n ...imageSettings,\n placeholderIcon: imageSettings?.placeholderImage ? '' : this.defaultImageSettings.placeholderIcon\n };\n\n this.removeImage();\n this.cdr.markForCheck();\n }\n\n constructor(public cdr: ChangeDetectorRef,\n @Self() @Optional() public ngControl: NgControl,\n public dialogService: DialogService) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\" [ngControl]=\"ngControl\">\n <div class=\"w-full flex align-items-center\" [class.flex-column]=\"formTemplate.layout === OnshoreFormTemplateLayout.vertical\">\n\n <div class=\"onshore-border-gray-4 border-solid border-1 overflow-hidden\"\n [style]=\"'background-color: white; width: ' + imageSettings.containerWidth + 'px; height: ' + imageSettings.containerHeight + 'px'\">\n <onshore-image-placeholder\n class=\"w-full\"\n [image]=\"image\"\n [imageStyle]=\"'width: 100%; height: 100%'\"\n [placeholderIcon]=\"imageSettings.placeholderIcon\"\n [placeholderImage]=\"imageSettings.placeholderImage\"\n [placeholderStyle]=\"'width: 100%; height: 100%'\">\n </onshore-image-placeholder>\n </div>\n\n <div class=\"flex flex-column m-4\">\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.imageSelectionEnabled\"\n icon=\"fa fa-image\"\n [label]=\"'form.imageControl.uploadImageButton' | translate\"\n class=\"onshore-button-primary mb-2\"\n [disabled]=\"disabled\"\n (click)=\"imageChooserDialogVisible = true; cdr.detectChanges()\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.webcamSelectionEnabled\"\n icon=\"fa fa-camera\"\n [label]=\"'form.imageControl.webcamImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"webcamDialogVisible = true\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.mediaSelectionEnabled\"\n icon=\"fa fa-photo-video\"\n [label]=\"'form.imageControl.mediaImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"selectFromMedia.emit()\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.deleteEnabled\"\n icon=\"fa fa-eraser\"\n [label]=\"'form.imageControl.removeImageButton' | translate\"\n class=\"onshore-button-light\"\n (click)=\"removeImage()\"\n [disabled]=\"!image || disabled\">\n </button>\n\n </div>\n\n </div>\n</onshore-form-item-container>\n\n<p-dialog [header]=\"'form.imageControl.uploadImageTitle' | translate\" [(visible)]=\"imageChooserDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" appendTo=\"body\">\n <onshore-image-chooser\n (choosen)=\"getFileImage($event)\"\n (canceled)=\"imageChooserDialogVisible = false\"\n [imageSettings]=\"imageSettings\">\n </onshore-image-chooser>\n</p-dialog>\n\n<p-dialog [header]=\"'form.imageControl.webacmImageTitle' | translate\" [(visible)]=\"webcamDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" appendTo=\"body\">\n <onshore-webcam\n *ngIf=\"webcamDialogVisible\"\n (shot)=\"getWebcamImage($event)\"\n (canceled)=\"webcamDialogVisible = false\"\n [imageSettings]=\"imageSettings\"></onshore-webcam>\n</p-dialog>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem, OnshoreFormTemplateOptions } from '../../models/form.models';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs';\n\n@Component({\n selector: 'onshore-form-dropdown-item',\n templateUrl: './form-dropdown-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormDropdownItemComponent implements OnInit, OnChanges, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() multiple: boolean | undefined = false;\n @Input() showClear: boolean | undefined = false;\n @Input() group: boolean | undefined = false;\n @Input() selectionLimit?: number = 0\n @Input() minLength?: number = 0;\n @Input() optionLabel?: string = '';\n @Input() optionGroupLabel?: string = '';\n @Input() dataKey?: string = '';\n @Input() actionButtonDisabled: boolean = false;\n @Input() options: any[];\n\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean | undefined = false;\n\n // ControlValueAccessor interface\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n clearSelection() {\n this.ngControl.control?.reset();\n this.ngControl.control?.setValue(this.multiple ? [] : '');\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined && !this.multiple) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currentOptions = changes['options']?.currentValue ?? changes['formTemplate']?.currentValue?.options;\n const previousOptions = changes['options']?.previousValue ?? changes['formTemplate']?.previousValue?.options;\n\n if(!this.options && currentOptions) {\n this.options = currentOptions;\n }\n\n if(currentOptions?.length > 0 && currentOptions != previousOptions && !this.multiple) {\n this.ngControl.control?.setValue((this.options[0] as OnshoreFormTemplateOptions)?.value);\n }\n this.cdr.markForCheck();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-dropdown *ngIf=\"!multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"ngControl.control\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n [showClear]=\"showClear && formTemplate?.placeholder\"\n (onClear)=\"clearSelection()\"\n optionDisabled=\"disabled\"\n appendTo=\"body\">\n </p-dropdown>\n\n <p-multiSelect *ngIf=\"multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"ngControl.control\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [showClear]=\"showClear\"\n [selectionLimit]=\"selectionLimit\"\n [minlength]=\"minLength\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n (onClear)=\"clearSelection()\"\n [selectedItemsLabel]=\"'form.dropdownControl.selectedItems' | translate\"\n optionDisabled=\"disabled\"\n appendTo=\"body\"></p-multiSelect>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\n@Component({\n selector: 'onshore-form-colorpicker-item',\n templateUrl: './form-colorpicker-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormColorpickerItemComponent implements OnInit, OnChanges, ControlValueAccessor, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n colorPickerValue = '';\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeColor() {\n this.ngControl.control?.setValue(this.colorPickerValue);\n }\n\n changeInput(input: any) {\n this.colorPickerValue = input.target?.value;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.colorPickerValue = this.formTemplate.default;\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.colorPickerValue = this.ngControl.control?.value;\n this.cdr.markForCheck();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <div class=\"flex w-full\">\n\n <input class=\"w-full mr-2\"\n type=\"text\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [formControl]=\"ngControl.control\"\n [disabled]=\"disabled\"\n pInputText\n [value]=\"ngControl.control.value\"\n (input)=\"changeInput($event)\"/>\n\n <p-colorPicker [(ngModel)]=\"colorPickerValue\"\n format=\"hex\" [inline]=\"false\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n [baseZIndex]=\"99999\"\n (onChange)=\"changeColor()\">\n </p-colorPicker>\n </div>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-form-checkbox-item',\n templateUrl: './form-checkbox-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormCheckboxItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeCheck(value: any) {\n this.ngControl.control?.setValue(value.checked);\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value !== true && this.ngControl.control?.value !== false && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <div class=\"p-field-checkbox flex\">\n <p-checkbox\n class=\"align-self-start mt-1\"\n [name]=\"formTemplate.name\"\n [formControl]=\"ngControl.control\"\n [binary]=\"true\"\n [disabled]=\"disabled\"\n [inputId]=\"formTemplate.name\"\n [value]=\"ngControl.control.value\"\n (onChange)=\"changeCheck($event)\">\n </p-checkbox>\n\n <label class=\"mb-0 ml-2 onshore-color-gray-5\"\n [for]=\"formTemplate.name\">\n {{formTemplate.description}}\n </label>\n </div>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit,\n Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormAutocompleteItem, OnshoreFormTemplateItem } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-form-autocomplete-item',\n templateUrl: './form-autocomplete-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormAutocompleteItemComponent implements ControlValueAccessor, OnDestroy, OnInit, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() public multiple: boolean = false;\n @Input() public searchedData: OnshoreFormAutocompleteItem[] = [];\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() onSearch: EventEmitter<string> = new EventEmitter();\n @Output() onSelect: EventEmitter<OnshoreFormAutocompleteItem> = new EventEmitter();\n @Output() onClear: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n selected(selectedItem: OnshoreFormAutocompleteItem) {\n this.onSelect.emit(selectedItem.data);\n this.cdr.markForCheck();\n }\n\n searchClear() {\n this.searchedData = [];\n this.ngControl.reset();\n this.onClear.emit();\n }\n\n searchPrepare(term: any) {\n if(term.query != '') {\n this.search(term.query);\n }else{\n this.searchedData = [];\n this.ngControl.reset();\n this.onClear.emit();\n }\n }\n\n async search(searchTerm: string) {\n this.onSearch.emit(searchTerm);\n this.cdr.markForCheck();\n }\n\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef,\n @Self() @Optional() public ngControl: NgControl) {\n\n this.ngControl.valueAccessor = this;\n }\n\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <p-autoComplete [placeholder]=\"formTemplate.placeholder\"\n appendTo=\"body\"\n [formControl]=\"this.ngControl.control\"\n (onSelect)=\"selected($event)\"\n (onUnselect)=\"selected($event)\"\n (onClear)=\"searchClear()\"\n [suggestions]=\"searchedData\"\n (completeMethod)=\"searchPrepare($event)\"\n [disabled]=\"disabled\"\n [size]=\"30\"\n [minLength]=\"2\"\n [multiple]=\"multiple\"\n [delay]=\"1000\"\n [unique]=\"true\"\n field=\"firstLineLabel\"\n dataKey=\"data\"\n class=\"w-full\">\n <ng-template let-item pTemplate=\"item\">\n <div *ngIf=\"item.firstLineLabel\">\n <span class=\"mr-1\">\n <b>{{item.firstLineLabel}}</b><br>\n </span>\n </div>\n <div *ngIf=\"item.secondLineLabel\"><span>{{item.secondLineLabel}} </span></div>\n <div *ngIf=\"item.thirdLineLabel\"><span>{{item.thirdLineLabel}} </span></div>\n </ng-template>\n </p-autoComplete>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\n\n@Component({\n selector: 'onshore-form-datetime-item',\n templateUrl: './form-datetime-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormDatetimeItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n selectDate(date: any) {\n console.log(date);\n }\n\n selectTime(time: any) {\n console.log(time);\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value !== true && this.ngControl.control?.value !== false && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-calendar class=\"w-full\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? 0\"\n [disabled]=\"disabled\"\n [formControl]=\"ngControl.control\"\n dateFormat=\"dd.mm.yy\"\n dataType=\"string\"\n hourFormat=\"24\"\n [timeOnly]=\"formTemplate.type == OnshoreFormTemplateType.time ? true : false\"\n [showTime]=\"formTemplate.type == OnshoreFormTemplateType.datetime ? true : false\"\n [defaultDate]=\"formTemplate.default\"\n (onSelect)=\"selectDate($event)\"\n appendTo=\"body\">\n </p-calendar>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\n\n@Component({\n selector: 'onshore-form-sort-item',\n templateUrl: './form-sort-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormSortItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n sortItems?: any[] = [];\n tempLockValue?: any[] = [];\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n disabled: boolean = false;\n\n sortItemsChanged(event: any[]) {\n this.sortItems = event;\n this.ngControl?.control?.setValue(event);\n this.ngControl?.control?.markAsDirty();\n this.cdr.markForCheck();\n }\n\n lockChanged(unlocked: boolean) {\n if(unlocked && this.formTemplate.enabled) {\n this.tempLockValue = this.ngControl?.control.value;\n } else {\n this.ngControl?.control.setValue(this.tempLockValue);\n this.sortItems = this.tempLockValue;\n this.tempLockValue = null;\n }\n this.cdr.markForCheck();\n }\n\n // ControlValueAccessor interface\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n\n registerOnTouched(fn: any): void {}\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.sortItems = this.formTemplate.default;\n } else {\n this.sortItems = this.ngControl.control?.value;\n }\n this.cdr.markForCheck();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\"\n (lockIsChanged)=\"lockChanged($event)\">\n\n <div *ngIf=\"formTemplate.type == OnshoreFormTemplateType.sort\"\n class=\"w-full\" [dragula]=\"ngControl.enabled\"\n [dragulaModel]=\"sortItems\"\n (dragulaModelChange)=\"sortItemsChanged($event)\">\n <div [class.cursor-move]=\"ngControl.enabled\"\n style=\"border-radius: 3px\"\n class=\"onshore-sort-item flex justify-content-between align-items-center onshore-border-gray-4 border-solid border-1 p-2 mb-2 onshore-background-color-white\" *ngFor=\"let item of sortItems\">\n <span [class.onshore-color-blocked]=\"!ngControl.enabled\">{{ item.label }}</span>\n <i [class.onshore-color-blocked]=\"!ngControl.enabled\" class=\"fa fa-arrows-v\"></i>\n </div>\n </div>\n\n</onshore-form-item-container>\n\n","import { NgModule } from '@angular/core';\nimport { OnshoreFormsComponent } from './onshore-forms.component';\nimport { OnshoreFormsService } from './onshore-forms.service';\nimport { OnshoreFormInputItemComponent } from './components/form-input-item/form-input-item.component';\nimport { OnshoreFormSwitchItemComponent } from './components/form-switch-item/form-switch-item.component';\nimport { OnshoreFormValidationOutputComponent } from './components/form-validation-output/form-validation-output.component';\nimport { OnshoreFormImageItemComponent } from './components/form-image-item/form-image-item.component';\nimport { OnshoreFormDropdownItemComponent } from './components/form-dropdown-item/form-dropdown-item.component';\nimport { OnshoreFormColorpickerItemComponent } from './components/form-colorpicker-item/form-colorpicker-item.component';\nimport { OnshoreFormCheckboxItemComponent } from './components/form-checkbox-item/form-checkbox-item.component';\nimport { OnshoreFormAutocompleteItemComponent } from './components/form-autocomplete-item/form-autocomplete-item.component';\nimport { OnshoreFormItemContainer } from './components/form-item-container/form-item-container.component';\nimport { OnshoreFormDatetimeItemComponent } from './components/form-datetime-item/form-datetime-item.component';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ColorPickerModule } from 'primeng/colorpicker';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { DialogModule } from 'primeng/dialog';\nimport { CommonModule } from '@angular/common';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\nimport { CalendarModule } from 'primeng/calendar';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { OnshoreImagePlaceholderComponent } from './components/image-placeholder/image-placeholder.component';\nimport { OnshoreImageChooserComponent } from './components/image-chooser/image-chooser.component';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { WebcamModule } from 'ngx-webcam';\nimport { WebcamComponent } from './components/webcam/webcam.component';\nimport { OnshoreFormSortItemComponent } from './components/form-sort-item/form-sort-item.component';\nimport { DragulaModule } from 'ng2-dragula';\n\n\n@NgModule({\n declarations: [\n OnshoreFormsComponent,\n OnshoreImagePlaceholderComponent,\n OnshoreFormInputItemComponent,\n OnshoreFormSwitchItemComponent,\n OnshoreFormValidationOutputComponent,\n OnshoreFormImageItemComponent,\n OnshoreFormDropdownItemComponent,\n OnshoreFormColorpickerItemComponent,\n OnshoreFormCheckboxItemComponent,\n OnshoreFormAutocompleteItemComponent,\n OnshoreFormItemContainer,\n OnshoreFormDatetimeItemComponent,\n OnshoreImageChooserComponent,\n OnshoreFormSortItemComponent,\n WebcamComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonModule,\n RippleModule,\n AutoCompleteModule,\n CheckboxModule,\n ColorPickerModule,\n DropdownModule,\n MultiSelectModule,\n TooltipModule,\n InputNumberModule,\n InputSwitchModule,\n InputTextModule,\n InputTextareaModule,\n DialogModule,\n SelectButtonModule,\n ToggleButtonModule,\n CalendarModule,\n TranslateModule,\n ImageCropperModule,\n DragulaModule.forRoot(),\n WebcamModule\n ],\n exports: [\n OnshoreFormsComponent,\n OnshoreImagePlaceholderComponent,\n OnshoreFormInputItemComponent,\n OnshoreFormSwitchItemComponent,\n OnshoreFormValidationOutputComponent,\n OnshoreFormImageItemComponent,\n OnshoreFormDropdownItemComponent,\n OnshoreFormColorpickerItemComponent,\n OnshoreFormCheckboxItemComponent,\n OnshoreFormAutocompleteItemComponent,\n OnshoreFormItemContainer,\n OnshoreFormDatetimeItemComponent,\n OnshoreImageChooserComponent,\n OnshoreFormSortItemComponent,\n WebcamComponent\n ],\n providers: [\n OnshoreFormsService,\n DialogService\n ]\n})\nexport class OnshoreFormsModule { }\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport class OnshoreValidators {\n static slug: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^[A-Za-z0-9\\._-]{2,20}$/.test(control.value) ? null : { slug: true };\n }\n\n static numeric: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^[0-9]*$/.test(control.value) ? null : { numeric: true };\n }\n\n static email: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$/.test(control.value) ? null : { email: true };\n }\n\n static cleanComment: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /[A-Z]{5}\\d{4}[A-Z]{1}/.test(control.value) ? null : { cleanComment: true };\n }\n}\n","/*\n * Public API Surface of onshore-forms\n */\n\nexport * from './lib/onshore-forms.service';\nexport * from './lib/onshore-forms.component';\nexport * from './lib/onshore-forms.module';\nexport * from './lib/enums/form.enums';\nexport * from './lib/models/form.models';\nexport * from './lib/validators/form.validators';\nexport * from './lib/components/form-autocomplete-item/form-autocomplete-item.component';\nexport * from './lib/components/form-checkbox-item/form-checkbox-item.component';\nexport * from './lib/components/form-colorpicker-item/form-colorpicker-item.component';\nexport * from './lib/components/form-dropdown-item/form-dropdown-item.component';\nexport * from './lib/components/form-image-item/form-image-item.component';\nexport * from './lib/components/form-input-item/form-input-item.component';\nexport * from './lib/components/form-switch-item/form-switch-item.component';\nexport * from './lib/components/form-datetime-item/form-datetime-item.component';\nexport * from './lib/components/form-sort-item/form-sort-item.component';\nexport * from './lib/components/form-validation-output/form-validation-output.component';\nexport * from './lib/components/form-item-container/form-item-container.component';\nexport * from './lib/components/image-placeholder/image-placeholder.component';\nexport * from './lib/components/image-chooser/image-chooser.component';\nexport * from './lib/components/webcam/webcam.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i5.OnshoreFormValidationOutputComponent","i3","i4","i6.OnshoreFormItemContainer","i3.OnshoreFormItemContainer","i5","i6","i6.OnshoreImagePlaceholderComponent","i7.OnshoreFormItemContainer","i8.OnshoreImageChooserComponent","i9.WebcamComponent","i10","i5.OnshoreFormItemContainer","i4.OnshoreFormItemContainer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAY,IAAA,wBAqBX;AArBD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,uBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,uBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,uBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,uBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EArBW,uBAAuB,KAAvB,uBAAuB,GAqBlC,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,0BAIX;AAJD,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,yBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,yBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,yBAAyB,KAAzB,yBAAyB,GAIpC,EAAA,CAAA,CAAA,CAAA;AAEW,IAAA,kBAKX;AALD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,EAAS,CAAA;AACT,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,GAK5B,EAAA,CAAA,CAAA;;MCzBY,mBAAmB,CAAA;AAU9B,IAAA,WAAA,GAAA;AANA,QAAA,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;AAEhC,QAAA,IAAa,CAAA,aAAA,GAAwB,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,UAAU,GAAqB,IAAI,OAAO,EAAW,CAAC;AAG3D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KACzB;AAED,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED,IAAA,IAAW,UAAU,GAAA;;AACnB,QAAA,OAAO,MAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;KAC1B;AAEM,IAAA,SAAS,CAAC,KAAU,EAAA;;QACzB,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,CAAC,KAAK,CAAC,CAAC;KAC/B;IAEM,SAAS,GAAA;;AACd,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;AACpB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,sBAAsB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA0B,KAAI;YACxD,YAAY,CAAC,WAAW,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,KAAK,GAAG,IAAK,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAK,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,IAAY,EAAE,OAAA,GAAmB,KAAK,EAAA;;QAC5D,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,IAAI,CAAA,CAAE,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAG,OAAO,EAAE;YACV,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,IAAI,CAAA,CAAE,aAAa,EAAE,CAAC;YACtC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,IAAI,CAAA,CAAE,WAAW,EAAE,CAAC;AACrC,SAAA;QACD,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACpF;AAEM,IAAA,YAAY,CAAC,YAAuC,EAAA;AACzD,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAEM,IAAA,YAAY,CAAC,IAAY,EAAE,YAA0C,GAAA,IAAI,CAAC,aAAa,EAAA;AAC5F,QAAA,IAAI,QAAiC,CAAC;AAEtC,QAAA,IAAG,YAAY,EAAE;AACf,YAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAG,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,MAAM,CAAA,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAA,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7B,gBAAA,IAAG,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACrB,QAAQ,GAAG,IAAI,CAAC;AAChB,oBAAA,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;AACzB,iBAAA;qBAAK,IAAG,IAAI,CAAC,YAAY,EAAE;AAC1B,oBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACjE,oBAAA,IAAG,aAAa;wBAAE,QAAQ,GAAG,aAAa,CAAC;AAC5C,iBAAA;qBAAK,IAAG,IAAI,CAAC,aAAa,EAAE;AAC3B,oBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACnE,oBAAA,IAAG,cAAc;wBAAE,QAAQ,GAAG,cAAc,CAAC;AAC9C,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,OAAO,QAAS,CAAC;KAClB;AAEM,IAAA,WAAW,CAAC,IAAY,EAAE,SAA8B,GAAA,IAAI,CAAC,KAAK,EAAA;QACvE,OAAO,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,GAAG,CAAC,IAAI,CAAgB,CAAC;KAC5C;AAEM,IAAA,SAAS,CAAC,IAAY,EAAA;;QAC3B,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,0CAAE,GAAG,CAAC,IAAI,CAAc,CAAC;KAC3C;IAEM,SAAS,CAAC,IAAe,EAAE,IAAY,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAc,CAAC;KACpC;AAEM,IAAA,gBAAgB,CAAC,SAAoB,EAAE,IAA6B,EAAE,gBAA2C,IAAI,EAAA;;QAC1H,IAAI,YAAY,GAAQ,EAAE,CAAC;AAE3B,QAAA,IAAG,IAAI,EAAE;YACP,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,CAAC,OAAgC,KAAI;;AAC9D,gBAAA,IAAG,OAAO,CAAC,IAAI,IAAI,uBAAuB,CAAC,OAAO,EAAE;oBAClD,IAAI,IAAI,CAAC,YAAY,EAAE;wBACrB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/C,wBAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;wBACjE,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAc,CAAC,CAAC;AACxE,qBAAA;oBACD,IAAI,IAAI,CAAC,aAAa,EAAE;wBACtB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;wBAC/C,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAc,CAAC,CAAC;AACxE,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;AAChG,oBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;AACrC,oBAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAZ,YAAY,IAAK,OAAO,CAAC,OAAO,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE;AACnH,wBAAA,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;AACpC,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA,CAAC,CAAC;AACH,oBAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACrG,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;AAC9C,QAAA,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAE/B,QAAA,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE1B,QAAA,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;KAC1C;IAEM,mBAAmB,CAAC,IAAe,EAAE,KAAa,EAAA;AACvD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;IAEM,kBAAkB,CAAC,cAAwB,EAAE,EAAA;AAClD,QAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;KACrC;IAEM,MAAM,GAAA;QACX,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAA6B,KAAI;AAC3D,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACtB,SAAC,CAAC,CAAC;QACH,UAAU,CAAC,MAAK;;AACd,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;SACxD,EAAE,GAAG,CAAC,CAAC;KACT;IAEM,OAAO,GAAA;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAA6B,KAAI;AAC3D,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,SAAC,CAAC,CAAC;QACH,UAAU,CAAC,MAAK;;AACd,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;SACzD,EAAE,GAAG,CAAC,CAAC;KACT;IAEM,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAA;;AAC5C,QAAA,MAAM,MAAM,GAAO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAK,EAAA,KAAK,CAAC,CAAE;QACtE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC7C;AAEM,IAAA,SAAS,CAAC,QAA4B,EAAA;AAC3C,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,IAAG;AACpD,gBAAA,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC3C,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACjC,CAAC,CAAC,CAAC;AACN,SAAC,CAAC,CAAC;KACJ;IAEM,IAAI,CAAC,gBAAyB,IAAI,EAAA;QACvC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAA6B,KAAI;AAC3D,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,YAAA,IAAG,IAAI,CAAC,YAAY,IAAI,aAAa,EAAE;AACrC,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAE,OAAO,IAAG;AACnC,oBAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAEM,MAAM,GAAA;QACX,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAA6B,KAAI;AAC3D,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAG,IAAI,CAAC,YAAY,EAAE;AACpB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAE,OAAO,IAAG;AACnC,oBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;AACzB,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,iBAAiB,CAAC,IAAe,EAAE,YAAuC,EAAA;AACxE,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,IAA6B,KAAI;AACrD,YAAA,IAAG,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC,OAAO,EAAE;gBAChD,IAAG,IAAI,CAAC,YAAY,EAAE;AACpB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7C,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACzC,oBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAc,CAAC,CAAC;AACtE,iBAAA;gBACD,IAAG,IAAI,CAAC,aAAa,EAAE;AACrB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAc,EAAE,IAAI,CAAC,aAAa,CAAc,CAAC;AAC1H,oBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAc,CAAC,CAAC;AACtE,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE;AACzF,oBAAA,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;AACjC,oBAAA,QAAQ,EAAE,QAAQ;AACnB,iBAAA,CAAC,CAAC,CAAC;AACL,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,wBAAwB,CAAC,cAAyB,EAAA;AAChD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;;AACjE,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,MAAK;;AAClE,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC,CAAC;KACL;AAED,IAAA,wBAAwB,CAAC,cAAyB,EAAA;AAChD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;;AACjE,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,MAAK;;AAClE,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,sBAAsB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC,CAAC;KACL;;gHAjOU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCIY,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;kHALU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EARtB,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;MCMU,oCAAoC,CAAA;IAsB/C,WAAoB,CAAA,GAAsB,EACtB,SAA2B,EAAA;AAD3B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACtB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAnB/C,QAAA,IAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;KAqBlC;AAnBD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACpE,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAiB,CAAC,CAAC,OAAO,CAAC,KAAK,IAAG;;gBAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC,MAAM,CAAE,cAAc,IAAI,cAAc,IAAI,KAAK,CAAC,CAAC;AAC5G,gBAAA,IAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC;AAC3F,iBAAA;AAAM,qBAAA;oBACL,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAiB,CAAC,KAAK,CAAC,CAAC;AAClD,oBAAA,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,GAAG,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC;AACxG,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;iIApBU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,oCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,iLCdjD,yIAIA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDUa,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBALhD,SAAS;+BACE,gCAAgC,EAAA,eAAA,EAEzB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yIAAA,EAAA,CAAA;uIAGtC,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;MEIK,wBAAwB,CAAA;AAwHnC,IAAA,WAAA,CAAoB,GAAsB,EAAA;AAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AArHjC,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAI7C,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAG1B,QAAA,IAAyB,CAAA,yBAAA,GAAG,yBAAyB,CAAC;AAEtD,QAAA,IAAA,CAAA,MAAM,GAA8B,yBAAyB,CAAC,IAAI,CAAC;KA2GlE;AAzGD,IAAA,OAAO,CAAC,MAAe,EAAA;QACrB,UAAU,CAAC,MAAK;;AACZ,YAAA,IAAG,MAAM,EAAE;gBACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAClC,aAAA;AAAM,iBAAA;gBACL,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AACnC,aAAA;AACD,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC;AACxB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,WAAW,CAAC,QAAiB,EAAA;;AAC3B,QAAA,IAAG,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,aAAa,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,KAAK,CAAC;AACnD,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAGD,cAAc,GAAA;;QACZ,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,WAAW,CAAC;QACrE,IAAG,cAAc,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,yBAAyB,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,yBAAyB,CAAC,UAAU,EAAE;AAC9I,YAAA,IAAI,CAAC,MAAM,GAAG,yBAAyB,CAAC,UAAU,CAAC;AACnD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;QACD,IAAG,cAAc,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,yBAAyB,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,yBAAyB,CAAC,QAAQ,EAAE;AAC7I,YAAA,IAAI,CAAC,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC;AACjD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAED,QAAQ,GAAA;;AACN,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,CAAC,SAAS,CAAC,KAAK,IAAG;AACtD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;AACH,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,SAAS,CAAC,MAAM,IAAG;AACxD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAE3C,QAAA,IAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACtB,SAAA;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAEvC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB,EAAE,GAAG,CAAC,CAAC;KACT;IAED,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;QAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC;AAE1D,QAAA,IAAG,YAAY,EAAE;AAEf,YAAA,IAAG,CAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAb,aAAa,CAAE,OAAO,OAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,OAAO,CAAA,EAAE;gBACnD,IAAI,CAAC,OAAO,CAAC,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,OAAO,CAAC,CAAC;AACpC,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAC,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,YAAY,CAAE,OAAO,CAAA,CAAC;AACxC,aAAA;AAED,YAAA,IAAG,CAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAb,aAAa,CAAE,MAAM,OAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,MAAM,CAAA,EAAE;gBACjD,IAAG,YAAY,CAAC,MAAM,EAAE;AACtB,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpB,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACtB,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACnC,oBAAA,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;AACtC,iBAAA;AACF,aAAA;AAED,YAAA,IAAG,CAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAb,aAAa,CAAE,MAAM,OAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,MAAM,CAAA,EAAE;gBACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBACvC,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,aAAA;AAED,YAAA,IAAG,CAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAb,aAAa,CAAE,UAAU,OAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,UAAU,CAAA,EAAE;gBACzD,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,aAAA;AAED,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;;qHAtHU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,idCpBrC,m4GA8DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FD1Ca,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,6BAA6B,EAAA,eAAA,EAEtB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,m4GAAA,EAAA,CAAA;wGAGtC,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAEqB,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;gBAuC1B,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEjD9B,6BAA6B,CAAA;IAuCxC,WAAuC,CAAA,SAAoB,EACvC,GAAsB,EAAA;AADH,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACvC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAtCjC,QAAA,IAAI,CAAA,IAAA,GAAY,CAAC,CAAC;AAClB,QAAA,IAAG,CAAA,GAAA,GAAY,CAAC,CAAC;AACjB,QAAA,IAAG,CAAA,GAAA,GAAY,MAAM,CAAC;AACtB,QAAA,IAAS,CAAA,SAAA,GAAY,CAAC,CAAC;AACvB,QAAA,IAAS,CAAA,SAAA,GAAY,MAAM,CAAC;AAC5B,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAuB,CAAA,uBAAA,GAAG,uBAAuB,CAAC;AAElD,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AA2BxB,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KACrC;;IAzBD,UAAU,CAAC,GAAQ,EAAA,GAAU;IAC7B,gBAAgB,CAAC,EAAO,EAAA,GAAU;IAClC,iBAAiB,CAAC,EAAO,EAAA,GAAU;AACnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAED,QAAQ,GAAA;;AACN,QAAA,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,EAAE;AAChF,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;KACnC;;0HArCU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,uTCjB1C,ouGAwEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,KAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDvDa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAElB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ouGAAA,EAAA,CAAA;;;8BAyClC,IAAI;;8BAAI,QAAQ;;yBAtCpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;METI,8BAA8B,CAAA;IAyCzC,WAAuC,CAAA,SAAoB,EACvC,GAAsB,EAAA;AADH,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACvC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAxCjC,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,WAAW,GAA0B,IAAI,YAAY,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAoCxB,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KACrC;;IAlCD,UAAU,CAAC,GAAQ,EAAA,GAAU;IAC7B,gBAAgB,CAAC,EAAO,EAAA,GAAU;IAClC,iBAAiB,CAAC,EAAO,EAAA,GAAU;AACnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAGD,QAAQ,GAAA;;QACN,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,CAAC,IAAI,CACvC,YAAY,CAAC,GAAG,CAAC,EACjB,oBAAoB,EAAE,EACtB,IAAI,CAAC,CAAC,CAAC,CAAA,CACP,SAAS,CAAC,QAAQ,IAAG;;AACrB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC,CAAC;AACvD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,EAAE;AACvF,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;KACnC;;2HAvCU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,8PCjB3C,olBAaA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDIa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,0BAA0B,EAAA,eAAA,EAEnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,olBAAA,EAAA,CAAA;;;8BA2ClC,IAAI;;8BAAI,QAAQ;;yBAxCpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEfI,gCAAgC,CAAA;AAqB3C,IAAA,WAAA,GAAA;AAnBgB,QAAA,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAC7B,QAAA,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;AAC9B,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AACnB,QAAA,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;AAC9B,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAE3C,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;KAYJ;IAVhB,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;;6HAnBU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,iQCP7C,4rBASA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDFa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4rBAAA,EAAA,CAAA;0EAI/B,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;;;MEGK,4BAA4B,CAAA;AAyEvC,IAAA,WAAA,CAAoB,GAAsB,EAAA;AAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAvE1C,QAAA,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AACb,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAChB,QAAA,IAAc,CAAA,cAAA,GAAG,iBAAiB,CAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAsB,iBAAiB,CAAC,IAAI,CAAC;AAI7C,QAAA,IAAA,CAAA,OAAO,GAAyB,IAAI,YAAY,EAAE,CAAC;AACnD,QAAA,IAAA,CAAA,QAAQ,GAA0B,IAAI,YAAY,EAAE,CAAC;KA+D9D;IA7DD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC;KAC1C;AAEM,IAAA,UAAU,CAAC,KAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC;AACzC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;QAChD,MAAM,IAAI,GAA4B,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,KAAK,IAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAE9E,QAAA,IAAI,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,WAAW,IAAI,CAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,KAAI,YAAY,IAAI,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,KAAI,YAAY,EAAE;AACzF,YAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC;YAC7C,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,IAAI,IAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAC/C,YAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC;YACzC,OAAO;AACR,SAAA;AAED,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3B,YAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AAEnB,gBAAA,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC3C,gBAAA,GAAG,CAAC,MAAM,GAAG,MAAK;;AAEhB,oBAAA,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC;AAChC,oBAAA,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AAElC,oBAAA,IAAI,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AACtG,wBAAA,IAAI,CAAC,KAAK,GAAG,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,KAAI,EAAE,CAAC;AAC9C,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC;AAC3C,qBAAA;AACD,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAE1B,iBAAC,CAAA;AAEH,aAAC,CAAC;AACH,SAAA;KAIF;AAEM,IAAA,YAAY,CAAC,KAAwB,EAAA;;;QAG1C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;KACtC;IAEM,iBAAiB,GAAA;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;;yHAvEU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,gKCjBzC,++GA6EA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FD5Da,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,uBAAuB,EAAA,eAAA,EAEhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,++GAAA,EAAA,CAAA;wGAUtC,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MEVI,eAAe,CAAA;AAmC1B,IAAA,WAAA,CAAoB,GAAsB,EAAA;AAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AA/BhC,QAAA,IAAA,CAAA,IAAI,GAAyB,IAAI,YAAY,EAAE,CAAC;AAChD,QAAA,IAAA,CAAA,QAAQ,GAA0B,IAAI,YAAY,EAAE,CAAC;AAE/D,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAET,QAAA,IAAA,CAAA,OAAO,GAAkB,IAAI,OAAO,EAAQ,CAAC;KA0BnD;AAxBM,IAAA,YAAY,CAAC,WAAwB,EAAA;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAEM,IAAA,YAAY,CAAC,KAAwB,EAAA;;QAE1C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;KACtC;IAEM,iBAAiB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACjC;AAGD,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;KACpC;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;;4GAjCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,mJClB5B,g4EA2DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDzCa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g4EAAA,EAAA,CAAA;wGAItC,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MELI,6BAA6B,CAAA;AA0IxC,IAAA,WAAA,CAAmB,GAAsB,EACF,SAAoB,EACxC,aAA4B,EAAA;AAF5B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACF,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACxC,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAzItC,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,YAAY,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,UAAU,GAAyB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAA0B,IAAI,YAAY,EAAE,CAAC;AAEhE,QAAA,IAAyB,CAAA,yBAAA,GAAG,yBAAyB,CAAC;QAEtD,IAAA,CAAA,oBAAoB,GAA6B;AAC/C,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,wBAAwB,EAAE,KAAK;YAC/B,WAAW,EAAE,CAAC,GAAG,CAAC;AAClB,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,sBAAsB,EAAE,IAAI;AAC5B,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,eAAe,EAAE,oBAAoB;AACrC,YAAA,cAAc,EAAE,GAAG;AACnB,YAAA,eAAe,EAAE,GAAG;AACpB,YAAA,YAAY,EAAE,GAAG;AACjB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,mBAAmB,EAAE,GAAG;AACxB,YAAA,oBAAoB,EAAE,GAAG;AACzB,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,YAAY,EAAE,GAAG;AACjB,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,eAAe,EAAE,OAAO;SACzB,CAAC;AAEF,QAAA,IAAK,CAAA,KAAA,GAAkB,EAAE,CAAC;AAC1B,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;AACrC,QAAA,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;AAE3C,QAAA,IAAa,CAAA,aAAA,GAAwB,EAAE,CAAC;AAkGtC,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KACrC;AAjGD,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACvC,QAAA,IAAG,KAAK,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,UAAU,CAAC,MAAK;;AACd,gBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,EAAE,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aACzB,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAG,KAAK,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,UAAU,CAAC,MAAK;;AACd,gBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,EAAE,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aACzB,EAAE,GAAG,CAAC,CAAC;AACT,SAAA;KACF;IAED,WAAW,GAAA;;AACT,QAAA,IAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;QAED,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAEM,IAAA,UAAU,CAAC,GAAQ,EAAA;QACxB,IAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAClB,SAAA;QACD,IAAG,GAAG,IAAI,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,SAAA;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAEM,iBAAiB,CAAC,EAAO,EAAA,GAAU;AAEnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,QAAQ,GAAA;;QACN,IAAG,CAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,EAAE;AACjF,YAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAED,WAAW,GAAA;;QACT,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA0B,KAAI;YACxD,YAAY,CAAC,WAAW,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;QACH,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAChC,MAAM,aAAa,GAA6B,CAAA,EAAA,GAAA,OAAO,CAAC,eAAe,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,CAAC;AAEvF,QAAA,IAAI,CAAC,aAAa,GACb,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,oBAAoB,CAAA,EACzB,aAAa,CAAA,EAAA,EAChB,eAAe,EAAE,CAAA,aAAa,aAAb,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAb,aAAa,CAAE,gBAAgB,IAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,GAClG,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;0HAxIU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,2WClB1C,6wGA4EA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,cAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,gCAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FD1Da,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAElB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6wGAAA,EAAA,CAAA;;;8BA6IlC,IAAI;;8BAAI,QAAQ;;yBA1IpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MEVI,gCAAgC,CAAA;IAiE3C,WAAuC,CAAA,SAAoB,EACvC,GAAsB,EAAA;AADH,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACvC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAhEjC,QAAA,IAAQ,CAAA,QAAA,GAAwB,KAAK,CAAC;AACtC,QAAA,IAAS,CAAA,SAAA,GAAwB,KAAK,CAAC;AACvC,QAAA,IAAK,CAAA,KAAA,GAAwB,KAAK,CAAC;AACnC,QAAA,IAAc,CAAA,cAAA,GAAY,CAAC,CAAA;AAC3B,QAAA,IAAS,CAAA,SAAA,GAAY,CAAC,CAAC;AACvB,QAAA,IAAW,CAAA,WAAA,GAAY,EAAE,CAAC;AAC1B,QAAA,IAAgB,CAAA,gBAAA,GAAY,EAAE,CAAC;AAC/B,QAAA,IAAO,CAAA,OAAA,GAAY,EAAE,CAAC;AACtB,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAGrC,QAAA,IAAA,CAAA,WAAW,GAA0B,IAAI,YAAY,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAQ,CAAA,QAAA,GAAwB,KAAK,CAAC;AAmDpC,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KAErC;;AAlDM,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAG,GAAG,EAAE;AACN,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AACM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IACD,iBAAiB,CAAC,EAAO,EAAA,GAAU;AACnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAED,cAAc,GAAA;;QACZ,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;QAChC,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,QAAQ,GAAA;;QACN,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,KAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClG,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAED,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;KACnC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAChC,MAAM,cAAc,GAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,mCAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,cAAc,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC;QAC3G,MAAM,eAAe,GAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,mCAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,cAAc,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC;AAE9G,QAAA,IAAG,CAAC,IAAI,CAAC,OAAO,IAAI,cAAc,EAAE;AAClC,YAAA,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;AAC/B,SAAA;AAED,QAAA,IAAG,CAAA,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,MAAM,IAAG,CAAC,IAAI,cAAc,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpF,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAE,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAgC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC,CAAC;AAC1F,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;6HA/DU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAb,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,keCjB7C,o1DA0CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,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,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,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,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,WAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDzBa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,4BAA4B,EAAA,eAAA,EAErB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,o1DAAA,EAAA,CAAA;;;8BAmElC,IAAI;;8BAAI,QAAQ;;yBAhEpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEhBI,mCAAmC,CAAA;IA0C9C,WAAuC,CAAA,SAAoB,EACvC,GAAsB,EAAA;AADH,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACvC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAzCjC,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAC1B,QAAA,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;AAqCpB,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KACrC;;IAnCD,UAAU,CAAC,GAAQ,EAAA,GAAU;IAC7B,gBAAgB,CAAC,EAAO,EAAA,GAAU;IAClC,iBAAiB,CAAC,EAAO,EAAA,GAAU;AACnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAED,WAAW,GAAA;;AACT,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACzD;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;;QACpB,IAAI,CAAC,gBAAgB,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;KAC7C;IAED,QAAQ,GAAA;;AACN,QAAA,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,EAAE;AAChF,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAClD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAED,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;KACnC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAChC,IAAI,CAAC,gBAAgB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;gIAxCU,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,uOCfhD,8/BAyBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDVa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,SAAS;+BACE,+BAA+B,EAAA,eAAA,EAExB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8/BAAA,EAAA,CAAA;;;8BA4ClC,IAAI;;8BAAI,QAAQ;;yBAzCpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEHI,gCAAgC,CAAA;IAmC3C,WAAuC,CAAA,SAAoB,EACvC,GAAsB,EAAA;AADH,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACvC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAlCjC,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AA+BxB,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KACrC;;IA7BD,UAAU,CAAC,GAAQ,EAAA,GAAU;IAC7B,gBAAgB,CAAC,EAAO,EAAA,GAAU;IAClC,iBAAiB,CAAC,EAAO,EAAA,GAAU;AACnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;;AACpB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACjD;IAED,QAAQ,GAAA;;AACN,QAAA,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAK,IAAI,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,MAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,EAAE;AAC9H,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;KACnC;;6HAjCU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAf,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,oOChB7C,80BAwBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDRa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,4BAA4B,EAAA,eAAA,EAErB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,80BAAA,EAAA,CAAA;;;8BAqClC,IAAI;;8BAAI,QAAQ;;yBAlCpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MELI,oCAAoC,CAAA;IAwE/C,WAAoB,CAAA,GAAsB,EACH,SAAoB,EAAA;AADvC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACH,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAvE3C,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAC1B,QAAA,IAAY,CAAA,YAAA,GAAkC,EAAE,CAAC;AACxD,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,QAAQ,GAAyB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAA8C,IAAI,YAAY,EAAE,CAAC;AACzE,QAAA,IAAA,CAAA,OAAO,GAA0B,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAgExB,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KACrC;AA/DD,IAAA,QAAQ,CAAC,YAAyC,EAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,IAAG,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,SAAA;AAAI,aAAA;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACrB,SAAA;KACF;AAEK,IAAA,MAAM,CAAC,UAAkB,EAAA;;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB,CAAA,CAAA;AAAA,KAAA;AAEM,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAG,GAAG,EAAE;AACN,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAEM,iBAAiB,CAAC,EAAO,EAAA,GAAU;AAEnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAED,QAAQ,GAAA;;AACN,QAAA,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,EAAE;AAChF,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAED,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;KACnC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;iIAtEU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,oCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,4VCfjD,m9CAgCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDjBa,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBALhD,SAAS;+BACE,gCAAgC,EAAA,eAAA,EAEzB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,m9CAAA,EAAA,CAAA;;;8BA2ElC,IAAI;;8BAAI,QAAQ;;yBAxEpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEPI,gCAAgC,CAAA;IAyC3C,WAAuC,CAAA,SAAoB,EACvC,GAAsB,EAAA;AADH,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACvC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAxCjC,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAuB,CAAA,uBAAA,GAAG,uBAAuB,CAAC;AAElD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAmCxB,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KACrC;;IAjCD,UAAU,CAAC,GAAQ,EAAA,GAAU;IAC7B,gBAAgB,CAAC,EAAO,EAAA,GAAU;IAClC,iBAAiB,CAAC,EAAO,EAAA,GAAU;AACnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACnB;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACnB;IAED,QAAQ,GAAA;;AACN,QAAA,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAK,IAAI,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,MAAK,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,EAAE;AAC9H,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;KACnC;;6HAvCU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAd,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,oOCjB7C,s+BAqBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,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,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,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,MAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,QAAA,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,WAAA,EAAA,IAAA,EAAAK,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDJa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,4BAA4B,EAAA,eAAA,EAErB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,s+BAAA,EAAA,CAAA;;;8BA2ClC,IAAI;;8BAAI,QAAQ;;yBAxCpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEJI,4BAA4B,CAAA;IAoEvC,WAAuC,CAAA,SAAoB,EACvC,GAAsB,EAAA;AADH,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACvC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAnEjC,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAErC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACvB,QAAA,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAE3B,QAAA,IAAuB,CAAA,uBAAA,GAAG,uBAAuB,CAAC;AAElD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AA2DxB,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;KACrC;AA1DD,IAAA,gBAAgB,CAAC,KAAY,EAAA;;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,QAAiB,EAAA;;AAC3B,QAAA,IAAG,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,aAAa,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,KAAK,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;AACpC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;AAGM,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAG,GAAG,EAAE;AACN,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAED,iBAAiB,CAAC,EAAO,EAAA,GAAU;AAEnC,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAED,QAAQ,GAAA;;AACN,QAAA,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,SAAS,EAAE;AAChF,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAC5C,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;AAChD,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;;QACT,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;KACnC;;yHAlEU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,gOCjBzC,mlCAoBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDHa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,wBAAwB,EAAA,eAAA,EAEjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mlCAAA,EAAA,CAAA;;;8BAsElC,IAAI;;8BAAI,QAAQ;;yBAnEpB,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEsFI,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBA/D3B,qBAAqB;QACrB,gCAAgC;QAChC,6BAA6B;QAC7B,8BAA8B;QAC9B,oCAAoC;QACpC,6BAA6B;QAC7B,gCAAgC;QAChC,mCAAmC;QACnC,gCAAgC;QAChC,oCAAoC;QACpC,wBAAwB;QACxB,gCAAgC;QAChC,4BAA4B;QAC5B,4BAA4B;AAC5B,QAAA,eAAe,aAGf,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,YAAY;QACZ,YAAY;QACZ,kBAAkB;QAClB,cAAc;QACd,iBAAiB;QACjB,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,iBAAiB;QACjB,iBAAiB;QACjB,eAAe;QACf,mBAAmB;QACnB,YAAY;QACZ,kBAAkB;QAClB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,kBAAkB,EAAAf,IAAA,CAAA,aAAA,EAElB,YAAY,CAAA,EAAA,OAAA,EAAA,CAGZ,qBAAqB;QACrB,gCAAgC;QAChC,6BAA6B;QAC7B,8BAA8B;QAC9B,oCAAoC;QACpC,6BAA6B;QAC7B,gCAAgC;QAChC,mCAAmC;QACnC,gCAAgC;QAChC,oCAAoC;QACpC,wBAAwB;QACxB,gCAAgC;QAChC,4BAA4B;QAC5B,4BAA4B;QAC5B,eAAe,CAAA,EAAA,CAAA,CAAA;AAON,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EALlB,SAAA,EAAA;QACT,mBAAmB;QACnB,aAAa;KACd,EAAA,OAAA,EAAA,CA5CC,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,YAAY;QACZ,YAAY;QACZ,kBAAkB;QAClB,cAAc;QACd,iBAAiB;QACjB,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,iBAAiB;QACjB,iBAAiB;QACjB,eAAe;QACf,mBAAmB;QACnB,YAAY;QACZ,kBAAkB;QAClB,kBAAkB;QAClB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,aAAa,CAAC,OAAO,EAAE;QACvB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAwBH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjE9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,gCAAgC;wBAChC,6BAA6B;wBAC7B,8BAA8B;wBAC9B,oCAAoC;wBACpC,6BAA6B;wBAC7B,gCAAgC;wBAChC,mCAAmC;wBACnC,gCAAgC;wBAChC,oCAAoC;wBACpC,wBAAwB;wBACxB,gCAAgC;wBAChC,4BAA4B;wBAC5B,4BAA4B;wBAC5B,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,YAAY;wBACZ,YAAY;wBACZ,kBAAkB;wBAClB,cAAc;wBACd,iBAAiB;wBACjB,cAAc;wBACd,iBAAiB;wBACjB,aAAa;wBACb,iBAAiB;wBACjB,iBAAiB;wBACjB,eAAe;wBACf,mBAAmB;wBACnB,YAAY;wBACZ,kBAAkB;wBAClB,kBAAkB;wBAClB,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,aAAa,CAAC,OAAO,EAAE;wBACvB,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,gCAAgC;wBAChC,6BAA6B;wBAC7B,8BAA8B;wBAC9B,oCAAoC;wBACpC,6BAA6B;wBAC7B,gCAAgC;wBAChC,mCAAmC;wBACnC,gCAAgC;wBAChC,oCAAoC;wBACpC,wBAAwB;wBACxB,gCAAgC;wBAChC,4BAA4B;wBAC5B,4BAA4B;wBAC5B,eAAe;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,mBAAmB;wBACnB,aAAa;AACd,qBAAA;iBACF,CAAA;;;MCxGY,iBAAiB,CAAA;;AACrB,iBAAA,CAAA,IAAI,GAAgB,CAAC,OAAwB,KAA6B;IAC/E,OAAO,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC/E,CAAC,CAAA;AAEM,iBAAA,CAAA,OAAO,GAAgB,CAAC,OAAwB,KAA6B;IAClF,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACnE,CAAC,CAAA;AAEM,iBAAA,CAAA,KAAK,GAAgB,CAAC,OAAwB,KAA6B;IAChF,OAAO,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC5F,CAAC,CAAA;AAEM,iBAAA,CAAA,YAAY,GAAgB,CAAC,OAAwB,KAA6B;IACvF,OAAO,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACrF,CAAC;;ACjBH;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"onshore-forms.mjs","sources":["../../../projects/onshore-forms/src/lib/enums/form.enums.ts","../../../projects/onshore-forms/src/lib/onshore-forms.service.ts","../../../projects/onshore-forms/src/lib/onshore-forms.component.ts","../../../projects/onshore-forms/src/lib/components/form-validation-output/form-validation-output.component.ts","../../../projects/onshore-forms/src/lib/components/form-validation-output/form-validation-output.component.html","../../../projects/onshore-forms/src/lib/components/form-item-container/form-item-container.component.ts","../../../projects/onshore-forms/src/lib/components/form-item-container/form-item-container.component.html","../../../projects/onshore-forms/src/lib/components/form-input-item/form-input-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-input-item/form-input-item.component.html","../../../projects/onshore-forms/src/lib/components/form-switch-item/form-switch-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-switch-item/form-switch-item.component.html","../../../projects/onshore-forms/src/lib/components/image-placeholder/image-placeholder.component.ts","../../../projects/onshore-forms/src/lib/components/image-placeholder/image-placeholder.component.html","../../../projects/onshore-forms/src/lib/components/image-chooser/image-chooser.component.ts","../../../projects/onshore-forms/src/lib/components/image-chooser/image-chooser.component.html","../../../projects/onshore-forms/src/lib/components/webcam/webcam.component.ts","../../../projects/onshore-forms/src/lib/components/webcam/webcam.component.html","../../../projects/onshore-forms/src/lib/components/form-image-item/form-image-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-image-item/form-image-item.component.html","../../../projects/onshore-forms/src/lib/components/form-dropdown-item/form-dropdown-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-dropdown-item/form-dropdown-item.component.html","../../../projects/onshore-forms/src/lib/components/form-colorpicker-item/form-colorpicker-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-colorpicker-item/form-colorpicker-item.component.html","../../../projects/onshore-forms/src/lib/components/form-checkbox-item/form-checkbox-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-checkbox-item/form-checkbox-item.component.html","../../../projects/onshore-forms/src/lib/components/form-autocomplete-item/form-autocomplete-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-autocomplete-item/form-autocomplete-item.component.html","../../../projects/onshore-forms/src/lib/components/form-datetime-item/form-datetime-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-datetime-item/form-datetime-item.component.html","../../../projects/onshore-forms/src/lib/components/form-sort-item/form-sort-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-sort-item/form-sort-item.component.html","../../../projects/onshore-forms/src/lib/onshore-forms.module.ts","../../../projects/onshore-forms/src/lib/validators/form.validators.ts","../../../projects/onshore-forms/src/public-api.ts","../../../projects/onshore-forms/src/onshore-forms.ts"],"sourcesContent":["export enum OnshoreFormTemplateType {\r\n text = 'text',\r\n textarea = 'textarea',\r\n editor = 'editor',\r\n password = 'password',\r\n number = 'number',\r\n email = 'email',\r\n phone = 'phone',\r\n regexp = 'regexp',\r\n select = 'select',\r\n switch = 'switch',\r\n check = 'check',\r\n radio = 'radio',\r\n image = 'image',\r\n autocomplete = 'autocomplete',\r\n color = 'color',\r\n date = 'date',\r\n time = 'time',\r\n datetime = 'datetime',\r\n sort = 'sort',\r\n subform = 'subform'\r\n}\r\n\r\nexport enum OnshoreFormTemplateLayout {\r\n vertical = 'vertical',\r\n horizontal = 'horizontal',\r\n auto = 'auto'\r\n}\r\n\r\nexport enum OnshoreImageError {\r\n none = '',\r\n fileType = 'fileType',\r\n ratio = 'ratio',\r\n size = 'size',\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { OnshoreFormTemplateType } from './enums/form.enums';\nimport { OnshoreFormArrayDefault, OnshoreFormTemplateItem } from './models/form.models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnshoreFormsService {\n\n _form: FormGroup;\n _formTemplate: OnshoreFormTemplateItem[];\n _formValidations: string[] = [];\n\n subscriptions: Array<Subscription> = [];\n\n public isLoading$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n this._form = new FormGroup({}, {updateOn: 'change'});\n this._formTemplate = [];\n }\n\n public get form(): FormGroup {\n return this._form;\n }\n\n public get formValues() {\n return this._form?.value;\n }\n\n public patchForm(value: any) {\n this._form?.patchValue(value);\n }\n\n public resetForm() {\n this._form?.reset();\n this._form?.updateValueAndValidity({ onlySelf: false, emitEvent: true });\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n\n this._form = null!;\n this._formTemplate = null!;\n }\n\n public resetFormControl(name: string, touched: boolean = false) {\n this._form?.get(name).reset();\n if(touched) {\n this._form?.get(name).markAsTouched();\n this._form?.get(name).markAsDirty();\n }\n this._form?.get(name).updateValueAndValidity({ onlySelf: false, emitEvent: true });\n }\n\n public generateForm(formTemplate: OnshoreFormTemplateItem[]): FormGroup | null {\n this._formTemplate = formTemplate;\n this._form = new FormGroup({}, {updateOn: 'change'});\n this._form = this.iterateNestedForm(this._form, formTemplate);\n return this._form;\n }\n\n public formTemplate(name: string, formTemplate: OnshoreFormTemplateItem[] = this._formTemplate): OnshoreFormTemplateItem {\n let template: OnshoreFormTemplateItem;\n\n if(formTemplate) {\n for(let i = 0; i < formTemplate?.length; i++) {\n const item = formTemplate[i];\n if(item.name === name) {\n template = item;\n i = formTemplate.length;\n }else if(item.subformArray) {\n const arrayTemplate = this.formTemplate(name, item.subformArray);\n if(arrayTemplate) template = arrayTemplate;\n }else if(item.subformObject) {\n const objectTemplate = this.formTemplate(name, item.subformObject);\n if(objectTemplate) template = objectTemplate;\n }\n }\n }\n\n return template!;\n }\n\n public formControl(name: string, formGroup: FormGroup | null = this._form): FormControl {\n return formGroup?.get(name) as FormControl;\n }\n\n public formArray(name: string): FormArray {\n return this._form?.get(name) as FormArray;\n }\n\n public formGroup(form: FormGroup, name: string): FormGroup {\n return form.get(name) as FormGroup;\n }\n\n public addFormArrayItem(formArray: FormArray, item: OnshoreFormTemplateItem, defaultValues: OnshoreFormArrayDefault[] = null) {\n let formControls = <any>{};\n\n if(item) {\n item.subformArray?.forEach((subitem: OnshoreFormTemplateItem) => {\n if(subitem.type == OnshoreFormTemplateType.subform) {\n if (item.subformArray) {\n formControls[subitem.name] = new FormArray([]);\n formControls[subitem.name].setParent(formControls[subitem.name]);\n this.subscribeNestedFormArray(formControls[subitem.name] as FormArray);\n }\n if (item.subformObject) {\n formControls[subitem.name] = new FormGroup({});\n this.subscribeNestedFormGroup(formControls[subitem.name] as FormGroup);\n }\n } else {\n const defaultValue = defaultValues?.find(value => value.name === subitem.name)?.value;\n if(defaultValue) subitem.default = defaultValue.value;\n\n formControls[subitem.name] = new FormControl(defaultValue ?? (subitem.default !== undefined ? subitem.default : ''), {\n validators: subitem.validators || [],\n updateOn: 'change'\n });\n formControls[subitem.name].updateValueAndValidity({ onlySelf: false, emitEvent: true });\n }\n });\n }\n\n const formGroup = new FormGroup(formControls);\n formGroup.setParent(formArray);\n\n formArray.push(formGroup);\n\n this.subscribeNestedFormGroup(formGroup);\n }\n\n public removeFormArrayItem(form: FormArray, index: number) {\n form.removeAt(index);\n }\n\n public setFormValidations(validations: string[] = []) {\n this._formValidations = validations;\n }\n\n public enable() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.enabled = true;\n });\n setTimeout(() => {\n this._form?.enable({onlySelf: true, emitEvent: false});\n }, 100);\n }\n\n public disable() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.enabled = false;\n });\n setTimeout(() => {\n this._form?.disable({onlySelf: true, emitEvent: false});\n }, 100);\n }\n\n public setError(control: string, error: Object) {\n const errors = {...this.formControl(control).errors ?? {}, ...error} ;\n this.formControl(control).setErrors(errors);\n }\n\n public setLoader(loaders$: Subject<boolean>[]) {\n loaders$.forEach($loader => {\n this.subscriptions.push($loader.subscribe(isLoading => {\n isLoading ? this.disable() : this.enable();\n this.isLoading$.next(isLoading);\n }));\n });\n }\n\n public lock(lockSubfields: boolean = true) {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.locked = true;\n if(item.subformArray && lockSubfields) {\n item.subformArray.forEach( subitem => {\n subitem.locked = true;\n });\n }\n });\n }\n\n public unlock() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.locked = false;\n if(item.subformArray) {\n item.subformArray.forEach( subitem => {\n subitem.locked = false;\n });\n }\n });\n }\n\n iterateNestedForm(form: FormGroup, formTemplate: OnshoreFormTemplateItem[]): any {\n formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n if(item.type === OnshoreFormTemplateType.subform) {\n if(item.subformArray) {\n form.controls[item.name] = new FormArray([]);\n form.controls[item.name].setParent(form);\n this.subscribeNestedFormArray(form.controls[item.name] as FormArray);\n }\n if(item.subformObject) {\n form.controls[item.name] = new FormGroup({});\n form.controls[item.name] = this.iterateNestedForm(form.controls[item.name] as FormGroup, item.subformObject) as FormGroup;\n this.subscribeNestedFormGroup(form.controls[item.name] as FormGroup);\n }\n } else {\n form.addControl(item.name, new FormControl(item.default !== undefined ? item.default : '', {\n validators: item.validators || [],\n updateOn: 'change'\n }));\n }\n });\n return form;\n }\n\n subscribeNestedFormArray(nestedFormItem: FormArray) {\n this.subscriptions.push(nestedFormItem.valueChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n this.subscriptions.push(nestedFormItem.statusChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n }\n\n subscribeNestedFormGroup(nestedFormItem: FormGroup) {\n this.subscriptions.push(nestedFormItem.valueChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n this.subscriptions.push(nestedFormItem.statusChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-onshore-forms',\n template: `\n <p>\n onshore-forms works!\n </p>\n `,\n styles: [\n ]\n})\nexport class OnshoreFormsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input, OnChanges, SimpleChanges\n} from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'onshore-form-validation-output',\n templateUrl: './form-validation-output.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormValidationOutputComponent implements OnChanges {\n @Input() validationErrors!: ValidationErrors | null;\n @Input() validationItems!: string[];\n\n validationTranslation: string = '';\n\n ngOnChanges(changes: SimpleChanges) {\n this.validationTranslation = '';\n if(changes['validationErrors'].currentValue && this.validationErrors) {\n Object.keys(this.validationErrors!).forEach(error => {\n const exists = Object.values(this.validationItems ?? []).filter( validationItem => validationItem == error);\n if(exists && exists.length > 0) {\n this.validationTranslation += this.translate.instant('form.validation.' + error) + '<br>';\n } else {\n const errorValues = this.validationErrors![error];\n this.validationTranslation += this.translate.instant('form.validation.' + error, errorValues) + '<br>';\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef,\n private translate: TranslateService,) {\n\n }\n}\n","<small class=\"onshore-color-danger\"\n *ngIf=\"validationTranslation\"\n [innerHTML]=\"validationTranslation\">\n</small>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, ElementRef, EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit, Output,\n SimpleChanges, ViewChild\n} from '@angular/core';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateLayout } from '../../enums/form.enums';\nimport { NgControl } from '@angular/forms';\n\n@Component({\n selector: 'onshore-form-item-container',\n templateUrl: './form-item-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormItemContainer implements OnInit, OnChanges, AfterViewInit {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() ngControl!: NgControl;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n @Output() lockIsChanged = new EventEmitter();\n\n @ViewChild('formContainer') formContainer!: ElementRef;\n\n disabled: boolean = false;\n tempLockValue: any;\n\n OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;\n\n layout: OnshoreFormTemplateLayout = OnshoreFormTemplateLayout.auto;\n\n enabled(enable: boolean) {\n setTimeout(() => {\n if(enable) {\n this.ngControl?.control.enable();\n } else {\n this.ngControl?.control.disable();\n }\n this.disabled = !enable;\n this.cdr.markForCheck();\n }, 100);\n }\n\n lockChanged(unlocked: boolean) {\n if(unlocked && this.formTemplate.enabled) {\n this.tempLockValue = this.ngControl?.control.value;\n this.enabled(true);\n this.disabled = false;\n this.lockIsChanged.emit(unlocked);\n } else {\n this.enabled(false);\n this.disabled = true;\n this.ngControl?.control.setValue(this.tempLockValue);\n this.tempLockValue = null;\n this.lockIsChanged.emit(unlocked);\n }\n\n this.cdr.markForCheck();\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize() {\n const conatinerWidth = this.formContainer?.nativeElement.offsetWidth;\n if(conatinerWidth > 500 && this.formTemplate.layout === OnshoreFormTemplateLayout.auto && this.layout !== OnshoreFormTemplateLayout.horizontal) {\n this.layout = OnshoreFormTemplateLayout.horizontal;\n this.cdr.markForCheck();\n }\n if(conatinerWidth <= 500 && this.formTemplate.layout === OnshoreFormTemplateLayout.auto && this.layout !== OnshoreFormTemplateLayout.vertical) {\n this.layout = OnshoreFormTemplateLayout.vertical;\n this.cdr.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.ngControl?.control?.valueChanges.subscribe(value => {\n this.cdr.markForCheck();\n });\n this.ngControl?.control?.statusChanges.subscribe(status => {\n this.cdr.markForCheck();\n });\n\n this.enabled(this.formTemplate.enabled);\n this.disabled = !this.formTemplate.enabled;\n\n if(this.formTemplate.locked) {\n this.enabled(false);\n this.disabled = true;\n }\n\n this.layout = this.formTemplate.layout;\n\n setTimeout(() => {\n this.cdr.markForCheck();\n }, 100);\n }\n\n ngAfterViewInit() {\n this.onWindowResize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const previousValue = changes['formTemplate'].previousValue;\n const currentValue = changes['formTemplate'].currentValue;\n\n if(currentValue) {\n\n if(previousValue?.enabled !== currentValue?.enabled) {\n this.enabled(currentValue?.enabled);\n this.disabled = !currentValue?.enabled;\n }\n\n if(previousValue?.locked !== currentValue?.locked) {\n if(currentValue.locked) {\n this.enabled(false);\n this.disabled = true;\n } else {\n this.enabled(currentValue.enabled);\n this.disabled = currentValue.enabled;\n }\n }\n\n if(previousValue?.layout !== currentValue?.layout) {\n this.layout = this.formTemplate.layout;\n this.onWindowResize();\n }\n\n if(previousValue?.labelStyle !== currentValue?.labelStyle) {\n this.onWindowResize();\n }\n\n this.cdr.markForCheck();\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n\n }\n}\n","<div [class.mb-4]=\"!formTemplate.noGap\" #formContainer>\n <div class=\"flex w-full\"\n [class.flex-column]=\"layout == OnshoreFormTemplateLayout.vertical\"\n [class.flex-row]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.justify-content-between]=\"layout == OnshoreFormTemplateLayout.horizontal\">\n\n <div #formLabel\n [hidden]=\"!formTemplate.label || formTemplate.label == ''\"\n class=\"flex justify-content-between\"\n [style]=\"formTemplate.labelStyle ?? 'min-width: 200px; max-height: 36px'\">\n\n <span *ngIf=\"formTemplate.label && formTemplate.label != ''\" [class.mr-2]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.align-self-center]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.mb-2]=\"layout == OnshoreFormTemplateLayout.vertical\">\n {{formTemplate.label}}\n <small *ngIf=\"formTemplate.required\" class=\"onshore-color-danger\">*</small>\n </span>\n\n <div *ngIf=\"formTemplate.tooltip && layout == OnshoreFormTemplateLayout.vertical\" [pTooltip]=\"formTemplate.tooltip\" [escape]=\"false\" [tooltipPosition]=\"'left'\" appendTo=\"body\"><i class=\"fa fa-circle-question onshore-color-gray-5\"></i></div>\n\n </div>\n\n <div class=\"flex w-full\">\n <p-toggleButton\n *ngIf=\"formTemplate.locked\"\n (onChange)=\"lockChanged($event.checked)\"\n onIcon=\"fa fa-lock-open\"\n offIcon=\"fa fa-lock\"\n class=\"mr-2\"\n [style]=\"{'height': '37px'}\"\n [disabled]=\"!formTemplate.enabled\">\n </p-toggleButton>\n\n <div class=\"w-full overflow-hidden align-self-center\">\n <ng-content></ng-content>\n </div>\n\n <button *ngIf=\"formTemplate.actionButton\"\n class=\"ml-2 onshore-button-light\"\n [style]=\"{'height': '37px', 'min-width': '38px'}\"\n pButton\n [disabled]=\"actionButtonDisabled\"\n [icon]=\"formTemplate.actionButtonIcon\"\n (click)=\"actionButtonClick.emit()\">\n </button>\n </div>\n\n <div *ngIf=\"formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal\" class=\"ml-2 align-self-center\" [pTooltip]=\"formTemplate.tooltip\" [tooltipPosition]=\"'left'\" [escape]=\"false\"><i class=\"fa fa-circle-question onshore-color-gray-5\"></i></div>\n </div>\n\n <div *ngIf=\"ngControl.control.touched || ngControl.control.dirty\" [style]=\"{'margin-left': layout == OnshoreFormTemplateLayout.horizontal ? (formLabel?.clientWidth + (formTemplate.locked ? 48 : 0)) + 'px' : (formTemplate.locked ? 48 : 0) + 'px', 'margin-right': formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal ? '16px' : '0px'}\">\n <onshore-form-validation-output\n [validationItems]=\"formTemplate.validationItems\"\n [validationErrors]=\"ngControl.control.errors\">\n </onshore-form-validation-output>\n </div>\n\n <div *ngIf=\"formTemplate.description\" class=\"mt-2\" [style]=\"{'margin-left': layout == OnshoreFormTemplateLayout.horizontal ? (formLabel?.clientWidth + (formTemplate.locked ? 48 : 0)) + 'px' : (formTemplate.locked ? 48 : 0) + 'px', 'margin-right': formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal ? '16px' : '0px'}\">\n <small class=\"onshore-color-gray-5\"><i class=\"fa fa-info-circle\"></i> {{formTemplate.description}}</small>\n </div>\n\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\n\n@Component({\n selector: 'onshore-form-input-item',\n templateUrl: './form-input-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormInputItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() step?: number = 1;\n @Input() min?: number = 0;\n @Input() max?: number = 999999;\n @Input() minLength?: number = 0;\n @Input() maxLength?: number = 999999;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n passwordVisible: boolean = false;\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <span class=\"p-inputgroup w-full\">\n\n <textarea *ngIf=\"formTemplate.type == OnshoreFormTemplateType.textarea\"\n class=\"w-full\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n [rows]=\"3\"\n [cols]=\"30\"\n pInputTextarea\n [autoResize]=\"true\"\n [formControl]=\"ngControl.control\"\n [class.p-invalid]=\"ngControl.control?.touched && ngControl.control?.invalid\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"></textarea>\n\n <input *ngIf=\"formTemplate.type == OnshoreFormTemplateType.text || formTemplate.type == OnshoreFormTemplateType.email || formTemplate.type == OnshoreFormTemplateType.phone\"\n class=\"w-full\"\n [type]=\"formTemplate.type\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n pInputText\n [formControl]=\"ngControl.control\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"/>\n\n <input *ngIf=\"formTemplate.type == OnshoreFormTemplateType.password\"\n class=\"w-full\"\n [type]=\"passwordVisible ? 'text' : formTemplate.type\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n pInputText\n [formControl]=\"ngControl.control\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"/>\n\n <p-inputNumber *ngIf=\"formTemplate.type == OnshoreFormTemplateType.number\"\n class=\"w-full\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? 0\"\n [disabled]=\"disabled\"\n [formControl]=\"ngControl.control\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [showButtons]=\"true\"\n [step]=\"step ?? 1\"\n [min]=\"min\"\n [max]=\"max\">\n </p-inputNumber>\n\n <span *ngIf=\"formTemplate.inputAddon\" class=\"p-inputgroup-addon\">\n <i [class]=\"formTemplate.inputAddon\"></i>\n </span>\n\n <span *ngIf=\"formTemplate.type == OnshoreFormTemplateType.password\"\n (click)=\"passwordVisible = !passwordVisible\"\n class=\"p-inputgroup-addon cursor-pointer\">\n <i class=\"fa\"\n [class.fa-eye-slash]=\"passwordVisible\"\n [class.fa-eye]=\"!passwordVisible\"\n ></i>\n </span>\n\n </span>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-form-switch-item',\n templateUrl: './form-switch-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormSwitchItemComponent implements OnInit, ControlValueAccessor, OnDestroy, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n\n ngOnInit(): void {\n this.ngControl.control?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n skip(1)\n ).subscribe(newValue => {\n this.valueChange.emit(this.ngControl.control?.value);\n });\n\n if(this.ngControl.control?.value == undefined && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <div class=\"h-full align-items-center mt-1\">\n <p-inputSwitch [name]=\"formTemplate.name\"\n [formControl]=\"ngControl.control\"\n [disabled]=\"disabled\"\n [inputId]=\"formTemplate.name\">\n </p-inputSwitch>\n </div>\n\n</onshore-form-item-container>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'onshore-image-placeholder',\n templateUrl: './image-placeholder.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreImagePlaceholderComponent {\n\n @Input() public placeholderIcon: string = '';\n @Input() public placeholderImage: string = '';\n @Input() public image: string = '';\n @Input() public imageStyle: string = '';\n @Input() public placeholderStyle: string = '';\n @Input() public showLoader: boolean = true;\n\n imageLoaded = false;\n\n loadReady() {\n this.imageLoaded = true;\n this.showLoader = false;\n }\n\n abort() {\n this.imageLoaded = false;\n this.showLoader = false;\n }\n\n constructor() {}\n\n}\n","<div [hidden]=\"!imageLoaded || !image\">\n <img [style]=\"imageStyle\" [src]=\"image\" (load)=\"loadReady()\" (abort)=\"abort()\" />\n</div>\n\n<div *ngIf=\"!imageLoaded || !image\" class=\"flex justify-content-center align-items-center\" [style]=\"placeholderStyle\" [class.bg-gray-200]=\"placeholderIcon\" [class.p-2]=\"placeholderIcon\">\n <i *ngIf=\"placeholderIcon\" [class]=\"'text-muted fa ' + placeholderIcon\" [class.opacity-20]=\"showLoader && image\"></i>\n <img *ngIf=\"placeholderImage\" [src]=\"placeholderImage\" [class.opacity-20]=\"showLoader && image\" class=\"h-full\" />\n <i *ngIf=\"showLoader && image\" class=\"fas fa-circle-notch fa-spin fa-2x absolute\"></i>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\nimport { OnshoreImageError } from '../../enums/form.enums';\nimport { OnshoreFormImageSettings } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-image-chooser',\n templateUrl: './image-chooser.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreImageChooserComponent {\n\n drag = false;\n image = '';\n finalImage = '';\n imageErrorType = OnshoreImageError;\n imageError: OnshoreImageError = OnshoreImageError.none;\n\n @Input() imageSettings: OnshoreFormImageSettings;\n\n @Output() choosen: EventEmitter<string> = new EventEmitter();\n @Output() canceled: EventEmitter<boolean> = new EventEmitter();\n\n clear() {\n this.image = '';\n this.finalImage = '';\n this.imageError = OnshoreImageError.none;\n }\n\n public fileChange(event: Event): void {\n this.imageError = OnshoreImageError.none;\n const target = event.target as HTMLInputElement;\n const file: File | undefined | null = target?.files ? target?.files[0] : null;\n\n if (file?.type != 'image/png' && file?.type != 'image/jpeg' && file?.type != 'image/webp') {\n this.imageError = OnshoreImageError.fileType;\n return;\n }\n\n if (file?.size > this.imageSettings.maxFileSize) {\n this.imageError = OnshoreImageError.size;\n return;\n }\n\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n\n const img = new Image();\n img.src = window.URL.createObjectURL(file);\n img.onload = () => {\n\n const originalWidth = img.width;\n const originalHeight = img.height;\n\n if (originalWidth >= this.imageSettings.imageWidth && originalHeight >= this.imageSettings.imageHeight) {\n this.image = reader.result?.toString() || '';\n } else {\n this.imageError = OnshoreImageError.ratio;\n }\n this.cdr.markForCheck();\n\n }\n\n };\n }\n\n\n\n }\n\n public imageCropped(event: ImageCroppedEvent): void {\n // ToDo: Check needed base64 format\n //this.finalImage = event.base64.split(',')[1];\n this.finalImage = event.base64 || '';\n }\n\n public imageCroppedReady(): void {\n this.choosen.emit(this.finalImage);\n this.clear();\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n}\n","<div class=\"flex flex-column justify-content-center align-items-center w-full\">\n\n <div *ngIf=\"!image\" class=\"flex justify-content-center flex-column align-items-center w-full\">\n <div\n class=\"onshore-image-upload flex flex-column justify-content-between align-items-center rounded-lg p-4 relative m-3\"\n [class.onshore-border-gray-3]=\"drag\"\n [class.onshore-border-danger]=\"imageError != imageErrorType.none\">\n <i class=\"fa fa-image fa-5x onshore-color-gray-4\"></i>\n <small class=\"onshore-color-gray-4 mb-2\">{{'form.imageControl.dropImageLabel' | translate}}</small>\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-file\"\n [label]=\"'form.imageControl.imageChooserFileButton' | translate\"\n class=\"onshore-button-primary mr-2\">\n </button>\n\n <input\n (change)=\"fileChange($event)\"\n *ngIf=\"!image\"\n accept=\"image/png, image/jpeg, image/webp\"\n class=\"onshore-image-input absolute w-full h-full\"\n type=\"file\"\n (dragenter)=\"drag = true\"\n (dragleave)=\"drag = false\"\n (dragend)=\"drag = false\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-column relative align-items-center w-full\" *ngIf=\"image\">\n <image-cropper\n class=\"m-3\"\n [style]=\"'align-items: center; height: ' + (imageSettings.cropperPreviewHeight * this.imageSettings.aspectRatio) + 'px; width: ' + (imageSettings.cropperPreviewWidth * this.imageSettings.aspectRatio) + 'px'\"\n [class.onshore-cropper-circle]=\"this.imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"this.imageSettings.imageQuality\"\n [alignImage]=\"this.imageSettings.alignImage\"\n [backgroundColor]=\"this.imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"this.imageSettings.containWithinAspectRatio\"\n [format]=\"this.imageSettings.format\"\n [aspectRatio]=\"this.imageSettings.aspectRatio\"\n [resizeToHeight]=\"this.imageSettings.imageWidth * this.imageSettings.aspectRatio\"\n [resizeToWidth]=\"this.imageSettings.imageHeight * this.imageSettings.aspectRatio\">\n </image-cropper>\n </div>\n\n <div *ngIf=\"imageError\"class=\"pb-2 text-wrap text-center onshore-color-danger\">\n <small *ngIf=\"imageError == imageErrorType.ratio\">{{'form.imageControl.imageErrorRatio' | translate: {resizeToWidth: this.imageSettings.imageWidth, resizeToHeight: this.imageSettings.imageHeight} }}</small>\n <small *ngIf=\"imageError == imageErrorType.fileType\">{{'form.imageControl.imageErrorFileType' | translate}}</small>\n <small *ngIf=\"imageError == imageErrorType.size\">{{'form.imageControl.imageErrorSize' | translate}}</small>\n </div>\n</div>\n\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'form.imageControl.imageChooserCancelButton' | translate\"\n class=\"onshore-button-light mr-2\"\n (click)=\"clear(); canceled.emit(true)\">\n </button>\n\n <button pButton\n type=\"button\"\n [label]=\"'form.imageControl.imageChooserSelectButton' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-check\"\n [disabled]=\"!image\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { WebcamImage } from 'ngx-webcam';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\nimport { OnshoreFormImageSettings } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-webcam',\n templateUrl: './webcam.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WebcamComponent {\n\n @Input() imageSettings: OnshoreFormImageSettings;\n\n @Output() shot: EventEmitter<string> = new EventEmitter();\n @Output() canceled: EventEmitter<boolean> = new EventEmitter();\n\n image = '';\n finalImage = '';\n\n public trigger: Subject<void> = new Subject<void>();\n\n public camImageShot(webcamImage: WebcamImage): void {\n this.image = webcamImage.imageAsDataUrl;\n this.cdr.markForCheck();\n }\n\n public imageCropped(event: ImageCroppedEvent): void {\n // ToDo: Check needed base64 format\n this.finalImage = event.base64 || '';\n }\n\n public imageCroppedReady(): void {\n this.shot.emit(this.finalImage);\n }\n\n\n public get triggerObservable(): Observable<void> {\n return this.trigger.asObservable();\n }\n\n public triggerSnapshot(): void {\n this.trigger.next();\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n}\n","<div class=\"flex w-full justify-content-center align-items-center overflow-hidden p-2\">\n <webcam *ngIf=\"!image || image == ''\"\n [mirrorImage]=\"'never'\"\n [height]=\"imageSettings.webcamWidth * this.imageSettings.aspectRatio\"\n [width]=\"imageSettings.webcamHeight * this.imageSettings.aspectRatio\"\n [allowCameraSwitch]=\"true\"\n [trigger]=\"triggerObservable\"\n [imageQuality]=\"imageSettings.imageQuality / 100\"\n (imageCapture)=\"camImageShot($event)\">\n </webcam>\n\n <image-cropper *ngIf=\"image && image != ''\"\n class=\"m-3\" [style]=\"'height: ' + (imageSettings.cropperPreviewWidth * this.imageSettings.aspectRatio) + 'px; width: ' + (imageSettings.cropperPreviewHeight * this.imageSettings.aspectRatio) + 'px'\"\n [class.onshore-cropper-circle]=\"imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageSettings.imageQuality\"\n [alignImage]=\"imageSettings.alignImage\"\n [backgroundColor]=\"imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"imageSettings.containWithinAspectRatio\"\n [format]=\"imageSettings.format\"\n [aspectRatio]=\"imageSettings.aspectRatio\"\n [resizeToHeight]=\"imageSettings.imageHeight * this.imageSettings.aspectRatio\"\n [resizeToWidth]=\"this.imageSettings.imageWidth * this.imageSettings.aspectRatio\">\n </image-cropper>\n</div>\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2\">\n\n <button pButton\n type=\"button\"\n icon=\"fa fa-times\"\n [label]=\"'global.cancel' | translate\"\n class=\"onshore-button-light mr-2\"\n (click)=\"canceled.emit(true)\">\n </button>\n\n <button *ngIf=\"!image || image == ''\"\n pButton\n type=\"button\"\n [label]=\"'form.imageControl.webcamSmileButton' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-laugh-wink\"\n (click)=\"triggerSnapshot()\">\n </button>\n\n <button *ngIf=\"image && image != ''\"\n pButton\n type=\"button\"\n [label]=\"'global.use' | translate\"\n class=\"onshore-button-primary\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </button>\n </div>\n</p-footer>\n\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit,\n Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { OnshoreFormImageSettings, OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateLayout } from '../../enums/form.enums';\n\n@Component({\n selector: 'onshore-form-image-item',\n templateUrl: './form-image-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormImageItemComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() imageSettings: OnshoreFormImageSettings;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() imageDeleted: EventEmitter<string> = new EventEmitter();\n @Output() imageCleared: EventEmitter<any> = new EventEmitter();\n @Output() imageReady: EventEmitter<string> = new EventEmitter();\n @Output() selectFromMedia: EventEmitter<any> = new EventEmitter();\n @Output() isLoading: EventEmitter<boolean> = new EventEmitter();\n\n OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;\n\n defaultImageSettings: OnshoreFormImageSettings = {\n imageWidth: 400,\n imageHeight: 400,\n containWithinAspectRatio: false,\n aspectRatio: 1 / 1,\n imageSelectionEnabled: true,\n webcamSelectionEnabled: true,\n mediaSelectionEnabled: true,\n deleteEnabled: true,\n placeholderImage: '',\n placeholderIcon: 'fa fa-image fa-10x',\n containerWidth: 250,\n containerHeight: 250,\n imageQuality: 100,\n format: 'png',\n alignImage: 'center',\n cropperPreviewWidth: 400,\n cropperPreviewHeight: 400,\n webcamWidth: 400,\n webcamHeight: 400,\n circleCropper: false,\n maxFileSize: 6400000,\n backgroundColor: 'white'\n };\n\n image: string | null = '';\n disabled = false;\n webcamDialogVisible: boolean = false;\n imageChooserDialogVisible: boolean = false;\n\n subscriptions: Array<Subscription> = [];\n\n getFileImage(image: any) {\n this.imageChooserDialogVisible = false;\n if(image) {\n this.image = image;\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.image);\n this.ngControl?.control?.markAsDirty();\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }, 500);\n }\n }\n\n getWebcamImage(image: any) {\n this.webcamDialogVisible = false;\n if(image) {\n this.image = image;\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.image);\n this.ngControl?.control?.markAsDirty();\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }, 500);\n }\n }\n\n removeImage() {\n if(this.image && !this.image.includes('base64')) {\n this.imageDeleted.emit(this.image);\n } else {\n this.imageCleared.emit();\n }\n\n this.ngControl?.control?.setValue(null);\n this.ngControl?.control?.markAsDirty();\n this.image = '';\n this.cdr.markForCheck();\n }\n\n public writeValue(obj: any): void {\n if(obj && !obj.includes('base64')) {\n this.image = obj;\n }\n if(obj == null) {\n this.image = '';\n }\n\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.image = this.ngControl.value;\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n if(this.ngControl?.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl?.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n this.ngControl?.control?.disable();\n this.image = null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const imageSettings: OnshoreFormImageSettings = changes['imageSettings']?.currentValue;\n\n this.imageSettings = {\n ...this.defaultImageSettings,\n ...imageSettings,\n placeholderIcon: imageSettings?.placeholderImage ? '' : this.defaultImageSettings.placeholderIcon\n };\n\n this.removeImage();\n this.cdr.markForCheck();\n }\n\n constructor(public cdr: ChangeDetectorRef,\n @Self() @Optional() public ngControl: NgControl,\n public dialogService: DialogService) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\" [ngControl]=\"ngControl\">\n <div class=\"w-full flex align-items-center\" [class.flex-column]=\"formTemplate.layout === OnshoreFormTemplateLayout.vertical\">\n\n <div class=\"onshore-border-gray-4 border-solid border-1 overflow-hidden\"\n [style]=\"'background-color: white; width: ' + imageSettings.containerWidth + 'px; height: ' + imageSettings.containerHeight + 'px'\">\n <onshore-image-placeholder\n class=\"w-full\"\n [image]=\"image\"\n [imageStyle]=\"'width: 100%; height: 100%'\"\n [placeholderIcon]=\"imageSettings.placeholderIcon\"\n [placeholderImage]=\"imageSettings.placeholderImage\"\n [placeholderStyle]=\"'width: 100%; height: 100%'\">\n </onshore-image-placeholder>\n </div>\n\n <div class=\"flex flex-column m-4\">\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.imageSelectionEnabled\"\n icon=\"fa fa-image\"\n [label]=\"'form.imageControl.uploadImageButton' | translate\"\n class=\"onshore-button-primary mb-2\"\n [disabled]=\"disabled\"\n (click)=\"imageChooserDialogVisible = true; cdr.detectChanges()\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.webcamSelectionEnabled\"\n icon=\"fa fa-camera\"\n [label]=\"'form.imageControl.webcamImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"webcamDialogVisible = true\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.mediaSelectionEnabled\"\n icon=\"fa fa-photo-video\"\n [label]=\"'form.imageControl.mediaImageButton' | translate\"\n class=\"onshore-button-light mb-2\"\n [disabled]=\"disabled\"\n (click)=\"selectFromMedia.emit()\">\n </button>\n\n <button pButton\n type=\"button\"\n *ngIf=\"imageSettings.deleteEnabled\"\n icon=\"fa fa-eraser\"\n [label]=\"'form.imageControl.removeImageButton' | translate\"\n class=\"onshore-button-light\"\n (click)=\"removeImage()\"\n [disabled]=\"!image || disabled\">\n </button>\n\n </div>\n\n </div>\n</onshore-form-item-container>\n\n<p-dialog [header]=\"'form.imageControl.uploadImageTitle' | translate\" [(visible)]=\"imageChooserDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" appendTo=\"body\">\n <onshore-image-chooser\n (choosen)=\"getFileImage($event)\"\n (canceled)=\"imageChooserDialogVisible = false\"\n [imageSettings]=\"imageSettings\">\n </onshore-image-chooser>\n</p-dialog>\n\n<p-dialog [header]=\"'form.imageControl.webacmImageTitle' | translate\" [(visible)]=\"webcamDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" appendTo=\"body\">\n <onshore-webcam\n *ngIf=\"webcamDialogVisible\"\n (shot)=\"getWebcamImage($event)\"\n (canceled)=\"webcamDialogVisible = false\"\n [imageSettings]=\"imageSettings\"></onshore-webcam>\n</p-dialog>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem, OnshoreFormTemplateOptions } from '../../models/form.models';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs';\n\n@Component({\n selector: 'onshore-form-dropdown-item',\n templateUrl: './form-dropdown-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormDropdownItemComponent implements OnInit, OnChanges, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() multiple: boolean | undefined = false;\n @Input() showClear: boolean | undefined = false;\n @Input() group: boolean | undefined = false;\n @Input() selectionLimit?: number = 0\n @Input() minLength?: number = 0;\n @Input() optionLabel?: string = '';\n @Input() optionGroupLabel?: string = '';\n @Input() dataKey?: string = '';\n @Input() actionButtonDisabled: boolean = false;\n @Input() options: any[];\n\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean | undefined = false;\n\n // ControlValueAccessor interface\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n clearSelection() {\n this.ngControl.control?.reset();\n this.ngControl.control?.setValue(this.multiple ? [] : '');\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n if((!this.ngControl.control?.value || this.ngControl.control?.value == '' || this.ngControl.control?.value == undefined) && !this.multiple) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currentOptions = changes['options']?.currentValue ?? changes['formTemplate']?.currentValue?.options;\n //const previousOptions = changes['options']?.previousValue ?? changes['formTemplate']?.previousValue?.options;\n\n if(!this.options && currentOptions) {\n this.options = currentOptions;\n }\n\n this.cdr.markForCheck();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-dropdown *ngIf=\"!multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"ngControl.control\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n [showClear]=\"showClear && formTemplate?.placeholder\"\n (onClear)=\"clearSelection()\"\n optionDisabled=\"disabled\"\n appendTo=\"body\">\n </p-dropdown>\n\n <p-multiSelect *ngIf=\"multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"ngControl.control\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [showClear]=\"showClear\"\n [selectionLimit]=\"selectionLimit\"\n [minlength]=\"minLength\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n (onClear)=\"clearSelection()\"\n [selectedItemsLabel]=\"'form.dropdownControl.selectedItems' | translate\"\n optionDisabled=\"disabled\"\n appendTo=\"body\"></p-multiSelect>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\n@Component({\n selector: 'onshore-form-colorpicker-item',\n templateUrl: './form-colorpicker-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormColorpickerItemComponent implements OnInit, OnChanges, ControlValueAccessor, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n colorPickerValue = '';\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeColor() {\n this.ngControl.control?.setValue(this.colorPickerValue);\n }\n\n changeInput(input: any) {\n this.colorPickerValue = input.target?.value;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.colorPickerValue = this.formTemplate.default;\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.colorPickerValue = this.ngControl.control?.value;\n this.cdr.markForCheck();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <div class=\"flex w-full\">\n\n <input class=\"w-full mr-2\"\n type=\"text\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [formControl]=\"ngControl.control\"\n [disabled]=\"disabled\"\n pInputText\n [value]=\"ngControl.control.value\"\n (input)=\"changeInput($event)\"/>\n\n <p-colorPicker [(ngModel)]=\"colorPickerValue\"\n format=\"hex\" [inline]=\"false\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n [baseZIndex]=\"99999\"\n (onChange)=\"changeColor()\">\n </p-colorPicker>\n </div>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-form-checkbox-item',\n templateUrl: './form-checkbox-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormCheckboxItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeCheck(value: any) {\n this.ngControl.control?.setValue(value.checked);\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value !== true && this.ngControl.control?.value !== false && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <div class=\"p-field-checkbox flex\">\n <p-checkbox\n class=\"align-self-start mt-1\"\n [name]=\"formTemplate.name\"\n [formControl]=\"ngControl.control\"\n [binary]=\"true\"\n [disabled]=\"disabled\"\n [inputId]=\"formTemplate.name\"\n [value]=\"ngControl.control.value\"\n (onChange)=\"changeCheck($event)\">\n </p-checkbox>\n\n <label class=\"mb-0 ml-2 onshore-color-gray-5\"\n [for]=\"formTemplate.name\">\n {{formTemplate.description}}\n </label>\n </div>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit,\n Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormAutocompleteItem, OnshoreFormTemplateItem } from '../../models/form.models';\n\n@Component({\n selector: 'onshore-form-autocomplete-item',\n templateUrl: './form-autocomplete-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormAutocompleteItemComponent implements ControlValueAccessor, OnDestroy, OnInit, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() public multiple: boolean = false;\n @Input() public searchedData: OnshoreFormAutocompleteItem[] = [];\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() onSearch: EventEmitter<string> = new EventEmitter();\n @Output() onSelect: EventEmitter<OnshoreFormAutocompleteItem> = new EventEmitter();\n @Output() onClear: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n selected(selectedItem: OnshoreFormAutocompleteItem) {\n this.onSelect.emit(selectedItem.data);\n this.cdr.markForCheck();\n }\n\n searchClear() {\n this.searchedData = [];\n this.ngControl.reset();\n this.onClear.emit();\n }\n\n searchPrepare(term: any) {\n if(term.query != '') {\n this.search(term.query);\n }else{\n this.searchedData = [];\n this.ngControl.reset();\n this.onClear.emit();\n }\n }\n\n async search(searchTerm: string) {\n this.onSearch.emit(searchTerm);\n this.cdr.markForCheck();\n }\n\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef,\n @Self() @Optional() public ngControl: NgControl) {\n\n this.ngControl.valueAccessor = this;\n }\n\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <p-autoComplete [placeholder]=\"formTemplate.placeholder\"\n appendTo=\"body\"\n [formControl]=\"this.ngControl.control\"\n (onSelect)=\"selected($event)\"\n (onUnselect)=\"selected($event)\"\n (onClear)=\"searchClear()\"\n [suggestions]=\"searchedData\"\n (completeMethod)=\"searchPrepare($event)\"\n [disabled]=\"disabled\"\n [size]=\"30\"\n [minLength]=\"2\"\n [multiple]=\"multiple\"\n [delay]=\"1000\"\n [unique]=\"true\"\n field=\"firstLineLabel\"\n dataKey=\"data\"\n class=\"w-full\">\n <ng-template let-item pTemplate=\"item\">\n <div *ngIf=\"item.firstLineLabel\">\n <span class=\"mr-1\">\n <b>{{item.firstLineLabel}}</b><br>\n </span>\n </div>\n <div *ngIf=\"item.secondLineLabel\"><span>{{item.secondLineLabel}} </span></div>\n <div *ngIf=\"item.thirdLineLabel\"><span>{{item.thirdLineLabel}} </span></div>\n </ng-template>\n </p-autoComplete>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\n\n@Component({\n selector: 'onshore-form-datetime-item',\n templateUrl: './form-datetime-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormDatetimeItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n selectDate(date: any) {\n console.log(date);\n }\n\n selectTime(time: any) {\n console.log(time);\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value !== true && this.ngControl.control?.value !== false && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-calendar class=\"w-full\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? 0\"\n [disabled]=\"disabled\"\n [formControl]=\"ngControl.control\"\n dateFormat=\"dd.mm.yy\"\n dataType=\"string\"\n hourFormat=\"24\"\n [timeOnly]=\"formTemplate.type == OnshoreFormTemplateType.time ? true : false\"\n [showTime]=\"formTemplate.type == OnshoreFormTemplateType.datetime ? true : false\"\n [defaultDate]=\"formTemplate.default\"\n (onSelect)=\"selectDate($event)\"\n appendTo=\"body\">\n </p-calendar>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\n\n@Component({\n selector: 'onshore-form-sort-item',\n templateUrl: './form-sort-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormSortItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n sortItems?: any[] = [];\n tempLockValue?: any[] = [];\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n disabled: boolean = false;\n\n sortItemsChanged(event: any[]) {\n this.sortItems = event;\n this.ngControl?.control?.setValue(event);\n this.ngControl?.control?.markAsDirty();\n this.cdr.markForCheck();\n }\n\n lockChanged(unlocked: boolean) {\n if(unlocked && this.formTemplate.enabled) {\n this.tempLockValue = this.ngControl?.control.value;\n } else {\n this.ngControl?.control.setValue(this.tempLockValue);\n this.sortItems = this.tempLockValue;\n this.tempLockValue = null;\n }\n this.cdr.markForCheck();\n }\n\n // ControlValueAccessor interface\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n\n registerOnTouched(fn: any): void {}\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.sortItems = this.formTemplate.default;\n } else {\n this.sortItems = this.ngControl.control?.value;\n }\n this.cdr.markForCheck();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\"\n (lockIsChanged)=\"lockChanged($event)\">\n\n <div *ngIf=\"formTemplate.type == OnshoreFormTemplateType.sort\"\n class=\"w-full\" [dragula]=\"ngControl.enabled\"\n [dragulaModel]=\"sortItems\"\n (dragulaModelChange)=\"sortItemsChanged($event)\">\n <div [class.cursor-move]=\"ngControl.enabled\"\n style=\"border-radius: 3px\"\n class=\"onshore-sort-item flex justify-content-between align-items-center onshore-border-gray-4 border-solid border-1 p-2 mb-2 onshore-background-color-white\" *ngFor=\"let item of sortItems\">\n <span [class.onshore-color-blocked]=\"!ngControl.enabled\">{{ item.label }}</span>\n <i [class.onshore-color-blocked]=\"!ngControl.enabled\" class=\"fa fa-arrows-v\"></i>\n </div>\n </div>\n\n</onshore-form-item-container>\n\n","import { NgModule } from '@angular/core';\nimport { OnshoreFormsComponent } from './onshore-forms.component';\nimport { OnshoreFormsService } from './onshore-forms.service';\nimport { OnshoreFormInputItemComponent } from './components/form-input-item/form-input-item.component';\nimport { OnshoreFormSwitchItemComponent } from './components/form-switch-item/form-switch-item.component';\nimport { OnshoreFormValidationOutputComponent } from './components/form-validation-output/form-validation-output.component';\nimport { OnshoreFormImageItemComponent } from './components/form-image-item/form-image-item.component';\nimport { OnshoreFormDropdownItemComponent } from './components/form-dropdown-item/form-dropdown-item.component';\nimport { OnshoreFormColorpickerItemComponent } from './components/form-colorpicker-item/form-colorpicker-item.component';\nimport { OnshoreFormCheckboxItemComponent } from './components/form-checkbox-item/form-checkbox-item.component';\nimport { OnshoreFormAutocompleteItemComponent } from './components/form-autocomplete-item/form-autocomplete-item.component';\nimport { OnshoreFormItemContainer } from './components/form-item-container/form-item-container.component';\nimport { OnshoreFormDatetimeItemComponent } from './components/form-datetime-item/form-datetime-item.component';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ColorPickerModule } from 'primeng/colorpicker';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { DialogModule } from 'primeng/dialog';\nimport { CommonModule } from '@angular/common';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\nimport { CalendarModule } from 'primeng/calendar';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { OnshoreImagePlaceholderComponent } from './components/image-placeholder/image-placeholder.component';\nimport { OnshoreImageChooserComponent } from './components/image-chooser/image-chooser.component';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { WebcamModule } from 'ngx-webcam';\nimport { WebcamComponent } from './components/webcam/webcam.component';\nimport { OnshoreFormSortItemComponent } from './components/form-sort-item/form-sort-item.component';\nimport { DragulaModule } from 'ng2-dragula';\n\n\n@NgModule({\n declarations: [\n OnshoreFormsComponent,\n OnshoreImagePlaceholderComponent,\n OnshoreFormInputItemComponent,\n OnshoreFormSwitchItemComponent,\n OnshoreFormValidationOutputComponent,\n OnshoreFormImageItemComponent,\n OnshoreFormDropdownItemComponent,\n OnshoreFormColorpickerItemComponent,\n OnshoreFormCheckboxItemComponent,\n OnshoreFormAutocompleteItemComponent,\n OnshoreFormItemContainer,\n OnshoreFormDatetimeItemComponent,\n OnshoreImageChooserComponent,\n OnshoreFormSortItemComponent,\n WebcamComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonModule,\n RippleModule,\n AutoCompleteModule,\n CheckboxModule,\n ColorPickerModule,\n DropdownModule,\n MultiSelectModule,\n TooltipModule,\n InputNumberModule,\n InputSwitchModule,\n InputTextModule,\n InputTextareaModule,\n DialogModule,\n SelectButtonModule,\n ToggleButtonModule,\n CalendarModule,\n TranslateModule,\n ImageCropperModule,\n DragulaModule.forRoot(),\n WebcamModule\n ],\n exports: [\n OnshoreFormsComponent,\n OnshoreImagePlaceholderComponent,\n OnshoreFormInputItemComponent,\n OnshoreFormSwitchItemComponent,\n OnshoreFormValidationOutputComponent,\n OnshoreFormImageItemComponent,\n OnshoreFormDropdownItemComponent,\n OnshoreFormColorpickerItemComponent,\n OnshoreFormCheckboxItemComponent,\n OnshoreFormAutocompleteItemComponent,\n OnshoreFormItemContainer,\n OnshoreFormDatetimeItemComponent,\n OnshoreImageChooserComponent,\n OnshoreFormSortItemComponent,\n WebcamComponent\n ],\n providers: [\n OnshoreFormsService,\n DialogService\n ]\n})\nexport class OnshoreFormsModule { }\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport class OnshoreValidators {\n static slug: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^[A-Za-z0-9\\._-]{2,20}$/.test(control.value) ? null : { slug: true };\n }\n\n static numeric: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^[0-9]*$/.test(control.value) ? null : { numeric: true };\n }\n\n static email: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$/.test(control.value) ? null : { email: true };\n }\n\n static cleanComment: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /[A-Z]{5}\\d{4}[A-Z]{1}/.test(control.value) ? null : { cleanComment: true };\n }\n}\n","/*\n * Public API Surface of onshore-forms\n */\n\nexport * from './lib/onshore-forms.service';\nexport * from './lib/onshore-forms.component';\nexport * from './lib/onshore-forms.module';\nexport * from './lib/enums/form.enums';\nexport * from './lib/models/form.models';\nexport * from './lib/validators/form.validators';\nexport * from './lib/components/form-autocomplete-item/form-autocomplete-item.component';\nexport * from './lib/components/form-checkbox-item/form-checkbox-item.component';\nexport * from './lib/components/form-colorpicker-item/form-colorpicker-item.component';\nexport * from './lib/components/form-dropdown-item/form-dropdown-item.component';\nexport * from './lib/components/form-image-item/form-image-item.component';\nexport * from './lib/components/form-input-item/form-input-item.component';\nexport * from './lib/components/form-switch-item/form-switch-item.component';\nexport * from './lib/components/form-datetime-item/form-datetime-item.component';\nexport * from './lib/components/form-sort-item/form-sort-item.component';\nexport * from './lib/components/form-validation-output/form-validation-output.component';\nexport * from './lib/components/form-item-container/form-item-container.component';\nexport * from './lib/components/image-placeholder/image-placeholder.component';\nexport * from './lib/components/image-chooser/image-chooser.component';\nexport * from './lib/components/webcam/webcam.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i5.OnshoreFormValidationOutputComponent","i3","i4","i6.OnshoreFormItemContainer","i3.OnshoreFormItemContainer","i5","i6","i6.OnshoreImagePlaceholderComponent","i7.OnshoreFormItemContainer","i8.OnshoreImageChooserComponent","i9.WebcamComponent","i10","i5.OnshoreFormItemContainer","i4.OnshoreFormItemContainer"],"mappings":"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"}