@bnsights/bbsf-controls 1.0.101 → 1.0.102

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":"bnsights-bbsf-controls.umd.js","sources":["../../../projects/bbsf-controls/src/lib/Shared/services/validationErrorMassage.service.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/InputType.ts","../../../projects/bbsf-controls/src/lib/Shared/services/ControlUtility.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/PickerType.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/StartView.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/SelectMode.ts","../../../projects/bbsf-controls/src/lib/Shared/services/OnPagingFiltersChange.service.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/bbsf-controls/src/lib/Shared/default_intl.ts","../../../projects/bbsf-controls/src/lib/controls/DateTimePicker/DateTimePicker.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FileUploadModel.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultipleFileUploadModel.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ControlLayout.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/LanguageMode.ts","../../../projects/bbsf-controls/src/lib/Shared/services/GlobalSettings.service.ts","../../../projects/bbsf-controls/src/lib/controls/FileUplaod/FileUplaod.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/EnglishArabicDTO.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/TextArea/TextArea.component.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.ts","../../../projects/bbsf-controls/src/lib/controls/CheckBox/CheckBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/DropdownList/DropdownList.component.ts","../../../projects/bbsf-controls/src/lib/controls/Phone/Phone.component.ts","../../../projects/bbsf-controls/src/lib/controls/HtmlEditor/HtmlEditor.component.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.ts","../../../projects/bbsf-controls/src/lib/controls/ImageUpload/ImageUpload.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ProfilePictureDTO.ts","../../../projects/bbsf-controls/src/lib/controls/ProfileImageUploader/ProfileImageUploader.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/AutocompleteDTO.ts","../../../projects/bbsf-controls/src/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/TagsInput/TagsInput.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PagingDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FilterType.ts","../../../projects/bbsf-controls/src/lib/controls/Paging/Paging.component.ts","../../../projects/bbsf-controls/src/lib/controls/Paging/JwPagination.component.ts","../../../projects/bbsf-controls/src/lib/controls/RadioButton/RadioButton.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/LanguageValidation.ts","../../../projects/bbsf-controls/src/lib/controls/TextBox/TextBox.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MapAutocompleteDTO.ts","../../../projects/bbsf-controls/src/lib/controls/MapAutoComplete/MapAutoComplete.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/CalendarView.ts","../../../projects/bbsf-controls/src/lib/controls/Calendar/Calendar.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/PagingActionMode.ts","../../../projects/bbsf-controls/src/lib/controls/Form/Form.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/StyleConfirmationMode.ts","../../../projects/bbsf-controls/src/lib/controls/ConfirmationModal/ConfirmationModal.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Directives/template-name.directive.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater/repeater.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Enums.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ControlOptionsBase.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/datePickerOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ForceDirection.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/DropdownOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FileUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/HtmlEditorOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ImageType.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ImageUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MapAutoCompleteOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PhoneOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RangeNumber.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TextAreaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/IconPosition.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TextBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ToggleslideOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/services/render-component-service.service.ts","../../../projects/bbsf-controls/src/lib/controls/Toggleslide/toggleslide.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-table/repeater-table.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/Recaptcha.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CaptchaStyle.ts","../../../projects/bbsf-controls/src/lib/controls/Recaptcha/Recaptcha.component.ts","../../../projects/bbsf-controls/src/lib/controls/page-header-component/page-header-component.component.ts","../../../projects/bbsf-controls/src/lib/shared/Pipes/bbsf-date-time.pipe.ts","../../../projects/bbsf-controls/src/lib/shared/Pipes/bbsf-date.pipe.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/TagInputView.ts","../../../projects/bbsf-controls/src/lib/Shared/Components/ng-tag-input.ts","../../../projects/bbsf-controls/src/lib/controls/bbsf-controls.module.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CustomValidation.ts","../../../projects/bbsf-controls/src/lib/Shared/Components/app-base-component.ts","../../../projects/bbsf-controls/src/lib/Shared/config/environment.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RecaptchaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultilingualControlOptionsBase.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultilingualTextBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/Attribute.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultiLingualTextAreaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CheckBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/DropdownListItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultiLingualHtmlEditorOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ProfileImageUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/SaveDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CancelDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/EditPersonalImage.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/UploadPersonalImage.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CalendarOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CalendarEventDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/AutocompleteOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TagsInputDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TagsInputOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FilterItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PagingOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RadioButtonOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RadioButtonItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FormOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ConfirmationModalOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RepeaterField.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RepeaterOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/filter-options.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/page-header-options.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/control-filter-Item.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/bread-crumb.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/menu-list-enum.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Countries.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FontSize.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Insert.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Misc.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Para.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Style.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FileType.ts","../../../projects/bbsf-controls/src/public-api.ts","../../../projects/bbsf-controls/src/bnsights-bbsf-controls.ts"],"sourcesContent":["import { Injectable, Optional } from '@angular/core';\r\nimport { Http, Response, Headers, RequestOptions } from '@angular/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ControlContainer, FormControl, FormGroup } from '@angular/forms';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Injectable()\r\nexport class ErrorMassageValidation {\r\n static controlContainerstatic = null;\r\n\r\n // tslint:disable-next-line: deprecation\r\n constructor(\r\n private http: Http,\r\n @Optional() private controlContainer: ControlContainer,\r\n private utilityService: UtilityService\r\n ) {\r\n ErrorMassageValidation.controlContainerstatic = this.controlContainer;\r\n }\r\n url = 'CheckEmailValidation';\r\n // tslint:disable-next-line: deprecation\r\n\r\n static showerror(FormControlName: string) {\r\n let form = ErrorMassageValidation.controlContainerstatic\r\n .control as FormGroup;\r\n let control = form.get(FormControlName) as FormControl;\r\n //console.log(control)\r\n control.setErrors({ minlength: true });\r\n control.markAsTouched();\r\n }\r\n\r\n // isEmailRegisterd(Email: string)\r\n // {\r\n // let resource:object={\r\n // email:Email\r\n // };\r\n // let body = JSON.stringify(resource);\r\n // let headers = new Headers({ 'Content-Type': 'application/json' });\r\n // let options = new RequestOptions({ headers: headers });\r\n // return this.http.post(environment.baseUrl+this.url,body,options)\r\n // .pipe(map(response => response.json()))\r\n // }\r\n\r\n getErrorMassageValidation(error: any): string {\r\n let result: string = '';\r\n switch (error.key) {\r\n case 'required':\r\n result = this.utilityService.getResourceValue('RequiredValidationKey');\r\n break;\r\n case 'email':\r\n result = this.utilityService.getResourceValue('EmailValidationKey');\r\n break;\r\n case 'EmailValidationKey':\r\n result = this.utilityService.getResourceValue('EmailValidationKey');\r\n break;\r\n case 'URLValidationKey':\r\n result = this.utilityService.getResourceValue('urlValidationError');\r\n break;\r\n case 'pattern':\r\n result = this.utilityService.getResourceValue('NumberValidationKey');\r\n break;\r\n case 'maxlength':\r\n result =\r\n this.utilityService.getResourceValue('MaxLenghtValidationKey') +\r\n ' ' +\r\n error.value.requiredLength;\r\n break;\r\n case 'minlength':\r\n result =\r\n this.utilityService.getResourceValue('MinLenghtValidationKey') +\r\n ' ' +\r\n error.value.requiredLength;\r\n break;\r\n case 'min':\r\n result =\r\n this.utilityService.getResourceValue('MinValueValidationKey') +\r\n ' ' +\r\n error.value.min;\r\n break;\r\n case 'max':\r\n result =\r\n this.utilityService.getResourceValue('MaxValueValidationKey') +\r\n ' ' +\r\n error.value.max;\r\n break;\r\n case 'IntegerNumberValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'IntegerNumberValidationKey'\r\n );\r\n break;\r\n case 'PositiveNumberValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'PositiveNumberValidationKey'\r\n );\r\n break;\r\n case 'validatePhoneNumber':\r\n result = this.utilityService.getResourceValue(\r\n 'PhoneNumberValidationKey'\r\n );\r\n break;\r\n case 'mask':\r\n result =\r\n this.utilityService.getResourceValue('MaskValidationKey') +\r\n ' ' +\r\n error.value.requiredMask;\r\n break;\r\n case 'PasswordComplexityHasNumber':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasNumber'\r\n );\r\n break;\r\n case 'ArabicLetterOnly':\r\n result = this.utilityService.getResourceValue('ArabicLetterOnly');\r\n break;\r\n case 'EnglishLetterOnly':\r\n result = this.utilityService.getResourceValue('EnglishLetterOnly');\r\n break;\r\n case 'ArabicIsRequiredAndOnly50CharactersEnglish':\r\n result = this.utilityService.getResourceValue(\r\n 'ArabicIsRequiredAndOnly50CharactersEnglish'\r\n );\r\n break;\r\n case 'PasswordComplexityHasCapitalLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasCapitalLetter'\r\n );\r\n break;\r\n case 'PasswordComplexityHasSmallLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasSmallLetter'\r\n );\r\n break;\r\n case 'PasswordComplexityHasSpecialLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasSpecialLetter'\r\n );\r\n break;\r\n case 'MaxWordCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MaxWordCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'NewSelectionValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'NewSelectionValidationKey'\r\n );\r\n break;\r\n case 'MaxFileCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MaxFileCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'MinFileCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MinFileCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'MaxSizeForAllFilesInMB':\r\n result =\r\n this.utilityService.getResourceValue('MaxSizeForAllFilesInMB') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'FileMaxSizeInMB':\r\n result =\r\n this.utilityService.getResourceValue('FileMaxSizeInMB') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'ToolTipTypeError':\r\n result =\r\n this.utilityService.getResourceValue('ToolTipTypeError') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'InvalidEndDate':\r\n result = this.utilityService.getResourceValue('InvalidEndDate');\r\n break;\r\n case 'InvalidStartDate':\r\n result = this.utilityService.getResourceValue('InvalidStartDate');\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n }\r\n}\r\n","export enum InputType {\r\n Text = 1,\r\n Password = 2,\r\n Email = 3,\r\n Number = 4,\r\n EID = 5,\r\n URL = 6\r\n}\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { CustomValidation } from '../Models/CustomValidation';\r\nimport { ErrorMassageValidation } from './validationErrorMassage.service';\r\nimport { ValidationErrors, ValidatorFn, AbstractControl, FormControl, Validators } from '@angular/forms';\r\nimport { InputType } from '../Enums/InputType';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class ControlUtility {\r\n constructor(private ErrorHandler: ErrorMassageValidation, private controlValidationService: ControlValidationService, private utilityService: UtilityService) {\r\n\r\n }\r\n\r\n getErrorValidation(Errorsitem: any[], CustomValidation?: CustomValidation): string {\r\n let resulte = '';\r\n Errorsitem.forEach(element => {\r\n\r\n if (element.key === 'customerError' && Errorsitem.length === 1) {\r\n resulte = CustomValidation[0].massage;\r\n } else if (element.key === 'EmailValidation') {\r\n resulte = element.value;\r\n } else if (element.key === 'FluentApi') {\r\n resulte = element.value;\r\n }\r\n else if (element.key === 'errorMassage') {\r\n resulte = element.value;\r\n }\r\n else {\r\n resulte = this.ErrorHandler.getErrorMassageValidation(element);\r\n }\r\n });\r\n\r\n return resulte;\r\n }\r\n\r\n patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n const valid = regex.test(control.value);\r\n return valid ? null : error;\r\n };\r\n }\r\n patchControlValue(originalValue, PatchFunction, PatchPath) {\r\n var patchOp = [{\r\n op: \"replace\",\r\n path: PatchPath,\r\n value: originalValue\r\n }]\r\n var patchService = PatchFunction.call(null, patchOp) as Observable<any>;\r\n patchService.subscribe(r => console.log(r), erorr => this.utilityService.notifyErrorMessage(erorr));\r\n\r\n }\r\n arabicValidator(error: ValidationErrors): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (!control.value)\r\n return null;\r\n if (control.value.match('[\\u0600-\\u06FF]')) {\r\n if (control.value.match('[A-Za-z]') != null) {\r\n //FOUND ENGLISH CHARS\r\n var length = control.value.replace(/\\W/g, '').replace(/[0-9]/g, '').length;\r\n if (length > 50) {\r\n return error;\r\n } else {\r\n return null;\r\n }\r\n }\r\n else {\r\n //NO ENGLISH CHARACTERS AT ALL\r\n return null;\r\n }\r\n }\r\n else {\r\n return error;\r\n }\r\n };\r\n }\r\n\r\n getInputType(type: number): string {\r\n return InputType[type] as string\r\n }\r\n\r\n\r\n trimControlValue(value: any) {\r\n const whitespace: string = ' ';\r\n if (value.startsWith(whitespace) || value.endsWith(whitespace)) {\r\n return value.trim();\r\n }\r\n else\r\n return value\r\n }\r\n\r\n CopyInputMessage(inputElement) {\r\n inputElement.select();\r\n document.execCommand('copy');\r\n inputElement.setSelectionRange(0, 0);\r\n }\r\n\r\n\r\n getErrorValidationMassage(ErrorList, group, options) {\r\n // if((!group.valid)&&(!UtilityService.isCreatedBefor))\r\n // {\r\n // UtilityService.showGlobalError();\r\n // this.scrollToGlobalErrorMassage()\r\n // }\r\n return this.getErrorValidation(ErrorList, options.CustomValidation);\r\n }\r\n\r\n scrollToGlobalErrorMassage() {\r\n let element = document.getElementById('errorId');\r\n element.scrollIntoView({ behavior: \"smooth\", inline: \"nearest\" });\r\n }\r\n setAttributeForControl(options) {\r\n if (options.AttributeList != null) {\r\n var element = document.getElementById(options.Name);\r\n for (let index = 0; index < options.AttributeList.length; index++) {\r\n element.setAttribute(options.AttributeList[index].Key, options.AttributeList[index].value);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n showGlobalError(formId?: string) {\r\n this.controlValidationService.showGlobalError(null, formId);\r\n this.scrollToGlobalErrorMassage()\r\n }\r\n\r\n RemoveRequiredValidation(FormControl: AbstractControl, ValidationRole: any[], Options: any) {\r\n Options.IsRequired = false\r\n ValidationRole = ValidationRole.filter((e) => e != Validators.required)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n AddRequiredValidation(FormControl: AbstractControl, ValidationRole: any[], Options: any) {\r\n Options.IsRequired = true\r\n ValidationRole.push(Validators.required)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n addRequiredToControl(FormControl: AbstractControl, Options: any) {\r\n Options.IsRequired = true\r\n FormControl.addValidators(Validators.required);\r\n FormControl.updateValueAndValidity()\r\n }\r\n removeRequiredFromControl(FormControl: AbstractControl, Options: any) {\r\n Options.IsRequired = false\r\n FormControl.removeValidators(Validators.required);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n\r\n RemoveCustomValidation(FormControl: AbstractControl, ValidationRole: any[], CustomValidation: CustomValidation) {\r\n ValidationRole = ValidationRole.filter((e) => e != CustomValidation.functionBody)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n AddCustomValidation(FormControl: AbstractControl, ValidationRole: any[], CustomValidation: CustomValidation) {\r\n ValidationRole.push(CustomValidation.functionBody)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n static getLocal(): string {\r\n let lang = localStorage.getItem('language');\r\n return lang == \"ar\" ? \"ar\" : \"en-UK\";\r\n }\r\n\r\n IsValid(FormControl: AbstractControl) {\r\n\r\n FormControl.markAsTouched();\r\n }\r\n\r\n\r\n}\r\n","export enum PickerType{\r\n Both = 1 ,\r\n Calendar = 2,\r\n Timer = 3,\r\n }","export enum StartView{\r\n Month = 1 ,\r\n Year = 2,\r\n MultiYear=3\r\n }","export enum SelectMode\r\n{\r\n Single = 1 ,\r\n Range = 2\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OnPagingFiltersChangeService {\r\n private subject = new Subject<any>();\r\n\r\n ChangeValue(value: string) {\r\n this.subject.next(value);\r\n }\r\n\r\n ClearValue() {\r\n this.subject.next();\r\n }\r\n\r\n GetValue(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable, NgModule } from '@angular/core';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { OwlDateTimeIntl } from 'ng-pick-datetime';\r\n\r\n@Injectable()\r\n// here is the default text string - just adjust the strings to reflect your preferred language\r\nexport class DefaultIntl extends OwlDateTimeIntl {\r\n constructor(private utilityService: UtilityService) {\r\n super();\r\n }\r\n\r\n /** A label for the range 'from' in picker info */\r\n rangeFromLabel = this.utilityService.getResourceValue('From');\r\n /** A label for the range 'to' in picker info */\r\n rangeToLabel = this.utilityService.getResourceValue('To');\r\n /** A label for the cancel button */\r\n cancelBtnLabel = this.utilityService.getResourceValue('Cancel');\r\n /** A label for the set button */\r\n setBtnLabel = this.utilityService.getResourceValue('Save');\r\n /** A label for the hour12 button (AM) */\r\n hour12AMLabel = this.utilityService.getResourceValue('AM');\r\n /** A label for the hour12 button (PM) */\r\n hour12PMLabel = this.utilityService.getResourceValue('PM');\r\n}\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, FormGroupDirective, ControlContainer } from '@angular/forms';\r\nimport { DatePickerOptions } from '../../Shared/Models/datePickerOptions';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { PickerType } from '../../Shared/Enums/PickerType';\r\nimport { StartView } from '../../Shared/Enums/StartView';\r\nimport { SelectMode } from '../../Shared/Enums/SelectMode';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { formatDate } from '@fullcalendar/core';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DateTimeAdapter } from 'ng-pick-datetime';\r\nimport { OwlDateTimeIntl } from 'ng-pick-datetime';\r\nimport * as dateTimeClass from 'ng-pick-datetime/date-time/date-time.class';\r\nimport { DefaultIntl } from '../../Shared/default_intl';\r\n\r\n@Component({\r\n selector: 'BBSF-DateTimePicker',\r\n templateUrl: './DateTimePicker.component.html',\r\n providers: [\r\n { provide: OwlDateTimeIntl, useClass: DefaultIntl }\r\n ],\r\n})\r\nexport class DateInputComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(public datepipe: DatePipe, private onChangeService: OnPagingFiltersChangeService, private ErrorHandler: ErrorMassageValidation, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public DateInputControlHost: FormGroupDirective, private UtilityService: UtilityService, private translate: BBSFTranslateService, private controlValidationService: ControlValidationService, private dateTimeAdapter: DateTimeAdapter<any>) {\r\n DateInputComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: DatePickerOptions;\r\n DatePickerFormControl: AbstractControl;\r\n @Output() OnChange = new EventEmitter();\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n comparedControl: AbstractControl = null;\r\n dateError: boolean = false;\r\n textDir;\r\n startView;\r\n\r\n ngOnInit() {\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n if (this.options.StartView == 3)\r\n this.startView = 'multi-year';\r\n else {\r\n this.startView = (StartView[this.options.StartView] as string).toLowerCase()\r\n }\r\n // Update the DateTimeAdapter Language with the current thread langauge\r\n this.dateTimeAdapter.setLocale(this.UtilityService.getCurrentLanguage() == \"ar\" ? \"ar\" : \"en-UK\");\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.DatePickerFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n this.DatePickerFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n if (this.options.IsDisabled) {\r\n this.DatePickerFormControl.disable();\r\n }\r\n if (this.options.StartControlToCompareWith) {\r\n if (this.group.get(this.options.StartControlToCompareWith)) {\r\n this.comparedControl = this.group.get(this.options.StartControlToCompareWith)\r\n this.subscribeDateChanges()\r\n }\r\n }\r\n\r\n this.DatePickerFormControl.setValidators(this.validationRules);\r\n this.DatePickerFormControl.setAsyncValidators(this.validationRulesasync);\r\n this.DateInputControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n getSelectMode(type: number) {\r\n let Value = (SelectMode[type] as string)\r\n return Value.toLowerCase() as dateTimeClass.SelectMode\r\n }\r\n getPickerType(type: number) {\r\n let Value = (PickerType[type] as string)\r\n return Value.toLowerCase() as dateTimeClass.PickerType\r\n }\r\n getStartView(type: number) {\r\n if (type == 3)\r\n return 'multi-year';\r\n else {\r\n const Value = (StartView[type] as string).toLowerCase()\r\n return Value\r\n }\r\n }\r\n\r\n\r\n onDateSelect(item) {\r\n if (!item)\r\n return;\r\n let DateValue;\r\n var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds\r\n\r\n if (this.options.SelectMode == 2) {\r\n for (let index = 0; index < item.value.length; index++) {\r\n item.value[index] = new Date(item.value[index] - tzoffset).toISOString().slice(0, -1);\r\n\r\n }\r\n DateValue = item.value;\r\n }\r\n else {\r\n DateValue = new Date(item.value - tzoffset).toISOString().slice(0, -1);\r\n\r\n }\r\n this.DatePickerFormControl.setValue(DateValue)\r\n this.onChangeService.ChangeValue(this.options.Name);\r\n let originalValue = DateValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n }\r\n\r\n subscribeDateChanges() {\r\n const startDateChanges = this.comparedControl.valueChanges;\r\n const endDateChanges = this.group.get(this.options.Name).valueChanges;\r\n startDateChanges.subscribe(start => {\r\n this.comparedControl.addValidators(this.checkIfStartDateBeForEndDate);\r\n this.comparedControl.updateValueAndValidity();\r\n });\r\n endDateChanges.subscribe(end => {\r\n this.DatePickerFormControl.addValidators(this.checkIfEndDateAfterStartDate);\r\n this.DatePickerFormControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n checkIfEndDateAfterStartDate = () => {\r\n if (!this.comparedControl.value || !this.group.get(this.options.Name).value) {\r\n return null;\r\n }\r\n if (new Date(this.comparedControl.value) < new Date(this.group.get(this.options.Name).value)) {\r\n this.comparedControl.setErrors(null);\r\n return null;\r\n }\r\n else {\r\n this.comparedControl.setErrors(null);\r\n return { InvalidEndDate: true };\r\n }\r\n };\r\n checkIfStartDateBeForEndDate = () => {\r\n if (!this.comparedControl.value || !this.group.get(this.options.Name).value) {\r\n return null;\r\n }\r\n if (new Date(this.comparedControl.value) < new Date(this.group.get(this.options.Name).value)) {\r\n this.group.get(this.options.Name).setErrors(null);\r\n return null;\r\n }\r\n else {\r\n this.group.get(this.options.Name).setErrors(null);\r\n return { InvalidStartDate: true };\r\n }\r\n };\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.DatePickerFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.DatePickerFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.DatePickerFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.DatePickerFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.DatePickerFormControl)\r\n }\r\n\r\n getDateValue() {\r\n return this.options.Value ? this.datepipe.transform(this.options.Value, 'MMM d, y, h:mm a') : this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { FileDTO } from \"./FileDTO\";\r\n\r\nexport class FileUploadModel \r\n{\r\n \r\n File:FileDTO\r\n}\r\n","import { FileDTO } from \"./FileDTO\";\r\n\r\nexport class MultipleFileUploadModel {\r\n CorrelationID_GUID?: string = null;\r\n UploadedFiles: FileDTO[] = []\r\n ExistingFiles: FileDTO[] = []\r\n RemovedFiles: string[] = []\r\n}\r\n","export enum ControlLayout {\r\n Vertical = 1,\r\n Horizontal = 2\r\n}\r\n","export enum LanguageMode{\r\n Both_Languages_are_visible = \"3c6dbffe-da7f-4108-b44d-4b216a22f701\" ,\r\n English_Language_only_is_visible = \"84cc1d57-1f07-42a1-a38f-1a376c12a367\",\r\n Arabic_Language_only_is_visible = \"6a3e59e0-9510-4b16-9080-9313f5c9f229\",\r\n Both_Languages_but_only_English_is_required = \"260c38bb-c90c-4aa7-895d-31aba9311a05\",\r\n Both_Languages_but_only_Arabic_is_required = \"a1f2e15f-2691-4118-975f-ac21caf8ad5a\",\r\n Current_Language_only_is_visible_and_required = \"e2ba1f44-68f3-4035-b84f-9f1b6c2b0c05\" ,\r\n Both_Languages_are_visible_but_only_current_language_is_required = \"b26431f2-b209-4c41-ab04-2d71361847c2\" \r\n }","import { Injectable } from \"@angular/core\";\r\nimport { ControlLayout } from \"../Enums/ControlLayout\";\r\nimport { ForceDirection } from \"../Enums/ForceDirection\";\r\nimport { LanguageMode } from \"../Enums/LanguageMode\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class GlobalSettings {\r\n /** to set type of view if MultilingualTextArea is Vertical or Horizontal */\r\n ViewType: ControlLayout = ControlLayout.Vertical;\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = ControlLayout.Horizontal;\r\n /**To Set LanguageMode To MultipleLanguageText */\r\n LanguageMode: LanguageMode = LanguageMode.Both_Languages_are_visible;\r\n HideAstericsWhenRequired: boolean = false;\r\n //**To set maxlength warning message when equals limit\r\n MaxLengthWarningLimit: number = 10;\r\n //**Set any texbox maxlength default value\r\n MaxLengthTextBox: number = 255;\r\n //**Set any textArea maxlength default value\r\n MaxLengthTextArea: number = 1000;\r\n //**Set default image source\r\n DefaultImageSrc: string = \"./src/assets/images/uploadimg.png\";\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { FileUploadOptions } from '../../Shared/Models/FileUploadOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject } from 'ng2-file-upload';\r\nimport { FileUploadModel } from '../../Shared/Models/FileUploadModel';\r\nimport { MultipleFileUploadModel } from '../../Shared/Models/MultipleFileUploadModel';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\n@Component({\r\n selector: 'BBSF-FileUplaod',\r\n templateUrl: './FileUplaod.component.html',\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: FileUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n fileUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n ValidationCountMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n fileUploadModel: FileUploadModel;\r\n multipleFileUploadModel: MultipleFileUploadModel;\r\n file: any;\r\n deletedFiles: FileDTO[] = [];\r\n\r\n constructor(\r\n @Optional() private controlContainer: ControlContainer,\r\n public MultipleFileUplaodControlHost: FormGroupDirective,\r\n private controlUtility: ControlUtility,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n FileUploadComponent.controlContainerstatic = this.controlContainer;\r\n this.uploader = new FileUploader({\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n\r\n });\r\n this.hasAnotherDropZoneOver = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.fileUploadModel = new FileUploadModel();\r\n this.multipleFileUploadModel = new MultipleFileUploadModel();\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.Value == null) {\r\n if (this.options.IsMultipleFile == true) {\r\n //this.options.Value=this.multipleFileUploadModel\r\n } else {\r\n // this.options.Value=this.fileUploadModel\r\n }\r\n } else {\r\n if (this.options.IsMultipleFile == true) {\r\n let files: any[] = [];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.options.Value.ExistingFiles;\r\n this.multipleFileUploadModel.UploadedFiles = [];\r\n for (\r\n let index = 0;\r\n index < this.options.Value.ExistingFiles.length;\r\n index++\r\n ) {\r\n const element = this.options.Value.ExistingFiles[index];\r\n var bytes = new Uint8Array(element.Bytes) as any;\r\n var base64 = btoa(String.fromCharCode(null, bytes));\r\n this.FileLikeObject = new FileLikeObject({\r\n name: element.NameWithExtension,\r\n type: element.MimeType,\r\n rawFile: base64,\r\n });\r\n // let blob: any;\r\n // blob = new Blob(['']) as any;\r\n // blob.name = element.FileName;\r\n // blob.lastModifiedDate = null;\r\n // blob.webkitRelativePath = '';\r\n let file = this.FileLikeObject as any;\r\n file.url = element.FileURL;\r\n files.push(file);\r\n }\r\n this.uploader.addToQueue(files);\r\n console.log(this.uploader.queue);\r\n } else {\r\n const element = this.options.Value;\r\n var bytes = new Uint8Array(element.Bytes) as any;\r\n var base64 = btoa(String.fromCharCode(null, bytes));\r\n this.FileLikeObject = new FileLikeObject({\r\n name: element.NameWithExtension,\r\n type: element.MimeType,\r\n rawFile: base64,\r\n });\r\n this.file = element;\r\n let file = this.FileLikeObject as any;\r\n file.url = element.FileURL;\r\n this.uploader.addToQueue([file as any]);\r\n }\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.FileUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.FileUploadAcceptsTypes[index];\r\n this.AcceptedType = this.AcceptedType + Type + ',';\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n switch (element) {\r\n case 'application/pdf':\r\n if (!this.ToolTipTypeArray.includes('PDF'))\r\n this.ToolTipTypeArray.push('PDF');\r\n break;\r\n case 'application/msword':\r\n if (!this.ToolTipTypeArray.includes('Word'))\r\n this.ToolTipTypeArray.push('Word');\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n if (!this.ToolTipTypeArray.includes('Word'))\r\n this.ToolTipTypeArray.push('Word');\r\n break;\r\n case 'application/vnd.ms-excel':\r\n if (!this.ToolTipTypeArray.includes('Excel'))\r\n this.ToolTipTypeArray.push('Excel');\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n if (!this.ToolTipTypeArray.includes('Excel'))\r\n this.ToolTipTypeArray.push('Excel');\r\n break;\r\n case 'application/vnd.ms-powerpoint':\r\n if (!this.ToolTipTypeArray.includes('PowerPoint'))\r\n this.ToolTipTypeArray.push('PowerPoint');\r\n break;\r\n case 'applicationapplication/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n if (!this.ToolTipTypeArray.includes('PowerPoint'))\r\n this.ToolTipTypeArray.push('PowerPoint');\r\n break;\r\n case \"image/png\":\r\n if (!this.ToolTipTypeArray.includes('PNG'))\r\n this.ToolTipTypeArray.push('PNG');\r\n break;\r\n case \"image/bmp\":\r\n if (!this.ToolTipTypeArray.includes('BMP'))\r\n this.ToolTipTypeArray.push('BMP');\r\n break;\r\n case \"image/jpeg\":\r\n if (!this.ToolTipTypeArray.includes('JPEG'))\r\n this.ToolTipTypeArray.push('JPEG');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `${this.UtilityService.getResourceValue('Extensions')} (${\r\n this.ToolTipTypeArray\r\n }) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `<br /> ${ this.UtilityService.getResourceValue('FileMaxSizeInMB')+this.options.FileMaxSizeInMB} `;\r\n }\r\n\r\n if (this.options.MinNoOfFiles > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `<br /> ${this.UtilityService.getResourceValue(\"MinFileCountValidationKey\") +this.options.MinNoOfFiles}`;\r\n }\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.fileUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if(this.options.IsMultipleFile && this.options.MaxNoOfFiles>0)\r\n {\r\n this.ValidationCountMessage=`${this.UtilityService.getResourceValue('MaxFilesCount')} : ${this.options.MaxNoOfFiles}`;\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.fileUploadFormControl.setValidators(this.validationRules);\r\n this.fileUploadFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.fileUploadFormControl.disable();\r\n }\r\n\r\n this.MultipleFileUplaodControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n\r\n this.fileUploadFormControl.setValue(this.options.Value);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n fileOverAnother(event: any): void {\r\n this.hasAnotherDropZoneOver = event;\r\n }\r\n isHideInput() {\r\n if (this.options.IsMultipleFile) {\r\n if (\r\n this.options.MaxNoOfFiles != null &&\r\n this.options.MaxNoOfFiles > 0 &&\r\n this.options.MaxNoOfFiles == this.uploader.queue.length\r\n ) {\r\n return true;\r\n }\r\n } else {\r\n if (this.uploader.queue.length > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n onFileChange() {\r\n let FilesArray = [];\r\n if (\r\n this.options.IsMultipleFile &&\r\n this.options.MinNoOfFiles != null &&\r\n this.options.MinNoOfFiles > 0 &&\r\n this.options.MinNoOfFiles > this.uploader.queue.length\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MinFileCountValidationKey: this.options.MinNoOfFiles,\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n\r\n if (\r\n this.options.IsMultipleFile &&\r\n this.options.MaxSizeForAllFilesInMB != null &&\r\n this.options.MaxSizeForAllFilesInMB > 0\r\n ) {\r\n let AllSizeFile = 0;\r\n for (let index = 0; index < this.uploader.queue.length; index++) {\r\n const element = this.uploader.queue[index];\r\n const file = element.file;\r\n AllSizeFile = AllSizeFile + file.size;\r\n }\r\n const MaxSizeForAllFiles =\r\n this.options.MaxSizeForAllFilesInMB * 1000 * 1000;\r\n if (AllSizeFile > MaxSizeForAllFiles) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MaxSizeForAllFilesInMB: this.options.MaxSizeForAllFilesInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let AddedQueue = this.uploader.queue.filter(\r\n (object) => object['some'].lastModified != null\r\n );\r\n for (let index = 0; index < AddedQueue.length; index++) {\r\n const element = AddedQueue[index];\r\n const file = element.file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let fileObject = file.rawFile as any;\r\n reader.readAsDataURL(fileObject);\r\n reader.onload = () => {\r\n let existingID_GUID = null;\r\n if (!this.options.IsMultipleFile && this.file)\r\n existingID_GUID =\r\n this.file.NameWithExtension == file.name\r\n ? this.file.ID_GUID\r\n : null;\r\n\r\n let AddedFile = {\r\n FileName: file.name,\r\n FileType: file.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: file.size / 1000 / 1000,\r\n NameWithExtension: file.name,\r\n ID_GUID: existingID_GUID,\r\n };\r\n if (this.options.IsMultipleFile == false) {\r\n this.fileUploadModel = new FileUploadModel();\r\n this.fileUploadModel.File = AddedFile;\r\n\r\n this.fileUploadFormControl.setValue(this.fileUploadModel);\r\n this.group.get(this.options.Name).setValue(this.fileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.fileUploadModel;\r\n } else {\r\n FilesArray.push(AddedFile);\r\n this.multipleFileUploadModel.UploadedFiles = FilesArray;\r\n if (this.options.Value != null && this.options.Value != undefined) {\r\n if (this.options.Value.CorrelationID_GUID == null) {\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n }\r\n }\r\n this.multipleFileUploadModel.CorrelationID_GUID=this.options.Value?.CorrelationID_GUID\r\n this.fileUploadFormControl.setValue(this.multipleFileUploadModel);\r\n this.group\r\n .get(this.options.Name)\r\n .setValue(this.multipleFileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.multipleFileUploadModel;\r\n }\r\n };\r\n let originalValue = this.group.get(this.options.Name).value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.group.get(this.options.Name).valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n this.OnChange.emit(originalValue);\r\n }\r\n }\r\n }\r\n removeFromControlValue(item) {\r\n if (this.options.IsMultipleFile == false) {\r\n this.fileUploadModel = null;\r\n if (this.options.IsRequired == true) {\r\n this.fileUploadFormControl.markAsTouched();\r\n this.fileUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(this.fileUploadModel);\r\n this.options.Value = this.fileUploadModel;\r\n } else {\r\n if (this.options.Value != null && this.options.Value != undefined) {\r\n if (this.options.Value.CorrelationID_GUID == null) {\r\n this.deletedFiles = [];\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n } else {\r\n if (this.multipleFileUploadModel.RemovedFiles.length == 0) {\r\n let FileObject = item.file.rawFile;\r\n let DeletedItem = this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n )[0];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension != FileObject.name\r\n );\r\n this.deletedFiles.push(DeletedItem);\r\n this.multipleFileUploadModel.RemovedFiles.push(DeletedItem.ID_GUID);\r\n } else {\r\n let FileObject = item.file.rawFile;\r\n let deletedList = this.deletedFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n );\r\n if (deletedList.length == 0 || deletedList == undefined) {\r\n let DeletedItem =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n )[0];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension != FileObject.name\r\n );\r\n this.deletedFiles.push(DeletedItem);\r\n this.multipleFileUploadModel.RemovedFiles.push(\r\n DeletedItem.ID_GUID\r\n );\r\n }\r\n }\r\n }\r\n } else {\r\n this.deletedFiles = [];\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n }\r\n this.multipleFileUploadModel.UploadedFiles =\r\n this.multipleFileUploadModel.UploadedFiles.filter(\r\n (Object) => Object.NameWithExtension != item._file.name\r\n );\r\n if (\r\n (this.multipleFileUploadModel.UploadedFiles == null ||\r\n this.multipleFileUploadModel.UploadedFiles.length == 0) &&\r\n this.options.IsRequired\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MinFileCountValidationKey: this.options.MinNoOfFiles,\r\n });\r\n this.fileUploadFormControl.markAsTouched();\r\n this.fileUploadFormControl.invalid;\r\n }\r\n this.multipleFileUploadModel.CorrelationID_GUID=this.options.Value?.CorrelationID_GUID\r\n this.fileUploadFormControl.setValue(this.multipleFileUploadModel);\r\n this.group.get(this.options.Name).setValue(this.multipleFileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.multipleFileUploadModel;\r\n }\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.fileUploadFormControl);\r\n };\r\n}\r\n","import { Expose, Type } from 'class-transformer';\r\nexport class EnglishArabicDTO\r\n{\r\n @Expose({name: 'english'}) English:string;\r\n @Expose({name: 'arabic'}) Arabic:string\r\n}","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ControlLayout } from '../../Shared/Enums/ControlLayout';\r\nimport { MultiLingualTextBoxOptions } from '../../Shared/Models/MultilingualTextBoxOptions';\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualTextBox',\r\n templateUrl: './MultiLingualTextBox.component.html'\r\n})\r\nexport class MultiLingualTextBoxComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n\r\n constructor(public MultiLingualTextBoxFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private translate: BBSFTranslateService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n MultiLingualTextBoxComponent.controlContainerstatic = this.controlContainer;\r\n this.CurrentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualTextBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ArabicFormControl: AbstractControl;\r\n EnglishFormControl: AbstractControl;\r\n MultiFormControl: AbstractControl;\r\n MultiLanguagegroup: FormGroup;\r\n ArabicWordCount: number = 0;\r\n ArabicWordCountArray: number = 0;\r\n EnglishWordCount: number = 0;\r\n EnglishWordCountArray: number = 0;\r\n CurrentLanguage: string = \"\";\r\n ShowArabicTextBox: boolean\r\n ShowEnglishTextBox: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n\r\n IsShowArabicWordCount: boolean = false;\r\n IsShowEnglishWordCount: boolean = false;\r\n\r\n IsShowAsteriskInArabic: boolean = false;\r\n IsShowAsteriskInEnglish: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n //For Show warning message of max length limit\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n englishCurrentCharsCount: number = 0;\r\n arabicCurrentCharsCount: number = 0;\r\n showEnglishCharsLimitMsg: boolean = false;\r\n showArabicCharsLimitMsg: boolean = false;\r\n hasEnglishCharsLimitValidationError: boolean = false;\r\n hasArabicCharsLimitValidationError: boolean = false;\r\n englishCharsLimitMsgClass: string;\r\n arabicCharsLimitMsgClass: string;\r\n englishMaxLimitWarningMsg: string = \"\";\r\n arabicMaxLimitWarningMsg: string = \"\";\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicIsRequiredAndOnly50CharactersEnglish\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n\r\n\r\n }\r\n async ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n\r\n // this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang;\r\n // this.showInputUsingLanguageMode()\r\n // });\r\n this.MultiLanguagegroup = new FormGroup({});;\r\n this.MultiLanguagegroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultiLanguagegroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicFormControl = this.MultiLanguagegroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishFormControl = this.MultiLanguagegroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultiLanguagegroup.controls));\r\n this.getCustomErrorsMassages()\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n if (!this.options.MultiControlPlacementType)\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextBox;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n\r\n\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n\r\n this.showInputUsingLanguageMode();\r\n\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.arabicValidator({ ArabicIsRequiredAndOnly50CharactersEnglish: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n\r\n this.ArabicFormControl.setValidators(this.ArabicValidationRules);\r\n this.ArabicFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n this.EnglishFormControl.setValidators(this.EnglishValidationRules);\r\n this.EnglishFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.EnglishFormControl.disable();\r\n this.ArabicFormControl.disable();\r\n }\r\n this.ArabicFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishFormControl.setValue(this.options.Value.English)\r\n\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');\r\n this.options.Value.English = this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n this.MultiLingualTextBoxFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n onTextChange() {\r\n // this.trimControlValue(type)\r\n let arabicValue = \"\";\r\n let englishValue = \"\";\r\n if (this.EnglishFormControl.value == \"\") {\r\n this.EnglishWordCountArray = 0;\r\n this.EnglishWordCount = 0;\r\n }\r\n else {\r\n if (this.EnglishFormControl.value != null && this.EnglishFormControl.value != undefined) {\r\n this.EnglishWordCountArray = this.EnglishFormControl.value.split(\" \").length;\r\n if (this.EnglishWordCountArray > 0) {\r\n if (this.EnglishWordCountArray > this.options.MaxWordCount) {\r\n this.EnglishWordCount = this.options.MaxWordCount;\r\n this.MultiLanguagegroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguagegroup.controls[\"English\"].markAsTouched();\r\n this.MultiLanguagegroup.controls[\"English\"].invalid;\r\n }\r\n else {\r\n this.EnglishWordCount = this.EnglishWordCountArray;\r\n }\r\n englishValue = this.EnglishFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.englishCurrentCharsCount = this.EnglishFormControl.value.length;\r\n if (this.englishCurrentCharsCount > this.minCharsLimit) {\r\n this.showEnglishCharsLimitMsg = true;\r\n this.hasEnglishCharsLimitValidationError = true;\r\n if (this.englishCurrentCharsCount == this.options.MaxLength)\r\n this.englishCharsLimitMsgClass = \"danger\";\r\n else\r\n this.englishCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showEnglishCharsLimitMsg = false;\r\n this.hasEnglishCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.englishCurrentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.englishMaxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n\r\n }\r\n if (this.ArabicFormControl.value == \"\") {\r\n this.ArabicWordCountArray = 0;\r\n this.ArabicWordCount = 0;\r\n }\r\n else {\r\n if (this.ArabicFormControl.value != null && this.ArabicFormControl.value != undefined) {\r\n this.ArabicWordCountArray = this.ArabicFormControl.value.split(\" \").length;\r\n if (this.ArabicWordCountArray > 0) {\r\n if (this.ArabicWordCountArray > this.options.MaxWordCount) {\r\n this.ArabicWordCount = this.options.MaxWordCount;\r\n this.MultiLanguagegroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguagegroup.controls[\"Arabic\"].markAsTouched();\r\n this.MultiLanguagegroup.controls[\"Arabic\"].invalid;\r\n }\r\n else {\r\n this.ArabicWordCount = this.ArabicWordCountArray;\r\n }\r\n arabicValue = this.ArabicFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.arabicCurrentCharsCount = this.ArabicFormControl.value.length;\r\n if (this.arabicCurrentCharsCount > this.minCharsLimit) {\r\n this.showArabicCharsLimitMsg = true;\r\n this.hasArabicCharsLimitValidationError = true;\r\n if (this.arabicCurrentCharsCount == this.options.MaxLength)\r\n this.arabicCharsLimitMsgClass = \"danger\";\r\n else\r\n this.arabicCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showArabicCharsLimitMsg = false;\r\n this.hasArabicCharsLimitValidationError = false;\r\n }\r\n\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.arabicCurrentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.arabicMaxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n }\r\n let mulitLangModel = new EnglishArabicDTO();\r\n mulitLangModel.Arabic = arabicValue;\r\n mulitLangModel.English = englishValue;\r\n // this.ArabicFormControl = arabicValue;\r\n // this.EnglishFormControl = englishValue;\r\n this.OnChange.emit(mulitLangModel)\r\n this.group.get(this.options.Name).setValue(mulitLangModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n this.MultiLingualTextBoxFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n\r\n resetError() {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.ArabicFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.EnglishFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.ArabicFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.EnglishFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.ArabicFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.EnglishFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ArabicFormControl)\r\n this.controlUtility.IsValid(this.EnglishFormControl)\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n getInputType(type: number) {\r\n return InputType[type]\r\n }\r\n\r\n trimControlValue(type: string) {\r\n const whitespace: string = ' ';\r\n if (type == \"En\") {\r\n let originalValue = this.controlUtility.trimControlValue(this.EnglishFormControl.value);\r\n this.EnglishFormControl.patchValue(originalValue)\r\n\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.EnglishFormControl.value.startsWith(whitespace) || this.EnglishFormControl.value.endsWith(whitespace)) {\r\n this.EnglishFormControl.patchValue(originalValue);\r\n }\r\n }\r\n if (type == \"Ar\") {\r\n let originalValue = this.controlUtility.trimControlValue(this.ArabicFormControl.value);\r\n this.ArabicFormControl.patchValue(originalValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n\r\n }\r\n if (this.ArabicFormControl.value.startsWith(whitespace) || this.ArabicFormControl.value.endsWith(whitespace)) {\r\n this.ArabicFormControl.patchValue(originalValue);\r\n }\r\n }\r\n\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n showInputUsingLanguageMode() {\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicFormControl.clearValidators();\r\n this.EnglishFormControl.clearValidators();\r\n\r\n this.ArabicFormControl.updateValueAndValidity();\r\n this.EnglishFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicTextBox = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = false;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicTextBox = false;\r\n this.ShowEnglishTextBox = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicFormControl.updateValueAndValidity();\r\n this.EnglishFormControl.updateValueAndValidity();\r\n\r\n }\r\n\r\n onArabicFocus(isFocus: boolean) {\r\n this.IsShowArabicWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasArabicCharsLimitValidationError) //check if there was previous validation error\r\n this.showArabicCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showArabicCharsLimitMsg = false;\r\n }\r\n\r\n onEnglishFocus(isFocus: boolean) {\r\n this.IsShowEnglishWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasEnglishCharsLimitValidationError) //check if there was previous validation error\r\n this.showEnglishCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showEnglishCharsLimitMsg = false;\r\n }\r\n\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { TextAreaOptions } from '../../Shared/Models/TextAreaOptions';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-TextArea',\r\n templateUrl: './TextArea.component.html'\r\n})\r\nexport class TextAreaComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public TextAreaControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n TextAreaComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: TextAreaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n TextAreaFormControl: AbstractControl;\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n IsShowWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n //For Show warning message of max length limit\r\n currentCharsCount: number = 0;\r\n showCharsLimitMsg: boolean = false;\r\n hasCharsLimitValidationError: boolean = false;\r\n charsLimitMsgClass: string;\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n maxLimitWarningMsg: string = \"\";\r\n public textDir;\r\n\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.TextAreaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextArea;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.TextAreaFormControl.setValue(this.options.Value);\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.TextAreaFormControl.setValidators(this.validationRules);\r\n this.TextAreaFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TextAreaFormControl.disable();\r\n }\r\n\r\n this.TextAreaControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n getInputType(type: number) {\r\n return this.controlUtility.getInputType(type)\r\n }\r\n\r\n trimControlValue() {\r\n let originalValue = this.controlUtility.trimControlValue(this.TextAreaFormControl.value);\r\n this.TextAreaFormControl.patchValue(originalValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.TextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n onTextChange() {\r\n\r\n if (this.TextAreaFormControl.value == \"\") {\r\n this.WordCountArray = 0;\r\n this.WordCount = 0;\r\n }\r\n\r\n else {\r\n this.WordCountArray = this.TextAreaFormControl.value.split(\" \").length;\r\n if (this.WordCountArray > 0) {\r\n if (this.WordCountArray > this.options.MaxWordCount) {\r\n this.WordCount = this.options.MaxWordCount;\r\n this.TextAreaFormControl.setErrors({ \"errorMassage\": ` Word count must be less then or equal ${this.options.MaxWordCount}` });\r\n this.TextAreaFormControl.markAsTouched();\r\n this.TextAreaFormControl.invalid;\r\n }\r\n else {\r\n this.WordCount = this.WordCountArray;\r\n\r\n }\r\n\r\n }\r\n }\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.currentCharsCount = this.TextAreaFormControl.value.length;\r\n if (this.currentCharsCount > this.minCharsLimit) {\r\n this.showCharsLimitMsg = true;\r\n this.hasCharsLimitValidationError = true;\r\n\r\n if (this.currentCharsCount == this.options.MaxLength)\r\n this.charsLimitMsgClass = \"danger\";\r\n else\r\n this.charsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showCharsLimitMsg = false;\r\n this.hasCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.currentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.maxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n this.OnChange.emit(this.TextAreaFormControl.value)\r\n\r\n }\r\n\r\n onFocus(isFocus: boolean) {\r\n this.IsShowWordCount = isFocus;\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasCharsLimitValidationError) //check if there was previous validation error\r\n this.showCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showCharsLimitMsg = false;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.TextAreaFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.TextAreaFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.TextAreaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.TextAreaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TextAreaFormControl)\r\n }\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { MultiLingualTextAreaOptions } from '../../Shared/Models/MultiLingualTextAreaOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ControlLayout } from '../../Shared/Enums/ControlLayout';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualTextArea',\r\n templateUrl: './MultiLingualTextArea.component.html'\r\n})\r\nexport class MultiLingualTextAreaComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n IsShowAsteriskInArabic: boolean;\r\n IsShowAsteriskInEnglish: boolean;\r\n constructor(public MultiLingualTextAreaFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n MultiLingualTextAreaComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualTextAreaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ArabicTextAreaFormControl: AbstractControl;\r\n EnglishTextAreaFormControl: AbstractControl;\r\n MultiTextAreaFormControl: AbstractControl;\r\n MultiLanguageTextAreagroup: FormGroup;\r\n ArabicWordCount: number = 0;\r\n ArabicWordCountArray: number = 0;\r\n EnglishWordCount: number = 0;\r\n EnglishWordCountArray: number = 0;\r\n CurrentLanguage: string = \"\";\r\n ShowArabicTextArea: boolean\r\n ShowEngishTextArea: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n validationRules = [];\r\n validationRulesasync = [];\r\n IsShowArabicWordCount: boolean = false;\r\n IsShowEnglishWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n //For Show warning message of max length limit\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n englishCurrentCharsCount: number = 0;\r\n arabicCurrentCharsCount: number = 0;\r\n showEnglishCharsLimitMsg: boolean = false;\r\n showArabicCharsLimitMsg: boolean = false;\r\n hasEnglishCharsLimitValidationError: boolean = false;\r\n hasArabicCharsLimitValidationError: boolean = false;\r\n englishCharsLimitMsgClass: string;\r\n arabicCharsLimitMsgClass: string;\r\n englishMaxLimitWarningMsg: string = \"\";\r\n arabicMaxLimitWarningMsg: string = \"\";\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicIsRequiredAndOnly50CharactersEnglish\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n\r\n\r\n }\r\n\r\n async ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n // UtilityService.Translator.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang\r\n // this.showInputUsingLanguageMode();\r\n\r\n // });\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n if (!this.options.MultiControlPlacementType)\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextArea;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n\r\n this.MultiLanguageTextAreagroup = new FormGroup({});\r\n this.MultiLanguageTextAreagroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultiLanguageTextAreagroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicTextAreaFormControl = this.MultiLanguageTextAreagroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishTextAreaFormControl = this.MultiLanguageTextAreagroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultiLanguageTextAreagroup.controls));\r\n this.getCustomErrorsMassages()\r\n\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n\r\n ]));\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n\r\n ]));\r\n break;\r\n\r\n case InputType.Number:\r\n this.EnglishValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n this.ArabicValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n break;\r\n }\r\n\r\n\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n\r\n this.showInputUsingLanguageMode();\r\n\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.arabicValidator({ ArabicIsRequiredAndOnly50CharactersEnglish: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- \\n]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n\r\n this.ArabicTextAreaFormControl.setValidators(this.ArabicValidationRules);\r\n this.ArabicTextAreaFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n this.EnglishTextAreaFormControl.setValidators(this.EnglishValidationRules);\r\n this.EnglishTextAreaFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n\r\n\r\n if (this.options.IsDisabled) {\r\n this.EnglishTextAreaFormControl.disable();\r\n this.ArabicTextAreaFormControl.disable();\r\n }\r\n this.ArabicTextAreaFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishTextAreaFormControl.setValue(this.options.Value.English)\r\n\r\n this.MultiLingualTextAreaFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');\r\n this.options.Value.English = this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n }\r\n\r\n\r\n onTextChange() {\r\n let arabicValue = \"\";\r\n let englishValue = \"\";\r\n if (this.EnglishTextAreaFormControl.value == \"\") {\r\n this.EnglishWordCountArray = 0;\r\n this.EnglishWordCount = 0;\r\n }\r\n else {\r\n if (this.EnglishTextAreaFormControl.value != null || this.EnglishTextAreaFormControl.value != undefined) {\r\n this.EnglishWordCountArray = this.EnglishTextAreaFormControl.value.split(\" \").length;\r\n if (this.EnglishWordCountArray > 0) {\r\n if (this.EnglishWordCountArray > this.options.MaxWordCount) {\r\n this.EnglishWordCount = this.options.MaxWordCount;\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].markAsTouched();\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].invalid;\r\n }\r\n else {\r\n this.EnglishWordCount = this.EnglishWordCountArray;\r\n }\r\n englishValue = this.EnglishTextAreaFormControl.value;\r\n\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.englishCurrentCharsCount = this.EnglishTextAreaFormControl.value.length;\r\n if (this.englishCurrentCharsCount > this.minCharsLimit) {\r\n this.showEnglishCharsLimitMsg = true;\r\n this.hasEnglishCharsLimitValidationError = true;\r\n if (this.englishCurrentCharsCount == this.options.MaxLength)\r\n this.englishCharsLimitMsgClass = \"danger\";\r\n else\r\n this.englishCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showEnglishCharsLimitMsg = false;\r\n this.hasEnglishCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.englishCurrentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.englishMaxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n }\r\n if (this.ArabicTextAreaFormControl.value == \"\") {\r\n this.ArabicWordCountArray = 0;\r\n this.ArabicWordCount = 0;\r\n }\r\n else {\r\n if (this.ArabicTextAreaFormControl.value != null || this.ArabicTextAreaFormControl.value != undefined) {\r\n this.ArabicWordCountArray = this.ArabicTextAreaFormControl.value.split(\" \").length;\r\n if (this.ArabicWordCountArray > 0) {\r\n if (this.ArabicWordCountArray > this.options.MaxWordCount) {\r\n this.ArabicWordCount = this.options.MaxWordCount;\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].markAsTouched();\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].invalid;\r\n }\r\n else {\r\n this.ArabicWordCount = this.ArabicWordCountArray;\r\n }\r\n arabicValue = this.ArabicTextAreaFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.arabicCurrentCharsCount = this.ArabicTextAreaFormControl.value.length;\r\n if (this.arabicCurrentCharsCount > this.minCharsLimit) {\r\n this.showArabicCharsLimitMsg = true;\r\n this.hasArabicCharsLimitValidationError = true;\r\n if (this.arabicCurrentCharsCount == this.options.MaxLength)\r\n this.arabicCharsLimitMsgClass = \"danger\";\r\n else\r\n this.arabicCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showArabicCharsLimitMsg = false;\r\n this.hasArabicCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.arabicCurrentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.arabicMaxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n }\r\n let mulitLangModel = new EnglishArabicDTO();\r\n mulitLangModel.Arabic = arabicValue;\r\n mulitLangModel.English = englishValue;\r\n this.OnChange.emit(mulitLangModel)\r\n this.group.get(this.options.Name).setValue(mulitLangModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getInputType(type: number) {\r\n return InputType[type]\r\n }\r\n\r\n trimControlValue(type: string) {\r\n const whitespace: string = ' ';\r\n if (type == \"En\") {\r\n let originalValue = this.EnglishTextAreaFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishTextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.EnglishTextAreaFormControl.value.startsWith(whitespace) || this.EnglishTextAreaFormControl.value.endsWith(whitespace)) {\r\n this.EnglishTextAreaFormControl.patchValue(originalValue);\r\n }\r\n }\r\n if (type == \"Ar\") {\r\n let originalValue = this.ArabicTextAreaFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicTextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.ArabicTextAreaFormControl.value.startsWith(whitespace) || this.ArabicTextAreaFormControl.value.endsWith(whitespace)) {\r\n this.ArabicTextAreaFormControl.patchValue(originalValue);\r\n }\r\n }\r\n\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n\r\n showInputUsingLanguageMode() {\r\n\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicTextAreaFormControl.clearValidators();\r\n this.EnglishTextAreaFormControl.clearValidators();\r\n\r\n this.ArabicTextAreaFormControl.updateValueAndValidity();\r\n this.EnglishTextAreaFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicTextArea = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = false;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicTextArea = false;\r\n this.ShowEngishTextArea = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicTextAreaFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishTextAreaFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicTextAreaFormControl.updateValueAndValidity();\r\n this.EnglishTextAreaFormControl.updateValueAndValidity();\r\n }\r\n\r\n\r\n onArabicFocus(isFocus: boolean) {\r\n this.IsShowArabicWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasArabicCharsLimitValidationError) //check if there was previous validation error\r\n this.showArabicCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showArabicCharsLimitMsg = false;\r\n }\r\n\r\n onEnglishFocus(isFocus: boolean) {\r\n this.IsShowEnglishWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasEnglishCharsLimitValidationError) //check if there was previous validation error\r\n this.showEnglishCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showEnglishCharsLimitMsg = false;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.EnglishTextAreaFormControl)\r\n this.controlUtility.IsValid(this.ArabicTextAreaFormControl)\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { CheckBoxOptions } from '../../Shared/Models/CheckBoxOptions';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-CheckBox',\r\n templateUrl: './CheckBox.component.html'\r\n})\r\nexport class CheckBoxComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public CheckBoxControlHost: FormGroupDirective,private UtilityService:UtilityService,private translate: BBSFTranslateService,private controlValidationService:ControlValidationService) {\r\n CheckBoxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: CheckBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n CheckBoxFormControl: AbstractControl;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.CheckBoxFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.validationRules = [];\r\n this.validationRulesasync = [];\r\n this.CheckBoxFormControl.setValue(this.options.Value);\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n\r\n this.CheckBoxFormControl.setValidators(this.validationRules);\r\n this.CheckBoxFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.CheckBoxFormControl.disable();\r\n }\r\n\r\n this.CheckBoxControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n this.OnChange.emit(this.CheckBoxFormControl.value)\r\n let originalValue =this.CheckBoxFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.CheckBoxFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.CheckBoxFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.CheckBoxFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.CheckBoxFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.CheckBoxFormControl)\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, FormGroupDirective, ControlContainer } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { DropdownOptions } from '../../Shared/Models/DropdownOptions';\r\nimport { DropdownListItem } from '../../Shared/Models/DropdownListItem';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-DropdownList',\r\n templateUrl: './DropdownList.component.html'\r\n})\r\nexport class DropdownListComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private onChangeService: OnPagingFiltersChangeService, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public DropdownListControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n DropdownListComponent.controlContainerstatic = this.controlContainer;\r\n //console.log(environment[\"BBSF_AdminUrl\"]);\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: DropdownOptions;\r\n DropdownListFormControl: AbstractControl;\r\n dropdownSettings = {};\r\n SelectedItems: DropdownListItem[]\r\n SelectedList: any[] = []\r\n @Output() OnChange = new EventEmitter();\r\n @Output() onClear = new EventEmitter();\r\n\r\n markAllAsTouched: boolean = false;\r\n\r\n controlChanged: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n ngOnInit() {\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.SelectedList = this.options.SelectedItems\r\n this.dropdownSettings = {\r\n singleSelection: this.options.SingleSelection,\r\n text: \"Select\",\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n enableSearchFilter: this.options.AllowSearchFilter,\r\n classes: this.options.Classes,\r\n disabled: this.options.IsDisabled,\r\n showCheckbox: this.options.ShowCheckbox,\r\n enableCheckAll: this.options.EnableCheckAll,\r\n itemsShowLimit: this.options.ItemsShowLimit,\r\n allowSearchFilter: this.options.AllowSearchFilter,\r\n showSelectedItemsAtTop: true,\r\n limitSelection: this.options.LimitSelection,\r\n searchPlaceholderText: this.options.Placeholder,\r\n labelKey: \"value\",\r\n primaryKey: \"key\"\r\n };\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.DropdownListFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.DropdownListFormControl.setValidators(this.validationRules);\r\n this.DropdownListFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.DropdownListFormControl.disable();\r\n }\r\n\r\n this.DropdownListControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getSelectedItemValue() {\r\n if (this.options.SelectedItems) {\r\n if (this.options.SingleSelection)\r\n return this.options.DataSource.filter(item => item[this.options.ItemTempletkey] == this.options.SelectedItems)[0][this.options.ItemTempletvalue]\r\n else\r\n return this.options.DataSource.filter(item => this.options.SelectedItems.includes(item[this.options.ItemTempletkey])).map(item => item[this.options.ItemTempletvalue])\r\n } else\r\n return this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n onItemSelect() {\r\n this.onChangeService.ChangeValue(this.options.Name)\r\n let originalValue = this.options.SelectedItems;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n this.OnChange.emit(originalValue)\r\n //console.log(this.DropdownListFormControl.value)\r\n }\r\n Clear() {\r\n //console.log(\"Clear\")\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n this.onChangeService.ChangeValue(this.options.Name)\r\n this.OnChange.emit()\r\n }\r\n onSelectAll(items) {\r\n this.SelectedItems = items;\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n }\r\n onDeselect(items) {\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n if ((this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n\r\n }\r\n onDeselectAll(items) {\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n if ((this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n }\r\n\r\n onDropDownClose() {\r\n if ((this.SelectedItems == undefined || this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.DropdownListFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.DropdownListFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.DropdownListFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.DropdownListFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.DropdownListFormControl)\r\n }\r\n\r\n //Update items (data source) of drop down\r\n UpdateDataSource = (dataSource: DropdownListItem[]) => {\r\n this.options.DataSource = dataSource;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { CountryISO, SearchCountryField } from 'ngx-intl-tel-input';\r\nimport { Country } from '../../Shared/Enums/Countries';\r\nimport { PhoneOptions } from '../../Shared/Models/PhoneOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n selector: 'BBSF-Phone',\r\n templateUrl: './Phone.component.html'\r\n})\r\nexport class PhoneComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public PhoneControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n PhoneComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: PhoneOptions;\r\n @Output() OnChange = new EventEmitter();\r\n PhoneFormControl: AbstractControl;\r\n SearchCountryField = SearchCountryField;\r\n // TooltipLabel = TooltipLabel;\r\n markAllAsTouched: boolean = false\r\n validationRules = [];\r\n validationRulesasync = [];\r\n separateDialCode = false;\r\n textDir;\r\n\r\n ngOnInit() {\r\n\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.PhoneFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.PhoneFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.PhoneFormControl.setValidators(this.validationRules);\r\n this.PhoneFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.PhoneFormControl.disable();\r\n }\r\n\r\n this.PhoneControlHost.ngSubmit.subscribe(() => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n let Number = this.PhoneFormControl.value.internationalNumber as string;\r\n let originalValue = this.controlUtility.trimControlValue(Number);\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n this.OnChange.emit(originalValue);\r\n }\r\n getSelectedCountry(selectedCountry: Country) {\r\n let value = selectedCountry as string;\r\n return value as CountryISO\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.PhoneFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.PhoneFormControl, this.validationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.PhoneFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.PhoneFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.PhoneFormControl)\r\n }\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, NgZone, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { HtmlEditorOptions } from '../../Shared/Models/HtmlEditorOptions';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-HtmlEditor',\r\n templateUrl: './HtmlEditor.component.html'\r\n})\r\nexport class HtmlEditorComponent implements OnInit {\r\n\r\n editorConfig: AngularEditorConfig\r\n static controlContainerstatic = null;\r\n constructor(private zone: NgZone, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public HtmlEditorControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n HtmlEditorComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: HtmlEditorOptions;\r\n @Output() OnChange = new EventEmitter();\r\n HtmlEditorFormControl: AbstractControl;\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n markAllAsTouched: boolean = false;\r\n Config: any\r\n miscList: any\r\n styleList: any\r\n fontsizeList: any\r\n paraList: any\r\n insertList: any\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.editorConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: `${this.options.Height}rem`,\r\n minHeight: `${this.options.Height}rem`,\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.Placeholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n {class: 'arial', name: 'Arial'},\r\n {class: 'times-new-roman', name: 'Times New Roman'},\r\n {class: 'calibri', name: 'Calibri'},\r\n {class: 'comic-sans-ms', name: 'Comic Sans MS'}\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [\r\n 'link',\r\n 'unlink',\r\n 'insertImage',\r\n 'insertVideo',\r\n 'insertHorizontalRule',\r\n ]\r\n ]\r\n };\r\n this.controlValidationService.isCreatedBefor = false\r\n // this.miscList = this.options.ToolsList_Misc != null ? this.options.ToolsList_Misc : ['codeview', 'undo', 'redo'];\r\n // this.styleList = this.options.ToolsList_Style != null ? this.options.ToolsList_Style : ['bold', 'italic', 'underline', 'clear']\r\n // this.fontsizeList = this.options.ToolsList_FontSize != null ? this.options.ToolsList_FontSize : ['fontname', 'fontsize', 'color']\r\n // this.paraList = this.options.ToolsList_Para != null ? this.options.ToolsList_Para : ['style', 'ul', 'ol', 'paragraph', 'height']\r\n // this.insertList = this.options.ToolsList_Insert != null ? this.options.ToolsList_Insert : ['table', 'picture', 'link', 'video', 'hr']\r\n\r\n // this.Config = {\r\n // callbacks: {\r\n // // onChange: (e) => {\r\n\r\n // // this.zone.run(() => {\r\n // // this.onTextChange();\r\n // // });\r\n // // },\r\n // // onKeyup: (e) => {\r\n // // this.zone.run(() => {\r\n // // ;\r\n // // this.onTextChange();\r\n // // });\r\n // // },\r\n // // onKeydown: (e) => {\r\n // // this.zone.run(() => {\r\n // // ;\r\n // // if (this.WordCountArray > this.options.MaxWordCount && e.keyCode != 8) {\r\n // // e.preventDefault();\r\n // // }\r\n\r\n // // });\r\n // // }\r\n // },\r\n // placeholder: this.options.Placeholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.HtmlEditorFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.HtmlEditorFormControl.setValue(this.options.Value);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.HtmlEditorFormControl.setValidators(this.validationRules);\r\n this.HtmlEditorFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.HtmlEditorFormControl.disable();\r\n }\r\n\r\n this.HtmlEditorControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n\r\n let angularEditor = document.getElementsByClassName(\"angular-editor-toolbar ng-star-inserted\")[0]\r\n let dir =this.UtilityService.getCurrentLanguage()==\"en\"?\"ltr\":\"rtl\"\r\n angularEditor.setAttribute(\"dir\",dir);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n onValueChanged() {\r\n this.HtmlEditorFormControl.setValue(this.HtmlEditorFormControl.value.trim());\r\n let originalValue = this.controlUtility.trimControlValue(this.HtmlEditorFormControl.value);\r\n if (this.options.PatchFunction && this.options.PatchPath && this.HtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value=originalValue;\r\n this.OnChange.emit(originalValue)\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.HtmlEditorFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.HtmlEditorFormControl, this.validationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.HtmlEditorFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.HtmlEditorFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.HtmlEditorFormControl)\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { MultiLingualHtmlEditorOptions } from '../../Shared/Models/MultiLingualHtmlEditorOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualHtmlEditor',\r\n templateUrl: './MultiLingualHtmlEditor.component.html'\r\n})\r\nexport class MultiLingualHtmlEditorComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n IsShowAsteriskInArabic: boolean;\r\n IsShowAsteriskInEnglish: boolean;\r\n constructor(public MultiLingualHtmlEditorFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n MultiLingualHtmlEditorComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualHtmlEditorOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n\r\n ArabicHtmlEditorFormControl: AbstractControl;\r\n EnglishHtmlEditorFormControl: AbstractControl;\r\n MultiTextAreaFormControl: AbstractControl;\r\n MultilingualHtmlEditorgroup: FormGroup;\r\n ArabicConfig: any\r\n EnglishConfig: any\r\n editorEnglishConfig: AngularEditorConfig\r\n editorArabicConfig: AngularEditorConfig\r\n\r\n miscList: any\r\n styleList: any\r\n fontsizeList: any\r\n paraList: any\r\n insertList: any\r\n\r\n CurrentLanguage: string = \"\";;\r\n ShowArabicHtmlEditor: boolean\r\n ShowEnglishHtmlEditor: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n englishValue = null\r\n arabicValue = null\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicLetterOnly\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n }\r\n\r\n\r\n async ngOnInit() {\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n\r\n this.editorEnglishConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: this.options.Height.toString(),\r\n minHeight: this.options.Height.toString(),\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.EnglishPlaceholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n\r\n ]\r\n };\r\n\r\n\r\n this.editorArabicConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: this.options.Height.toString(),\r\n minHeight: this.options.Height.toString(),\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.ArabicPlaceholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n\r\n ]\r\n };\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n\r\n // UtilityService.Translator.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang\r\n // this.showInputUsingLanguageMode();\r\n\r\n // });\r\n // this.miscList = this.options.ToolsList_Misc != null ? this.options.ToolsList_Misc : ['codeview', 'undo', 'redo'];\r\n // this.styleList = this.options.ToolsList_Style != null ? this.options.ToolsList_Style : ['bold', 'italic', 'underline', 'clear']\r\n // this.fontsizeList = this.options.ToolsList_FontSize != null ? this.options.ToolsList_FontSize : ['fontname', 'fontsize', 'color']\r\n // this.paraList = this.options.ToolsList_Para != null ? this.options.ToolsList_Para : ['style', 'ul', 'ol', 'paragraph', 'height']\r\n // this.insertList = this.options.ToolsList_Insert != null ? this.options.ToolsList_Insert : ['table', 'picture', 'link', 'video', 'hr']\r\n\r\n // this.ArabicConfig = {\r\n // placeholder: this.options.ArabicPlaceholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n // this.EnglishConfig = {\r\n // placeholder: this.options.EnglishPlaceholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n this.MultilingualHtmlEditorgroup = new FormGroup({});;\r\n this.MultilingualHtmlEditorgroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultilingualHtmlEditorgroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicHtmlEditorFormControl = this.MultilingualHtmlEditorgroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishHtmlEditorFormControl = this.MultilingualHtmlEditorgroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultilingualHtmlEditorgroup.controls));\r\n this.getCustomErrorsMassages();\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n ]));\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n ]));\r\n break;\r\n case InputType.Number:\r\n this.EnglishValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n this.ArabicValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n break;\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n this.showInputUsingLanguageMode();\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[\\u0621-\\u064A\\u0660-\\u0669 ]+$/, { ArabicLetterOnly: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n // this.ArabicHtmlEditorFormControl.setValidators(this.ArabicValidationRules);\r\n // this.ArabicHtmlEditorFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n\r\n // this.EnglishHtmlEditorFormControl.setValidators(this.EnglishValidationRules);\r\n // this.EnglishHtmlEditorFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n\r\n if (this.options.IsDisabled) {\r\n this.EnglishHtmlEditorFormControl.disable();\r\n this.ArabicHtmlEditorFormControl.disable();\r\n }\r\n this.ArabicHtmlEditorFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishHtmlEditorFormControl.setValue(this.options.Value.English)\r\n this.MultiLingualHtmlEditorFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let dir = this.UtilityService.getCurrentLanguage() == \"en\" ? \"ltr\" : \"rtl\"\r\n var angularEditor = document.getElementsByClassName(\"angular-editor-toolbar ng-star-inserted\");\r\n for (let index = 0; index < angularEditor.length; index++) {\r\n const element = angularEditor[index];\r\n element.setAttribute(\"dir\", dir);\r\n }\r\n }\r\n onTextChange(type: string) {\r\n\r\n if (type == \"en\") {\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].setValue(this.MultilingualHtmlEditorgroup.controls[\"English\"].value.trim());\r\n this.englishValue = this.MultilingualHtmlEditorgroup.controls[\"English\"].value == null ? \"\" : this.MultilingualHtmlEditorgroup.controls[\"English\"].value;\r\n if (this.englishValue) {\r\n this.EnglishHtmlEditorFormControl.setValue(this.englishValue);\r\n let originalValue = this.englishValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishHtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n let EngliswordCountArray = (this.EnglishHtmlEditorFormControl.value as string).split(\" \").length\r\n if (EngliswordCountArray > 0) {\r\n if (EngliswordCountArray > this.options.MaxWordCount)\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount })\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].markAsTouched()\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].invalid\r\n\r\n }\r\n\r\n }\r\n\r\n if (type == \"ar\") {\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].setValue(this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value.trim());\r\n\r\n this.arabicValue = this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value == null ? \"\" : this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value;\r\n\r\n if (this.arabicValue) {\r\n this.ArabicHtmlEditorFormControl.setValue(this.arabicValue);\r\n let originalValue = this.arabicValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicHtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n\r\n let ArabicwordCountArray = (this.ArabicHtmlEditorFormControl.value as string).split(\" \").length\r\n if (ArabicwordCountArray > 0) {\r\n if (ArabicwordCountArray > this.options.MaxWordCount)\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount })\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].markAsTouched()\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].invalid\r\n\r\n }\r\n }\r\n\r\n let mulitLangModel = new EnglishArabicDTO()\r\n mulitLangModel.Arabic = this.arabicValue;\r\n mulitLangModel.English = this.englishValue\r\n this.OnChange.emit(mulitLangModel)\r\n if (this.arabicValue && this.englishValue)\r\n this.group.get(this.options.Name).setValue(mulitLangModel)\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n\r\n showInputUsingLanguageMode() {\r\n\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicHtmlEditorFormControl.clearValidators();\r\n this.EnglishHtmlEditorFormControl.clearValidators();\r\n\r\n this.ArabicHtmlEditorFormControl.updateValueAndValidity();\r\n this.EnglishHtmlEditorFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicHtmlEditor = true;\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEnglishHtmlEditor = true;\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = false;\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicHtmlEditor = false;\r\n this.ShowEnglishHtmlEditor = true;\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicHtmlEditorFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishHtmlEditorFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicHtmlEditorFormControl.updateValueAndValidity();\r\n this.EnglishHtmlEditorFormControl.updateValueAndValidity();\r\n\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.EnglishHtmlEditorFormControl)\r\n this.controlUtility.IsValid(this.ArabicHtmlEditorFormControl)\r\n }\r\n}\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n NgZone,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject } from 'ng2-file-upload';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\nimport { ImageUploadOptions } from '../../Shared/Models/ImageUploadOptions';\r\nimport { CropperComponent } from 'angular-cropperjs';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'BBSF-ImageUpload',\r\n templateUrl: './ImageUpload.component.html',\r\n})\r\nexport class ImageUploaderComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n files: File[] = [];\r\n ImageSource: string;\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: ImageUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ImageUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n control: FormControl;\r\n @ViewChild('angularCropper', { static: false })\r\n public angularCropper: CropperComponent;\r\n imgUrl = null;\r\n config = null;\r\n imageUrl = '';\r\n imgwUrl = '';\r\n EventFile: any;\r\n mdlSampleIsOpen: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n maxFileSize: number = 0;\r\n constructor(\r\n private zone: NgZone,\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public ImageUplaoderControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings,\r\n private modalService: NgbModal\r\n ) {\r\n ImageUploaderComponent.controlContainerstatic = this.controlContainer;\r\n this.uploader = new FileUploader({\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n });\r\n this.hasAnotherDropZoneOver = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (!this.options.DefaultImageSrc)\r\n this.options.DefaultImageSrc = this.globalSettings.DefaultImageSrc;\r\n\r\n //Set img src by default value\r\n // this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n if (this.options.AllowImageCropper) {\r\n this.config = {\r\n aspectRatio:\r\n this.options.ImageCropperWidth / this.options.ImageCropperHeight,\r\n dragMode: 'move',\r\n background: true,\r\n movable: true,\r\n rotatable: true,\r\n scalable: true,\r\n zoomable: true,\r\n viewMode: 1,\r\n checkImageOrigin: true,\r\n modal: true,\r\n checkCrossOrigin: false,\r\n width: this.options.ImageCropperWidth,\r\n height: this.options.ImageCropperHeight,\r\n cropBoxResizable: false,\r\n autoCrop: true,\r\n };\r\n }\r\n\r\n if (this.options.FileUploadAcceptsTypes != null) {\r\n this.options.FileUploadAcceptsTypes;\r\n }\r\n if (this.options.Value != null) {\r\n let imgURL = this.options.Value['fileURL'];\r\n if (imgURL != '' && imgURL != undefined && imgURL != null) {\r\n this.ImageSource = imgURL;\r\n this.imageUrl = imgURL;\r\n }\r\n\r\n let element = this.options.Value;\r\n this.FileLikeObject = new FileLikeObject({\r\n name: element.FileName,\r\n size: element.FileSizeInMB * 1000 * 1000,\r\n type: element.FileType,\r\n });\r\n this.uploader.addToQueue([this.FileLikeObject as any]);\r\n }\r\n\r\n if (this.options.FileMaxSizeInMB)\r\n this.maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.FileUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.FileUploadAcceptsTypes[index];\r\n this.AcceptedType = this.AcceptedType.toUpperCase() + Type.toUpperCase();\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n const TypeToolTipe = element.split('/')[1];\r\n this.ToolTipTypeArray.push(TypeToolTipe.toUpperCase());\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n this.UtilityService.getResourceValue('AllowedTypes') +\r\n ` (${this.ToolTipTypeArray}) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n ` <br /> ${this.UtilityService.getResourceValue('FileMaxSizeInMB')} ${\r\n this.options.FileMaxSizeInMB\r\n }`;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ImageUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.Value != null)\r\n this.group.get(this.options.Name).setValue(this.options.Value);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.ImageUploadFormControl.setValidators(this.validationRules);\r\n this.ImageUploadFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.ImageUploadFormControl.disable();\r\n }\r\n this.ImageUplaoderControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n showImageUploader(element: HTMLElement) {\r\n let input = element.parentElement.parentElement.querySelector(\r\n 'input[type=file]'\r\n ) as HTMLElement;\r\n input.click();\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n onFileChange(event) {\r\n if (event.rejectedFiles.length > 0) {\r\n const file = event.rejectedFiles[0];\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let FilesArray = [];\r\n for (let index = 0; index < event.addedFiles.length; index++) {\r\n const file = event.addedFiles[0];\r\n this.EventFile = file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let FileObject = file;\r\n reader.readAsDataURL(FileObject);\r\n reader.onload = () => {\r\n if (this.options.AllowImageCropper) {\r\n this.imageUrl = reader.result.toString();\r\n this.openModal(true);\r\n } else {\r\n let FileObject: FileDTO = {\r\n FileName: file.name,\r\n FileType: file.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: file.size / 1000 / 1000,\r\n NameWithExtension: file.name,\r\n };\r\n this.options.Value = FileObject;\r\n FilesArray.push(FileObject);\r\n this.group.get(this.options.Name).setValue(FileObject);\r\n this.files = [];\r\n this.files.push(...event.addedFiles);\r\n }\r\n let originalValue = this.ImageUploadFormControl.value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.ImageUploadFormControl.valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n };\r\n }\r\n }\r\n }\r\n\r\n removeFromControlValue(event) {\r\n let ItemList = this.group.get(this.options.Name).value;\r\n this.files = [];\r\n ItemList = null;\r\n //Set Img src by default image (upload)\r\n this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n if (this.files.length == 0 && this.options.IsRequired) {\r\n this.ImageUploadFormControl.markAsTouched();\r\n this.ImageUploadFormControl.setErrors(Validators.required);\r\n this.ImageUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(ItemList);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.group.get(this.options.Name).value;\r\n }\r\n\r\n cropImage() {\r\n let ImageCropperObject = this.angularCropper.cropper.getCroppedCanvas({\r\n width: this.options.ImageCropperWidth,\r\n height: this.options.ImageCropperHeight,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n ImageCropperObject.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getBlobFile(blob);\r\n });\r\n });\r\n }\r\n\r\n getBlobFile(blob) {\r\n let FilesArray = [];\r\n let BlobFile;\r\n let reader = new FileReader();\r\n BlobFile = blob;\r\n reader.readAsDataURL(BlobFile);\r\n reader.onload = () => {\r\n let FileObject: FileDTO = {\r\n FileName: this.EventFile.name,\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n NameWithExtension: this.EventFile.name,\r\n };\r\n BlobFile.name = this.EventFile.name;\r\n\r\n FilesArray.push(FileObject);\r\n this.group.get(this.options.Name).setValue(FileObject);\r\n this.options.Value = FileObject;\r\n this.files = [];\r\n this.files.push(BlobFile);\r\n this.openModal(false);\r\n };\r\n }\r\n\r\n rotateImage(degree: number) {\r\n this.angularCropper.cropper.rotate(degree);\r\n }\r\n moveImage(offsetX: number, offsetY: number) {\r\n this.angularCropper.cropper.move(offsetX, offsetY);\r\n }\r\n zoomImage(ratio: number) {\r\n this.angularCropper.cropper.zoom(ratio);\r\n }\r\n\r\n openModal(open: boolean): void {\r\n this.mdlSampleIsOpen = open;\r\n }\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ImageUploadFormControl);\r\n };\r\n}\r\n","import { FileDTO } from './FileDTO'\r\n\r\nexport class ProfilePictureDTO\r\n{\r\n ImageID_GUID:string\r\n ImageIDEncrypted:string\r\n FileName:string\r\n MediumPicture:string\r\n SmallPicture:string\r\n Original:string\r\n profilePicture:FileDTO\r\n AvatarPicture:FileDTO\r\n OriginalPicture:FileDTO\r\n FileURL?: string;\r\n}","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n NgZone,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject } from 'ng2-file-upload';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\nimport { CropperComponent } from 'angular-cropperjs';\r\nimport { ProfileImageUploadOptions } from '../../Shared/Models/ProfileImageUploadOptions';\r\nimport { ProfilePictureDTO } from '../../Shared/Models/ProfilePictureDTO';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-ProfileImageUploader',\r\n templateUrl: './ProfileImageUploader.component.html',\r\n})\r\nexport class ProfileImageUploaderComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n files: File[] = [];\r\n ImageSource: string = './src/assets/images/user.svg';\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: ProfileImageUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n ProfileImageUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n ProfilePictureDTO: ProfilePictureDTO;\r\n control: FormControl;\r\n markAllAsTouched: boolean = false;\r\n\r\n @ViewChild('angularCropper', { static: false })\r\n public angularCropper: CropperComponent;\r\n imgUrl = null;\r\n config = null;\r\n imageUrl = '';\r\n imgwUrl = '';\r\n EventFile: any;\r\n mdlSampleIsOpen: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n\r\n constructor(\r\n private zone: NgZone,\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public ProfileImageUploaderControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n ProfileImageUploaderComponent.controlContainerstatic =\r\n this.controlContainer;\r\n this.uploader = new FileUploader({\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n });\r\n this.hasAnotherDropZoneOver = false;\r\n this.ProfilePictureDTO = new ProfilePictureDTO();\r\n }\r\n\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (\r\n this.options.DefaultImageSrc != null &&\r\n this.options.DefaultImageSrc != ''\r\n )\r\n this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n this.config = {\r\n aspectRatio: 200 / 200,\r\n dragMode: 'move',\r\n background: true,\r\n movable: true,\r\n rotatable: true,\r\n scalable: true,\r\n zoomable: true,\r\n viewMode: 1,\r\n checkImageOrigin: true,\r\n modal: true,\r\n checkCrossOrigin: false,\r\n cropBoxResizable: false,\r\n autoCrop: true,\r\n };\r\n\r\n if (this.options.ImageUploadAcceptsTypes != null) {\r\n this.options.ImageUploadAcceptsTypes;\r\n }\r\n if (this.options.Value != null) {\r\n let imgURL = this.options.Value['fileURL'];\r\n if (imgURL != '' && imgURL != undefined && imgURL != null)\r\n this.ImageSource = imgURL;\r\n\r\n let element = this.options.Value;\r\n this.FileLikeObject = new FileLikeObject({\r\n name: element.FileName,\r\n });\r\n this.uploader.addToQueue([this.FileLikeObject as any]);\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.ImageUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.ImageUploadAcceptsTypes[index];\r\n this.AcceptedType =\r\n this.AcceptedType.toUpperCase() + Type.toUpperCase();\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n const TypeToolTipe = element.split('/')[1];\r\n this.ToolTipTypeArray.push(TypeToolTipe.toUpperCase());\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n this.UtilityService.getResourceValue('AllowedTypes') +\r\n ` (${this.ToolTipTypeArray}) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n ` <br /> ${this.UtilityService.getResourceValue('FileMaxSizeInMB')} ${\r\n this.options.FileMaxSizeInMB\r\n }`;\r\n }\r\n if(\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0\r\n ){\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ProfileImageUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.ProfileImageUploadFormControl.setValidators(this.validationRules);\r\n this.ProfileImageUploadFormControl.setAsyncValidators(\r\n this.validationRulesasync\r\n );\r\n if (this.options.IsDisabled) {\r\n this.ProfileImageUploadFormControl.disable();\r\n }\r\n\r\n this.ProfileImageUploaderControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n\r\n showImageUploader(element: HTMLElement) {\r\n let input = element.parentElement.parentElement.querySelector(\r\n 'input[type=file]'\r\n ) as HTMLElement;\r\n input.click();\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n onFileChange(event) {\r\n if (event.rejectedFiles.length > 0) {\r\n const file = event.rejectedFiles[0];\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let FilesArray = [];\r\n for (let index = 0; index < event.addedFiles.length; index++) {\r\n const file = event.addedFiles[0];\r\n this.EventFile = file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let FileObject = file;\r\n reader.readAsDataURL(FileObject);\r\n reader.onload = () => {\r\n this.imageUrl = reader.result.toString();\r\n this.openModal(true);\r\n let originalValue = this.group.get(this.options.Name).value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.group.get(this.options.Name).valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n };\r\n }\r\n }\r\n }\r\n removeFromControlValue(event) {\r\n let ItemList = this.group.get(this.options.Name).value;\r\n this.files.splice(this.files.indexOf(event), 1);\r\n ItemList = [];\r\n if (this.files.length == 0 && this.options.IsRequired) {\r\n this.ProfileImageUploadFormControl.markAsTouched();\r\n this.ProfileImageUploadFormControl.setErrors(Validators.required);\r\n this.ProfileImageUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(ItemList);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n this.options.Value = this.group.get(this.options.Name).value;\r\n }\r\n cropImage() {\r\n this.ProfilePictureDTO.FileName = this.EventFile.name;\r\n let Cropper = this.angularCropper.cropper;\r\n let profilePicturCropper = Cropper.getCroppedCanvas({\r\n width: 400,\r\n height: 400,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n let AvatarPictureCropper = Cropper.getCroppedCanvas({\r\n width: 100,\r\n height: 100,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n let OriginalPictureCropper = Cropper.getCroppedCanvas({\r\n width: 700,\r\n height: 700,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n profilePicturCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'profilePicturCropper');\r\n });\r\n });\r\n AvatarPictureCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'AvatarPictureCropper');\r\n });\r\n });\r\n OriginalPictureCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'OriginalPictureCropper');\r\n });\r\n });\r\n\r\n this.files = [];\r\n\r\n this.openModal(false);\r\n }\r\n getProfileImageBlobFile(blob, type) {\r\n let FilesArray = [];\r\n let BlobFile;\r\n let reader = new FileReader();\r\n BlobFile = blob;\r\n reader.readAsDataURL(BlobFile);\r\n reader.onload = () => {\r\n let FileObject: FileDTO;\r\n switch (type) {\r\n case 'profilePicturCropper':\r\n BlobFile.name = this.EventFile.name + 'MediumPicture';\r\n FileObject = {\r\n FileName: this.EventFile.name + 'MediumPicture',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.profilePicture = FileObject;\r\n this.ProfilePictureDTO.MediumPicture =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n this.files.push(BlobFile);\r\n break;\r\n case 'AvatarPictureCropper':\r\n FileObject = {\r\n FileName: this.EventFile.name + 'SmallPicture',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.AvatarPicture = FileObject;\r\n this.ProfilePictureDTO.SmallPicture =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n break;\r\n\r\n case 'OriginalPictureCropper':\r\n FileObject = {\r\n FileName: this.EventFile.name + 'Original',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.OriginalPicture = FileObject;\r\n this.ProfilePictureDTO.Original =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n this.group.get(this.options.Name).setValue(this.ProfilePictureDTO);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.options.Value = this.ProfilePictureDTO;\r\n };\r\n }\r\n\r\n rotateImage(degree: number) {\r\n this.angularCropper.cropper.rotate(degree);\r\n }\r\n moveImage(offsetX: number, offsetY: number) {\r\n this.angularCropper.cropper.move(offsetX, offsetY);\r\n }\r\n zoomImage(ratio: number) {\r\n this.angularCropper.cropper.zoom(ratio);\r\n }\r\n\r\n openModal(open: boolean): void {\r\n this.mdlSampleIsOpen = open;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ProfileImageUploadFormControl);\r\n };\r\n}\r\n","export class AutocompleteDTO\r\n{\r\n key: string=\"\";\r\n value: string = \"\";\r\n image: string = \"\";\r\n \r\n}\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter, Attribute } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { AutocompleteOptions } from '../../Shared/Models/AutocompleteOptions';\r\nimport { AutocompleteDTO } from '../../Shared/Models/AutocompleteDTO';\r\nimport { noop, Observable, Observer, of } from 'rxjs';\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-AutocompleteTextBox',\r\n templateUrl: './AutocompleteTextBox.component.html'\r\n})\r\nexport class AutocompleteTextBoxComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private http: HttpClient, private ErrorHandler: ErrorMassageValidation, private requestHandlerService: RequestHandlerService,\r\n private controlUtility: ControlUtility, @Optional() private controlContainer:\r\n ControlContainer, public AutocompleteTextBoxControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n AutocompleteTextBoxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: AutocompleteOptions;\r\n @Output() OnChange = new EventEmitter();\r\n keyword: string = 'value'\r\n AutocompleteTextBoxControl: AbstractControl;\r\n Search: string = ''\r\n Key: string = ''\r\n\r\n Api: string = 'http';\r\n Value: string = 'value'\r\n NewSelectionValidationKey: string = '';\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n dataSource: Observable<any>;\r\n suggestions$: Observable<any[]>;\r\n errorMessage: string;\r\n dataList: any[] = [];\r\n SelectedValue: string = \"\"\r\n avatarImage: string = \"./src/assets/images/userimg.png\";\r\n textDir;\r\n\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.AutocompleteTextBoxControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n // this.AutocompleteTextBoxControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.AutocompleteTextBoxControl.setValidators(this.validationRules);\r\n this.AutocompleteTextBoxControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.AutocompleteTextBoxControl.disable();\r\n }\r\n\r\n\r\n if (this.options.SelectedValue != undefined && this.options.SelectedValue != null) {\r\n this.SelectedValue = this.options.SelectedValue;\r\n }\r\n\r\n\r\n this.AutocompleteTextBoxControlHost.ngSubmit.subscribe((value) => {\r\n if (this.AutocompleteTextBoxControl.value == this.Search && this.options.AllowNewSelection == false) {\r\n this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n this.AutocompleteTextBoxControl.markAsTouched();\r\n this.AutocompleteTextBoxControl.invalid;\r\n }\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.options.ValidationToken\r\n }),\r\n };\r\n\r\n\r\n\r\n\r\n this.suggestions$ = new Observable((observer: Observer<string>) => {\r\n observer.next(this.Search);\r\n }).pipe(\r\n switchMap((query: string) => {\r\n if (query) {\r\n let params = new HttpParams();\r\n params = params.append(this.options.QueryParam, query);\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n // using github public api to get users by name\r\n return this.requestHandlerService.get(this.options.ActionURL, params, null, requestOptionsModel)\r\n .pipe(\r\n map((data) => data as Attribute[] || []),\r\n tap(() => noop, err => {\r\n // in case of http error\r\n this.errorMessage = err && err.message || 'Something goes wrong';\r\n })\r\n );\r\n }\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n\r\n getErrorValidation(ErrorList) {\r\n\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n\r\n selectEvent(item) {\r\n\r\n if (this.options.AllowNewSelection == true) {\r\n if (typeof (item) == 'object') {\r\n this.AutocompleteTextBoxControl.setValue(item);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n\r\n\r\n }\r\n else {\r\n let AutocompleteModel = new AutocompleteDTO();\r\n AutocompleteModel.value = item;\r\n this.AutocompleteTextBoxControl.setValue(AutocompleteModel);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n }\r\n\r\n }\r\n else {\r\n\r\n if (this.AutocompleteTextBoxControl.value == item.value) {\r\n this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n this.AutocompleteTextBoxControl.markAsTouched();\r\n this.AutocompleteTextBoxControl.invalid;\r\n return;\r\n }\r\n else {\r\n this.AutocompleteTextBoxControl.setValue(item);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n let originalValue = this.AutocompleteTextBoxControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n this.OnChange.emit(this.AutocompleteTextBoxControl.value)\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.AutocompleteTextBoxControl.value;\r\n }\r\n }\r\n }\r\n\r\n async onChangeSearch(search: string) {\r\n if(this.options.MaxLength&&search.length>this.options.MaxLength)\r\n {\r\n const formControl = this.AutocompleteTextBoxControl;\r\n formControl.setErrors({ errorMassage:this.UtilityService.getResourceValue(\"MaxLenghtValidationKey\")+\" \"+this.options.MaxLength });\r\n formControl.markAsTouched();\r\n return;\r\n }\r\n this.Search = search;\r\n this.SelectedValue = \"\";\r\n await this.suggestions$.subscribe((result) => {\r\n if ((result == null || result.length == 0 || result.length == 0) && this.options.AllowNewSelection == true) {\r\n this.dataList = [\r\n {\r\n key: 0,\r\n value: this.Search\r\n }\r\n ]\r\n }\r\n else {\r\n this.dataList = result\r\n }\r\n })\r\n }\r\n\r\n onInputCleared()\r\n {\r\n this.AutocompleteTextBoxControl.setValue(null);\r\n this.OnChange.emit(null);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n }\r\n // onFocused(e) {\r\n // // do something\r\n // }\r\n\r\n\r\n // onBlur(Value) {\r\n // if (this.options.AllowNewSelection == true) {\r\n\r\n // if (typeof (Value) == 'object') {\r\n // this.AutocompleteTextBoxControl.setValue(Value);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n\r\n // }\r\n // else {\r\n // let AutocompleteModel = new AutocompleteDTO();\r\n // AutocompleteModel.value = Value;\r\n // let model = new TypeaheadMatch(AutocompleteModel,Value);\r\n // this.AutocompleteTextBoxControl.setValue(model);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n\r\n // }\r\n // }\r\n\r\n // else {\r\n\r\n // if (this.AutocompleteTextBoxControl.value == Value) {\r\n // this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n // this.AutocompleteTextBoxControl.markAsTouched();\r\n // this.AutocompleteTextBoxControl.invalid;\r\n // return;\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n // handleResultSelected(result) {\r\n\r\n // this.AutocompleteTextBoxControl.setValue(result);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n // this.OnChange.emit(this.AutocompleteTextBoxControl.value)\r\n // this.Search = this.AutocompleteTextBoxControl.value.value\r\n\r\n\r\n\r\n // }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.AutocompleteTextBoxControl)\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter, OnDestroy, OnChanges, SimpleChanges, SimpleChange, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { TagsInputOptions } from '../../Shared/Models/TagsInputOptions';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { EMPTY, Observable, Subscription } from 'rxjs';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-TagsInput',\r\n templateUrl: './TagsInput.component.html'\r\n})\r\nexport class TagsInputComponent implements OnInit, OnDestroy {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private http: HttpClient, private controlUtility: ControlUtility, private requestHandlerService: RequestHandlerService, @Optional() private controlContainer: ControlContainer, public TagsInputControlHost: FormGroupDirective,\r\n private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n TagsInputComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n\r\n @Input() group: FormGroup;\r\n @Input() options: TagsInputOptions;\r\n @Output() OnChange = new EventEmitter();\r\n @ViewChild('SearchKey', { static: false }) SearchKey: any;\r\n\r\n // TagInputControl: AbstractControl;\r\n SelectedId: any[] = []\r\n tags = [];\r\n NewSelectionValidationKey: string = \"\";\r\n TagsFormGroup: FormGroup;\r\n TagsFormControl: AbstractControl\r\n IsNoMatch: any;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n changeValueSubscription: Subscription;\r\n SearchResultHasItems: boolean = false;\r\n textDir;\r\n static showErrorOfInputs(errors: any) {\r\n const controlContainerstatic = TagsInputComponent.controlContainerstatic;\r\n const formGroup = controlContainerstatic.control as FormGroup;\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const formControl = formGroup.get(key) as FormControl;\r\n formControl.setErrors({ \"FluentApi\": iterator });\r\n formControl.markAsTouched();\r\n }\r\n }\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n if (this.changeValueSubscription)\r\n this.changeValueSubscription.unsubscribe();\r\n }\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.options.DatasourceItemText = this.options.DatasourceItemText.toLowerCase();\r\n this.TagsFormGroup = new FormGroup({});;\r\n this.TagsFormGroup.addControl(\"tags\", new FormControl(''));\r\n this.TagsFormControl = this.TagsFormGroup.controls[\"tags\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, this.TagsFormControl);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n if (!this.options.NoResultText)\r\n this.options.NoResultText = this.UtilityService.getResourceValue(\"NoItemsMatch\");\r\n\r\n // this.group.addControl(this.options.Name, new FormControl(''));\r\n // this.TagInputControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n this.TagsFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n this.TagsFormControl.setValidators(this.validationRules);\r\n this.TagsFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TagsFormControl.disable();\r\n }\r\n\r\n if (this.options.Value != undefined && this.options.Value.length > 0) {\r\n for (let index = 0; index < this.options.Value.length; index++) {\r\n const element = this.options.Value[index];\r\n this.SelectedId.push(element.id);\r\n }\r\n this.tags = this.options.Value\r\n this.TagsFormControl.setValue(this.options.Value);\r\n }\r\n\r\n this.TagsInputControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n });\r\n //Check for changing in value\r\n this.changeValueSubscription = this.TagsFormControl.valueChanges.subscribe(c => {\r\n this.tags = this.TagsFormControl.value;\r\n this.SelectedId = this.tags?.filter(item => item.id).map(item => item.id);\r\n if (this.tags == null) {\r\n this.SearchKey.selected = \"\";\r\n this.tags = [];\r\n this.TagsFormControl.setValue([])\r\n }\r\n });\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n }\r\n let inputElement = document.getElementById(this.options.Name).getElementsByTagName(\"input\")[0]\r\n inputElement.setAttribute(\"autocomplete\", \"off\")\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n searchFunctionFactory(Text: any): Observable<object> {\r\n //If no text then return empty observable\r\n if (!Text)\r\n return EMPTY;\r\n\r\n let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${encodeURIComponent(Text)}&${this.options.SelectedItemsParamName}=${this.SelectedId}`\r\n if (this.options.ExtraFilters)\r\n Url = Url + `&${this.options.ExtraFilters}`\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n let Model = this.requestHandlerService.get(Url, null, null, requestOptionsModel);\r\n return Model as any;\r\n }\r\n\r\n AddTag(event, key) {\r\n //Check if input is yab press\r\n if (event.key === \"Tab\")\r\n return;\r\n //Check if input is enter press\r\n if (this.IsNoMatch == true && event.key == \"Enter\" && this.options.AllowNewSelection && key.selected) {\r\n if (!(this.tags.length >= this.options.MaxNumberTags)) {\r\n this.tags.push({ name: key.selected });\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.group.get(this.options.Name).markAllAsTouched();\r\n this.group.updateValueAndValidity();\r\n if (this.group.get(this.options.Name).valid) {\r\n key.selected = null;\r\n return;\r\n }\r\n else\r\n this.tags.pop();\r\n }\r\n }\r\n //Check if input is charachter\r\n else if (String.fromCharCode(event.keyCode).match(/(\\w|\\s)/g)) {\r\n if (this.IsNoMatch && !this.options.AllowNewSelection && key.selected) {\r\n this.TagsFormControl.setErrors({ \"errorMassage\": this.options.NoResultText });\r\n this.TagsFormControl.markAsTouched();\r\n }\r\n else if (this.IsNoMatch == false && this.options.AllowNewSelection == false) {\r\n this.TagsFormControl.clearValidators();\r\n this.TagsFormControl.updateValueAndValidity();\r\n }\r\n }\r\n //Remove unmatched error incase of deleting search value\r\n else if (event.key === \"Backspace\" && key.selected?.length <= 1 && this.TagsFormControl.hasError('errorMassage')) {\r\n this.TagsFormControl.setErrors({ \"errorMassage\": null });\r\n this.TagsFormControl.updateValueAndValidity();\r\n if (this.SelectedId?.length == 0 && this.options.IsRequired) {\r\n this.TagsFormControl.setErrors({ required: \"\" });\r\n this.TagsFormControl.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n onTagsChanged(result) {\r\n //console.log(this.tags)\r\n if (result[\"change\"] == \"add\") {\r\n this.SelectedId.push(result.tag.id);\r\n }\r\n if (result[\"change\"] == \"remove\") {\r\n this.SelectedId = this.SelectedId.filter((item) => item != result.tag.id);\r\n if (this.SelectedId.length == 0 && this.options.IsRequired == true) {\r\n this.TagsFormControl.setErrors({ required: \"\" });\r\n this.TagsFormControl.markAsTouched();\r\n this.TagsFormControl.invalid;\r\n }\r\n }\r\n let originalValue = this.TagsFormControl.value.map(function (a) { return a.id; });\r\n if (this.options.PatchFunction && this.options.PatchPath && this.TagsFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);\r\n }\r\n this.options.Value = this.tags\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.TagsFormControl.updateValueAndValidity();\r\n this.group.updateValueAndValidity();\r\n this.OnChange.emit(originalValue);\r\n }\r\n\r\n onNoOptionsMatch(event) {\r\n this.IsNoMatch = event;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.TagsFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.TagsFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.TagsFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.TagsFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TagsFormControl)\r\n }\r\n\r\n onTagsInputBlur(SearchKey) {\r\n if (SearchKey.selected && this.options.AllowNewSelection && this.IsNoMatch && this.tags.length < this.options.MaxNumberTags) {\r\n this.tags.push({ name: SearchKey.selected });\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.group.get(this.options.Name).markAllAsTouched();\r\n this.group.updateValueAndValidity();\r\n if (this.group.get(this.options.Name).valid) {\r\n SearchKey.selected = null;\r\n return;\r\n }\r\n else\r\n this.tags.pop();\r\n }\r\n }\r\n getTagsValue() {\r\n if (this.tags.length > 0)\r\n return this.tags.map(item => item.name)\r\n }\r\n\r\n}\r\n","export class PagingDTO{\r\n constructor(){\r\n\r\n }\r\n TotalCount:number=0\r\n PageCount:number=10\r\n CurrentPageNumber:number=1\r\n IsFilterUpdated:boolean=false\r\n Skip:number=0\r\n Take:number=0\r\n DevMode:boolean=true\r\n AddedItemsCount:number=0\r\n}","\r\nexport enum FilterType {\r\n TextBox = 1,\r\n DropdownList = 2,\r\n AutocompleteTextBox = 3,\r\n DatePicker = 4,\r\n TagInput = 5,\r\n CheckBox = 6,\r\n Other=7\r\n}","import { Component, OnInit, Output, EventEmitter, Input, SimpleChanges, ElementRef, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { PagingDTO } from '../../Shared/Models/PagingDTO';\r\nimport { PagingOptions } from '../../Shared/Models/PagingOptions';\r\nimport { RequestOptions, ResponseContentType, Headers } from '@angular/http';\r\nimport { Subject, Observable, Subscription } from 'rxjs';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { FilterType } from '../../Shared/Enums/FilterType';\r\nimport { RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { plainToClass } from 'class-transformer';\r\nimport { PagingPayload } from '../../Shared/Models/PagingPayload';\r\n\r\n// tslint:disable-next-line: no-conflicting-lifecycle\r\n@Component({\r\n selector: 'BBSF-Paging',\r\n templateUrl: './Paging.component.html'\r\n})\r\nexport class PagingComponent<T> implements OnInit, OnDestroy {\r\n\r\n items = [];\r\n pageOfItems: Array<any>;\r\n result: T[] = [];\r\n pagerConfig: any = null;\r\n totalRow: any = 0;\r\n pageSize: any = 10\r\n Pages: any = 0\r\n pagesText: string;\r\n itemsText: string;\r\n CurrentPage: any = 1\r\n ShowPageSizeOption = true;\r\n ShowFirstAndLast = true;\r\n hidePaginationWhenPageSizeEqualOne = true\r\n Sum = 0;\r\n Throttle = 300;\r\n ScrollDistance = 1;\r\n ScrollUpDistance = 2;\r\n direction = '';\r\n Headers: HttpHeaders;\r\n IsFirstCall: boolean = true;\r\n @Output() Items: EventEmitter<T[]> = new EventEmitter<T[]>();\r\n @Input() options: PagingOptions;\r\n @Input() group: FormGroup;\r\n subscriptions = new Subscription();\r\n\r\n constructor(public utilityService: UtilityService, private http: HttpClient, private router: Router, private onChangeService: OnPagingFiltersChangeService, private requestHandlerService: RequestHandlerService) {\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe()\r\n }\r\n\r\n ngOnInit() {\r\n if (this.options.IsLoadMoreControl)\r\n this.Sum = this.options.PageSize;\r\n\r\n if (this.options.DropdownFiltersControlNames != null && this.options.DropdownFiltersControlNames.length > 0) {\r\n const DropdownFiltersControlNames = this.options.DropdownFiltersControlNames;\r\n this.subscriptions.add(\r\n this.onChangeService.GetValue().subscribe((value) => {\r\n let result = this.options.DropdownFiltersControlNames.filter((item) => item == value)\r\n if (result.length > 0) {\r\n this.IsFirstCall = true;\r\n this.CurrentPage = 1;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }))\r\n }\r\n\r\n if (this.options.BootstrapDatePickersFiltersControlNames != null && this.options.BootstrapDatePickersFiltersControlNames.length > 0) {\r\n const BootstrapDatePickersFiltersControlNames = this.options.BootstrapDatePickersFiltersControlNames;\r\n this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {\r\n let result = this.options.BootstrapDatePickersFiltersControlNames.filter((item) => item == value)\r\n if (result.length > 0) {\r\n this.IsFirstCall = true;\r\n this.CurrentPage = 1;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }))\r\n }\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n ngAfterViewInit(): void {\r\n\r\n if (this.options.OnClickFiltersControlNames != null && this.options.OnClickFiltersControlNames.length > 0) {\r\n const OnClickFiltersControlNames = this.options.OnClickFiltersControlNames;\r\n for (let index = 0; index < OnClickFiltersControlNames.length; index++) {\r\n const OnClickFiltersControlName = OnClickFiltersControlNames[index];\r\n document.getElementById(OnClickFiltersControlName).addEventListener(\"click\", () => {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }, false);\r\n }\r\n }\r\n if (this.options.OnKeyPressFiltersControlNames != null && this.options.OnKeyPressFiltersControlNames.length > 0) {\r\n const OnKeyPressFiltersControlNames = this.options.OnKeyPressFiltersControlNames;\r\n for (let index = 0; index < OnKeyPressFiltersControlNames.length; index++) {\r\n const OnKeyPressFiltersControlName = OnKeyPressFiltersControlNames[index];\r\n let element = (<any>this.group.get(OnKeyPressFiltersControlName)).nativeElement as HTMLElement;\r\n element.addEventListener(\"keypress\", (e) => {\r\n if (e.key == \"Enter\") {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }, false);\r\n }\r\n }\r\n //Add click event on Reset Filter button\r\n if (this.options.ResetFilterButtonName != null) {\r\n const button = document.getElementsByName(this.options.ResetFilterButtonName)[0];\r\n if (button != undefined) {\r\n let element = button as HTMLElement;\r\n element.addEventListener(\"click\", (e) => {\r\n this.clearFilters();\r\n }, false);\r\n }\r\n }\r\n if (this.options.TypeaheadSearchControlNames != null && this.options.TypeaheadSearchControlNames.length > 0) {\r\n const TypeaheadSearchControlNames = this.options.TypeaheadSearchControlNames;\r\n for (let index = 0; index < TypeaheadSearchControlNames.length; index++) {\r\n const TypeaheadSearchControlName = TypeaheadSearchControlNames[index];\r\n document.getElementById(TypeaheadSearchControlName).addEventListener(\"keypress\", (e) => {\r\n if (e.key == \"Enter\") {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }, false);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n onDropDownChange(result) {\r\n if (result) {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }\r\n\r\n onChangePage(Page) {\r\n if (Page == 0)\r\n return;\r\n if (Page > 0) {\r\n if (this.IsFirstCall) {\r\n this.IsFirstCall = false;\r\n return;\r\n }\r\n this.CurrentPage = Page;\r\n this.getItemList(Page);\r\n }\r\n }\r\n changePageSize(e) {\r\n this.options.PageSize = e.target.value;\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n\r\n\r\n\r\n\r\n onScrollDown() {\r\n this.Sum += this.options.PageSize\r\n this.CurrentPage = 1\r\n this.IsFirstCall = true;\r\n this.direction = 'down';\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n\r\n\r\n\r\n getItemList(page, IsFilterUpdated = false) {\r\n if (this.options.StartPagingCallback)\r\n this.options.StartPagingCallback.call(null);\r\n\r\n let pagingDTO = new PagingDTO();\r\n let size = Number.parseInt(this.options.PageSize.toString());\r\n if (this.options.IsLoadMoreControl)\r\n pagingDTO.PageCount = this.Sum;\r\n else\r\n pagingDTO.PageCount = size;\r\n\r\n pagingDTO.CurrentPageNumber = page;\r\n pagingDTO.TotalCount = this.totalRow;\r\n pagingDTO.IsFilterUpdated = IsFilterUpdated;\r\n let filters = {};\r\n filters = this.getFiltersValue();\r\n\r\n //Set Filters object that sent to action URL\r\n let filtersDTO: PagingPayload = {\r\n PagingDTO: pagingDTO,\r\n Filters: filters\r\n };\r\n\r\n let requestOptions = new RequestOptionsModel();\r\n requestOptions.disableBlockUI = this.options.DisableBlockUI;\r\n this.requestHandlerService.post(this.options.ActionPostURL, this.options.Filters && this.options.Filters.length > 0 ? filtersDTO : pagingDTO, null, null, requestOptions)\r\n .subscribe((responseData: any) => {\r\n this.result = responseData.items //this.castItems(responseData.items);\r\n let castedResult = plainToClass(this.options.TypeOfResponse, this.result, { excludeExtraneousValues: true })\r\n this.Items.emit(castedResult);\r\n this.totalRow = responseData.totalCount;\r\n\r\n if (IsFilterUpdated) {\r\n this.items = [];\r\n this.Pages = Math.ceil((this.totalRow / this.options.PageSize));\r\n this.items = Array(this.totalRow);\r\n\r\n this.setText(this.Pages, this.totalRow);\r\n\r\n }\r\n }, (error: HttpErrorResponse) => {\r\n if (error.status == 401)\r\n this.router.navigate([\"/Admin/account/login\"])\r\n });\r\n }\r\n\r\n ReinitializePaging = () => {\r\n this.IsFirstCall = true;\r\n this.getItemList(1, true);\r\n }\r\n\r\n UpdatePaging = () => {\r\n //this.IsFirstCall=true;\r\n this.getItemList(this.CurrentPage);\r\n }\r\n\r\n castItems(objectArr: any[]): T[] {\r\n let originalArray: T[] = []\r\n for (let index = 0; index < objectArr.length; index++) {\r\n const element = objectArr[index];\r\n let key, keys = Object.keys(element);\r\n let n = keys.length;\r\n let newObject = {}\r\n while (n--) {\r\n key = keys[n];\r\n let Okey = key\r\n newObject[key.charAt(0).toUpperCase() + Okey.slice(1)] = element[key];\r\n }\r\n let finalObject = newObject as T\r\n originalArray.push(finalObject)\r\n }\r\n\r\n return originalArray;\r\n }\r\n\r\n setText(pagesNumber: number, itemsNumber: number) {\r\n if (this.utilityService.isCurrentLanguageArabic()) {\r\n //Set pages text\r\n if (pagesNumber < 3 || pagesNumber > 10)\r\n this.pagesText = this.utilityService.getResourceValue(\"Page\");\r\n else\r\n this.pagesText = this.utilityService.getResourceValue(\"Pages\");\r\n //Set items text\r\n if (itemsNumber < 3 || itemsNumber > 10)\r\n this.itemsText = this.utilityService.getResourceValue(\"Item\");\r\n else\r\n this.itemsText = this.utilityService.getResourceValue(\"Items\");\r\n }\r\n else {\r\n //Set pages text\r\n if (pagesNumber > 1)\r\n this.pagesText = this.utilityService.getResourceValue(\"Pages\");\r\n else\r\n this.pagesText = this.utilityService.getResourceValue(\"Page\");\r\n //Set items text\r\n if (itemsNumber > 1)\r\n this.itemsText = this.utilityService.getResourceValue(\"Items\");\r\n else\r\n this.itemsText = this.utilityService.getResourceValue(\"Item\");\r\n }\r\n }\r\n\r\n clearFilters() {\r\n if (this.options.Filters != null && this.options.Filters != []) {\r\n for (let index = 0; index < this.options.Filters.length; index++) {\r\n if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != \"\") {\r\n const FormControlName = this.options.Filters[index].FormControlName;\r\n this.group.controls[FormControlName].setValue(null);\r\n }\r\n }\r\n this.ReinitializePaging();\r\n }\r\n }\r\n\r\n getFiltersValue() {\r\n let filters = {};\r\n if (this.options.Filters != null && this.options.Filters != []) {\r\n for (let index = 0; index < this.options.Filters.length; index++) {\r\n if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != \"\") {\r\n const FormControlName = this.options.Filters[index].FormControlName;\r\n let ControlValue = this.group.controls[FormControlName].value;\r\n if (ControlValue != undefined && ControlValue != null && ControlValue != \"\") {\r\n if (this.options.Filters[index].FilterType == FilterType.DatePicker) {\r\n //if (Array.isArray(ControlValue)) {\r\n // for (let element = 0; element < ControlValue.length; element++) {\r\n // const value = ControlValue[element];\r\n // filters[this.options.Filters[index].ActionParameterName] = value;\r\n // }\r\n //}\r\n //else {\r\n filters[this.options.Filters[index].ActionParameterName] = ControlValue;\r\n //}\r\n }\r\n else {\r\n if (this.options.Filters[index].FilterType == FilterType.AutocompleteTextBox)\r\n ControlValue = ControlValue;\r\n if (this.options.Filters[index].FilterType == FilterType.TagInput)\r\n ControlValue = ControlValue;\r\n\r\n filters[this.options.Filters[index].ActionParameterName] = ControlValue;\r\n }\r\n }\r\n else {\r\n filters[this.options.Filters[index].ActionParameterName] = null;\r\n }\r\n }\r\n else {\r\n const ElementjQuerySelector = this.options.Filters[index].jQuerySelector;\r\n let ElementValue = (document.querySelector(ElementjQuerySelector) as HTMLInputElement).value;\r\n if (ElementValue != undefined && ElementValue != null)\r\n filters[this.options.Filters[index].ActionParameterName] = ElementValue;\r\n else\r\n filters[this.options.Filters[index].ActionParameterName] = null;\r\n }\r\n }\r\n }\r\n return filters;\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'jw-pagination',\r\n template: `\r\n <ul *ngIf=\"pager.pages && pager.pages.length\" class=\"pagination\">\r\n <li *ngIf=\"ShowFirstAndLast\" [ngClass]=\"{disabled:pager.currentPage === 1}\" class=\"page-item first-item\">\r\n <a (click)=\"setPage(1)\" class=\"page-link\">❮❮</a>\r\n </li>\r\n <li [ngClass]=\"{disabled:pager.currentPage === 1}\" class=\"page-item previous-item\">\r\n <a (click)=\"setPage(pager.currentPage - 1)\" class=\"page-link\">❮</a>\r\n </li>\r\n <li *ngFor=\"let page of pager.pages\" [ngClass]=\"{active:pager.currentPage === page}\" class=\"page-item number-item\">\r\n <a (click)=\"setPage(page)\" class=\"page-link\">{{page}}</a>\r\n </li>\r\n <li [ngClass]=\"{disabled:pager.currentPage === pager.totalPages}\" class=\"page-item next-item\">\r\n <a (click)=\"setPage(pager.currentPage + 1)\" class=\"page-link\">❯</a>\r\n </li>\r\n <li *ngIf=\"ShowFirstAndLast\" [ngClass]=\"{disabled:pager.currentPage === pager.totalPages}\" class=\"page-item last-item\">\r\n <a (click)=\"setPage(pager.totalPages)\" class=\"page-link\">❯❯</a>\r\n </li>\r\n</ul>\r\n`\r\n})\r\n\r\nexport class JwPaginationComponent implements OnInit, OnChanges {\r\n @Input() items: Array<any>;\r\n @Output() changePage = new EventEmitter();\r\n @Input() initialPage = 1;\r\n @Input() pageSize = 10;\r\n @Input() maxPages = 10;\r\n @Input() ShowFirstAndLast = false;\r\n\r\n\r\n pager: any = {};\r\n\r\n ngOnInit() {\r\n // set page if items array isn't empty\r\n if (this.items && this.items.length) {\r\n this.setPage(this.initialPage);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items.firstChange)\r\n return\r\n // reset page if items array has changed\r\n if (changes.items.currentValue !== changes.items.previousValue) {\r\n this.setPage(this.initialPage);\r\n }\r\n }\r\n\r\n setPage(page: number) {\r\n // get new pager object for specified page\r\n this.pager = this.paginate(this.items.length, page, this.pageSize, this.maxPages);\r\n\r\n // get new page of items from items array\r\n var pageOfItems = this.items.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n // call change page function in parent component\r\n this.changePage.emit(this.pager.currentPage);\r\n }\r\n\r\n paginate(totalItems, currentPage, pageSize, maxPages) {\r\n if (currentPage === void 0) { currentPage = 1; }\r\n if (pageSize === void 0) { pageSize = 10; }\r\n if (maxPages === void 0) { maxPages = 10; }\r\n // calculate total pages\r\n var totalPages = Math.ceil(totalItems / pageSize);\r\n // ensure current page isn't out of range\r\n if (currentPage < 1) {\r\n currentPage = 1;\r\n }\r\n else if (currentPage > totalPages) {\r\n currentPage = totalPages;\r\n }\r\n var startPage, endPage;\r\n if (totalPages <= maxPages) {\r\n // total pages less than max so show all pages\r\n startPage = 1;\r\n endPage = totalPages;\r\n }\r\n else {\r\n // total pages more than max so calculate start and end pages\r\n var maxPagesBeforeCurrentPage = Math.floor(maxPages / 2);\r\n var maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1;\r\n if (currentPage <= maxPagesBeforeCurrentPage) {\r\n // current page near the start\r\n startPage = 1;\r\n endPage = maxPages;\r\n }\r\n else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {\r\n // current page near the end\r\n startPage = totalPages - maxPages + 1;\r\n endPage = totalPages;\r\n }\r\n else {\r\n // current page somewhere in the middle\r\n startPage = currentPage - maxPagesBeforeCurrentPage;\r\n endPage = currentPage + maxPagesAfterCurrentPage;\r\n }\r\n }\r\n // calculate start and end item indexes\r\n var startIndex = (currentPage - 1) * pageSize;\r\n var endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);\r\n // create an array of pages to ng-repeat in the pager control\r\n var pages = Array.from(Array((endPage + 1) - startPage).keys()).map(function (i) { return startPage + i; });\r\n // return object with all pager properties required by the view\r\n return {\r\n totalItems: totalItems,\r\n currentPage: currentPage,\r\n pageSize: pageSize,\r\n totalPages: totalPages,\r\n startPage: startPage,\r\n endPage: endPage,\r\n startIndex: startIndex,\r\n endIndex: endIndex,\r\n pages: pages\r\n };\r\n }\r\n\r\n}","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { RadioButtonOptions } from '../../Shared/Models/RadioButtonOptions';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-RadioButton',\r\n templateUrl: './RadioButton.component.html'\r\n})\r\nexport class RadioButtonComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public RadioButtonControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n RadioButtonComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: RadioButtonOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n RadioButtonFormControl: AbstractControl;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n ngOnInit() {\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.RadioButtonFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.RadioButtonFormControl.setValidators(this.validationRules);\r\n this.RadioButtonFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.RadioButtonFormControl.disable();\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n this.RadioButtonControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n if (this.options.Value) {\r\n this.RadioButtonFormControl.setValue(this.options.Value.Value);\r\n }\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n let originalValue = this.RadioButtonFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.RadioButtonFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value= originalValue;\r\n this.OnChange.emit(originalValue)\r\n }\r\n\r\n getSelectedItemValue(value)\r\n {\r\n return this.options.Items.filter(item=>item.Value==value)[0].Text\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.RadioButtonFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.RadioButtonFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.RadioButtonFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.RadioButtonFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.RadioButtonFormControl)\r\n }\r\n}\r\n\r\n\r\n","export enum LanguageValidation {\r\n English = 1,\r\n Arabic = 2\r\n }","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { TextBoxOptions } from '../../Shared/Models/TextBoxOptions';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { LanguageValidation } from '../../Shared/Enums/LanguageValidation';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-TextBox',\r\n templateUrl: './TextBox.component.html',\r\n})\r\nexport class TextboxComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public TextControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n TextboxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: TextBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n public inputType = InputType\r\n TextBoxFormControl: AbstractControl;\r\n MaskPattern: string = '';\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n EmailValidationKey: string;\r\n URLValidationKey: string;\r\n PasswordComplexityHasNumber: string;\r\n ArabicLetterOnly: string;\r\n EnglishLetterOnly: string;\r\n PasswordComplexityHasCapitalLetter: string;\r\n PasswordComplexityHasSmallLetter: string;\r\n PasswordComplexityHasSpecialLetter: string;\r\n MaxWordCountValidationKey: string;\r\n IsShowWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n //For Show warning message of max length limit\r\n currentCharsCount: number = 0;\r\n showCharsLimitMsg: boolean = false;\r\n hasCharsLimitValidationError: boolean = false;\r\n charsLimitMsgClass: string;\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n maxLimitWarningMsg: string = '';\r\n textDir;\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n }\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextBox;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.MaskPattern != null && this.options.MaskPattern != '') {\r\n this.MaskPattern = this.options.MaskPattern;\r\n this.options.Placeholder = this.MaskPattern;\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.TextBoxFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.TextBoxFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n this.getCustomErrorsMassages();\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n { EmailValidationKey: this.EmailValidationKey }\r\n ),\r\n ])\r\n );\r\n break;\r\n\r\n case InputType.URL:\r\n const pattern = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]!\\$&'\\(\\)\\*\\+,;=.]+$/;\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n pattern,\r\n { URLValidationKey: this.URLValidationKey }\r\n ),\r\n ])\r\n );\r\n break;\r\n case InputType.EID:\r\n this.MaskPattern = '000-0000-0000000-0';\r\n this.options.Placeholder = this.MaskPattern;\r\n\r\n break;\r\n\r\n case InputType.Number:\r\n if (this.options.CustomValidation.length == 0) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/^[0-9]*$/, {\r\n IntegerNumberValidationKey: '',\r\n }),\r\n ])\r\n );\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^[+]?([.]\\d+|\\d+[.]?\\d*)$/,\r\n { PositiveNumberValidationKey: '' }\r\n ),\r\n ])\r\n );\r\n }\r\n if (this.options.NumberRange != null) {\r\n this.validationRules.push(\r\n Validators.min(this.options.NumberRange.From)\r\n );\r\n this.validationRules.push(\r\n Validators.max(this.options.NumberRange.To)\r\n );\r\n }\r\n break;\r\n case InputType.Password:\r\n if (!this.options.RemoveDefaultPasswordValidation) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/\\d/, {\r\n PasswordComplexityHasNumber: this.PasswordComplexityHasNumber,\r\n }),\r\n this.controlUtility.patternValidator(/[A-Z]/, {\r\n PasswordComplexityHasCapitalLetter:\r\n this.PasswordComplexityHasCapitalLetter,\r\n }),\r\n this.controlUtility.patternValidator(/[a-z]/, {\r\n PasswordComplexityHasSmallLetter:\r\n this.PasswordComplexityHasSmallLetter,\r\n }),\r\n this.controlUtility.patternValidator(/[!@#$%^&*(),.?\":{}|<>]/, {\r\n PasswordComplexityHasSpecialLetter:\r\n this.PasswordComplexityHasSpecialLetter,\r\n }),\r\n Validators.minLength(8),\r\n ])\r\n );\r\n }\r\n break;\r\n }\r\n if (this.options.LanguageValidation) {\r\n if (this.options.LanguageValidation == LanguageValidation.Arabic) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/^[^A-Za-z]*$/, {\r\n ArabicLetterOnly: this.ArabicLetterOnly,\r\n }),\r\n ])\r\n );\r\n } else if (\r\n this.options.LanguageValidation == LanguageValidation.English\r\n ) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/,\r\n { EnglishLetterOnly: this.EnglishLetterOnly }\r\n ),\r\n ])\r\n );\r\n }\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit =\r\n this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit =\r\n this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n this.TextBoxFormControl.setValidators(this.validationRules);\r\n this.TextBoxFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TextBoxFormControl.disable();\r\n }\r\n\r\n this.TextControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n\r\n this.options.ValidationRules = this.validationRules;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options);\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getInputType(type: number) {\r\n return this.controlUtility.getInputType(type);\r\n }\r\n\r\n trimControlValue() {\r\n let originalValue = this.controlUtility.trimControlValue(\r\n this.TextBoxFormControl.value\r\n );\r\n this.TextBoxFormControl.patchValue(originalValue);\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.TextBoxFormControl.valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement);\r\n }\r\n\r\n getCustomErrorsMassages() {\r\n this.EmailValidationKey =\r\n this.UtilityService.getResourceValue('EmailValidationKey');\r\n this.URLValidationKey =\r\n this.UtilityService.getResourceValue('urlValidationError');\r\n this.PasswordComplexityHasCapitalLetter =\r\n this.UtilityService.getResourceValue(\r\n 'PasswordComplexityHasCapitalLetter'\r\n );\r\n this.PasswordComplexityHasNumber = this.UtilityService.getResourceValue(\r\n 'PasswordComplexityHasNumber'\r\n );\r\n this.PasswordComplexityHasSmallLetter =\r\n this.UtilityService.getResourceValue('PasswordComplexityHasSmallLetter');\r\n this.PasswordComplexityHasSpecialLetter =\r\n this.UtilityService.getResourceValue(\r\n 'PasswordComplexityHasSpecialLetter'\r\n );\r\n this.MaxWordCountValidationKey = this.UtilityService.getResourceValue(\r\n 'MaxWordCountValidationKey'\r\n );\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\r\n 'ArabicIsRequiredAndOnly50CharactersEnglish'\r\n );\r\n this.EnglishLetterOnly =\r\n this.UtilityService.getResourceValue('EnglishLetterOnly');\r\n }\r\n\r\n onTextChange() {\r\n if (this.options.Type == InputType.Number)\r\n if (!this.TextBoxFormControl.value) {\r\n this.TextBoxFormControl.setErrors({ IntegerNumberValidationKey: '' });\r\n return;\r\n }\r\n\r\n if (this.TextBoxFormControl.value == '') {\r\n this.WordCountArray = 0;\r\n this.WordCount = 0;\r\n } else {\r\n this.WordCountArray = this.TextBoxFormControl.value.split(' ').length;\r\n if (this.WordCountArray > 0) {\r\n if (this.WordCountArray > this.options.MaxWordCount) {\r\n this.WordCount = this.options.MaxWordCount;\r\n this.TextBoxFormControl.setErrors({\r\n MaxWordCountValidationKey: this.options.MaxWordCount,\r\n });\r\n this.TextBoxFormControl.markAsTouched();\r\n this.TextBoxFormControl.invalid;\r\n } else {\r\n this.WordCount = this.WordCountArray;\r\n }\r\n }\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.currentCharsCount = this.TextBoxFormControl.value.length;\r\n if (this.currentCharsCount > this.minCharsLimit) {\r\n this.showCharsLimitMsg = true;\r\n this.hasCharsLimitValidationError = true;\r\n if (this.currentCharsCount == this.options.MaxLength)\r\n this.charsLimitMsgClass = 'danger';\r\n else this.charsLimitMsgClass = 'warning';\r\n } else {\r\n this.showCharsLimitMsg = false;\r\n this.hasCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.currentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\r\n 'MaxLengthLimitWarning'\r\n );\r\n this.maxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n }\r\n\r\n this.OnChange.emit(this.TextBoxFormControl.value);\r\n }\r\n\r\n onFocus(isFocus: boolean) {\r\n this.IsShowWordCount = isFocus;\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasCharsLimitValidationError)\r\n //check if there was previous validation error\r\n this.showCharsLimitMsg = true;\r\n } //onFocusOut\r\n else this.showCharsLimitMsg = false;\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TextBoxFormControl);\r\n };\r\n}\r\n","export class MapAutocompleteDTO\r\n{\r\n Text:string= null;\r\n Latitude:number;\r\n Longitude:number;\r\n PlaceID :string;\r\n GoogleMapsURL:string\r\n}","declare const google: any\r\nimport { Component, OnInit, Input, Optional, NgZone, ElementRef, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { MapAutoCompleteOptions } from '../../Shared/Models/MapAutoCompleteOptions';\r\nimport { MapAutocompleteDTO } from '../../Shared/Models/MapAutocompleteDTO';\r\nimport { MatGoogleMapsAutocompleteComponent } from '@angular-material-extensions/google-maps-autocomplete';\r\nimport { MapsAPILoader, LazyMapsAPILoader } from '@agm/core';\r\nimport { BBSFTranslateService, ControlValidationService, environment, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-MapAutoComplete',\r\n templateUrl: './MapAutoComplete.component.html'\r\n})\r\n\r\nexport class MapAutoCompleteComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n constructor(private mapsAPILoader: MapsAPILoader,\r\n private ngZone: NgZone, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public MapAutoCompleteControlHost: FormGroupDirective, private UtilityService: UtilityService, private translate: BBSFTranslateService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n MapAutoCompleteComponent.controlContainerstatic = this.controlContainer;\r\n this.CurrentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang\r\n\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MapAutoCompleteOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n MapAutoCompleteFormControl: AbstractControl;\r\n MapAutoCompleteModel: MapAutocompleteDTO = new MapAutocompleteDTO();\r\n CurrentLanguage: string = \"\";\r\n onAutocompleteSelected = new EventEmitter();\r\n onGermanAddressMapped = new EventEmitter();\r\n onLocationSelected = new EventEmitter();\r\n @ViewChild(\"search\", { static: false })\r\n public searchElementRef: ElementRef;\r\n MatGoogleMapsAutocompleteComponent: MatGoogleMapsAutocompleteComponent\r\n LazyMapsAPILoader: LazyMapsAPILoader\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n place: any;\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.MapAutoCompleteModel = new MapAutocompleteDTO();\r\n this.translate.onLangChange.subscribe((event) => {\r\n this.CurrentLanguage = event.lang;\r\n ;\r\n if (this.CurrentLanguage == 'ar')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"ar-EG\";\r\n if (this.CurrentLanguage == 'en')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"en-US\";\r\n this.mapsAPILoader[\"_scriptLoadingPromise\"] = null\r\n this.mapsAPILoader[\"_config\"][\"apiKey\"] = `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`;\r\n var ScriptTag = document.getElementById(this.mapsAPILoader[\"_SCRIPT_ID\"]);\r\n if (ScriptTag)\r\n ScriptTag.remove();\r\n var elements = document.getElementsByClassName(\"pac-container\");\r\n while (elements.length > 0)\r\n elements[0].remove();\r\n\r\n let window = this.mapsAPILoader[\"_windowRef\"].getNativeWindow();\r\n window.google = null\r\n\r\n\r\n\r\n this.LazyMapsAPILoader = new LazyMapsAPILoader({\r\n // &language=${UtilityService.CurrentLanguage}\r\n apiKey: `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`,\r\n libraries: ['places'],\r\n }, this.mapsAPILoader[\"_windowRef\"], this.mapsAPILoader[\"_documentRef\"], this.mapsAPILoader[\"_config\"][\"localeId\"]);\r\n this.LazyMapsAPILoader.load().then(() => {\r\n let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {\r\n types: [\"address\"]\r\n\r\n });\r\n autocomplete.addListener('place_changed', (/**\r\n * @return {?}\r\n */\r\n () => {\r\n\r\n this.ngZone.run((/**\r\n * @return {?}\r\n */\r\n () => {\r\n // get the place result\r\n /** @type {?} */\r\n const place = autocomplete.getPlace();\r\n /** @type {?} */\r\n const germanAddress = {\r\n gmID: place.id,\r\n icon: place.icon,\r\n url: place.url,\r\n placeID: place.place_id,\r\n displayAddress: place.formatted_address,\r\n name: place.name,\r\n vicinity: place.vicinity,\r\n locality: {},\r\n state: {},\r\n country: {},\r\n geoLocation: { latitude: -1, longitude: -1 },\r\n };\r\n\r\n if (place.geometry && place.geometry.location) {\r\n germanAddress.geoLocation.latitude = place.geometry.location.lat();\r\n germanAddress.geoLocation.longitude = place.geometry.location.lng();\r\n }\r\n place.address_components.forEach((/**\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n value => {\r\n if (value.types.indexOf('street_number') > -1) {\r\n germanAddress[\"streetNumber\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('route') > -1) {\r\n germanAddress[\"streetName\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('postal_code') > -1) {\r\n germanAddress[\"postalCode\"] = Number(value.short_name);\r\n }\r\n if (value.types.indexOf('sublocality') > -1) {\r\n germanAddress[\"sublocality\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('locality') > -1) {\r\n germanAddress.locality[\"long\"] = value.long_name;\r\n germanAddress.locality[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_1') > -1) {\r\n germanAddress.state[\"long\"] = value.long_name;\r\n germanAddress.state[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('country') > -1) {\r\n germanAddress.country[\"long\"] = value.long_name;\r\n germanAddress.country[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_3') > -1) {\r\n germanAddress.locality[\"short\"] = value.short_name;\r\n }\r\n }));\r\n\r\n this.onGermanAddressMapped.emit(germanAddress);\r\n this.GermanAddressMapped(germanAddress)\r\n if (!place.place_id || place.geometry === undefined || place.geometry === null) {\r\n // place result is not valid\r\n return;\r\n }\r\n else {\r\n // show dialog to select a address from the input\r\n // emit failed event\r\n }\r\n // this.address = place.formatted_address;\r\n this.onAutocompleteSelected.emit(place);\r\n this.AutocompleteSelected(place)\r\n\r\n this.onLocationSelected.emit({\r\n latitude: place.geometry.location.lat(),\r\n longitude: place.geometry.location.lng()\r\n });\r\n }));\r\n }));\r\n });\r\n\r\n });\r\n\r\n if (this.CurrentLanguage == 'ar')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"ar-EG\";\r\n if (this.CurrentLanguage == 'en')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"en-US\";\r\n this.mapsAPILoader[\"_scriptLoadingPromise\"] = null\r\n this.mapsAPILoader[\"_config\"][\"apiKey\"] = `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`;\r\n var leftSection = document.getElementById(this.mapsAPILoader[\"_SCRIPT_ID\"]);\r\n if (leftSection)\r\n leftSection.remove();\r\n this.LazyMapsAPILoader = new LazyMapsAPILoader({\r\n apiKey: `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`,\r\n libraries: ['places'],\r\n }, this.mapsAPILoader[\"_windowRef\"], this.mapsAPILoader[\"_documentRef\"], this.mapsAPILoader[\"_config\"][\"localeId\"]);\r\n this.LazyMapsAPILoader.load();\r\n\r\n this.mapsAPILoader.load().then(() => {\r\n let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {\r\n types: [\"address\"]\r\n\r\n });\r\n\r\n })\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.MapAutoCompleteFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.MapAutoCompleteFormControl.setValidators(this.validationRules);\r\n this.MapAutoCompleteFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.MapAutoCompleteFormControl.disable();\r\n }\r\n if (this.options.Value != null) {\r\n let germanAddress = {\r\n\r\n url: this.options.Value.GoogleMapsURL,\r\n placeID: this.options.Value.PlaceID,\r\n displayAddress: this.options.Value.Text,\r\n name: this.options.Value.Text,\r\n locality: {},\r\n state: {},\r\n country: {},\r\n geoLocation: { latitude: -1, longitude: -1 },\r\n };\r\n\r\n germanAddress.geoLocation.latitude = this.options.Value.Latitude;\r\n germanAddress.geoLocation.longitude = this.options.Value.Longitude;\r\n this.onGermanAddressMapped.emit(germanAddress);\r\n this.GermanAddressMapped(germanAddress)\r\n this.place = {\r\n\r\n url: this.options.Value.GoogleMapsURL,\r\n place_id: this.options.Value.PlaceID,\r\n formatted_address: this.options.Value.Text,\r\n name: this.options.Value.Text,\r\n };\r\n this.onAutocompleteSelected.emit(this.place);\r\n this.AutocompleteSelected(this.place)\r\n\r\n this.onLocationSelected.emit({\r\n latitude: this.options.Value.Latitude,\r\n longitude: this.options.Value.Longitude\r\n });\r\n this.group.controls[this.options.Name].setValue(this.MapAutoCompleteModel)\r\n this.MapAutoCompleteFormControl.setValue(this.options.Value);\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n\r\n this.MapAutoCompleteControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n\r\n }\r\n ngAfterViewInit() {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n }\r\n var elementHTML = document.getElementById(this.options.Name) as any\r\n elementHTML.value = this.MapAutoCompleteModel.Text;\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n AutocompleteSelected(result) {\r\n\r\n\r\n this.MapAutoCompleteModel == new MapAutocompleteDTO();\r\n this.MapAutoCompleteModel.Text = result.formatted_address;\r\n this.MapAutoCompleteModel.PlaceID = result.place_id;\r\n this.MapAutoCompleteModel.GoogleMapsURL = result.url;\r\n }\r\n LocationSelected(location) {\r\n\r\n this.MapAutoCompleteModel.Latitude = location.latitude;\r\n this.MapAutoCompleteModel.Longitude = location.longitude;\r\n this.MapAutoCompleteFormControl.setValue(null);\r\n\r\n this.MapAutoCompleteFormControl.setValue(this.MapAutoCompleteModel);\r\n let originalValue = this.MapAutoCompleteFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.MapAutoCompleteFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value=this.MapAutoCompleteModel;\r\n }\r\n\r\n GermanAddressMapped(result) {\r\n if (result.type) {\r\n if (result.target.value == \"\") {\r\n this.MapAutoCompleteFormControl.setValue(result);\r\n this.group.controls[this.options.Name].setValue(result);\r\n this.options.Value=result;\r\n }\r\n return;\r\n }\r\n this.MapAutoCompleteModel == new MapAutocompleteDTO();\r\n this.MapAutoCompleteModel.Text = result.displayAddress;\r\n this.MapAutoCompleteModel.PlaceID = result.placeID;\r\n this.MapAutoCompleteModel.GoogleMapsURL = result.url;\r\n this.MapAutoCompleteModel.Latitude = result.geoLocation.latitude;\r\n this.MapAutoCompleteModel.Longitude = result.geoLocation.longitude;\r\n this.MapAutoCompleteFormControl.setValue(this.MapAutoCompleteModel);\r\n this.group.controls[this.options.Name].setValue(this.MapAutoCompleteModel)\r\n this.OnChange.emit(this.MapAutoCompleteFormControl.value)\r\n //Use this line to enable two way binding.\r\n this.options.Value=this.MapAutoCompleteModel;\r\n }\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.MapAutoCompleteFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.MapAutoCompleteFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.MapAutoCompleteFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.MapAutoCompleteFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.MapAutoCompleteFormControl)\r\n }\r\n}\r\n\r\n\r\n","\r\nexport enum CalendarView {\r\n Month = 1,\r\n Weekly = 2,\r\n Daily = 3,\r\n Agenda = 4\r\n }","import { FullCalendarComponent } from '@fullcalendar/angular';\r\nimport * as core from '@fullcalendar/core';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport timeGrigPlugin from '@fullcalendar/timegrid';\r\nimport interactionPlugin from '@fullcalendar/interaction'; // for dateClick\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport listPlugin from '@fullcalendar/list';\r\nimport { Component, OnInit, Input, DoCheck, Optional, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { CalendarOptions } from '../../Shared/Models/CalendarOptions';\r\nimport { CalendarView } from '../../Shared/Enums/CalendarView';\r\n// import { CalendarOptions as CalendarOptionsModel, DateSelectArg, EventApi, EventClickArg } from '@fullcalendar/angular';\r\nimport enGbLocale from '@fullcalendar/core/locales/en-gb';\r\nimport ArLocale from '@fullcalendar/core/locales/ar';\r\nimport { LangChangeEvent } from '@ngx-translate/core';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Component({\r\n selector: 'BBSF-Calendar',\r\n templateUrl: './Calendar.component.html',\r\n styleUrls: ['./Calendar.component.scss']\r\n})\r\nexport class CalendarComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private ErrorHandler: ErrorMassageValidation, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public PhoneControlHost: FormGroupDirective,private UtilityService:UtilityService,private translate: BBSFTranslateService,private controlValidationService:ControlValidationService) {\r\n CalendarComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: CalendarOptions;\r\n CalendarFormControl: AbstractControl;\r\n @ViewChild('calendar', { static: false }) calendarComponent: FullCalendarComponent; // the #calendar in the template\r\n\r\n\r\n\r\n calendarVisible = true;\r\n calendarOptions: core.CalendarOptions;\r\n currentEvents: core.EventApi[] = [];\r\n calendarPlugins = [dayGridPlugin, timeGrigPlugin, interactionPlugin, listPlugin];\r\n calendarWeekends = true;\r\n calendarEvents: core.EventInput[] = [];\r\n DefaultView = \"\"\r\n CalendarViews = ''\r\n locales = [];\r\n CurrentLanguage = \"\"\r\n async ngOnInit() {\r\n switch (await this.UtilityService.getCurrentLanguage()) {\r\n case 'ar':\r\n this.locales = [ArLocale]\r\n this.CurrentLanguage = \"Ar\"\r\n break;\r\n case 'en':\r\n this.locales = [enGbLocale]\r\n this.CurrentLanguage = \"En\"\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n switch (event.lang) {\r\n case 'ar':\r\n this.locales = [ArLocale]\r\n this.CurrentLanguage = \"Ar\"\r\n break;\r\n case 'en':\r\n this.locales = [enGbLocale]\r\n this.CurrentLanguage = \"En\"\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n });\r\n this.calendarEvents = this.options.EventList\r\n this.calendarWeekends = this.options.AllowCalendarWeekends\r\n switch (this.options.DefaultView) {\r\n case CalendarView.Month:\r\n this.DefaultView = \"dayGridMonth\"\r\n break;\r\n case CalendarView.Weekly:\r\n this.DefaultView = \"timeGridWeek\"\r\n break;\r\n case CalendarView.Daily:\r\n this.DefaultView = \"timeGridDay\"\r\n break;\r\n default:\r\n break;\r\n }\r\n if (this.options.CalendarViews != null && this.options.CalendarViews.length > 0)\r\n for (let index = 0; index < this.options.CalendarViews.length; index++) {\r\n const element = this.options.CalendarViews[index];\r\n switch (element) {\r\n case CalendarView.Agenda:\r\n this.CalendarViews += \"listWeek,\"\r\n break;\r\n case CalendarView.Daily:\r\n this.CalendarViews += \"timeGridDay,\"\r\n break;\r\n case CalendarView.Weekly:\r\n this.CalendarViews += \"timeGridWeek,\"\r\n break;\r\n case CalendarView.Month:\r\n this.CalendarViews += \"dayGridMonth,\"\r\n break;\r\n\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.CalendarFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n\r\n this.calendarOptions = {\r\n plugins: [\r\n dayGridPlugin,\r\n timeGridPlugin,\r\n listPlugin,\r\n interactionPlugin\r\n ],\r\n headerToolbar: {\r\n left: 'prev,next today',\r\n center: 'title',\r\n right: this.CalendarViews.substring(0, this.CalendarViews.length - 1)\r\n },\r\n locales: this.locales,\r\n locale: this.CurrentLanguage,\r\n initialView: this.CalendarViews.split(',')[0],\r\n initialEvents: this.calendarEvents,\r\n initialDate: this.options.DefaultDate,\r\n weekends: this.options.AllowCalendarWeekends,\r\n editable: this.options.Eventeditable,\r\n selectable: this.options.Eventselectable,\r\n // selectMirror: true,\r\n dayMaxEvents: this.options.dayMaxEvents,\r\n select: this.OnDayClickFunction.bind(this),\r\n eventClick: this.OnEventClickFunction.bind(this),\r\n // eventsSet: this.handleEvents.bind(this)\r\n /* you can update a remote database when these fire:\r\n eventAdd:\r\n eventChange:\r\n eventRemove:\r\n */\r\n };\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n getErrorValidation(Errorsitem: any[]) {\r\n }\r\n\r\n\r\n OnDayClickFunction(arg) {\r\n\r\n if (this.options.OnDayClickFunction != null) {\r\n let DayClickFunction = this.options.OnDayClickFunction;\r\n DayClickFunction(arg);\r\n }\r\n }\r\n\r\n OnEventClickFunction(arg) {\r\n if (this.options.OnEventClickFunction != null) {\r\n let EventClickFunction = this.options.OnEventClickFunction;\r\n EventClickFunction(arg.event);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // handleDateSelect(selectInfo: DateSelectArg) {\r\n // const title = prompt('Please enter a new title for your event');\r\n // const calendarApi = selectInfo.view.calendar;\r\n\r\n // calendarApi.unselect(); // clear date selection\r\n\r\n // if (title) {\r\n // calendarApi.addEvent({\r\n // id: \"1\",\r\n // title,\r\n // start: selectInfo.startStr,\r\n // end: selectInfo.endStr,\r\n // allDay: selectInfo.allDay\r\n // });\r\n // }\r\n // }\r\n\r\n // handleEventClick(clickInfo: EventClickArg) {\r\n // if (confirm(`Are you sure you want to delete the event '${clickInfo.event.title}'`)) {\r\n // clickInfo.event.remove();\r\n // }\r\n // }\r\n\r\n // handleEvents(events: EventApi[]) {\r\n // this.currentEvents = events;\r\n // }\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","export enum PagingActionMode {\r\n Reinitialize ,\r\n Update\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ControlValidationService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { Observable } from 'rxjs';\r\nimport { PagingActionMode } from '../../Shared/Enums/PagingActionMode';\r\nimport { FormOptions } from '../../Shared/Models/FormOptions';\r\nimport { PagingComponent } from '../Paging/Paging.component';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-Form',\r\n templateUrl: './Form.component.html',\r\n})\r\nexport class FormComponent implements OnInit {\r\n\r\n fromName: string;\r\n isChange: boolean = null;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n constructor(private controlUtility: ControlUtility, private utilityService: UtilityService, private controlValidationService: ControlValidationService, private modalService: NgbModal, private ngbActiveModal: NgbActiveModal, private router: Router,\r\n ) {\r\n }\r\n @Input() options: FormOptions;\r\n\r\n ngOnInit() {\r\n this.fromName = this.randomString(5)\r\n }\r\n ngAfterViewInit(): void {\r\n this.options.FormGroup.valueChanges.subscribe((es) => {\r\n this.OnChange.emit(true);\r\n\r\n });\r\n }\r\n\r\n submit() {\r\n this.options.FormGroup.markAllAsTouched()\r\n if (this.options.FormGroup.invalid) {\r\n this.showGlobalError();\r\n return\r\n }\r\n else {\r\n\r\n let submitModel = this.options.GetModelFunction() as any[]\r\n let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel) as Observable<any>\r\n submittedService.subscribe(\r\n (result) => {\r\n if (!this.options.DisableModalDismiss) {\r\n //Dismiss closest modal of the form only\r\n let modal = document.getElementById(this.fromName).closest('.modal.show');\r\n if (modal) {\r\n let closeButton = modal.querySelector(\"[data-dismiss='modal']\") as any\r\n closeButton.click();\r\n }\r\n }\r\n if (!this.options.DisableSuccessNotification)\r\n this.utilityService.notifySuccessMessage()\r\n if (this.options.OnSuccessHandler)\r\n this.options.OnSuccessHandler(result)\r\n if (!this.options.DisableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n if (this.options.PagingReference) {\r\n let paging = this.options.PagingReference;\r\n this.options.PagingActionMode == PagingActionMode.Reinitialize ? paging.ReinitializePaging() : paging.UpdatePaging();\r\n }\r\n }, (error) => {\r\n if (this.options.OnErrorHandler)\r\n this.options.OnErrorHandler(error)\r\n else\r\n this.handleError(error)\r\n })\r\n\r\n }\r\n\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n else {\r\n this.controlValidationService.renderServerErrors(this.options.FormGroup, err, new RequestOptionsModel(), this.fromName)\r\n }\r\n if (!this.options.DisableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError(this.fromName)\r\n }\r\n randomString(length) {\r\n var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n var result = '';\r\n for (var i = 0; i < length; i++) {\r\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));\r\n }\r\n return result;\r\n }\r\n\r\n\r\n}\r\n\r\n","export enum StyleConfirmationMode {\r\n Danger,\r\n Warning,\r\n Success\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities'\r\nimport { Observable } from 'rxjs';\r\nimport { PagingActionMode } from '../../Shared/Enums/PagingActionMode';\r\nimport { ConfirmationModalOptions } from '../../Shared/Models/ConfirmationModalOptions';\r\nimport Swal, { SweetAlertIcon } from 'sweetalert2';\r\nimport { StyleConfirmationMode } from '../../Shared/Enums/StyleConfirmationMode';\r\n\r\n@Component({\r\n templateUrl: 'ConfirmationModal.component.html',\r\n selector: 'BBSF-ConfirmationModal',\r\n})\r\nexport class ConfirmationModalComponent implements OnInit {\r\n @Input() options: ConfirmationModalOptions;\r\n styleDanger: StyleConfirmationMode = StyleConfirmationMode.Danger;\r\n styleWarning: StyleConfirmationMode = StyleConfirmationMode.Warning;\r\n styleSuccess: StyleConfirmationMode = StyleConfirmationMode.Success;\r\n @ViewChild('confirmationModal', { static: false }) confirmationModal: ElementRef;\r\n icon: SweetAlertIcon;\r\n btnColor: any;\r\n iconHtml: string;\r\n\r\n\r\n constructor(public utilityService: UtilityService, private modalService: NgbModal, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n //Method used to show confirmation modal\r\n showModal() {\r\n this.utilityService.startBlockUI()\r\n //check for options text values\r\n this.setTextValues();\r\n //sweetalert styles//\r\n switch (this.options.StyleConfirmationMode) {\r\n case this.styleSuccess: {\r\n this.icon = 'success'\r\n this.btnColor = '#50cd89'\r\n this.iconHtml = '<i class=\"fa fa-check\"></i>'\r\n break;\r\n }\r\n case this.styleWarning: {\r\n this.icon = 'warning'\r\n this.btnColor = '#ffc700'\r\n this.iconHtml = '<i class=\"fa fa-warning\"></i>'\r\n break;\r\n\r\n }\r\n case this.styleDanger: {\r\n this.icon = 'error'\r\n this.btnColor = '#f1416c'\r\n this.iconHtml = '<i class=\"fa fa-close\"></i>'\r\n break;\r\n\r\n }\r\n }\r\n Swal.fire({\r\n title: this.utilityService.getResourceValue(this.options.ConfirmationHeader),\r\n text: this.options.ConfirmationBody,\r\n icon: this.icon,\r\n iconColor: this.btnColor,\r\n confirmButtonColor: this.btnColor,\r\n cancelButtonColor: '#f5f8fa',\r\n cancelButtonText: this.utilityService.getResourceValue(\"CancelLabel\"),\r\n confirmButtonText: this.options.SubmitButtonText,\r\n showCancelButton: this.options.showCancelButton,\r\n showCloseButton: this.options.showCloseButton,\r\n allowOutsideClick: false\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.submit()\r\n }\r\n })\r\n this.utilityService.stopBlockUI()\r\n }\r\n private setTextValues() {\r\n if (!this.options.ConfirmationHeader)\r\n this.options.ConfirmationHeader = this.utilityService.getResourceValue(\"DeleteConfirmation\");\r\n if (!this.options.ConfirmationBody)\r\n this.options.ConfirmationBody = this.utilityService.getResourceValue(\"Delete_Question\");\r\n if (!this.options.SubmitButtonText)\r\n this.options.SubmitButtonText = this.utilityService.getResourceValue(\"Delete\");\r\n if (!this.options.SuccessNotificationMessage)\r\n this.options.SuccessNotificationMessage = this.utilityService.getResourceValue(\"DeletedSuccessfully\");\r\n }\r\n //Modal confirmation submit function\r\n submit() {\r\n let submitModel = this.options.ServiceSubmitModel;\r\n\r\n let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel) as Observable<any>\r\n submittedService.subscribe(\r\n (result) => {\r\n if (!this.options.DisableModalDismiss)\r\n this.modalService.dismissAll();\r\n\r\n if (!this.options.DisableSuccessNotification) {\r\n if (!this.options.SuccessNotificationMessage)\r\n this.options.SuccessNotificationMessage = this.utilityService.getResourceValue(\"DeletedSuccessfully\");\r\n this.utilityService.notifySuccessMessage(this.options.SuccessNotificationMessage)\r\n }\r\n if (this.options.OnSuccessHandler)\r\n this.options.OnSuccessHandler(result)\r\n if (this.options.PagingReference) {\r\n let paging = this.options.PagingReference;\r\n this.options.PagingActionMode == PagingActionMode.Reinitialize ? paging.ReinitializePaging() : paging.UpdatePaging();\r\n }\r\n this.utilityService.stopBlockUI();\r\n }, (error) => {\r\n if (this.options.OnErrorHandler)\r\n this.options.OnErrorHandler(error)\r\n else\r\n this.handleError(error)\r\n })\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n\r\n else if (err.status == 401) {\r\n this.router.navigate([\"/Admin/account/login\"])\r\n }\r\n else if (err.status == 510) {\r\n errorMessage = this.utilityService.getCurrentLanguage() == \"en\" ? \"Can not delete this item as it is related to others\" : \"لا يمكن حذف هذا العنصر لأنه مرتبط بعناصر أخرى\";\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage(errorMessage)\r\n }\r\n else {\r\n errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\r\n console.log(errorMessage);\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'ng-template[name]'\r\n})\r\nexport class NgTemplateNameDirective {\r\n @Input() name: string;\r\n\r\n constructor(public template: TemplateRef<any>) { }\r\n}","import { Component, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { RepeaterOptions } from '../../../Shared/Models/RepeaterOptions';\r\nimport { NgTemplateNameDirective } from '../../../Shared/Directives/template-name.directive';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-repeater',\r\n templateUrl: './repeater.component.html'\r\n})\r\nexport class RepeaterComponent implements OnInit {\r\n @Input() group: FormGroup;\r\n @Input() options: RepeaterOptions;\r\n @Input() initialTemplate: TemplateRef<any>;\r\n @ViewChildren(NgTemplateNameDirective) private _templates: QueryList<NgTemplateNameDirective>;\r\n @ViewChild('delete', { static: false }) delete: TemplateRef<any>;\r\n templateRefs: Array<TemplateRef<any>> = [];\r\n items: number[] = []\r\n originalItems: any[] = [];\r\n repeaterGroup: FormGroup;\r\n currentTemplate: TemplateRef<any>;\r\n repeaterContext = { index: 0, delete: null, elements: null };\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.currentTemplate = this.initialTemplate;\r\n this.repeaterGroup = new FormGroup({});\r\n this.group.addControl(this.options.Name, this.repeaterGroup);\r\n if (this.options.RepeaterValue.length > 0) {\r\n this.originalItems = this.options.RepeaterValue;\r\n for (let index = 0; index < this.options.RepeaterValue.length; index++) {\r\n this.items.push(index + 1);\r\n }\r\n }\r\n else\r\n for (let index = 0; index < this.options.MinRequiredItems; index++) {\r\n this.items.push(index);\r\n }\r\n\r\n this.repeaterGroup.valueChanges.subscribe((res) => {\r\n let result = [];\r\n let rowNumber = [];\r\n let addItems = [];\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n const keySplitArr = key.split('.')\r\n let item = {\r\n [keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }\r\n }\r\n addItems.push(item)\r\n if (!rowNumber.includes(keySplitArr[1]))\r\n rowNumber.push(keySplitArr[1])\r\n }\r\n }\r\n for (let index = 0; index < rowNumber.length; index++) {\r\n const row = rowNumber[index];\r\n let addObject = {}\r\n let filteredElements = addItems.filter(item => item[row])\r\n for (let index = 0; index < filteredElements.length; index++) {\r\n const filteredElement = filteredElements[index];\r\n for (const key in filteredElement) {\r\n if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {\r\n const element = filteredElement[key];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n const value = element[key];\r\n addObject[key] = value\r\n }\r\n }\r\n }\r\n }\r\n }\r\n result.push(addObject)\r\n }\r\n this.options.RepeaterValue = result;\r\n })\r\n\r\n }\r\n\r\n deleteItem(Index) {\r\n if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)\r\n return;\r\n let deletedControls: any[] = []\r\n let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name)\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n for (let index = 0; index < controlNames.length; index++) {\r\n const element = controlNames[index];\r\n const keySplitArr = key.split('.')\r\n if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {\r\n const element = this.repeaterGroup.controls[key];\r\n deletedControls.push({ [key]: element })\r\n }\r\n }\r\n }\r\n }\r\n for (let index = 0; index < deletedControls.length; index++) {\r\n const element = deletedControls[index];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n this.repeaterGroup.removeControl(key)\r\n }\r\n }\r\n }\r\n this.items = this.items.filter((res) => res != this.items[Index])\r\n }\r\n\r\n\r\n addItem() {\r\n this.items.push(this.items.length);\r\n }\r\n\r\n ngAfterViewInit() {\r\n let templateRefs = (this._templates[\"_results\"] as any[]).map((item) => item[\"template\"])\r\n this.templateRefs = templateRefs\r\n this.repeaterContext.elements = this.templateRefs\r\n this.repeaterContext.delete = this.delete\r\n\r\n }\r\n\r\n setCurrentIndex(i: number) {\r\n this.repeaterContext.index = i;\r\n }\r\n\r\n}\r\n","export enum PermissionSets {\r\n Admin = 1,\r\n BusinessAdmin = 2,\r\n Customer = 3\r\n}\r\nexport enum DataType {\r\n Text = \"7F35E246-7C93-4666-8031-3CE9D2262DB9\",\r\n Email = \"E4F974F6-682F-4CAC-8597-C94E8BF60539\",\r\n Number = \"962060E2-539C-4257-88E5-0259EB8A64F4\",\r\n Name = \"54FE6A3E-1F71-42B8-8C99-06279ED8AA2F\",\r\n Mobile = \"266E2903-D105-4847-AC9B-002AE884A31E\",\r\n MultilineText = \"97F904E0-991B-4F68-B227-217A7B87B8B3\",\r\n HTML = \"57335E2B-E286-401A-A374-72888C3FB753\",\r\n Image = \"1AE5FF1F-856E-41DA-923E-07966F6F8FFE\",\r\n File = \"ACDFEFA7-B406-45B8-9264-78AA440D94B5\",\r\n MultiFile = \"11FAC9EB-D1BB-4F73-9386-64A6C89A70AC\",\r\n Boolean = \"7F89617B-5863-4741-A948-106BBE82D38D\",\r\n Date = \"41182659-A638-4FF0-8E3F-66B89B0B544C\",\r\n DateTime = \"8D899956-8187-4EA1-92EB-B62D50A66323\",\r\n Time = \"B8C225ED-17C3-4AE0-A0E8-3C722B38D8A7\",\r\n Location = \"C486F9C5-0065-4A81-AFA1-03946DBD2214\",\r\n SingleSelect = \"1A63B4B7-DEDE-48C8-8407-10E4170BF761\",\r\n MulipleSelect = \"2CB28735-9D0B-4FBE-A504-8793A4544F94\",\r\n Goal = \"108310CE-9FE1-4914-AB6B-2CF6284472AD\",\r\n Challenge = \"48C419CE-5306-4F6B-87A3-F016E522D9E3\",\r\n CoverPhoto = \"9CC8C0BB-C670-466F-A632-8632FF5C1296\",\r\n InnovationLab = \"4B914ED0-8B36-4E24-B85E-9A04C9F266BE\",\r\n Country = \"342AA701-76C7-4E5D-8056-407BFC86F888\",\r\n AreaOfFocus = \"06a4cfb7-216a-4a60-8388-7a859aab90b4\",\r\n}","import { ControlLayout } from \"../Enums/ControlLayout\"\r\nimport { Attribute } from './Attribute';\r\nimport { CustomValidation } from \"./CustomValidation\";\r\nexport class ControlOptionsBase {\r\n /** Represent Name Of Form Control*/\r\n Name: string\r\n /** Represent classes to Control that allow us to select the Control by jquery or javascript */\r\n ExtraClasses: string\r\n /** Represent classes to label that allow us to select the Control by jquery or javascript */\r\n LabelExtraClasses: string\r\n /** Represent value of the label*/\r\n LabelValue: string\r\n /** Represent Key of the label*/\r\n LabelKey: string\r\n /** Represent value of the labelDescription show under Control*/\r\n LabelDescription: string\r\n /** Represent value of the Placeholder of Control */\r\n Placeholder: string\r\n /**\r\n * Display \"*\" beside the label \r\n * if ForceAsterisk=true and IsRequired=True his display \"*\" ,\r\n * if ForceAsterisk=false and IsRequired=false this remove \"*\",\r\n *if ForceAsterisk=false and IsRequired=True this display \"*\" , \r\n */\r\n ShowAsterisk: boolean\r\n /** Ability to set Control required */\r\n IsRequired: boolean\r\n /** Ability to display or hide the label of Control */\r\n HideLabel: boolean\r\n /** Sets an attribute disable=\"disabled\" */\r\n IsDisabled: boolean = false\r\n /** to set type of view if Control is Vertical or Horizontal */\r\n ViewType: ControlLayout = null;\r\n /** Set List of Custom Attribute to Control */\r\n AttributeList: Attribute[]\r\n /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */\r\n CustomValidation: CustomValidation[] = []\r\n /** Path of propriety which we need to patch value */\r\n PatchPath: string;\r\n /** Function which call to patch value */\r\n PatchFunction: Function;\r\n /** Sets an attribute readonly */\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { StartView } from '../Enums/StartView';\r\nimport { PickerType } from '../Enums/PickerType';\r\nimport { SelectMode } from '../Enums/SelectMode';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class DatePickerOptions extends ControlOptionsBase {\r\n\r\n /**To set value to DatePicker */\r\n Value: Date\r\n /**To set StartDate to DatePicker */\r\n StartDate: Date\r\n /**To set EndDate to DatePicker */\r\n EndDate: Date;\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n IsGMT: boolean\r\n /**To set First Day Of Week to DatePicker */\r\n FirstDayOfWeek: number = 1\r\n /**To set Hour12Timer to DatePicker is 12 Hour or 24 Hour*/\r\n Hour12Timer: boolean = true\r\n /**To set PickerType to DatePicker is Calendar or Timer Or Both */\r\n PickerType: PickerType = PickerType.Calendar\r\n /**To set StartView to DatePicker is Year or Month Or Multi-Year */\r\n StartView: StartView = StartView.Month\r\n /**To set SelectMode to DatePicker is Single or Range */\r\n SelectMode: SelectMode = SelectMode.Single\r\n ForceDirection: ForceDirection = null\r\n /**Name of DatePicker control to compare value with it */\r\n StartControlToCompareWith: string = null;\r\n\r\n}\r\n","export enum ForceDirection {\r\n English = 1,\r\n Arabic = 2\r\n }","import { ControlLayout } from '../Enums/ControlLayout'\r\nimport { DropdownListItem } from './DropdownListItem'\r\nimport { CustomValidation } from './CustomValidation'\r\nimport { Attribute } from './Attribute'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class DropdownOptions extends ControlOptionsBase {\r\n\r\n /**To set DataSource to DropdownList */\r\n DataSource: DropdownListItem[]\r\n /**To set SelectedItem to DropdownList */\r\n SelectedItems: any\r\n /** Disable Bootstrap DropdownList */\r\n DisableBootstrapSelect: boolean = false;\r\n /** to set DropdownList in SingleMode Or MultibleMode ,,If false => DisableBootstrapSelect must be equal false */\r\n SingleSelection: boolean\r\n /** to set Number Of selected Element That will Show In The Box */\r\n ItemsShowLimit: number\r\n /** to Show Search Filter Box*/\r\n AllowSearchFilter: boolean\r\n /** to set Limit Of selected Element For DropdownList */\r\n LimitSelection?: number\r\n /** Set css classes to DropdownList */\r\n Classes: string;\r\n /** Allow Show Checkbox */\r\n ShowCheckbox?: boolean;\r\n /** Allow Check ALL Items */\r\n EnableCheckAll?: boolean;\r\n /** Set key for item in DropdownList */\r\n ItemTempletkey: string = \"key\"\r\n /** Set value for item in DropdownList */\r\n ItemTempletvalue: string = \"value\"\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n NotFoundText: string = \"\"\r\n /** Represent Value of disabled items tooltip*/\r\n DisabledItemsTooltipValue: string\r\n\r\n}\r\n","import { FileType } from '../Enums/FileType';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class FileUploadOptions extends ControlOptionsBase {\r\n\r\n Value: any;\r\n /** Ability to set FileInput required */\r\n IsMultipleFile: boolean = false\r\n /** Sets boolean Value to Show IsDropZone Or Not */\r\n IsDropZone: boolean = false\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set Max Number Of Files */\r\n MaxNoOfFiles: number;\r\n /** Set Min Number Of Files */\r\n MinNoOfFiles: number;\r\n /** Set File MaxSizeForAllFilesInMB In MB */\r\n MaxSizeForAllFilesInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n FileUploadAcceptsTypes: FileType[]\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { Attribute } from './Attribute';\r\nimport { Misc } from '../Enums/Misc';\r\nimport { Style } from '../Enums/Style';\r\nimport { FontSize } from '../Enums/FontSize';\r\nimport { Para } from '../Enums/Para';\r\nimport { Insert } from '../Enums/Insert';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class HtmlEditorOptions extends ControlOptionsBase {\r\n /**To set value to HtmlEditor */\r\n Value:any\r\n //** Set the MaxLength of characters In HtmlEditor */\r\n MaxLength?:number\r\n /**Set the MinLength of characters In HtmlEditor */\r\n MinLength?:number\r\n/** to set Direction of HtmlEditor if HtmlEditor is Arabic or English */\r\n ForceDirection: ForceDirection=ForceDirection.English\r\n /** Set Height For */\r\n Height: number=5\r\n /** Set List of Custom Attribute to HtmlEditor */\r\n AttributeList:Attribute[]\r\n /** Set List of Misc like codeview Or undo Or redo */\r\n ToolsList_Misc?: Misc[];\r\n /** Set List of Style like bold Or italic Or underline Or clear */\r\n ToolsList_Style?: Style[];\r\n /** Set List of FontSize like fontname Or fontsize Or color */\r\n ToolsList_FontSize?: FontSize[];\r\n /** Set List of Para like style Or ul Or ol Or paragraph Or height */\r\n ToolsList_Para?: Para[];\r\n /** Set List of Insert like table Or picture Or link Or video Or hr */\r\n ToolsList_Insert?: Insert[];\r\n\r\n\r\n}\r\n","export enum ImageType\r\n{\r\n ImageTypes='image/png,image/bmp,image/jpeg',\r\n PNG='image/png',\r\n JPG='image/jpeg',\r\n JPEG='image/jpeg',\r\n SVG='image/svg+xml',\r\n None='',\r\n}","import { FileDTO } from './FileDTO';\r\nimport { ImageType } from '../Enums/ImageType';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ImageUploadOptions extends ControlOptionsBase {\r\n\r\n /**To set value to ImageUpload */\r\n Value: FileDTO\r\n /** Allow to Upload Multiple File */\r\n IsMultiple: boolean = false\r\n /** Allow to Use Drop Zone */\r\n AllowDropZone: boolean = true\r\n /** Sets an attribute AllowImageCropper=\"true\" */\r\n AllowImageCropper: boolean\r\n /** Set Height of Image Cropper Box */\r\n ImageCropperHeight: number\r\n /** Set Width of Image Cropper Box */\r\n ImageCropperWidth: number\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n FileUploadAcceptsTypes: ImageType[] = [ImageType.ImageTypes]\r\n /** Set Default Image */\r\n DefaultImageSrc: string\r\n}\r\n","import { MapAutocompleteDTO } from './MapAutocompleteDTO'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class MapAutoCompleteOptions extends ControlOptionsBase {\r\n /** Sets Value of MapAutoComplete */\r\n Value:MapAutocompleteDTO\r\n \r\n}\r\n","import { Country } from '../Enums/Countries';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class PhoneOptions extends ControlOptionsBase {\r\n\r\n /**To set value to Phonebox */\r\n Value: any\r\n /** To allow search in country list*/\r\n AllowSearch: boolean\r\n /**Allow To Show Placeholder */\r\n EnablePlaceholder: boolean\r\n /**Allow To Select First Country */\r\n SelectFirstCountry: boolean\r\n /**Set Selected Country To Phone Box*/\r\n SelectedCountryISO: Country\r\n /**Allow Phone Validation */\r\n PhoneValidation: boolean\r\n /**Set List Of Countries As Preferred Countries*/\r\n PreferredCountries: Country[] = []\r\n // **Set List Of Countries to show it in dropdown list and ignore another countries */\r\n OnlyCountries: Country[] = []\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}\r\n","export class RangeNumber\r\n{\r\n From?:number\r\n To?: number\r\n}","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\n\r\nexport class TextAreaOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In TextArea */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In TextArea */\r\n MinLength?: number\r\n /**Set Number Of Rows */\r\n Rows: number\r\n /**Set Number Of columns */\r\n Cols: number\r\n //** Set the MaxWordCount of characters In TextArea */\r\n MaxWordCount: number;\r\n /**Prevent AutoComplete of TextArea*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /** to set Direction of TextArea if TextArea is Arabic or English */\r\n ForceDirection: ForceDirection\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n}\r\n","export enum IconPosition {\r\n left = 1,\r\n right = 2\r\n }\r\n","import { InputType } from '../Enums/InputType';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { LanguageValidation } from '../Enums/LanguageValidation';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class TextBoxOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In TextBox */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In TextBox */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In TextBox */\r\n MaxWordCount: number;\r\n /** set Range Number to Textbox with type number with From-Value and To-value*/\r\n NumberRange: RangeNumber = new RangeNumber()\r\n /**Prevent AutoComplete of textbox default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefaultPasswordValidation: boolean\r\n /** to set Direction of textbox if textbox is Arabic or English */\r\n ForceDirection: ForceDirection = null\r\n /** to set Language of textbox if textbox language is Arabic or English */\r\n LanguageValidation: LanguageValidation = null\r\n /** Set Type of TextBox (\"text\",\"password\",\"email\",\"number\") */\r\n Type: InputType = InputType.Text;\r\n /** Set Mask Pattern Attribute to TextBox */\r\n MaskPattern: string\r\n /*icon options*/\r\n Icon: string\r\n IconPosition: IconPosition = IconPosition.left\r\n NoMargin: boolean = false;\r\n ValidationRules: any[] = [];\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ToggleSlideOptions extends ControlOptionsBase {\r\n\r\n /**Display validation message only on added repeater when add class \"v-required\"*/\r\n ValidationClasses: string\r\n /**To set value to ToggleSlide */\r\n Value: boolean\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}\r\n","import { Component, ComponentFactoryResolver, EmbeddedViewRef, Injectable, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n\r\n\r\n @Injectable()\r\n export class RenderComponentService {\r\n\r\n constructor( private componentFactoryResolver: ComponentFactoryResolver) {\r\n }\r\n \r\n renderDynamicComponent<T>(viewContainerRef: ViewContainerRef, component: any, group: FormGroup, options: any, size: number = 0) {\r\n let factory = this.componentFactoryResolver.resolveComponentFactory<T>(component)\r\n const componentRef = viewContainerRef.createComponent<T>(factory) as any;\r\n componentRef.instance.group = group;\r\n componentRef.instance.options = options;\r\n if (size > 0) {\r\n let htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n // `element` is the element you want to wrap\r\n var parent = htmlElement.parentNode;\r\n var wrapper = document.createElement('div');\r\n wrapper.className = `col-md-${size}`\r\n // set the wrapper as child (instead of the element)\r\n parent.replaceChild(wrapper, htmlElement);\r\n // set element as child of wrapper\r\n wrapper.appendChild(htmlElement);\r\n }\r\n\r\n\r\n }\r\n}\r\n","import { Component, OnInit, Input, Optional, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup, ControlContainer, FormGroupDirective, AbstractControl, FormControl } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { ToggleSlideOptions } from '../../Shared/Models/ToggleslideOptions';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-Toggleslide',\r\n templateUrl: './Toggleslide.component.html'\r\n})\r\nexport class ToggleslideComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public ToggleslideControlHost: FormGroupDirective, public TextControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n ToggleslideComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: ToggleSlideOptions;\r\n @Output() OnChange = new EventEmitter();\r\n ToggleslideFormControl: AbstractControl;\r\n SlideValue: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ToggleslideFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n let validationRules = [];\r\n let validationRulesasync = [];\r\n this.SlideValue = this.options.Value == undefined ? false : this.options.Value;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsDisabled ||this.options.IsReadonly ) {\r\n this.ToggleslideFormControl.disable();\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n resetError() {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList: any[]): string {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n changeValueToggle() {\r\n this.OnChange.emit(this.SlideValue)\r\n this.options.Value= this.SlideValue\r\n this.ToggleslideFormControl.setValue(this.SlideValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ToggleslideFormControl.valid) {\r\n this.controlUtility.patchControlValue(this.SlideValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, Input, OnInit, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DataType } from '../../../Shared/Enums/Enums';\r\nimport { InputType } from '../../../Shared/Enums/InputType';\r\nimport { LanguageValidation } from '../../../Shared/Enums/LanguageValidation';\r\nimport { PickerType } from '../../../Shared/Enums/PickerType';\r\nimport { SelectMode } from '../../../Shared/Enums/SelectMode';\r\nimport { StartView } from '../../../Shared/Enums/StartView';\r\nimport { DatePickerOptions } from '../../../Shared/Models/datePickerOptions';\r\nimport { DropdownOptions } from '../../../Shared/Models/DropdownOptions';\r\nimport { FileUploadOptions } from '../../../Shared/Models/FileUploadOptions';\r\nimport { HtmlEditorOptions } from '../../../Shared/Models/HtmlEditorOptions';\r\nimport { ImageUploadOptions } from '../../../Shared/Models/ImageUploadOptions';\r\nimport { MapAutoCompleteOptions } from '../../../Shared/Models/MapAutoCompleteOptions';\r\nimport { PhoneOptions } from '../../../Shared/Models/PhoneOptions';\r\nimport { RangeNumber } from '../../../Shared/Models/RangeNumber';\r\nimport { RepeaterField } from '../../../Shared/Models/RepeaterField';\r\nimport { TextAreaOptions } from '../../../Shared/Models/TextAreaOptions';\r\nimport { TextBoxOptions } from '../../../Shared/Models/TextBoxOptions';\r\nimport { ToggleSlideOptions } from '../../../Shared/Models/ToggleslideOptions';\r\nimport { RenderComponentService } from '../../../Shared/services/render-component-service.service';\r\nimport { DateInputComponent } from '../../DateTimePicker/DateTimePicker.component';\r\nimport { DropdownListComponent } from '../../DropdownList/DropdownList.component';\r\nimport { FileUploadComponent } from '../../FileUplaod/FileUplaod.component';\r\nimport { HtmlEditorComponent } from '../../HtmlEditor/HtmlEditor.component';\r\nimport { ImageUploaderComponent } from '../../ImageUpload/ImageUpload.component';\r\nimport { MapAutoCompleteComponent } from '../../MapAutoComplete/MapAutoComplete.component';\r\nimport { PhoneComponent } from '../../Phone/Phone.component';\r\nimport { TextAreaComponent } from '../../TextArea/TextArea.component';\r\nimport { TextboxComponent } from '../../TextBox/TextBox.component';\r\nimport { ToggleslideComponent } from '../../Toggleslide/toggleslide.component';\r\n\r\n\r\n@Component({\r\n selector: 'repeater-field-builder',\r\n templateUrl: './repeater-field-builder.component.html',\r\n})\r\nexport class RepeaterFieldBuilderComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild(\"Item\", { read: ViewContainerRef }) Item: ViewContainerRef;\r\n @Input() group: FormGroup;\r\n @Input() itemNumber: number;\r\n @Input() controlNumber: number;\r\n @Input() RepeaterField: RepeaterField;\r\n @Input() itemsValue: any[] = [];\r\n itemValue: any = null;\r\n value: any;\r\n\r\n constructor(private renderComponentService: RenderComponentService, public TextControlHost: FormGroupDirective) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n if (this.itemsValue.length > 0)\r\n this.itemValue = this.itemsValue[this.itemNumber]\r\n if (this.itemValue) {\r\n for (const key in this.itemValue) {\r\n if (Object.prototype.hasOwnProperty.call(this.itemValue, key) && key == this.RepeaterField.ControlOptions.Name) {\r\n const element = this.itemValue[key];\r\n this.value = element;\r\n }\r\n }\r\n }\r\n this.Item.clear()\r\n switch (this.RepeaterField.ControlType) {\r\n ///TextBox\r\n case DataType.Text:\r\n let Text = new TextBoxOptions();\r\n Text.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Text.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Text.Type = InputType.Text;\r\n Text.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Text.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Text.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Text.Value = this.value;\r\n Text.IsReadonly = this.RepeaterField.ControlOptions.IsReadonly;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Text)\r\n break;\r\n\r\n case DataType.Name:\r\n let Name = new TextBoxOptions();\r\n Name.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Name.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Name.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Name.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Name.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Name.Type = InputType.Text;\r\n Name.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Name)\r\n break;\r\n\r\n case DataType.Email:\r\n let Email = new TextBoxOptions();\r\n Email.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Email.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Email.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Email.Type = InputType.Email;\r\n Email.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Email)\r\n break;\r\n\r\n case DataType.Number:\r\n let Number = new TextBoxOptions();\r\n Number.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Number.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Number.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Number.Type = InputType.Number;\r\n let rangeNumber = new RangeNumber()\r\n if(this.RepeaterField.ControlOptions.NumberRange){\r\n rangeNumber.To = this.RepeaterField.ControlOptions.NumberRange.To\r\n rangeNumber.From = this.RepeaterField.ControlOptions.NumberRange.From\r\n }\r\n Number.NumberRange = rangeNumber;\r\n Number.Value = this.value;\r\n Number.IsReadonly = this.RepeaterField.ControlOptions.IsReadonly;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Number)\r\n break;\r\n\r\n ///DateTime\r\n case DataType.Date:\r\n let Date = new DatePickerOptions();\r\n Date.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Date.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Date.PickerType = PickerType.Calendar;\r\n Date.SelectMode = SelectMode.Single\r\n Date.StartView = StartView.Month\r\n Date.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Date)\r\n break;\r\n\r\n case DataType.DateTime:\r\n let DateTime = new DatePickerOptions();\r\n DateTime.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n DateTime.PickerType = PickerType.Both;\r\n DateTime.SelectMode = SelectMode.Single\r\n DateTime.StartView = StartView.Month\r\n DateTime.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, DateTime)\r\n break;\r\n\r\n case DataType.Time:\r\n let Time = new DatePickerOptions();\r\n Time.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Time.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Time.PickerType = PickerType.Timer;\r\n Time.SelectMode = SelectMode.Single\r\n Time.StartView = StartView.Month\r\n Time.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Time)\r\n break;\r\n\r\n //Dropdown\r\n case DataType.SingleSelect:\r\n let SingleSelect = new DropdownOptions();\r\n SingleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n SingleSelect.SingleSelection = true\r\n SingleSelect.ShowCheckbox = false\r\n SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n SingleSelect.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, SingleSelect)\r\n break;\r\n case DataType.MulipleSelect:\r\n let MulipleSelect = new DropdownOptions();\r\n MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n MulipleSelect.SingleSelection = false\r\n MulipleSelect.ShowCheckbox = false\r\n MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n MulipleSelect.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, MulipleSelect)\r\n break;\r\n case DataType.Goal:\r\n let Goal = new DropdownOptions();\r\n Goal.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Goal.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Goal.ShowCheckbox = false\r\n Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Goal.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Goal)\r\n break;\r\n case DataType.Challenge:\r\n let Challenge = new DropdownOptions();\r\n Challenge.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Challenge.ShowCheckbox = false\r\n Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Challenge.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Challenge)\r\n break;\r\n case DataType.InnovationLab:\r\n let InnovationLab = new DropdownOptions();\r\n InnovationLab.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n InnovationLab.ShowCheckbox = false\r\n InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n InnovationLab.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, InnovationLab)\r\n break;\r\n case DataType.Country:\r\n let Country = new DropdownOptions();\r\n Country.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Country.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Country.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Country.ShowCheckbox = false\r\n Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Country.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Country)\r\n break;\r\n\r\n //FileUpload\r\n case DataType.File:\r\n let File = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n File.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, File)\r\n break;\r\n case DataType.MultiFile:\r\n let MultiFile = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount\r\n MultiFile.IsMultipleFile = true;\r\n MultiFile.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, MultiFile)\r\n break;\r\n //ImageUpload\r\n case DataType.Image:\r\n let Image = new ImageUploadOptions();\r\n Image.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Image.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n Image.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, Image)\r\n break;\r\n case DataType.CoverPhoto:\r\n let CoverPhoto = new ImageUploadOptions();\r\n CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n CoverPhoto.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, CoverPhoto)\r\n break;\r\n //Mobile\r\n case DataType.Mobile:\r\n let Mobile = new PhoneOptions();\r\n Mobile.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Mobile.AllowSearch = true;\r\n Mobile.PhoneValidation = true;\r\n Mobile.SelectFirstCountry = true;\r\n Mobile.EnablePlaceholder = true\r\n Mobile.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<PhoneComponent>(this.Item, PhoneComponent, this.group, Mobile)\r\n break;\r\n //MultilineText\r\n case DataType.MultilineText:\r\n let MultilineText = new TextAreaOptions();\r\n MultilineText.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength\r\n MultilineText.Rows = this.RepeaterField.ControlOptions.rows;\r\n MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n MultilineText.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextAreaComponent>(this.Item, TextAreaComponent, this.group, MultilineText)\r\n break;\r\n //HTML\r\n case DataType.HTML:\r\n let HTML = new HtmlEditorOptions();\r\n HTML.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n HTML.MinLength = this.RepeaterField.ControlOptions.minLength\r\n HTML.Height = this.RepeaterField.ControlOptions.rows;\r\n HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n HTML.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<HtmlEditorComponent>(this.Item, HtmlEditorComponent, this.group, HTML)\r\n break;\r\n //Boolean\r\n case DataType.Boolean:\r\n let Boolean = new ToggleSlideOptions();\r\n Boolean.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Boolean.Value = this.value;\r\n Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n this.renderComponentService.renderDynamicComponent<ToggleslideComponent>(this.Item, ToggleslideComponent, this.group, Boolean)\r\n break;\r\n //Location\r\n case DataType.Location:\r\n let Location = new MapAutoCompleteOptions();\r\n Location.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Location.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Location.Value = this.value;\r\n Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n this.renderComponentService.renderDynamicComponent<MapAutoCompleteComponent>(this.Item, MapAutoCompleteComponent, this.group, Location)\r\n break;\r\n default:\r\n break;\r\n }\r\n }, 0);\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.itemNumber)\r\n if (changes.itemNumber.previousValue) {\r\n let name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.previousValue.toString() + \".\" + this.controlNumber.toString()\r\n let value = this.group.controls[name].value\r\n this.Item.clear()\r\n this.group.removeControl(name)\r\n switch (this.RepeaterField.ControlType) {\r\n ///TextBox\r\n case DataType.Text:\r\n let Text = new TextBoxOptions();\r\n Text.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Text.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Text.Type = InputType.Text;\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Text.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Text.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Text.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Text)\r\n break;\r\n\r\n case DataType.Name:\r\n let Name = new TextBoxOptions();\r\n Name.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Name.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Name.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Name.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Name.Type = InputType.Text;\r\n Name.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Name)\r\n break;\r\n\r\n case DataType.Email:\r\n let Email = new TextBoxOptions();\r\n Email.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Email.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Email.Type = InputType.Email;\r\n Email.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Email)\r\n break;\r\n\r\n case DataType.Number:\r\n let Number = new TextBoxOptions();\r\n Number.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Number.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Number.Type = InputType.Number;\r\n let rangeNumber = new RangeNumber()\r\n rangeNumber.To = this.RepeaterField.ControlOptions.maxLength\r\n rangeNumber.From = this.RepeaterField.ControlOptions.minLength\r\n Number.NumberRange = rangeNumber;\r\n Number.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Number)\r\n break;\r\n\r\n ///DateTime\r\n case DataType.Date:\r\n let Date = new DatePickerOptions();\r\n Date.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Date.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Date.PickerType = PickerType.Calendar;\r\n Date.SelectMode = SelectMode.Single\r\n Date.StartView = StartView.Month\r\n Date.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Date)\r\n break;\r\n\r\n case DataType.DateTime:\r\n let DateTime = new DatePickerOptions();\r\n DateTime.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n DateTime.PickerType = PickerType.Both;\r\n DateTime.SelectMode = SelectMode.Single\r\n DateTime.StartView = StartView.Month\r\n DateTime.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, DateTime)\r\n break;\r\n\r\n case DataType.Time:\r\n let Time = new DatePickerOptions();\r\n Time.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Time.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Time.PickerType = PickerType.Timer;\r\n Time.SelectMode = SelectMode.Single\r\n Time.StartView = StartView.Month\r\n Time.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Time)\r\n break;\r\n\r\n //Dropdown\r\n case DataType.SingleSelect:\r\n let SingleSelect = new DropdownOptions();\r\n SingleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n SingleSelect.SingleSelection = true\r\n SingleSelect.ShowCheckbox = false\r\n SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n SingleSelect.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, SingleSelect)\r\n break;\r\n case DataType.MulipleSelect:\r\n let MulipleSelect = new DropdownOptions();\r\n MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n MulipleSelect.SingleSelection = false\r\n MulipleSelect.ShowCheckbox = false\r\n MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n MulipleSelect.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, MulipleSelect)\r\n break;\r\n case DataType.Goal:\r\n let Goal = new DropdownOptions();\r\n Goal.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Goal.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Goal.ShowCheckbox = false\r\n Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Goal.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Goal)\r\n break;\r\n case DataType.Challenge:\r\n let Challenge = new DropdownOptions();\r\n Challenge.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Challenge.ShowCheckbox = false\r\n Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Challenge.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Challenge)\r\n break;\r\n case DataType.InnovationLab:\r\n let InnovationLab = new DropdownOptions();\r\n InnovationLab.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n InnovationLab.ShowCheckbox = false\r\n InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n InnovationLab.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, InnovationLab)\r\n break;\r\n case DataType.Country:\r\n let Country = new DropdownOptions();\r\n Country.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Country.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Country.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Country.ShowCheckbox = false\r\n Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Country.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Country)\r\n break;\r\n\r\n //FileUpload\r\n case DataType.File:\r\n let File = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n File.Value = value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, File)\r\n break;\r\n case DataType.MultiFile:\r\n let MultiFile = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount\r\n MultiFile.IsMultipleFile = true;\r\n MultiFile.Value = value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, MultiFile)\r\n break;\r\n //ImageUpload\r\n case DataType.Image:\r\n let Image = new ImageUploadOptions();\r\n Image.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Image.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n Image.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, Image)\r\n break;\r\n case DataType.CoverPhoto:\r\n let CoverPhoto = new ImageUploadOptions();\r\n CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n CoverPhoto.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, CoverPhoto)\r\n break;\r\n //Mobile\r\n case DataType.Mobile:\r\n let Mobile = new PhoneOptions();\r\n Mobile.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Mobile.AllowSearch = true;\r\n Mobile.PhoneValidation = true;\r\n Mobile.SelectFirstCountry = true;\r\n Mobile.EnablePlaceholder = true\r\n Mobile.Value = value;\r\n this.renderComponentService.renderDynamicComponent<PhoneComponent>(this.Item, PhoneComponent, this.group, Mobile)\r\n break;\r\n //MultilineText\r\n case DataType.MultilineText:\r\n let MultilineText = new TextAreaOptions();\r\n MultilineText.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength\r\n MultilineText.Rows = this.RepeaterField.ControlOptions.rows;\r\n MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n MultilineText.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextAreaComponent>(this.Item, TextAreaComponent, this.group, MultilineText)\r\n break;\r\n //HTML\r\n case DataType.HTML:\r\n let HTML = new HtmlEditorOptions();\r\n HTML.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n HTML.MinLength = this.RepeaterField.ControlOptions.minLength\r\n HTML.Height = this.RepeaterField.ControlOptions.rows;\r\n HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n HTML.Value = value;\r\n this.renderComponentService.renderDynamicComponent<HtmlEditorComponent>(this.Item, HtmlEditorComponent, this.group, HTML)\r\n break;\r\n //Boolean\r\n case DataType.Boolean:\r\n let Boolean = new ToggleSlideOptions();\r\n Boolean.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Boolean.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ToggleslideComponent>(this.Item, ToggleslideComponent, this.group, Boolean)\r\n break;\r\n //Location\r\n case DataType.Location:\r\n let Location = new MapAutoCompleteOptions();\r\n Location.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Location.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Location.Value = value;\r\n this.renderComponentService.renderDynamicComponent<MapAutoCompleteComponent>(this.Item, MapAutoCompleteComponent, this.group, Location)\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'repeater-item-field',\r\n templateUrl: './repeater-item-field.component.html'\r\n})\r\nexport class RepeaterItemFieldComponent implements OnInit {\r\n @Input() templates: Array<TemplateRef<any>>;\r\n @Input() filedIndex: number;\r\n @Input() itemIndex: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { RepeaterOptions } from '../../../Shared/Models/RepeaterOptions';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-repeater-table',\r\n templateUrl: './repeater-table.component.html',\r\n})\r\nexport class RepeaterTableComponent implements OnInit { \r\n @Input() group: FormGroup;\r\n @Input() options: RepeaterOptions;\r\n items: number[] = []\r\n repeaterGroup: FormGroup;\r\n originalItems:any []=[];\r\n\r\n constructor(public utilityService:UtilityService) { }\r\n\r\n ngOnInit(): void {\r\n this.repeaterGroup = new FormGroup({});\r\n this.group.addControl(this.options.Name, this.repeaterGroup);\r\n if(this.options.RepeaterValue.length>0)\r\n {\r\n this.originalItems= this.options.RepeaterValue;\r\n for (let index = 0; index < this.options.RepeaterValue.length; index++) {\r\n this.items.push(index);\r\n }\r\n }\r\n \r\n else\r\n for (let index = 0; index < this.options.MinRequiredItems; index++) {\r\n this.items.push(index);\r\n }\r\n this.repeaterGroup.valueChanges.subscribe((res) => {\r\n let result = [];\r\n let rowNumber = [];\r\n let addItems = [];\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n const keySplitArr = key.split('.')\r\n let item = {\r\n [keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }\r\n }\r\n addItems.push(item)\r\n if (!rowNumber.includes(keySplitArr[1]))\r\n rowNumber.push(keySplitArr[1])\r\n }\r\n }\r\n for (let index = 0; index < rowNumber.length; index++) {\r\n const row = rowNumber[index];\r\n let addObject = {}\r\n let filteredElements = addItems.filter(item => item[row])\r\n for (let index = 0; index < filteredElements.length; index++) {\r\n const filteredElement = filteredElements[index];\r\n for (const key in filteredElement) {\r\n if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {\r\n const element = filteredElement[key];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n const value = element[key];\r\n addObject[key] = value\r\n }\r\n }\r\n }\r\n }\r\n }\r\n result.push(addObject)\r\n }\r\n this.options.RepeaterValue = result;\r\n })\r\n\r\n }\r\n\r\n deleteItem(Index) {\r\n if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)\r\n return;\r\n let deletedControls: any[] = []\r\n let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name)\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n for (let index = 0; index < controlNames.length; index++) {\r\n const element = controlNames[index];\r\n const keySplitArr = key.split('.')\r\n if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {\r\n const element = this.repeaterGroup.controls[key];\r\n deletedControls.push({ [key]: element })\r\n }\r\n }\r\n }\r\n }\r\n for (let index = 0; index < deletedControls.length; index++) {\r\n const element = deletedControls[index];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n this.repeaterGroup.removeControl(key)\r\n }\r\n }\r\n }\r\n\r\n this.items = this.items.filter((res) => res != this.items[Index])\r\n }\r\n\r\n addItem() {\r\n if(this.items.length==0)\r\n this.items.push(this.items.length);\r\n else\r\n this.items.push(this.items[this.items.length-1]+1);\r\n}\r\n\r\n\r\n}\r\n","export class RecaptchaModel\r\n{\r\n ID:string;\r\n Text:string;\r\n EncryptedText:string\r\n ImageJpeg:any[]=[];\r\n}","export class CaptchaStyle {\r\n /*Pass hexa-color primary background color*/\r\n BackgroundColorPrimary: string\r\n /*Pass hexa-color secondary background color*/\r\n BackgroundColorSecondary: string\r\n /*Pass hexa-color primary text color*/\r\n TextColorPrimary: string\r\n /*Pass hexa-color secondary text color*/\r\n TextColorSecondary: string\r\n /*Pass font Size */\r\n FontSize: number\r\n}","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { RecaptchaOptions } from '../../Shared/Models/RecaptchaOptions';\r\nimport { RecaptchaModel } from '../../Shared/Models/Recaptcha';\r\nimport { CaptchaStyle } from '../../Shared/Models/CaptchaStyle';\r\n\r\n@Component({\r\n selector: 'BBSF-Recaptcha',\r\n templateUrl: './Recaptcha.component.html',\r\n})\r\nexport class RecaptchaComponent implements OnInit {\r\n markAllAsTouched: boolean;\r\n constructor(private controlUtility: ControlUtility, private requestHandlerService: RequestHandlerService,\r\n public recaptchaControlHost: FormGroupDirective, public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: RecaptchaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ReCaptchaFormControl: AbstractControl;\r\n validationRules = [];\r\n validationRulesAsync = [];\r\n image: string\r\n recaptchaModel: RecaptchaModel = new RecaptchaModel();\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.loadImage();\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ReCaptchaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n this.ReCaptchaFormControl.setValidators(this.validationRules);\r\n this.ReCaptchaFormControl.setAsyncValidators(this.validationRulesAsync);\r\n if (this.options.IsDisabled) {\r\n this.ReCaptchaFormControl.disable();\r\n }\r\n\r\n this.recaptchaControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n loadImage() {\r\n let style: CaptchaStyle = new CaptchaStyle();\r\n style.BackgroundColorPrimary = this.options.BackgroundColorPrimary;\r\n style.BackgroundColorSecondary = this.options.BackgroundColorSecondary;\r\n style.TextColorPrimary= this.options.TextColorPrimary;\r\n style.TextColorSecondary = this.options.TextColorSecondary;\r\n style.FontSize = this.options.FontSize;\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n this.requestHandlerService.post(this.options.ActionURL, style, null, null, requestOptionsModel).subscribe((res) => {\r\n let model = res as any\r\n this.recaptchaModel.ID = model.id;\r\n this.recaptchaModel.EncryptedText = model.encryptedText;\r\n this.recaptchaModel.ImageJpeg = model.imageJpeg;\r\n this.image = 'data:image/jpeg;base64,' + this.recaptchaModel.ImageJpeg;\r\n })\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n onTextChange(valueText) {\r\n let value = valueText.target.value;\r\n this.recaptchaModel.Text = value;\r\n this.group.get(this.options.Name).setValue(this.recaptchaModel);\r\n this.options.Value = this.recaptchaModel;\r\n this.OnChange.emit(this.ReCaptchaFormControl.value);\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ReCaptchaFormControl)\r\n }\r\n}\r\n\r\n\r\n","import { Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DataType } from '../../Shared/Enums/Enums';\r\nimport { PageHeaderOptions } from '../../Shared/Models/page-header-options';\r\n@Component({\r\n selector: 'bbsf-page-header-component',\r\n templateUrl: './page-header-component.component.html'\r\n})\r\nexport class PageHeaderComponentComponent implements OnInit {\r\n EN: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: PageHeaderOptions;\r\n\r\n public DataTypeEnum = DataType;\r\n\r\n constructor(private router: Router,public utilityService: UtilityService) {\r\n \r\n }\r\n\r\n translate(key: string): string {\r\n return this.utilityService.getResourceValue(key);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.EN = this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'bbsfDateTime'\r\n})\r\nexport class BBSFDateTimePipe implements PipeTransform {\r\n\r\n constructor(public datePipe: DatePipe) { }\r\n transform(value: Date) {\r\n let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');\r\n return latest_date;\r\n }\r\n}\r\n\r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'bbsfDate'\r\n})\r\nexport class BBSFDatePipe implements PipeTransform {\r\n\r\n constructor(public datePipe: DatePipe){}\r\n transform(value: Date) {\r\n let latest_date =this.datePipe.transform(value, 'dd/MM/yyyy');\r\n return latest_date;\r\n }\r\n\r\n}\r\n","\r\nimport { ModuleWithProviders } from '@angular/core';\r\nexport enum TagInputView {\r\n WithImage = 1,\r\n WithoutImage = 2,\r\n WithInitial = 3,\r\n \r\n }","import { Component, forwardRef, Input, Output, EventEmitter, OnChanges, SimpleChanges, DoCheck, OnInit } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead/public_api';\r\nimport { TagInputView } from '../Enums/TagInputView';\r\n\r\nconst noop = () => { };\r\n\r\nconst TAGS_INPUT_TEMPLATE = `\r\n\r\n<div class=\"tags-input\">\r\n<span class=\"tags-input__tag label label-primary badge badge-primary\" *ngFor=\"let tag of tags\">\r\n\r\n<span [ngSwitch]=\"ViewMode\">\r\n<span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\r\n<img style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\r\nsrc=\"{{(tag.imageURL?tag.imageURL:defaultImageURL)}}\" />\r\n</span>\r\n\r\n<span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\r\n<div class=\"user-initials\">{{calculateInitials(tag.name)}}</div>\r\n</span>\r\n\r\n<span *ngSwitchDefault>\r\n</span>\r\n\r\n</span>\r\n {{tag[displayField]}}\r\n <span *ngIf=\"isDeleteable(tag)\" role=\"button\" class=\"tags-input__tag-remove-btn\" (click)=\"removeTag(tag)\"\r\n (touch)=\"removeTag(tag)\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span class=\"sr-only\">Close</span>\r\n </span>\r\n</span>\r\n\r\n<input *ngIf=\"options === null; else withTypeahead\" class=\"tags-input__input-field\" type=\"text\"\r\n [placeholder]=\"getPlaceholder()\" name=\"tags\" (keyup.enter)=\"addTag(tagInput)\"\r\n (keydown.backspace)=\"removeLastTag(tagInput)\" [disabled]=\"!canAddTags || maximumOfTagsReached()\"\r\n [hidden]=\"!canAddTags || maximumOfTagsReached()\" #tagInput />\r\n\r\n<ng-template #withTypeahead>\r\n <span [ngSwitch]=\"ViewMode\">\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithImage\" [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithoutImage\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutInitial\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchDefault>\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n </span>\r\n\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithImage let-model=\"item\" let-index=\"index\">\r\n <img\r\n style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\r\n src=\"{{(model.imageURL?model.imageURL:defaultImageURL)}}\" />\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithoutImage let-model=\"item\" let-index=\"index\">\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithoutInitial let-model=\"item\" let-index=\"index\">\r\n <div class=\"user-image\">\r\n <div class=\"user-initials\">{{calculateInitials(model.name)}}</div>\r\n </div>\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n</div>\r\n`;\r\n\r\nconst TAGS_INPUT_STYLE = `\r\n :host {\r\n overflow: auto;\r\n white-space: nowrap;\r\n }\r\n\r\n .tags-input {\r\n align-items: center;\r\n display: flex;\r\n flex-wrap: wrap;\r\n }\r\n\r\n .tags-input__tag {\r\n display: inline-block;\r\n margin-bottom: 2px;\r\n margin-right: 5px;\r\n padding-right: 0.3em;\r\n }\r\n\r\n .tags-input__tag-remove-btn {\r\n cursor: pointer;\r\n display: inline-block;\r\n font-size: 12px;\r\n margin: -3px 0 0 3px;\r\n padding: 0;\r\n vertical-align: top;\r\n }\r\n\r\n .tags-input__input-field {\r\n border: none;\r\n flex-grow: 1;\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => BTagsInputComponent),\r\n multi: true\r\n};\r\n\r\nexport interface TagsChangedEvent {\r\n change: string,\r\n tag: any\r\n}\r\n\r\n@Component({\r\n selector: 'b-tags-input',\r\n template: TAGS_INPUT_TEMPLATE,\r\n styles: [TAGS_INPUT_STYLE],\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class BTagsInputComponent implements ControlValueAccessor {\r\n\r\n selected: string = '';\r\n public tags: Array<any> = [];\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n public tagInputViewEnum = TagInputView;\r\n @Input() maxTags: number;\r\n @Input() removeLastOnBackspace: boolean = false;\r\n @Input() canDeleteTags: boolean = true;\r\n @Input() canAddTags: boolean = true;\r\n @Input() ViewMode: TagInputView = TagInputView.WithoutImage;\r\n @Input() placeholder: string = '';\r\n @Input() showDescription: boolean = true;\r\n @Input() options: any = null;\r\n @Input() defaultImageURL: any = null;\r\n displayField: string = 'name';\r\n @Input() minLengthBeforeOptions: number = 1;\r\n @Input() scrollableOptions: boolean = false;\r\n @Input() scrollableOptionsInView: number = 5;\r\n @Output() onTagsChanged: EventEmitter<TagsChangedEvent> = new EventEmitter();\r\n @Output() onMaxTagsReached: EventEmitter<void> = new EventEmitter();\r\n @Output() onNoOptionsMatch: EventEmitter<boolean> = new EventEmitter();\r\n @Output() onBlurInput: EventEmitter<void> = new EventEmitter();\r\n getPlaceholder(): string {\r\n if (this.tags && this.tags.length > 0) {\r\n return '';\r\n }\r\n return this.placeholder;\r\n }\r\n\r\n private tagsChanged(type: string, tag: any): void {\r\n this.onChangeCallback(this.tags);\r\n this.onTagsChanged.emit({\r\n change: type,\r\n tag: tag\r\n });\r\n if (this.maximumOfTagsReached()) {\r\n this.onMaxTagsReached.emit();\r\n }\r\n }\r\n\r\n removeLastTag(tagInput: HTMLInputElement): void {\r\n if (!this.removeLastOnBackspace || !this.tags?.length) {\r\n return;\r\n }\r\n\r\n if (tagInput.value === '') {\r\n this.removeTag(this.tags[this.tags.length - 1]);\r\n }\r\n }\r\n\r\n addTag(tagInput: HTMLInputElement): void {\r\n if (tagInput.value.trim() !== '') {\r\n let tag = {\r\n [this.displayField]: tagInput.value\r\n };\r\n this.addPredefinedTag(tag);\r\n }\r\n tagInput.value = '';\r\n }\r\n\r\n private addPredefinedTag(tag: Object): void {\r\n if (this.tags == null)\r\n this.tags = [];\r\n if (!this.maximumOfTagsReached()) {\r\n this.tags.push(tag);\r\n this.tagsChanged('add', tag);\r\n }\r\n }\r\n\r\n removeTag(tagToRemove: any): void {\r\n if (!this.isDeleteable(tagToRemove)) {\r\n return;\r\n }\r\n this.tags = this.tags.filter(tag => tagToRemove !== tag);\r\n this.tagsChanged('remove', tagToRemove);\r\n }\r\n\r\n maximumOfTagsReached(): boolean {\r\n return typeof this.maxTags !== 'undefined' && this.tags && this.tags.length >= this.maxTags;\r\n }\r\n\r\n isDeleteable(tag: any) {\r\n if (typeof tag.deleteable !== \"undefined\" && !tag.deleteable) {\r\n return false;\r\n }\r\n return this.canDeleteTags;\r\n }\r\n\r\n typeaheadOnSelect(e: TypeaheadMatch): void {\r\n if (typeof e.item === 'string') {\r\n this.addPredefinedTag({\r\n [this.displayField]: e.value\r\n });\r\n } else {\r\n this.addPredefinedTag(e.item);\r\n }\r\n this.selected = '';\r\n }\r\n\r\n typeaheadOnNoMatch(e: any): void {\r\n if (typeof this.onNoOptionsMatch !== 'undefined') {\r\n this.onNoOptionsMatch.emit(e)\r\n }\r\n }\r\n\r\n writeValue(value: any) {\r\n if (value !== this.tags) {\r\n this.tags = value;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n calculateInitials(name: string): string {\r\n var fullName = name.split(' ');\r\n var initials = \"\"\r\n if (fullName.length > 1)\r\n initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);\r\n else\r\n initials = fullName.shift().charAt(0)\r\n return initials.toUpperCase();\r\n }\r\n\r\n onBlur(): void {\r\n this.onBlurInput.emit();\r\n }\r\n // (keydown.Tab) = \"onTab($event)\"\r\n //onTab(event) {\r\n // this.onTabInput.emit();\r\n // event.preventDefault();\r\n // event.stopPropagation();\r\n //}\r\n}\r\n","import { FullCalendarModule } from '@fullcalendar/angular';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport listPlugin from '@fullcalendar/list';\r\nimport interactionPlugin from '@fullcalendar/interaction';\r\nimport { NgModule, Injector, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, ModuleWithProviders } from '@angular/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { FormGroupDirective, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpModule } from '@angular/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NgxPermissionsModule } from 'ngx-permissions';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { NgxIntlTelInputModule } from 'ngx-intl-tel-input';\r\nimport { ErrorMassageValidation } from '../Shared/services/validationErrorMassage.service';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { DateInputComponent } from './DateTimePicker/DateTimePicker.component';\r\nimport { FileUploadComponent } from './FileUplaod/FileUplaod.component';\r\nimport { MultiLingualTextBoxComponent } from './MultiLingualTextBox/MultiLingualTextBox.component';\r\nimport { ControlUtility } from '../Shared/services/ControlUtility';\r\nimport { TextAreaComponent } from './TextArea/TextArea.component';\r\nimport { MultiLingualTextAreaComponent } from './MultiLingualTextArea/MultiLingualTextArea.component';\r\nimport { CheckBoxComponent } from './CheckBox/CheckBox.component';\r\nimport { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { OwlDateTimeModule, OwlNativeDateTimeModule, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\r\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\nimport { DropdownListComponent } from './DropdownList/DropdownList.component';\r\nimport { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\r\nimport { PhoneComponent } from './Phone/Phone.component';\r\n// import { ToggleslideComponent } from './Toggleslide/toggleslide.component';\r\nimport { HtmlEditorComponent } from './HtmlEditor/HtmlEditor.component';\r\nimport { NgxSummernoteModule } from 'ngx-summernote';\r\nimport { MultiLingualHtmlEditorComponent } from './MultiLingualHtmlEditor/MultiLingualHtmlEditor.component';\r\nimport { NgxMaskModule, IConfig } from 'ngx-mask'\r\nimport { TooltipModule } from '@syncfusion/ej2-angular-popups';\r\nimport { FileUploadModule } from 'ng2-file-upload';\r\nimport { ImageUploaderComponent } from './ImageUpload/ImageUpload.component';\r\nimport { NgxDropzoneModule } from 'ngx-dropzone';\r\nimport { AngularCropperjsModule } from 'angular-cropperjs';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { NgbActiveModal, NgbModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ProfileImageUploaderComponent } from './ProfileImageUploader/ProfileImageUploader.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgxTypeaheadModule } from 'ngx-typeahead';\r\nimport { AutocompleteTextBoxComponent } from './AutocompleteTextBox/AutocompleteTextBox.component';\r\nimport { NgxTagsInputModule } from 'ngx-tags-input';\r\nimport { TagsInputComponent } from './TagsInput/TagsInput.component';\r\nimport { PagingComponent } from './Paging/Paging.component';\r\nimport { JwPaginationComponent } from './Paging/JwPagination.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { OnPagingFiltersChangeService } from '../Shared/services/OnPagingFiltersChange.service';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { RadioButtonComponent } from './RadioButton/RadioButton.component';\r\nimport { TextboxComponent } from './TextBox/TextBox.component';\r\nimport { MapAutoCompleteComponent } from './MapAutoComplete/MapAutoComplete.component';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';\r\nimport { CalendarComponent } from './Calendar/Calendar.component';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { InlineSVGModule } from 'ng-inline-svg';\r\nimport { BBSFUtilitiesModule, environment } from '@bnsights/bbsf-utilities';\r\nimport { FormComponent } from './Form/Form.component';\r\nimport { ConfirmationModalComponent } from './ConfirmationModal/ConfirmationModal.component';\r\nimport { SweetAlert2Module } from '@sweetalert2/ngx-sweetalert2';\r\nimport { RepeaterComponent } from './Repeater/repeater/repeater.component';\r\nimport { RepeaterFieldBuilderComponent } from './Repeater/repeater-field-builder/repeater-field-builder.component';\r\nimport { NgTemplateNameDirective } from '../Shared/Directives/template-name.directive';\r\nimport { RepeaterItemFieldComponent } from './Repeater/repeater-item-field/repeater-item-field.component';\r\nimport { RenderComponentService } from '../Shared/services/render-component-service.service';\r\nimport { RepeaterTableComponent } from './Repeater/repeater-table/repeater-table.component';\r\n// import { BBSFDateTimePipe } from '../shared/Pipes/bbsf-date-time.pipe';\r\n// import { BBSFDatePipe } from '../shared/Pipes/bbsf-date.pipe';\r\n// import { BTagsInputComponent } from '../Shared/components/ng-tag-input';\r\nimport { RecaptchaComponent } from './Recaptcha/Recaptcha.component';\r\nimport { PageHeaderComponentComponent } from './page-header-component/page-header-component.component';\r\nimport { ToggleslideComponent } from './Toggleslide/toggleslide.component';\r\nimport { BBSFDateTimePipe } from '../shared/Pipes/bbsf-date-time.pipe';\r\nimport { BBSFDatePipe } from '../shared/Pipes/bbsf-date.pipe';\r\nimport { BTagsInputComponent } from '../Shared/Components/ng-tag-input';\r\n\r\nexport let options: Partial<IConfig> | (() => Partial<IConfig>);\r\n\r\nexport let AppInjector: Injector;\r\n\r\n\r\n\r\n// FullCalendarModule.registerPlugins([\r\n// dayGridPlugin,\r\n// timeGridPlugin,\r\n// listPlugin,\r\n// interactionPlugin\r\n// ])\r\n@NgModule({\r\n declarations: [\r\n DateInputComponent,\r\n FileUploadComponent,\r\n MultiLingualTextBoxComponent,\r\n TextboxComponent,\r\n TextAreaComponent,\r\n MultiLingualTextAreaComponent,\r\n CheckBoxComponent,\r\n DropdownListComponent,\r\n PhoneComponent,\r\n ToggleslideComponent,\r\n HtmlEditorComponent,\r\n MultiLingualHtmlEditorComponent,\r\n // MultiLingualHtmlEditorComponent,\r\n ImageUploaderComponent,\r\n ProfileImageUploaderComponent,\r\n CalendarComponent,\r\n MapAutoCompleteComponent,\r\n AutocompleteTextBoxComponent,\r\n TagsInputComponent,\r\n PagingComponent,\r\n JwPaginationComponent,\r\n RadioButtonComponent,\r\n FormComponent,\r\n ConfirmationModalComponent,\r\n RepeaterComponent,\r\n RepeaterFieldBuilderComponent,\r\n NgTemplateNameDirective,\r\n RepeaterItemFieldComponent,\r\n RepeaterTableComponent,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n BTagsInputComponent,\r\n RecaptchaComponent,\r\n PageHeaderComponentComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n InfiniteScrollModule,\r\n NgSelectModule,\r\n NgxTagsInputModule,\r\n NgxTypeaheadModule,\r\n AgmCoreModule.forRoot({\r\n // &language=${UtilityService.CurrentLanguage}\r\n apiKey: environment.BBSF_GoogleMapKey,\r\n libraries: ['places'],\r\n }),\r\n MatGoogleMapsAutocompleteModule,\r\n FullCalendarModule,\r\n AngularCropperjsModule,\r\n ImageCropperModule,\r\n NgbModule,\r\n NgxDropzoneModule,\r\n FileUploadModule,\r\n TooltipModule,\r\n NgxMaskModule.forRoot(),\r\n NgxSummernoteModule,\r\n MatSlideToggleModule,\r\n NgxIntlTelInputModule,\r\n AngularMultiSelectModule,\r\n NgMultiSelectDropDownModule.forRoot(),\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule,\r\n CommonModule,\r\n BlockUIModule.forRoot(),\r\n ReactiveFormsModule,\r\n HttpModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n HttpClientModule,\r\n NgxPermissionsModule.forRoot(),\r\n OverlayModule,\r\n StoreDevtoolsModule.instrument(),\r\n FormsModule,\r\n BsDatepickerModule.forRoot(),\r\n TypeaheadModule.forRoot(),\r\n AngularEditorModule,\r\n AutocompleteLibModule,\r\n BBSFUtilitiesModule,\r\n InlineSVGModule.forRoot(),\r\n SweetAlert2Module,\r\n\r\n ],\r\n providers: [\r\n ErrorMassageValidation,\r\n ControlUtility,\r\n OnPagingFiltersChangeService,\r\n TranslateService,\r\n FormGroupDirective,\r\n NgbModal,\r\n NgbActiveModal,\r\n DatePipe,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n RenderComponentService,\r\n { provide: OWL_DATE_TIME_LOCALE, useValue: ControlUtility.getLocal() },\r\n\r\n\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ],\r\n\r\n exports: [\r\n DateInputComponent,\r\n FileUploadComponent,\r\n MultiLingualTextBoxComponent,\r\n TextboxComponent,\r\n TextAreaComponent,\r\n MultiLingualTextAreaComponent,\r\n CheckBoxComponent,\r\n DropdownListComponent,\r\n PhoneComponent,\r\n ToggleslideComponent,\r\n HtmlEditorComponent,\r\n MultiLingualHtmlEditorComponent,\r\n ImageUploaderComponent,\r\n ProfileImageUploaderComponent,\r\n CalendarComponent,\r\n MapAutoCompleteComponent,\r\n AutocompleteTextBoxComponent,\r\n TagsInputComponent,\r\n PagingComponent,\r\n JwPaginationComponent,\r\n RadioButtonComponent,\r\n FormComponent,\r\n PagingComponent,\r\n ConfirmationModalComponent,\r\n RepeaterComponent,\r\n RepeaterFieldBuilderComponent,\r\n NgTemplateNameDirective,\r\n RepeaterItemFieldComponent,\r\n RepeaterTableComponent,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n RecaptchaComponent,\r\n PageHeaderComponentComponent\r\n ]\r\n})\r\nexport class BBSFControlsModule {\r\n\r\n constructor(private injector: Injector, private translate: TranslateService) {\r\n AppInjector = this.injector;\r\n\r\n }\r\n\r\n}\r\n","import { AbstractControl } from '@angular/forms';\r\n\r\nexport class CustomValidation\r\n{\r\n massage:string;\r\n functionBody:any;\r\n}\r\nexport class CustomValidator{\r\n // Number only validation\r\n static numeric(control: AbstractControl) {\r\n let val = control.value;\r\n \r\n if (val === null || val === '') return null;\r\n \r\n if (!val.toString().match(/^[0-9]+(\\.?[0-9]+)?$/)) return { 'invalidNumber': true };\r\n \r\n return null;\r\n }\r\n }","import { Injector, Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport {\r\n UtilityService,\r\n AuthService,\r\n ConfigurationService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AbstractControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ControlUtility } from '../services/ControlUtility';\r\nimport { FilterItem } from '../Models/FilterItem';\r\nimport { CustomValidation } from '../Models/CustomValidation';\r\nimport { EnglishArabicDTO } from '../Models/EnglishArabicDTO';\r\nimport * as saveAs from 'file-saver';\r\nimport { EnvironmentService } from '@bnsights/bbsf-utilities';\r\n\r\n@Injectable()\r\nexport abstract class AppBaseComponent {\r\n public utilityService: UtilityService;\r\n public modalService: NgbModal;\r\n private controlUtility: ControlUtility;\r\n private titleService: Title;\r\n private auhService: AuthService;\r\n private configurationService: ConfigurationService;\r\n public environmentService: EnvironmentService;\r\n public isEN: boolean;\r\n //Labels\r\n public exportLabel: string;\r\n public filtersLabel: string;\r\n public addLabel: string;\r\n public userName: string;\r\n public pageTitle: string = '';\r\n public PageCount: number = 12;\r\n constructor(injector: Injector) {\r\n this.utilityService = injector.get(UtilityService);\r\n this.controlUtility = injector.get(ControlUtility);\r\n this.configurationService = injector.get(ConfigurationService);\r\n this.environmentService = injector.get(EnvironmentService);\r\n this.modalService = injector.get(NgbModal);\r\n this.titleService = injector.get(Title);\r\n this.auhService = injector.get(AuthService);\r\n this.exportLabel = this.utilityService.getResourceValue('Export');\r\n this.filtersLabel = this.utilityService.getResourceValue('Filters');\r\n this.addLabel = this.utilityService.getResourceValue('Add');\r\n this.userName = this.auhService.name();\r\n this.isEN = this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n updatePageTitle(title: string | undefined) {\r\n this.titleService.setTitle(this.calculatePageTitle(title));\r\n }\r\n\r\n l(key: string): string {\r\n return this.utilityService.getResourceValue(key);\r\n }\r\n getConfigurationValue(key: string) {\r\n return this.configurationService.getConfigurationValue(key);\r\n }\r\n getLanguageModeValue() {\r\n return this.configurationService.getConfigurationValue('LanguageMode');\r\n }\r\n stopBlockUI() {\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n startBlockUI() {\r\n this.utilityService.startBlockUI();\r\n }\r\n\r\n openModal(modal: any, size?: string) {\r\n if (size)\r\n this.modalService.open(modal, {\r\n size: size,\r\n backdrop: 'static',\r\n keyboard: false,\r\n });\r\n else this.modalService.open(modal, { backdrop: 'static', keyboard: false });\r\n }\r\n\r\n download(fileDTO: any, fileName: string): void {\r\n /*let blob = new Blob([file]);*/\r\n let file = new Blob([fileDTO], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n saveAs(file, fileName);\r\n }\r\n\r\n downloadPDF(fileDTO: any, fileName: string): void {\r\n let file = new Blob([fileDTO], { type: \"application/pdf\" });\r\n saveAs(file, fileName);\r\n }\r\n downloadWord(fileDTO: any, fileName: string): void {\r\n let file = new Blob([fileDTO], { type: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" });\r\n saveAs(file, fileName);\r\n }\r\n\r\n\r\n private base64toBlob(base64Data, contentType) {\r\n contentType = contentType || '';\r\n var sliceSize = 1024;\r\n var byteCharacters = atob(base64Data);\r\n var bytesLength = byteCharacters.length;\r\n var slicesCount = Math.ceil(bytesLength / sliceSize);\r\n var byteArrays = new Array(slicesCount);\r\n\r\n for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\r\n var begin = sliceIndex * sliceSize;\r\n var end = Math.min(begin + sliceSize, bytesLength);\r\n\r\n var bytes = new Array(end - begin);\r\n for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\r\n bytes[i] = byteCharacters[offset].charCodeAt(0);\r\n }\r\n byteArrays[sliceIndex] = new Uint8Array(bytes);\r\n }\r\n return new Blob(byteArrays, { type: contentType });\r\n }\r\n\r\n private calculatePageTitle(title: string | undefined): string | undefined {\r\n return title\r\n ? title.substring(0, 100) + ` | ${this.l('ApplicationName')}`\r\n : `${this.l('ApplicationName')}`;\r\n }\r\n\r\n getPagingFiltersValues(form: FormGroup, filters: FilterItem[]): any {\r\n let model = new Object();\r\n for (var i = 0; i < filters.length; i++) {\r\n let filterItem = filters[i];\r\n if (form.controls[filterItem.FormControlName].value == undefined)\r\n continue;\r\n model[filterItem.ActionParameterName] =\r\n form.controls[filterItem.FormControlName].value == undefined\r\n ? ''\r\n : form.controls[filterItem.FormControlName].value;\r\n // params = params.append(filterItem.ActionParameterName, form.controls[filterItem.FormControlName].value == undefined ? '' : form.controls[filterItem.FormControlName].value);\r\n }\r\n return model;\r\n }\r\n\r\n removeControl(controlName: string, form: FormGroup) {\r\n form.removeControl(controlName);\r\n }\r\n\r\n copyToClipboard(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n this.utilityService.notifySuccessMessage(this.l('CopiedSuccessfully'));\r\n }\r\n\r\n addRequiredRule(control: AbstractControl, controlOptions: any) {\r\n this.controlUtility.addRequiredToControl(control, controlOptions);\r\n }\r\n\r\n removeRequiredRule(control: AbstractControl, controlOptions: any) {\r\n this.controlUtility.removeRequiredFromControl(control, controlOptions);\r\n }\r\n\r\n validateDates(\r\n form: FormGroup,\r\n fromDateControl: string,\r\n toDateControl: string,\r\n validationMessageKey: string\r\n ): CustomValidation {\r\n var validator = new CustomValidation();\r\n validator.functionBody = (control) => {\r\n let fromDate = form.controls[fromDateControl].value;\r\n let toDate = form.controls[toDateControl].value;\r\n\r\n if (fromDate && toDate && toDate <= fromDate)\r\n return { customerError: true };\r\n\r\n return null;\r\n };\r\n validator.massage = this.l(validationMessageKey);\r\n return validator;\r\n }\r\n\r\n onSuccessAddHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordAdded'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n onSuccessEditHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordUpdated'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n onSuccessDeleteHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordDeleted'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n recalculatePageTitle() {\r\n this.titleService.setTitle(this.calculatePageTitle(''));\r\n }\r\n\r\n isEnglish() {\r\n return this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n\r\n calculateInitials(name: string): string {\r\n let language = localStorage.getItem('language');\r\n let currentUser = this.auhService.user.profile;\r\n console.log(currentUser);\r\n let userName =\r\n language == 'en' ? currentUser.given_nameEn : currentUser.given_nameAr;\r\n if (currentUser) {\r\n let fullName = userName.split(' ');\r\n let initials: string;\r\n if (fullName.length > 1) {\r\n if (this.isEN)\r\n initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);\r\n else\r\n initials =\r\n fullName.shift().charAt(0) + ' ' + fullName.pop().charAt(0);\r\n } else {\r\n initials = fullName.pop().charAt(0);\r\n }\r\n return initials.toUpperCase();\r\n }\r\n return '';\r\n }\r\n\r\n getCurrentUserInitials(): string {\r\n return this.calculateInitials(this.auhService.name());\r\n }\r\n\r\n getCurrentFailOver(val: EnglishArabicDTO): string {\r\n if (this.isEnglish()) {\r\n if (val.English) return val.English;\r\n else return val.Arabic;\r\n } else {\r\n if (val.Arabic) return val.Arabic;\r\n else return val.English;\r\n }\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({\r\n},\r\n(window as any).Environment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { InputType } from '../Enums/InputType';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { LanguageValidation } from '../Enums/LanguageValidation';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\nimport { RecaptchaModel } from './Recaptcha';\r\n\r\nexport class RecaptchaOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: RecaptchaModel = new RecaptchaModel()\r\n ForceDirection: ForceDirection = null\r\n /**Prevent AutoComplete of control default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n NoMargin: boolean = false;\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string = \"/api/Home/GetReCaptchaModel\";\r\n /*Pass hexa-color primary background color*/\r\n BackgroundColorPrimary: string = \"\"\r\n /*Pass hexa-color secondary background color*/\r\n BackgroundColorSecondary: string = \"\"\r\n /*Pass hexa-color primary text color*/\r\n TextColorPrimary: string\r\n /*Pass hexa-color secondary text color*/\r\n TextColorSecondary: string\r\n /*Pass font Size */\r\n FontSize: number = 0;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout';\r\nimport { LanguageMode } from '../Enums/LanguageMode';\r\nimport { CustomValidation } from './CustomValidation';\r\nimport { EnglishArabicDTO } from './EnglishArabicDTO';\r\n\r\nexport class MultilingualControlOptionsBase {\r\n /** Represent Name Of Form Control*/\r\n Name: string;\r\n /** Represent key of the Label*/\r\n LabelKey: string;\r\n /** Represent value of the Label*/\r\n LabelValue: string;\r\n /** Represent Key of the label*/\r\n ArabicLabelKey: string;\r\n /** Represent Key of the label*/\r\n EnglishLabelKey: string;\r\n /** Represent value of the ArabicLabel*/\r\n ArabicLabelValue: string;\r\n /** Represent value of the EnglishLabel*/\r\n EnglishLabelValue: string;\r\n /** Represent value of the LabelDescription show under textbox*/\r\n LabelDescription: string;\r\n /** Represent value of the ArabicLabelDescription show under MultipleLanguageText*/\r\n ArabicLabelDescription: string;\r\n /** Represent value of the EnglishLabelDescription show under MultipleLanguageText*/\r\n EnglishLabelDescription: string;\r\n /**Represent ArabicPlaceholder Of Form Control*/\r\n ArabicPlaceholder: string;\r\n /**Represent EnglishPlaceholder Of Form Control*/\r\n EnglishPlaceholder: string;\r\n /** Represent classes to label that allow us to select the Control by jquery or javascript */\r\n LabelExtraClasses: string;\r\n /**Represent classes to Arabic textbox that allow us to select the MultipleLanguageText by jquery or javascript */\r\n ExtraClasses_AR: string;\r\n /**Represent classes to English textbox that allow us to select the MultipleLanguageText by jquery or javascript */\r\n ExtraClasses_EN: string;\r\n /** to set type of view if MultipleLanguageText is Vertical or Horizontal */\r\n ViewType: ControlLayout = null;\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean;\r\n /**To Set Value To MultipleLanguageText with Object From Type \"EnglishArabicDTO\" */\r\n Value: EnglishArabicDTO = new EnglishArabicDTO();\r\n /**Set the MinLength of characters In TextBox */\r\n MinLength: number;\r\n //** Set the MaxLength of characters In TextBox */\r\n MaxLength: number;\r\n //** Set the MaxWordCount of characters In TextBox */\r\n MaxWordCount: number;\r\n /**\r\n * Display \"*\" beside the label\r\n * if ForceAsterisk=true and IsRequired=True his display \"*\" ,\r\n * if if ForceAsterisk=false and IsRequired=false this remove \"*\",\r\n *if ForceAsterisk=false and IsRequired=True this display \"*\" ,\r\n */\r\n ShowAsterisk: boolean;\r\n /** Ability to set MultipleLanguageText required */\r\n IsRequired: boolean;\r\n /** Sets an attribute disable=\"disabled\" */\r\n IsDisabled: boolean;\r\n /** Ability to display or hide the EnglishField of MultipleLanguageText */\r\n IsHideEnglishFields: boolean;\r\n /** Ability to display or hide the ArabicField of MultipleLanguageText */\r\n IsHideArabicFields: boolean;\r\n /** Ability to display or hide the EnglishLabel of MultipleLanguageText */\r\n IsHideEnglishLabel: boolean;\r\n /** Ability to display or hide the ArabicLable of MultipleLanguageText */\r\n IsHideArabicLabel: boolean;\r\n /** trim input on change */\r\n TrimTextOnChange: boolean;\r\n /**To Set LanguageMode To MultipleLanguageText */\r\n LanguageMode: LanguageMode = null;\r\n /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */\r\n CustomValidation: CustomValidation[] = [];\r\n /** Path of propriety which we need to patch value */\r\n PatchPath: string;\r\n /** Function which call to patch value */\r\n PatchFunction: Function;\r\n /** Sets an attribute readonly */\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualTextBoxOptions extends MultilingualControlOptionsBase {\r\n\r\n /*icon options*/\r\n Icon: string\r\n IconPositionEN: IconPosition = IconPosition.left\r\n IconPositionAR: IconPosition = IconPosition.right\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = null\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n /**Prevent AutoComplete of inputs default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n}\r\n","export class Attribute\r\n{\r\n Key:string\r\n value: any\r\n}","import { InputType } from '../Enums/InputType';\r\nimport { ControlLayout } from '../Enums/ControlLayout';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualTextAreaOptions extends MultilingualControlOptionsBase {\r\n Type: InputType;\r\n /**Set Number Of Rows */\r\n Rows: number\r\n /**Set Number Of columns */\r\n Cols: number\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = null;\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class CheckBoxOptions extends ControlOptionsBase {\r\n /**To set value to CheckBox */\r\n Value: boolean = null\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}","\r\nexport class DropdownListItem\r\n{\r\n id:any\r\n itemName:any\r\n}\r\n","import { InputType } from '../Enums/InputType';\r\nimport { Misc } from '../Enums/Misc';\r\nimport { Style } from '../Enums/Style';\r\nimport { FontSize } from '../Enums/FontSize';\r\nimport { Para } from '../Enums/Para';\r\nimport { Insert } from '../Enums/Insert';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualHtmlEditorOptions extends MultilingualControlOptionsBase {\r\n Type: InputType;\r\n /** Set Height For */\r\n Height: number=150\r\n /** Set List of Misc like codeview Or undo Or redo */\r\n ToolsList_Misc?: Misc[];\r\n /** Set List of Style like bold Or italic Or underline Or clear */\r\n ToolsList_Style?: Style[];\r\n /** Set List of FontSize like fontname Or fontsize Or color */\r\n ToolsList_FontSize?: FontSize[];\r\n /** Set List of Para like style Or ul Or ol Or paragraph Or height */\r\n ToolsList_Para?: Para[];\r\n /** Set List of Insert like table Or picture Or link Or video Or hr */\r\n ToolsList_Insert?: Insert[];\r\n\r\n\r\n}\r\n","import { ImageType } from '../Enums/ImageType';\r\nimport { EditPersonalImage } from './EditPersonalImage';\r\nimport { SaveDTO } from './SaveDTO';\r\nimport { CancelDTO } from './CancelDTO';\r\nimport { UploadPersonalImage } from './UploadPersonalImage';\r\nimport { ProfilePictureDTO } from './ProfilePictureDTO';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ProfileImageUploadOptions extends ControlOptionsBase {\r\n\r\n /**To set value to FileInput */\r\n Value: ProfilePictureDTO\r\n AllowDropZone: boolean = false\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n ImageUploadAcceptsTypes: ImageType[] = [ImageType.ImageTypes]\r\n /** Set Default Image */\r\n DefaultImageSrc: string\r\n /** Set ImageID Encrypted */\r\n ImageIDEncrypted: string\r\n /** Set EditPersonalImage */\r\n EditPersonalImageTitle: EditPersonalImage\r\n /** Set SaveDTO */\r\n SaveTitle: SaveDTO\r\n /** Set CancelDTO */\r\n CancelTitle: CancelDTO\r\n /** Set UploadPersonalImage */\r\n UploadPersonalImageTitle: UploadPersonalImage\r\n}\r\n","export class SaveDTO\r\n{\r\n constructor()\r\n {\r\n this.English = \"Save\";\r\n this.Arabic = \"حفظ\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class CancelDTO\r\n{\r\n constructor()\r\n {\r\n this.English = \"Cancel\";\r\n this.Arabic = \"الغاء\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class EditPersonalImage\r\n{\r\n constructor()\r\n {\r\n this.English = \"Edit Personal Image\";\r\n this.Arabic = \"تعديل الصورة الشخصية\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class UploadPersonalImage\r\n{\r\n constructor()\r\n {\r\n this.English = \"Upload Personal Image\";\r\n this.Arabic = \"تحميل صورة الشخصية\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","import { CalendarView } from '../Enums/CalendarView'\r\nimport { CalendarEventDTO } from './CalendarEventDTO'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class CalendarOptions extends ControlOptionsBase {\r\n /** Represent DefaultView Of Calendar*/\r\n DefaultView: CalendarView = CalendarView.Month\r\n /** Represent OnEventClickFunction Of Calendar*/\r\n OnEventClickFunction: any\r\n /** Represent CalendarViews Of Calendar*/\r\n CalendarViews: CalendarView[] = [CalendarView.Agenda, CalendarView.Daily, CalendarView.Month, CalendarView.Weekly]\r\n /** Represent OnDayClickFunction Of Calendar*/\r\n OnDayClickFunction: any\r\n EventList: CalendarEventDTO[]\r\n /** Set Allowc Calendar Weekends Of Calendar*/\r\n AllowCalendarWeekends: boolean\r\n /** Set Calendar Visible Of Calendar*/\r\n CalendarVisible: boolean = true\r\n /** Set DefaultDate Of Calendar*/\r\n DefaultDate: Date = new Date()\r\n Eventeditable: boolean = false\r\n Eventselectable: boolean = false\r\n dayMaxEvents: boolean | number = false;\r\n\r\n}","export class CalendarEventDTO\r\n{\r\n id: string;\r\n title: string;\r\n start: Date;\r\n end: Date;\r\n colour: string;\r\n allDay:boolean\r\n}","import { TemplateRef } from '@angular/core';\r\nimport { AutocompleteDTO } from './AutocompleteDTO';\r\nimport { InputType } from '../Enums/InputType';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class AutocompleteOptions extends ControlOptionsBase {\r\n\r\n /**Represent classes to textbox that allow us to select the AutoComplete by jquery or javascript */\r\n ValidationToken: string = null\r\n /**To set value to textbox */\r\n Value: any = null\r\n //** Set the MaxLength of characters In AutoComplete */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In AutoComplete */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In AutoComplete */\r\n MaxWordCount: number;\r\n /** set Range Number to Textbox with type number with From-Value and To-value*/\r\n NumberRange: RangeNumber = new RangeNumber()\r\n /**Prevent AutoComplete of textbox*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefulatPasswordValidation: boolean\r\n /** to set Direction of textbox if textbox is Arabic or English */\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n /** Set Type of AutoComplete (\"text\",\"password\",\"email\",\"number\") */\r\n Type: InputType\r\n /** allow add value of AutoComplete dosn't exist in list*/\r\n AllowNewSelection: boolean = false;\r\n ControlId: string;\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string;\r\n // /**a {key,value} (json) object to include as params for the json call. Each api supports different structure.*/\r\n // Params: object={};\r\n QueryParam: string = 'query'\r\n AutocompleteDTO: AutocompleteDTO\r\n SelectedValue: any = null\r\n ItemWithImage: boolean = false\r\n CustomTemplate:TemplateRef<any>\r\n}\r\n","export class TagsInputDTO\r\n {\r\n ID :string\r\n Name :string\r\n Description :string\r\n ImageURL: string;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout'\r\nimport { CustomValidation } from './CustomValidation'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\nimport { Attribute } from './Attribute'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\nimport { TagInputView } from '../Enums/TagInputView'\r\n\r\n\r\nexport class TagsInputOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In AutoComplete */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In AutoComplete */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In AutoComplete */\r\n MaxWordCount: number;\r\n /**Prevent AutoComplete of tagsinput*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefulatPasswordValidation: boolean\r\n /** to set Direction of tagsinput if tagsinput is Arabic or English */\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string;\r\n /**Remove Last When User Click On Backspace */\r\n RemoveLastOnBackspace: boolean = false\r\n /** Allow User To Delete Tags */\r\n CanDeleteTags: boolean = true\r\n /** Allow User To Add Tags */\r\n CanAddTags: boolean = true\r\n /** Set Max Number Of Tags That User Can Be Select */\r\n MaxNumberTags: number = 30\r\n /** Set Min Length Of Char To Call Search Function */\r\n MinSearchLength: number = 1\r\n /**Allow Scrolle Option In Dropdown */\r\n ScrollableOptions: boolean = true\r\n /** Set Max Number Of Tags That will Be Appear ON Dropdown */\r\n MaxSearchResultsCount: number = 10\r\n /**Value Name Of Tag Option In Dropdown */\r\n DatasourceItemValue: string = \"id\"\r\n /**Text Of Tag That Will Show In Dropdown */\r\n DatasourceItemText: string = \"name\"\r\n /**Text Show when none of the given options match the entered text */\r\n NoResultText: string;\r\n /**Set Query Param Name By Default It's 'query'*/\r\n QueryParamName: string = \"query\"\r\n /**Set Query Param Name By Default It's 'query'*/\r\n SelectedItemsParamName: string = \"SelectedItems\"\r\n /**Set Filter Param Name By Default It's 'query'*/\r\n FilterParamName: string = \"\"\r\n DefaultImgUrl: string = \"\"\r\n /** allow add value of TagInput dosn't exist in list*/\r\n AllowNewSelection: boolean = false;\r\n ValidationToken: string = null;\r\n /**Set Extra Filters*/\r\n ExtraFilters: string;\r\n \r\n TagInputMode: TagInputView = TagInputView.WithoutImage\r\n\r\n ShowDescription: boolean = true;\r\n\r\n}\r\n","import { FilterType } from '../Enums/FilterType';\r\n\r\nexport class FilterItem {\r\n \r\n /** jQuery selector used to retrieve the parameter value*/\r\n\r\n jQuerySelector: string\r\n /** FormControlName used to retrieve the value Of Control*/\r\n FormControlName: string;\r\n /** The action parameter exact name (case sensitive)*/\r\n ActionParameterName: string\r\n /** Check If This Filter Is Form Control Or js Filter */\r\n IsFormControl: boolean=true\r\n /**Set Filter Type To Filter*/\r\n FilterType:FilterType\r\n\r\n}\r\n","import { FilterItem } from './FilterItem'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\n\r\nexport class PagingOptions<T = any>{\r\n /**URL of the action that will be called on update*/\r\n ActionPostURL: string = \"\"\r\n ValidationToken: string = null\r\n /** Comma separater list of parameters that need to be passed to the updated function, the parameter name must be the ID of the element that holds the value of the filter.\r\n * ex \"searchText,fromDateTimePicker\" we should have now an input with id searchText and a datetime picker with id fromDateTimePicker*/\r\n Filters: FilterItem[] = []\r\n /**The total count for the items in the datasource */\r\n TotalCount: number = 0\r\n /** No of items in one page \r\n * Default is 10\r\n */\r\n PageSize: number = 10\r\n /**Typeahead search input, used to attach on change events to the search input to refresh the paging after change */\r\n TypeaheadSearchControlNames: string[] = []\r\n /**Comma separater list of Dropdowns filters , used to attach on change events to the dropdown filter to refresh the paging after change */\r\n DropdownFiltersControlNames: string[] = []\r\n /**Comma separater list of Bootstrap datepicker filters, used to attach on change events to the datepicker filter to refresh the paging after change */\r\n BootstrapDatePickersFiltersControlNames: string[] = []\r\n /**Comma separater list of any button/element filters to attach on click event, this will refresh the paging after the event is fired */\r\n OnClickFiltersControlNames: string[] = []\r\n /** Comma separater list of any button/element filters to attach on keypress/Enter event, this will refresh the paging after the event is fired */\r\n OnKeyPressFiltersControlNames: string[] = []\r\n /** The js function name to be called to update the paging total count and keep the current page as is, have to pass the new total count of the datasource items\r\n * Default value is Paging_Update fill this parameter in case there are multiple paging controls */\r\n UpdateFunctionName: string\r\n /** The js function name to be called to reinitialize the paging component with a new items count and reset the curent page to 1, you must pass the new total count of the datasource items\r\n * Default value is Paging_Reinitialize fill this parameter in case there are multiple paging controls*/\r\n ReinitializeFunctionName: string\r\n /**Show a dropdown to be able to change the page size */\r\n ShowPageSizeOption: boolean = false\r\n /**js function name to be called when a page is updated */\r\n OnSuccessCallBackJSFunction: string\r\n /** bool to set block ui by container rather than the whole window */\r\n BlockUIByContainer: boolean = true\r\n /**hide Pagination When Page Size Equal One */\r\n HidePaginationWhenPageSizeEqualOne: boolean = true\r\n /**Show First And Last */\r\n ShowFirstAndLast: boolean = true\r\n /**Show Load More Button And Hide Paging */\r\n IsLoadMoreControl: boolean = false\r\n /** Load More items While Scrolling */\r\n IsInfiniteScroll: boolean = false\r\n /**should get a html element or css selector for a scrollable element; window or current element will be used if this attribute is empty. */\r\n InfiniteScrollContainer\r\n /**listens to the window scroll instead of the actual element scroll. this allows to invoke a callback function in the scope of the element while listenning to the window scroll. */\r\n ScrollWindow: boolean = true\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n TypeOfResponse?: new () => T\r\n /** Clear Filter button selector */\r\n ResetFilterButtonName: string = null;\r\n DisableBlockUI: boolean = false;\r\n StartPagingCallback: Function = null;\r\n}\r\n","\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\nimport { RadioButtonItem } from './RadioButtonItem';\r\n\r\nexport class RadioButtonOptions extends ControlOptionsBase {\r\n /**To set value to RadioButton */\r\n Value: RadioButtonItem\r\n /** Set List of Custom Attribute to RadioButton */\r\n Items: RadioButtonItem[]\r\n\r\n}\r\n","\r\n\r\nexport class RadioButtonItem {\r\n Text: string\r\n Value :any\r\n}\r\n","import { FormGroup } from '@angular/forms';\r\nimport { ElementRef } from '@angular/core';\r\nimport { PagingActionMode } from '../Enums/PagingActionMode';\r\nimport { PagingComponent } from '../../controls/Paging/Paging.component';\r\n\r\nexport class FormOptions {\r\n\r\n //Represents form group of contol\r\n FormGroup: FormGroup = null;\r\n\r\n //Represents refrence to paging control that needs to be updated after success\r\n PagingReference: PagingComponent<any> = null\r\n\r\n //Represents paging action excutes after submission (Reinitialize/Update)\r\n PagingActionMode: PagingActionMode = PagingActionMode.Reinitialize;\r\n\r\n //Represents function that get form model for submission\r\n GetModelFunction: Function = null;\r\n\r\n //Represents service function for submission\r\n ServiceSubmitFunction: Function = null;\r\n\r\n //Represents function that excutes after submission error\r\n OnErrorHandler: Function = null;\r\n\r\n //Represents function that excutes after submission success\r\n OnSuccessHandler: Function = null;\r\n\r\n //If =\"true\" disable notification after submission success\r\n DisableSuccessNotification: boolean = false;\r\n\r\n //If =\"true\" disable notification after submission error\r\n DisableErrorNotification: boolean = false;\r\n\r\n //If =\"true\" disable startblockui before submission\r\n DisableBlockUI: boolean = false;\r\n\r\n //If =\"true\" disable modal from dismiss automatically \r\n DisableModalDismiss: boolean = false;\r\n}\r\n","import { PagingComponent } from \"../../controls/Paging/Paging.component\";\r\nimport { PagingActionMode } from \"../Enums/PagingActionMode\";\r\nimport { StyleConfirmationMode } from \"../Enums/StyleConfirmationMode\";\r\n\r\n\r\nexport class ConfirmationModalOptions {\r\n //Represents confirmation modal title\r\n ConfirmationHeader: string = null;\r\n\r\n //Represents confirmation modal body\r\n ConfirmationBody: string = null;\r\n\r\n //Represents confirmation modal submit button text\r\n SubmitButtonText: string = null;\r\n\r\n //Represents confirmation modal body style\r\n StyleConfirmationMode: StyleConfirmationMode = StyleConfirmationMode.Danger;\r\n\r\n //Represents service function for submission\r\n ServiceSubmitFunction: Function = null;\r\n\r\n //Represents model sent to service submit function\r\n ServiceSubmitModel: any[] = [];\r\n\r\n //Represents refrence to paging control that needs to be updated after success\r\n PagingReference: PagingComponent<any> = null\r\n\r\n //Represents paging action excutes after submission (Reinitialize/Update)\r\n PagingActionMode: PagingActionMode = PagingActionMode.Reinitialize;\r\n\r\n //Represents function that excutes after submission error\r\n OnErrorHandler: Function = null;\r\n\r\n //Represents function that excutes after submission success\r\n OnSuccessHandler: Function = null;\r\n\r\n //Represents message appears in notification after success\r\n SuccessNotificationMessage: string = null;\r\n\r\n //If =\"true\" disable notification after submission success\r\n DisableSuccessNotification: boolean = false;\r\n\r\n //If =\"true\" disable notification after submission error\r\n DisableErrorNotification: boolean = false;\r\n\r\n //If =\"true\" disable prevent modal from dismiss automatically \r\n DisableModalDismiss: boolean = false;\r\n //If =\"false\" prevent modal to show cancel button\r\n showCancelButton: boolean = true;\r\n //If =\"false\" prevent modal to show close button\r\n showCloseButton: boolean = true;\r\n\r\n}\r\n","import { DataType } from \"../Enums/Enums\";\r\nexport class RepeaterField {\r\n HeaderTitle: string;\r\n ControlType: DataType;\r\n ControlOptions: any;\r\n IsHiddenInput: boolean;\r\n}\r\n","import { RepeaterField } from \"./RepeaterField\";\r\n\r\nexport class RepeaterOptions {\r\n IsRequired: boolean;\r\n MinRequiredItems: number;\r\n ExtraClasses: string;\r\n Name: string;\r\n ActionLabelKey: string = \"\";\r\n AddButtonExtraClasses: string;\r\n RepeaterTableExtraClasses: string\r\n RepeaterTableRowExtraClasses: string\r\n AddButtonText: string = \"Add\";\r\n DeleteButtonExtraClasses: string;\r\n DeleteButtonText: string = \"Delete\";\r\n RepeaterValue: any[] = [];\r\n RepeaterStructure: RepeaterField[] = [];\r\n DisableAddButton: boolean = false;\r\n DisableDeleteButton: boolean = false;\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ControlFilterItem } from \"./control-filter-Item\";\r\nexport class FilterOptions {\r\n ControlsOptions:ControlFilterItem[]=[];\r\n ApplyFunction:Function = null;\r\n RestFunction:Function = null;\r\n ShowLoadingInFiltersBox:boolean=false;\r\n}\r\n","import { BreadCrumb } from \"./bread-crumb\";\r\nimport { FilterOptions } from \"./filter-options\";\r\nimport { TextBoxOptions } from \"./TextBoxOptions\";\r\n\r\nexport class PageHeaderOptions {\r\n constructor() {\r\n this.BreadCrumb = new BreadCrumbModel();\r\n this.AddButton = new AddButton();\r\n this.EditButton = new EditButton();\r\n this.DeleteButton = new DeleteButton();\r\n this.ExportButton = new ExportButton();\r\n this.GridView = new GridViewModel();\r\n this.SearchTextBox = new TextBoxModel();\r\n this.FiltersButton = new FiltersButton();\r\n this.Filters = new FilterOptions();\r\n this.DropDownActions = new DropdownActions();\r\n }\r\n TitleKey: string;\r\n TitleValue: string;\r\n SubTitleKey: string;\r\n BreadCrumb: BreadCrumbModel;\r\n AddButton: AddButton;\r\n EditButton: EditButton;\r\n DeleteButton: DeleteButton;\r\n ExportButton: ExportButton;\r\n GridView: GridViewModel;\r\n SearchTextBox: TextBoxModel;\r\n FiltersButton: FiltersButton;\r\n Filters: FilterOptions;\r\n DropDownActions: DropdownActions;\r\n Listing: boolean;\r\n}\r\n\r\nexport class BreadCrumbModel {\r\n Active: boolean\r\n BreadCrumbItems: BreadCrumb[] = [];\r\n}\r\nexport class AddButton {\r\n Active: boolean;\r\n ButtonTextKey: string=\"Add\";\r\n Function: Function = null;\r\n}\r\nexport class EditButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Edit\";\r\n Function: Function = null;\r\n}\r\nexport class DeleteButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Delete\";\r\n Function: Function = null;\r\n}\r\nexport class FiltersButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Filter\";\r\n Function: Function = null;\r\n ShowLoadingInFiltersBox: boolean = true;\r\n\r\n constructor() {\r\n this.ButtonTextKey = \"Filter\";\r\n }\r\n}\r\nexport class ExportButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Export\";\r\n Function: Function = null;\r\n}\r\nexport class GridViewModel {\r\n Active: boolean;\r\n ToggleFunction: Function = null;\r\n ShowGridViewByDefault: boolean;\r\n}\r\nexport class TextBoxModel {\r\n Active: boolean;\r\n TextSearchBoxOptions: TextBoxOptions = new TextBoxOptions();\r\n}\r\nexport class DropdownActions {\r\n Active: boolean;\r\n DropdownActionItems: DropdownActionItem[] = []\r\n}\r\nexport class DropdownActionItem {\r\n constructor(text: string, svg: string, functionName: Function,routerLink:string=null) {\r\n this.Text = text;\r\n this.SVG = svg;\r\n this.Function = functionName;\r\n this.RouterLink = routerLink;\r\n }\r\n Text: string;\r\n SVG: string;\r\n Function: Function = null;\r\n RouterLink :string\r\n}\r\n","import { DataType } from \"../Enums/Enums\";\r\nexport class ControlFilterItem {\r\n key:DataType;\r\n value:any;\r\n onChange?:Function = null;\r\n}\r\n","export class BreadCrumb {\r\n constructor(label: string, active: boolean, route: string = null) {\r\n this.label = label;\r\n this.active = active;\r\n this.route = route;\r\n }\r\n label: string;\r\n active: boolean;\r\n route: string;\r\n }\r\n ","export enum MenuListType {\r\n AdminType =1 ,\r\n UserType = 2,\r\n \r\n}","export enum Country {\r\n Afghanistan = \"af\",\r\n Albania = \"al\",\r\n Algeria = \"dz\",\r\n AmericanSamoa = \"as\",\r\n Andorra = \"ad\",\r\n Angola = \"ao\",\r\n Anguilla = \"ai\",\r\n AntiguaAndBarbuda = \"ag\",\r\n Argentina = \"ar\",\r\n Armenia = \"am\",\r\n Aruba = \"aw\",\r\n Australia = \"au\",\r\n Austria = \"at\",\r\n Azerbaijan = \"az\",\r\n Bahamas = \"bs\",\r\n Bahrain = \"bh\",\r\n Bangladesh = \"bd\",\r\n Barbados = \"bb\",\r\n Belarus = \"by\",\r\n Belgium = \"be\",\r\n Belize = \"bz\",\r\n Benin = \"bj\",\r\n Bermuda = \"bm\",\r\n Bhutan = \"bt\",\r\n Bolivia = \"bo\",\r\n BosniaAndHerzegovina = \"ba\",\r\n Botswana = \"bw\",\r\n Brazil = \"br\",\r\n BritishIndianOceanTerritory = \"io\",\r\n BritishVirginIslands = \"vg\",\r\n Brunei = \"bn\",\r\n Bulgaria = \"bg\",\r\n BurkinaFaso = \"bf\",\r\n Burundi = \"bi\",\r\n Cambodia = \"kh\",\r\n Cameroon = \"cm\",\r\n Canada = \"ca\",\r\n CapeVerde = \"cv\",\r\n CaribbeanNetherlands = \"bq\",\r\n CaymanIslands = \"ky\",\r\n CentralAfricanRepublic = \"cf\",\r\n Chad = \"td\",\r\n Chile = \"cl\",\r\n China = \"cn\",\r\n ChristmasIsland = \"cx\",\r\n Cocos = \"cc\",\r\n Colombia = \"co\",\r\n Comoros = \"km\",\r\n CongoDRCJamhuriYaKidemokrasiaYaKongo = \"cd\",\r\n CongoRepublicCongoBrazzaville = \"cg\",\r\n CookIslands = \"ck\",\r\n CostaRica = \"cr\",\r\n CôteDIvoire = \"ci\",\r\n Croatia = \"hr\",\r\n Cuba = \"cu\",\r\n Curaçao = \"cw\",\r\n Cyprus = \"cy\",\r\n CzechRepublic = \"cz\",\r\n Denmark = \"dk\",\r\n Djibouti = \"dj\",\r\n Dominica = \"dm\",\r\n DominicanRepublic = \"do\",\r\n Ecuador = \"ec\",\r\n Egypt = \"eg\",\r\n ElSalvador = \"sv\",\r\n EquatorialGuinea = \"gq\",\r\n Eritrea = \"er\",\r\n Estonia = \"ee\",\r\n Ethiopia = \"et\",\r\n FalklandIslands = \"fk\",\r\n FaroeIslands = \"fo\",\r\n Fiji = \"fj\",\r\n Finland = \"fi\",\r\n France = \"fr\",\r\n FrenchGuiana = \"gf\",\r\n FrenchPolynesia = \"pf\",\r\n Gabon = \"ga\",\r\n Gambia = \"gm\",\r\n Georgia = \"ge\",\r\n Germany = \"de\",\r\n Ghana = \"gh\",\r\n Gibraltar = \"gi\",\r\n Greece = \"gr\",\r\n Greenland = \"gl\",\r\n Grenada = \"gd\",\r\n Guadeloupe = \"gp\",\r\n Guam = \"gu\",\r\n Guatemala = \"gt\",\r\n Guernsey = \"gg\",\r\n Guinea = \"gn\",\r\n GuineaBissau = \"gw\",\r\n Guyana = \"gy\",\r\n Haiti = \"ht\",\r\n Honduras = \"hn\",\r\n HongKong = \"hk\",\r\n Hungary = \"hu\",\r\n Iceland = \"is\",\r\n India = \"in\",\r\n Indonesia = \"id\",\r\n Iran = \"ir\",\r\n Iraq = \"iq\",\r\n Ireland = \"ie\",\r\n IsleOfMan = \"im\",\r\n Israel = \"il\",\r\n Italy = \"it\",\r\n Jamaica = \"jm\",\r\n Japan = \"jp\",\r\n Jersey = \"je\",\r\n Jordan = \"jo\",\r\n Kazakhstan = \"kz\",\r\n Kenya = \"ke\",\r\n Kiribati = \"ki\",\r\n Kosovo = \"xk\",\r\n Kuwait = \"kw\",\r\n Kyrgyzstan = \"kg\",\r\n Laos = \"la\",\r\n Latvia = \"lv\",\r\n Lebanon = \"lb\",\r\n Lesotho = \"ls\",\r\n Liberia = \"lr\",\r\n Libya = \"ly\",\r\n Liechtenstein = \"li\",\r\n Lithuania = \"lt\",\r\n Luxembourg = \"lu\",\r\n Macau = \"mo\",\r\n Macedonia = \"mk\",\r\n Madagascar = \"mg\",\r\n Malawi = \"mw\",\r\n Malaysia = \"my\",\r\n Maldives = \"mv\",\r\n Mali = \"ml\",\r\n Malta = \"mt\",\r\n MarshallIslands = \"mh\",\r\n Martinique = \"mq\",\r\n Mauritania = \"mr\",\r\n Mauritius = \"mu\",\r\n Mayotte = \"yt\",\r\n Mexico = \"mx\",\r\n Micronesia = \"fm\",\r\n Moldova = \"md\",\r\n Monaco = \"mc\",\r\n Mongolia = \"mn\",\r\n Montenegro = \"me\",\r\n Montserrat = \"ms\",\r\n Morocco = \"ma\",\r\n Mozambique = \"mz\",\r\n Myanmar = \"mm\",\r\n Namibia = \"na\",\r\n Nauru = \"nr\",\r\n Nepal = \"np\",\r\n Netherlands = \"nl\",\r\n NewCaledonia = \"nc\",\r\n NewZealand = \"nz\",\r\n Nicaragua = \"ni\",\r\n Niger = \"ne\",\r\n Nigeria = \"ng\",\r\n Niue = \"nu\",\r\n NorfolkIsland = \"nf\",\r\n NorthKorea = \"kp\",\r\n NorthernMarianaIslands = \"mp\",\r\n Norway = \"no\",\r\n Oman = \"om\",\r\n Pakistan = \"pk\",\r\n Palau = \"pw\",\r\n Palestine = \"ps\",\r\n Panama = \"pa\",\r\n PapuaNewGuinea = \"pg\",\r\n Paraguay = \"py\",\r\n Peru = \"pe\",\r\n Philippines = \"ph\",\r\n Poland = \"pl\",\r\n Portugal = \"pt\",\r\n PuertoRico = \"pr\",\r\n Qatar = \"qa\",\r\n Réunion = \"re\",\r\n Romania = \"ro\",\r\n Russia = \"ru\",\r\n Rwanda = \"rw\",\r\n SaintBarthélemy = \"bl\",\r\n SaintHelena = \"sh\",\r\n SaintKittsAndNevis = \"kn\",\r\n SaintLucia = \"lc\",\r\n SaintMartin = \"mf\",\r\n SaintPierreAndMiquelon = \"pm\",\r\n SaintVincentAndTheGrenadines = \"vc\",\r\n Samoa = \"ws\",\r\n SanMarino = \"sm\",\r\n SãoToméAndPríncipe = \"st\",\r\n SaudiArabia = \"sa\",\r\n Senegal = \"sn\",\r\n Serbia = \"rs\",\r\n Seychelles = \"sc\",\r\n SierraLeone = \"sl\",\r\n Singapore = \"sg\",\r\n SintMaarten = \"sx\",\r\n Slovakia = \"sk\",\r\n Slovenia = \"si\",\r\n SolomonIslands = \"sb\",\r\n Somalia = \"so\",\r\n SouthAfrica = \"za\",\r\n SouthKorea = \"kr\",\r\n SouthSudan = \"ss\",\r\n Spain = \"es\",\r\n SriLanka = \"lk\",\r\n Sudan = \"sd\",\r\n Suriname = \"sr\",\r\n SvalbardAndJanMayen = \"sj\",\r\n Swaziland = \"sz\",\r\n Sweden = \"se\",\r\n Switzerland = \"ch\",\r\n Syria = \"sy\",\r\n Taiwan = \"tw\",\r\n Tajikistan = \"tj\",\r\n Tanzania = \"tz\",\r\n Thailand = \"th\",\r\n TimorLeste = \"tl\",\r\n Togo = \"tg\",\r\n Tokelau = \"tk\",\r\n Tonga = \"to\",\r\n TrinidadAndTobago = \"tt\",\r\n Tunisia = \"tn\",\r\n Turkey = \"tr\",\r\n Turkmenistan = \"tm\",\r\n TurksAndCaicosIslands = \"tc\",\r\n Tuvalu = \"tv\",\r\n USVirginIslands = \"vi\",\r\n Uganda = \"ug\",\r\n Ukraine = \"ua\",\r\n UnitedArabEmirates = \"ae\",\r\n UnitedKingdom = \"gb\",\r\n UnitedStates = \"us\",\r\n Uruguay = \"uy\",\r\n Uzbekistan = \"uz\",\r\n Vanuatu = \"vu\",\r\n VaticanCity = \"va\",\r\n Venezuela = \"ve\",\r\n Vietnam = \"vn\",\r\n WallisAndFutuna = \"wf\",\r\n WesternSahara = \"eh\",\r\n Yemen = \"ye\",\r\n Zambia = \"zm\",\r\n Zimbabwe = \"zw\",\r\n ÅlandIslands = \"ax\"\r\n}\r\n","export enum FontSize\r\n{\r\n fontname = 'fontname' ,\r\n fontsize = 'fontsize',\r\n color = 'color',\r\n \r\n}\r\n\r\n","export enum Insert\r\n{\r\n table = 'table' ,\r\n picture = 'picture',\r\n link = 'link',\r\n video='video',\r\n hr='hr'\r\n}\r\n\r\n\r\n","export enum Misc\r\n{\r\n codeview = 'codeview' ,\r\n undo = 'undo',\r\n redo = 'redo',\r\n}\r\n","export enum Para\r\n{\r\n style = 'style' ,\r\n ul = 'ul',\r\n ol = 'ol',\r\n paragraph='paragraph',\r\n height='height'\r\n}\r\n\r\n","export enum Style\r\n{\r\n bold = 'bold' ,\r\n italic = 'italic',\r\n underline = 'underline',\r\n clear='clear'\r\n}\r\n\r\n","export enum FileType {\r\n PDF = 'application/pdf',\r\n Word = 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n Excel = 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n ImageTypes = 'image/png,image/bmp,image/jpeg',\r\n PNG = 'image/png',\r\n JPG = 'image/jpeg',\r\n JPEG = 'image/jpeg',\r\n ZIP = 'application/zip',\r\n RAR = 'application/x-rar-compressed',\r\n VIDEO = 'video/webm,video/ogg,video/mp4,video/quicktime,video/x-msvideo,video/x-ms-wmv',\r\n License = 'application/BN',\r\n Xml = 'text/xml',\r\n OctetSteam = 'application/octet-stream',\r\n Txt = 'text/plain',\r\n JSON = 'application/json',\r\n PowerPoint = 'application/vnd.ms-powerpoint,applicationapplication/vnd.openxmlformats-officedocument.presentationml.presentation',\r\n SVG = 'image/svg+xml',\r\n None = '',\r\n}\r\n","/*\r\n * Public API Surface of bnsights-library\r\n */\r\n//export module \r\nexport * from './lib/controls/bbsf-controls.module';\r\n// export * from './lib/areas/admin-panel/layout-modules/adminPage.module';\r\n\r\n// //export component \r\n export * from './lib/controls/TextBox/TextBox.component'\r\nexport * from './lib/controls/DateTimePicker/DateTimePicker.component'\r\nexport * from './lib/controls/FileUplaod/FileUplaod.component'\r\nexport * from './lib/controls/MultiLingualTextBox/MultiLingualTextBox.component'\r\nexport * from './lib/controls/TextArea/TextArea.component'\r\nexport * from './lib/controls/MultiLingualTextArea/MultiLingualTextArea.component'\r\nexport * from './lib/controls/CheckBox/CheckBox.component'\r\nexport * from './lib/controls/DropdownList/DropdownList.component'\r\nexport * from './lib/controls/Phone/Phone.component'\r\nexport * from './lib/controls/Toggleslide/toggleslide.component'\r\nexport * from './lib/controls/HtmlEditor/HtmlEditor.component'\r\nexport * from './lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component';\r\nexport * from './lib/controls/ImageUpload/ImageUpload.component'\r\nexport * from './lib/controls/ProfileImageUploader/ProfileImageUploader.component'\r\nexport * from './lib/controls/Calendar/Calendar.component'\r\nexport * from './lib/controls/MapAutoComplete/MapAutoComplete.component'\r\nexport * from './lib/controls/AutocompleteTextBox/AutocompleteTextBox.component'\r\nexport * from './lib/controls/TagsInput/TagsInput.component'\r\nexport * from './lib/controls/Paging/JwPagination.component'\r\nexport * from './lib/controls/Paging/Paging.component'\r\nexport * from './lib/controls/RadioButton/RadioButton.component'\r\nexport * from './lib/controls/ConfirmationModal/ConfirmationModal.component'\r\nexport * from './lib/controls/Form/Form.component'\r\nexport * from './lib/controls/Repeater/repeater/repeater.component'\r\nexport * from './lib/controls/Repeater/repeater-table/repeater-table.component'\r\n\r\nexport * from './lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component'\r\nexport * from './lib/controls/Repeater/repeater-item-field/repeater-item-field.component'\r\nexport * from './lib/controls/Recaptcha/Recaptcha.component'\r\nexport * from './lib/controls/page-header-component/page-header-component.component'\r\nexport * from './lib/Shared/Components/app-base-component'\r\n\r\n// //adminPageModule\r\n// export * from './lib/areas/admin-panel/home/adminHome.component'\r\n// export * from './lib/areas/admin-panel/layout-modules/adminPage.component'\r\n\r\n//export services\r\nexport * from './lib/Shared/services/validationErrorMassage.service'\r\nexport * from './lib/Shared/services/ControlUtility'\r\nexport * from './lib/Shared/services/OnPagingFiltersChange.service'\r\nexport * from './lib/Shared/config/environment'\r\nexport * from './lib/Shared/services/GlobalSettings.service'\r\nexport * from './lib/Shared/services/render-component-service.service'\r\nexport * from './lib/Shared/default_intl'\r\n\r\n\r\n\r\n//export Models\r\nexport * from './lib/Shared/Models/ControlOptionsBase'\r\nexport * from './lib/Shared/Models/ReCaptchaOptions'\r\nexport * from './lib/Shared/Models/Recaptcha'\r\nexport * from './lib/Shared/Models/MultilingualControlOptionsBase'\r\nexport * from './lib/Shared/Models/CustomValidation'\r\nexport * from './lib/Shared/Models/datePickerOptions'\r\nexport * from './lib/Shared/Models/TextBoxOptions'\r\nexport * from './lib/Shared/Models/FileUploadOptions'\r\nexport * from './lib/Shared/Models/FileUploadModel'\r\nexport * from './lib/Shared/Models/MultipleFileUploadModel'\r\nexport * from './lib/Shared/Models/MultilingualTextBoxOptions'\r\nexport * from './lib/Shared/Models/RangeNumber'\r\nexport * from './lib/Shared/Models/EnglishArabicDTO'\r\nexport * from './lib/Shared/Models/Attribute'\r\nexport * from './lib/Shared/Models/TextAreaOptions'\r\nexport * from './lib/Shared/Models/MultiLingualTextAreaOptions'\r\nexport * from './lib/Shared/Models/CheckBoxOptions'\r\nexport * from './lib/Shared/Models/DropdownListItem'\r\nexport * from './lib/Shared/Models/DropdownOptions'\r\nexport * from './lib/Shared/Models/PhoneOptions'\r\nexport * from './lib/Shared/Models/ToggleslideOptions'\r\nexport * from './lib/Shared/Models/HtmlEditorOptions'\r\nexport * from './lib/Shared/Models/MultiLingualHtmlEditorOptions'\r\nexport * from './lib/Shared/Models/FileDTO'\r\nexport * from './lib/Shared/Models/ImageUploadOptions'\r\nexport * from './lib/Shared/Models/ProfileImageUploadOptions'\r\nexport * from './lib/Shared/Models/ProfilePictureDTO'\r\nexport * from './lib/Shared/Models/SaveDTO'\r\nexport * from './lib/Shared/Models/CancelDTO'\r\nexport * from './lib/Shared/Models/EditPersonalImage'\r\nexport * from './lib/Shared/Models/UploadPersonalImage'\r\nexport * from './lib/Shared/Models/CalendarOptions'\r\nexport * from './lib/Shared/Models/CalendarEventDTO'\r\nexport * from './lib/Shared/Models/MapAutoCompleteOptions'\r\nexport * from './lib/Shared/Models/MapAutocompleteDTO'\r\nexport * from './lib/Shared/Models/AutocompleteDTO'\r\nexport * from './lib/Shared/Models/AutocompleteOptions'\r\nexport * from './lib/Shared/Models/TagsInputDTO'\r\nexport * from './lib/Shared/Models/TagsInputOptions'\r\nexport * from './lib/Shared/Models/FilterItem'\r\nexport * from './lib/Shared/Models/PagingDTO'\r\nexport * from './lib/Shared/Models/PagingOptions'\r\nexport * from './lib/Shared/Models/RadioButtonOptions'\r\nexport * from './lib/Shared/Models/RadioButtonItem'\r\nexport * from './lib/Shared/Models/FormOptions'\r\nexport * from './lib/Shared/Models/ConfirmationModalOptions'\r\nexport * from './lib/Shared/Models/RepeaterField'\r\nexport * from './lib/Shared/Models/RepeaterOptions'\r\nexport * from './lib/Shared/Models/page-header-options'\r\nexport * from './lib/Shared/Models/filter-options'\r\nexport * from './lib/Shared/Models/control-filter-Item'\r\nexport * from './lib/Shared/Models/bread-crumb'\r\nexport * from './lib/Shared/Directives/template-name.directive'\r\nexport * from './lib/shared/Pipes/bbsf-date-time.pipe';\r\nexport * from './lib/shared/Pipes/bbsf-date.pipe';\r\n\r\n\r\n//export Enums\r\nexport * from './lib/Shared/Enums/InputType'\r\nexport * from './lib/Shared/Enums/menu-list-enum'\r\nexport * from './lib/Shared/Enums/ControlLayout'\r\nexport * from './lib/Shared/Enums/ForceDirection'\r\nexport * from './lib/Shared/Enums/PickerType'\r\nexport * from './lib/Shared/Enums/StartView'\r\nexport * from './lib/Shared/Enums/SelectMode'\r\nexport * from './lib/Shared/Enums/Countries'\r\nexport * from './lib/Shared/Enums/FontSize'\r\nexport * from './lib/Shared/Enums/Insert'\r\nexport * from './lib/Shared/Enums/Misc'\r\nexport * from './lib/Shared/Enums/Para'\r\nexport * from './lib/Shared/Enums/Style'\r\nexport * from './lib/Shared/Enums/FileType'\r\nexport * from './lib/Shared/Enums/ImageType'\r\nexport * from './lib/Shared/Enums/LanguageMode'\r\nexport * from './lib/Shared/Enums/CalendarView'\r\nexport * from './lib/Shared/Enums/FilterType'\r\nexport * from './lib/Shared/Enums/IconPosition'\r\nexport * from './lib/Shared/Enums/PagingActionMode'\r\nexport * from './lib/Shared/Enums/StyleConfirmationMode'\r\nexport * from './lib/Shared/Enums/Enums'\r\nexport * from './lib/Shared/Enums/LanguageValidation'\r\nexport * from './lib/Shared/Enums/TagInputView'\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {BTagsInputComponent as ɵa} from './lib/Shared/Components/ng-tag-input';"],"names":["Injectable","Http","ControlContainer","Optional","UtilityService","InputType","Validators","ControlValidationService","PickerType","StartView","SelectMode","Subject","OwlDateTimeIntl","EventEmitter","FormControl","Component","DatePipe","FormGroupDirective","BBSFTranslateService","DateTimeAdapter","Input","Output","ControlLayout","LanguageMode","FileUploader","FileLikeObject","ViewChild","Expose","FormGroup","SearchCountryField","NgZone","NgbModal","HttpHeaders","Observable","switchMap","HttpParams","RequestOptionsModel","map","tap","noop","of","HttpClient","RequestHandlerService","EMPTY","FilterType","Subscription","plainToClass","Router","LanguageValidation","environment","LazyMapsAPILoader","MapsAPILoader","CalendarView","dayGridPlugin","timeGrigPlugin","interactionPlugin","listPlugin","ArLocale","enGbLocale","timeGridPlugin","PagingActionMode","NgbActiveModal","StyleConfirmationMode","Swal","Directive","TemplateRef","ViewChildren","PermissionSets","DataType","ForceDirection","ImageType","IconPosition","ComponentFactoryResolver","ViewContainerRef","Pipe","TagInputView","NG_VALUE_ACCESSOR","forwardRef","AppInjector","NgModule","CommonModule","InfiniteScrollModule","NgSelectModule","NgxTagsInputModule","NgxTypeaheadModule","AgmCoreModule","MatGoogleMapsAutocompleteModule","FullCalendarModule","AngularCropperjsModule","ImageCropperModule","NgbModule","NgxDropzoneModule","FileUploadModule","TooltipModule","NgxMaskModule","NgxSummernoteModule","MatSlideToggleModule","NgxIntlTelInputModule","AngularMultiSelectModule","NgMultiSelectDropDownModule","OwlDateTimeModule","OwlNativeDateTimeModule","BlockUIModule","ReactiveFormsModule","HttpModule","RouterModule","ToastrModule","HttpClientModule","NgxPermissionsModule","OverlayModule","StoreDevtoolsModule","FormsModule","BsDatepickerModule","TypeaheadModule","AngularEditorModule","AutocompleteLibModule","BBSFUtilitiesModule","InlineSVGModule","SweetAlert2Module","TranslateService","OWL_DATE_TIME_LOCALE","NO_ERRORS_SCHEMA","Injector","ConfigurationService","EnvironmentService","Title","AuthService","saveAs","MenuListType","Country","FontSize","Insert","Misc","Para","Style","FileType"],"mappings":"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"}
1
+ {"version":3,"file":"bnsights-bbsf-controls.umd.js","sources":["../../../projects/bbsf-controls/src/lib/Shared/services/validationErrorMassage.service.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/InputType.ts","../../../projects/bbsf-controls/src/lib/Shared/services/ControlUtility.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/PickerType.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/StartView.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/SelectMode.ts","../../../projects/bbsf-controls/src/lib/Shared/services/OnPagingFiltersChange.service.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/bbsf-controls/src/lib/Shared/default_intl.ts","../../../projects/bbsf-controls/src/lib/controls/DateTimePicker/DateTimePicker.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FileUploadModel.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultipleFileUploadModel.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ControlLayout.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/LanguageMode.ts","../../../projects/bbsf-controls/src/lib/Shared/services/GlobalSettings.service.ts","../../../projects/bbsf-controls/src/lib/controls/FileUplaod/FileUplaod.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/EnglishArabicDTO.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/TextArea/TextArea.component.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.ts","../../../projects/bbsf-controls/src/lib/controls/CheckBox/CheckBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/DropdownList/DropdownList.component.ts","../../../projects/bbsf-controls/src/lib/controls/Phone/Phone.component.ts","../../../projects/bbsf-controls/src/lib/controls/HtmlEditor/HtmlEditor.component.ts","../../../projects/bbsf-controls/src/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.ts","../../../projects/bbsf-controls/src/lib/controls/ImageUpload/ImageUpload.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ProfilePictureDTO.ts","../../../projects/bbsf-controls/src/lib/controls/ProfileImageUploader/ProfileImageUploader.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/AutocompleteDTO.ts","../../../projects/bbsf-controls/src/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.ts","../../../projects/bbsf-controls/src/lib/controls/TagsInput/TagsInput.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PagingDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FilterType.ts","../../../projects/bbsf-controls/src/lib/controls/Paging/Paging.component.ts","../../../projects/bbsf-controls/src/lib/controls/Paging/JwPagination.component.ts","../../../projects/bbsf-controls/src/lib/controls/RadioButton/RadioButton.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/LanguageValidation.ts","../../../projects/bbsf-controls/src/lib/controls/TextBox/TextBox.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MapAutocompleteDTO.ts","../../../projects/bbsf-controls/src/lib/controls/MapAutoComplete/MapAutoComplete.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/CalendarView.ts","../../../projects/bbsf-controls/src/lib/controls/Calendar/Calendar.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/PagingActionMode.ts","../../../projects/bbsf-controls/src/lib/controls/Form/Form.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/StyleConfirmationMode.ts","../../../projects/bbsf-controls/src/lib/controls/ConfirmationModal/ConfirmationModal.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Directives/template-name.directive.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater/repeater.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Enums.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ControlOptionsBase.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/datePickerOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ForceDirection.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/DropdownOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FileUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/HtmlEditorOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/ImageType.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ImageUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MapAutoCompleteOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PhoneOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RangeNumber.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TextAreaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/IconPosition.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TextBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ToggleslideOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/services/render-component-service.service.ts","../../../projects/bbsf-controls/src/lib/controls/Toggleslide/toggleslide.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.ts","../../../projects/bbsf-controls/src/lib/controls/Repeater/repeater-table/repeater-table.component.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/Recaptcha.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CaptchaStyle.ts","../../../projects/bbsf-controls/src/lib/controls/Recaptcha/Recaptcha.component.ts","../../../projects/bbsf-controls/src/lib/controls/page-header-component/page-header-component.component.ts","../../../projects/bbsf-controls/src/lib/shared/Pipes/bbsf-date-time.pipe.ts","../../../projects/bbsf-controls/src/lib/shared/Pipes/bbsf-date.pipe.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/TagInputView.ts","../../../projects/bbsf-controls/src/lib/Shared/Components/ng-tag-input.ts","../../../projects/bbsf-controls/src/lib/controls/bbsf-controls.module.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CustomValidation.ts","../../../projects/bbsf-controls/src/lib/Shared/Components/app-base-component.ts","../../../projects/bbsf-controls/src/lib/Shared/config/environment.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RecaptchaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultilingualControlOptionsBase.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultilingualTextBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/Attribute.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultiLingualTextAreaOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CheckBoxOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/DropdownListItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/MultiLingualHtmlEditorOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ProfileImageUploadOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/SaveDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CancelDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/EditPersonalImage.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/UploadPersonalImage.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CalendarOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/CalendarEventDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/AutocompleteOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TagsInputDTO.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/TagsInputOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FilterItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/PagingOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RadioButtonOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RadioButtonItem.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/FormOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/ConfirmationModalOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RepeaterField.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/RepeaterOptions.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/filter-options.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/page-header-options.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/control-filter-Item.ts","../../../projects/bbsf-controls/src/lib/Shared/Models/bread-crumb.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/menu-list-enum.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Countries.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FontSize.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Insert.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Misc.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Para.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/Style.ts","../../../projects/bbsf-controls/src/lib/Shared/Enums/FileType.ts","../../../projects/bbsf-controls/src/public-api.ts","../../../projects/bbsf-controls/src/bnsights-bbsf-controls.ts"],"sourcesContent":["import { Injectable, Optional } from '@angular/core';\r\nimport { Http, Response, Headers, RequestOptions } from '@angular/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ControlContainer, FormControl, FormGroup } from '@angular/forms';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Injectable()\r\nexport class ErrorMassageValidation {\r\n static controlContainerstatic = null;\r\n\r\n // tslint:disable-next-line: deprecation\r\n constructor(\r\n private http: Http,\r\n @Optional() private controlContainer: ControlContainer,\r\n private utilityService: UtilityService\r\n ) {\r\n ErrorMassageValidation.controlContainerstatic = this.controlContainer;\r\n }\r\n url = 'CheckEmailValidation';\r\n // tslint:disable-next-line: deprecation\r\n\r\n static showerror(FormControlName: string) {\r\n let form = ErrorMassageValidation.controlContainerstatic\r\n .control as FormGroup;\r\n let control = form.get(FormControlName) as FormControl;\r\n //console.log(control)\r\n control.setErrors({ minlength: true });\r\n control.markAsTouched();\r\n }\r\n\r\n // isEmailRegisterd(Email: string)\r\n // {\r\n // let resource:object={\r\n // email:Email\r\n // };\r\n // let body = JSON.stringify(resource);\r\n // let headers = new Headers({ 'Content-Type': 'application/json' });\r\n // let options = new RequestOptions({ headers: headers });\r\n // return this.http.post(environment.baseUrl+this.url,body,options)\r\n // .pipe(map(response => response.json()))\r\n // }\r\n\r\n getErrorMassageValidation(error: any): string {\r\n let result: string = '';\r\n switch (error.key) {\r\n case 'required':\r\n result = this.utilityService.getResourceValue('RequiredValidationKey');\r\n break;\r\n case 'email':\r\n result = this.utilityService.getResourceValue('EmailValidationKey');\r\n break;\r\n case 'EmailValidationKey':\r\n result = this.utilityService.getResourceValue('EmailValidationKey');\r\n break;\r\n case 'URLValidationKey':\r\n result = this.utilityService.getResourceValue('urlValidationError');\r\n break;\r\n case 'pattern':\r\n result = this.utilityService.getResourceValue('NumberValidationKey');\r\n break;\r\n case 'maxlength':\r\n result =\r\n this.utilityService.getResourceValue('MaxLenghtValidationKey') +\r\n ' ' +\r\n error.value.requiredLength;\r\n break;\r\n case 'minlength':\r\n result =\r\n this.utilityService.getResourceValue('MinLenghtValidationKey') +\r\n ' ' +\r\n error.value.requiredLength;\r\n break;\r\n case 'min':\r\n result =\r\n this.utilityService.getResourceValue('MinValueValidationKey') +\r\n ' ' +\r\n error.value.min;\r\n break;\r\n case 'max':\r\n result =\r\n this.utilityService.getResourceValue('MaxValueValidationKey') +\r\n ' ' +\r\n error.value.max;\r\n break;\r\n case 'IntegerNumberValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'IntegerNumberValidationKey'\r\n );\r\n break;\r\n case 'PositiveNumberValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'PositiveNumberValidationKey'\r\n );\r\n break;\r\n case 'validatePhoneNumber':\r\n result = this.utilityService.getResourceValue(\r\n 'PhoneNumberValidationKey'\r\n );\r\n break;\r\n case 'mask':\r\n result =\r\n this.utilityService.getResourceValue('MaskValidationKey') +\r\n ' ' +\r\n error.value.requiredMask;\r\n break;\r\n case 'PasswordComplexityHasNumber':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasNumber'\r\n );\r\n break;\r\n case 'ArabicLetterOnly':\r\n result = this.utilityService.getResourceValue('ArabicLetterOnly');\r\n break;\r\n case 'EnglishLetterOnly':\r\n result = this.utilityService.getResourceValue('EnglishLetterOnly');\r\n break;\r\n case 'ArabicIsRequiredAndOnly50CharactersEnglish':\r\n result = this.utilityService.getResourceValue(\r\n 'ArabicIsRequiredAndOnly50CharactersEnglish'\r\n );\r\n break;\r\n case 'PasswordComplexityHasCapitalLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasCapitalLetter'\r\n );\r\n break;\r\n case 'PasswordComplexityHasSmallLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasSmallLetter'\r\n );\r\n break;\r\n case 'PasswordComplexityHasSpecialLetter':\r\n result = this.utilityService.getResourceValue(\r\n 'PasswordComplexityHasSpecialLetter'\r\n );\r\n break;\r\n case 'MaxWordCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MaxWordCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'NewSelectionValidationKey':\r\n result = this.utilityService.getResourceValue(\r\n 'NewSelectionValidationKey'\r\n );\r\n break;\r\n case 'MaxFileCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MaxFileCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'MinFileCountValidationKey':\r\n result =\r\n this.utilityService.getResourceValue('MinFileCountValidationKey') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'MaxSizeForAllFilesInMB':\r\n result =\r\n this.utilityService.getResourceValue('MaxSizeForAllFilesInMB') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'FileMaxSizeInMB':\r\n result =\r\n this.utilityService.getResourceValue('FileMaxSizeInMB') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'ToolTipTypeError':\r\n result =\r\n this.utilityService.getResourceValue('ToolTipTypeError') +\r\n ' ' +\r\n error.value;\r\n break;\r\n case 'InvalidEndDate':\r\n result = this.utilityService.getResourceValue('InvalidEndDate');\r\n break;\r\n case 'InvalidStartDate':\r\n result = this.utilityService.getResourceValue('InvalidStartDate');\r\n break;\r\n default:\r\n break;\r\n }\r\n return result;\r\n }\r\n}\r\n","export enum InputType {\r\n Text = 1,\r\n Password = 2,\r\n Email = 3,\r\n Number = 4,\r\n EID = 5,\r\n URL = 6\r\n}\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { CustomValidation } from '../Models/CustomValidation';\r\nimport { ErrorMassageValidation } from './validationErrorMassage.service';\r\nimport { ValidationErrors, ValidatorFn, AbstractControl, FormControl, Validators } from '@angular/forms';\r\nimport { InputType } from '../Enums/InputType';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class ControlUtility {\r\n constructor(private ErrorHandler: ErrorMassageValidation, private controlValidationService: ControlValidationService, private utilityService: UtilityService) {\r\n\r\n }\r\n\r\n getErrorValidation(Errorsitem: any[], CustomValidation?: CustomValidation): string {\r\n let resulte = '';\r\n Errorsitem.forEach(element => {\r\n\r\n if (element.key === 'customerError' && Errorsitem.length === 1) {\r\n resulte = CustomValidation[0].massage;\r\n } else if (element.key === 'EmailValidation') {\r\n resulte = element.value;\r\n } else if (element.key === 'FluentApi') {\r\n resulte = element.value;\r\n }\r\n else if (element.key === 'errorMassage') {\r\n resulte = element.value;\r\n }\r\n else {\r\n resulte = this.ErrorHandler.getErrorMassageValidation(element);\r\n }\r\n });\r\n\r\n return resulte;\r\n }\r\n\r\n patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n const valid = regex.test(control.value);\r\n return valid ? null : error;\r\n };\r\n }\r\n patchControlValue(originalValue, PatchFunction, PatchPath) {\r\n var patchOp = [{\r\n op: \"replace\",\r\n path: PatchPath,\r\n value: originalValue\r\n }]\r\n var patchService = PatchFunction.call(null, patchOp) as Observable<any>;\r\n patchService.subscribe(r => console.log(r), erorr => this.utilityService.notifyErrorMessage(erorr));\r\n\r\n }\r\n arabicValidator(error: ValidationErrors): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (!control.value)\r\n return null;\r\n if (control.value.match('[\\u0600-\\u06FF]')) {\r\n if (control.value.match('[A-Za-z]') != null) {\r\n //FOUND ENGLISH CHARS\r\n var length = control.value.replace(/\\W/g, '').replace(/[0-9]/g, '').length;\r\n if (length > 50) {\r\n return error;\r\n } else {\r\n return null;\r\n }\r\n }\r\n else {\r\n //NO ENGLISH CHARACTERS AT ALL\r\n return null;\r\n }\r\n }\r\n else {\r\n return error;\r\n }\r\n };\r\n }\r\n\r\n getInputType(type: number): string {\r\n return InputType[type] as string\r\n }\r\n\r\n\r\n trimControlValue(value: any) {\r\n const whitespace: string = ' ';\r\n if (value.startsWith(whitespace) || value.endsWith(whitespace)) {\r\n return value.trim();\r\n }\r\n else\r\n return value\r\n }\r\n\r\n CopyInputMessage(inputElement) {\r\n inputElement.select();\r\n document.execCommand('copy');\r\n inputElement.setSelectionRange(0, 0);\r\n }\r\n\r\n\r\n getErrorValidationMassage(ErrorList, group, options) {\r\n // if((!group.valid)&&(!UtilityService.isCreatedBefor))\r\n // {\r\n // UtilityService.showGlobalError();\r\n // this.scrollToGlobalErrorMassage()\r\n // }\r\n return this.getErrorValidation(ErrorList, options.CustomValidation);\r\n }\r\n\r\n scrollToGlobalErrorMassage() {\r\n let element = document.getElementById('errorId');\r\n element.scrollIntoView({ behavior: \"smooth\", inline: \"nearest\" });\r\n }\r\n setAttributeForControl(options) {\r\n if (options.AttributeList != null) {\r\n var element = document.getElementById(options.Name);\r\n for (let index = 0; index < options.AttributeList.length; index++) {\r\n element.setAttribute(options.AttributeList[index].Key, options.AttributeList[index].value);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n showGlobalError(formId?: string) {\r\n this.controlValidationService.showGlobalError(null, formId);\r\n this.scrollToGlobalErrorMassage()\r\n }\r\n\r\n RemoveRequiredValidation(FormControl: AbstractControl, ValidationRole: any[], Options: any) {\r\n Options.IsRequired = false\r\n ValidationRole = ValidationRole.filter((e) => e != Validators.required)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n AddRequiredValidation(FormControl: AbstractControl, ValidationRole: any[], Options: any) {\r\n Options.IsRequired = true\r\n ValidationRole.push(Validators.required)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n addRequiredToControl(FormControl: AbstractControl, Options: any) {\r\n Options.IsRequired = true\r\n FormControl.addValidators(Validators.required);\r\n FormControl.updateValueAndValidity()\r\n }\r\n removeRequiredFromControl(FormControl: AbstractControl, Options: any) {\r\n Options.IsRequired = false\r\n FormControl.removeValidators(Validators.required);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n\r\n RemoveCustomValidation(FormControl: AbstractControl, ValidationRole: any[], CustomValidation: CustomValidation) {\r\n ValidationRole = ValidationRole.filter((e) => e != CustomValidation.functionBody)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n\r\n AddCustomValidation(FormControl: AbstractControl, ValidationRole: any[], CustomValidation: CustomValidation) {\r\n ValidationRole.push(CustomValidation.functionBody)\r\n FormControl.setValidators(ValidationRole);\r\n FormControl.updateValueAndValidity()\r\n }\r\n static getLocal(): string {\r\n let lang = localStorage.getItem('language');\r\n return lang == \"ar\" ? \"ar\" : \"en-UK\";\r\n }\r\n\r\n IsValid(FormControl: AbstractControl) {\r\n\r\n FormControl.markAsTouched();\r\n }\r\n\r\n\r\n}\r\n","export enum PickerType{\r\n Both = 1 ,\r\n Calendar = 2,\r\n Timer = 3,\r\n }","export enum StartView{\r\n Month = 1 ,\r\n Year = 2,\r\n MultiYear=3\r\n }","export enum SelectMode\r\n{\r\n Single = 1 ,\r\n Range = 2\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OnPagingFiltersChangeService {\r\n private subject = new Subject<any>();\r\n\r\n ChangeValue(value: string) {\r\n this.subject.next(value);\r\n }\r\n\r\n ClearValue() {\r\n this.subject.next();\r\n }\r\n\r\n GetValue(): Observable<any> {\r\n return this.subject.asObservable();\r\n }\r\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable, NgModule } from '@angular/core';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { OwlDateTimeIntl } from 'ng-pick-datetime';\r\n\r\n@Injectable()\r\n// here is the default text string - just adjust the strings to reflect your preferred language\r\nexport class DefaultIntl extends OwlDateTimeIntl {\r\n constructor(private utilityService: UtilityService) {\r\n super();\r\n }\r\n\r\n /** A label for the range 'from' in picker info */\r\n rangeFromLabel = this.utilityService.getResourceValue('From');\r\n /** A label for the range 'to' in picker info */\r\n rangeToLabel = this.utilityService.getResourceValue('To');\r\n /** A label for the cancel button */\r\n cancelBtnLabel = this.utilityService.getResourceValue('Cancel');\r\n /** A label for the set button */\r\n setBtnLabel = this.utilityService.getResourceValue('Save');\r\n /** A label for the hour12 button (AM) */\r\n hour12AMLabel = this.utilityService.getResourceValue('AM');\r\n /** A label for the hour12 button (PM) */\r\n hour12PMLabel = this.utilityService.getResourceValue('PM');\r\n}\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, FormGroupDirective, ControlContainer } from '@angular/forms';\r\nimport { DatePickerOptions } from '../../Shared/Models/datePickerOptions';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { PickerType } from '../../Shared/Enums/PickerType';\r\nimport { StartView } from '../../Shared/Enums/StartView';\r\nimport { SelectMode } from '../../Shared/Enums/SelectMode';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { formatDate } from '@fullcalendar/core';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DateTimeAdapter } from 'ng-pick-datetime';\r\nimport { OwlDateTimeIntl } from 'ng-pick-datetime';\r\nimport * as dateTimeClass from 'ng-pick-datetime/date-time/date-time.class';\r\nimport { DefaultIntl } from '../../Shared/default_intl';\r\n\r\n@Component({\r\n selector: 'BBSF-DateTimePicker',\r\n templateUrl: './DateTimePicker.component.html',\r\n providers: [\r\n { provide: OwlDateTimeIntl, useClass: DefaultIntl }\r\n ],\r\n})\r\nexport class DateInputComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(public datepipe: DatePipe, private onChangeService: OnPagingFiltersChangeService, private ErrorHandler: ErrorMassageValidation, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public DateInputControlHost: FormGroupDirective, private UtilityService: UtilityService, private translate: BBSFTranslateService, private controlValidationService: ControlValidationService, private dateTimeAdapter: DateTimeAdapter<any>) {\r\n DateInputComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: DatePickerOptions;\r\n DatePickerFormControl: AbstractControl;\r\n @Output() OnChange = new EventEmitter();\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n comparedControl: AbstractControl = null;\r\n dateError: boolean = false;\r\n textDir;\r\n startView;\r\n\r\n ngOnInit() {\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n if (this.options.StartView == 3)\r\n this.startView = 'multi-year';\r\n else {\r\n this.startView = (StartView[this.options.StartView] as string).toLowerCase()\r\n }\r\n // Update the DateTimeAdapter Language with the current thread langauge\r\n this.dateTimeAdapter.setLocale(this.UtilityService.getCurrentLanguage() == \"ar\" ? \"ar\" : \"en-UK\");\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.DatePickerFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n this.DatePickerFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n if (this.options.IsDisabled) {\r\n this.DatePickerFormControl.disable();\r\n }\r\n if (this.options.StartControlToCompareWith) {\r\n if (this.group.get(this.options.StartControlToCompareWith)) {\r\n this.comparedControl = this.group.get(this.options.StartControlToCompareWith)\r\n this.subscribeDateChanges()\r\n }\r\n }\r\n\r\n this.DatePickerFormControl.setValidators(this.validationRules);\r\n this.DatePickerFormControl.setAsyncValidators(this.validationRulesasync);\r\n this.DateInputControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n getSelectMode(type: number) {\r\n let Value = (SelectMode[type] as string)\r\n return Value.toLowerCase() as dateTimeClass.SelectMode\r\n }\r\n getPickerType(type: number) {\r\n let Value = (PickerType[type] as string)\r\n return Value.toLowerCase() as dateTimeClass.PickerType\r\n }\r\n getStartView(type: number) {\r\n if (type == 3)\r\n return 'multi-year';\r\n else {\r\n const Value = (StartView[type] as string).toLowerCase()\r\n return Value\r\n }\r\n }\r\n\r\n\r\n onDateSelect(item) {\r\n if (!item)\r\n return;\r\n let DateValue;\r\n var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds\r\n\r\n if (this.options.SelectMode == 2) {\r\n for (let index = 0; index < item.value.length; index++) {\r\n item.value[index] = new Date(item.value[index] - tzoffset).toISOString().slice(0, -1);\r\n\r\n }\r\n DateValue = item.value;\r\n }\r\n else {\r\n DateValue = new Date(item.value - tzoffset).toISOString().slice(0, -1);\r\n\r\n }\r\n this.DatePickerFormControl.setValue(DateValue)\r\n this.onChangeService.ChangeValue(this.options.Name);\r\n let originalValue = DateValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n }\r\n\r\n subscribeDateChanges() {\r\n const startDateChanges = this.comparedControl.valueChanges;\r\n const endDateChanges = this.group.get(this.options.Name).valueChanges;\r\n startDateChanges.subscribe(start => {\r\n this.comparedControl.addValidators(this.checkIfStartDateBeForEndDate);\r\n this.comparedControl.updateValueAndValidity();\r\n });\r\n endDateChanges.subscribe(end => {\r\n this.DatePickerFormControl.addValidators(this.checkIfEndDateAfterStartDate);\r\n this.DatePickerFormControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n checkIfEndDateAfterStartDate = () => {\r\n if (!this.comparedControl.value || !this.group.get(this.options.Name).value) {\r\n return null;\r\n }\r\n if (new Date(this.comparedControl.value) < new Date(this.group.get(this.options.Name).value)) {\r\n this.comparedControl.setErrors(null);\r\n return null;\r\n }\r\n else {\r\n this.comparedControl.setErrors(null);\r\n return { InvalidEndDate: true };\r\n }\r\n };\r\n checkIfStartDateBeForEndDate = () => {\r\n if (!this.comparedControl.value || !this.group.get(this.options.Name).value) {\r\n return null;\r\n }\r\n if (new Date(this.comparedControl.value) < new Date(this.group.get(this.options.Name).value)) {\r\n this.group.get(this.options.Name).setErrors(null);\r\n return null;\r\n }\r\n else {\r\n this.group.get(this.options.Name).setErrors(null);\r\n return { InvalidStartDate: true };\r\n }\r\n };\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.DatePickerFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.DatePickerFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.DatePickerFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.DatePickerFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.DatePickerFormControl)\r\n }\r\n\r\n getDateValue() {\r\n return this.options.Value ? this.datepipe.transform(this.options.Value, 'MMM d, y, h:mm a') : this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { FileDTO } from \"./FileDTO\";\r\n\r\nexport class FileUploadModel \r\n{\r\n \r\n File:FileDTO\r\n}\r\n","import { FileDTO } from \"./FileDTO\";\r\n\r\nexport class MultipleFileUploadModel {\r\n CorrelationID_GUID?: string = null;\r\n UploadedFiles: FileDTO[] = []\r\n ExistingFiles: FileDTO[] = []\r\n RemovedFiles: string[] = []\r\n}\r\n","export enum ControlLayout {\r\n Vertical = 1,\r\n Horizontal = 2\r\n}\r\n","export enum LanguageMode{\r\n Both_Languages_are_visible = \"3c6dbffe-da7f-4108-b44d-4b216a22f701\" ,\r\n English_Language_only_is_visible = \"84cc1d57-1f07-42a1-a38f-1a376c12a367\",\r\n Arabic_Language_only_is_visible = \"6a3e59e0-9510-4b16-9080-9313f5c9f229\",\r\n Both_Languages_but_only_English_is_required = \"260c38bb-c90c-4aa7-895d-31aba9311a05\",\r\n Both_Languages_but_only_Arabic_is_required = \"a1f2e15f-2691-4118-975f-ac21caf8ad5a\",\r\n Current_Language_only_is_visible_and_required = \"e2ba1f44-68f3-4035-b84f-9f1b6c2b0c05\" ,\r\n Both_Languages_are_visible_but_only_current_language_is_required = \"b26431f2-b209-4c41-ab04-2d71361847c2\" \r\n }","import { Injectable } from \"@angular/core\";\r\nimport { ControlLayout } from \"../Enums/ControlLayout\";\r\nimport { ForceDirection } from \"../Enums/ForceDirection\";\r\nimport { LanguageMode } from \"../Enums/LanguageMode\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class GlobalSettings {\r\n /** to set type of view if MultilingualTextArea is Vertical or Horizontal */\r\n ViewType: ControlLayout = ControlLayout.Vertical;\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = ControlLayout.Horizontal;\r\n /**To Set LanguageMode To MultipleLanguageText */\r\n LanguageMode: LanguageMode = LanguageMode.Both_Languages_are_visible;\r\n HideAstericsWhenRequired: boolean = false;\r\n //**To set maxlength warning message when equals limit\r\n MaxLengthWarningLimit: number = 10;\r\n //**Set any texbox maxlength default value\r\n MaxLengthTextBox: number = 255;\r\n //**Set any textArea maxlength default value\r\n MaxLengthTextArea: number = 1000;\r\n //**Set default image source\r\n DefaultImageSrc: string = \"./src/assets/images/uploadimg.png\";\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { FileUploadOptions } from '../../Shared/Models/FileUploadOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject } from 'ng2-file-upload';\r\nimport { FileUploadModel } from '../../Shared/Models/FileUploadModel';\r\nimport { MultipleFileUploadModel } from '../../Shared/Models/MultipleFileUploadModel';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\n@Component({\r\n selector: 'BBSF-FileUplaod',\r\n templateUrl: './FileUplaod.component.html',\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: FileUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n fileUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n ValidationCountMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n fileUploadModel: FileUploadModel;\r\n multipleFileUploadModel: MultipleFileUploadModel;\r\n file: any;\r\n deletedFiles: FileDTO[] = [];\r\n\r\n constructor(\r\n @Optional() private controlContainer: ControlContainer,\r\n public MultipleFileUplaodControlHost: FormGroupDirective,\r\n private controlUtility: ControlUtility,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n FileUploadComponent.controlContainerstatic = this.controlContainer;\r\n this.uploader = new FileUploader({\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n\r\n });\r\n this.hasAnotherDropZoneOver = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.fileUploadModel = new FileUploadModel();\r\n this.multipleFileUploadModel = new MultipleFileUploadModel();\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.Value == null) {\r\n if (this.options.IsMultipleFile == true) {\r\n //this.options.Value=this.multipleFileUploadModel\r\n } else {\r\n // this.options.Value=this.fileUploadModel\r\n }\r\n } else {\r\n if (this.options.IsMultipleFile == true) {\r\n let files: any[] = [];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.options.Value.ExistingFiles;\r\n this.multipleFileUploadModel.UploadedFiles = [];\r\n for (\r\n let index = 0;\r\n index < this.options.Value.ExistingFiles.length;\r\n index++\r\n ) {\r\n const element = this.options.Value.ExistingFiles[index];\r\n var bytes = new Uint8Array(element.Bytes) as any;\r\n var base64 = btoa(String.fromCharCode(null, bytes));\r\n this.FileLikeObject = new FileLikeObject({\r\n name: element.NameWithExtension,\r\n type: element.MimeType,\r\n rawFile: base64,\r\n });\r\n // let blob: any;\r\n // blob = new Blob(['']) as any;\r\n // blob.name = element.FileName;\r\n // blob.lastModifiedDate = null;\r\n // blob.webkitRelativePath = '';\r\n let file = this.FileLikeObject as any;\r\n file.url = element.FileURL;\r\n files.push(file);\r\n }\r\n this.uploader.addToQueue(files);\r\n console.log(this.uploader.queue);\r\n } else {\r\n const element = this.options.Value;\r\n var bytes = new Uint8Array(element.Bytes) as any;\r\n var base64 = btoa(String.fromCharCode(null, bytes));\r\n this.FileLikeObject = new FileLikeObject({\r\n name: element.NameWithExtension,\r\n type: element.MimeType,\r\n rawFile: base64,\r\n });\r\n this.file = element;\r\n let file = this.FileLikeObject as any;\r\n file.url = element.FileURL;\r\n this.uploader.addToQueue([file as any]);\r\n }\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.FileUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.FileUploadAcceptsTypes[index];\r\n this.AcceptedType = this.AcceptedType + Type + ',';\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n switch (element) {\r\n case 'application/pdf':\r\n if (!this.ToolTipTypeArray.includes('PDF'))\r\n this.ToolTipTypeArray.push('PDF');\r\n break;\r\n case 'application/msword':\r\n if (!this.ToolTipTypeArray.includes('Word'))\r\n this.ToolTipTypeArray.push('Word');\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n if (!this.ToolTipTypeArray.includes('Word'))\r\n this.ToolTipTypeArray.push('Word');\r\n break;\r\n case 'application/vnd.ms-excel':\r\n if (!this.ToolTipTypeArray.includes('Excel'))\r\n this.ToolTipTypeArray.push('Excel');\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n if (!this.ToolTipTypeArray.includes('Excel'))\r\n this.ToolTipTypeArray.push('Excel');\r\n break;\r\n case 'application/vnd.ms-powerpoint':\r\n if (!this.ToolTipTypeArray.includes('PowerPoint'))\r\n this.ToolTipTypeArray.push('PowerPoint');\r\n break;\r\n case 'applicationapplication/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n if (!this.ToolTipTypeArray.includes('PowerPoint'))\r\n this.ToolTipTypeArray.push('PowerPoint');\r\n break;\r\n case \"image/png\":\r\n if (!this.ToolTipTypeArray.includes('PNG'))\r\n this.ToolTipTypeArray.push('PNG');\r\n break;\r\n case \"image/bmp\":\r\n if (!this.ToolTipTypeArray.includes('BMP'))\r\n this.ToolTipTypeArray.push('BMP');\r\n break;\r\n case \"image/jpeg\":\r\n if (!this.ToolTipTypeArray.includes('JPEG'))\r\n this.ToolTipTypeArray.push('JPEG');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `${this.UtilityService.getResourceValue('Extensions')} (${\r\n this.ToolTipTypeArray\r\n }) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `<br /> ${ this.UtilityService.getResourceValue('FileMaxSizeInMB')+this.options.FileMaxSizeInMB} `;\r\n }\r\n\r\n if (this.options.MinNoOfFiles > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n `<br /> ${this.UtilityService.getResourceValue(\"MinFileCountValidationKey\") +this.options.MinNoOfFiles}`;\r\n }\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.fileUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if(this.options.IsMultipleFile && this.options.MaxNoOfFiles>0)\r\n {\r\n this.ValidationCountMessage=`${this.UtilityService.getResourceValue('MaxFilesCount')} : ${this.options.MaxNoOfFiles}`;\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.fileUploadFormControl.setValidators(this.validationRules);\r\n this.fileUploadFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.fileUploadFormControl.disable();\r\n }\r\n\r\n this.MultipleFileUplaodControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n\r\n this.fileUploadFormControl.setValue(this.options.Value);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n fileOverAnother(event: any): void {\r\n this.hasAnotherDropZoneOver = event;\r\n }\r\n isHideInput() {\r\n if (this.options.IsMultipleFile) {\r\n if (\r\n this.options.MaxNoOfFiles != null &&\r\n this.options.MaxNoOfFiles > 0 &&\r\n this.options.MaxNoOfFiles == this.uploader.queue.length\r\n ) {\r\n return true;\r\n }\r\n } else {\r\n if (this.uploader.queue.length > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n onFileChange() {\r\n let FilesArray = [];\r\n if (\r\n this.options.IsMultipleFile &&\r\n this.options.MinNoOfFiles != null &&\r\n this.options.MinNoOfFiles > 0 &&\r\n this.options.MinNoOfFiles > this.uploader.queue.length\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MinFileCountValidationKey: this.options.MinNoOfFiles,\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n\r\n if (\r\n this.options.IsMultipleFile &&\r\n this.options.MaxSizeForAllFilesInMB != null &&\r\n this.options.MaxSizeForAllFilesInMB > 0\r\n ) {\r\n let AllSizeFile = 0;\r\n for (let index = 0; index < this.uploader.queue.length; index++) {\r\n const element = this.uploader.queue[index];\r\n const file = element.file;\r\n AllSizeFile = AllSizeFile + file.size;\r\n }\r\n const MaxSizeForAllFiles =\r\n this.options.MaxSizeForAllFilesInMB * 1000 * 1000;\r\n if (AllSizeFile > MaxSizeForAllFiles) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MaxSizeForAllFilesInMB: this.options.MaxSizeForAllFilesInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let AddedQueue = this.uploader.queue.filter(\r\n (object) => object['some'].lastModified != null\r\n );\r\n for (let index = 0; index < AddedQueue.length; index++) {\r\n const element = AddedQueue[index];\r\n const file = element.file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let fileObject = file.rawFile as any;\r\n reader.readAsDataURL(fileObject);\r\n reader.onload = () => {\r\n let existingID_GUID = null;\r\n if (!this.options.IsMultipleFile && this.file)\r\n existingID_GUID =\r\n this.file.NameWithExtension == file.name\r\n ? this.file.ID_GUID\r\n : null;\r\n\r\n let AddedFile = {\r\n FileName: file.name,\r\n FileType: file.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: file.size / 1000 / 1000,\r\n NameWithExtension: file.name,\r\n ID_GUID: existingID_GUID,\r\n };\r\n if (this.options.IsMultipleFile == false) {\r\n this.fileUploadModel = new FileUploadModel();\r\n this.fileUploadModel.File = AddedFile;\r\n\r\n this.fileUploadFormControl.setValue(this.fileUploadModel);\r\n this.group.get(this.options.Name).setValue(this.fileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.fileUploadModel;\r\n } else {\r\n FilesArray.push(AddedFile);\r\n this.multipleFileUploadModel.UploadedFiles = FilesArray;\r\n if (this.options.Value != null && this.options.Value != undefined) {\r\n if (this.options.Value.CorrelationID_GUID == null) {\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n }\r\n }\r\n this.multipleFileUploadModel.CorrelationID_GUID=this.options.Value?.CorrelationID_GUID\r\n this.fileUploadFormControl.setValue(this.multipleFileUploadModel);\r\n this.group\r\n .get(this.options.Name)\r\n .setValue(this.multipleFileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.multipleFileUploadModel;\r\n }\r\n };\r\n let originalValue = this.group.get(this.options.Name).value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.group.get(this.options.Name).valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n this.OnChange.emit(originalValue);\r\n }\r\n }\r\n }\r\n removeFromControlValue(item) {\r\n if (this.options.IsMultipleFile == false) {\r\n this.fileUploadModel = null;\r\n if (this.options.IsRequired == true) {\r\n this.fileUploadFormControl.markAsTouched();\r\n this.fileUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(this.fileUploadModel);\r\n this.options.Value = this.fileUploadModel;\r\n } else {\r\n if (this.options.Value != null && this.options.Value != undefined) {\r\n if (this.options.Value.CorrelationID_GUID == null) {\r\n this.deletedFiles = [];\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n } else {\r\n if (this.multipleFileUploadModel.RemovedFiles.length == 0) {\r\n let FileObject = item.file.rawFile;\r\n let DeletedItem = this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n )[0];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension != FileObject.name\r\n );\r\n this.deletedFiles.push(DeletedItem);\r\n this.multipleFileUploadModel.RemovedFiles.push(DeletedItem.ID_GUID);\r\n } else {\r\n let FileObject = item.file.rawFile;\r\n let deletedList = this.deletedFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n );\r\n if (deletedList.length == 0 || deletedList == undefined) {\r\n let DeletedItem =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension == FileObject.name\r\n )[0];\r\n this.multipleFileUploadModel.ExistingFiles =\r\n this.multipleFileUploadModel.ExistingFiles.filter(\r\n (Object) => Object.NameWithExtension != FileObject.name\r\n );\r\n this.deletedFiles.push(DeletedItem);\r\n this.multipleFileUploadModel.RemovedFiles.push(\r\n DeletedItem.ID_GUID\r\n );\r\n }\r\n }\r\n }\r\n } else {\r\n this.deletedFiles = [];\r\n this.multipleFileUploadModel.RemovedFiles = [];\r\n }\r\n this.multipleFileUploadModel.UploadedFiles =\r\n this.multipleFileUploadModel.UploadedFiles.filter(\r\n (Object) => Object.NameWithExtension != item._file.name\r\n );\r\n if (\r\n (this.multipleFileUploadModel.UploadedFiles == null ||\r\n this.multipleFileUploadModel.UploadedFiles.length == 0) &&\r\n this.options.IsRequired\r\n ) {\r\n const formControl = this.fileUploadFormControl;\r\n formControl.setErrors({\r\n MinFileCountValidationKey: this.options.MinNoOfFiles,\r\n });\r\n this.fileUploadFormControl.markAsTouched();\r\n this.fileUploadFormControl.invalid;\r\n }\r\n this.multipleFileUploadModel.CorrelationID_GUID=this.options.Value?.CorrelationID_GUID\r\n this.fileUploadFormControl.setValue(this.multipleFileUploadModel);\r\n this.group.get(this.options.Name).setValue(this.multipleFileUploadModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.multipleFileUploadModel;\r\n }\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.fileUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.fileUploadFormControl);\r\n };\r\n}\r\n","import { Expose, Type } from 'class-transformer';\r\nexport class EnglishArabicDTO\r\n{\r\n @Expose({name: 'english'}) English:string;\r\n @Expose({name: 'arabic'}) Arabic:string\r\n}","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ControlLayout } from '../../Shared/Enums/ControlLayout';\r\nimport { MultiLingualTextBoxOptions } from '../../Shared/Models/MultilingualTextBoxOptions';\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualTextBox',\r\n templateUrl: './MultiLingualTextBox.component.html'\r\n})\r\nexport class MultiLingualTextBoxComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n\r\n constructor(public MultiLingualTextBoxFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private translate: BBSFTranslateService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n MultiLingualTextBoxComponent.controlContainerstatic = this.controlContainer;\r\n this.CurrentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualTextBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ArabicFormControl: AbstractControl;\r\n EnglishFormControl: AbstractControl;\r\n MultiFormControl: AbstractControl;\r\n MultiLanguagegroup: FormGroup;\r\n ArabicWordCount: number = 0;\r\n ArabicWordCountArray: number = 0;\r\n EnglishWordCount: number = 0;\r\n EnglishWordCountArray: number = 0;\r\n CurrentLanguage: string = \"\";\r\n ShowArabicTextBox: boolean\r\n ShowEnglishTextBox: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n\r\n IsShowArabicWordCount: boolean = false;\r\n IsShowEnglishWordCount: boolean = false;\r\n\r\n IsShowAsteriskInArabic: boolean = false;\r\n IsShowAsteriskInEnglish: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n //For Show warning message of max length limit\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n englishCurrentCharsCount: number = 0;\r\n arabicCurrentCharsCount: number = 0;\r\n showEnglishCharsLimitMsg: boolean = false;\r\n showArabicCharsLimitMsg: boolean = false;\r\n hasEnglishCharsLimitValidationError: boolean = false;\r\n hasArabicCharsLimitValidationError: boolean = false;\r\n englishCharsLimitMsgClass: string;\r\n arabicCharsLimitMsgClass: string;\r\n englishMaxLimitWarningMsg: string = \"\";\r\n arabicMaxLimitWarningMsg: string = \"\";\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicIsRequiredAndOnly50CharactersEnglish\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n\r\n\r\n }\r\n async ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n\r\n // this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang;\r\n // this.showInputUsingLanguageMode()\r\n // });\r\n this.MultiLanguagegroup = new FormGroup({});;\r\n this.MultiLanguagegroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultiLanguagegroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicFormControl = this.MultiLanguagegroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishFormControl = this.MultiLanguagegroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultiLanguagegroup.controls));\r\n this.getCustomErrorsMassages()\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n if (!this.options.MultiControlPlacementType)\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextBox;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n\r\n\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n\r\n this.showInputUsingLanguageMode();\r\n\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.arabicValidator({ ArabicIsRequiredAndOnly50CharactersEnglish: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n\r\n this.ArabicFormControl.setValidators(this.ArabicValidationRules);\r\n this.ArabicFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n this.EnglishFormControl.setValidators(this.EnglishValidationRules);\r\n this.EnglishFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.EnglishFormControl.disable();\r\n this.ArabicFormControl.disable();\r\n }\r\n this.ArabicFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishFormControl.setValue(this.options.Value.English)\r\n\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');\r\n this.options.Value.English = this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n this.MultiLingualTextBoxFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n onTextChange() {\r\n // this.trimControlValue(type)\r\n let arabicValue = \"\";\r\n let englishValue = \"\";\r\n if (this.EnglishFormControl.value == \"\") {\r\n this.EnglishWordCountArray = 0;\r\n this.EnglishWordCount = 0;\r\n }\r\n else {\r\n if (this.EnglishFormControl.value != null && this.EnglishFormControl.value != undefined) {\r\n this.EnglishWordCountArray = this.EnglishFormControl.value.split(\" \").length;\r\n if (this.EnglishWordCountArray > 0) {\r\n if (this.EnglishWordCountArray > this.options.MaxWordCount) {\r\n this.EnglishWordCount = this.options.MaxWordCount;\r\n this.MultiLanguagegroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguagegroup.controls[\"English\"].markAsTouched();\r\n this.MultiLanguagegroup.controls[\"English\"].invalid;\r\n }\r\n else {\r\n this.EnglishWordCount = this.EnglishWordCountArray;\r\n }\r\n englishValue = this.EnglishFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.englishCurrentCharsCount = this.EnglishFormControl.value.length;\r\n if (this.englishCurrentCharsCount > this.minCharsLimit) {\r\n this.showEnglishCharsLimitMsg = true;\r\n this.hasEnglishCharsLimitValidationError = true;\r\n if (this.englishCurrentCharsCount == this.options.MaxLength)\r\n this.englishCharsLimitMsgClass = \"danger\";\r\n else\r\n this.englishCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showEnglishCharsLimitMsg = false;\r\n this.hasEnglishCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.englishCurrentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.englishMaxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n\r\n }\r\n if (this.ArabicFormControl.value == \"\") {\r\n this.ArabicWordCountArray = 0;\r\n this.ArabicWordCount = 0;\r\n }\r\n else {\r\n if (this.ArabicFormControl.value != null && this.ArabicFormControl.value != undefined) {\r\n this.ArabicWordCountArray = this.ArabicFormControl.value.split(\" \").length;\r\n if (this.ArabicWordCountArray > 0) {\r\n if (this.ArabicWordCountArray > this.options.MaxWordCount) {\r\n this.ArabicWordCount = this.options.MaxWordCount;\r\n this.MultiLanguagegroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguagegroup.controls[\"Arabic\"].markAsTouched();\r\n this.MultiLanguagegroup.controls[\"Arabic\"].invalid;\r\n }\r\n else {\r\n this.ArabicWordCount = this.ArabicWordCountArray;\r\n }\r\n arabicValue = this.ArabicFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.arabicCurrentCharsCount = this.ArabicFormControl.value.length;\r\n if (this.arabicCurrentCharsCount > this.minCharsLimit) {\r\n this.showArabicCharsLimitMsg = true;\r\n this.hasArabicCharsLimitValidationError = true;\r\n if (this.arabicCurrentCharsCount == this.options.MaxLength)\r\n this.arabicCharsLimitMsgClass = \"danger\";\r\n else\r\n this.arabicCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showArabicCharsLimitMsg = false;\r\n this.hasArabicCharsLimitValidationError = false;\r\n }\r\n\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.arabicCurrentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.arabicMaxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n }\r\n let mulitLangModel = new EnglishArabicDTO();\r\n mulitLangModel.Arabic = arabicValue;\r\n mulitLangModel.English = englishValue;\r\n // this.ArabicFormControl = arabicValue;\r\n // this.EnglishFormControl = englishValue;\r\n this.OnChange.emit(mulitLangModel)\r\n this.group.get(this.options.Name).setValue(mulitLangModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n this.MultiLingualTextBoxFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n\r\n resetError() {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.ArabicFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.EnglishFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.ArabicFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.EnglishFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.ArabicFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.EnglishFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ArabicFormControl)\r\n this.controlUtility.IsValid(this.EnglishFormControl)\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n getInputType(type: number) {\r\n return InputType[type]\r\n }\r\n\r\n trimControlValue(type: string) {\r\n const whitespace: string = ' ';\r\n if (type == \"En\") {\r\n let originalValue = this.controlUtility.trimControlValue(this.EnglishFormControl.value);\r\n this.EnglishFormControl.patchValue(originalValue)\r\n\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.EnglishFormControl.value.startsWith(whitespace) || this.EnglishFormControl.value.endsWith(whitespace)) {\r\n this.EnglishFormControl.patchValue(originalValue);\r\n }\r\n }\r\n if (type == \"Ar\") {\r\n let originalValue = this.controlUtility.trimControlValue(this.ArabicFormControl.value);\r\n this.ArabicFormControl.patchValue(originalValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n\r\n }\r\n if (this.ArabicFormControl.value.startsWith(whitespace) || this.ArabicFormControl.value.endsWith(whitespace)) {\r\n this.ArabicFormControl.patchValue(originalValue);\r\n }\r\n }\r\n\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n showInputUsingLanguageMode() {\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicFormControl.clearValidators();\r\n this.EnglishFormControl.clearValidators();\r\n\r\n this.ArabicFormControl.updateValueAndValidity();\r\n this.EnglishFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicTextBox = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicTextBox = true;\r\n this.ShowEnglishTextBox = false;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicTextBox = false;\r\n this.ShowEnglishTextBox = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicFormControl.updateValueAndValidity();\r\n this.EnglishFormControl.updateValueAndValidity();\r\n\r\n }\r\n\r\n onArabicFocus(isFocus: boolean) {\r\n this.IsShowArabicWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasArabicCharsLimitValidationError) //check if there was previous validation error\r\n this.showArabicCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showArabicCharsLimitMsg = false;\r\n }\r\n\r\n onEnglishFocus(isFocus: boolean) {\r\n this.IsShowEnglishWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasEnglishCharsLimitValidationError) //check if there was previous validation error\r\n this.showEnglishCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showEnglishCharsLimitMsg = false;\r\n }\r\n\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { TextAreaOptions } from '../../Shared/Models/TextAreaOptions';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-TextArea',\r\n templateUrl: './TextArea.component.html'\r\n})\r\nexport class TextAreaComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public TextAreaControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n TextAreaComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: TextAreaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n TextAreaFormControl: AbstractControl;\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n IsShowWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n //For Show warning message of max length limit\r\n currentCharsCount: number = 0;\r\n showCharsLimitMsg: boolean = false;\r\n hasCharsLimitValidationError: boolean = false;\r\n charsLimitMsgClass: string;\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n maxLimitWarningMsg: string = \"\";\r\n public textDir;\r\n\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.TextAreaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextArea;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.TextAreaFormControl.setValue(this.options.Value);\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.TextAreaFormControl.setValidators(this.validationRules);\r\n this.TextAreaFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TextAreaFormControl.disable();\r\n }\r\n\r\n this.TextAreaControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n getInputType(type: number) {\r\n return this.controlUtility.getInputType(type)\r\n }\r\n\r\n trimControlValue() {\r\n let originalValue = this.controlUtility.trimControlValue(this.TextAreaFormControl.value);\r\n this.TextAreaFormControl.patchValue(originalValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.TextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n onTextChange() {\r\n\r\n if (this.TextAreaFormControl.value == \"\") {\r\n this.WordCountArray = 0;\r\n this.WordCount = 0;\r\n }\r\n\r\n else {\r\n this.WordCountArray = this.TextAreaFormControl.value.split(\" \").length;\r\n if (this.WordCountArray > 0) {\r\n if (this.WordCountArray > this.options.MaxWordCount) {\r\n this.WordCount = this.options.MaxWordCount;\r\n this.TextAreaFormControl.setErrors({ \"errorMassage\": ` Word count must be less then or equal ${this.options.MaxWordCount}` });\r\n this.TextAreaFormControl.markAsTouched();\r\n this.TextAreaFormControl.invalid;\r\n }\r\n else {\r\n this.WordCount = this.WordCountArray;\r\n\r\n }\r\n\r\n }\r\n }\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.currentCharsCount = this.TextAreaFormControl.value.length;\r\n if (this.currentCharsCount > this.minCharsLimit) {\r\n this.showCharsLimitMsg = true;\r\n this.hasCharsLimitValidationError = true;\r\n\r\n if (this.currentCharsCount == this.options.MaxLength)\r\n this.charsLimitMsgClass = \"danger\";\r\n else\r\n this.charsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showCharsLimitMsg = false;\r\n this.hasCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.currentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.maxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n this.OnChange.emit(this.TextAreaFormControl.value)\r\n\r\n }\r\n\r\n onFocus(isFocus: boolean) {\r\n this.IsShowWordCount = isFocus;\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasCharsLimitValidationError) //check if there was previous validation error\r\n this.showCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showCharsLimitMsg = false;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.TextAreaFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.TextAreaFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.TextAreaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.TextAreaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TextAreaFormControl)\r\n }\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { MultiLingualTextAreaOptions } from '../../Shared/Models/MultiLingualTextAreaOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ControlLayout } from '../../Shared/Enums/ControlLayout';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualTextArea',\r\n templateUrl: './MultiLingualTextArea.component.html'\r\n})\r\nexport class MultiLingualTextAreaComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n IsShowAsteriskInArabic: boolean;\r\n IsShowAsteriskInEnglish: boolean;\r\n constructor(public MultiLingualTextAreaFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n MultiLingualTextAreaComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualTextAreaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ArabicTextAreaFormControl: AbstractControl;\r\n EnglishTextAreaFormControl: AbstractControl;\r\n MultiTextAreaFormControl: AbstractControl;\r\n MultiLanguageTextAreagroup: FormGroup;\r\n ArabicWordCount: number = 0;\r\n ArabicWordCountArray: number = 0;\r\n EnglishWordCount: number = 0;\r\n EnglishWordCountArray: number = 0;\r\n CurrentLanguage: string = \"\";\r\n ShowArabicTextArea: boolean\r\n ShowEngishTextArea: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n validationRules = [];\r\n validationRulesasync = [];\r\n IsShowArabicWordCount: boolean = false;\r\n IsShowEnglishWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n //For Show warning message of max length limit\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n englishCurrentCharsCount: number = 0;\r\n arabicCurrentCharsCount: number = 0;\r\n showEnglishCharsLimitMsg: boolean = false;\r\n showArabicCharsLimitMsg: boolean = false;\r\n hasEnglishCharsLimitValidationError: boolean = false;\r\n hasArabicCharsLimitValidationError: boolean = false;\r\n englishCharsLimitMsgClass: string;\r\n arabicCharsLimitMsgClass: string;\r\n englishMaxLimitWarningMsg: string = \"\";\r\n arabicMaxLimitWarningMsg: string = \"\";\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicIsRequiredAndOnly50CharactersEnglish\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n\r\n\r\n }\r\n\r\n async ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n // UtilityService.Translator.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang\r\n // this.showInputUsingLanguageMode();\r\n\r\n // });\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n if (!this.options.MultiControlPlacementType)\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextArea;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n\r\n this.MultiLanguageTextAreagroup = new FormGroup({});\r\n this.MultiLanguageTextAreagroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultiLanguageTextAreagroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicTextAreaFormControl = this.MultiLanguageTextAreagroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishTextAreaFormControl = this.MultiLanguageTextAreagroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultiLanguageTextAreagroup.controls));\r\n this.getCustomErrorsMassages()\r\n\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n\r\n ]));\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n\r\n ]));\r\n break;\r\n\r\n case InputType.Number:\r\n this.EnglishValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n this.ArabicValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n break;\r\n }\r\n\r\n\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n\r\n this.showInputUsingLanguageMode();\r\n\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.arabicValidator({ ArabicIsRequiredAndOnly50CharactersEnglish: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- \\n]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n\r\n this.ArabicTextAreaFormControl.setValidators(this.ArabicValidationRules);\r\n this.ArabicTextAreaFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n this.EnglishTextAreaFormControl.setValidators(this.EnglishValidationRules);\r\n this.EnglishTextAreaFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n\r\n\r\n if (this.options.IsDisabled) {\r\n this.EnglishTextAreaFormControl.disable();\r\n this.ArabicTextAreaFormControl.disable();\r\n }\r\n this.ArabicTextAreaFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishTextAreaFormControl.setValue(this.options.Value.English)\r\n\r\n this.MultiLingualTextAreaFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');\r\n this.options.Value.English = this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n }\r\n\r\n\r\n onTextChange() {\r\n let arabicValue = \"\";\r\n let englishValue = \"\";\r\n if (this.EnglishTextAreaFormControl.value == \"\") {\r\n this.EnglishWordCountArray = 0;\r\n this.EnglishWordCount = 0;\r\n }\r\n else {\r\n if (this.EnglishTextAreaFormControl.value != null || this.EnglishTextAreaFormControl.value != undefined) {\r\n this.EnglishWordCountArray = this.EnglishTextAreaFormControl.value.split(\" \").length;\r\n if (this.EnglishWordCountArray > 0) {\r\n if (this.EnglishWordCountArray > this.options.MaxWordCount) {\r\n this.EnglishWordCount = this.options.MaxWordCount;\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].markAsTouched();\r\n this.MultiLanguageTextAreagroup.controls[\"English\"].invalid;\r\n }\r\n else {\r\n this.EnglishWordCount = this.EnglishWordCountArray;\r\n }\r\n englishValue = this.EnglishTextAreaFormControl.value;\r\n\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.englishCurrentCharsCount = this.EnglishTextAreaFormControl.value.length;\r\n if (this.englishCurrentCharsCount > this.minCharsLimit) {\r\n this.showEnglishCharsLimitMsg = true;\r\n this.hasEnglishCharsLimitValidationError = true;\r\n if (this.englishCurrentCharsCount == this.options.MaxLength)\r\n this.englishCharsLimitMsgClass = \"danger\";\r\n else\r\n this.englishCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showEnglishCharsLimitMsg = false;\r\n this.hasEnglishCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.englishCurrentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.englishMaxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n }\r\n if (this.ArabicTextAreaFormControl.value == \"\") {\r\n this.ArabicWordCountArray = 0;\r\n this.ArabicWordCount = 0;\r\n }\r\n else {\r\n if (this.ArabicTextAreaFormControl.value != null || this.ArabicTextAreaFormControl.value != undefined) {\r\n this.ArabicWordCountArray = this.ArabicTextAreaFormControl.value.split(\" \").length;\r\n if (this.ArabicWordCountArray > 0) {\r\n if (this.ArabicWordCountArray > this.options.MaxWordCount) {\r\n this.ArabicWordCount = this.options.MaxWordCount;\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount });\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].markAsTouched();\r\n this.MultiLanguageTextAreagroup.controls[\"Arabic\"].invalid;\r\n }\r\n else {\r\n this.ArabicWordCount = this.ArabicWordCountArray;\r\n }\r\n arabicValue = this.ArabicTextAreaFormControl.value;\r\n }\r\n }\r\n\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.arabicCurrentCharsCount = this.ArabicTextAreaFormControl.value.length;\r\n if (this.arabicCurrentCharsCount > this.minCharsLimit) {\r\n this.showArabicCharsLimitMsg = true;\r\n this.hasArabicCharsLimitValidationError = true;\r\n if (this.arabicCurrentCharsCount == this.options.MaxLength)\r\n this.arabicCharsLimitMsgClass = \"danger\";\r\n else\r\n this.arabicCharsLimitMsgClass = \"warning\";\r\n }\r\n else {\r\n this.showArabicCharsLimitMsg = false;\r\n this.hasArabicCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.arabicCurrentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\"MaxLengthLimitWarning\");\r\n this.arabicMaxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n }\r\n let mulitLangModel = new EnglishArabicDTO();\r\n mulitLangModel.Arabic = arabicValue;\r\n mulitLangModel.English = englishValue;\r\n this.OnChange.emit(mulitLangModel)\r\n this.group.get(this.options.Name).setValue(mulitLangModel);\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getInputType(type: number) {\r\n return InputType[type]\r\n }\r\n\r\n trimControlValue(type: string) {\r\n const whitespace: string = ' ';\r\n if (type == \"En\") {\r\n let originalValue = this.EnglishTextAreaFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishTextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.EnglishTextAreaFormControl.value.startsWith(whitespace) || this.EnglishTextAreaFormControl.value.endsWith(whitespace)) {\r\n this.EnglishTextAreaFormControl.patchValue(originalValue);\r\n }\r\n }\r\n if (type == \"Ar\") {\r\n let originalValue = this.ArabicTextAreaFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicTextAreaFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n if (this.ArabicTextAreaFormControl.value.startsWith(whitespace) || this.ArabicTextAreaFormControl.value.endsWith(whitespace)) {\r\n this.ArabicTextAreaFormControl.patchValue(originalValue);\r\n }\r\n }\r\n\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n\r\n showInputUsingLanguageMode() {\r\n\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicTextAreaFormControl.clearValidators();\r\n this.EnglishTextAreaFormControl.clearValidators();\r\n\r\n this.ArabicTextAreaFormControl.updateValueAndValidity();\r\n this.EnglishTextAreaFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicTextArea = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = true;\r\n this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n this.options.MultiControlPlacementType = ControlLayout.Vertical;\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicTextArea = true;\r\n this.ShowEngishTextArea = false;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicTextArea = false;\r\n this.ShowEngishTextArea = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicTextAreaFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishTextAreaFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicTextAreaFormControl.updateValueAndValidity();\r\n this.EnglishTextAreaFormControl.updateValueAndValidity();\r\n }\r\n\r\n\r\n onArabicFocus(isFocus: boolean) {\r\n this.IsShowArabicWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasArabicCharsLimitValidationError) //check if there was previous validation error\r\n this.showArabicCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showArabicCharsLimitMsg = false;\r\n }\r\n\r\n onEnglishFocus(isFocus: boolean) {\r\n this.IsShowEnglishWordCount = isFocus\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasEnglishCharsLimitValidationError) //check if there was previous validation error\r\n this.showEnglishCharsLimitMsg = true;\r\n }\r\n else //onFocusOut\r\n this.showEnglishCharsLimitMsg = false;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.EnglishTextAreaFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.ArabicTextAreaFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.EnglishTextAreaFormControl)\r\n this.controlUtility.IsValid(this.ArabicTextAreaFormControl)\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { CheckBoxOptions } from '../../Shared/Models/CheckBoxOptions';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-CheckBox',\r\n templateUrl: './CheckBox.component.html'\r\n})\r\nexport class CheckBoxComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public CheckBoxControlHost: FormGroupDirective,private UtilityService:UtilityService,private translate: BBSFTranslateService,private controlValidationService:ControlValidationService) {\r\n CheckBoxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: CheckBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n CheckBoxFormControl: AbstractControl;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.CheckBoxFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.validationRules = [];\r\n this.validationRulesasync = [];\r\n this.CheckBoxFormControl.setValue(this.options.Value);\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n\r\n this.CheckBoxFormControl.setValidators(this.validationRules);\r\n this.CheckBoxFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.CheckBoxFormControl.disable();\r\n }\r\n\r\n this.CheckBoxControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n this.OnChange.emit(this.CheckBoxFormControl.value)\r\n let originalValue =this.CheckBoxFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.CheckBoxFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.CheckBoxFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.CheckBoxFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.CheckBoxFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.CheckBoxFormControl)\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, FormGroupDirective, ControlContainer } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { DropdownOptions } from '../../Shared/Models/DropdownOptions';\r\nimport { DropdownListItem } from '../../Shared/Models/DropdownListItem';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-DropdownList',\r\n templateUrl: './DropdownList.component.html'\r\n})\r\nexport class DropdownListComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private onChangeService: OnPagingFiltersChangeService, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public DropdownListControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n DropdownListComponent.controlContainerstatic = this.controlContainer;\r\n //console.log(environment[\"BBSF_AdminUrl\"]);\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: DropdownOptions;\r\n DropdownListFormControl: AbstractControl;\r\n dropdownSettings = {};\r\n SelectedItems: DropdownListItem[]\r\n SelectedList: any[] = []\r\n @Output() OnChange = new EventEmitter();\r\n @Output() onClear = new EventEmitter();\r\n\r\n markAllAsTouched: boolean = false;\r\n\r\n controlChanged: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n ngOnInit() {\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.SelectedList = this.options.SelectedItems\r\n this.dropdownSettings = {\r\n singleSelection: this.options.SingleSelection,\r\n text: \"Select\",\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n enableSearchFilter: this.options.AllowSearchFilter,\r\n classes: this.options.Classes,\r\n disabled: this.options.IsDisabled,\r\n showCheckbox: this.options.ShowCheckbox,\r\n enableCheckAll: this.options.EnableCheckAll,\r\n itemsShowLimit: this.options.ItemsShowLimit,\r\n allowSearchFilter: this.options.AllowSearchFilter,\r\n showSelectedItemsAtTop: true,\r\n limitSelection: this.options.LimitSelection,\r\n searchPlaceholderText: this.options.Placeholder,\r\n labelKey: \"value\",\r\n primaryKey: \"key\"\r\n };\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.DropdownListFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.DropdownListFormControl.setValidators(this.validationRules);\r\n this.DropdownListFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.DropdownListFormControl.disable();\r\n }\r\n\r\n this.DropdownListControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getSelectedItemValue() {\r\n if (this.options.SelectedItems) {\r\n if (this.options.SingleSelection)\r\n return this.options.DataSource.filter(item => item[this.options.ItemTempletkey] == this.options.SelectedItems)[0][this.options.ItemTempletvalue]\r\n else\r\n return this.options.DataSource.filter(item => this.options.SelectedItems.includes(item[this.options.ItemTempletkey])).map(item => item[this.options.ItemTempletvalue])\r\n } else\r\n return this.UtilityService.getResourceValue('NA');\r\n }\r\n\r\n onItemSelect() {\r\n this.onChangeService.ChangeValue(this.options.Name)\r\n let originalValue = this.options.SelectedItems;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n this.OnChange.emit(originalValue)\r\n //console.log(this.DropdownListFormControl.value)\r\n }\r\n Clear() {\r\n //console.log(\"Clear\")\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n this.onChangeService.ChangeValue(this.options.Name)\r\n this.OnChange.emit()\r\n }\r\n onSelectAll(items) {\r\n this.SelectedItems = items;\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n }\r\n onDeselect(items) {\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n if ((this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n\r\n }\r\n onDeselectAll(items) {\r\n this.DropdownListFormControl.setValue(this.SelectedItems);\r\n if ((this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n }\r\n\r\n onDropDownClose() {\r\n if ((this.SelectedItems == undefined || this.SelectedItems.length == 0) && this.options.IsRequired == true) {\r\n this.DropdownListFormControl.markAsTouched();\r\n this.DropdownListFormControl.invalid;\r\n\r\n }\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.DropdownListFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.DropdownListFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.DropdownListFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.DropdownListFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.DropdownListFormControl)\r\n }\r\n\r\n //Update items (data source) of drop down\r\n UpdateDataSource = (dataSource: DropdownListItem[]) => {\r\n this.options.DataSource = dataSource;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, FormControl, FormGroup, FormGroupDirective, Validators } from '@angular/forms';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { CountryISO, SearchCountryField } from 'ngx-intl-tel-input';\r\nimport { Country } from '../../Shared/Enums/Countries';\r\nimport { PhoneOptions } from '../../Shared/Models/PhoneOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n selector: 'BBSF-Phone',\r\n templateUrl: './Phone.component.html'\r\n})\r\nexport class PhoneComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public PhoneControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n PhoneComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: PhoneOptions;\r\n @Output() OnChange = new EventEmitter();\r\n PhoneFormControl: AbstractControl;\r\n SearchCountryField = SearchCountryField;\r\n // TooltipLabel = TooltipLabel;\r\n markAllAsTouched: boolean = false\r\n validationRules = [];\r\n validationRulesasync = [];\r\n separateDialCode = false;\r\n textDir;\r\n\r\n ngOnInit() {\r\n\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.PhoneFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.PhoneFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.PhoneFormControl.setValidators(this.validationRules);\r\n this.PhoneFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.PhoneFormControl.disable();\r\n }\r\n\r\n this.PhoneControlHost.ngSubmit.subscribe(() => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n let Number = this.PhoneFormControl.value.internationalNumber as string;\r\n let originalValue = this.controlUtility.trimControlValue(Number);\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n this.OnChange.emit(originalValue);\r\n }\r\n getSelectedCountry(selectedCountry: Country) {\r\n let value = selectedCountry as string;\r\n return value as CountryISO\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.PhoneFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.PhoneFormControl, this.validationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.PhoneFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.PhoneFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.PhoneFormControl)\r\n }\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, NgZone, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { HtmlEditorOptions } from '../../Shared/Models/HtmlEditorOptions';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-HtmlEditor',\r\n templateUrl: './HtmlEditor.component.html'\r\n})\r\nexport class HtmlEditorComponent implements OnInit {\r\n\r\n editorConfig: AngularEditorConfig\r\n static controlContainerstatic = null;\r\n constructor(private zone: NgZone, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public HtmlEditorControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n HtmlEditorComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: HtmlEditorOptions;\r\n @Output() OnChange = new EventEmitter();\r\n HtmlEditorFormControl: AbstractControl;\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n markAllAsTouched: boolean = false;\r\n Config: any\r\n miscList: any\r\n styleList: any\r\n fontsizeList: any\r\n paraList: any\r\n insertList: any\r\n validationRules = [];\r\n validationRulesasync = [];\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.editorConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: `${this.options.Height}rem`,\r\n minHeight: `${this.options.Height}rem`,\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.Placeholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n {class: 'arial', name: 'Arial'},\r\n {class: 'times-new-roman', name: 'Times New Roman'},\r\n {class: 'calibri', name: 'Calibri'},\r\n {class: 'comic-sans-ms', name: 'Comic Sans MS'}\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n [\r\n 'link',\r\n 'unlink',\r\n 'insertImage',\r\n 'insertVideo',\r\n 'insertHorizontalRule',\r\n ]\r\n ]\r\n };\r\n this.controlValidationService.isCreatedBefor = false\r\n // this.miscList = this.options.ToolsList_Misc != null ? this.options.ToolsList_Misc : ['codeview', 'undo', 'redo'];\r\n // this.styleList = this.options.ToolsList_Style != null ? this.options.ToolsList_Style : ['bold', 'italic', 'underline', 'clear']\r\n // this.fontsizeList = this.options.ToolsList_FontSize != null ? this.options.ToolsList_FontSize : ['fontname', 'fontsize', 'color']\r\n // this.paraList = this.options.ToolsList_Para != null ? this.options.ToolsList_Para : ['style', 'ul', 'ol', 'paragraph', 'height']\r\n // this.insertList = this.options.ToolsList_Insert != null ? this.options.ToolsList_Insert : ['table', 'picture', 'link', 'video', 'hr']\r\n\r\n // this.Config = {\r\n // callbacks: {\r\n // // onChange: (e) => {\r\n\r\n // // this.zone.run(() => {\r\n // // this.onTextChange();\r\n // // });\r\n // // },\r\n // // onKeyup: (e) => {\r\n // // this.zone.run(() => {\r\n // // ;\r\n // // this.onTextChange();\r\n // // });\r\n // // },\r\n // // onKeydown: (e) => {\r\n // // this.zone.run(() => {\r\n // // ;\r\n // // if (this.WordCountArray > this.options.MaxWordCount && e.keyCode != 8) {\r\n // // e.preventDefault();\r\n // // }\r\n\r\n // // });\r\n // // }\r\n // },\r\n // placeholder: this.options.Placeholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.HtmlEditorFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.HtmlEditorFormControl.setValue(this.options.Value);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n }\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.HtmlEditorFormControl.setValidators(this.validationRules);\r\n this.HtmlEditorFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.HtmlEditorFormControl.disable();\r\n }\r\n\r\n this.HtmlEditorControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n }\r\n\r\n\r\n ngAfterViewChecked(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n\r\n let angularEditor = document.getElementsByClassName(\"angular-editor-toolbar ng-star-inserted\")[0]\r\n let dir =this.UtilityService.getCurrentLanguage()==\"en\"?\"ltr\":\"rtl\"\r\n angularEditor.setAttribute(\"dir\",dir);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n onValueChanged() {\r\n this.HtmlEditorFormControl.setValue(this.HtmlEditorFormControl.value.trim());\r\n let originalValue = this.controlUtility.trimControlValue(this.HtmlEditorFormControl.value);\r\n if (this.options.PatchFunction && this.options.PatchPath && this.HtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value=originalValue;\r\n this.OnChange.emit(originalValue)\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.HtmlEditorFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.HtmlEditorFormControl, this.validationRules, this.options)\r\n }\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.HtmlEditorFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.HtmlEditorFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.HtmlEditorFormControl)\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { EnglishArabicDTO } from '../../Shared/Models/EnglishArabicDTO';\r\nimport { MultiLingualHtmlEditorOptions } from '../../Shared/Models/MultiLingualHtmlEditorOptions';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { LanguageMode } from '../../Shared/Enums/LanguageMode';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n selector: 'BBSF-MultiLingualHtmlEditor',\r\n templateUrl: './MultiLingualHtmlEditor.component.html'\r\n})\r\nexport class MultiLingualHtmlEditorComponent implements OnInit {\r\n\r\n static controlContainerstatic = null;\r\n IsShowAsteriskInArabic: boolean;\r\n IsShowAsteriskInEnglish: boolean;\r\n constructor(public MultiLingualHtmlEditorFormControlHost: FormGroupDirective, @Optional() private controlContainer: ControlContainer,\r\n private controlUtility: ControlUtility, private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n MultiLingualHtmlEditorComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MultiLingualHtmlEditorOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n\r\n ArabicHtmlEditorFormControl: AbstractControl;\r\n EnglishHtmlEditorFormControl: AbstractControl;\r\n MultiTextAreaFormControl: AbstractControl;\r\n MultilingualHtmlEditorgroup: FormGroup;\r\n ArabicConfig: any\r\n EnglishConfig: any\r\n editorEnglishConfig: AngularEditorConfig\r\n editorArabicConfig: AngularEditorConfig\r\n\r\n miscList: any\r\n styleList: any\r\n fontsizeList: any\r\n paraList: any\r\n insertList: any\r\n\r\n CurrentLanguage: string = \"\";;\r\n ShowArabicHtmlEditor: boolean\r\n ShowEnglishHtmlEditor: boolean\r\n ArabicValidationRules = [];\r\n ArabicValidationRulesasync = [];\r\n EnglishValidationRules = [];\r\n EnglishValidationRulesasync = [];\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n\r\n ArabicLetterOnly: string = \"\"\r\n EnglishLetterOnly: string = \"\"\r\n\r\n englishValue = null\r\n arabicValue = null\r\n\r\n getCustomErrorsMassages() {\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\"ArabicLetterOnly\");\r\n this.EnglishLetterOnly = this.UtilityService.getResourceValue(\"EnglishLetterOnly\");\r\n }\r\n\r\n\r\n async ngOnInit() {\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (!this.options.LanguageMode)\r\n this.options.LanguageMode = this.globalSettings.LanguageMode;\r\n\r\n this.editorEnglishConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: this.options.Height.toString(),\r\n minHeight: this.options.Height.toString(),\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.EnglishPlaceholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n\r\n ]\r\n };\r\n\r\n\r\n this.editorArabicConfig = {\r\n editable: !this.options.IsDisabled,\r\n spellcheck: true,\r\n height: this.options.Height.toString(),\r\n minHeight: this.options.Height.toString(),\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n placeholder: this.options.ArabicPlaceholder,\r\n defaultParagraphSeparator: '',\r\n defaultFontName: '',\r\n defaultFontSize: '',\r\n fonts: [\r\n { class: 'arial', name: 'Arial' },\r\n { class: 'times-new-roman', name: 'Times New Roman' },\r\n { class: 'calibri', name: 'Calibri' },\r\n { class: 'comic-sans-ms', name: 'Comic Sans MS' }\r\n ],\r\n customClasses: [\r\n {\r\n name: 'quote',\r\n class: 'quote',\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: 'titleText',\r\n class: 'titleText',\r\n tag: 'h1',\r\n },\r\n ],\r\n uploadUrl: 'v1/image',\r\n uploadWithCredentials: false,\r\n sanitize: false,\r\n toolbarPosition: 'top',\r\n toolbarHiddenButtons: [\r\n\r\n ]\r\n };\r\n\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.CurrentLanguage = await this.UtilityService.getCurrentLanguage();\r\n\r\n // UtilityService.Translator.onLangChange.subscribe((event: LangChangeEvent) => {\r\n // this.CurrentLanguage = event.lang\r\n // this.showInputUsingLanguageMode();\r\n\r\n // });\r\n // this.miscList = this.options.ToolsList_Misc != null ? this.options.ToolsList_Misc : ['codeview', 'undo', 'redo'];\r\n // this.styleList = this.options.ToolsList_Style != null ? this.options.ToolsList_Style : ['bold', 'italic', 'underline', 'clear']\r\n // this.fontsizeList = this.options.ToolsList_FontSize != null ? this.options.ToolsList_FontSize : ['fontname', 'fontsize', 'color']\r\n // this.paraList = this.options.ToolsList_Para != null ? this.options.ToolsList_Para : ['style', 'ul', 'ol', 'paragraph', 'height']\r\n // this.insertList = this.options.ToolsList_Insert != null ? this.options.ToolsList_Insert : ['table', 'picture', 'link', 'video', 'hr']\r\n\r\n // this.ArabicConfig = {\r\n // placeholder: this.options.ArabicPlaceholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n // this.EnglishConfig = {\r\n // placeholder: this.options.EnglishPlaceholder,\r\n // height: `${this.options.Height}px`,\r\n // toolbar: [\r\n // ['misc', this.miscList],\r\n // ['style', this.styleList],\r\n // ['fontsize', this.fontsizeList],\r\n // ['para', this.paraList],\r\n // ['insert', this.insertList]\r\n // ],\r\n // fontNames: ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times']\r\n\r\n // }\r\n this.MultilingualHtmlEditorgroup = new FormGroup({});;\r\n this.MultilingualHtmlEditorgroup.addControl(\"Arabic\", new FormControl(''));\r\n this.MultilingualHtmlEditorgroup.addControl(\"English\", new FormControl(''));\r\n this.ArabicHtmlEditorFormControl = this.MultilingualHtmlEditorgroup.controls[\"Arabic\"]; // new FormControl('',validationRules);\r\n this.EnglishHtmlEditorFormControl = this.MultilingualHtmlEditorgroup.controls[\"English\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, new FormGroup(this.MultilingualHtmlEditorgroup.controls));\r\n this.getCustomErrorsMassages();\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n ]));\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/, { EmailValidationKey: \"\" }),\r\n ]));\r\n break;\r\n case InputType.Number:\r\n this.EnglishValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n this.ArabicValidationRules.push(Validators.pattern('^[0-9]+(\\.?[0-9]+)?$'));\r\n break;\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.EnglishValidationRules.push(Validation.functionBody);\r\n this.ArabicValidationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.ArabicValidationRules.push(Validators.minLength(this.options.MinLength));\r\n this.EnglishValidationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n\r\n if (this.options.MaxLength > 0) {\r\n this.EnglishValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n this.ArabicValidationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\") {\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InArabic\");\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.LabelKey) + \" \" + this.UtilityService.getResourceValue(\"InEnglish\");\r\n }\r\n else {\r\n if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != \"\")\r\n this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);\r\n\r\n if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != \"\")\r\n this.options.EnglishLabelValue = this.UtilityService.getResourceValue(this.options.EnglishLabelKey);\r\n }\r\n this.showInputUsingLanguageMode();\r\n this.ArabicValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[\\u0621-\\u064A\\u0660-\\u0669 ]+$/, { ArabicLetterOnly: this.ArabicLetterOnly }),\r\n\r\n ]));\r\n this.EnglishValidationRules.push(Validators.compose([\r\n this.controlUtility.patternValidator(/^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),\r\n\r\n ]));\r\n // this.ArabicHtmlEditorFormControl.setValidators(this.ArabicValidationRules);\r\n // this.ArabicHtmlEditorFormControl.setAsyncValidators(this.ArabicValidationRulesasync);\r\n\r\n // this.EnglishHtmlEditorFormControl.setValidators(this.EnglishValidationRules);\r\n // this.EnglishHtmlEditorFormControl.setAsyncValidators(this.EnglishValidationRulesasync);\r\n\r\n if (this.options.IsDisabled) {\r\n this.EnglishHtmlEditorFormControl.disable();\r\n this.ArabicHtmlEditorFormControl.disable();\r\n }\r\n this.ArabicHtmlEditorFormControl.setValue(this.options.Value.Arabic)\r\n this.EnglishHtmlEditorFormControl.setValue(this.options.Value.English)\r\n this.MultiLingualHtmlEditorFormControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n let dir = this.UtilityService.getCurrentLanguage() == \"en\" ? \"ltr\" : \"rtl\"\r\n var angularEditor = document.getElementsByClassName(\"angular-editor-toolbar ng-star-inserted\");\r\n for (let index = 0; index < angularEditor.length; index++) {\r\n const element = angularEditor[index];\r\n element.setAttribute(\"dir\", dir);\r\n }\r\n }\r\n onTextChange(type: string) {\r\n\r\n if (type == \"en\") {\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].setValue(this.MultilingualHtmlEditorgroup.controls[\"English\"].value.trim());\r\n this.englishValue = this.MultilingualHtmlEditorgroup.controls[\"English\"].value == null ? \"\" : this.MultilingualHtmlEditorgroup.controls[\"English\"].value;\r\n if (this.englishValue) {\r\n this.EnglishHtmlEditorFormControl.setValue(this.englishValue);\r\n let originalValue = this.englishValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.EnglishHtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n let EngliswordCountArray = (this.EnglishHtmlEditorFormControl.value as string).split(\" \").length\r\n if (EngliswordCountArray > 0) {\r\n if (EngliswordCountArray > this.options.MaxWordCount)\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount })\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].markAsTouched()\r\n this.MultilingualHtmlEditorgroup.controls[\"English\"].invalid\r\n\r\n }\r\n\r\n }\r\n\r\n if (type == \"ar\") {\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].setValue(this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value.trim());\r\n\r\n this.arabicValue = this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value == null ? \"\" : this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].value;\r\n\r\n if (this.arabicValue) {\r\n this.ArabicHtmlEditorFormControl.setValue(this.arabicValue);\r\n let originalValue = this.arabicValue;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ArabicHtmlEditorFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n }\r\n\r\n let ArabicwordCountArray = (this.ArabicHtmlEditorFormControl.value as string).split(\" \").length\r\n if (ArabicwordCountArray > 0) {\r\n if (ArabicwordCountArray > this.options.MaxWordCount)\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].setErrors({ MaxWordCountValidationKey: this.options.MaxWordCount })\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].markAsTouched()\r\n this.MultilingualHtmlEditorgroup.controls[\"Arabic\"].invalid\r\n\r\n }\r\n }\r\n\r\n let mulitLangModel = new EnglishArabicDTO()\r\n mulitLangModel.Arabic = this.arabicValue;\r\n mulitLangModel.English = this.englishValue\r\n this.OnChange.emit(mulitLangModel)\r\n if (this.arabicValue && this.englishValue)\r\n this.group.get(this.options.Name).setValue(mulitLangModel)\r\n //Use this line to enable two way binding.\r\n this.options.Value = mulitLangModel;\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n\r\n showInputUsingLanguageMode() {\r\n\r\n this.ArabicValidationRules = this.ArabicValidationRules.filter(item => item !== Validators.required);\r\n this.EnglishValidationRules = this.EnglishValidationRules.filter(item => item !== Validators.required);\r\n\r\n this.ArabicHtmlEditorFormControl.clearValidators();\r\n this.EnglishHtmlEditorFormControl.clearValidators();\r\n\r\n this.ArabicHtmlEditorFormControl.updateValueAndValidity();\r\n this.EnglishHtmlEditorFormControl.updateValueAndValidity();\r\n\r\n switch (this.options.LanguageMode) {\r\n case LanguageMode.Both_Languages_are_visible:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n break;\r\n case LanguageMode.Arabic_Language_only_is_visible:\r\n this.ShowArabicHtmlEditor = true;\r\n break;\r\n case LanguageMode.English_Language_only_is_visible:\r\n this.ShowEnglishHtmlEditor = true;\r\n break;\r\n case LanguageMode.Both_Languages_are_visible_but_only_current_language_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n\r\n if (this.CurrentLanguage == 'ar') {\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n }\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_Arabic_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n }\r\n break;\r\n case LanguageMode.Both_Languages_but_only_English_is_required:\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = true;\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n break;\r\n case LanguageMode.Current_Language_only_is_visible_and_required:\r\n if (this.CurrentLanguage == 'ar') {\r\n this.ShowArabicHtmlEditor = true;\r\n this.ShowEnglishHtmlEditor = false;\r\n\r\n if (this.options.IsRequired == true) {\r\n this.ArabicValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInArabic = true;\r\n\r\n }\r\n }\r\n if (this.CurrentLanguage == 'en') {\r\n this.ShowArabicHtmlEditor = false;\r\n this.ShowEnglishHtmlEditor = true;\r\n\r\n if (this.options.IsRequired == true) {\r\n this.EnglishValidationRules.push(Validators.required);\r\n this.IsShowAsteriskInEnglish = true;\r\n\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.ArabicHtmlEditorFormControl.setValidators(this.ArabicValidationRules);\r\n this.EnglishHtmlEditorFormControl.setValidators(this.EnglishValidationRules);\r\n this.ArabicHtmlEditorFormControl.updateValueAndValidity();\r\n this.EnglishHtmlEditorFormControl.updateValueAndValidity();\r\n\r\n }\r\n\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.RemoveRequiredValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, this.options)\r\n this.controlUtility.AddRequiredValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, this.options)\r\n }\r\n\r\n\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.RemoveCustomValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.EnglishHtmlEditorFormControl, this.EnglishValidationRules, CustomValidation)\r\n this.controlUtility.AddCustomValidation(this.ArabicHtmlEditorFormControl, this.ArabicValidationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.EnglishHtmlEditorFormControl)\r\n this.controlUtility.IsValid(this.ArabicHtmlEditorFormControl)\r\n }\r\n}\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n NgZone,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject } from 'ng2-file-upload';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\nimport { ImageUploadOptions } from '../../Shared/Models/ImageUploadOptions';\r\nimport { CropperComponent } from 'angular-cropperjs';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'BBSF-ImageUpload',\r\n templateUrl: './ImageUpload.component.html',\r\n})\r\nexport class ImageUploaderComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n files: File[] = [];\r\n ImageSource: string;\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: ImageUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ImageUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n control: FormControl;\r\n @ViewChild('angularCropper', { static: false })\r\n public angularCropper: CropperComponent;\r\n imgUrl = null;\r\n config = null;\r\n imageUrl = '';\r\n imgwUrl = '';\r\n EventFile: any;\r\n mdlSampleIsOpen: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n maxFileSize: number = 0;\r\n constructor(\r\n private zone: NgZone,\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public ImageUplaoderControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings,\r\n private modalService: NgbModal\r\n ) {\r\n ImageUploaderComponent.controlContainerstatic = this.controlContainer;\r\n this.uploader = new FileUploader({\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n });\r\n this.hasAnotherDropZoneOver = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (!this.options.DefaultImageSrc)\r\n this.options.DefaultImageSrc = this.globalSettings.DefaultImageSrc;\r\n\r\n //Set img src by default value\r\n // this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n if (this.options.AllowImageCropper) {\r\n this.config = {\r\n aspectRatio:\r\n this.options.ImageCropperWidth / this.options.ImageCropperHeight,\r\n dragMode: 'move',\r\n background: true,\r\n movable: true,\r\n rotatable: true,\r\n scalable: true,\r\n zoomable: true,\r\n viewMode: 1,\r\n checkImageOrigin: true,\r\n modal: true,\r\n checkCrossOrigin: false,\r\n width: this.options.ImageCropperWidth,\r\n height: this.options.ImageCropperHeight,\r\n cropBoxResizable: false,\r\n autoCrop: true,\r\n };\r\n }\r\n\r\n if (this.options.FileUploadAcceptsTypes != null) {\r\n this.options.FileUploadAcceptsTypes;\r\n }\r\n if (this.options.Value != null) {\r\n let imgURL = this.options.Value['fileURL'];\r\n if (imgURL != '' && imgURL != undefined && imgURL != null) {\r\n this.ImageSource = imgURL;\r\n this.imageUrl = imgURL;\r\n }\r\n\r\n let element = this.options.Value;\r\n this.FileLikeObject = new FileLikeObject({\r\n name: element.FileName,\r\n size: element.FileSizeInMB * 1000 * 1000,\r\n type: element.FileType,\r\n });\r\n this.uploader.addToQueue([this.FileLikeObject as any]);\r\n }\r\n\r\n if (this.options.FileMaxSizeInMB)\r\n this.maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.FileUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.FileUploadAcceptsTypes[index];\r\n this.AcceptedType = this.AcceptedType.toUpperCase() + Type.toUpperCase();\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n const TypeToolTipe = element.split('/')[1];\r\n this.ToolTipTypeArray.push(TypeToolTipe.toUpperCase());\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n this.UtilityService.getResourceValue('AllowedTypes') +\r\n ` (${this.ToolTipTypeArray}) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n ` <br /> ${this.UtilityService.getResourceValue('FileMaxSizeInMB')} ${\r\n this.options.FileMaxSizeInMB\r\n }`;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0\r\n ) {\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ImageUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.Value != null)\r\n this.group.get(this.options.Name).setValue(this.options.Value);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.ImageUploadFormControl.setValidators(this.validationRules);\r\n this.ImageUploadFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.ImageUploadFormControl.disable();\r\n }\r\n this.ImageUplaoderControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n showImageUploader(element: HTMLElement) {\r\n let input = element.parentElement.parentElement.querySelector(\r\n 'input[type=file]'\r\n ) as HTMLElement;\r\n input.click();\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n onFileChange(event) {\r\n if (event.rejectedFiles.length > 0) {\r\n const file = event.rejectedFiles[0];\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.FileUploadAcceptsTypes != null &&\r\n this.options.FileUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let FilesArray = [];\r\n for (let index = 0; index < event.addedFiles.length; index++) {\r\n const file = event.addedFiles[0];\r\n this.EventFile = file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let FileObject = file;\r\n reader.readAsDataURL(FileObject);\r\n reader.onload = () => {\r\n if (this.options.AllowImageCropper) {\r\n this.imageUrl = reader.result.toString();\r\n this.openModal(true);\r\n } else {\r\n let FileObject: FileDTO = {\r\n FileName: file.name,\r\n FileType: file.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: file.size / 1000 / 1000,\r\n NameWithExtension: file.name,\r\n };\r\n this.options.Value = FileObject;\r\n FilesArray.push(FileObject);\r\n this.group.get(this.options.Name).setValue(FileObject);\r\n this.files = [];\r\n this.files.push(...event.addedFiles);\r\n }\r\n let originalValue = this.ImageUploadFormControl.value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.ImageUploadFormControl.valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n };\r\n }\r\n }\r\n }\r\n\r\n removeFromControlValue(event) {\r\n let ItemList = this.group.get(this.options.Name).value;\r\n this.files = [];\r\n ItemList = null;\r\n //Set Img src by default image (upload)\r\n this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n if (this.files.length == 0 && this.options.IsRequired) {\r\n this.ImageUploadFormControl.markAsTouched();\r\n this.ImageUploadFormControl.setErrors(Validators.required);\r\n this.ImageUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(ItemList);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.group.get(this.options.Name).value;\r\n }\r\n\r\n cropImage() {\r\n let ImageCropperObject = this.angularCropper.cropper.getCroppedCanvas({\r\n width: this.options.ImageCropperWidth,\r\n height: this.options.ImageCropperHeight,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n ImageCropperObject.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getBlobFile(blob);\r\n });\r\n });\r\n }\r\n\r\n getBlobFile(blob) {\r\n let FilesArray = [];\r\n let BlobFile;\r\n let reader = new FileReader();\r\n BlobFile = blob;\r\n reader.readAsDataURL(BlobFile);\r\n reader.onload = () => {\r\n let FileObject: FileDTO = {\r\n FileName: this.EventFile.name,\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n NameWithExtension: this.EventFile.name,\r\n };\r\n BlobFile.name = this.EventFile.name;\r\n\r\n FilesArray.push(FileObject);\r\n this.group.get(this.options.Name).setValue(FileObject);\r\n this.options.Value = FileObject;\r\n this.files = [];\r\n this.files.push(BlobFile);\r\n this.openModal(false);\r\n };\r\n }\r\n\r\n rotateImage(degree: number) {\r\n this.angularCropper.cropper.rotate(degree);\r\n }\r\n moveImage(offsetX: number, offsetY: number) {\r\n this.angularCropper.cropper.move(offsetX, offsetY);\r\n }\r\n zoomImage(ratio: number) {\r\n this.angularCropper.cropper.zoom(ratio);\r\n }\r\n\r\n openModal(open: boolean): void {\r\n this.mdlSampleIsOpen = open;\r\n }\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.ImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ImageUploadFormControl);\r\n };\r\n}\r\n","import { FileDTO } from './FileDTO'\r\n\r\nexport class ProfilePictureDTO\r\n{\r\n ImageID_GUID:string\r\n ImageIDEncrypted:string\r\n FileName:string\r\n MediumPicture:string\r\n SmallPicture:string\r\n Original:string\r\n profilePicture:FileDTO\r\n AvatarPicture:FileDTO\r\n OriginalPicture:FileDTO\r\n FileURL?: string;\r\n}","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n ElementRef,\r\n NgZone,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { FileUploader, FileLikeObject } from 'ng2-file-upload';\r\nimport { FileDTO } from '../../Shared/Models/FileDTO';\r\nimport { CropperComponent } from 'angular-cropperjs';\r\nimport { ProfileImageUploadOptions } from '../../Shared/Models/ProfileImageUploadOptions';\r\nimport { ProfilePictureDTO } from '../../Shared/Models/ProfilePictureDTO';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-ProfileImageUploader',\r\n templateUrl: './ProfileImageUploader.component.html',\r\n})\r\nexport class ProfileImageUploaderComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n\r\n @ViewChild('fileInput', { static: false }) fileInput: ElementRef;\r\n files: File[] = [];\r\n ImageSource: string = './src/assets/images/user.svg';\r\n isSubmitted: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: ProfileImageUploadOptions;\r\n @Output() OnChange = new EventEmitter();\r\n ProfileImageUploadFormControl: AbstractControl;\r\n ValidationMessage = '';\r\n uploader: FileUploader;\r\n hasAnotherDropZoneOver: boolean;\r\n AcceptedType: string = '';\r\n AcceptedTypeArray: string[] = [];\r\n ToolTipTypeArray: string[] = [];\r\n FileLikeObject: FileLikeObject;\r\n ProfilePictureDTO: ProfilePictureDTO;\r\n control: FormControl;\r\n markAllAsTouched: boolean = false;\r\n\r\n @ViewChild('angularCropper', { static: false })\r\n public angularCropper: CropperComponent;\r\n imgUrl = null;\r\n config = null;\r\n imageUrl = '';\r\n imgwUrl = '';\r\n EventFile: any;\r\n mdlSampleIsOpen: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n\r\n constructor(\r\n private zone: NgZone,\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public ProfileImageUploaderControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n ProfileImageUploaderComponent.controlContainerstatic =\r\n this.controlContainer;\r\n this.uploader = new FileUploader({\r\n disableMultipart: false, // 'DisableMultipart' must be 'true' for formatDataFunction to be called.\r\n });\r\n this.hasAnotherDropZoneOver = false;\r\n this.ProfilePictureDTO = new ProfilePictureDTO();\r\n }\r\n\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (\r\n this.options.DefaultImageSrc != null &&\r\n this.options.DefaultImageSrc != ''\r\n )\r\n this.ImageSource = this.options.DefaultImageSrc;\r\n\r\n this.config = {\r\n aspectRatio: 200 / 200,\r\n dragMode: 'move',\r\n background: true,\r\n movable: true,\r\n rotatable: true,\r\n scalable: true,\r\n zoomable: true,\r\n viewMode: 1,\r\n checkImageOrigin: true,\r\n modal: true,\r\n checkCrossOrigin: false,\r\n cropBoxResizable: false,\r\n autoCrop: true,\r\n };\r\n\r\n if (this.options.ImageUploadAcceptsTypes != null) {\r\n this.options.ImageUploadAcceptsTypes;\r\n }\r\n if (this.options.Value != null) {\r\n let imgURL = this.options.Value['fileURL'];\r\n if (imgURL != '' && imgURL != undefined && imgURL != null)\r\n this.ImageSource = imgURL;\r\n\r\n let element = this.options.Value;\r\n this.FileLikeObject = new FileLikeObject({\r\n name: element.FileName,\r\n });\r\n this.uploader.addToQueue([this.FileLikeObject as any]);\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n if (\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0\r\n ) {\r\n for (\r\n let index = 0;\r\n index < this.options.ImageUploadAcceptsTypes.length;\r\n index++\r\n ) {\r\n const Type = this.options.ImageUploadAcceptsTypes[index];\r\n this.AcceptedType =\r\n this.AcceptedType.toUpperCase() + Type.toUpperCase();\r\n }\r\n this.AcceptedTypeArray = this.AcceptedType.split(',');\r\n for (let index = 0; index < this.AcceptedTypeArray.length; index++) {\r\n const element = this.AcceptedTypeArray[index];\r\n const TypeToolTipe = element.split('/')[1];\r\n this.ToolTipTypeArray.push(TypeToolTipe.toUpperCase());\r\n }\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n this.UtilityService.getResourceValue('AllowedTypes') +\r\n ` (${this.ToolTipTypeArray}) `;\r\n }\r\n if (this.options.FileMaxSizeInMB > 0) {\r\n this.ValidationMessage =\r\n this.ValidationMessage +\r\n ` <br /> ${this.UtilityService.getResourceValue('FileMaxSizeInMB')} ${\r\n this.options.FileMaxSizeInMB\r\n }`;\r\n }\r\n if(\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0\r\n ){\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ProfileImageUploadFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n this.ProfileImageUploadFormControl.setValidators(this.validationRules);\r\n this.ProfileImageUploadFormControl.setAsyncValidators(\r\n this.validationRulesasync\r\n );\r\n if (this.options.IsDisabled) {\r\n this.ProfileImageUploadFormControl.disable();\r\n }\r\n\r\n this.ProfileImageUploaderControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(\r\n this.options.AttributeList[index].Key,\r\n this.options.AttributeList[index].value\r\n );\r\n }\r\n }\r\n }\r\n\r\n showImageUploader(element: HTMLElement) {\r\n let input = element.parentElement.parentElement.querySelector(\r\n 'input[type=file]'\r\n ) as HTMLElement;\r\n input.click();\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(\r\n ErrorList,\r\n this.group,\r\n this.options\r\n );\r\n }\r\n\r\n onFileChange(event) {\r\n if (event.rejectedFiles.length > 0) {\r\n const file = event.rejectedFiles[0];\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n if (\r\n this.options.ImageUploadAcceptsTypes != null &&\r\n this.options.ImageUploadAcceptsTypes.length > 0 &&\r\n !(\r\n this.AcceptedTypeArray.includes(fileType.toUpperCase()) ||\r\n this.AcceptedTypeArray.includes(fileType.toLowerCase())\r\n )\r\n ) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({ ToolTipTypeError: this.ToolTipTypeArray });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n }\r\n let FilesArray = [];\r\n for (let index = 0; index < event.addedFiles.length; index++) {\r\n const file = event.addedFiles[0];\r\n this.EventFile = file;\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n if (file) {\r\n const maxFileSize = this.options.FileMaxSizeInMB * 1000 * 1000;\r\n const fileType = file.type;\r\n if (file.size > maxFileSize) {\r\n const formControl = this.ProfileImageUploadFormControl;\r\n formControl.setErrors({\r\n FileMaxSizeInMB: this.options.FileMaxSizeInMB + 'M',\r\n });\r\n formControl.markAsTouched();\r\n this.uploader.queue = [];\r\n return;\r\n }\r\n let reader = new FileReader();\r\n let FileObject = file;\r\n reader.readAsDataURL(FileObject);\r\n reader.onload = () => {\r\n this.imageUrl = reader.result.toString();\r\n this.openModal(true);\r\n let originalValue = this.group.get(this.options.Name).value;\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.group.get(this.options.Name).valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value = originalValue;\r\n this.OnChange.emit(originalValue);\r\n };\r\n }\r\n }\r\n }\r\n removeFromControlValue(event) {\r\n let ItemList = this.group.get(this.options.Name).value;\r\n this.files.splice(this.files.indexOf(event), 1);\r\n ItemList = [];\r\n if (this.files.length == 0 && this.options.IsRequired) {\r\n this.ProfileImageUploadFormControl.markAsTouched();\r\n this.ProfileImageUploadFormControl.setErrors(Validators.required);\r\n this.ProfileImageUploadFormControl.invalid;\r\n }\r\n this.group.get(this.options.Name).setValue(ItemList);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n this.options.Value = this.group.get(this.options.Name).value;\r\n }\r\n cropImage() {\r\n this.ProfilePictureDTO.FileName = this.EventFile.name;\r\n let Cropper = this.angularCropper.cropper;\r\n let profilePicturCropper = Cropper.getCroppedCanvas({\r\n width: 400,\r\n height: 400,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n let AvatarPictureCropper = Cropper.getCroppedCanvas({\r\n width: 100,\r\n height: 100,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n let OriginalPictureCropper = Cropper.getCroppedCanvas({\r\n width: 700,\r\n height: 700,\r\n imageSmoothingEnabled: false,\r\n imageSmoothingQuality: 'high',\r\n });\r\n profilePicturCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'profilePicturCropper');\r\n });\r\n });\r\n AvatarPictureCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'AvatarPictureCropper');\r\n });\r\n });\r\n OriginalPictureCropper.toBlob((blob) => {\r\n this.zone.run(() => {\r\n this.getProfileImageBlobFile(blob, 'OriginalPictureCropper');\r\n });\r\n });\r\n\r\n this.files = [];\r\n\r\n this.openModal(false);\r\n }\r\n getProfileImageBlobFile(blob, type) {\r\n let FilesArray = [];\r\n let BlobFile;\r\n let reader = new FileReader();\r\n BlobFile = blob;\r\n reader.readAsDataURL(BlobFile);\r\n reader.onload = () => {\r\n let FileObject: FileDTO;\r\n switch (type) {\r\n case 'profilePicturCropper':\r\n BlobFile.name = this.EventFile.name + 'MediumPicture';\r\n FileObject = {\r\n FileName: this.EventFile.name + 'MediumPicture',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.profilePicture = FileObject;\r\n this.ProfilePictureDTO.MediumPicture =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n this.files.push(BlobFile);\r\n break;\r\n case 'AvatarPictureCropper':\r\n FileObject = {\r\n FileName: this.EventFile.name + 'SmallPicture',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.AvatarPicture = FileObject;\r\n this.ProfilePictureDTO.SmallPicture =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n break;\r\n\r\n case 'OriginalPictureCropper':\r\n FileObject = {\r\n FileName: this.EventFile.name + 'Original',\r\n FileType: this.EventFile.type,\r\n FileBase64: reader.result.toString().split(',')[1],\r\n FileSizeInMB: BlobFile.size / 1000 / 1000,\r\n };\r\n this.ProfilePictureDTO.OriginalPicture = FileObject;\r\n this.ProfilePictureDTO.Original =\r\n FileObject.FileName + ',' + FileObject.FileBase64;\r\n this.group.get(this.options.Name).setValue(this.ProfilePictureDTO);\r\n this.OnChange.emit(this.group.get(this.options.Name).value);\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.options.Value = this.ProfilePictureDTO;\r\n };\r\n }\r\n\r\n rotateImage(degree: number) {\r\n this.angularCropper.cropper.rotate(degree);\r\n }\r\n moveImage(offsetX: number, offsetY: number) {\r\n this.angularCropper.cropper.move(offsetX, offsetY);\r\n }\r\n zoomImage(ratio: number) {\r\n this.angularCropper.cropper.zoom(ratio);\r\n }\r\n\r\n openModal(open: boolean): void {\r\n this.mdlSampleIsOpen = open;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.ProfileImageUploadFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ProfileImageUploadFormControl);\r\n };\r\n}\r\n","export class AutocompleteDTO\r\n{\r\n key: string=\"\";\r\n value: string = \"\";\r\n image: string = \"\";\r\n \r\n}\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter, Attribute } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { AutocompleteOptions } from '../../Shared/Models/AutocompleteOptions';\r\nimport { AutocompleteDTO } from '../../Shared/Models/AutocompleteDTO';\r\nimport { noop, Observable, Observer, of } from 'rxjs';\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-AutocompleteTextBox',\r\n templateUrl: './AutocompleteTextBox.component.html'\r\n})\r\nexport class AutocompleteTextBoxComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private http: HttpClient, private ErrorHandler: ErrorMassageValidation, private requestHandlerService: RequestHandlerService,\r\n private controlUtility: ControlUtility, @Optional() private controlContainer:\r\n ControlContainer, public AutocompleteTextBoxControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n AutocompleteTextBoxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: AutocompleteOptions;\r\n @Output() OnChange = new EventEmitter();\r\n keyword: string = 'value'\r\n AutocompleteTextBoxControl: AbstractControl;\r\n Search: string = ''\r\n Key: string = ''\r\n\r\n Api: string = 'http';\r\n Value: string = 'value'\r\n NewSelectionValidationKey: string = '';\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n dataSource: Observable<any>;\r\n suggestions$: Observable<any[]>;\r\n errorMessage: string;\r\n dataList: any[] = [];\r\n SelectedValue: string = \"\"\r\n avatarImage: string = \"./src/assets/images/userimg.png\";\r\n textDir;\r\n\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.AutocompleteTextBoxControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n // this.AutocompleteTextBoxControl.setValue(this.options.Value);\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.AutocompleteTextBoxControl.setValidators(this.validationRules);\r\n this.AutocompleteTextBoxControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.AutocompleteTextBoxControl.disable();\r\n }\r\n\r\n\r\n if (this.options.SelectedValue != undefined && this.options.SelectedValue != null) {\r\n this.SelectedValue = this.options.SelectedValue;\r\n }\r\n\r\n\r\n this.AutocompleteTextBoxControlHost.ngSubmit.subscribe((value) => {\r\n if (this.AutocompleteTextBoxControl.value == this.Search && this.options.AllowNewSelection == false) {\r\n this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n this.AutocompleteTextBoxControl.markAsTouched();\r\n this.AutocompleteTextBoxControl.invalid;\r\n }\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.options.ValidationToken\r\n }),\r\n };\r\n\r\n\r\n\r\n\r\n this.suggestions$ = new Observable((observer: Observer<string>) => {\r\n observer.next(this.Search);\r\n }).pipe(\r\n switchMap((query: string) => {\r\n if (query) {\r\n let params = new HttpParams();\r\n params = params.append(this.options.QueryParam, query);\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n // using github public api to get users by name\r\n return this.requestHandlerService.get(this.options.ActionURL, params, null, requestOptionsModel)\r\n .pipe(\r\n map((data) => data as Attribute[] || []),\r\n tap(() => noop, err => {\r\n // in case of http error\r\n this.errorMessage = err && err.message || 'Something goes wrong';\r\n })\r\n );\r\n }\r\n\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n\r\n getErrorValidation(ErrorList) {\r\n\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n\r\n selectEvent(item) {\r\n\r\n if (this.options.AllowNewSelection == true) {\r\n if (typeof (item) == 'object') {\r\n this.AutocompleteTextBoxControl.setValue(item);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n }\r\n else {\r\n let AutocompleteModel = new AutocompleteDTO();\r\n AutocompleteModel.value = item;\r\n this.AutocompleteTextBoxControl.setValue(AutocompleteModel);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n }\r\n }\r\n else {\r\n if (this.AutocompleteTextBoxControl.value == item.value) {\r\n this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n this.AutocompleteTextBoxControl.markAsTouched();\r\n this.AutocompleteTextBoxControl.invalid;\r\n return;\r\n }\r\n else {\r\n this.AutocompleteTextBoxControl.setValue(item);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n let originalValue = this.AutocompleteTextBoxControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n\r\n }\r\n }\r\n\r\n // move this line here to emit value no matter is from database or not \r\n this.OnChange.emit(this.AutocompleteTextBoxControl.value)\r\n //Use this line to enable two way binding.\r\n this.options.Value = this.AutocompleteTextBoxControl.value;\r\n }\r\n\r\n async onChangeSearch(search: string) {\r\n if (this.options.MaxLength && search.length > this.options.MaxLength) {\r\n const formControl = this.AutocompleteTextBoxControl;\r\n formControl.setErrors({ errorMassage: this.UtilityService.getResourceValue(\"MaxLenghtValidationKey\") + \" \" + this.options.MaxLength });\r\n formControl.markAsTouched();\r\n return;\r\n }\r\n this.Search = search;\r\n this.SelectedValue = \"\";\r\n await this.suggestions$.subscribe((result) => {\r\n if ((result == null || result.length == 0 || result.length == 0) && this.options.AllowNewSelection == true) {\r\n this.dataList = [\r\n {\r\n key: 0,\r\n value: this.Search\r\n }\r\n ]\r\n }\r\n else {\r\n this.dataList = result\r\n }\r\n })\r\n }\r\n\r\n onInputCleared() {\r\n this.AutocompleteTextBoxControl.setValue(null);\r\n this.OnChange.emit(null);\r\n this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n }\r\n // onFocused(e) {\r\n // // do something\r\n // }\r\n\r\n\r\n // onBlur(Value) {\r\n // if (this.options.AllowNewSelection == true) {\r\n\r\n // if (typeof (Value) == 'object') {\r\n // this.AutocompleteTextBoxControl.setValue(Value);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n\r\n // }\r\n // else {\r\n // let AutocompleteModel = new AutocompleteDTO();\r\n // AutocompleteModel.value = Value;\r\n // let model = new TypeaheadMatch(AutocompleteModel,Value);\r\n // this.AutocompleteTextBoxControl.setValue(model);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n\r\n // }\r\n // }\r\n\r\n // else {\r\n\r\n // if (this.AutocompleteTextBoxControl.value == Value) {\r\n // this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });\r\n // this.AutocompleteTextBoxControl.markAsTouched();\r\n // this.AutocompleteTextBoxControl.invalid;\r\n // return;\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n // handleResultSelected(result) {\r\n\r\n // this.AutocompleteTextBoxControl.setValue(result);\r\n // this.AutocompleteTextBoxControl.updateValueAndValidity()\r\n // this.OnChange.emit(this.AutocompleteTextBoxControl.value)\r\n // this.Search = this.AutocompleteTextBoxControl.value.value\r\n\r\n\r\n\r\n // }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.AutocompleteTextBoxControl)\r\n }\r\n\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, DoCheck, Optional, Output, EventEmitter, OnDestroy, OnChanges, SimpleChanges, SimpleChange, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { TagsInputOptions } from '../../Shared/Models/TagsInputOptions';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { EMPTY, Observable, Subscription } from 'rxjs';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-TagsInput',\r\n templateUrl: './TagsInput.component.html'\r\n})\r\nexport class TagsInputComponent implements OnInit, OnDestroy {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private http: HttpClient, private controlUtility: ControlUtility, private requestHandlerService: RequestHandlerService, @Optional() private controlContainer: ControlContainer, public TagsInputControlHost: FormGroupDirective,\r\n private UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n TagsInputComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n\r\n @Input() group: FormGroup;\r\n @Input() options: TagsInputOptions;\r\n @Output() OnChange = new EventEmitter();\r\n @ViewChild('SearchKey', { static: false }) SearchKey: any;\r\n\r\n // TagInputControl: AbstractControl;\r\n SelectedId: any[] = []\r\n tags = [];\r\n NewSelectionValidationKey: string = \"\";\r\n TagsFormGroup: FormGroup;\r\n TagsFormControl: AbstractControl\r\n IsNoMatch: any;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n changeValueSubscription: Subscription;\r\n SearchResultHasItems: boolean = false;\r\n textDir;\r\n static showErrorOfInputs(errors: any) {\r\n const controlContainerstatic = TagsInputComponent.controlContainerstatic;\r\n const formGroup = controlContainerstatic.control as FormGroup;\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const formControl = formGroup.get(key) as FormControl;\r\n formControl.setErrors({ \"FluentApi\": iterator });\r\n formControl.markAsTouched();\r\n }\r\n }\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n if (this.changeValueSubscription)\r\n this.changeValueSubscription.unsubscribe();\r\n }\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value)\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.options.DatasourceItemText = this.options.DatasourceItemText.toLowerCase();\r\n this.TagsFormGroup = new FormGroup({});;\r\n this.TagsFormGroup.addControl(\"tags\", new FormControl(''));\r\n this.TagsFormControl = this.TagsFormGroup.controls[\"tags\"]; // new FormControl('',validationRules);\r\n this.group.addControl(this.options.Name, this.TagsFormControl);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n if (!this.options.NoResultText)\r\n this.options.NoResultText = this.UtilityService.getResourceValue(\"NoItemsMatch\");\r\n\r\n // this.group.addControl(this.options.Name, new FormControl(''));\r\n // this.TagInputControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n this.TagsFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n this.TagsFormControl.setValidators(this.validationRules);\r\n this.TagsFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TagsFormControl.disable();\r\n }\r\n\r\n if (this.options.Value != undefined && this.options.Value.length > 0) {\r\n for (let index = 0; index < this.options.Value.length; index++) {\r\n const element = this.options.Value[index];\r\n this.SelectedId.push(element.id);\r\n }\r\n this.tags = this.options.Value\r\n this.TagsFormControl.setValue(this.options.Value);\r\n }\r\n\r\n this.TagsInputControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n });\r\n //Check for changing in value\r\n this.changeValueSubscription = this.TagsFormControl.valueChanges.subscribe(c => {\r\n this.tags = this.TagsFormControl.value;\r\n this.SelectedId = this.tags?.filter(item => item.id).map(item => item.id);\r\n if (this.tags == null) {\r\n this.SearchKey.selected = \"\";\r\n this.tags = [];\r\n this.TagsFormControl.setValue([])\r\n }\r\n });\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n }\r\n let inputElement = document.getElementById(this.options.Name).getElementsByTagName(\"input\")[0]\r\n inputElement.setAttribute(\"autocomplete\", \"off\")\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement)\r\n }\r\n\r\n searchFunctionFactory(Text: any): Observable<object> {\r\n //If no text then return empty observable\r\n if (!Text)\r\n return EMPTY;\r\n\r\n let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${encodeURIComponent(Text)}&${this.options.SelectedItemsParamName}=${this.SelectedId}`\r\n if (this.options.ExtraFilters)\r\n Url = Url + `&${this.options.ExtraFilters}`\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n let Model = this.requestHandlerService.get(Url, null, null, requestOptionsModel);\r\n return Model as any;\r\n }\r\n\r\n AddTag(event, key) {\r\n //Check if input is yab press\r\n if (event.key === \"Tab\")\r\n return;\r\n //Check if input is enter press\r\n if (this.IsNoMatch == true && event.key == \"Enter\" && this.options.AllowNewSelection && key.selected) {\r\n if (!(this.tags.length >= this.options.MaxNumberTags)) {\r\n this.tags.push({ name: key.selected });\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.group.get(this.options.Name).markAllAsTouched();\r\n this.group.updateValueAndValidity();\r\n if (this.group.get(this.options.Name).valid) {\r\n key.selected = null;\r\n return;\r\n }\r\n else\r\n this.tags.pop();\r\n }\r\n }\r\n //Check if input is charachter\r\n else if (String.fromCharCode(event.keyCode).match(/(\\w|\\s)/g)) {\r\n if (this.IsNoMatch && !this.options.AllowNewSelection && key.selected) {\r\n this.TagsFormControl.setErrors({ \"errorMassage\": this.options.NoResultText });\r\n this.TagsFormControl.markAsTouched();\r\n }\r\n else if (this.IsNoMatch == false && this.options.AllowNewSelection == false) {\r\n this.TagsFormControl.clearValidators();\r\n this.TagsFormControl.updateValueAndValidity();\r\n }\r\n }\r\n //Remove unmatched error incase of deleting search value\r\n else if (event.key === \"Backspace\" && key.selected?.length <= 1 && this.TagsFormControl.hasError('errorMassage')) {\r\n this.TagsFormControl.setErrors({ \"errorMassage\": null });\r\n this.TagsFormControl.updateValueAndValidity();\r\n if (this.SelectedId?.length == 0 && this.options.IsRequired) {\r\n this.TagsFormControl.setErrors({ required: \"\" });\r\n this.TagsFormControl.markAsTouched();\r\n }\r\n }\r\n }\r\n\r\n onTagsChanged(result) {\r\n //console.log(this.tags)\r\n if (result[\"change\"] == \"add\") {\r\n this.SelectedId.push(result.tag.id);\r\n }\r\n if (result[\"change\"] == \"remove\") {\r\n this.SelectedId = this.SelectedId.filter((item) => item != result.tag.id);\r\n if (this.SelectedId.length == 0 && this.options.IsRequired == true) {\r\n this.TagsFormControl.setErrors({ required: \"\" });\r\n this.TagsFormControl.markAsTouched();\r\n this.TagsFormControl.invalid;\r\n }\r\n }\r\n let originalValue = this.TagsFormControl.value.map(function (a) { return a.id; });\r\n if (this.options.PatchFunction && this.options.PatchPath && this.TagsFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);\r\n }\r\n this.options.Value = this.tags\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.TagsFormControl.updateValueAndValidity();\r\n this.group.updateValueAndValidity();\r\n this.OnChange.emit(originalValue);\r\n }\r\n\r\n onNoOptionsMatch(event) {\r\n this.IsNoMatch = event;\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.TagsFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.TagsFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.TagsFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.TagsFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TagsFormControl)\r\n }\r\n\r\n onTagsInputBlur(SearchKey) {\r\n if (SearchKey.selected && this.options.AllowNewSelection && this.IsNoMatch && this.tags.length < this.options.MaxNumberTags) {\r\n this.tags.push({ name: SearchKey.selected });\r\n this.group.get(this.options.Name).setValue(this.tags);\r\n this.group.get(this.options.Name).markAllAsTouched();\r\n this.group.updateValueAndValidity();\r\n if (this.group.get(this.options.Name).valid) {\r\n SearchKey.selected = null;\r\n return;\r\n }\r\n else\r\n this.tags.pop();\r\n }\r\n }\r\n getTagsValue() {\r\n if (this.tags.length > 0)\r\n return this.tags.map(item => item.name)\r\n }\r\n\r\n}\r\n","export class PagingDTO{\r\n constructor(){\r\n\r\n }\r\n TotalCount:number=0\r\n PageCount:number=10\r\n CurrentPageNumber:number=1\r\n IsFilterUpdated:boolean=false\r\n Skip:number=0\r\n Take:number=0\r\n DevMode:boolean=true\r\n AddedItemsCount:number=0\r\n}","\r\nexport enum FilterType {\r\n TextBox = 1,\r\n DropdownList = 2,\r\n AutocompleteTextBox = 3,\r\n DatePicker = 4,\r\n TagInput = 5,\r\n CheckBox = 6,\r\n Other=7\r\n}","import { Component, OnInit, Output, EventEmitter, Input, SimpleChanges, ElementRef, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { PagingDTO } from '../../Shared/Models/PagingDTO';\r\nimport { PagingOptions } from '../../Shared/Models/PagingOptions';\r\nimport { RequestOptions, ResponseContentType, Headers } from '@angular/http';\r\nimport { Subject, Observable, Subscription } from 'rxjs';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { OnPagingFiltersChangeService } from '../../Shared/services/OnPagingFiltersChange.service';\r\nimport { FilterType } from '../../Shared/Enums/FilterType';\r\nimport { RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { plainToClass } from 'class-transformer';\r\nimport { PagingPayload } from '../../Shared/Models/PagingPayload';\r\n\r\n// tslint:disable-next-line: no-conflicting-lifecycle\r\n@Component({\r\n selector: 'BBSF-Paging',\r\n templateUrl: './Paging.component.html'\r\n})\r\nexport class PagingComponent<T> implements OnInit, OnDestroy {\r\n\r\n items = [];\r\n pageOfItems: Array<any>;\r\n result: T[] = [];\r\n pagerConfig: any = null;\r\n totalRow: any = 0;\r\n pageSize: any = 10\r\n Pages: any = 0\r\n pagesText: string;\r\n itemsText: string;\r\n CurrentPage: any = 1\r\n ShowPageSizeOption = true;\r\n ShowFirstAndLast = true;\r\n hidePaginationWhenPageSizeEqualOne = true\r\n Sum = 0;\r\n Throttle = 300;\r\n ScrollDistance = 1;\r\n ScrollUpDistance = 2;\r\n direction = '';\r\n Headers: HttpHeaders;\r\n IsFirstCall: boolean = true;\r\n @Output() Items: EventEmitter<T[]> = new EventEmitter<T[]>();\r\n @Input() options: PagingOptions;\r\n @Input() group: FormGroup;\r\n subscriptions = new Subscription();\r\n\r\n constructor(public utilityService: UtilityService, private http: HttpClient, private router: Router, private onChangeService: OnPagingFiltersChangeService, private requestHandlerService: RequestHandlerService) {\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe()\r\n }\r\n\r\n ngOnInit() {\r\n if (this.options.IsLoadMoreControl)\r\n this.Sum = this.options.PageSize;\r\n\r\n if (this.options.DropdownFiltersControlNames != null && this.options.DropdownFiltersControlNames.length > 0) {\r\n const DropdownFiltersControlNames = this.options.DropdownFiltersControlNames;\r\n this.subscriptions.add(\r\n this.onChangeService.GetValue().subscribe((value) => {\r\n let result = this.options.DropdownFiltersControlNames.filter((item) => item == value)\r\n if (result.length > 0) {\r\n this.IsFirstCall = true;\r\n this.CurrentPage = 1;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }))\r\n }\r\n\r\n if (this.options.BootstrapDatePickersFiltersControlNames != null && this.options.BootstrapDatePickersFiltersControlNames.length > 0) {\r\n const BootstrapDatePickersFiltersControlNames = this.options.BootstrapDatePickersFiltersControlNames;\r\n this.subscriptions.add(this.onChangeService.GetValue().subscribe((value) => {\r\n let result = this.options.BootstrapDatePickersFiltersControlNames.filter((item) => item == value)\r\n if (result.length > 0) {\r\n this.IsFirstCall = true;\r\n this.CurrentPage = 1;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }))\r\n }\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n ngAfterViewInit(): void {\r\n\r\n if (this.options.OnClickFiltersControlNames != null && this.options.OnClickFiltersControlNames.length > 0) {\r\n const OnClickFiltersControlNames = this.options.OnClickFiltersControlNames;\r\n for (let index = 0; index < OnClickFiltersControlNames.length; index++) {\r\n const OnClickFiltersControlName = OnClickFiltersControlNames[index];\r\n document.getElementById(OnClickFiltersControlName).addEventListener(\"click\", () => {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }, false);\r\n }\r\n }\r\n if (this.options.OnKeyPressFiltersControlNames != null && this.options.OnKeyPressFiltersControlNames.length > 0) {\r\n const OnKeyPressFiltersControlNames = this.options.OnKeyPressFiltersControlNames;\r\n for (let index = 0; index < OnKeyPressFiltersControlNames.length; index++) {\r\n const OnKeyPressFiltersControlName = OnKeyPressFiltersControlNames[index];\r\n let element = (<any>this.group.get(OnKeyPressFiltersControlName)).nativeElement as HTMLElement;\r\n element.addEventListener(\"keypress\", (e) => {\r\n if (e.key == \"Enter\") {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }, false);\r\n }\r\n }\r\n //Add click event on Reset Filter button\r\n if (this.options.ResetFilterButtonName != null) {\r\n const button = document.getElementsByName(this.options.ResetFilterButtonName)[0];\r\n if (button != undefined) {\r\n let element = button as HTMLElement;\r\n element.addEventListener(\"click\", (e) => {\r\n this.clearFilters();\r\n }, false);\r\n }\r\n }\r\n if (this.options.TypeaheadSearchControlNames != null && this.options.TypeaheadSearchControlNames.length > 0) {\r\n const TypeaheadSearchControlNames = this.options.TypeaheadSearchControlNames;\r\n for (let index = 0; index < TypeaheadSearchControlNames.length; index++) {\r\n const TypeaheadSearchControlName = TypeaheadSearchControlNames[index];\r\n document.getElementById(TypeaheadSearchControlName).addEventListener(\"keypress\", (e) => {\r\n if (e.key == \"Enter\") {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }, false);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n onDropDownChange(result) {\r\n if (result) {\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n }\r\n\r\n onChangePage(Page) {\r\n if (Page == 0)\r\n return;\r\n if (Page > 0) {\r\n if (this.IsFirstCall) {\r\n this.IsFirstCall = false;\r\n return;\r\n }\r\n this.CurrentPage = Page;\r\n this.getItemList(Page);\r\n }\r\n }\r\n changePageSize(e) {\r\n this.options.PageSize = e.target.value;\r\n this.CurrentPage = 1;\r\n this.IsFirstCall = true;\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n\r\n\r\n\r\n\r\n onScrollDown() {\r\n this.Sum += this.options.PageSize\r\n this.CurrentPage = 1\r\n this.IsFirstCall = true;\r\n this.direction = 'down';\r\n this.getItemList(this.CurrentPage, true);\r\n }\r\n\r\n\r\n\r\n getItemList(page, IsFilterUpdated = false) {\r\n if (this.options.StartPagingCallback)\r\n this.options.StartPagingCallback.call(null);\r\n\r\n let pagingDTO = new PagingDTO();\r\n let size = Number.parseInt(this.options.PageSize.toString());\r\n if (this.options.IsLoadMoreControl)\r\n pagingDTO.PageCount = this.Sum;\r\n else\r\n pagingDTO.PageCount = size;\r\n\r\n pagingDTO.CurrentPageNumber = page;\r\n pagingDTO.TotalCount = this.totalRow;\r\n pagingDTO.IsFilterUpdated = IsFilterUpdated;\r\n let filters = {};\r\n filters = this.getFiltersValue();\r\n\r\n //Set Filters object that sent to action URL\r\n let filtersDTO: PagingPayload = {\r\n PagingDTO: pagingDTO,\r\n Filters: filters\r\n };\r\n\r\n let requestOptions = new RequestOptionsModel();\r\n requestOptions.disableBlockUI = this.options.DisableBlockUI;\r\n this.requestHandlerService.post(this.options.ActionPostURL, this.options.Filters && this.options.Filters.length > 0 ? filtersDTO : pagingDTO, null, null, requestOptions)\r\n .subscribe((responseData: any) => {\r\n this.result = responseData.items //this.castItems(responseData.items);\r\n let castedResult = plainToClass(this.options.TypeOfResponse, this.result, { excludeExtraneousValues: true })\r\n this.Items.emit(castedResult);\r\n this.totalRow = responseData.totalCount;\r\n\r\n if (IsFilterUpdated) {\r\n this.items = [];\r\n this.Pages = Math.ceil((this.totalRow / this.options.PageSize));\r\n this.items = Array(this.totalRow);\r\n\r\n this.setText(this.Pages, this.totalRow);\r\n\r\n }\r\n }, (error: HttpErrorResponse) => {\r\n if (error.status == 401)\r\n this.router.navigate([\"/Admin/account/login\"])\r\n });\r\n }\r\n\r\n ReinitializePaging = () => {\r\n this.IsFirstCall = true;\r\n this.getItemList(1, true);\r\n }\r\n\r\n UpdatePaging = () => {\r\n //this.IsFirstCall=true;\r\n this.getItemList(this.CurrentPage);\r\n }\r\n\r\n castItems(objectArr: any[]): T[] {\r\n let originalArray: T[] = []\r\n for (let index = 0; index < objectArr.length; index++) {\r\n const element = objectArr[index];\r\n let key, keys = Object.keys(element);\r\n let n = keys.length;\r\n let newObject = {}\r\n while (n--) {\r\n key = keys[n];\r\n let Okey = key\r\n newObject[key.charAt(0).toUpperCase() + Okey.slice(1)] = element[key];\r\n }\r\n let finalObject = newObject as T\r\n originalArray.push(finalObject)\r\n }\r\n\r\n return originalArray;\r\n }\r\n\r\n setText(pagesNumber: number, itemsNumber: number) {\r\n if (this.utilityService.isCurrentLanguageArabic()) {\r\n //Set pages text\r\n if (pagesNumber < 3 || pagesNumber > 10)\r\n this.pagesText = this.utilityService.getResourceValue(\"Page\");\r\n else\r\n this.pagesText = this.utilityService.getResourceValue(\"Pages\");\r\n //Set items text\r\n if (itemsNumber < 3 || itemsNumber > 10)\r\n this.itemsText = this.utilityService.getResourceValue(\"Item\");\r\n else\r\n this.itemsText = this.utilityService.getResourceValue(\"Items\");\r\n }\r\n else {\r\n //Set pages text\r\n if (pagesNumber > 1)\r\n this.pagesText = this.utilityService.getResourceValue(\"Pages\");\r\n else\r\n this.pagesText = this.utilityService.getResourceValue(\"Page\");\r\n //Set items text\r\n if (itemsNumber > 1)\r\n this.itemsText = this.utilityService.getResourceValue(\"Items\");\r\n else\r\n this.itemsText = this.utilityService.getResourceValue(\"Item\");\r\n }\r\n }\r\n\r\n clearFilters() {\r\n if (this.options.Filters != null && this.options.Filters != []) {\r\n for (let index = 0; index < this.options.Filters.length; index++) {\r\n if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != \"\") {\r\n const FormControlName = this.options.Filters[index].FormControlName;\r\n this.group.controls[FormControlName].setValue(null);\r\n }\r\n }\r\n this.ReinitializePaging();\r\n }\r\n }\r\n\r\n getFiltersValue() {\r\n let filters = {};\r\n if (this.options.Filters != null && this.options.Filters != []) {\r\n for (let index = 0; index < this.options.Filters.length; index++) {\r\n if (this.options.Filters[index].FormControlName != null && this.options.Filters[index].FormControlName != \"\") {\r\n const FormControlName = this.options.Filters[index].FormControlName;\r\n let ControlValue = this.group.controls[FormControlName].value;\r\n if (ControlValue != undefined && ControlValue != null && ControlValue != \"\") {\r\n if (this.options.Filters[index].FilterType == FilterType.DatePicker) {\r\n //if (Array.isArray(ControlValue)) {\r\n // for (let element = 0; element < ControlValue.length; element++) {\r\n // const value = ControlValue[element];\r\n // filters[this.options.Filters[index].ActionParameterName] = value;\r\n // }\r\n //}\r\n //else {\r\n filters[this.options.Filters[index].ActionParameterName] = ControlValue;\r\n //}\r\n }\r\n else {\r\n if (this.options.Filters[index].FilterType == FilterType.AutocompleteTextBox)\r\n ControlValue = ControlValue;\r\n if (this.options.Filters[index].FilterType == FilterType.TagInput)\r\n ControlValue = ControlValue;\r\n\r\n filters[this.options.Filters[index].ActionParameterName] = ControlValue;\r\n }\r\n }\r\n else {\r\n filters[this.options.Filters[index].ActionParameterName] = null;\r\n }\r\n }\r\n else {\r\n const ElementjQuerySelector = this.options.Filters[index].jQuerySelector;\r\n let ElementValue = (document.querySelector(ElementjQuerySelector) as HTMLInputElement).value;\r\n if (ElementValue != undefined && ElementValue != null)\r\n filters[this.options.Filters[index].ActionParameterName] = ElementValue;\r\n else\r\n filters[this.options.Filters[index].ActionParameterName] = null;\r\n }\r\n }\r\n }\r\n return filters;\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'jw-pagination',\r\n template: `\r\n <ul *ngIf=\"pager.pages && pager.pages.length\" class=\"pagination\">\r\n <li *ngIf=\"ShowFirstAndLast\" [ngClass]=\"{disabled:pager.currentPage === 1}\" class=\"page-item first-item\">\r\n <a (click)=\"setPage(1)\" class=\"page-link\">❮❮</a>\r\n </li>\r\n <li [ngClass]=\"{disabled:pager.currentPage === 1}\" class=\"page-item previous-item\">\r\n <a (click)=\"setPage(pager.currentPage - 1)\" class=\"page-link\">❮</a>\r\n </li>\r\n <li *ngFor=\"let page of pager.pages\" [ngClass]=\"{active:pager.currentPage === page}\" class=\"page-item number-item\">\r\n <a (click)=\"setPage(page)\" class=\"page-link\">{{page}}</a>\r\n </li>\r\n <li [ngClass]=\"{disabled:pager.currentPage === pager.totalPages}\" class=\"page-item next-item\">\r\n <a (click)=\"setPage(pager.currentPage + 1)\" class=\"page-link\">❯</a>\r\n </li>\r\n <li *ngIf=\"ShowFirstAndLast\" [ngClass]=\"{disabled:pager.currentPage === pager.totalPages}\" class=\"page-item last-item\">\r\n <a (click)=\"setPage(pager.totalPages)\" class=\"page-link\">❯❯</a>\r\n </li>\r\n</ul>\r\n`\r\n})\r\n\r\nexport class JwPaginationComponent implements OnInit, OnChanges {\r\n @Input() items: Array<any>;\r\n @Output() changePage = new EventEmitter();\r\n @Input() initialPage = 1;\r\n @Input() pageSize = 10;\r\n @Input() maxPages = 10;\r\n @Input() ShowFirstAndLast = false;\r\n\r\n\r\n pager: any = {};\r\n\r\n ngOnInit() {\r\n // set page if items array isn't empty\r\n if (this.items && this.items.length) {\r\n this.setPage(this.initialPage);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items.firstChange)\r\n return\r\n // reset page if items array has changed\r\n if (changes.items.currentValue !== changes.items.previousValue) {\r\n this.setPage(this.initialPage);\r\n }\r\n }\r\n\r\n setPage(page: number) {\r\n // get new pager object for specified page\r\n this.pager = this.paginate(this.items.length, page, this.pageSize, this.maxPages);\r\n\r\n // get new page of items from items array\r\n var pageOfItems = this.items.slice(this.pager.startIndex, this.pager.endIndex + 1);\r\n\r\n // call change page function in parent component\r\n this.changePage.emit(this.pager.currentPage);\r\n }\r\n\r\n paginate(totalItems, currentPage, pageSize, maxPages) {\r\n if (currentPage === void 0) { currentPage = 1; }\r\n if (pageSize === void 0) { pageSize = 10; }\r\n if (maxPages === void 0) { maxPages = 10; }\r\n // calculate total pages\r\n var totalPages = Math.ceil(totalItems / pageSize);\r\n // ensure current page isn't out of range\r\n if (currentPage < 1) {\r\n currentPage = 1;\r\n }\r\n else if (currentPage > totalPages) {\r\n currentPage = totalPages;\r\n }\r\n var startPage, endPage;\r\n if (totalPages <= maxPages) {\r\n // total pages less than max so show all pages\r\n startPage = 1;\r\n endPage = totalPages;\r\n }\r\n else {\r\n // total pages more than max so calculate start and end pages\r\n var maxPagesBeforeCurrentPage = Math.floor(maxPages / 2);\r\n var maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1;\r\n if (currentPage <= maxPagesBeforeCurrentPage) {\r\n // current page near the start\r\n startPage = 1;\r\n endPage = maxPages;\r\n }\r\n else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {\r\n // current page near the end\r\n startPage = totalPages - maxPages + 1;\r\n endPage = totalPages;\r\n }\r\n else {\r\n // current page somewhere in the middle\r\n startPage = currentPage - maxPagesBeforeCurrentPage;\r\n endPage = currentPage + maxPagesAfterCurrentPage;\r\n }\r\n }\r\n // calculate start and end item indexes\r\n var startIndex = (currentPage - 1) * pageSize;\r\n var endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);\r\n // create an array of pages to ng-repeat in the pager control\r\n var pages = Array.from(Array((endPage + 1) - startPage).keys()).map(function (i) { return startPage + i; });\r\n // return object with all pager properties required by the view\r\n return {\r\n totalItems: totalItems,\r\n currentPage: currentPage,\r\n pageSize: pageSize,\r\n totalPages: totalPages,\r\n startPage: startPage,\r\n endPage: endPage,\r\n startIndex: startIndex,\r\n endIndex: endIndex,\r\n pages: pages\r\n };\r\n }\r\n\r\n}","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { RadioButtonOptions } from '../../Shared/Models/RadioButtonOptions';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-RadioButton',\r\n templateUrl: './RadioButton.component.html'\r\n})\r\nexport class RadioButtonComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public RadioButtonControlHost: FormGroupDirective, private UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n RadioButtonComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: RadioButtonOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n RadioButtonFormControl: AbstractControl;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n ngOnInit() {\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.RadioButtonFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n this.RadioButtonFormControl.setValidators(this.validationRules);\r\n this.RadioButtonFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.RadioButtonFormControl.disable();\r\n }\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n\r\n this.RadioButtonControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n if (this.options.Value) {\r\n this.RadioButtonFormControl.setValue(this.options.Value.Value);\r\n }\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n onValueChanged() {\r\n let originalValue = this.RadioButtonFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.RadioButtonFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value= originalValue;\r\n this.OnChange.emit(originalValue)\r\n }\r\n\r\n getSelectedItemValue(value)\r\n {\r\n return this.options.Items.filter(item=>item.Value==value)[0].Text\r\n }\r\n\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.RadioButtonFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.RadioButtonFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.RadioButtonFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.RadioButtonFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.RadioButtonFormControl)\r\n }\r\n}\r\n\r\n\r\n","export enum LanguageValidation {\r\n English = 1,\r\n Arabic = 2\r\n }","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Optional,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n AbstractControl,\r\n ControlContainer,\r\n FormGroupDirective,\r\n} from '@angular/forms';\r\nimport { TextBoxOptions } from '../../Shared/Models/TextBoxOptions';\r\nimport { InputType } from '../../Shared/Enums/InputType';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport {\r\n ControlValidationService,\r\n UtilityService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { LanguageValidation } from '../../Shared/Enums/LanguageValidation';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-TextBox',\r\n templateUrl: './TextBox.component.html',\r\n})\r\nexport class TextboxComponent implements OnInit {\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(\r\n private controlUtility: ControlUtility,\r\n @Optional() private controlContainer: ControlContainer,\r\n public TextControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings\r\n ) {\r\n TextboxComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: TextBoxOptions;\r\n @Output() OnChange = new EventEmitter();\r\n public inputType = InputType\r\n TextBoxFormControl: AbstractControl;\r\n MaskPattern: string = '';\r\n WordCount: number = 0;\r\n WordCountArray: number = 0;\r\n EmailValidationKey: string;\r\n URLValidationKey: string;\r\n PasswordComplexityHasNumber: string;\r\n ArabicLetterOnly: string;\r\n EnglishLetterOnly: string;\r\n PasswordComplexityHasCapitalLetter: string;\r\n PasswordComplexityHasSmallLetter: string;\r\n PasswordComplexityHasSpecialLetter: string;\r\n MaxWordCountValidationKey: string;\r\n IsShowWordCount: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n //For Show warning message of max length limit\r\n currentCharsCount: number = 0;\r\n showCharsLimitMsg: boolean = false;\r\n hasCharsLimitValidationError: boolean = false;\r\n charsLimitMsgClass: string;\r\n minCharsLimit: number = -1; //To disable chars limit feature by default\r\n maxLimitWarningMsg: string = '';\r\n textDir;\r\n ngOnInit() {\r\n if (this.options.IsReadonly && !this.options.Value) {\r\n this.options.Value = this.UtilityService.getResourceValue('NA');\r\n }\r\n if (this.options.ForceDirection)\r\n this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';\r\n else\r\n this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';\r\n\r\n this.controlValidationService.isCreatedBefor = false;\r\n\r\n if (!this.options.MaxLength)\r\n this.options.MaxLength = this.globalSettings.MaxLengthTextBox;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.MaskPattern != null && this.options.MaskPattern != '') {\r\n this.MaskPattern = this.options.MaskPattern;\r\n this.options.Placeholder = this.MaskPattern;\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.TextBoxFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n this.TextBoxFormControl.setValue(this.options.Value);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != '')\r\n this.options.LabelValue = this.UtilityService.getResourceValue(\r\n this.options.LabelKey\r\n );\r\n\r\n this.getCustomErrorsMassages();\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n switch (this.options.Type) {\r\n case InputType.Email:\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n { EmailValidationKey: this.EmailValidationKey }\r\n ),\r\n ])\r\n );\r\n break;\r\n\r\n case InputType.URL:\r\n const pattern = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]!\\$&'\\(\\)\\*\\+,;=.]+$/;\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n pattern,\r\n { URLValidationKey: this.URLValidationKey }\r\n ),\r\n ])\r\n );\r\n break;\r\n case InputType.EID:\r\n this.MaskPattern = '000-0000-0000000-0';\r\n this.options.Placeholder = this.MaskPattern;\r\n\r\n break;\r\n\r\n case InputType.Number:\r\n if (this.options.CustomValidation.length == 0) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/^[0-9]*$/, {\r\n IntegerNumberValidationKey: '',\r\n }),\r\n ])\r\n );\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^[+]?([.]\\d+|\\d+[.]?\\d*)$/,\r\n { PositiveNumberValidationKey: '' }\r\n ),\r\n ])\r\n );\r\n }\r\n if (this.options.NumberRange != null) {\r\n this.validationRules.push(\r\n Validators.min(this.options.NumberRange.From)\r\n );\r\n this.validationRules.push(\r\n Validators.max(this.options.NumberRange.To)\r\n );\r\n }\r\n break;\r\n case InputType.Password:\r\n if (!this.options.RemoveDefaultPasswordValidation) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/\\d/, {\r\n PasswordComplexityHasNumber: this.PasswordComplexityHasNumber,\r\n }),\r\n this.controlUtility.patternValidator(/[A-Z]/, {\r\n PasswordComplexityHasCapitalLetter:\r\n this.PasswordComplexityHasCapitalLetter,\r\n }),\r\n this.controlUtility.patternValidator(/[a-z]/, {\r\n PasswordComplexityHasSmallLetter:\r\n this.PasswordComplexityHasSmallLetter,\r\n }),\r\n this.controlUtility.patternValidator(/[!@#$%^&*(),.?\":{}|<>]/, {\r\n PasswordComplexityHasSpecialLetter:\r\n this.PasswordComplexityHasSpecialLetter,\r\n }),\r\n Validators.minLength(8),\r\n ])\r\n );\r\n }\r\n break;\r\n }\r\n if (this.options.LanguageValidation) {\r\n if (this.options.LanguageValidation == LanguageValidation.Arabic) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(/^[^A-Za-z]*$/, {\r\n ArabicLetterOnly: this.ArabicLetterOnly,\r\n }),\r\n ])\r\n );\r\n } else if (\r\n this.options.LanguageValidation == LanguageValidation.English\r\n ) {\r\n this.validationRules.push(\r\n Validators.compose([\r\n this.controlUtility.patternValidator(\r\n /^[~`!@#$%^&*()‘’“”_+=[\\]\\\\{}|;':\",.\\/<>?a-zA-Z0-9- ]*$/,\r\n { EnglishLetterOnly: this.EnglishLetterOnly }\r\n ),\r\n ])\r\n );\r\n }\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation;\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n }\r\n if (this.options.MinLength > 0) {\r\n this.validationRules.push(Validators.minLength(this.options.MinLength));\r\n }\r\n if (this.options.MaxLength > 0) {\r\n this.validationRules.push(Validators.maxLength(this.options.MaxLength));\r\n\r\n if (!this.options.MaxLengthWarningLimit)\r\n this.options.MaxLengthWarningLimit =\r\n this.globalSettings.MaxLengthWarningLimit;\r\n\r\n this.minCharsLimit =\r\n this.options.MaxLength - this.options.MaxLengthWarningLimit;\r\n }\r\n this.TextBoxFormControl.setValidators(this.validationRules);\r\n this.TextBoxFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.TextBoxFormControl.disable();\r\n }\r\n\r\n this.TextControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched();\r\n this.markAllAsTouched = true;\r\n });\r\n\r\n this.options.ValidationRules = this.validationRules;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options);\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n };\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError();\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError();\r\n this.markAllAsTouched = false;\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n getInputType(type: number) {\r\n return this.controlUtility.getInputType(type);\r\n }\r\n\r\n trimControlValue() {\r\n let originalValue = this.controlUtility.trimControlValue(\r\n this.TextBoxFormControl.value\r\n );\r\n this.TextBoxFormControl.patchValue(originalValue);\r\n if (\r\n this.options.PatchFunction &&\r\n this.options.PatchPath &&\r\n this.TextBoxFormControl.valid\r\n ) {\r\n this.controlUtility.patchControlValue(\r\n originalValue,\r\n this.options.PatchFunction,\r\n this.options.PatchPath\r\n );\r\n }\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n this.controlUtility.CopyInputMessage(inputElement);\r\n }\r\n\r\n getCustomErrorsMassages() {\r\n this.EmailValidationKey =\r\n this.UtilityService.getResourceValue('EmailValidationKey');\r\n this.URLValidationKey =\r\n this.UtilityService.getResourceValue('urlValidationError');\r\n this.PasswordComplexityHasCapitalLetter =\r\n this.UtilityService.getResourceValue(\r\n 'PasswordComplexityHasCapitalLetter'\r\n );\r\n this.PasswordComplexityHasNumber = this.UtilityService.getResourceValue(\r\n 'PasswordComplexityHasNumber'\r\n );\r\n this.PasswordComplexityHasSmallLetter =\r\n this.UtilityService.getResourceValue('PasswordComplexityHasSmallLetter');\r\n this.PasswordComplexityHasSpecialLetter =\r\n this.UtilityService.getResourceValue(\r\n 'PasswordComplexityHasSpecialLetter'\r\n );\r\n this.MaxWordCountValidationKey = this.UtilityService.getResourceValue(\r\n 'MaxWordCountValidationKey'\r\n );\r\n this.ArabicLetterOnly = this.UtilityService.getResourceValue(\r\n 'ArabicIsRequiredAndOnly50CharactersEnglish'\r\n );\r\n this.EnglishLetterOnly =\r\n this.UtilityService.getResourceValue('EnglishLetterOnly');\r\n }\r\n\r\n onTextChange() {\r\n if (this.options.Type == InputType.Number)\r\n if (!this.TextBoxFormControl.value) {\r\n this.TextBoxFormControl.setErrors({ IntegerNumberValidationKey: '' });\r\n return;\r\n }\r\n\r\n if (this.TextBoxFormControl.value == '') {\r\n this.WordCountArray = 0;\r\n this.WordCount = 0;\r\n } else {\r\n this.WordCountArray = this.TextBoxFormControl.value.split(' ').length;\r\n if (this.WordCountArray > 0) {\r\n if (this.WordCountArray > this.options.MaxWordCount) {\r\n this.WordCount = this.options.MaxWordCount;\r\n this.TextBoxFormControl.setErrors({\r\n MaxWordCountValidationKey: this.options.MaxWordCount,\r\n });\r\n this.TextBoxFormControl.markAsTouched();\r\n this.TextBoxFormControl.invalid;\r\n } else {\r\n this.WordCount = this.WordCountArray;\r\n }\r\n }\r\n //Check for maxlength limit count\r\n //MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0\r\n if (this.options.MaxLength && this.minCharsLimit >= 0) {\r\n this.currentCharsCount = this.TextBoxFormControl.value.length;\r\n if (this.currentCharsCount > this.minCharsLimit) {\r\n this.showCharsLimitMsg = true;\r\n this.hasCharsLimitValidationError = true;\r\n if (this.currentCharsCount == this.options.MaxLength)\r\n this.charsLimitMsgClass = 'danger';\r\n else this.charsLimitMsgClass = 'warning';\r\n } else {\r\n this.showCharsLimitMsg = false;\r\n this.hasCharsLimitValidationError = false;\r\n }\r\n var max: number = this.options.MaxLength;\r\n var current: number = this.currentCharsCount;\r\n\r\n var resource = this.UtilityService.getResourceValue(\r\n 'MaxLengthLimitWarning'\r\n );\r\n this.maxLimitWarningMsg = eval('`' + resource + '`');\r\n }\r\n }\r\n\r\n this.OnChange.emit(this.TextBoxFormControl.value);\r\n }\r\n\r\n onFocus(isFocus: boolean) {\r\n this.IsShowWordCount = isFocus;\r\n\r\n //onFocus\r\n if (isFocus) {\r\n if (this.hasCharsLimitValidationError)\r\n //check if there was previous validation error\r\n this.showCharsLimitMsg = true;\r\n } //onFocusOut\r\n else this.showCharsLimitMsg = false;\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n this.options\r\n );\r\n };\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(\r\n this.TextBoxFormControl,\r\n this.validationRules,\r\n CustomValidation\r\n );\r\n };\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.TextBoxFormControl);\r\n };\r\n}\r\n","export class MapAutocompleteDTO\r\n{\r\n Text:string= null;\r\n Latitude:number;\r\n Longitude:number;\r\n PlaceID :string;\r\n GoogleMapsURL:string\r\n}","declare const google: any\r\nimport { Component, OnInit, Input, Optional, NgZone, ElementRef, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { MapAutoCompleteOptions } from '../../Shared/Models/MapAutoCompleteOptions';\r\nimport { MapAutocompleteDTO } from '../../Shared/Models/MapAutocompleteDTO';\r\nimport { MatGoogleMapsAutocompleteComponent } from '@angular-material-extensions/google-maps-autocomplete';\r\nimport { MapsAPILoader, LazyMapsAPILoader } from '@agm/core';\r\nimport { BBSFTranslateService, ControlValidationService, environment, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-MapAutoComplete',\r\n templateUrl: './MapAutoComplete.component.html'\r\n})\r\n\r\nexport class MapAutoCompleteComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n constructor(private mapsAPILoader: MapsAPILoader,\r\n private ngZone: NgZone, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public MapAutoCompleteControlHost: FormGroupDirective, private UtilityService: UtilityService, private translate: BBSFTranslateService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n MapAutoCompleteComponent.controlContainerstatic = this.controlContainer;\r\n this.CurrentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang\r\n\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: MapAutoCompleteOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n MapAutoCompleteFormControl: AbstractControl;\r\n MapAutoCompleteModel: MapAutocompleteDTO = new MapAutocompleteDTO();\r\n CurrentLanguage: string = \"\";\r\n onAutocompleteSelected = new EventEmitter();\r\n onGermanAddressMapped = new EventEmitter();\r\n onLocationSelected = new EventEmitter();\r\n @ViewChild(\"search\", { static: false })\r\n public searchElementRef: ElementRef;\r\n MatGoogleMapsAutocompleteComponent: MatGoogleMapsAutocompleteComponent\r\n LazyMapsAPILoader: LazyMapsAPILoader\r\n markAllAsTouched: boolean = false;\r\n validationRules = [];\r\n validationRulesasync = [];\r\n place: any;\r\n ngOnInit() {\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.MapAutoCompleteModel = new MapAutocompleteDTO();\r\n this.translate.onLangChange.subscribe((event) => {\r\n this.CurrentLanguage = event.lang;\r\n ;\r\n if (this.CurrentLanguage == 'ar')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"ar-EG\";\r\n if (this.CurrentLanguage == 'en')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"en-US\";\r\n this.mapsAPILoader[\"_scriptLoadingPromise\"] = null\r\n this.mapsAPILoader[\"_config\"][\"apiKey\"] = `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`;\r\n var ScriptTag = document.getElementById(this.mapsAPILoader[\"_SCRIPT_ID\"]);\r\n if (ScriptTag)\r\n ScriptTag.remove();\r\n var elements = document.getElementsByClassName(\"pac-container\");\r\n while (elements.length > 0)\r\n elements[0].remove();\r\n\r\n let window = this.mapsAPILoader[\"_windowRef\"].getNativeWindow();\r\n window.google = null\r\n\r\n\r\n\r\n this.LazyMapsAPILoader = new LazyMapsAPILoader({\r\n // &language=${UtilityService.CurrentLanguage}\r\n apiKey: `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`,\r\n libraries: ['places'],\r\n }, this.mapsAPILoader[\"_windowRef\"], this.mapsAPILoader[\"_documentRef\"], this.mapsAPILoader[\"_config\"][\"localeId\"]);\r\n this.LazyMapsAPILoader.load().then(() => {\r\n let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {\r\n types: [\"address\"]\r\n\r\n });\r\n autocomplete.addListener('place_changed', (/**\r\n * @return {?}\r\n */\r\n () => {\r\n\r\n this.ngZone.run((/**\r\n * @return {?}\r\n */\r\n () => {\r\n // get the place result\r\n /** @type {?} */\r\n const place = autocomplete.getPlace();\r\n /** @type {?} */\r\n const germanAddress = {\r\n gmID: place.id,\r\n icon: place.icon,\r\n url: place.url,\r\n placeID: place.place_id,\r\n displayAddress: place.formatted_address,\r\n name: place.name,\r\n vicinity: place.vicinity,\r\n locality: {},\r\n state: {},\r\n country: {},\r\n geoLocation: { latitude: -1, longitude: -1 },\r\n };\r\n\r\n if (place.geometry && place.geometry.location) {\r\n germanAddress.geoLocation.latitude = place.geometry.location.lat();\r\n germanAddress.geoLocation.longitude = place.geometry.location.lng();\r\n }\r\n place.address_components.forEach((/**\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n value => {\r\n if (value.types.indexOf('street_number') > -1) {\r\n germanAddress[\"streetNumber\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('route') > -1) {\r\n germanAddress[\"streetName\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('postal_code') > -1) {\r\n germanAddress[\"postalCode\"] = Number(value.short_name);\r\n }\r\n if (value.types.indexOf('sublocality') > -1) {\r\n germanAddress[\"sublocality\"] = value.long_name;\r\n }\r\n if (value.types.indexOf('locality') > -1) {\r\n germanAddress.locality[\"long\"] = value.long_name;\r\n germanAddress.locality[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_1') > -1) {\r\n germanAddress.state[\"long\"] = value.long_name;\r\n germanAddress.state[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('country') > -1) {\r\n germanAddress.country[\"long\"] = value.long_name;\r\n germanAddress.country[\"short\"] = value.short_name;\r\n }\r\n if (value.types.indexOf('administrative_area_level_3') > -1) {\r\n germanAddress.locality[\"short\"] = value.short_name;\r\n }\r\n }));\r\n\r\n this.onGermanAddressMapped.emit(germanAddress);\r\n this.GermanAddressMapped(germanAddress)\r\n if (!place.place_id || place.geometry === undefined || place.geometry === null) {\r\n // place result is not valid\r\n return;\r\n }\r\n else {\r\n // show dialog to select a address from the input\r\n // emit failed event\r\n }\r\n // this.address = place.formatted_address;\r\n this.onAutocompleteSelected.emit(place);\r\n this.AutocompleteSelected(place)\r\n\r\n this.onLocationSelected.emit({\r\n latitude: place.geometry.location.lat(),\r\n longitude: place.geometry.location.lng()\r\n });\r\n }));\r\n }));\r\n });\r\n\r\n });\r\n\r\n if (this.CurrentLanguage == 'ar')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"ar-EG\";\r\n if (this.CurrentLanguage == 'en')\r\n this.mapsAPILoader[\"_config\"][\"localeId\"] = \"en-US\";\r\n this.mapsAPILoader[\"_scriptLoadingPromise\"] = null\r\n this.mapsAPILoader[\"_config\"][\"apiKey\"] = `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`;\r\n var leftSection = document.getElementById(this.mapsAPILoader[\"_SCRIPT_ID\"]);\r\n if (leftSection)\r\n leftSection.remove();\r\n this.LazyMapsAPILoader = new LazyMapsAPILoader({\r\n apiKey: `${environment.BBSF_GoogleMapKey}&language=${this.CurrentLanguage}`,\r\n libraries: ['places'],\r\n }, this.mapsAPILoader[\"_windowRef\"], this.mapsAPILoader[\"_documentRef\"], this.mapsAPILoader[\"_config\"][\"localeId\"]);\r\n this.LazyMapsAPILoader.load();\r\n\r\n this.mapsAPILoader.load().then(() => {\r\n let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {\r\n types: [\"address\"]\r\n\r\n });\r\n\r\n })\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.MapAutoCompleteFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n this.MapAutoCompleteFormControl.setValidators(this.validationRules);\r\n this.MapAutoCompleteFormControl.setAsyncValidators(this.validationRulesasync);\r\n if (this.options.IsDisabled) {\r\n this.MapAutoCompleteFormControl.disable();\r\n }\r\n if (this.options.Value != null) {\r\n let germanAddress = {\r\n\r\n url: this.options.Value.GoogleMapsURL,\r\n placeID: this.options.Value.PlaceID,\r\n displayAddress: this.options.Value.Text,\r\n name: this.options.Value.Text,\r\n locality: {},\r\n state: {},\r\n country: {},\r\n geoLocation: { latitude: -1, longitude: -1 },\r\n };\r\n\r\n germanAddress.geoLocation.latitude = this.options.Value.Latitude;\r\n germanAddress.geoLocation.longitude = this.options.Value.Longitude;\r\n this.onGermanAddressMapped.emit(germanAddress);\r\n this.GermanAddressMapped(germanAddress)\r\n this.place = {\r\n\r\n url: this.options.Value.GoogleMapsURL,\r\n place_id: this.options.Value.PlaceID,\r\n formatted_address: this.options.Value.Text,\r\n name: this.options.Value.Text,\r\n };\r\n this.onAutocompleteSelected.emit(this.place);\r\n this.AutocompleteSelected(this.place)\r\n\r\n this.onLocationSelected.emit({\r\n latitude: this.options.Value.Latitude,\r\n longitude: this.options.Value.Longitude\r\n });\r\n this.group.controls[this.options.Name].setValue(this.MapAutoCompleteModel)\r\n this.MapAutoCompleteFormControl.setValue(this.options.Value);\r\n }\r\n\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n\r\n\r\n this.MapAutoCompleteControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n\r\n\r\n }\r\n ngAfterViewInit() {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n }\r\n var elementHTML = document.getElementById(this.options.Name) as any\r\n elementHTML.value = this.MapAutoCompleteModel.Text;\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n AutocompleteSelected(result) {\r\n\r\n\r\n this.MapAutoCompleteModel == new MapAutocompleteDTO();\r\n this.MapAutoCompleteModel.Text = result.formatted_address;\r\n this.MapAutoCompleteModel.PlaceID = result.place_id;\r\n this.MapAutoCompleteModel.GoogleMapsURL = result.url;\r\n }\r\n LocationSelected(location) {\r\n\r\n this.MapAutoCompleteModel.Latitude = location.latitude;\r\n this.MapAutoCompleteModel.Longitude = location.longitude;\r\n this.MapAutoCompleteFormControl.setValue(null);\r\n\r\n this.MapAutoCompleteFormControl.setValue(this.MapAutoCompleteModel);\r\n let originalValue = this.MapAutoCompleteFormControl.value;\r\n if (this.options.PatchFunction && this.options.PatchPath && this.MapAutoCompleteFormControl.valid) {\r\n this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath)\r\n }\r\n //Use this line to enable two way binding.\r\n this.options.Value=this.MapAutoCompleteModel;\r\n }\r\n\r\n GermanAddressMapped(result) {\r\n if (result.type) {\r\n if (result.target.value == \"\") {\r\n this.MapAutoCompleteFormControl.setValue(result);\r\n this.group.controls[this.options.Name].setValue(result);\r\n this.options.Value=result;\r\n }\r\n return;\r\n }\r\n this.MapAutoCompleteModel == new MapAutocompleteDTO();\r\n this.MapAutoCompleteModel.Text = result.displayAddress;\r\n this.MapAutoCompleteModel.PlaceID = result.placeID;\r\n this.MapAutoCompleteModel.GoogleMapsURL = result.url;\r\n this.MapAutoCompleteModel.Latitude = result.geoLocation.latitude;\r\n this.MapAutoCompleteModel.Longitude = result.geoLocation.longitude;\r\n this.MapAutoCompleteFormControl.setValue(this.MapAutoCompleteModel);\r\n this.group.controls[this.options.Name].setValue(this.MapAutoCompleteModel)\r\n this.OnChange.emit(this.MapAutoCompleteFormControl.value)\r\n //Use this line to enable two way binding.\r\n this.options.Value=this.MapAutoCompleteModel;\r\n }\r\n\r\n //External Method\r\n\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.MapAutoCompleteFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.MapAutoCompleteFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.MapAutoCompleteFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.MapAutoCompleteFormControl, this.validationRules, CustomValidation)\r\n }\r\n\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.MapAutoCompleteFormControl)\r\n }\r\n}\r\n\r\n\r\n","\r\nexport enum CalendarView {\r\n Month = 1,\r\n Weekly = 2,\r\n Daily = 3,\r\n Agenda = 4\r\n }","import { FullCalendarComponent } from '@fullcalendar/angular';\r\nimport * as core from '@fullcalendar/core';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport timeGrigPlugin from '@fullcalendar/timegrid';\r\nimport interactionPlugin from '@fullcalendar/interaction'; // for dateClick\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport listPlugin from '@fullcalendar/list';\r\nimport { Component, OnInit, Input, DoCheck, Optional, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { CalendarOptions } from '../../Shared/Models/CalendarOptions';\r\nimport { CalendarView } from '../../Shared/Enums/CalendarView';\r\n// import { CalendarOptions as CalendarOptionsModel, DateSelectArg, EventApi, EventClickArg } from '@fullcalendar/angular';\r\nimport enGbLocale from '@fullcalendar/core/locales/en-gb';\r\nimport ArLocale from '@fullcalendar/core/locales/ar';\r\nimport { LangChangeEvent } from '@ngx-translate/core';\r\nimport { BBSFTranslateService, ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n@Component({\r\n selector: 'BBSF-Calendar',\r\n templateUrl: './Calendar.component.html',\r\n styleUrls: ['./Calendar.component.scss']\r\n})\r\nexport class CalendarComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private ErrorHandler: ErrorMassageValidation, private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer, public PhoneControlHost: FormGroupDirective,private UtilityService:UtilityService,private translate: BBSFTranslateService,private controlValidationService:ControlValidationService) {\r\n CalendarComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: CalendarOptions;\r\n CalendarFormControl: AbstractControl;\r\n @ViewChild('calendar', { static: false }) calendarComponent: FullCalendarComponent; // the #calendar in the template\r\n\r\n\r\n\r\n calendarVisible = true;\r\n calendarOptions: core.CalendarOptions;\r\n currentEvents: core.EventApi[] = [];\r\n calendarPlugins = [dayGridPlugin, timeGrigPlugin, interactionPlugin, listPlugin];\r\n calendarWeekends = true;\r\n calendarEvents: core.EventInput[] = [];\r\n DefaultView = \"\"\r\n CalendarViews = ''\r\n locales = [];\r\n CurrentLanguage = \"\"\r\n async ngOnInit() {\r\n switch (await this.UtilityService.getCurrentLanguage()) {\r\n case 'ar':\r\n this.locales = [ArLocale]\r\n this.CurrentLanguage = \"Ar\"\r\n break;\r\n case 'en':\r\n this.locales = [enGbLocale]\r\n this.CurrentLanguage = \"En\"\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\r\n switch (event.lang) {\r\n case 'ar':\r\n this.locales = [ArLocale]\r\n this.CurrentLanguage = \"Ar\"\r\n break;\r\n case 'en':\r\n this.locales = [enGbLocale]\r\n this.CurrentLanguage = \"En\"\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n });\r\n this.calendarEvents = this.options.EventList\r\n this.calendarWeekends = this.options.AllowCalendarWeekends\r\n switch (this.options.DefaultView) {\r\n case CalendarView.Month:\r\n this.DefaultView = \"dayGridMonth\"\r\n break;\r\n case CalendarView.Weekly:\r\n this.DefaultView = \"timeGridWeek\"\r\n break;\r\n case CalendarView.Daily:\r\n this.DefaultView = \"timeGridDay\"\r\n break;\r\n default:\r\n break;\r\n }\r\n if (this.options.CalendarViews != null && this.options.CalendarViews.length > 0)\r\n for (let index = 0; index < this.options.CalendarViews.length; index++) {\r\n const element = this.options.CalendarViews[index];\r\n switch (element) {\r\n case CalendarView.Agenda:\r\n this.CalendarViews += \"listWeek,\"\r\n break;\r\n case CalendarView.Daily:\r\n this.CalendarViews += \"timeGridDay,\"\r\n break;\r\n case CalendarView.Weekly:\r\n this.CalendarViews += \"timeGridWeek,\"\r\n break;\r\n case CalendarView.Month:\r\n this.CalendarViews += \"dayGridMonth,\"\r\n break;\r\n\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.CalendarFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n\r\n this.calendarOptions = {\r\n plugins: [\r\n dayGridPlugin,\r\n timeGridPlugin,\r\n listPlugin,\r\n interactionPlugin\r\n ],\r\n headerToolbar: {\r\n left: 'prev,next today',\r\n center: 'title',\r\n right: this.CalendarViews.substring(0, this.CalendarViews.length - 1)\r\n },\r\n locales: this.locales,\r\n locale: this.CurrentLanguage,\r\n initialView: this.CalendarViews.split(',')[0],\r\n initialEvents: this.calendarEvents,\r\n initialDate: this.options.DefaultDate,\r\n weekends: this.options.AllowCalendarWeekends,\r\n editable: this.options.Eventeditable,\r\n selectable: this.options.Eventselectable,\r\n // selectMirror: true,\r\n dayMaxEvents: this.options.dayMaxEvents,\r\n select: this.OnDayClickFunction.bind(this),\r\n eventClick: this.OnEventClickFunction.bind(this),\r\n // eventsSet: this.handleEvents.bind(this)\r\n /* you can update a remote database when these fire:\r\n eventAdd:\r\n eventChange:\r\n eventRemove:\r\n */\r\n };\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n\r\n\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n getErrorValidation(Errorsitem: any[]) {\r\n }\r\n\r\n\r\n OnDayClickFunction(arg) {\r\n\r\n if (this.options.OnDayClickFunction != null) {\r\n let DayClickFunction = this.options.OnDayClickFunction;\r\n DayClickFunction(arg);\r\n }\r\n }\r\n\r\n OnEventClickFunction(arg) {\r\n if (this.options.OnEventClickFunction != null) {\r\n let EventClickFunction = this.options.OnEventClickFunction;\r\n EventClickFunction(arg.event);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // handleDateSelect(selectInfo: DateSelectArg) {\r\n // const title = prompt('Please enter a new title for your event');\r\n // const calendarApi = selectInfo.view.calendar;\r\n\r\n // calendarApi.unselect(); // clear date selection\r\n\r\n // if (title) {\r\n // calendarApi.addEvent({\r\n // id: \"1\",\r\n // title,\r\n // start: selectInfo.startStr,\r\n // end: selectInfo.endStr,\r\n // allDay: selectInfo.allDay\r\n // });\r\n // }\r\n // }\r\n\r\n // handleEventClick(clickInfo: EventClickArg) {\r\n // if (confirm(`Are you sure you want to delete the event '${clickInfo.event.title}'`)) {\r\n // clickInfo.event.remove();\r\n // }\r\n // }\r\n\r\n // handleEvents(events: EventApi[]) {\r\n // this.currentEvents = events;\r\n // }\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","export enum PagingActionMode {\r\n Reinitialize ,\r\n Update\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ControlValidationService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { Observable } from 'rxjs';\r\nimport { PagingActionMode } from '../../Shared/Enums/PagingActionMode';\r\nimport { FormOptions } from '../../Shared/Models/FormOptions';\r\nimport { PagingComponent } from '../Paging/Paging.component';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n // tslint:disable-next-line: component-selector\r\n selector: 'BBSF-Form',\r\n templateUrl: './Form.component.html',\r\n})\r\nexport class FormComponent implements OnInit {\r\n\r\n fromName: string;\r\n isChange: boolean = null;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n constructor(private controlUtility: ControlUtility, private utilityService: UtilityService, private controlValidationService: ControlValidationService, private modalService: NgbModal, private ngbActiveModal: NgbActiveModal, private router: Router,\r\n ) {\r\n }\r\n @Input() options: FormOptions;\r\n\r\n ngOnInit() {\r\n this.fromName = this.randomString(5)\r\n }\r\n ngAfterViewInit(): void {\r\n this.options.FormGroup.valueChanges.subscribe((es) => {\r\n this.OnChange.emit(true);\r\n\r\n });\r\n }\r\n\r\n submit() {\r\n this.options.FormGroup.markAllAsTouched()\r\n if (this.options.FormGroup.invalid) {\r\n this.showGlobalError();\r\n return\r\n }\r\n else {\r\n\r\n let submitModel = this.options.GetModelFunction() as any[]\r\n let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel) as Observable<any>\r\n submittedService.subscribe(\r\n (result) => {\r\n if (!this.options.DisableModalDismiss) {\r\n //Dismiss closest modal of the form only\r\n let modal = document.getElementById(this.fromName).closest('.modal.show');\r\n if (modal) {\r\n let closeButton = modal.querySelector(\"[data-dismiss='modal']\") as any\r\n closeButton.click();\r\n }\r\n }\r\n if (!this.options.DisableSuccessNotification)\r\n this.utilityService.notifySuccessMessage()\r\n if (this.options.OnSuccessHandler)\r\n this.options.OnSuccessHandler(result)\r\n if (!this.options.DisableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n if (this.options.PagingReference) {\r\n let paging = this.options.PagingReference;\r\n this.options.PagingActionMode == PagingActionMode.Reinitialize ? paging.ReinitializePaging() : paging.UpdatePaging();\r\n }\r\n }, (error) => {\r\n if (this.options.OnErrorHandler)\r\n this.options.OnErrorHandler(error)\r\n else\r\n this.handleError(error)\r\n })\r\n\r\n }\r\n\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n else {\r\n this.controlValidationService.renderServerErrors(this.options.FormGroup, err, new RequestOptionsModel(), this.fromName)\r\n }\r\n if (!this.options.DisableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError(this.fromName)\r\n }\r\n randomString(length) {\r\n var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n var result = '';\r\n for (var i = 0; i < length; i++) {\r\n result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));\r\n }\r\n return result;\r\n }\r\n\r\n\r\n}\r\n\r\n","export enum StyleConfirmationMode {\r\n Danger,\r\n Warning,\r\n Success\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities'\r\nimport { Observable } from 'rxjs';\r\nimport { PagingActionMode } from '../../Shared/Enums/PagingActionMode';\r\nimport { ConfirmationModalOptions } from '../../Shared/Models/ConfirmationModalOptions';\r\nimport Swal, { SweetAlertIcon } from 'sweetalert2';\r\nimport { StyleConfirmationMode } from '../../Shared/Enums/StyleConfirmationMode';\r\n\r\n@Component({\r\n templateUrl: 'ConfirmationModal.component.html',\r\n selector: 'BBSF-ConfirmationModal',\r\n})\r\nexport class ConfirmationModalComponent implements OnInit {\r\n @Input() options: ConfirmationModalOptions;\r\n styleDanger: StyleConfirmationMode = StyleConfirmationMode.Danger;\r\n styleWarning: StyleConfirmationMode = StyleConfirmationMode.Warning;\r\n styleSuccess: StyleConfirmationMode = StyleConfirmationMode.Success;\r\n @ViewChild('confirmationModal', { static: false }) confirmationModal: ElementRef;\r\n icon: SweetAlertIcon;\r\n btnColor: any;\r\n iconHtml: string;\r\n\r\n\r\n constructor(public utilityService: UtilityService, private modalService: NgbModal, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n //Method used to show confirmation modal\r\n showModal() {\r\n this.utilityService.startBlockUI()\r\n //check for options text values\r\n this.setTextValues();\r\n //sweetalert styles//\r\n switch (this.options.StyleConfirmationMode) {\r\n case this.styleSuccess: {\r\n this.icon = 'success'\r\n this.btnColor = '#50cd89'\r\n this.iconHtml = '<i class=\"fa fa-check\"></i>'\r\n break;\r\n }\r\n case this.styleWarning: {\r\n this.icon = 'warning'\r\n this.btnColor = '#ffc700'\r\n this.iconHtml = '<i class=\"fa fa-warning\"></i>'\r\n break;\r\n\r\n }\r\n case this.styleDanger: {\r\n this.icon = 'error'\r\n this.btnColor = '#f1416c'\r\n this.iconHtml = '<i class=\"fa fa-close\"></i>'\r\n break;\r\n\r\n }\r\n }\r\n Swal.fire({\r\n title: this.utilityService.getResourceValue(this.options.ConfirmationHeader),\r\n text: this.options.ConfirmationBody,\r\n icon: this.icon,\r\n iconColor: this.btnColor,\r\n confirmButtonColor: this.btnColor,\r\n cancelButtonColor: '#f5f8fa',\r\n cancelButtonText: this.utilityService.getResourceValue(\"CancelLabel\"),\r\n confirmButtonText: this.options.SubmitButtonText,\r\n showCancelButton: this.options.showCancelButton,\r\n showCloseButton: this.options.showCloseButton,\r\n allowOutsideClick: false\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.submit()\r\n }\r\n })\r\n this.utilityService.stopBlockUI()\r\n }\r\n private setTextValues() {\r\n if (!this.options.ConfirmationHeader)\r\n this.options.ConfirmationHeader = this.utilityService.getResourceValue(\"DeleteConfirmation\");\r\n if (!this.options.ConfirmationBody)\r\n this.options.ConfirmationBody = this.utilityService.getResourceValue(\"Delete_Question\");\r\n if (!this.options.SubmitButtonText)\r\n this.options.SubmitButtonText = this.utilityService.getResourceValue(\"Delete\");\r\n if (!this.options.SuccessNotificationMessage)\r\n this.options.SuccessNotificationMessage = this.utilityService.getResourceValue(\"DeletedSuccessfully\");\r\n }\r\n //Modal confirmation submit function\r\n submit() {\r\n let submitModel = this.options.ServiceSubmitModel;\r\n\r\n let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel) as Observable<any>\r\n submittedService.subscribe(\r\n (result) => {\r\n if (!this.options.DisableModalDismiss)\r\n this.modalService.dismissAll();\r\n\r\n if (!this.options.DisableSuccessNotification) {\r\n if (!this.options.SuccessNotificationMessage)\r\n this.options.SuccessNotificationMessage = this.utilityService.getResourceValue(\"DeletedSuccessfully\");\r\n this.utilityService.notifySuccessMessage(this.options.SuccessNotificationMessage)\r\n }\r\n if (this.options.OnSuccessHandler)\r\n this.options.OnSuccessHandler(result)\r\n if (this.options.PagingReference) {\r\n let paging = this.options.PagingReference;\r\n this.options.PagingActionMode == PagingActionMode.Reinitialize ? paging.ReinitializePaging() : paging.UpdatePaging();\r\n }\r\n this.utilityService.stopBlockUI();\r\n }, (error) => {\r\n if (this.options.OnErrorHandler)\r\n this.options.OnErrorHandler(error)\r\n else\r\n this.handleError(error)\r\n })\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n\r\n else if (err.status == 401) {\r\n this.router.navigate([\"/Admin/account/login\"])\r\n }\r\n else if (err.status == 510) {\r\n errorMessage = this.utilityService.getCurrentLanguage() == \"en\" ? \"Can not delete this item as it is related to others\" : \"لا يمكن حذف هذا العنصر لأنه مرتبط بعناصر أخرى\";\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage(errorMessage)\r\n }\r\n else {\r\n errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\r\n console.log(errorMessage);\r\n if (!this.options.DisableErrorNotification)\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'ng-template[name]'\r\n})\r\nexport class NgTemplateNameDirective {\r\n @Input() name: string;\r\n\r\n constructor(public template: TemplateRef<any>) { }\r\n}","import { Component, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { RepeaterOptions } from '../../../Shared/Models/RepeaterOptions';\r\nimport { NgTemplateNameDirective } from '../../../Shared/Directives/template-name.directive';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-repeater',\r\n templateUrl: './repeater.component.html'\r\n})\r\nexport class RepeaterComponent implements OnInit {\r\n @Input() group: FormGroup;\r\n @Input() options: RepeaterOptions;\r\n @Input() initialTemplate: TemplateRef<any>;\r\n @ViewChildren(NgTemplateNameDirective) private _templates: QueryList<NgTemplateNameDirective>;\r\n @ViewChild('delete', { static: false }) delete: TemplateRef<any>;\r\n templateRefs: Array<TemplateRef<any>> = [];\r\n items: number[] = []\r\n originalItems: any[] = [];\r\n repeaterGroup: FormGroup;\r\n currentTemplate: TemplateRef<any>;\r\n repeaterContext = { index: 0, delete: null, elements: null };\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.currentTemplate = this.initialTemplate;\r\n this.repeaterGroup = new FormGroup({});\r\n this.group.addControl(this.options.Name, this.repeaterGroup);\r\n if (this.options.RepeaterValue.length > 0) {\r\n this.originalItems = this.options.RepeaterValue;\r\n for (let index = 0; index < this.options.RepeaterValue.length; index++) {\r\n this.items.push(index + 1);\r\n }\r\n }\r\n else\r\n for (let index = 0; index < this.options.MinRequiredItems; index++) {\r\n this.items.push(index);\r\n }\r\n\r\n this.repeaterGroup.valueChanges.subscribe((res) => {\r\n let result = [];\r\n let rowNumber = [];\r\n let addItems = [];\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n const keySplitArr = key.split('.')\r\n let item = {\r\n [keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }\r\n }\r\n addItems.push(item)\r\n if (!rowNumber.includes(keySplitArr[1]))\r\n rowNumber.push(keySplitArr[1])\r\n }\r\n }\r\n for (let index = 0; index < rowNumber.length; index++) {\r\n const row = rowNumber[index];\r\n let addObject = {}\r\n let filteredElements = addItems.filter(item => item[row])\r\n for (let index = 0; index < filteredElements.length; index++) {\r\n const filteredElement = filteredElements[index];\r\n for (const key in filteredElement) {\r\n if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {\r\n const element = filteredElement[key];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n const value = element[key];\r\n addObject[key] = value\r\n }\r\n }\r\n }\r\n }\r\n }\r\n result.push(addObject)\r\n }\r\n this.options.RepeaterValue = result;\r\n })\r\n\r\n }\r\n\r\n deleteItem(Index) {\r\n if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)\r\n return;\r\n let deletedControls: any[] = []\r\n let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name)\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n for (let index = 0; index < controlNames.length; index++) {\r\n const element = controlNames[index];\r\n const keySplitArr = key.split('.')\r\n if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {\r\n const element = this.repeaterGroup.controls[key];\r\n deletedControls.push({ [key]: element })\r\n }\r\n }\r\n }\r\n }\r\n for (let index = 0; index < deletedControls.length; index++) {\r\n const element = deletedControls[index];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n this.repeaterGroup.removeControl(key)\r\n }\r\n }\r\n }\r\n this.items = this.items.filter((res) => res != this.items[Index])\r\n }\r\n\r\n\r\n addItem() {\r\n this.items.push(this.items.length);\r\n }\r\n\r\n ngAfterViewInit() {\r\n let templateRefs = (this._templates[\"_results\"] as any[]).map((item) => item[\"template\"])\r\n this.templateRefs = templateRefs\r\n this.repeaterContext.elements = this.templateRefs\r\n this.repeaterContext.delete = this.delete\r\n\r\n }\r\n\r\n setCurrentIndex(i: number) {\r\n this.repeaterContext.index = i;\r\n }\r\n\r\n}\r\n","export enum PermissionSets {\r\n Admin = 1,\r\n BusinessAdmin = 2,\r\n Customer = 3\r\n}\r\nexport enum DataType {\r\n Text = \"7F35E246-7C93-4666-8031-3CE9D2262DB9\",\r\n Email = \"E4F974F6-682F-4CAC-8597-C94E8BF60539\",\r\n Number = \"962060E2-539C-4257-88E5-0259EB8A64F4\",\r\n Name = \"54FE6A3E-1F71-42B8-8C99-06279ED8AA2F\",\r\n Mobile = \"266E2903-D105-4847-AC9B-002AE884A31E\",\r\n MultilineText = \"97F904E0-991B-4F68-B227-217A7B87B8B3\",\r\n HTML = \"57335E2B-E286-401A-A374-72888C3FB753\",\r\n Image = \"1AE5FF1F-856E-41DA-923E-07966F6F8FFE\",\r\n File = \"ACDFEFA7-B406-45B8-9264-78AA440D94B5\",\r\n MultiFile = \"11FAC9EB-D1BB-4F73-9386-64A6C89A70AC\",\r\n Boolean = \"7F89617B-5863-4741-A948-106BBE82D38D\",\r\n Date = \"41182659-A638-4FF0-8E3F-66B89B0B544C\",\r\n DateTime = \"8D899956-8187-4EA1-92EB-B62D50A66323\",\r\n Time = \"B8C225ED-17C3-4AE0-A0E8-3C722B38D8A7\",\r\n Location = \"C486F9C5-0065-4A81-AFA1-03946DBD2214\",\r\n SingleSelect = \"1A63B4B7-DEDE-48C8-8407-10E4170BF761\",\r\n MulipleSelect = \"2CB28735-9D0B-4FBE-A504-8793A4544F94\",\r\n Goal = \"108310CE-9FE1-4914-AB6B-2CF6284472AD\",\r\n Challenge = \"48C419CE-5306-4F6B-87A3-F016E522D9E3\",\r\n CoverPhoto = \"9CC8C0BB-C670-466F-A632-8632FF5C1296\",\r\n InnovationLab = \"4B914ED0-8B36-4E24-B85E-9A04C9F266BE\",\r\n Country = \"342AA701-76C7-4E5D-8056-407BFC86F888\",\r\n AreaOfFocus = \"06a4cfb7-216a-4a60-8388-7a859aab90b4\",\r\n}","import { ControlLayout } from \"../Enums/ControlLayout\"\r\nimport { Attribute } from './Attribute';\r\nimport { CustomValidation } from \"./CustomValidation\";\r\nexport class ControlOptionsBase {\r\n /** Represent Name Of Form Control*/\r\n Name: string\r\n /** Represent classes to Control that allow us to select the Control by jquery or javascript */\r\n ExtraClasses: string\r\n /** Represent classes to label that allow us to select the Control by jquery or javascript */\r\n LabelExtraClasses: string\r\n /** Represent value of the label*/\r\n LabelValue: string\r\n /** Represent Key of the label*/\r\n LabelKey: string\r\n /** Represent value of the labelDescription show under Control*/\r\n LabelDescription: string\r\n /** Represent value of the Placeholder of Control */\r\n Placeholder: string\r\n /**\r\n * Display \"*\" beside the label \r\n * if ForceAsterisk=true and IsRequired=True his display \"*\" ,\r\n * if ForceAsterisk=false and IsRequired=false this remove \"*\",\r\n *if ForceAsterisk=false and IsRequired=True this display \"*\" , \r\n */\r\n ShowAsterisk: boolean\r\n /** Ability to set Control required */\r\n IsRequired: boolean\r\n /** Ability to display or hide the label of Control */\r\n HideLabel: boolean\r\n /** Sets an attribute disable=\"disabled\" */\r\n IsDisabled: boolean = false\r\n /** to set type of view if Control is Vertical or Horizontal */\r\n ViewType: ControlLayout = null;\r\n /** Set List of Custom Attribute to Control */\r\n AttributeList: Attribute[]\r\n /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */\r\n CustomValidation: CustomValidation[] = []\r\n /** Path of propriety which we need to patch value */\r\n PatchPath: string;\r\n /** Function which call to patch value */\r\n PatchFunction: Function;\r\n /** Sets an attribute readonly */\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { StartView } from '../Enums/StartView';\r\nimport { PickerType } from '../Enums/PickerType';\r\nimport { SelectMode } from '../Enums/SelectMode';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class DatePickerOptions extends ControlOptionsBase {\r\n\r\n /**To set value to DatePicker */\r\n Value: Date\r\n /**To set StartDate to DatePicker */\r\n StartDate: Date\r\n /**To set EndDate to DatePicker */\r\n EndDate: Date;\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n IsGMT: boolean\r\n /**To set First Day Of Week to DatePicker */\r\n FirstDayOfWeek: number = 1\r\n /**To set Hour12Timer to DatePicker is 12 Hour or 24 Hour*/\r\n Hour12Timer: boolean = true\r\n /**To set PickerType to DatePicker is Calendar or Timer Or Both */\r\n PickerType: PickerType = PickerType.Calendar\r\n /**To set StartView to DatePicker is Year or Month Or Multi-Year */\r\n StartView: StartView = StartView.Month\r\n /**To set SelectMode to DatePicker is Single or Range */\r\n SelectMode: SelectMode = SelectMode.Single\r\n ForceDirection: ForceDirection = null\r\n /**Name of DatePicker control to compare value with it */\r\n StartControlToCompareWith: string = null;\r\n\r\n}\r\n","export enum ForceDirection {\r\n English = 1,\r\n Arabic = 2\r\n }","import { ControlLayout } from '../Enums/ControlLayout'\r\nimport { DropdownListItem } from './DropdownListItem'\r\nimport { CustomValidation } from './CustomValidation'\r\nimport { Attribute } from './Attribute'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class DropdownOptions extends ControlOptionsBase {\r\n\r\n /**To set DataSource to DropdownList */\r\n DataSource: DropdownListItem[]\r\n /**To set SelectedItem to DropdownList */\r\n SelectedItems: any\r\n /** Disable Bootstrap DropdownList */\r\n DisableBootstrapSelect: boolean = false;\r\n /** to set DropdownList in SingleMode Or MultibleMode ,,If false => DisableBootstrapSelect must be equal false */\r\n SingleSelection: boolean\r\n /** to set Number Of selected Element That will Show In The Box */\r\n ItemsShowLimit: number\r\n /** to Show Search Filter Box*/\r\n AllowSearchFilter: boolean\r\n /** to set Limit Of selected Element For DropdownList */\r\n LimitSelection?: number\r\n /** Set css classes to DropdownList */\r\n Classes: string;\r\n /** Allow Show Checkbox */\r\n ShowCheckbox?: boolean;\r\n /** Allow Check ALL Items */\r\n EnableCheckAll?: boolean;\r\n /** Set key for item in DropdownList */\r\n ItemTempletkey: string = \"key\"\r\n /** Set value for item in DropdownList */\r\n ItemTempletvalue: string = \"value\"\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n NotFoundText: string = \"\"\r\n /** Represent Value of disabled items tooltip*/\r\n DisabledItemsTooltipValue: string\r\n\r\n}\r\n","import { FileType } from '../Enums/FileType';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class FileUploadOptions extends ControlOptionsBase {\r\n\r\n Value: any;\r\n /** Ability to set FileInput required */\r\n IsMultipleFile: boolean = false\r\n /** Sets boolean Value to Show IsDropZone Or Not */\r\n IsDropZone: boolean = false\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set Max Number Of Files */\r\n MaxNoOfFiles: number;\r\n /** Set Min Number Of Files */\r\n MinNoOfFiles: number;\r\n /** Set File MaxSizeForAllFilesInMB In MB */\r\n MaxSizeForAllFilesInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n FileUploadAcceptsTypes: FileType[]\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { Attribute } from './Attribute';\r\nimport { Misc } from '../Enums/Misc';\r\nimport { Style } from '../Enums/Style';\r\nimport { FontSize } from '../Enums/FontSize';\r\nimport { Para } from '../Enums/Para';\r\nimport { Insert } from '../Enums/Insert';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class HtmlEditorOptions extends ControlOptionsBase {\r\n /**To set value to HtmlEditor */\r\n Value:any\r\n //** Set the MaxLength of characters In HtmlEditor */\r\n MaxLength?:number\r\n /**Set the MinLength of characters In HtmlEditor */\r\n MinLength?:number\r\n/** to set Direction of HtmlEditor if HtmlEditor is Arabic or English */\r\n ForceDirection: ForceDirection=ForceDirection.English\r\n /** Set Height For */\r\n Height: number=5\r\n /** Set List of Custom Attribute to HtmlEditor */\r\n AttributeList:Attribute[]\r\n /** Set List of Misc like codeview Or undo Or redo */\r\n ToolsList_Misc?: Misc[];\r\n /** Set List of Style like bold Or italic Or underline Or clear */\r\n ToolsList_Style?: Style[];\r\n /** Set List of FontSize like fontname Or fontsize Or color */\r\n ToolsList_FontSize?: FontSize[];\r\n /** Set List of Para like style Or ul Or ol Or paragraph Or height */\r\n ToolsList_Para?: Para[];\r\n /** Set List of Insert like table Or picture Or link Or video Or hr */\r\n ToolsList_Insert?: Insert[];\r\n\r\n\r\n}\r\n","export enum ImageType\r\n{\r\n ImageTypes='image/png,image/bmp,image/jpeg',\r\n PNG='image/png',\r\n JPG='image/jpeg',\r\n JPEG='image/jpeg',\r\n SVG='image/svg+xml',\r\n None='',\r\n}","import { FileDTO } from './FileDTO';\r\nimport { ImageType } from '../Enums/ImageType';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ImageUploadOptions extends ControlOptionsBase {\r\n\r\n /**To set value to ImageUpload */\r\n Value: FileDTO\r\n /** Allow to Upload Multiple File */\r\n IsMultiple: boolean = false\r\n /** Allow to Use Drop Zone */\r\n AllowDropZone: boolean = true\r\n /** Sets an attribute AllowImageCropper=\"true\" */\r\n AllowImageCropper: boolean\r\n /** Set Height of Image Cropper Box */\r\n ImageCropperHeight: number\r\n /** Set Width of Image Cropper Box */\r\n ImageCropperWidth: number\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n FileUploadAcceptsTypes: ImageType[] = [ImageType.ImageTypes]\r\n /** Set Default Image */\r\n DefaultImageSrc: string\r\n}\r\n","import { MapAutocompleteDTO } from './MapAutocompleteDTO'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class MapAutoCompleteOptions extends ControlOptionsBase {\r\n /** Sets Value of MapAutoComplete */\r\n Value:MapAutocompleteDTO\r\n \r\n}\r\n","import { Country } from '../Enums/Countries';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class PhoneOptions extends ControlOptionsBase {\r\n\r\n /**To set value to Phonebox */\r\n Value: any\r\n /** To allow search in country list*/\r\n AllowSearch: boolean\r\n /**Allow To Show Placeholder */\r\n EnablePlaceholder: boolean\r\n /**Allow To Select First Country */\r\n SelectFirstCountry: boolean\r\n /**Set Selected Country To Phone Box*/\r\n SelectedCountryISO: Country\r\n /**Allow Phone Validation */\r\n PhoneValidation: boolean\r\n /**Set List Of Countries As Preferred Countries*/\r\n PreferredCountries: Country[] = []\r\n // **Set List Of Countries to show it in dropdown list and ignore another countries */\r\n OnlyCountries: Country[] = []\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}\r\n","export class RangeNumber\r\n{\r\n From?:number\r\n To?: number\r\n}","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\n\r\nexport class TextAreaOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In TextArea */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In TextArea */\r\n MinLength?: number\r\n /**Set Number Of Rows */\r\n Rows: number\r\n /**Set Number Of columns */\r\n Cols: number\r\n //** Set the MaxWordCount of characters In TextArea */\r\n MaxWordCount: number;\r\n /**Prevent AutoComplete of TextArea*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /** to set Direction of TextArea if TextArea is Arabic or English */\r\n ForceDirection: ForceDirection\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n}\r\n","export enum IconPosition {\r\n left = 1,\r\n right = 2\r\n }\r\n","import { InputType } from '../Enums/InputType';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { LanguageValidation } from '../Enums/LanguageValidation';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class TextBoxOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In TextBox */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In TextBox */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In TextBox */\r\n MaxWordCount: number;\r\n /** set Range Number to Textbox with type number with From-Value and To-value*/\r\n NumberRange: RangeNumber = new RangeNumber()\r\n /**Prevent AutoComplete of textbox default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefaultPasswordValidation: boolean\r\n /** to set Direction of textbox if textbox is Arabic or English */\r\n ForceDirection: ForceDirection = null\r\n /** to set Language of textbox if textbox language is Arabic or English */\r\n LanguageValidation: LanguageValidation = null\r\n /** Set Type of TextBox (\"text\",\"password\",\"email\",\"number\") */\r\n Type: InputType = InputType.Text;\r\n /** Set Mask Pattern Attribute to TextBox */\r\n MaskPattern: string\r\n /*icon options*/\r\n Icon: string\r\n IconPosition: IconPosition = IconPosition.left\r\n NoMargin: boolean = false;\r\n ValidationRules: any[] = [];\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ToggleSlideOptions extends ControlOptionsBase {\r\n\r\n /**Display validation message only on added repeater when add class \"v-required\"*/\r\n ValidationClasses: string\r\n /**To set value to ToggleSlide */\r\n Value: boolean\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}\r\n","import { Component, ComponentFactoryResolver, EmbeddedViewRef, Injectable, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n\r\n\r\n @Injectable()\r\n export class RenderComponentService {\r\n\r\n constructor( private componentFactoryResolver: ComponentFactoryResolver) {\r\n }\r\n \r\n renderDynamicComponent<T>(viewContainerRef: ViewContainerRef, component: any, group: FormGroup, options: any, size: number = 0) {\r\n let factory = this.componentFactoryResolver.resolveComponentFactory<T>(component)\r\n const componentRef = viewContainerRef.createComponent<T>(factory) as any;\r\n componentRef.instance.group = group;\r\n componentRef.instance.options = options;\r\n if (size > 0) {\r\n let htmlElement = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n // `element` is the element you want to wrap\r\n var parent = htmlElement.parentNode;\r\n var wrapper = document.createElement('div');\r\n wrapper.className = `col-md-${size}`\r\n // set the wrapper as child (instead of the element)\r\n parent.replaceChild(wrapper, htmlElement);\r\n // set element as child of wrapper\r\n wrapper.appendChild(htmlElement);\r\n }\r\n\r\n\r\n }\r\n}\r\n","import { Component, OnInit, Input, Optional, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup, ControlContainer, FormGroupDirective, AbstractControl, FormControl } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { ToggleSlideOptions } from '../../Shared/Models/ToggleslideOptions';\r\nimport { ControlValidationService, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'BBSF-Toggleslide',\r\n templateUrl: './Toggleslide.component.html'\r\n})\r\nexport class ToggleslideComponent implements OnInit {\r\n\r\n\r\n static controlContainerstatic = null;\r\n // tslint:disable-next-line: max-line-length\r\n constructor(private controlUtility: ControlUtility, @Optional() private controlContainer: ControlContainer,\r\n public ToggleslideControlHost: FormGroupDirective, public TextControlHost: FormGroupDirective,\r\n public UtilityService: UtilityService, private controlValidationService: ControlValidationService,\r\n private globalSettings: GlobalSettings) {\r\n ToggleslideComponent.controlContainerstatic = this.controlContainer;\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: ToggleSlideOptions;\r\n @Output() OnChange = new EventEmitter();\r\n ToggleslideFormControl: AbstractControl;\r\n SlideValue: boolean = false;\r\n markAllAsTouched: boolean = false;\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ToggleslideFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n let validationRules = [];\r\n let validationRulesasync = [];\r\n this.SlideValue = this.options.Value == undefined ? false : this.options.Value;\r\n\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n if (this.options.IsDisabled ||this.options.IsReadonly ) {\r\n this.ToggleslideFormControl.disable();\r\n }\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.AttributeList != null) {\r\n var element = document.getElementById(this.options.Name);\r\n for (let index = 0; index < this.options.AttributeList.length; index++) {\r\n element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n resetError() {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList: any[]): string {\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n changeValueToggle() {\r\n this.OnChange.emit(this.SlideValue)\r\n this.options.Value= this.SlideValue\r\n this.ToggleslideFormControl.setValue(this.SlideValue)\r\n if (this.options.PatchFunction && this.options.PatchPath && this.ToggleslideFormControl.valid) {\r\n this.controlUtility.patchControlValue(this.SlideValue,this.options.PatchFunction ,this.options.PatchPath)\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, Input, OnInit, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { FormGroup, FormGroupDirective } from '@angular/forms';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DataType } from '../../../Shared/Enums/Enums';\r\nimport { InputType } from '../../../Shared/Enums/InputType';\r\nimport { LanguageValidation } from '../../../Shared/Enums/LanguageValidation';\r\nimport { PickerType } from '../../../Shared/Enums/PickerType';\r\nimport { SelectMode } from '../../../Shared/Enums/SelectMode';\r\nimport { StartView } from '../../../Shared/Enums/StartView';\r\nimport { DatePickerOptions } from '../../../Shared/Models/datePickerOptions';\r\nimport { DropdownOptions } from '../../../Shared/Models/DropdownOptions';\r\nimport { FileUploadOptions } from '../../../Shared/Models/FileUploadOptions';\r\nimport { HtmlEditorOptions } from '../../../Shared/Models/HtmlEditorOptions';\r\nimport { ImageUploadOptions } from '../../../Shared/Models/ImageUploadOptions';\r\nimport { MapAutoCompleteOptions } from '../../../Shared/Models/MapAutoCompleteOptions';\r\nimport { PhoneOptions } from '../../../Shared/Models/PhoneOptions';\r\nimport { RangeNumber } from '../../../Shared/Models/RangeNumber';\r\nimport { RepeaterField } from '../../../Shared/Models/RepeaterField';\r\nimport { TextAreaOptions } from '../../../Shared/Models/TextAreaOptions';\r\nimport { TextBoxOptions } from '../../../Shared/Models/TextBoxOptions';\r\nimport { ToggleSlideOptions } from '../../../Shared/Models/ToggleslideOptions';\r\nimport { RenderComponentService } from '../../../Shared/services/render-component-service.service';\r\nimport { DateInputComponent } from '../../DateTimePicker/DateTimePicker.component';\r\nimport { DropdownListComponent } from '../../DropdownList/DropdownList.component';\r\nimport { FileUploadComponent } from '../../FileUplaod/FileUplaod.component';\r\nimport { HtmlEditorComponent } from '../../HtmlEditor/HtmlEditor.component';\r\nimport { ImageUploaderComponent } from '../../ImageUpload/ImageUpload.component';\r\nimport { MapAutoCompleteComponent } from '../../MapAutoComplete/MapAutoComplete.component';\r\nimport { PhoneComponent } from '../../Phone/Phone.component';\r\nimport { TextAreaComponent } from '../../TextArea/TextArea.component';\r\nimport { TextboxComponent } from '../../TextBox/TextBox.component';\r\nimport { ToggleslideComponent } from '../../Toggleslide/toggleslide.component';\r\n\r\n\r\n@Component({\r\n selector: 'repeater-field-builder',\r\n templateUrl: './repeater-field-builder.component.html',\r\n})\r\nexport class RepeaterFieldBuilderComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild(\"Item\", { read: ViewContainerRef }) Item: ViewContainerRef;\r\n @Input() group: FormGroup;\r\n @Input() itemNumber: number;\r\n @Input() controlNumber: number;\r\n @Input() RepeaterField: RepeaterField;\r\n @Input() itemsValue: any[] = [];\r\n itemValue: any = null;\r\n value: any;\r\n\r\n constructor(private renderComponentService: RenderComponentService, public TextControlHost: FormGroupDirective) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n if (this.itemsValue.length > 0)\r\n this.itemValue = this.itemsValue[this.itemNumber]\r\n if (this.itemValue) {\r\n for (const key in this.itemValue) {\r\n if (Object.prototype.hasOwnProperty.call(this.itemValue, key) && key == this.RepeaterField.ControlOptions.Name) {\r\n const element = this.itemValue[key];\r\n this.value = element;\r\n }\r\n }\r\n }\r\n this.Item.clear()\r\n switch (this.RepeaterField.ControlType) {\r\n ///TextBox\r\n case DataType.Text:\r\n let Text = new TextBoxOptions();\r\n Text.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Text.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Text.Type = InputType.Text;\r\n Text.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Text.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Text.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Text.Value = this.value;\r\n Text.IsReadonly = this.RepeaterField.ControlOptions.IsReadonly;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Text)\r\n break;\r\n\r\n case DataType.Name:\r\n let Name = new TextBoxOptions();\r\n Name.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Name.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Name.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Name.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Name.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Name.Type = InputType.Text;\r\n Name.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Name)\r\n break;\r\n\r\n case DataType.Email:\r\n let Email = new TextBoxOptions();\r\n Email.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Email.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Email.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Email.Type = InputType.Email;\r\n Email.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Email)\r\n break;\r\n\r\n case DataType.Number:\r\n let Number = new TextBoxOptions();\r\n Number.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Number.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Number.LanguageValidation = this.RepeaterField.ControlOptions.LanguageValidation;\r\n Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Number.Type = InputType.Number;\r\n let rangeNumber = new RangeNumber()\r\n if(this.RepeaterField.ControlOptions.NumberRange){\r\n rangeNumber.To = this.RepeaterField.ControlOptions.NumberRange.To\r\n rangeNumber.From = this.RepeaterField.ControlOptions.NumberRange.From\r\n }\r\n Number.NumberRange = rangeNumber;\r\n Number.Value = this.value;\r\n Number.IsReadonly = this.RepeaterField.ControlOptions.IsReadonly;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Number)\r\n break;\r\n\r\n ///DateTime\r\n case DataType.Date:\r\n let Date = new DatePickerOptions();\r\n Date.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Date.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Date.PickerType = PickerType.Calendar;\r\n Date.SelectMode = SelectMode.Single\r\n Date.StartView = StartView.Month\r\n Date.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Date)\r\n break;\r\n\r\n case DataType.DateTime:\r\n let DateTime = new DatePickerOptions();\r\n DateTime.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n DateTime.PickerType = PickerType.Both;\r\n DateTime.SelectMode = SelectMode.Single\r\n DateTime.StartView = StartView.Month\r\n DateTime.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, DateTime)\r\n break;\r\n\r\n case DataType.Time:\r\n let Time = new DatePickerOptions();\r\n Time.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Time.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Time.PickerType = PickerType.Timer;\r\n Time.SelectMode = SelectMode.Single\r\n Time.StartView = StartView.Month\r\n Time.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Time)\r\n break;\r\n\r\n //Dropdown\r\n case DataType.SingleSelect:\r\n let SingleSelect = new DropdownOptions();\r\n SingleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n SingleSelect.SingleSelection = true\r\n SingleSelect.ShowCheckbox = false\r\n SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n SingleSelect.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, SingleSelect)\r\n break;\r\n case DataType.MulipleSelect:\r\n let MulipleSelect = new DropdownOptions();\r\n MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n MulipleSelect.SingleSelection = false\r\n MulipleSelect.ShowCheckbox = false\r\n MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n MulipleSelect.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, MulipleSelect)\r\n break;\r\n case DataType.Goal:\r\n let Goal = new DropdownOptions();\r\n Goal.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Goal.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Goal.ShowCheckbox = false\r\n Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Goal.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Goal)\r\n break;\r\n case DataType.Challenge:\r\n let Challenge = new DropdownOptions();\r\n Challenge.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Challenge.ShowCheckbox = false\r\n Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Challenge.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Challenge)\r\n break;\r\n case DataType.InnovationLab:\r\n let InnovationLab = new DropdownOptions();\r\n InnovationLab.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n InnovationLab.ShowCheckbox = false\r\n InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n InnovationLab.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, InnovationLab)\r\n break;\r\n case DataType.Country:\r\n let Country = new DropdownOptions();\r\n Country.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Country.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Country.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Country.ShowCheckbox = false\r\n Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Country.SelectedItems = this.value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Country)\r\n break;\r\n\r\n //FileUpload\r\n case DataType.File:\r\n let File = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n File.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, File)\r\n break;\r\n case DataType.MultiFile:\r\n let MultiFile = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount\r\n MultiFile.IsMultipleFile = true;\r\n MultiFile.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, MultiFile)\r\n break;\r\n //ImageUpload\r\n case DataType.Image:\r\n let Image = new ImageUploadOptions();\r\n Image.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Image.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n Image.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, Image)\r\n break;\r\n case DataType.CoverPhoto:\r\n let CoverPhoto = new ImageUploadOptions();\r\n CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n CoverPhoto.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, CoverPhoto)\r\n break;\r\n //Mobile\r\n case DataType.Mobile:\r\n let Mobile = new PhoneOptions();\r\n Mobile.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Mobile.AllowSearch = true;\r\n Mobile.PhoneValidation = true;\r\n Mobile.SelectFirstCountry = true;\r\n Mobile.EnablePlaceholder = true\r\n Mobile.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<PhoneComponent>(this.Item, PhoneComponent, this.group, Mobile)\r\n break;\r\n //MultilineText\r\n case DataType.MultilineText:\r\n let MultilineText = new TextAreaOptions();\r\n MultilineText.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength\r\n MultilineText.Rows = this.RepeaterField.ControlOptions.rows;\r\n MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n MultilineText.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<TextAreaComponent>(this.Item, TextAreaComponent, this.group, MultilineText)\r\n break;\r\n //HTML\r\n case DataType.HTML:\r\n let HTML = new HtmlEditorOptions();\r\n HTML.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n HTML.MinLength = this.RepeaterField.ControlOptions.minLength\r\n HTML.Height = this.RepeaterField.ControlOptions.rows;\r\n HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n HTML.Value = this.value;\r\n this.renderComponentService.renderDynamicComponent<HtmlEditorComponent>(this.Item, HtmlEditorComponent, this.group, HTML)\r\n break;\r\n //Boolean\r\n case DataType.Boolean:\r\n let Boolean = new ToggleSlideOptions();\r\n Boolean.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Boolean.Value = this.value;\r\n Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n this.renderComponentService.renderDynamicComponent<ToggleslideComponent>(this.Item, ToggleslideComponent, this.group, Boolean)\r\n break;\r\n //Location\r\n case DataType.Location:\r\n let Location = new MapAutoCompleteOptions();\r\n Location.Name = this.RepeaterField.ControlOptions.Name + \".\" + this.itemNumber.toString() + \".\" + this.controlNumber.toString()\r\n Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Location.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Location.Value = this.value;\r\n Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n this.renderComponentService.renderDynamicComponent<MapAutoCompleteComponent>(this.Item, MapAutoCompleteComponent, this.group, Location)\r\n break;\r\n default:\r\n break;\r\n }\r\n }, 0);\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.itemNumber)\r\n if (changes.itemNumber.previousValue) {\r\n let name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.previousValue.toString() + \".\" + this.controlNumber.toString()\r\n let value = this.group.controls[name].value\r\n this.Item.clear()\r\n this.group.removeControl(name)\r\n switch (this.RepeaterField.ControlType) {\r\n ///TextBox\r\n case DataType.Text:\r\n let Text = new TextBoxOptions();\r\n Text.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Text.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Text.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Text.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Text.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Text.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Text.Type = InputType.Text;\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Text.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Text.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Text.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Text)\r\n break;\r\n\r\n case DataType.Name:\r\n let Name = new TextBoxOptions();\r\n Name.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Name.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Name.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Name.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Name.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Name.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n Name.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n Name.MinLength = this.RepeaterField.ControlOptions.minLength\r\n Name.Type = InputType.Text;\r\n Name.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Name)\r\n break;\r\n\r\n case DataType.Email:\r\n let Email = new TextBoxOptions();\r\n Email.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Email.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Email.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Email.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Email.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Email.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Email.Type = InputType.Email;\r\n Email.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Email)\r\n break;\r\n\r\n case DataType.Number:\r\n let Number = new TextBoxOptions();\r\n Number.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Number.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Number.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Number.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Number.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Number.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Number.Type = InputType.Number;\r\n let rangeNumber = new RangeNumber()\r\n rangeNumber.To = this.RepeaterField.ControlOptions.maxLength\r\n rangeNumber.From = this.RepeaterField.ControlOptions.minLength\r\n Number.NumberRange = rangeNumber;\r\n Number.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextboxComponent>(this.Item, TextboxComponent, this.group, Number)\r\n break;\r\n\r\n ///DateTime\r\n case DataType.Date:\r\n let Date = new DatePickerOptions();\r\n Date.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Date.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Date.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Date.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Date.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Date.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Date.PickerType = PickerType.Calendar;\r\n Date.SelectMode = SelectMode.Single\r\n Date.StartView = StartView.Month\r\n Date.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Date)\r\n break;\r\n\r\n case DataType.DateTime:\r\n let DateTime = new DatePickerOptions();\r\n DateTime.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n DateTime.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n DateTime.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n DateTime.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n DateTime.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n DateTime.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n DateTime.PickerType = PickerType.Both;\r\n DateTime.SelectMode = SelectMode.Single\r\n DateTime.StartView = StartView.Month\r\n DateTime.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, DateTime)\r\n break;\r\n\r\n case DataType.Time:\r\n let Time = new DatePickerOptions();\r\n Time.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Time.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Time.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Time.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Time.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Time.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Time.PickerType = PickerType.Timer;\r\n Time.SelectMode = SelectMode.Single\r\n Time.StartView = StartView.Month\r\n Time.Value = value;\r\n this.renderComponentService.renderDynamicComponent<DateInputComponent>(this.Item, DateInputComponent, this.group, Time)\r\n break;\r\n\r\n //Dropdown\r\n case DataType.SingleSelect:\r\n let SingleSelect = new DropdownOptions();\r\n SingleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n SingleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n SingleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n SingleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n SingleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n SingleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n SingleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n SingleSelect.SingleSelection = true\r\n SingleSelect.ShowCheckbox = false\r\n SingleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n SingleSelect.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, SingleSelect)\r\n break;\r\n case DataType.MulipleSelect:\r\n let MulipleSelect = new DropdownOptions();\r\n MulipleSelect.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n MulipleSelect.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MulipleSelect.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MulipleSelect.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MulipleSelect.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MulipleSelect.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MulipleSelect.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n MulipleSelect.SingleSelection = false\r\n MulipleSelect.ShowCheckbox = false\r\n MulipleSelect.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n MulipleSelect.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, MulipleSelect)\r\n break;\r\n case DataType.Goal:\r\n let Goal = new DropdownOptions();\r\n Goal.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Goal.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Goal.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Goal.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Goal.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Goal.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Goal.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Goal.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Goal.ShowCheckbox = false\r\n Goal.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Goal.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Goal)\r\n break;\r\n case DataType.Challenge:\r\n let Challenge = new DropdownOptions();\r\n Challenge.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Challenge.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Challenge.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Challenge.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Challenge.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Challenge.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Challenge.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Challenge.ShowCheckbox = false\r\n Challenge.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Challenge.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Challenge)\r\n break;\r\n case DataType.InnovationLab:\r\n let InnovationLab = new DropdownOptions();\r\n InnovationLab.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n InnovationLab.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n InnovationLab.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n InnovationLab.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n InnovationLab.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n InnovationLab.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n InnovationLab.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n InnovationLab.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n InnovationLab.ShowCheckbox = false\r\n InnovationLab.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n InnovationLab.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, InnovationLab)\r\n break;\r\n case DataType.Country:\r\n let Country = new DropdownOptions();\r\n Country.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Country.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Country.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Country.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Country.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Country.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Country.DataSource = this.RepeaterField.ControlOptions.dataSource\r\n Country.SingleSelection = !this.RepeaterField.ControlOptions.isMultiple\r\n Country.ShowCheckbox = false\r\n Country.AllowSearchFilter = this.RepeaterField.ControlOptions.hasSearch\r\n Country.SelectedItems = value;\r\n this.renderComponentService.renderDynamicComponent<DropdownListComponent>(this.Item, DropdownListComponent, this.group, Country)\r\n break;\r\n\r\n //FileUpload\r\n case DataType.File:\r\n let File = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n File.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n File.Value = value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, File)\r\n break;\r\n case DataType.MultiFile:\r\n let MultiFile = new FileUploadOptions();\r\n File.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n File.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n File.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n File.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n File.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n File.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n MultiFile.MaxSizeForAllFilesInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n MultiFile.MaxNoOfFiles = this.RepeaterField.ControlOptions.maxFileCount\r\n MultiFile.IsMultipleFile = true;\r\n MultiFile.Value = value;\r\n this.renderComponentService.renderDynamicComponent<FileUploadComponent>(this.Item, FileUploadComponent, this.group, MultiFile)\r\n break;\r\n //ImageUpload\r\n case DataType.Image:\r\n let Image = new ImageUploadOptions();\r\n Image.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Image.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Image.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Image.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Image.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Image.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n Image.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n Image.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, Image)\r\n break;\r\n case DataType.CoverPhoto:\r\n let CoverPhoto = new ImageUploadOptions();\r\n CoverPhoto.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n CoverPhoto.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n CoverPhoto.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n CoverPhoto.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n CoverPhoto.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n CoverPhoto.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxFileSizeInMB)\r\n CoverPhoto.FileMaxSizeInMB = this.RepeaterField.ControlOptions.maxFileSizeInMB\r\n CoverPhoto.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ImageUploaderComponent>(this.Item, ImageUploaderComponent, this.group, CoverPhoto)\r\n break;\r\n //Mobile\r\n case DataType.Mobile:\r\n let Mobile = new PhoneOptions();\r\n Mobile.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Mobile.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Mobile.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Mobile.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Mobile.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Mobile.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Mobile.AllowSearch = true;\r\n Mobile.PhoneValidation = true;\r\n Mobile.SelectFirstCountry = true;\r\n Mobile.EnablePlaceholder = true\r\n Mobile.Value = value;\r\n this.renderComponentService.renderDynamicComponent<PhoneComponent>(this.Item, PhoneComponent, this.group, Mobile)\r\n break;\r\n //MultilineText\r\n case DataType.MultilineText:\r\n let MultilineText = new TextAreaOptions();\r\n MultilineText.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n MultilineText.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n MultilineText.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n MultilineText.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n MultilineText.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n MultilineText.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n MultilineText.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n MultilineText.MinLength = this.RepeaterField.ControlOptions.minLength\r\n MultilineText.Rows = this.RepeaterField.ControlOptions.rows;\r\n MultilineText.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n MultilineText.Value = value;\r\n this.renderComponentService.renderDynamicComponent<TextAreaComponent>(this.Item, TextAreaComponent, this.group, MultilineText)\r\n break;\r\n //HTML\r\n case DataType.HTML:\r\n let HTML = new HtmlEditorOptions();\r\n HTML.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n HTML.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n HTML.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n HTML.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n HTML.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n HTML.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n if (this.RepeaterField.ControlOptions.maxLength)\r\n HTML.MaxLength = this.RepeaterField.ControlOptions.maxLength\r\n if (this.RepeaterField.ControlOptions.minLength)\r\n HTML.MinLength = this.RepeaterField.ControlOptions.minLength\r\n HTML.Height = this.RepeaterField.ControlOptions.rows;\r\n HTML.ForceDirection = this.RepeaterField.ControlOptions.ForceDirection\r\n HTML.Value = value;\r\n this.renderComponentService.renderDynamicComponent<HtmlEditorComponent>(this.Item, HtmlEditorComponent, this.group, HTML)\r\n break;\r\n //Boolean\r\n case DataType.Boolean:\r\n let Boolean = new ToggleSlideOptions();\r\n Boolean.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Boolean.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Boolean.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Boolean.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Boolean.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Boolean.Value = value;\r\n this.renderComponentService.renderDynamicComponent<ToggleslideComponent>(this.Item, ToggleslideComponent, this.group, Boolean)\r\n break;\r\n //Location\r\n case DataType.Location:\r\n let Location = new MapAutoCompleteOptions();\r\n Location.Name = this.RepeaterField.ControlOptions.Name + \".\" + changes.itemNumber.currentValue + \".\" + this.controlNumber.toString()\r\n Location.HideLabel = this.RepeaterField.ControlOptions.HideLabel\r\n Location.LabelKey = this.RepeaterField.ControlOptions.LabelKey\r\n Location.IsRequired = this.RepeaterField.ControlOptions.IsRequired;\r\n Location.ViewType = this.RepeaterField.ControlOptions.ViewType;\r\n Location.LabelDescription = this.RepeaterField.ControlOptions.LabelDescription ? this.RepeaterField.ControlOptions.LabelDescription : \"\"\r\n Location.Value = value;\r\n this.renderComponentService.renderDynamicComponent<MapAutoCompleteComponent>(this.Item, MapAutoCompleteComponent, this.group, Location)\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'repeater-item-field',\r\n templateUrl: './repeater-item-field.component.html'\r\n})\r\nexport class RepeaterItemFieldComponent implements OnInit {\r\n @Input() templates: Array<TemplateRef<any>>;\r\n @Input() filedIndex: number;\r\n @Input() itemIndex: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, QueryList, TemplateRef, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { RepeaterOptions } from '../../../Shared/Models/RepeaterOptions';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\n\r\n\r\n@Component({\r\n selector: 'BBSF-repeater-table',\r\n templateUrl: './repeater-table.component.html',\r\n})\r\nexport class RepeaterTableComponent implements OnInit { \r\n @Input() group: FormGroup;\r\n @Input() options: RepeaterOptions;\r\n items: number[] = []\r\n repeaterGroup: FormGroup;\r\n originalItems:any []=[];\r\n\r\n constructor(public utilityService:UtilityService) { }\r\n\r\n ngOnInit(): void {\r\n this.repeaterGroup = new FormGroup({});\r\n this.group.addControl(this.options.Name, this.repeaterGroup);\r\n if(this.options.RepeaterValue.length>0)\r\n {\r\n this.originalItems= this.options.RepeaterValue;\r\n for (let index = 0; index < this.options.RepeaterValue.length; index++) {\r\n this.items.push(index);\r\n }\r\n }\r\n \r\n else\r\n for (let index = 0; index < this.options.MinRequiredItems; index++) {\r\n this.items.push(index);\r\n }\r\n this.repeaterGroup.valueChanges.subscribe((res) => {\r\n let result = [];\r\n let rowNumber = [];\r\n let addItems = [];\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n const keySplitArr = key.split('.')\r\n let item = {\r\n [keySplitArr[1]]: { [keySplitArr[0]]: this.group.controls[this.options.Name].value[key] }\r\n }\r\n addItems.push(item)\r\n if (!rowNumber.includes(keySplitArr[1]))\r\n rowNumber.push(keySplitArr[1])\r\n }\r\n }\r\n for (let index = 0; index < rowNumber.length; index++) {\r\n const row = rowNumber[index];\r\n let addObject = {}\r\n let filteredElements = addItems.filter(item => item[row])\r\n for (let index = 0; index < filteredElements.length; index++) {\r\n const filteredElement = filteredElements[index];\r\n for (const key in filteredElement) {\r\n if (Object.prototype.hasOwnProperty.call(filteredElement, key)) {\r\n const element = filteredElement[key];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n const value = element[key];\r\n addObject[key] = value\r\n }\r\n }\r\n }\r\n }\r\n }\r\n result.push(addObject)\r\n }\r\n this.options.RepeaterValue = result;\r\n })\r\n\r\n }\r\n\r\n deleteItem(Index) {\r\n if (this.items.length == this.options.MinRequiredItems && this.options.IsRequired)\r\n return;\r\n let deletedControls: any[] = []\r\n let controlNames = this.options.RepeaterStructure.map(e => e.ControlOptions.Name)\r\n for (const key in this.repeaterGroup.controls) {\r\n if (Object.prototype.hasOwnProperty.call(this.repeaterGroup.controls, key)) {\r\n for (let index = 0; index < controlNames.length; index++) {\r\n const element = controlNames[index];\r\n const keySplitArr = key.split('.')\r\n if (keySplitArr[0] + keySplitArr[1] == `${element}${Index}`) {\r\n const element = this.repeaterGroup.controls[key];\r\n deletedControls.push({ [key]: element })\r\n }\r\n }\r\n }\r\n }\r\n for (let index = 0; index < deletedControls.length; index++) {\r\n const element = deletedControls[index];\r\n for (const key in element) {\r\n if (Object.prototype.hasOwnProperty.call(element, key)) {\r\n this.repeaterGroup.removeControl(key)\r\n }\r\n }\r\n }\r\n\r\n this.items = this.items.filter((res) => res != this.items[Index])\r\n }\r\n\r\n addItem() {\r\n if(this.items.length==0)\r\n this.items.push(this.items.length);\r\n else\r\n this.items.push(this.items[this.items.length-1]+1);\r\n}\r\n\r\n\r\n}\r\n","export class RecaptchaModel\r\n{\r\n ID:string;\r\n Text:string;\r\n EncryptedText:string\r\n ImageJpeg:any[]=[];\r\n}","export class CaptchaStyle {\r\n /*Pass hexa-color primary background color*/\r\n BackgroundColorPrimary: string\r\n /*Pass hexa-color secondary background color*/\r\n BackgroundColorSecondary: string\r\n /*Pass hexa-color primary text color*/\r\n TextColorPrimary: string\r\n /*Pass hexa-color secondary text color*/\r\n TextColorSecondary: string\r\n /*Pass font Size */\r\n FontSize: number\r\n}","import { Component, OnInit, Input, Optional, Output, EventEmitter } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { ControlUtility } from '../../Shared/services/ControlUtility';\r\nimport { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { GlobalSettings } from '../../Shared/services/GlobalSettings.service';\r\nimport { RecaptchaOptions } from '../../Shared/Models/RecaptchaOptions';\r\nimport { RecaptchaModel } from '../../Shared/Models/Recaptcha';\r\nimport { CaptchaStyle } from '../../Shared/Models/CaptchaStyle';\r\n\r\n@Component({\r\n selector: 'BBSF-Recaptcha',\r\n templateUrl: './Recaptcha.component.html',\r\n})\r\nexport class RecaptchaComponent implements OnInit {\r\n markAllAsTouched: boolean;\r\n constructor(private controlUtility: ControlUtility, private requestHandlerService: RequestHandlerService,\r\n public recaptchaControlHost: FormGroupDirective, public UtilityService: UtilityService,\r\n private controlValidationService: ControlValidationService, private globalSettings: GlobalSettings) {\r\n }\r\n @Input() group: FormGroup;\r\n @Input() options: RecaptchaOptions;\r\n @Output() OnChange = new EventEmitter();\r\n\r\n ReCaptchaFormControl: AbstractControl;\r\n validationRules = [];\r\n validationRulesAsync = [];\r\n image: string\r\n recaptchaModel: RecaptchaModel = new RecaptchaModel();\r\n textDir;\r\n\r\n ngOnInit() {\r\n if(this.options.ForceDirection)\r\n this.textDir=this.options.ForceDirection==2?'rtl':'ltr';\r\n else\r\n this.textDir=localStorage.getItem('language')=='ar'?'rtl':'ltr';\r\n this.controlValidationService.isCreatedBefor = false\r\n\r\n this.loadImage();\r\n if (!this.options.ViewType)\r\n this.options.ViewType = this.globalSettings.ViewType;\r\n\r\n this.group.addControl(this.options.Name, new FormControl(''));\r\n this.ReCaptchaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);\r\n\r\n if (this.options.LabelKey != null && this.options.LabelKey != \"\")\r\n this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);\r\n\r\n if (this.options.IsRequired) {\r\n this.validationRules.push(Validators.required);\r\n }\r\n if (this.options.CustomValidation.length > 0) {\r\n let Validations = this.options.CustomValidation\r\n for (let index = 0; index < Validations.length; index++) {\r\n const Validation = Validations[index];\r\n this.validationRules.push(Validation.functionBody);\r\n }\r\n\r\n }\r\n this.ReCaptchaFormControl.setValidators(this.validationRules);\r\n this.ReCaptchaFormControl.setAsyncValidators(this.validationRulesAsync);\r\n if (this.options.IsDisabled) {\r\n this.ReCaptchaFormControl.disable();\r\n }\r\n\r\n this.recaptchaControlHost.ngSubmit.subscribe((value) => {\r\n this.group.markAllAsTouched()\r\n this.markAllAsTouched = true\r\n })\r\n }\r\n\r\n loadImage() {\r\n let style: CaptchaStyle = new CaptchaStyle();\r\n style.BackgroundColorPrimary = this.options.BackgroundColorPrimary;\r\n style.BackgroundColorSecondary = this.options.BackgroundColorSecondary;\r\n style.TextColorPrimary= this.options.TextColorPrimary;\r\n style.TextColorSecondary = this.options.TextColorSecondary;\r\n style.FontSize = this.options.FontSize;\r\n let requestOptionsModel = new RequestOptionsModel()\r\n requestOptionsModel.disableBlockUI = true;\r\n requestOptionsModel.disableSuccessNotification = true;\r\n this.requestHandlerService.post(this.options.ActionURL, style, null, null, requestOptionsModel).subscribe((res) => {\r\n let model = res as any\r\n this.recaptchaModel.ID = model.id;\r\n this.recaptchaModel.EncryptedText = model.encryptedText;\r\n this.recaptchaModel.ImageJpeg = model.imageJpeg;\r\n this.image = 'data:image/jpeg;base64,' + this.recaptchaModel.ImageJpeg;\r\n })\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.controlUtility.setAttributeForControl(this.options)\r\n }\r\n\r\n resetError = () => {\r\n this.controlValidationService.RemoveGlobalError();\r\n }\r\n\r\n showGlobalError() {\r\n this.controlUtility.showGlobalError()\r\n }\r\n\r\n getErrorValidation(ErrorList) {\r\n\r\n if (this.markAllAsTouched && this.group.invalid) {\r\n this.showGlobalError()\r\n this.markAllAsTouched = false\r\n }\r\n\r\n return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);\r\n }\r\n\r\n\r\n onTextChange(valueText) {\r\n let value = valueText.target.value;\r\n this.recaptchaModel.Text = value;\r\n this.group.get(this.options.Name).setValue(this.recaptchaModel);\r\n this.options.Value = this.recaptchaModel;\r\n this.OnChange.emit(this.ReCaptchaFormControl.value);\r\n }\r\n //External Method\r\n RemoveRequiredValidation = () => {\r\n this.controlUtility.RemoveRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options)\r\n }\r\n //External Method\r\n AddRequiredValidation = () => {\r\n this.controlUtility.AddRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options)\r\n }\r\n\r\n //External Method\r\n RemoveCustomValidation = (CustomValidation) => {\r\n this.controlUtility.RemoveCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n AddCustomValidation = (CustomValidation) => {\r\n this.controlUtility.AddCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation)\r\n }\r\n //External Method\r\n IsValid = () => {\r\n this.controlUtility.IsValid(this.ReCaptchaFormControl)\r\n }\r\n}\r\n\r\n\r\n","import { Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { UtilityService } from '@bnsights/bbsf-utilities';\r\nimport { DataType } from '../../Shared/Enums/Enums';\r\nimport { PageHeaderOptions } from '../../Shared/Models/page-header-options';\r\n@Component({\r\n selector: 'bbsf-page-header-component',\r\n templateUrl: './page-header-component.component.html'\r\n})\r\nexport class PageHeaderComponentComponent implements OnInit {\r\n EN: boolean;\r\n @Input() group: FormGroup;\r\n @Input() options: PageHeaderOptions;\r\n\r\n public DataTypeEnum = DataType;\r\n\r\n constructor(private router: Router,public utilityService: UtilityService) {\r\n \r\n }\r\n\r\n translate(key: string): string {\r\n return this.utilityService.getResourceValue(key);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.EN = this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'bbsfDateTime'\r\n})\r\nexport class BBSFDateTimePipe implements PipeTransform {\r\n\r\n constructor(public datePipe: DatePipe) { }\r\n transform(value: Date) {\r\n let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');\r\n return latest_date;\r\n }\r\n}\r\n\r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'bbsfDate'\r\n})\r\nexport class BBSFDatePipe implements PipeTransform {\r\n\r\n constructor(public datePipe: DatePipe){}\r\n transform(value: Date) {\r\n let latest_date =this.datePipe.transform(value, 'dd/MM/yyyy');\r\n return latest_date;\r\n }\r\n\r\n}\r\n","\r\nimport { ModuleWithProviders } from '@angular/core';\r\nexport enum TagInputView {\r\n WithImage = 1,\r\n WithoutImage = 2,\r\n WithInitial = 3,\r\n \r\n }","import { Component, forwardRef, Input, Output, EventEmitter, OnChanges, SimpleChanges, DoCheck, OnInit } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead/public_api';\r\nimport { TagInputView } from '../Enums/TagInputView';\r\n\r\nconst noop = () => { };\r\n\r\nconst TAGS_INPUT_TEMPLATE = `\r\n\r\n<div class=\"tags-input\">\r\n<span class=\"tags-input__tag label label-primary badge badge-primary\" *ngFor=\"let tag of tags\">\r\n\r\n<span [ngSwitch]=\"ViewMode\">\r\n<span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\r\n<img style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\r\nsrc=\"{{(tag.imageURL?tag.imageURL:defaultImageURL)}}\" />\r\n</span>\r\n\r\n<span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\r\n<div class=\"user-initials\">{{calculateInitials(tag.name)}}</div>\r\n</span>\r\n\r\n<span *ngSwitchDefault>\r\n</span>\r\n\r\n</span>\r\n {{tag[displayField]}}\r\n <span *ngIf=\"isDeleteable(tag)\" role=\"button\" class=\"tags-input__tag-remove-btn\" (click)=\"removeTag(tag)\"\r\n (touch)=\"removeTag(tag)\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span class=\"sr-only\">Close</span>\r\n </span>\r\n</span>\r\n\r\n<input *ngIf=\"options === null; else withTypeahead\" class=\"tags-input__input-field\" type=\"text\"\r\n [placeholder]=\"getPlaceholder()\" name=\"tags\" (keyup.enter)=\"addTag(tagInput)\"\r\n (keydown.backspace)=\"removeLastTag(tagInput)\" [disabled]=\"!canAddTags || maximumOfTagsReached()\"\r\n [hidden]=\"!canAddTags || maximumOfTagsReached()\" #tagInput />\r\n\r\n<ng-template #withTypeahead>\r\n <span [ngSwitch]=\"ViewMode\">\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithImage\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithImage\" [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithoutImage\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchCase=\"tagInputViewEnum.WithInitial\">\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutInitial\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n <span *ngSwitchDefault>\r\n <input *ngIf=\"(options !== null)\" class=\"tags-input__input-field\" type=\"text\" [placeholder]=\"getPlaceholder()\"\r\n name=\"tags\" (keydown.backspace)=\"removeLastTag(tagInput)\" [(ngModel)]=\"selected\" [typeahead]=\"options\"\r\n [typeaheadOptionField]=\"displayField\" (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\r\n (typeaheadNoResults)=\"typeaheadOnNoMatch($event)\" [typeaheadMinLength]=\"minLengthBeforeOptions\"\r\n [typeaheadScrollable]=\"scrollableOptions\" [typeaheadLatinize]=\"true\"\r\n [typeaheadItemTemplate]=\"itemTemplateWithoutImage\"\r\n [typeaheadOptionsInScrollableView]=\"scrollableOptionsInView\"\r\n [disabled]=\"!canAddTags || maximumOfTagsReached()\" [hidden]=\"!canAddTags || maximumOfTagsReached()\"\r\n (blur)=\"onBlur()\" autocomplete=\"off\"\r\n #tagInput />\r\n </span>\r\n\r\n </span>\r\n\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithImage let-model=\"item\" let-index=\"index\">\r\n <img\r\n style=\"border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;\"\r\n src=\"{{(model.imageURL?model.imageURL:defaultImageURL)}}\" />\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithoutImage let-model=\"item\" let-index=\"index\">\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #itemTemplateWithoutInitial let-model=\"item\" let-index=\"index\">\r\n <div class=\"user-image\">\r\n <div class=\"user-initials\">{{calculateInitials(model.name)}}</div>\r\n </div>\r\n <div>\r\n <a [innerHTML]=\"model.name\"></a>\r\n <p *ngIf=\"showDescription\">\r\n {{model.description}}\r\n </p>\r\n </div>\r\n</ng-template>\r\n</div>\r\n`;\r\n\r\nconst TAGS_INPUT_STYLE = `\r\n :host {\r\n overflow: auto;\r\n white-space: nowrap;\r\n }\r\n\r\n .tags-input {\r\n align-items: center;\r\n display: flex;\r\n flex-wrap: wrap;\r\n }\r\n\r\n .tags-input__tag {\r\n display: inline-block;\r\n margin-bottom: 2px;\r\n margin-right: 5px;\r\n padding-right: 0.3em;\r\n }\r\n\r\n .tags-input__tag-remove-btn {\r\n cursor: pointer;\r\n display: inline-block;\r\n font-size: 12px;\r\n margin: -3px 0 0 3px;\r\n padding: 0;\r\n vertical-align: top;\r\n }\r\n\r\n .tags-input__input-field {\r\n border: none;\r\n flex-grow: 1;\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => BTagsInputComponent),\r\n multi: true\r\n};\r\n\r\nexport interface TagsChangedEvent {\r\n change: string,\r\n tag: any\r\n}\r\n\r\n@Component({\r\n selector: 'b-tags-input',\r\n template: TAGS_INPUT_TEMPLATE,\r\n styles: [TAGS_INPUT_STYLE],\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class BTagsInputComponent implements ControlValueAccessor {\r\n\r\n selected: string = '';\r\n public tags: Array<any> = [];\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n public tagInputViewEnum = TagInputView;\r\n @Input() maxTags: number;\r\n @Input() removeLastOnBackspace: boolean = false;\r\n @Input() canDeleteTags: boolean = true;\r\n @Input() canAddTags: boolean = true;\r\n @Input() ViewMode: TagInputView = TagInputView.WithoutImage;\r\n @Input() placeholder: string = '';\r\n @Input() showDescription: boolean = true;\r\n @Input() options: any = null;\r\n @Input() defaultImageURL: any = null;\r\n displayField: string = 'name';\r\n @Input() minLengthBeforeOptions: number = 1;\r\n @Input() scrollableOptions: boolean = false;\r\n @Input() scrollableOptionsInView: number = 5;\r\n @Output() onTagsChanged: EventEmitter<TagsChangedEvent> = new EventEmitter();\r\n @Output() onMaxTagsReached: EventEmitter<void> = new EventEmitter();\r\n @Output() onNoOptionsMatch: EventEmitter<boolean> = new EventEmitter();\r\n @Output() onBlurInput: EventEmitter<void> = new EventEmitter();\r\n getPlaceholder(): string {\r\n if (this.tags && this.tags.length > 0) {\r\n return '';\r\n }\r\n return this.placeholder;\r\n }\r\n\r\n private tagsChanged(type: string, tag: any): void {\r\n this.onChangeCallback(this.tags);\r\n this.onTagsChanged.emit({\r\n change: type,\r\n tag: tag\r\n });\r\n if (this.maximumOfTagsReached()) {\r\n this.onMaxTagsReached.emit();\r\n }\r\n }\r\n\r\n removeLastTag(tagInput: HTMLInputElement): void {\r\n if (!this.removeLastOnBackspace || !this.tags?.length) {\r\n return;\r\n }\r\n\r\n if (tagInput.value === '') {\r\n this.removeTag(this.tags[this.tags.length - 1]);\r\n }\r\n }\r\n\r\n addTag(tagInput: HTMLInputElement): void {\r\n if (tagInput.value.trim() !== '') {\r\n let tag = {\r\n [this.displayField]: tagInput.value\r\n };\r\n this.addPredefinedTag(tag);\r\n }\r\n tagInput.value = '';\r\n }\r\n\r\n private addPredefinedTag(tag: Object): void {\r\n if (this.tags == null)\r\n this.tags = [];\r\n if (!this.maximumOfTagsReached()) {\r\n this.tags.push(tag);\r\n this.tagsChanged('add', tag);\r\n }\r\n }\r\n\r\n removeTag(tagToRemove: any): void {\r\n if (!this.isDeleteable(tagToRemove)) {\r\n return;\r\n }\r\n this.tags = this.tags.filter(tag => tagToRemove !== tag);\r\n this.tagsChanged('remove', tagToRemove);\r\n }\r\n\r\n maximumOfTagsReached(): boolean {\r\n return typeof this.maxTags !== 'undefined' && this.tags && this.tags.length >= this.maxTags;\r\n }\r\n\r\n isDeleteable(tag: any) {\r\n if (typeof tag.deleteable !== \"undefined\" && !tag.deleteable) {\r\n return false;\r\n }\r\n return this.canDeleteTags;\r\n }\r\n\r\n typeaheadOnSelect(e: TypeaheadMatch): void {\r\n if (typeof e.item === 'string') {\r\n this.addPredefinedTag({\r\n [this.displayField]: e.value\r\n });\r\n } else {\r\n this.addPredefinedTag(e.item);\r\n }\r\n this.selected = '';\r\n }\r\n\r\n typeaheadOnNoMatch(e: any): void {\r\n if (typeof this.onNoOptionsMatch !== 'undefined') {\r\n this.onNoOptionsMatch.emit(e)\r\n }\r\n }\r\n\r\n writeValue(value: any) {\r\n if (value !== this.tags) {\r\n this.tags = value;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n calculateInitials(name: string): string {\r\n var fullName = name.split(' ');\r\n var initials = \"\"\r\n if (fullName.length > 1)\r\n initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);\r\n else\r\n initials = fullName.shift().charAt(0)\r\n return initials.toUpperCase();\r\n }\r\n\r\n onBlur(): void {\r\n this.onBlurInput.emit();\r\n }\r\n // (keydown.Tab) = \"onTab($event)\"\r\n //onTab(event) {\r\n // this.onTabInput.emit();\r\n // event.preventDefault();\r\n // event.stopPropagation();\r\n //}\r\n}\r\n","import { FullCalendarModule } from '@fullcalendar/angular';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport listPlugin from '@fullcalendar/list';\r\nimport interactionPlugin from '@fullcalendar/interaction';\r\nimport { NgModule, Injector, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, ModuleWithProviders } from '@angular/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { FormGroupDirective, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpModule } from '@angular/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NgxPermissionsModule } from 'ngx-permissions';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { NgxIntlTelInputModule } from 'ngx-intl-tel-input';\r\nimport { ErrorMassageValidation } from '../Shared/services/validationErrorMassage.service';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { DateInputComponent } from './DateTimePicker/DateTimePicker.component';\r\nimport { FileUploadComponent } from './FileUplaod/FileUplaod.component';\r\nimport { MultiLingualTextBoxComponent } from './MultiLingualTextBox/MultiLingualTextBox.component';\r\nimport { ControlUtility } from '../Shared/services/ControlUtility';\r\nimport { TextAreaComponent } from './TextArea/TextArea.component';\r\nimport { MultiLingualTextAreaComponent } from './MultiLingualTextArea/MultiLingualTextArea.component';\r\nimport { CheckBoxComponent } from './CheckBox/CheckBox.component';\r\nimport { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { OwlDateTimeModule, OwlNativeDateTimeModule, OWL_DATE_TIME_LOCALE } from 'ng-pick-datetime';\r\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\nimport { DropdownListComponent } from './DropdownList/DropdownList.component';\r\nimport { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\r\nimport { PhoneComponent } from './Phone/Phone.component';\r\n// import { ToggleslideComponent } from './Toggleslide/toggleslide.component';\r\nimport { HtmlEditorComponent } from './HtmlEditor/HtmlEditor.component';\r\nimport { NgxSummernoteModule } from 'ngx-summernote';\r\nimport { MultiLingualHtmlEditorComponent } from './MultiLingualHtmlEditor/MultiLingualHtmlEditor.component';\r\nimport { NgxMaskModule, IConfig } from 'ngx-mask'\r\nimport { TooltipModule } from '@syncfusion/ej2-angular-popups';\r\nimport { FileUploadModule } from 'ng2-file-upload';\r\nimport { ImageUploaderComponent } from './ImageUpload/ImageUpload.component';\r\nimport { NgxDropzoneModule } from 'ngx-dropzone';\r\nimport { AngularCropperjsModule } from 'angular-cropperjs';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { NgbActiveModal, NgbModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ProfileImageUploaderComponent } from './ProfileImageUploader/ProfileImageUploader.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgxTypeaheadModule } from 'ngx-typeahead';\r\nimport { AutocompleteTextBoxComponent } from './AutocompleteTextBox/AutocompleteTextBox.component';\r\nimport { NgxTagsInputModule } from 'ngx-tags-input';\r\nimport { TagsInputComponent } from './TagsInput/TagsInput.component';\r\nimport { PagingComponent } from './Paging/Paging.component';\r\nimport { JwPaginationComponent } from './Paging/JwPagination.component';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { OnPagingFiltersChangeService } from '../Shared/services/OnPagingFiltersChange.service';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { RadioButtonComponent } from './RadioButton/RadioButton.component';\r\nimport { TextboxComponent } from './TextBox/TextBox.component';\r\nimport { MapAutoCompleteComponent } from './MapAutoComplete/MapAutoComplete.component';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { MatGoogleMapsAutocompleteModule } from '@angular-material-extensions/google-maps-autocomplete';\r\nimport { CalendarComponent } from './Calendar/Calendar.component';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { InlineSVGModule } from 'ng-inline-svg';\r\nimport { BBSFUtilitiesModule, environment } from '@bnsights/bbsf-utilities';\r\nimport { FormComponent } from './Form/Form.component';\r\nimport { ConfirmationModalComponent } from './ConfirmationModal/ConfirmationModal.component';\r\nimport { SweetAlert2Module } from '@sweetalert2/ngx-sweetalert2';\r\nimport { RepeaterComponent } from './Repeater/repeater/repeater.component';\r\nimport { RepeaterFieldBuilderComponent } from './Repeater/repeater-field-builder/repeater-field-builder.component';\r\nimport { NgTemplateNameDirective } from '../Shared/Directives/template-name.directive';\r\nimport { RepeaterItemFieldComponent } from './Repeater/repeater-item-field/repeater-item-field.component';\r\nimport { RenderComponentService } from '../Shared/services/render-component-service.service';\r\nimport { RepeaterTableComponent } from './Repeater/repeater-table/repeater-table.component';\r\n// import { BBSFDateTimePipe } from '../shared/Pipes/bbsf-date-time.pipe';\r\n// import { BBSFDatePipe } from '../shared/Pipes/bbsf-date.pipe';\r\n// import { BTagsInputComponent } from '../Shared/components/ng-tag-input';\r\nimport { RecaptchaComponent } from './Recaptcha/Recaptcha.component';\r\nimport { PageHeaderComponentComponent } from './page-header-component/page-header-component.component';\r\nimport { ToggleslideComponent } from './Toggleslide/toggleslide.component';\r\nimport { BBSFDateTimePipe } from '../shared/Pipes/bbsf-date-time.pipe';\r\nimport { BBSFDatePipe } from '../shared/Pipes/bbsf-date.pipe';\r\nimport { BTagsInputComponent } from '../Shared/Components/ng-tag-input';\r\n\r\nexport let options: Partial<IConfig> | (() => Partial<IConfig>);\r\n\r\nexport let AppInjector: Injector;\r\n\r\n\r\n\r\n// FullCalendarModule.registerPlugins([\r\n// dayGridPlugin,\r\n// timeGridPlugin,\r\n// listPlugin,\r\n// interactionPlugin\r\n// ])\r\n@NgModule({\r\n declarations: [\r\n DateInputComponent,\r\n FileUploadComponent,\r\n MultiLingualTextBoxComponent,\r\n TextboxComponent,\r\n TextAreaComponent,\r\n MultiLingualTextAreaComponent,\r\n CheckBoxComponent,\r\n DropdownListComponent,\r\n PhoneComponent,\r\n ToggleslideComponent,\r\n HtmlEditorComponent,\r\n MultiLingualHtmlEditorComponent,\r\n // MultiLingualHtmlEditorComponent,\r\n ImageUploaderComponent,\r\n ProfileImageUploaderComponent,\r\n CalendarComponent,\r\n MapAutoCompleteComponent,\r\n AutocompleteTextBoxComponent,\r\n TagsInputComponent,\r\n PagingComponent,\r\n JwPaginationComponent,\r\n RadioButtonComponent,\r\n FormComponent,\r\n ConfirmationModalComponent,\r\n RepeaterComponent,\r\n RepeaterFieldBuilderComponent,\r\n NgTemplateNameDirective,\r\n RepeaterItemFieldComponent,\r\n RepeaterTableComponent,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n BTagsInputComponent,\r\n RecaptchaComponent,\r\n PageHeaderComponentComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n InfiniteScrollModule,\r\n NgSelectModule,\r\n NgxTagsInputModule,\r\n NgxTypeaheadModule,\r\n AgmCoreModule.forRoot({\r\n // &language=${UtilityService.CurrentLanguage}\r\n apiKey: environment.BBSF_GoogleMapKey,\r\n libraries: ['places'],\r\n }),\r\n MatGoogleMapsAutocompleteModule,\r\n FullCalendarModule,\r\n AngularCropperjsModule,\r\n ImageCropperModule,\r\n NgbModule,\r\n NgxDropzoneModule,\r\n FileUploadModule,\r\n TooltipModule,\r\n NgxMaskModule.forRoot(),\r\n NgxSummernoteModule,\r\n MatSlideToggleModule,\r\n NgxIntlTelInputModule,\r\n AngularMultiSelectModule,\r\n NgMultiSelectDropDownModule.forRoot(),\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule,\r\n CommonModule,\r\n BlockUIModule.forRoot(),\r\n ReactiveFormsModule,\r\n HttpModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n HttpClientModule,\r\n NgxPermissionsModule.forRoot(),\r\n OverlayModule,\r\n StoreDevtoolsModule.instrument(),\r\n FormsModule,\r\n BsDatepickerModule.forRoot(),\r\n TypeaheadModule.forRoot(),\r\n AngularEditorModule,\r\n AutocompleteLibModule,\r\n BBSFUtilitiesModule,\r\n InlineSVGModule.forRoot(),\r\n SweetAlert2Module,\r\n\r\n ],\r\n providers: [\r\n ErrorMassageValidation,\r\n ControlUtility,\r\n OnPagingFiltersChangeService,\r\n TranslateService,\r\n FormGroupDirective,\r\n NgbModal,\r\n NgbActiveModal,\r\n DatePipe,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n RenderComponentService,\r\n { provide: OWL_DATE_TIME_LOCALE, useValue: ControlUtility.getLocal() },\r\n\r\n\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ],\r\n\r\n exports: [\r\n DateInputComponent,\r\n FileUploadComponent,\r\n MultiLingualTextBoxComponent,\r\n TextboxComponent,\r\n TextAreaComponent,\r\n MultiLingualTextAreaComponent,\r\n CheckBoxComponent,\r\n DropdownListComponent,\r\n PhoneComponent,\r\n ToggleslideComponent,\r\n HtmlEditorComponent,\r\n MultiLingualHtmlEditorComponent,\r\n ImageUploaderComponent,\r\n ProfileImageUploaderComponent,\r\n CalendarComponent,\r\n MapAutoCompleteComponent,\r\n AutocompleteTextBoxComponent,\r\n TagsInputComponent,\r\n PagingComponent,\r\n JwPaginationComponent,\r\n RadioButtonComponent,\r\n FormComponent,\r\n PagingComponent,\r\n ConfirmationModalComponent,\r\n RepeaterComponent,\r\n RepeaterFieldBuilderComponent,\r\n NgTemplateNameDirective,\r\n RepeaterItemFieldComponent,\r\n RepeaterTableComponent,\r\n BBSFDateTimePipe,\r\n BBSFDatePipe,\r\n RecaptchaComponent,\r\n PageHeaderComponentComponent\r\n ]\r\n})\r\nexport class BBSFControlsModule {\r\n\r\n constructor(private injector: Injector, private translate: TranslateService) {\r\n AppInjector = this.injector;\r\n\r\n }\r\n\r\n}\r\n","import { AbstractControl } from '@angular/forms';\r\n\r\nexport class CustomValidation\r\n{\r\n massage:string;\r\n functionBody:any;\r\n}\r\nexport class CustomValidator{\r\n // Number only validation\r\n static numeric(control: AbstractControl) {\r\n let val = control.value;\r\n \r\n if (val === null || val === '') return null;\r\n \r\n if (!val.toString().match(/^[0-9]+(\\.?[0-9]+)?$/)) return { 'invalidNumber': true };\r\n \r\n return null;\r\n }\r\n }","import { Injector, Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport {\r\n UtilityService,\r\n AuthService,\r\n ConfigurationService,\r\n} from '@bnsights/bbsf-utilities';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AbstractControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ControlUtility } from '../services/ControlUtility';\r\nimport { FilterItem } from '../Models/FilterItem';\r\nimport { CustomValidation } from '../Models/CustomValidation';\r\nimport { EnglishArabicDTO } from '../Models/EnglishArabicDTO';\r\nimport * as saveAs from 'file-saver';\r\nimport { EnvironmentService } from '@bnsights/bbsf-utilities';\r\n\r\n@Injectable()\r\nexport abstract class AppBaseComponent {\r\n public utilityService: UtilityService;\r\n public modalService: NgbModal;\r\n private controlUtility: ControlUtility;\r\n private titleService: Title;\r\n private auhService: AuthService;\r\n private configurationService: ConfigurationService;\r\n public environmentService: EnvironmentService;\r\n public isEN: boolean;\r\n //Labels\r\n public exportLabel: string;\r\n public filtersLabel: string;\r\n public addLabel: string;\r\n public userName: string;\r\n public pageTitle: string = '';\r\n public PageCount: number = 12;\r\n constructor(injector: Injector) {\r\n this.utilityService = injector.get(UtilityService);\r\n this.controlUtility = injector.get(ControlUtility);\r\n this.configurationService = injector.get(ConfigurationService);\r\n this.environmentService = injector.get(EnvironmentService);\r\n this.modalService = injector.get(NgbModal);\r\n this.titleService = injector.get(Title);\r\n this.auhService = injector.get(AuthService);\r\n this.exportLabel = this.utilityService.getResourceValue('Export');\r\n this.filtersLabel = this.utilityService.getResourceValue('Filters');\r\n this.addLabel = this.utilityService.getResourceValue('Add');\r\n this.userName = this.auhService.name();\r\n this.isEN = this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n updatePageTitle(title: string | undefined) {\r\n this.titleService.setTitle(this.calculatePageTitle(title));\r\n }\r\n\r\n l(key: string): string {\r\n return this.utilityService.getResourceValue(key);\r\n }\r\n getConfigurationValue(key: string) {\r\n return this.configurationService.getConfigurationValue(key);\r\n }\r\n getLanguageModeValue() {\r\n return this.configurationService.getConfigurationValue('LanguageMode');\r\n }\r\n stopBlockUI() {\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n startBlockUI() {\r\n this.utilityService.startBlockUI();\r\n }\r\n\r\n openModal(modal: any, size?: string) {\r\n if (size)\r\n this.modalService.open(modal, {\r\n size: size,\r\n backdrop: 'static',\r\n keyboard: false,\r\n });\r\n else this.modalService.open(modal, { backdrop: 'static', keyboard: false });\r\n }\r\n\r\n download(fileDTO: any, fileName: string): void {\r\n /*let blob = new Blob([file]);*/\r\n let file = new Blob([fileDTO], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n });\r\n saveAs(file, fileName);\r\n }\r\n\r\n downloadPDF(fileDTO: any, fileName: string): void {\r\n let file = new Blob([fileDTO], { type: \"application/pdf\" });\r\n saveAs(file, fileName);\r\n }\r\n downloadWord(fileDTO: any, fileName: string): void {\r\n let file = new Blob([fileDTO], { type: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" });\r\n saveAs(file, fileName);\r\n }\r\n\r\n\r\n private base64toBlob(base64Data, contentType) {\r\n contentType = contentType || '';\r\n var sliceSize = 1024;\r\n var byteCharacters = atob(base64Data);\r\n var bytesLength = byteCharacters.length;\r\n var slicesCount = Math.ceil(bytesLength / sliceSize);\r\n var byteArrays = new Array(slicesCount);\r\n\r\n for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\r\n var begin = sliceIndex * sliceSize;\r\n var end = Math.min(begin + sliceSize, bytesLength);\r\n\r\n var bytes = new Array(end - begin);\r\n for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\r\n bytes[i] = byteCharacters[offset].charCodeAt(0);\r\n }\r\n byteArrays[sliceIndex] = new Uint8Array(bytes);\r\n }\r\n return new Blob(byteArrays, { type: contentType });\r\n }\r\n\r\n private calculatePageTitle(title: string | undefined): string | undefined {\r\n return title\r\n ? title.substring(0, 100) + ` | ${this.l('ApplicationName')}`\r\n : `${this.l('ApplicationName')}`;\r\n }\r\n\r\n getPagingFiltersValues(form: FormGroup, filters: FilterItem[]): any {\r\n let model = new Object();\r\n for (var i = 0; i < filters.length; i++) {\r\n let filterItem = filters[i];\r\n if (form.controls[filterItem.FormControlName].value == undefined)\r\n continue;\r\n model[filterItem.ActionParameterName] =\r\n form.controls[filterItem.FormControlName].value == undefined\r\n ? ''\r\n : form.controls[filterItem.FormControlName].value;\r\n // params = params.append(filterItem.ActionParameterName, form.controls[filterItem.FormControlName].value == undefined ? '' : form.controls[filterItem.FormControlName].value);\r\n }\r\n return model;\r\n }\r\n\r\n removeControl(controlName: string, form: FormGroup) {\r\n form.removeControl(controlName);\r\n }\r\n\r\n copyToClipboard(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n this.utilityService.notifySuccessMessage(this.l('CopiedSuccessfully'));\r\n }\r\n\r\n addRequiredRule(control: AbstractControl, controlOptions: any) {\r\n this.controlUtility.addRequiredToControl(control, controlOptions);\r\n }\r\n\r\n removeRequiredRule(control: AbstractControl, controlOptions: any) {\r\n this.controlUtility.removeRequiredFromControl(control, controlOptions);\r\n }\r\n\r\n validateDates(\r\n form: FormGroup,\r\n fromDateControl: string,\r\n toDateControl: string,\r\n validationMessageKey: string\r\n ): CustomValidation {\r\n var validator = new CustomValidation();\r\n validator.functionBody = (control) => {\r\n let fromDate = form.controls[fromDateControl].value;\r\n let toDate = form.controls[toDateControl].value;\r\n\r\n if (fromDate && toDate && toDate <= fromDate)\r\n return { customerError: true };\r\n\r\n return null;\r\n };\r\n validator.massage = this.l(validationMessageKey);\r\n return validator;\r\n }\r\n\r\n onSuccessAddHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordAdded'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n onSuccessEditHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordUpdated'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n onSuccessDeleteHandler = (success: any) => {\r\n this.utilityService.notifySuccessMessage(\r\n this.l('RecordDeleted'),\r\n null,\r\n null,\r\n false\r\n );\r\n };\r\n\r\n recalculatePageTitle() {\r\n this.titleService.setTitle(this.calculatePageTitle(''));\r\n }\r\n\r\n isEnglish() {\r\n return this.utilityService.isCurrentLanguageEnglish();\r\n }\r\n\r\n calculateInitials(name: string): string {\r\n let language = localStorage.getItem('language');\r\n let currentUser = this.auhService.user.profile;\r\n console.log(currentUser);\r\n let userName =\r\n language == 'en' ? currentUser.given_nameEn : currentUser.given_nameAr;\r\n if (currentUser) {\r\n let fullName = userName.split(' ');\r\n let initials: string;\r\n if (fullName.length > 1) {\r\n if (this.isEN)\r\n initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);\r\n else\r\n initials =\r\n fullName.shift().charAt(0) + ' ' + fullName.pop().charAt(0);\r\n } else {\r\n initials = fullName.pop().charAt(0);\r\n }\r\n return initials.toUpperCase();\r\n }\r\n return '';\r\n }\r\n\r\n getCurrentUserInitials(): string {\r\n return this.calculateInitials(this.auhService.name());\r\n }\r\n\r\n getCurrentFailOver(val: EnglishArabicDTO): string {\r\n if (this.isEnglish()) {\r\n if (val.English) return val.English;\r\n else return val.Arabic;\r\n } else {\r\n if (val.Arabic) return val.Arabic;\r\n else return val.English;\r\n }\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({\r\n},\r\n(window as any).Environment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { InputType } from '../Enums/InputType';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { LanguageValidation } from '../Enums/LanguageValidation';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\nimport { RecaptchaModel } from './Recaptcha';\r\n\r\nexport class RecaptchaOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: RecaptchaModel = new RecaptchaModel()\r\n ForceDirection: ForceDirection = null\r\n /**Prevent AutoComplete of control default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n NoMargin: boolean = false;\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string = \"/api/Home/GetReCaptchaModel\";\r\n /*Pass hexa-color primary background color*/\r\n BackgroundColorPrimary: string = \"\"\r\n /*Pass hexa-color secondary background color*/\r\n BackgroundColorSecondary: string = \"\"\r\n /*Pass hexa-color primary text color*/\r\n TextColorPrimary: string\r\n /*Pass hexa-color secondary text color*/\r\n TextColorSecondary: string\r\n /*Pass font Size */\r\n FontSize: number = 0;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout';\r\nimport { LanguageMode } from '../Enums/LanguageMode';\r\nimport { CustomValidation } from './CustomValidation';\r\nimport { EnglishArabicDTO } from './EnglishArabicDTO';\r\n\r\nexport class MultilingualControlOptionsBase {\r\n /** Represent Name Of Form Control*/\r\n Name: string;\r\n /** Represent key of the Label*/\r\n LabelKey: string;\r\n /** Represent value of the Label*/\r\n LabelValue: string;\r\n /** Represent Key of the label*/\r\n ArabicLabelKey: string;\r\n /** Represent Key of the label*/\r\n EnglishLabelKey: string;\r\n /** Represent value of the ArabicLabel*/\r\n ArabicLabelValue: string;\r\n /** Represent value of the EnglishLabel*/\r\n EnglishLabelValue: string;\r\n /** Represent value of the LabelDescription show under textbox*/\r\n LabelDescription: string;\r\n /** Represent value of the ArabicLabelDescription show under MultipleLanguageText*/\r\n ArabicLabelDescription: string;\r\n /** Represent value of the EnglishLabelDescription show under MultipleLanguageText*/\r\n EnglishLabelDescription: string;\r\n /**Represent ArabicPlaceholder Of Form Control*/\r\n ArabicPlaceholder: string;\r\n /**Represent EnglishPlaceholder Of Form Control*/\r\n EnglishPlaceholder: string;\r\n /** Represent classes to label that allow us to select the Control by jquery or javascript */\r\n LabelExtraClasses: string;\r\n /**Represent classes to Arabic textbox that allow us to select the MultipleLanguageText by jquery or javascript */\r\n ExtraClasses_AR: string;\r\n /**Represent classes to English textbox that allow us to select the MultipleLanguageText by jquery or javascript */\r\n ExtraClasses_EN: string;\r\n /** to set type of view if MultipleLanguageText is Vertical or Horizontal */\r\n ViewType: ControlLayout = null;\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean;\r\n /**To Set Value To MultipleLanguageText with Object From Type \"EnglishArabicDTO\" */\r\n Value: EnglishArabicDTO = new EnglishArabicDTO();\r\n /**Set the MinLength of characters In TextBox */\r\n MinLength: number;\r\n //** Set the MaxLength of characters In TextBox */\r\n MaxLength: number;\r\n //** Set the MaxWordCount of characters In TextBox */\r\n MaxWordCount: number;\r\n /**\r\n * Display \"*\" beside the label\r\n * if ForceAsterisk=true and IsRequired=True his display \"*\" ,\r\n * if if ForceAsterisk=false and IsRequired=false this remove \"*\",\r\n *if ForceAsterisk=false and IsRequired=True this display \"*\" ,\r\n */\r\n ShowAsterisk: boolean;\r\n /** Ability to set MultipleLanguageText required */\r\n IsRequired: boolean;\r\n /** Sets an attribute disable=\"disabled\" */\r\n IsDisabled: boolean;\r\n /** Ability to display or hide the EnglishField of MultipleLanguageText */\r\n IsHideEnglishFields: boolean;\r\n /** Ability to display or hide the ArabicField of MultipleLanguageText */\r\n IsHideArabicFields: boolean;\r\n /** Ability to display or hide the EnglishLabel of MultipleLanguageText */\r\n IsHideEnglishLabel: boolean;\r\n /** Ability to display or hide the ArabicLable of MultipleLanguageText */\r\n IsHideArabicLabel: boolean;\r\n /** trim input on change */\r\n TrimTextOnChange: boolean;\r\n /**To Set LanguageMode To MultipleLanguageText */\r\n LanguageMode: LanguageMode = null;\r\n /** Allow to Pass Object With Body of Function which represent CustomValidation and massage for error massage */\r\n CustomValidation: CustomValidation[] = [];\r\n /** Path of propriety which we need to patch value */\r\n PatchPath: string;\r\n /** Function which call to patch value */\r\n PatchFunction: Function;\r\n /** Sets an attribute readonly */\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout';\r\nimport { IconPosition } from '../Enums/IconPosition';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualTextBoxOptions extends MultilingualControlOptionsBase {\r\n\r\n /*icon options*/\r\n Icon: string\r\n IconPositionEN: IconPosition = IconPosition.left\r\n IconPositionAR: IconPosition = IconPosition.right\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = null\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n /**Prevent AutoComplete of inputs default value is \"on\" available values \"on\" and \"off\"*/\r\n AutoComplete: string = \"on\"\r\n}\r\n","export class Attribute\r\n{\r\n Key:string\r\n value: any\r\n}","import { InputType } from '../Enums/InputType';\r\nimport { ControlLayout } from '../Enums/ControlLayout';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualTextAreaOptions extends MultilingualControlOptionsBase {\r\n Type: InputType;\r\n /**Set Number Of Rows */\r\n Rows: number\r\n /**Set Number Of columns */\r\n Cols: number\r\n /*multi control placement type*/\r\n MultiControlPlacementType: ControlLayout = null;\r\n //** Set the MaxLength Limit to show warning message*/\r\n MaxLengthWarningLimit: number;\r\n}\r\n","import { ForceDirection } from '../Enums/ForceDirection';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class CheckBoxOptions extends ControlOptionsBase {\r\n /**To set value to CheckBox */\r\n Value: boolean = null\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n\r\n}","\r\nexport class DropdownListItem\r\n{\r\n id:any\r\n itemName:any\r\n}\r\n","import { InputType } from '../Enums/InputType';\r\nimport { Misc } from '../Enums/Misc';\r\nimport { Style } from '../Enums/Style';\r\nimport { FontSize } from '../Enums/FontSize';\r\nimport { Para } from '../Enums/Para';\r\nimport { Insert } from '../Enums/Insert';\r\nimport { MultilingualControlOptionsBase } from './MultilingualControlOptionsBase';\r\n\r\nexport class MultiLingualHtmlEditorOptions extends MultilingualControlOptionsBase {\r\n Type: InputType;\r\n /** Set Height For */\r\n Height: number=150\r\n /** Set List of Misc like codeview Or undo Or redo */\r\n ToolsList_Misc?: Misc[];\r\n /** Set List of Style like bold Or italic Or underline Or clear */\r\n ToolsList_Style?: Style[];\r\n /** Set List of FontSize like fontname Or fontsize Or color */\r\n ToolsList_FontSize?: FontSize[];\r\n /** Set List of Para like style Or ul Or ol Or paragraph Or height */\r\n ToolsList_Para?: Para[];\r\n /** Set List of Insert like table Or picture Or link Or video Or hr */\r\n ToolsList_Insert?: Insert[];\r\n\r\n\r\n}\r\n","import { ImageType } from '../Enums/ImageType';\r\nimport { EditPersonalImage } from './EditPersonalImage';\r\nimport { SaveDTO } from './SaveDTO';\r\nimport { CancelDTO } from './CancelDTO';\r\nimport { UploadPersonalImage } from './UploadPersonalImage';\r\nimport { ProfilePictureDTO } from './ProfilePictureDTO';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class ProfileImageUploadOptions extends ControlOptionsBase {\r\n\r\n /**To set value to FileInput */\r\n Value: ProfilePictureDTO\r\n AllowDropZone: boolean = false\r\n /** Set File MaxSize In MB */\r\n FileMaxSizeInMB: number;\r\n /** Set List of Custom Attribute to FileInput */\r\n ImageUploadAcceptsTypes: ImageType[] = [ImageType.ImageTypes]\r\n /** Set Default Image */\r\n DefaultImageSrc: string\r\n /** Set ImageID Encrypted */\r\n ImageIDEncrypted: string\r\n /** Set EditPersonalImage */\r\n EditPersonalImageTitle: EditPersonalImage\r\n /** Set SaveDTO */\r\n SaveTitle: SaveDTO\r\n /** Set CancelDTO */\r\n CancelTitle: CancelDTO\r\n /** Set UploadPersonalImage */\r\n UploadPersonalImageTitle: UploadPersonalImage\r\n}\r\n","export class SaveDTO\r\n{\r\n constructor()\r\n {\r\n this.English = \"Save\";\r\n this.Arabic = \"حفظ\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class CancelDTO\r\n{\r\n constructor()\r\n {\r\n this.English = \"Cancel\";\r\n this.Arabic = \"الغاء\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class EditPersonalImage\r\n{\r\n constructor()\r\n {\r\n this.English = \"Edit Personal Image\";\r\n this.Arabic = \"تعديل الصورة الشخصية\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","export class UploadPersonalImage\r\n{\r\n constructor()\r\n {\r\n this.English = \"Upload Personal Image\";\r\n this.Arabic = \"تحميل صورة الشخصية\";\r\n }\r\n English:string \r\n Arabic:string \r\n}","import { CalendarView } from '../Enums/CalendarView'\r\nimport { CalendarEventDTO } from './CalendarEventDTO'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\n\r\nexport class CalendarOptions extends ControlOptionsBase {\r\n /** Represent DefaultView Of Calendar*/\r\n DefaultView: CalendarView = CalendarView.Month\r\n /** Represent OnEventClickFunction Of Calendar*/\r\n OnEventClickFunction: any\r\n /** Represent CalendarViews Of Calendar*/\r\n CalendarViews: CalendarView[] = [CalendarView.Agenda, CalendarView.Daily, CalendarView.Month, CalendarView.Weekly]\r\n /** Represent OnDayClickFunction Of Calendar*/\r\n OnDayClickFunction: any\r\n EventList: CalendarEventDTO[]\r\n /** Set Allowc Calendar Weekends Of Calendar*/\r\n AllowCalendarWeekends: boolean\r\n /** Set Calendar Visible Of Calendar*/\r\n CalendarVisible: boolean = true\r\n /** Set DefaultDate Of Calendar*/\r\n DefaultDate: Date = new Date()\r\n Eventeditable: boolean = false\r\n Eventselectable: boolean = false\r\n dayMaxEvents: boolean | number = false;\r\n\r\n}","export class CalendarEventDTO\r\n{\r\n id: string;\r\n title: string;\r\n start: Date;\r\n end: Date;\r\n colour: string;\r\n allDay:boolean\r\n}","import { AutocompleteDTO } from './AutocompleteDTO';\r\nimport { InputType } from '../Enums/InputType';\r\nimport { ForceDirection } from '../Enums/ForceDirection';\r\nimport { RangeNumber } from './RangeNumber';\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\n\r\nexport class AutocompleteOptions extends ControlOptionsBase {\r\n\r\n /**Represent classes to textbox that allow us to select the AutoComplete by jquery or javascript */\r\n ValidationToken: string = null\r\n /**To set value to textbox */\r\n Value: any = null\r\n //** Set the MaxLength of characters In AutoComplete */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In AutoComplete */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In AutoComplete */\r\n MaxWordCount: number;\r\n /** set Range Number to Textbox with type number with From-Value and To-value*/\r\n NumberRange: RangeNumber = new RangeNumber()\r\n /**Prevent AutoComplete of textbox*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefulatPasswordValidation: boolean\r\n /** to set Direction of textbox if textbox is Arabic or English */\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n /** Set Type of AutoComplete (\"text\",\"password\",\"email\",\"number\") */\r\n Type: InputType\r\n /** allow add value of AutoComplete dosn't exist in list*/\r\n AllowNewSelection: boolean = false;\r\n ControlId: string;\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string;\r\n // /**a {key,value} (json) object to include as params for the json call. Each api supports different structure.*/\r\n // Params: object={};\r\n QueryParam: string = 'query'\r\n AutocompleteDTO: AutocompleteDTO\r\n SelectedValue: any = null\r\n ItemWithImage: boolean = false\r\n}\r\n","export class TagsInputDTO\r\n {\r\n ID :string\r\n Name :string\r\n Description :string\r\n ImageURL: string;\r\n}\r\n","import { ControlLayout } from '../Enums/ControlLayout'\r\nimport { CustomValidation } from './CustomValidation'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\nimport { Attribute } from './Attribute'\r\nimport { ControlOptionsBase } from './ControlOptionsBase'\r\nimport { TagInputView } from '../Enums/TagInputView'\r\n\r\n\r\nexport class TagsInputOptions extends ControlOptionsBase {\r\n /**To set value to Control */\r\n Value: any\r\n //** Set the MaxLength of characters In AutoComplete */\r\n MaxLength?: number\r\n /**Set the MinLength of characters In AutoComplete */\r\n MinLength?: number\r\n //** Set the MaxWordCount of characters In AutoComplete */\r\n MaxWordCount: number;\r\n /**Prevent AutoComplete of tagsinput*/\r\n AutoComplete: boolean\r\n /** text input on change */\r\n TrimTextOnChange: boolean\r\n /** add button to for coping to clipboard */\r\n EnableCopyToClipboard: boolean\r\n /**Prevent Defulat Password Validation to set Custom Validation */\r\n RemoveDefulatPasswordValidation: boolean\r\n /** to set Direction of tagsinput if tagsinput is Arabic or English */\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n /**the url of a remote server that supports jsonp calls */\r\n ActionURL: string;\r\n /**Remove Last When User Click On Backspace */\r\n RemoveLastOnBackspace: boolean = false\r\n /** Allow User To Delete Tags */\r\n CanDeleteTags: boolean = true\r\n /** Allow User To Add Tags */\r\n CanAddTags: boolean = true\r\n /** Set Max Number Of Tags That User Can Be Select */\r\n MaxNumberTags: number = 30\r\n /** Set Min Length Of Char To Call Search Function */\r\n MinSearchLength: number = 1\r\n /**Allow Scrolle Option In Dropdown */\r\n ScrollableOptions: boolean = true\r\n /** Set Max Number Of Tags That will Be Appear ON Dropdown */\r\n MaxSearchResultsCount: number = 10\r\n /**Value Name Of Tag Option In Dropdown */\r\n DatasourceItemValue: string = \"id\"\r\n /**Text Of Tag That Will Show In Dropdown */\r\n DatasourceItemText: string = \"name\"\r\n /**Text Show when none of the given options match the entered text */\r\n NoResultText: string;\r\n /**Set Query Param Name By Default It's 'query'*/\r\n QueryParamName: string = \"query\"\r\n /**Set Query Param Name By Default It's 'query'*/\r\n SelectedItemsParamName: string = \"SelectedItems\"\r\n /**Set Filter Param Name By Default It's 'query'*/\r\n FilterParamName: string = \"\"\r\n DefaultImgUrl: string = \"\"\r\n /** allow add value of TagInput dosn't exist in list*/\r\n AllowNewSelection: boolean = false;\r\n ValidationToken: string = null;\r\n /**Set Extra Filters*/\r\n ExtraFilters: string;\r\n \r\n TagInputMode: TagInputView = TagInputView.WithoutImage\r\n\r\n ShowDescription: boolean = true;\r\n\r\n}\r\n","import { FilterType } from '../Enums/FilterType';\r\n\r\nexport class FilterItem {\r\n \r\n /** jQuery selector used to retrieve the parameter value*/\r\n\r\n jQuerySelector: string\r\n /** FormControlName used to retrieve the value Of Control*/\r\n FormControlName: string;\r\n /** The action parameter exact name (case sensitive)*/\r\n ActionParameterName: string\r\n /** Check If This Filter Is Form Control Or js Filter */\r\n IsFormControl: boolean=true\r\n /**Set Filter Type To Filter*/\r\n FilterType:FilterType\r\n\r\n}\r\n","import { FilterItem } from './FilterItem'\r\nimport { ForceDirection } from '../Enums/ForceDirection'\r\n\r\nexport class PagingOptions<T = any>{\r\n /**URL of the action that will be called on update*/\r\n ActionPostURL: string = \"\"\r\n ValidationToken: string = null\r\n /** Comma separater list of parameters that need to be passed to the updated function, the parameter name must be the ID of the element that holds the value of the filter.\r\n * ex \"searchText,fromDateTimePicker\" we should have now an input with id searchText and a datetime picker with id fromDateTimePicker*/\r\n Filters: FilterItem[] = []\r\n /**The total count for the items in the datasource */\r\n TotalCount: number = 0\r\n /** No of items in one page \r\n * Default is 10\r\n */\r\n PageSize: number = 10\r\n /**Typeahead search input, used to attach on change events to the search input to refresh the paging after change */\r\n TypeaheadSearchControlNames: string[] = []\r\n /**Comma separater list of Dropdowns filters , used to attach on change events to the dropdown filter to refresh the paging after change */\r\n DropdownFiltersControlNames: string[] = []\r\n /**Comma separater list of Bootstrap datepicker filters, used to attach on change events to the datepicker filter to refresh the paging after change */\r\n BootstrapDatePickersFiltersControlNames: string[] = []\r\n /**Comma separater list of any button/element filters to attach on click event, this will refresh the paging after the event is fired */\r\n OnClickFiltersControlNames: string[] = []\r\n /** Comma separater list of any button/element filters to attach on keypress/Enter event, this will refresh the paging after the event is fired */\r\n OnKeyPressFiltersControlNames: string[] = []\r\n /** The js function name to be called to update the paging total count and keep the current page as is, have to pass the new total count of the datasource items\r\n * Default value is Paging_Update fill this parameter in case there are multiple paging controls */\r\n UpdateFunctionName: string\r\n /** The js function name to be called to reinitialize the paging component with a new items count and reset the curent page to 1, you must pass the new total count of the datasource items\r\n * Default value is Paging_Reinitialize fill this parameter in case there are multiple paging controls*/\r\n ReinitializeFunctionName: string\r\n /**Show a dropdown to be able to change the page size */\r\n ShowPageSizeOption: boolean = false\r\n /**js function name to be called when a page is updated */\r\n OnSuccessCallBackJSFunction: string\r\n /** bool to set block ui by container rather than the whole window */\r\n BlockUIByContainer: boolean = true\r\n /**hide Pagination When Page Size Equal One */\r\n HidePaginationWhenPageSizeEqualOne: boolean = true\r\n /**Show First And Last */\r\n ShowFirstAndLast: boolean = true\r\n /**Show Load More Button And Hide Paging */\r\n IsLoadMoreControl: boolean = false\r\n /** Load More items While Scrolling */\r\n IsInfiniteScroll: boolean = false\r\n /**should get a html element or css selector for a scrollable element; window or current element will be used if this attribute is empty. */\r\n InfiniteScrollContainer\r\n /**listens to the window scroll instead of the actual element scroll. this allows to invoke a callback function in the scope of the element while listenning to the window scroll. */\r\n ScrollWindow: boolean = true\r\n ForceDirection: ForceDirection = ForceDirection.English\r\n TypeOfResponse?: new () => T\r\n /** Clear Filter button selector */\r\n ResetFilterButtonName: string = null;\r\n DisableBlockUI: boolean = false;\r\n StartPagingCallback: Function = null;\r\n}\r\n","\r\nimport { ControlOptionsBase } from './ControlOptionsBase';\r\nimport { RadioButtonItem } from './RadioButtonItem';\r\n\r\nexport class RadioButtonOptions extends ControlOptionsBase {\r\n /**To set value to RadioButton */\r\n Value: RadioButtonItem\r\n /** Set List of Custom Attribute to RadioButton */\r\n Items: RadioButtonItem[]\r\n\r\n}\r\n","\r\n\r\nexport class RadioButtonItem {\r\n Text: string\r\n Value :any\r\n}\r\n","import { FormGroup } from '@angular/forms';\r\nimport { ElementRef } from '@angular/core';\r\nimport { PagingActionMode } from '../Enums/PagingActionMode';\r\nimport { PagingComponent } from '../../controls/Paging/Paging.component';\r\n\r\nexport class FormOptions {\r\n\r\n //Represents form group of contol\r\n FormGroup: FormGroup = null;\r\n\r\n //Represents refrence to paging control that needs to be updated after success\r\n PagingReference: PagingComponent<any> = null\r\n\r\n //Represents paging action excutes after submission (Reinitialize/Update)\r\n PagingActionMode: PagingActionMode = PagingActionMode.Reinitialize;\r\n\r\n //Represents function that get form model for submission\r\n GetModelFunction: Function = null;\r\n\r\n //Represents service function for submission\r\n ServiceSubmitFunction: Function = null;\r\n\r\n //Represents function that excutes after submission error\r\n OnErrorHandler: Function = null;\r\n\r\n //Represents function that excutes after submission success\r\n OnSuccessHandler: Function = null;\r\n\r\n //If =\"true\" disable notification after submission success\r\n DisableSuccessNotification: boolean = false;\r\n\r\n //If =\"true\" disable notification after submission error\r\n DisableErrorNotification: boolean = false;\r\n\r\n //If =\"true\" disable startblockui before submission\r\n DisableBlockUI: boolean = false;\r\n\r\n //If =\"true\" disable modal from dismiss automatically \r\n DisableModalDismiss: boolean = false;\r\n}\r\n","import { PagingComponent } from \"../../controls/Paging/Paging.component\";\r\nimport { PagingActionMode } from \"../Enums/PagingActionMode\";\r\nimport { StyleConfirmationMode } from \"../Enums/StyleConfirmationMode\";\r\n\r\n\r\nexport class ConfirmationModalOptions {\r\n //Represents confirmation modal title\r\n ConfirmationHeader: string = null;\r\n\r\n //Represents confirmation modal body\r\n ConfirmationBody: string = null;\r\n\r\n //Represents confirmation modal submit button text\r\n SubmitButtonText: string = null;\r\n\r\n //Represents confirmation modal body style\r\n StyleConfirmationMode: StyleConfirmationMode = StyleConfirmationMode.Danger;\r\n\r\n //Represents service function for submission\r\n ServiceSubmitFunction: Function = null;\r\n\r\n //Represents model sent to service submit function\r\n ServiceSubmitModel: any[] = [];\r\n\r\n //Represents refrence to paging control that needs to be updated after success\r\n PagingReference: PagingComponent<any> = null\r\n\r\n //Represents paging action excutes after submission (Reinitialize/Update)\r\n PagingActionMode: PagingActionMode = PagingActionMode.Reinitialize;\r\n\r\n //Represents function that excutes after submission error\r\n OnErrorHandler: Function = null;\r\n\r\n //Represents function that excutes after submission success\r\n OnSuccessHandler: Function = null;\r\n\r\n //Represents message appears in notification after success\r\n SuccessNotificationMessage: string = null;\r\n\r\n //If =\"true\" disable notification after submission success\r\n DisableSuccessNotification: boolean = false;\r\n\r\n //If =\"true\" disable notification after submission error\r\n DisableErrorNotification: boolean = false;\r\n\r\n //If =\"true\" disable prevent modal from dismiss automatically \r\n DisableModalDismiss: boolean = false;\r\n //If =\"false\" prevent modal to show cancel button\r\n showCancelButton: boolean = true;\r\n //If =\"false\" prevent modal to show close button\r\n showCloseButton: boolean = true;\r\n\r\n}\r\n","import { DataType } from \"../Enums/Enums\";\r\nexport class RepeaterField {\r\n HeaderTitle: string;\r\n ControlType: DataType;\r\n ControlOptions: any;\r\n IsHiddenInput: boolean;\r\n}\r\n","import { RepeaterField } from \"./RepeaterField\";\r\n\r\nexport class RepeaterOptions {\r\n IsRequired: boolean;\r\n MinRequiredItems: number;\r\n ExtraClasses: string;\r\n Name: string;\r\n ActionLabelKey: string = \"\";\r\n AddButtonExtraClasses: string;\r\n RepeaterTableExtraClasses: string\r\n RepeaterTableRowExtraClasses: string\r\n AddButtonText: string = \"Add\";\r\n DeleteButtonExtraClasses: string;\r\n DeleteButtonText: string = \"Delete\";\r\n RepeaterValue: any[] = [];\r\n RepeaterStructure: RepeaterField[] = [];\r\n DisableAddButton: boolean = false;\r\n DisableDeleteButton: boolean = false;\r\n IsReadonly: boolean = false;\r\n}\r\n","import { ControlFilterItem } from \"./control-filter-Item\";\r\nexport class FilterOptions {\r\n ControlsOptions:ControlFilterItem[]=[];\r\n ApplyFunction:Function = null;\r\n RestFunction:Function = null;\r\n ShowLoadingInFiltersBox:boolean=false;\r\n}\r\n","import { BreadCrumb } from \"./bread-crumb\";\r\nimport { FilterOptions } from \"./filter-options\";\r\nimport { TextBoxOptions } from \"./TextBoxOptions\";\r\n\r\nexport class PageHeaderOptions {\r\n constructor() {\r\n this.BreadCrumb = new BreadCrumbModel();\r\n this.AddButton = new AddButton();\r\n this.EditButton = new EditButton();\r\n this.DeleteButton = new DeleteButton();\r\n this.ExportButton = new ExportButton();\r\n this.GridView = new GridViewModel();\r\n this.SearchTextBox = new TextBoxModel();\r\n this.FiltersButton = new FiltersButton();\r\n this.Filters = new FilterOptions();\r\n this.DropDownActions = new DropdownActions();\r\n }\r\n TitleKey: string;\r\n TitleValue: string;\r\n SubTitleKey: string;\r\n BreadCrumb: BreadCrumbModel;\r\n AddButton: AddButton;\r\n EditButton: EditButton;\r\n DeleteButton: DeleteButton;\r\n ExportButton: ExportButton;\r\n GridView: GridViewModel;\r\n SearchTextBox: TextBoxModel;\r\n FiltersButton: FiltersButton;\r\n Filters: FilterOptions;\r\n DropDownActions: DropdownActions;\r\n Listing: boolean;\r\n}\r\n\r\nexport class BreadCrumbModel {\r\n Active: boolean\r\n BreadCrumbItems: BreadCrumb[] = [];\r\n}\r\nexport class AddButton {\r\n Active: boolean;\r\n ButtonTextKey: string=\"Add\";\r\n Function: Function = null;\r\n}\r\nexport class EditButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Edit\";\r\n Function: Function = null;\r\n}\r\nexport class DeleteButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Delete\";\r\n Function: Function = null;\r\n}\r\nexport class FiltersButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Filter\";\r\n Function: Function = null;\r\n ShowLoadingInFiltersBox: boolean = true;\r\n\r\n constructor() {\r\n this.ButtonTextKey = \"Filter\";\r\n }\r\n}\r\nexport class ExportButton {\r\n Active: boolean;\r\n ButtonTextKey: string = \"Export\";\r\n Function: Function = null;\r\n}\r\nexport class GridViewModel {\r\n Active: boolean;\r\n ToggleFunction: Function = null;\r\n ShowGridViewByDefault: boolean;\r\n}\r\nexport class TextBoxModel {\r\n Active: boolean;\r\n TextSearchBoxOptions: TextBoxOptions = new TextBoxOptions();\r\n}\r\nexport class DropdownActions {\r\n Active: boolean;\r\n DropdownActionItems: DropdownActionItem[] = []\r\n}\r\nexport class DropdownActionItem {\r\n constructor(text: string, svg: string, functionName: Function,routerLink:string=null) {\r\n this.Text = text;\r\n this.SVG = svg;\r\n this.Function = functionName;\r\n this.RouterLink = routerLink;\r\n }\r\n Text: string;\r\n SVG: string;\r\n Function: Function = null;\r\n RouterLink :string\r\n}\r\n","import { DataType } from \"../Enums/Enums\";\r\nexport class ControlFilterItem {\r\n key:DataType;\r\n value:any;\r\n onChange?:Function = null;\r\n}\r\n","export class BreadCrumb {\r\n constructor(label: string, active: boolean, route: string = null) {\r\n this.label = label;\r\n this.active = active;\r\n this.route = route;\r\n }\r\n label: string;\r\n active: boolean;\r\n route: string;\r\n }\r\n ","export enum MenuListType {\r\n AdminType =1 ,\r\n UserType = 2,\r\n \r\n}","export enum Country {\r\n Afghanistan = \"af\",\r\n Albania = \"al\",\r\n Algeria = \"dz\",\r\n AmericanSamoa = \"as\",\r\n Andorra = \"ad\",\r\n Angola = \"ao\",\r\n Anguilla = \"ai\",\r\n AntiguaAndBarbuda = \"ag\",\r\n Argentina = \"ar\",\r\n Armenia = \"am\",\r\n Aruba = \"aw\",\r\n Australia = \"au\",\r\n Austria = \"at\",\r\n Azerbaijan = \"az\",\r\n Bahamas = \"bs\",\r\n Bahrain = \"bh\",\r\n Bangladesh = \"bd\",\r\n Barbados = \"bb\",\r\n Belarus = \"by\",\r\n Belgium = \"be\",\r\n Belize = \"bz\",\r\n Benin = \"bj\",\r\n Bermuda = \"bm\",\r\n Bhutan = \"bt\",\r\n Bolivia = \"bo\",\r\n BosniaAndHerzegovina = \"ba\",\r\n Botswana = \"bw\",\r\n Brazil = \"br\",\r\n BritishIndianOceanTerritory = \"io\",\r\n BritishVirginIslands = \"vg\",\r\n Brunei = \"bn\",\r\n Bulgaria = \"bg\",\r\n BurkinaFaso = \"bf\",\r\n Burundi = \"bi\",\r\n Cambodia = \"kh\",\r\n Cameroon = \"cm\",\r\n Canada = \"ca\",\r\n CapeVerde = \"cv\",\r\n CaribbeanNetherlands = \"bq\",\r\n CaymanIslands = \"ky\",\r\n CentralAfricanRepublic = \"cf\",\r\n Chad = \"td\",\r\n Chile = \"cl\",\r\n China = \"cn\",\r\n ChristmasIsland = \"cx\",\r\n Cocos = \"cc\",\r\n Colombia = \"co\",\r\n Comoros = \"km\",\r\n CongoDRCJamhuriYaKidemokrasiaYaKongo = \"cd\",\r\n CongoRepublicCongoBrazzaville = \"cg\",\r\n CookIslands = \"ck\",\r\n CostaRica = \"cr\",\r\n CôteDIvoire = \"ci\",\r\n Croatia = \"hr\",\r\n Cuba = \"cu\",\r\n Curaçao = \"cw\",\r\n Cyprus = \"cy\",\r\n CzechRepublic = \"cz\",\r\n Denmark = \"dk\",\r\n Djibouti = \"dj\",\r\n Dominica = \"dm\",\r\n DominicanRepublic = \"do\",\r\n Ecuador = \"ec\",\r\n Egypt = \"eg\",\r\n ElSalvador = \"sv\",\r\n EquatorialGuinea = \"gq\",\r\n Eritrea = \"er\",\r\n Estonia = \"ee\",\r\n Ethiopia = \"et\",\r\n FalklandIslands = \"fk\",\r\n FaroeIslands = \"fo\",\r\n Fiji = \"fj\",\r\n Finland = \"fi\",\r\n France = \"fr\",\r\n FrenchGuiana = \"gf\",\r\n FrenchPolynesia = \"pf\",\r\n Gabon = \"ga\",\r\n Gambia = \"gm\",\r\n Georgia = \"ge\",\r\n Germany = \"de\",\r\n Ghana = \"gh\",\r\n Gibraltar = \"gi\",\r\n Greece = \"gr\",\r\n Greenland = \"gl\",\r\n Grenada = \"gd\",\r\n Guadeloupe = \"gp\",\r\n Guam = \"gu\",\r\n Guatemala = \"gt\",\r\n Guernsey = \"gg\",\r\n Guinea = \"gn\",\r\n GuineaBissau = \"gw\",\r\n Guyana = \"gy\",\r\n Haiti = \"ht\",\r\n Honduras = \"hn\",\r\n HongKong = \"hk\",\r\n Hungary = \"hu\",\r\n Iceland = \"is\",\r\n India = \"in\",\r\n Indonesia = \"id\",\r\n Iran = \"ir\",\r\n Iraq = \"iq\",\r\n Ireland = \"ie\",\r\n IsleOfMan = \"im\",\r\n Israel = \"il\",\r\n Italy = \"it\",\r\n Jamaica = \"jm\",\r\n Japan = \"jp\",\r\n Jersey = \"je\",\r\n Jordan = \"jo\",\r\n Kazakhstan = \"kz\",\r\n Kenya = \"ke\",\r\n Kiribati = \"ki\",\r\n Kosovo = \"xk\",\r\n Kuwait = \"kw\",\r\n Kyrgyzstan = \"kg\",\r\n Laos = \"la\",\r\n Latvia = \"lv\",\r\n Lebanon = \"lb\",\r\n Lesotho = \"ls\",\r\n Liberia = \"lr\",\r\n Libya = \"ly\",\r\n Liechtenstein = \"li\",\r\n Lithuania = \"lt\",\r\n Luxembourg = \"lu\",\r\n Macau = \"mo\",\r\n Macedonia = \"mk\",\r\n Madagascar = \"mg\",\r\n Malawi = \"mw\",\r\n Malaysia = \"my\",\r\n Maldives = \"mv\",\r\n Mali = \"ml\",\r\n Malta = \"mt\",\r\n MarshallIslands = \"mh\",\r\n Martinique = \"mq\",\r\n Mauritania = \"mr\",\r\n Mauritius = \"mu\",\r\n Mayotte = \"yt\",\r\n Mexico = \"mx\",\r\n Micronesia = \"fm\",\r\n Moldova = \"md\",\r\n Monaco = \"mc\",\r\n Mongolia = \"mn\",\r\n Montenegro = \"me\",\r\n Montserrat = \"ms\",\r\n Morocco = \"ma\",\r\n Mozambique = \"mz\",\r\n Myanmar = \"mm\",\r\n Namibia = \"na\",\r\n Nauru = \"nr\",\r\n Nepal = \"np\",\r\n Netherlands = \"nl\",\r\n NewCaledonia = \"nc\",\r\n NewZealand = \"nz\",\r\n Nicaragua = \"ni\",\r\n Niger = \"ne\",\r\n Nigeria = \"ng\",\r\n Niue = \"nu\",\r\n NorfolkIsland = \"nf\",\r\n NorthKorea = \"kp\",\r\n NorthernMarianaIslands = \"mp\",\r\n Norway = \"no\",\r\n Oman = \"om\",\r\n Pakistan = \"pk\",\r\n Palau = \"pw\",\r\n Palestine = \"ps\",\r\n Panama = \"pa\",\r\n PapuaNewGuinea = \"pg\",\r\n Paraguay = \"py\",\r\n Peru = \"pe\",\r\n Philippines = \"ph\",\r\n Poland = \"pl\",\r\n Portugal = \"pt\",\r\n PuertoRico = \"pr\",\r\n Qatar = \"qa\",\r\n Réunion = \"re\",\r\n Romania = \"ro\",\r\n Russia = \"ru\",\r\n Rwanda = \"rw\",\r\n SaintBarthélemy = \"bl\",\r\n SaintHelena = \"sh\",\r\n SaintKittsAndNevis = \"kn\",\r\n SaintLucia = \"lc\",\r\n SaintMartin = \"mf\",\r\n SaintPierreAndMiquelon = \"pm\",\r\n SaintVincentAndTheGrenadines = \"vc\",\r\n Samoa = \"ws\",\r\n SanMarino = \"sm\",\r\n SãoToméAndPríncipe = \"st\",\r\n SaudiArabia = \"sa\",\r\n Senegal = \"sn\",\r\n Serbia = \"rs\",\r\n Seychelles = \"sc\",\r\n SierraLeone = \"sl\",\r\n Singapore = \"sg\",\r\n SintMaarten = \"sx\",\r\n Slovakia = \"sk\",\r\n Slovenia = \"si\",\r\n SolomonIslands = \"sb\",\r\n Somalia = \"so\",\r\n SouthAfrica = \"za\",\r\n SouthKorea = \"kr\",\r\n SouthSudan = \"ss\",\r\n Spain = \"es\",\r\n SriLanka = \"lk\",\r\n Sudan = \"sd\",\r\n Suriname = \"sr\",\r\n SvalbardAndJanMayen = \"sj\",\r\n Swaziland = \"sz\",\r\n Sweden = \"se\",\r\n Switzerland = \"ch\",\r\n Syria = \"sy\",\r\n Taiwan = \"tw\",\r\n Tajikistan = \"tj\",\r\n Tanzania = \"tz\",\r\n Thailand = \"th\",\r\n TimorLeste = \"tl\",\r\n Togo = \"tg\",\r\n Tokelau = \"tk\",\r\n Tonga = \"to\",\r\n TrinidadAndTobago = \"tt\",\r\n Tunisia = \"tn\",\r\n Turkey = \"tr\",\r\n Turkmenistan = \"tm\",\r\n TurksAndCaicosIslands = \"tc\",\r\n Tuvalu = \"tv\",\r\n USVirginIslands = \"vi\",\r\n Uganda = \"ug\",\r\n Ukraine = \"ua\",\r\n UnitedArabEmirates = \"ae\",\r\n UnitedKingdom = \"gb\",\r\n UnitedStates = \"us\",\r\n Uruguay = \"uy\",\r\n Uzbekistan = \"uz\",\r\n Vanuatu = \"vu\",\r\n VaticanCity = \"va\",\r\n Venezuela = \"ve\",\r\n Vietnam = \"vn\",\r\n WallisAndFutuna = \"wf\",\r\n WesternSahara = \"eh\",\r\n Yemen = \"ye\",\r\n Zambia = \"zm\",\r\n Zimbabwe = \"zw\",\r\n ÅlandIslands = \"ax\"\r\n}\r\n","export enum FontSize\r\n{\r\n fontname = 'fontname' ,\r\n fontsize = 'fontsize',\r\n color = 'color',\r\n \r\n}\r\n\r\n","export enum Insert\r\n{\r\n table = 'table' ,\r\n picture = 'picture',\r\n link = 'link',\r\n video='video',\r\n hr='hr'\r\n}\r\n\r\n\r\n","export enum Misc\r\n{\r\n codeview = 'codeview' ,\r\n undo = 'undo',\r\n redo = 'redo',\r\n}\r\n","export enum Para\r\n{\r\n style = 'style' ,\r\n ul = 'ul',\r\n ol = 'ol',\r\n paragraph='paragraph',\r\n height='height'\r\n}\r\n\r\n","export enum Style\r\n{\r\n bold = 'bold' ,\r\n italic = 'italic',\r\n underline = 'underline',\r\n clear='clear'\r\n}\r\n\r\n","export enum FileType {\r\n PDF = 'application/pdf',\r\n Word = 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n Excel = 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n ImageTypes = 'image/png,image/bmp,image/jpeg',\r\n PNG = 'image/png',\r\n JPG = 'image/jpeg',\r\n JPEG = 'image/jpeg',\r\n ZIP = 'application/zip',\r\n RAR = 'application/x-rar-compressed',\r\n VIDEO = 'video/webm,video/ogg,video/mp4,video/quicktime,video/x-msvideo,video/x-ms-wmv',\r\n License = 'application/BN',\r\n Xml = 'text/xml',\r\n OctetSteam = 'application/octet-stream',\r\n Txt = 'text/plain',\r\n JSON = 'application/json',\r\n PowerPoint = 'application/vnd.ms-powerpoint,applicationapplication/vnd.openxmlformats-officedocument.presentationml.presentation',\r\n SVG = 'image/svg+xml',\r\n None = '',\r\n}\r\n","/*\r\n * Public API Surface of bnsights-library\r\n */\r\n//export module \r\nexport * from './lib/controls/bbsf-controls.module';\r\n// export * from './lib/areas/admin-panel/layout-modules/adminPage.module';\r\n\r\n// //export component \r\n export * from './lib/controls/TextBox/TextBox.component'\r\nexport * from './lib/controls/DateTimePicker/DateTimePicker.component'\r\nexport * from './lib/controls/FileUplaod/FileUplaod.component'\r\nexport * from './lib/controls/MultiLingualTextBox/MultiLingualTextBox.component'\r\nexport * from './lib/controls/TextArea/TextArea.component'\r\nexport * from './lib/controls/MultiLingualTextArea/MultiLingualTextArea.component'\r\nexport * from './lib/controls/CheckBox/CheckBox.component'\r\nexport * from './lib/controls/DropdownList/DropdownList.component'\r\nexport * from './lib/controls/Phone/Phone.component'\r\nexport * from './lib/controls/Toggleslide/toggleslide.component'\r\nexport * from './lib/controls/HtmlEditor/HtmlEditor.component'\r\nexport * from './lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component';\r\nexport * from './lib/controls/ImageUpload/ImageUpload.component'\r\nexport * from './lib/controls/ProfileImageUploader/ProfileImageUploader.component'\r\nexport * from './lib/controls/Calendar/Calendar.component'\r\nexport * from './lib/controls/MapAutoComplete/MapAutoComplete.component'\r\nexport * from './lib/controls/AutocompleteTextBox/AutocompleteTextBox.component'\r\nexport * from './lib/controls/TagsInput/TagsInput.component'\r\nexport * from './lib/controls/Paging/JwPagination.component'\r\nexport * from './lib/controls/Paging/Paging.component'\r\nexport * from './lib/controls/RadioButton/RadioButton.component'\r\nexport * from './lib/controls/ConfirmationModal/ConfirmationModal.component'\r\nexport * from './lib/controls/Form/Form.component'\r\nexport * from './lib/controls/Repeater/repeater/repeater.component'\r\nexport * from './lib/controls/Repeater/repeater-table/repeater-table.component'\r\n\r\nexport * from './lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component'\r\nexport * from './lib/controls/Repeater/repeater-item-field/repeater-item-field.component'\r\nexport * from './lib/controls/Recaptcha/Recaptcha.component'\r\nexport * from './lib/controls/page-header-component/page-header-component.component'\r\nexport * from './lib/Shared/Components/app-base-component'\r\n\r\n// //adminPageModule\r\n// export * from './lib/areas/admin-panel/home/adminHome.component'\r\n// export * from './lib/areas/admin-panel/layout-modules/adminPage.component'\r\n\r\n//export services\r\nexport * from './lib/Shared/services/validationErrorMassage.service'\r\nexport * from './lib/Shared/services/ControlUtility'\r\nexport * from './lib/Shared/services/OnPagingFiltersChange.service'\r\nexport * from './lib/Shared/config/environment'\r\nexport * from './lib/Shared/services/GlobalSettings.service'\r\nexport * from './lib/Shared/services/render-component-service.service'\r\nexport * from './lib/Shared/default_intl'\r\n\r\n\r\n\r\n//export Models\r\nexport * from './lib/Shared/Models/ControlOptionsBase'\r\nexport * from './lib/Shared/Models/ReCaptchaOptions'\r\nexport * from './lib/Shared/Models/Recaptcha'\r\nexport * from './lib/Shared/Models/MultilingualControlOptionsBase'\r\nexport * from './lib/Shared/Models/CustomValidation'\r\nexport * from './lib/Shared/Models/datePickerOptions'\r\nexport * from './lib/Shared/Models/TextBoxOptions'\r\nexport * from './lib/Shared/Models/FileUploadOptions'\r\nexport * from './lib/Shared/Models/FileUploadModel'\r\nexport * from './lib/Shared/Models/MultipleFileUploadModel'\r\nexport * from './lib/Shared/Models/MultilingualTextBoxOptions'\r\nexport * from './lib/Shared/Models/RangeNumber'\r\nexport * from './lib/Shared/Models/EnglishArabicDTO'\r\nexport * from './lib/Shared/Models/Attribute'\r\nexport * from './lib/Shared/Models/TextAreaOptions'\r\nexport * from './lib/Shared/Models/MultiLingualTextAreaOptions'\r\nexport * from './lib/Shared/Models/CheckBoxOptions'\r\nexport * from './lib/Shared/Models/DropdownListItem'\r\nexport * from './lib/Shared/Models/DropdownOptions'\r\nexport * from './lib/Shared/Models/PhoneOptions'\r\nexport * from './lib/Shared/Models/ToggleslideOptions'\r\nexport * from './lib/Shared/Models/HtmlEditorOptions'\r\nexport * from './lib/Shared/Models/MultiLingualHtmlEditorOptions'\r\nexport * from './lib/Shared/Models/FileDTO'\r\nexport * from './lib/Shared/Models/ImageUploadOptions'\r\nexport * from './lib/Shared/Models/ProfileImageUploadOptions'\r\nexport * from './lib/Shared/Models/ProfilePictureDTO'\r\nexport * from './lib/Shared/Models/SaveDTO'\r\nexport * from './lib/Shared/Models/CancelDTO'\r\nexport * from './lib/Shared/Models/EditPersonalImage'\r\nexport * from './lib/Shared/Models/UploadPersonalImage'\r\nexport * from './lib/Shared/Models/CalendarOptions'\r\nexport * from './lib/Shared/Models/CalendarEventDTO'\r\nexport * from './lib/Shared/Models/MapAutoCompleteOptions'\r\nexport * from './lib/Shared/Models/MapAutocompleteDTO'\r\nexport * from './lib/Shared/Models/AutocompleteDTO'\r\nexport * from './lib/Shared/Models/AutocompleteOptions'\r\nexport * from './lib/Shared/Models/TagsInputDTO'\r\nexport * from './lib/Shared/Models/TagsInputOptions'\r\nexport * from './lib/Shared/Models/FilterItem'\r\nexport * from './lib/Shared/Models/PagingDTO'\r\nexport * from './lib/Shared/Models/PagingOptions'\r\nexport * from './lib/Shared/Models/RadioButtonOptions'\r\nexport * from './lib/Shared/Models/RadioButtonItem'\r\nexport * from './lib/Shared/Models/FormOptions'\r\nexport * from './lib/Shared/Models/ConfirmationModalOptions'\r\nexport * from './lib/Shared/Models/RepeaterField'\r\nexport * from './lib/Shared/Models/RepeaterOptions'\r\nexport * from './lib/Shared/Models/page-header-options'\r\nexport * from './lib/Shared/Models/filter-options'\r\nexport * from './lib/Shared/Models/control-filter-Item'\r\nexport * from './lib/Shared/Models/bread-crumb'\r\nexport * from './lib/Shared/Directives/template-name.directive'\r\nexport * from './lib/shared/Pipes/bbsf-date-time.pipe';\r\nexport * from './lib/shared/Pipes/bbsf-date.pipe';\r\n\r\n\r\n//export Enums\r\nexport * from './lib/Shared/Enums/InputType'\r\nexport * from './lib/Shared/Enums/menu-list-enum'\r\nexport * from './lib/Shared/Enums/ControlLayout'\r\nexport * from './lib/Shared/Enums/ForceDirection'\r\nexport * from './lib/Shared/Enums/PickerType'\r\nexport * from './lib/Shared/Enums/StartView'\r\nexport * from './lib/Shared/Enums/SelectMode'\r\nexport * from './lib/Shared/Enums/Countries'\r\nexport * from './lib/Shared/Enums/FontSize'\r\nexport * from './lib/Shared/Enums/Insert'\r\nexport * from './lib/Shared/Enums/Misc'\r\nexport * from './lib/Shared/Enums/Para'\r\nexport * from './lib/Shared/Enums/Style'\r\nexport * from './lib/Shared/Enums/FileType'\r\nexport * from './lib/Shared/Enums/ImageType'\r\nexport * from './lib/Shared/Enums/LanguageMode'\r\nexport * from './lib/Shared/Enums/CalendarView'\r\nexport * from './lib/Shared/Enums/FilterType'\r\nexport * from './lib/Shared/Enums/IconPosition'\r\nexport * from './lib/Shared/Enums/PagingActionMode'\r\nexport * from './lib/Shared/Enums/StyleConfirmationMode'\r\nexport * from './lib/Shared/Enums/Enums'\r\nexport * from './lib/Shared/Enums/LanguageValidation'\r\nexport * from './lib/Shared/Enums/TagInputView'\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {BTagsInputComponent as ɵa} from './lib/Shared/Components/ng-tag-input';"],"names":["Injectable","Http","ControlContainer","Optional","UtilityService","InputType","Validators","ControlValidationService","PickerType","StartView","SelectMode","Subject","OwlDateTimeIntl","EventEmitter","FormControl","Component","DatePipe","FormGroupDirective","BBSFTranslateService","DateTimeAdapter","Input","Output","ControlLayout","LanguageMode","FileUploader","FileLikeObject","ViewChild","Expose","FormGroup","SearchCountryField","NgZone","NgbModal","HttpHeaders","Observable","switchMap","HttpParams","RequestOptionsModel","map","tap","noop","of","HttpClient","RequestHandlerService","EMPTY","FilterType","Subscription","plainToClass","Router","LanguageValidation","environment","LazyMapsAPILoader","MapsAPILoader","CalendarView","dayGridPlugin","timeGrigPlugin","interactionPlugin","listPlugin","ArLocale","enGbLocale","timeGridPlugin","PagingActionMode","NgbActiveModal","StyleConfirmationMode","Swal","Directive","TemplateRef","ViewChildren","PermissionSets","DataType","ForceDirection","ImageType","IconPosition","ComponentFactoryResolver","ViewContainerRef","Pipe","TagInputView","NG_VALUE_ACCESSOR","forwardRef","AppInjector","NgModule","CommonModule","InfiniteScrollModule","NgSelectModule","NgxTagsInputModule","NgxTypeaheadModule","AgmCoreModule","MatGoogleMapsAutocompleteModule","FullCalendarModule","AngularCropperjsModule","ImageCropperModule","NgbModule","NgxDropzoneModule","FileUploadModule","TooltipModule","NgxMaskModule","NgxSummernoteModule","MatSlideToggleModule","NgxIntlTelInputModule","AngularMultiSelectModule","NgMultiSelectDropDownModule","OwlDateTimeModule","OwlNativeDateTimeModule","BlockUIModule","ReactiveFormsModule","HttpModule","RouterModule","ToastrModule","HttpClientModule","NgxPermissionsModule","OverlayModule","StoreDevtoolsModule","FormsModule","BsDatepickerModule","TypeaheadModule","AngularEditorModule","AutocompleteLibModule","BBSFUtilitiesModule","InlineSVGModule","SweetAlert2Module","TranslateService","OWL_DATE_TIME_LOCALE","NO_ERRORS_SCHEMA","Injector","ConfigurationService","EnvironmentService","Title","AuthService","saveAs","MenuListType","Country","FontSize","Insert","Misc","Para","Style","FileType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAWE,gCACU,IAAU,EACE,gBAAkC,EAC9C,cAA8B;YAF9B,SAAI,GAAJ,IAAI,CAAM;YACE,qBAAgB,GAAhB,gBAAgB,CAAkB;YAC9C,mBAAc,GAAd,cAAc,CAAgB;YAIxC,QAAG,GAAG,sBAAsB,CAAC;YAF3B,sBAAsB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACvE;;QAIM,gCAAS,GAAhB,UAAiB,eAAuB;YACtC,IAAI,IAAI,GAAG,sBAAsB,CAAC,sBAAsB;iBACrD,OAAoB,CAAC;YACxB,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAgB,CAAC;;YAEvD,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,aAAa,EAAE,CAAC;SACzB;;;;;;;;;;;;QAcD,0DAAyB,GAAzB,UAA0B,KAAU;YAClC,IAAI,MAAM,GAAW,EAAE,CAAC;YACxB,QAAQ,KAAK,CAAC,GAAG;gBACf,KAAK,UAAU;oBACb,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;oBACvE,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;oBACpE,MAAM;gBACR,KAAK,oBAAoB;oBACvB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;oBACpE,MAAM;gBACR,KAAK,kBAAkB;oBACrB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;oBACpE,MAAM;gBACR,KAAK,SAAS;oBACZ,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;oBACrE,MAAM;gBACR,KAAK,WAAW;oBACd,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;4BAC9D,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;oBAC7B,MAAM;gBACR,KAAK,WAAW;oBACd,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;4BAC9D,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;oBAC7B,MAAM;gBACR,KAAK,KAAK;oBACR,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;4BAC7D,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;oBAClB,MAAM;gBACR,KAAK,KAAK;oBACR,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;4BAC7D,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;oBAClB,MAAM;gBACR,KAAK,4BAA4B;oBAC/B,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,4BAA4B,CAC7B,CAAC;oBACF,MAAM;gBACR,KAAK,6BAA6B;oBAChC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,6BAA6B,CAC9B,CAAC;oBACF,MAAM;gBACR,KAAK,qBAAqB;oBACxB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,0BAA0B,CAC3B,CAAC;oBACF,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC;4BACzD,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC3B,MAAM;gBACR,KAAK,6BAA6B;oBAChC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,6BAA6B,CAC9B,CAAC;oBACF,MAAM;gBACR,KAAK,kBAAkB;oBACrB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;oBAClE,MAAM;gBACR,KAAK,mBAAmB;oBACtB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;oBACnE,MAAM;gBACR,KAAK,4CAA4C;oBAC/C,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,4CAA4C,CAC7C,CAAC;oBACF,MAAM;gBACR,KAAK,oCAAoC;oBACvC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,oCAAoC,CACrC,CAAC;oBACF,MAAM;gBACR,KAAK,kCAAkC;oBACrC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,kCAAkC,CACnC,CAAC;oBACF,MAAM;gBACR,KAAK,oCAAoC;oBACvC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,oCAAoC,CACrC,CAAC;oBACF,MAAM;gBACR,KAAK,2BAA2B;oBAC9B,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,2BAA2B,CAAC;4BACjE,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC;oBACd,MAAM;gBACR,KAAK,2BAA2B;oBAC9B,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC3C,2BAA2B,CAC5B,CAAC;oBACF,MAAM;gBACR,KAAK,2BAA2B;oBAC9B,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,2BAA2B,CAAC;4BACjE,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC;oBACd,MAAM;gBACR,KAAK,2BAA2B;oBAC9B,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,2BAA2B,CAAC;4BACjE,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC;oBACd,MAAM;gBACR,KAAK,wBAAwB;oBAC3B,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;4BAC9D,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC;oBACd,MAAM;gBACR,KAAK,iBAAiB;oBACpB,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;4BACvD,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC;oBACd,MAAM;gBACR,KAAK,kBAAkB;oBACrB,MAAM;wBACJ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;4BACxD,GAAG;4BACH,KAAK,CAAC,KAAK,CAAC;oBACd,MAAM;gBACR,KAAK,gBAAgB;oBACnB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;oBAChE,MAAM;gBACR,KAAK,kBAAkB;oBACrB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;oBAClE,MAAM;gBACR;oBACE,MAAM;aACT;YACD,OAAO,MAAM,CAAC;SACf;;;IAnLM,6CAAsB,GAAG,IAAI,CAAC;;gBAFtCA,aAAU;;;gBALFC,SAAI;gBAEJC,sBAAgB,uBAUpBC,WAAQ;gBATJC,4BAAc;;;ACJXC;IAAZ,WAAY,SAAS;QACnB,yCAAQ,CAAA;QACR,iDAAY,CAAA;QACZ,2CAAS,CAAA;QACT,6CAAU,CAAA;QACV,uCAAO,CAAA;QACP,uCAAO,CAAA;IACT,CAAC,EAPWA,iBAAS,KAATA,iBAAS;;;QCWnB,wBAAoB,YAAoC,EAAU,wBAAkD,EAAU,cAA8B;YAAxI,iBAAY,GAAZ,YAAY,CAAwB;YAAU,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;SAE3J;QAED,2CAAkB,GAAlB,UAAmB,UAAiB,EAAE,gBAAmC;YAAzE,iBAoBC;YAnBC,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,UAAU,CAAC,OAAO,CAAC,UAAA,OAAO;gBAExB,IAAI,OAAO,CAAC,GAAG,KAAK,eAAe,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9D,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;iBACvC;qBAAM,IAAI,OAAO,CAAC,GAAG,KAAK,iBAAiB,EAAE;oBAC5C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;iBACzB;qBAAM,IAAI,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE;oBACtC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;iBACzB;qBACI,IAAI,OAAO,CAAC,GAAG,KAAK,cAAc,EAAE;oBACvC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;iBACzB;qBACI;oBACH,OAAO,GAAG,KAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;iBAChE;aACF,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;SAChB;QAED,yCAAgB,GAAhB,UAAiB,KAAa,EAAE,KAAuB;YACrD,OAAO,UAAC,OAAwB;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBAClB,OAAO,IAAI,CAAC;iBACb;gBAED,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,OAAO,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;aAC7B,CAAC;SACH;QACD,0CAAiB,GAAjB,UAAkB,aAAa,EAAE,aAAa,EAAE,SAAS;YAAzD,iBASC;YARC,IAAI,OAAO,GAAG,CAAC;oBACb,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,aAAa;iBACrB,CAAC,CAAA;YACF,IAAI,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAoB,CAAC;YACxE,YAAY,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAA,EAAE,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAA,CAAC,CAAC;SAErG;QACD,wCAAe,GAAf,UAAgB,KAAuB;YACrC,OAAO,UAAC,OAAwB;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK;oBAChB,OAAO,IAAI,CAAC;gBACd,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;oBAC1C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;;wBAE3C,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;wBAC3E,IAAI,MAAM,GAAG,EAAE,EAAE;4BACf,OAAO,KAAK,CAAC;yBACd;6BAAM;4BACL,OAAO,IAAI,CAAC;yBACb;qBACF;yBACI;;wBAEH,OAAO,IAAI,CAAC;qBACb;iBACF;qBACI;oBACH,OAAO,KAAK,CAAC;iBACd;aACF,CAAC;SACH;QAED,qCAAY,GAAZ,UAAa,IAAY;YACvB,OAAOA,iBAAS,CAAC,IAAI,CAAW,CAAA;SACjC;QAGD,yCAAgB,GAAhB,UAAiB,KAAU;YACzB,IAAM,UAAU,GAAW,GAAG,CAAC;YAC/B,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC9D,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;aACrB;;gBAEC,OAAO,KAAK,CAAA;SACf;QAED,yCAAgB,GAAhB,UAAiB,YAAY;YAC3B,YAAY,CAAC,MAAM,EAAE,CAAC;YACtB,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,YAAY,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACtC;QAGD,kDAAyB,GAAzB,UAA0B,SAAS,EAAE,KAAK,EAAE,OAAO;;;;;;YAMjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;SACrE;QAED,mDAA0B,GAA1B;YACE,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACjD,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;SACnE;QACD,+CAAsB,GAAtB,UAAuB,OAAO;YAC5B,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACjC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACjE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC5F;aAEF;SAEF;QAED,wCAAe,GAAf,UAAgB,MAAe;YAC7B,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,0BAA0B,EAAE,CAAA;SAClC;QAED,iDAAwB,GAAxB,UAAyB,WAA4B,EAAE,cAAqB,EAAE,OAAY;YACxF,OAAO,CAAC,UAAU,GAAG,KAAK,CAAA;YAC1B,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,IAAIC,gBAAU,CAAC,QAAQ,GAAA,CAAC,CAAA;YACvE,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC1C,WAAW,CAAC,sBAAsB,EAAE,CAAA;SACrC;QAED,8CAAqB,GAArB,UAAsB,WAA4B,EAAE,cAAqB,EAAE,OAAY;YACrF,OAAO,CAAC,UAAU,GAAG,IAAI,CAAA;YACzB,cAAc,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAA;YACxC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC1C,WAAW,CAAC,sBAAsB,EAAE,CAAA;SACrC;QAED,6CAAoB,GAApB,UAAqB,WAA4B,EAAE,OAAY;YAC7D,OAAO,CAAC,UAAU,GAAG,IAAI,CAAA;YACzB,WAAW,CAAC,aAAa,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,WAAW,CAAC,sBAAsB,EAAE,CAAA;SACrC;QACD,kDAAyB,GAAzB,UAA0B,WAA4B,EAAE,OAAY;YAClE,OAAO,CAAC,UAAU,GAAG,KAAK,CAAA;YAC1B,WAAW,CAAC,gBAAgB,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;YAClD,WAAW,CAAC,sBAAsB,EAAE,CAAA;SACrC;QAGD,+CAAsB,GAAtB,UAAuB,WAA4B,EAAE,cAAqB,EAAE,gBAAkC;YAC5G,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,IAAI,gBAAgB,CAAC,YAAY,GAAA,CAAC,CAAA;YACjF,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC1C,WAAW,CAAC,sBAAsB,EAAE,CAAA;SACrC;QAED,4CAAmB,GAAnB,UAAoB,WAA4B,EAAE,cAAqB,EAAE,gBAAkC;YACzG,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;YAClD,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC1C,WAAW,CAAC,sBAAsB,EAAE,CAAA;SACrC;QACM,uBAAQ,GAAf;YACE,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;SACtC;QAED,gCAAO,GAAP,UAAQ,WAA4B;YAElC,WAAW,CAAC,aAAa,EAAE,CAAC;SAC7B;;;;gBAxKFN,aAAU;;;gBAPF,sBAAsB;gBAGtBO,sCAAwB;gBAAEH,4BAAc;;;ACLrCI;IAAZ,WAAY,UAAU;QACpB,2CAAQ,CAAA;QACR,mDAAY,CAAA;QACZ,6CAAS,CAAA;IACT,CAAC,EAJSA,kBAAU,KAAVA,kBAAU;;ACAVC;IAAZ,WAAY,SAAS;QACnB,2CAAS,CAAA;QACT,yCAAQ,CAAA;QACR,mDAAW,CAAA;IACX,CAAC,EAJSA,iBAAS,KAATA,iBAAS;;ACATC;IAAZ,WAAY,UAAU;QAElB,+CAAU,CAAA;QACV,6CAAS,CAAA;IACb,CAAC,EAJWA,kBAAU,KAAVA,kBAAU;;;QCGtB;YAEY,YAAO,GAAG,IAAIC,YAAO,EAAO,CAAC;SAaxC;QAXG,kDAAW,GAAX,UAAY,KAAa;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B;QAED,iDAAU,GAAV;YACI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACvB;QAED,+CAAQ,GAAR;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;SACtC;;;;;gBAdJX,aAAU,SAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ICHlC;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;ICzOA;;QACiC,+BAAe;QAC9C,qBAAoB,cAA8B;YAAlD,YACE,iBAAO,SACR;YAFmB,oBAAc,GAAd,cAAc,CAAgB;;YAKlD,oBAAc,GAAG,KAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;YAE9D,kBAAY,GAAG,KAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;;YAE1D,oBAAc,GAAG,KAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;;YAEhE,iBAAW,GAAG,KAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;YAE3D,mBAAa,GAAG,KAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;;YAE3D,mBAAa,GAAG,KAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;;SAb1D;;KAHH,CAAiCY,8BAAe;;gBAF/CZ,aAAU;;;gBAHFI,4BAAc;;;;;QC0BrB,4BAAmB,QAAkB,EAAU,eAA6C,EAAU,YAAoC,EAAU,cAA8B,EAAsB,gBAAkC,EAAS,oBAAwC,EAAU,cAA8B,EAAU,SAA+B,EAAU,wBAAkD,EAAU,eAAqC;YAAvd,iBAEC;YAFkB,aAAQ,GAAR,QAAQ,CAAU;YAAU,oBAAe,GAAf,eAAe,CAA8B;YAAU,iBAAY,GAAZ,YAAY,CAAwB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAAS,yBAAoB,GAApB,oBAAoB,CAAoB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,cAAS,GAAT,SAAS,CAAsB;YAAU,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,oBAAe,GAAf,eAAe,CAAsB;YAM7c,aAAQ,GAAG,IAAIS,eAAY,EAAE,CAAC;YACxC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAC1B,oBAAe,GAAoB,IAAI,CAAC;YACxC,cAAS,GAAY,KAAK,CAAC;YA8D3B,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;YAgFD,iCAA4B,GAAG;gBAC7B,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;oBAC3E,OAAO,IAAI,CAAC;iBACb;gBACD,IAAI,IAAI,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC5F,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrC,OAAO,IAAI,CAAC;iBACb;qBACI;oBACH,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;iBACjC;aACF,CAAC;YACF,iCAA4B,GAAG;gBAC7B,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;oBAC3E,OAAO,IAAI,CAAC;iBACb;gBACD,IAAI,IAAI,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC5F,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAClD,OAAO,IAAI,CAAC;iBACb;qBACI;oBACH,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAClD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;iBACnC;aACF,CAAC;;YAGF,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC7G,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC1G,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC/G,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC5G,CAAA;;YAGD,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,qBAAqB,CAAC,CAAA;aACxD,CAAA;YA1MC,kBAAkB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACnE;QAaD,qCAAQ,GAAR;YAAA,iBAkDC;YAjDC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;;gBAEhE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;iBAC3B;gBACH,IAAI,CAAC,SAAS,GAAIJ,iBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAY,CAAC,WAAW,EAAE,CAAA;aAC7E;;YAED,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC;YAClG,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIK,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEpE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAExD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aACF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAGxF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;aACtC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE;gBAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE;oBAC1D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;oBAC7E,IAAI,CAAC,oBAAoB,EAAE,CAAA;iBAC5B;aACF;YAED,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACzE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBACjD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SAEH;QAGD,4CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACzD;QAOD,4CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,+CAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAKD,6CAAgB,GAAhB,UAAiB,YAAY;YAC3B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;SACnD;QAED,0CAAa,GAAb,UAAc,IAAY;YACxB,IAAI,KAAK,GAAII,kBAAU,CAAC,IAAI,CAAY,CAAA;YACxC,OAAO,KAAK,CAAC,WAAW,EAA8B,CAAA;SACvD;QACD,0CAAa,GAAb,UAAc,IAAY;YACxB,IAAI,KAAK,GAAIF,kBAAU,CAAC,IAAI,CAAY,CAAA;YACxC,OAAO,KAAK,CAAC,WAAW,EAA8B,CAAA;SACvD;QACD,yCAAY,GAAZ,UAAa,IAAY;YACvB,IAAI,IAAI,IAAI,CAAC;gBACX,OAAO,YAAY,CAAC;iBACjB;gBACH,IAAM,KAAK,GAAIC,iBAAS,CAAC,IAAI,CAAY,CAAC,WAAW,EAAE,CAAA;gBACvD,OAAO,KAAK,CAAA;aACb;SACF;QAGD,yCAAY,GAAZ,UAAa,IAAI;YACf,IAAI,CAAC,IAAI;gBACP,OAAO;YACT,IAAI,SAAS,CAAC;YACd,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;YAExD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,EAAE;gBAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;iBAEvF;gBACD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;aACxB;iBACI;gBACH,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAExE;YACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAC9C,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,aAAa,GAAG,SAAS,CAAC;YAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACnG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aACzG;;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACnC;QAED,iDAAoB,GAApB;YAAA,iBAWC;YAVC,IAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;YAC3D,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;YACtE,gBAAgB,CAAC,SAAS,CAAC,UAAA,KAAK;gBAC9B,KAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAI,CAAC,4BAA4B,CAAC,CAAC;gBACtE,KAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;aAC/C,CAAC,CAAC;YACH,cAAc,CAAC,SAAS,CAAC,UAAA,GAAG;gBAC1B,KAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,KAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC5E,KAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;aACrD,CAAC,CAAC;SACJ;QAoDD,yCAAY,GAAZ;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC1I;;;IAjNM,yCAAsB,GAAG,IAAI,CAAC;;gBARtCM,YAAS,SAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,q0GAA8C;oBAC9C,SAAS,EAAE;wBACT,EAAE,OAAO,EAAEH,8BAAe,EAAE,QAAQ,EAAE,WAAW,EAAE;qBACpD;iBACF;;;gBAZQI,eAAQ;gBAHR,4BAA4B;gBAL5B,sBAAsB;gBACtB,cAAc;gBAH2Dd,sBAAgB,uBA0BqFC,WAAQ;gBA1BjIc,wBAAkB;gBASvBb,4BAAc;gBAA9Dc,kCAAoB;gBAAEX,sCAAwB;gBAE9CY,8BAAe;;;wBAkBrBC,QAAK;0BACLA,QAAK;2BAELC,SAAM;;;;QC/BT;SAIC;8BAAA;KAAA;;;QCJD;YACE,uBAAkB,GAAY,IAAI,CAAC;YACnC,kBAAa,GAAc,EAAE,CAAA;YAC7B,kBAAa,GAAc,EAAE,CAAA;YAC7B,iBAAY,GAAa,EAAE,CAAA;SAC5B;sCAAA;KAAA;;ACPWC;IAAZ,WAAY,aAAa;QACrB,yDAAY,CAAA;QACZ,6DAAc,CAAA;IAClB,CAAC,EAHWA,qBAAa,KAAbA,qBAAa;;ACAbC;IAAZ,WAAY,YAAY;QACpB,mFAAmE,CAAA;QACnE,yFAAyE,CAAA;QACzE,wFAAwE,CAAA;QACxE,oGAAoF,CAAA;QACpF,mGAAmF,CAAA;QACnF,sGAAsF,CAAA;QACtF,yHAAyG,CAAA;IAC5G,CAAC,EARUA,oBAAY,KAAZA,oBAAY;;;QCKxB;;YAGE,aAAQ,GAAkBD,qBAAa,CAAC,QAAQ,CAAC;;YAEjD,8BAAyB,GAAkBA,qBAAa,CAAC,UAAU,CAAC;;YAEpE,iBAAY,GAAiBC,oBAAY,CAAC,0BAA0B,CAAC;YACrE,6BAAwB,GAAY,KAAK,CAAC;;YAE1C,0BAAqB,GAAW,EAAE,CAAC;;YAEnC,qBAAgB,GAAW,GAAG,CAAC;;YAE/B,sBAAiB,GAAW,IAAI,CAAC;;YAEjC,oBAAe,GAAW,mCAAmC,CAAC;SAC/D;;;;;gBAjBAvB,aAAU,SAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;QCwDhC,6BACsB,gBAAkC,EAC/C,6BAAiD,EAChD,cAA8B,EAC/B,cAA8B,EAC7B,wBAAkD,EAClD,cAA8B;YANxC,iBAcC;YAbqB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAC/C,kCAA6B,GAA7B,6BAA6B,CAAoB;YAChD,mBAAc,GAAd,cAAc,CAAgB;YAC/B,mBAAc,GAAd,cAAc,CAAgB;YAC7B,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,mBAAc,GAAd,cAAc,CAAgB;YAzB9B,aAAQ,GAAG,IAAIa,eAAY,EAAE,CAAC;YAGxC,sBAAiB,GAAG,EAAE,CAAC;YACvB,2BAAsB,GAAG,EAAE,CAAC;YAG5B,iBAAY,GAAW,EAAE,CAAC;YAC1B,sBAAiB,GAAa,EAAE,CAAC;YACjC,qBAAgB,GAAa,EAAE,CAAC;YAEhC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAI1B,iBAAY,GAAc,EAAE,CAAC;YAoN7B,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAC;;YAqPF,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAC1C,KAAI,CAAC,qBAAqB,EAC1B,KAAI,CAAC,eAAe,EACpB,KAAI,CAAC,OAAO,CACb,CAAC;aACH,CAAC;;YAEF,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CACvC,KAAI,CAAC,qBAAqB,EAC1B,KAAI,CAAC,eAAe,EACpB,KAAI,CAAC,OAAO,CACb,CAAC;aACH,CAAC;;YAGF,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CACxC,KAAI,CAAC,qBAAqB,EAC1B,KAAI,CAAC,eAAe,EACpB,gBAAgB,CACjB,CAAC;aACH,CAAC;;YAEF,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CACrC,KAAI,CAAC,qBAAqB,EAC1B,KAAI,CAAC,eAAe,EACpB,gBAAgB,CACjB,CAAC;aACH,CAAC;;YAEF,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,qBAAqB,CAAC,CAAC;aACzD,CAAC;YApeA,mBAAmB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACnE,IAAI,CAAC,QAAQ,GAAG,IAAIW,0BAAY,CAAC;gBAC/B,gBAAgB,EAAE,KAAK;aAExB,CAAC,CAAC;YACH,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;SACrC;QAED,sCAAQ,GAAR;YAAA,iBAoLC;YAnLC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;;iBAExC;qBAAM;;iBAEN;aACF;iBAAM;gBACL,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;oBACvC,IAAI,KAAK,GAAU,EAAE,CAAC;oBACtB,IAAI,CAAC,uBAAuB,CAAC,aAAa;wBACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;oBACnC,IAAI,CAAC,uBAAuB,CAAC,aAAa,GAAG,EAAE,CAAC;oBAChD,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAC/C,KAAK,EAAE,EACP;wBACA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBACxD,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAQ,CAAC;wBACjD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;wBACpD,IAAI,CAAC,cAAc,GAAG,IAAIC,4BAAc,CAAC;4BACvC,IAAI,EAAE,OAAO,CAAC,iBAAiB;4BAC/B,IAAI,EAAE,OAAO,CAAC,QAAQ;4BACtB,OAAO,EAAE,MAAM;yBAChB,CAAC,CAAC;;;;;;wBAMH,IAAI,IAAI,GAAG,IAAI,CAAC,cAAqB,CAAC;wBACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;wBAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAClB;oBACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAClC;qBAAM;oBACL,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBACnC,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAQ,CAAC;oBACjD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,cAAc,GAAG,IAAIA,4BAAc,CAAC;wBACvC,IAAI,EAAE,OAAO,CAAC,iBAAiB;wBAC/B,IAAI,EAAE,OAAO,CAAC,QAAQ;wBACtB,OAAO,EAAE,MAAM;qBAChB,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;oBACpB,IAAI,IAAI,GAAG,IAAI,CAAC,cAAqB,CAAC;oBACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAW,CAAC,CAAC,CAAC;iBACzC;aACF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC5D,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtB,CAAC;YAEJ,IACE,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI;gBAC3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAC9C;gBACA,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAClD,KAAK,EAAE,EACP;oBACA,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,GAAG,CAAC;iBACpD;gBACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAClE,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC9C,KAAK,IAAI,OAAK,GAAG,CAAC,EAAE,OAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAK,EAAE,EAAE;wBAClE,IAAM,SAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAK,CAAC,CAAC;wBAC9C,QAAQ,SAAO;4BACb,KAAK,iBAAiB;gCACpB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;oCACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCACpC,MAAM;4BACR,KAAK,oBAAoB;gCACvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC;oCACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACrC,MAAM;4BACR,KAAK,yEAAyE;gCAC5E,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC;oCACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACrC,MAAM;4BACR,KAAK,0BAA0B;gCAC7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;oCAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCACtC,MAAM;4BACR,KAAK,mEAAmE;gCACtE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;oCAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCACtC,MAAM;4BACR,KAAK,+BAA+B;gCAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC;oCAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAC3C,MAAM;4BACR,KAAK,sFAAsF;gCACzF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC;oCAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAC3C,MAAM;4BACN,KAAK,WAAW;gCAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;oCACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCACpC,MAAM;4BACN,KAAK,WAAW;gCAChB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;oCACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCACpC,MAAM;4BACN,KAAK,YAAY;gCACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC;oCACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACrC,MAAM;4BACR;gCACE,MAAM;yBACT;qBACF;iBACF;gBACD,IAAI,CAAC,iBAAiB;oBACpB,IAAI,CAAC,iBAAiB;yBACnB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,UACnD,IAAI,CAAC,gBACP,OAAI,CAAA,CAAC;aACR;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE;gBACpC,IAAI,CAAC,iBAAiB;oBACpB,IAAI,CAAC,iBAAiB;yBACtB,cAAY,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,GAAC,IAAI,CAAC,OAAO,CAAC,eAAe,OAAG,CAAA,CAAC;aACvG;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,EAAE;gBACjC,IAAI,CAAC,iBAAiB;oBACpB,IAAI,CAAC,iBAAiB;yBACtB,aAAU,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,GAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAE,CAAA,CAAC;aAC5G;YAED,IACE,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI;gBAC3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAC9C;aACD;YACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIX,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEpE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aACF;YAED,IAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,GAAC,CAAC,EAC3D;gBACE,IAAI,CAAC,sBAAsB,GAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,eAAe,CAAC,WAAM,IAAI,CAAC,OAAO,CAAC,YAAc,CAAC;aACvH;YACH,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YAED,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;aACtC;YAED,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBAC1D,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzD;QAED,6CAAe,GAAf;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,OAAO,CAAC,YAAY,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EACrC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CACxC,CAAC;iBACH;aACF;SACF;QAMD,6CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;SACvC;QAED,gDAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;aAC/B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAClD,SAAS,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CACb,CAAC;SACH;QAED,6CAAe,GAAf,UAAgB,KAAU;YACxB,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;SACrC;QACD,yCAAW,GAAX;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC/B,IACE,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI;oBACjC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EACvD;oBACA,OAAO,IAAI,CAAC;iBACb;aACF;iBAAM;gBACL,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,OAAO,IAAI,CAAC;iBACb;aACF;YACD,OAAO,KAAK,CAAC;SACd;QACD,0CAAY,GAAZ;YAAA,iBAmIC;YAlIC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IACE,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI;gBACjC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EACtD;gBACA,IAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAC/C,WAAW,CAAC,SAAS,CAAC;oBACpB,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;iBACrD,CAAC,CAAC;gBACH,WAAW,CAAC,aAAa,EAAE,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;gBACzB,OAAO;aACR;YAED,IACE,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC3B,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI;gBAC3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,GAAG,CAAC,EACvC;gBACA,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAC/D,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC3C,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC1B,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;iBACvC;gBACD,IAAM,kBAAkB,GACtB,IAAI,CAAC,OAAO,CAAC,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAC;gBACpD,IAAI,WAAW,GAAG,kBAAkB,EAAE;oBACpC,IAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC;oBAC/C,WAAW,CAAC,SAAS,CAAC;wBACpB,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,GAAG,GAAG;qBAClE,CAAC,CAAC;oBACH,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,OAAO;iBACR;aACF;YACD,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CACzC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,IAAI,IAAI,GAAA,CAChD,CAAC;oCACO,KAAK;gBACZ,IAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,IAAM,WAAW,GAAG,OAAK,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;gBAC/D,IAAI,IAAI,EAAE;oBACR,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE;wBAC3B,IAAM,WAAW,GAAG,OAAK,qBAAqB,CAAC;wBAC/C,WAAW,CAAC,SAAS,CAAC;4BACpB,eAAe,EAAE,OAAK,OAAO,CAAC,eAAe,GAAG,GAAG;yBACpD,CAAC,CAAC;wBACH,WAAW,CAAC,aAAa,EAAE,CAAC;wBAC5B,OAAK,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;;qBAE1B;oBACD,IACE,OAAK,OAAO,CAAC,sBAAsB,IAAI,IAAI;wBAC3C,OAAK,OAAO,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;wBAC9C,EACE,OAAK,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;4BACvD,OAAK,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CACxD,EACD;wBACA,IAAM,WAAW,GAAG,OAAK,qBAAqB,CAAC;wBAC/C,WAAW,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,OAAK,gBAAgB,EAAE,CAAC,CAAC;wBACnE,WAAW,CAAC,aAAa,EAAE,CAAC;wBAC5B,OAAK,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;;qBAE1B;oBACD,IAAI,QAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,OAAc,CAAC;oBACrC,QAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBACjC,QAAM,CAAC,MAAM,GAAG;;wBACd,IAAI,eAAe,GAAG,IAAI,CAAC;wBAC3B,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,cAAc,IAAI,KAAI,CAAC,IAAI;4BAC3C,eAAe;gCACb,KAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI;sCACpC,KAAI,CAAC,IAAI,CAAC,OAAO;sCACjB,IAAI,CAAC;wBAEb,IAAI,SAAS,GAAG;4BACd,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,UAAU,EAAE,QAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAClD,YAAY,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;4BACrC,iBAAiB,EAAE,IAAI,CAAC,IAAI;4BAC5B,OAAO,EAAE,eAAe;yBACzB,CAAC;wBACF,IAAI,KAAI,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,EAAE;4BACxC,KAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;4BAC7C,KAAI,CAAC,eAAe,CAAC,IAAI,GAAG,SAAS,CAAC;4BAEtC,KAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAI,CAAC,eAAe,CAAC,CAAC;4BAC1D,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAI,CAAC,eAAe,CAAC,CAAC;;4BAEjE,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC;yBAC3C;6BAAM;4BACL,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC3B,KAAI,CAAC,uBAAuB,CAAC,aAAa,GAAG,UAAU,CAAC;4BACxD,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE;gCACjE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAAE;oCACjD,KAAI,CAAC,uBAAuB,CAAC,YAAY,GAAG,EAAE,CAAC;iCAChD;6BACF;4BACD,KAAI,CAAC,uBAAuB,CAAC,kBAAkB,GAAC,MAAA,KAAI,CAAC,OAAO,CAAC,KAAK,0CAAE,kBAAkB,CAAA;4BACtF,KAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAI,CAAC,uBAAuB,CAAC,CAAC;4BAClE,KAAI,CAAC,KAAK;iCACP,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC;iCACtB,QAAQ,CAAC,KAAI,CAAC,uBAAuB,CAAC,CAAC;;4BAE1C,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAI,CAAC,uBAAuB,CAAC;yBACnD;qBACF,CAAC;oBACF,IAAI,aAAa,GAAG,OAAK,KAAK,CAAC,GAAG,CAAC,OAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;oBAC5D,IACE,OAAK,OAAO,CAAC,aAAa;wBAC1B,OAAK,OAAO,CAAC,SAAS;wBACtB,OAAK,KAAK,CAAC,GAAG,CAAC,OAAK,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EACvC;wBACA,OAAK,cAAc,CAAC,iBAAiB,CACnC,aAAa,EACb,OAAK,OAAO,CAAC,aAAa,EAC1B,OAAK,OAAO,CAAC,SAAS,CACvB,CAAC;qBACH;oBACD,OAAK,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACnC;;;YAtFH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE;sCAA7C,KAAK;;;aAuFb;SACF;QACD,oDAAsB,GAAtB,UAAuB,IAAI;;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,EAAE;gBACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;oBACnC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,CAAC;oBAC3C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;iBACpC;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACjE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;aAC3C;iBAAM;gBACL,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE;oBACjE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,EAAE;wBACjD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IAAI,CAAC,uBAAuB,CAAC,YAAY,GAAG,EAAE,CAAC;qBAChD;yBAAM;wBACL,IAAI,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;4BACzD,IAAI,YAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;4BACnC,IAAI,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CACjE,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,iBAAiB,IAAI,YAAU,CAAC,IAAI,GAAA,CACxD,CAAC,CAAC,CAAC,CAAC;4BACL,IAAI,CAAC,uBAAuB,CAAC,aAAa;gCACxC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAC/C,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,iBAAiB,IAAI,YAAU,CAAC,IAAI,GAAA,CACxD,CAAC;4BACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BACpC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;yBACrE;6BAAM;4BACL,IAAI,YAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;4BACnC,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CACxC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,iBAAiB,IAAI,YAAU,CAAC,IAAI,GAAA,CACxD,CAAC;4BACF,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,WAAW,IAAI,SAAS,EAAE;gCACvD,IAAI,WAAW,GACb,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAC/C,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,iBAAiB,IAAI,YAAU,CAAC,IAAI,GAAA,CACxD,CAAC,CAAC,CAAC,CAAC;gCACP,IAAI,CAAC,uBAAuB,CAAC,aAAa;oCACxC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAC/C,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,iBAAiB,IAAI,YAAU,CAAC,IAAI,GAAA,CACxD,CAAC;gCACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCACpC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAC5C,WAAW,CAAC,OAAO,CACpB,CAAC;6BACH;yBACF;qBACF;iBACF;qBAAM;oBACL,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;oBACvB,IAAI,CAAC,uBAAuB,CAAC,YAAY,GAAG,EAAE,CAAC;iBAChD;gBACD,IAAI,CAAC,uBAAuB,CAAC,aAAa;oBACxC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAC/C,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAA,CACxD,CAAC;gBACJ,IACE,CAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa,IAAI,IAAI;oBAChD,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC;oBACzD,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB;oBACA,IAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC;oBAC/C,WAAW,CAAC,SAAS,CAAC;wBACpB,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;qBACrD,CAAC,CAAC;oBACH,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,CAAC;oBAC3C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;iBACpC;gBACD,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,GAAC,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,0CAAE,kBAAkB,CAAA;gBACtF,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;;gBAEzE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC;aACnD;SACF;;;IAjeM,0CAAsB,GAAG,IAAI,CAAC;;gBALtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,smNAA0C;iBAC3C;;;gBAlBCb,sBAAgB,uBA+CbC,WAAQ;gBA9CXc,wBAAkB;gBAGX,cAAc;gBAMrBb,4BAAc;gBADdG,sCAAwB;gBAGjB,cAAc;;;4BAUpBmB,YAAS,SAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;wBAGxCN,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QCzCT;SAIC;+BAAA;KAAA,IAAA;IAF+B;QAA3BM,uBAAM,CAAC,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;qDAAiB;IACjB;QAAzBA,uBAAM,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC;oDAAc;;;QCgBzC,sCAAmB,kCAAsD,EAAsB,gBAAkC,EACvH,cAA8B,EAAU,cAA8B,EAAU,SAA+B,EAC/G,wBAAkD,EAAU,cAA8B;YAFpG,iBAKC;YALkB,uCAAkC,GAAlC,kCAAkC,CAAoB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YACvH,mBAAc,GAAd,cAAc,CAAgB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,cAAS,GAAT,SAAS,CAAsB;YAC/G,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAM1F,aAAQ,GAAG,IAAId,eAAY,EAAE,CAAC;YAMxC,oBAAe,GAAW,CAAC,CAAC;YAC5B,yBAAoB,GAAW,CAAC,CAAC;YACjC,qBAAgB,GAAW,CAAC,CAAC;YAC7B,0BAAqB,GAAW,CAAC,CAAC;YAClC,oBAAe,GAAW,EAAE,CAAC;YAG7B,0BAAqB,GAAG,EAAE,CAAC;YAC3B,+BAA0B,GAAG,EAAE,CAAC;YAChC,2BAAsB,GAAG,EAAE,CAAC;YAC5B,gCAA2B,GAAG,EAAE,CAAC;YAEjC,0BAAqB,GAAY,KAAK,CAAC;YACvC,2BAAsB,GAAY,KAAK,CAAC;YAExC,2BAAsB,GAAY,KAAK,CAAC;YACxC,4BAAuB,GAAY,KAAK,CAAC;YACzC,qBAAgB,GAAY,KAAK,CAAC;YAGlC,qBAAgB,GAAW,EAAE,CAAA;YAC7B,sBAAiB,GAAW,EAAE,CAAA;;YAG9B,kBAAa,GAAW,CAAC,CAAC,CAAC;YAC3B,6BAAwB,GAAW,CAAC,CAAC;YACrC,4BAAuB,GAAW,CAAC,CAAC;YACpC,6BAAwB,GAAY,KAAK,CAAC;YAC1C,4BAAuB,GAAY,KAAK,CAAC;YACzC,wCAAmC,GAAY,KAAK,CAAC;YACrD,uCAAkC,GAAY,KAAK,CAAC;YAGpD,8BAAyB,GAAW,EAAE,CAAC;YACvC,6BAAwB,GAAW,EAAE,CAAC;;YA6NtC,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,iBAAiB,EAAE,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;gBAC/G,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,kBAAkB,EAAE,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAChH,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,iBAAiB,EAAE,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;gBAC5G,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,kBAAkB,EAAE,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC7G,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,iBAAiB,EAAE,KAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;gBACjH,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,kBAAkB,EAAE,KAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAA;aAClH,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,iBAAiB,EAAE,KAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;gBAC9G,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,kBAAkB,EAAE,KAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAA;aAC/G,CAAA;;YAGD,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,iBAAiB,CAAC,CAAA;gBACnD,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAA;aACrD,CAAA;YAnSC,4BAA4B,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC5E,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,WAAW,IAAI,SAAS,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAA;SAC1G;QA6CD,8DAAuB,GAAvB;YACE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;YAC3G,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;SAGpF;QACK,+CAAQ,GAAR;;;iCA+FL;;;;4BA9FC,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;4BACpD,KAAA,IAAI,CAAA;4BAAmB,qBAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAA;;4BAArE,GAAK,eAAe,GAAG,SAA8C,CAAC;;;;;4BAMtE,IAAI,CAAC,kBAAkB,GAAG,IAAIe,eAAS,CAAC,EAAE,CAAC,CAAC;4BAAA,CAAC;4BAC7C,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAId,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;4BAClE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,EAAE,IAAIA,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;4BACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BACpE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;4BACtE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIc,eAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAC1F,IAAI,CAAC,uBAAuB,EAAE,CAAA;4BAE9B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gCACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;4BACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;gCAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;4BAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB;gCACzC,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC;4BACzF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;gCACzB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;4BAEhE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE;gCAChE,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gCACrJ,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;6BACxJ;iCACI;gCACH,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE;oCAC1E,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gCAEpG,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE;oCAC5E,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;6BACvG;4BAID,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gCACxC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gCAC/C,KAAS,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oCACjD,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oCACtC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oCAC1D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iCAC1D;6BACF;4BAGD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gCAC9B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACtB,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC9E,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;6BAChF;4BAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gCAC9B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC/E,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gCAE9E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB;oCACrC,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC;gCAEjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;6BAClF;4BAED,IAAI,CAAC,0BAA0B,EAAE,CAAC;4BAElC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC;gCACjD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,0CAA0C,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;6BAE3G,CAAC,CAAC,CAAC;4BACJ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC;gCAClD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,wDAAwD,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;6BAE9I,CAAC,CAAC,CAAC;4BAEJ,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;4BACjE,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;4BAC3E,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;4BACnE,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;4BAC7E,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gCAC3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;gCAClC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;6BAClC;4BACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;4BAC1D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;4BAE5D,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gCAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gCACvE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;6BACzE;4BAED,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gCAC/D,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gCAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;6BAC7B,CAAC,CAAA;;;;aACH;SAAA;QAGD,mDAAY,GAAZ;YAAA,iBA2GC;;YAzGC,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;aAC3B;iBACI;gBACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,SAAS,EAAE;oBACvF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;oBAC7E,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE;wBAClC,IAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;4BAClD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;4BAChH,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC5D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;yBACrD;6BACI;4BACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC;yBACpD;wBACD,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;qBAC9C;iBACF;;;gBAID,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;oBACrD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC;oBACrE,IAAI,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,aAAa,EAAE;wBACtD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;wBACrC,IAAI,CAAC,mCAAmC,GAAG,IAAI,CAAC;wBAChD,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;4BACzD,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC;;4BAE1C,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;qBAC9C;yBACI;wBACH,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;wBACtC,IAAI,CAAC,mCAAmC,GAAG,KAAK,CAAC;qBAClD;oBACD,IAAI,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBACzC,IAAI,OAAO,GAAW,IAAI,CAAC,wBAAwB,CAAC;oBAEpD,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;oBAC7E,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;iBAC7D;aAEF;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE,EAAE;gBACtC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;aAC1B;iBACI;gBACH,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,SAAS,EAAE;oBACrF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;oBAC3E,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE;wBACjC,IAAI,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;4BACjD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;4BAC/G,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;4BAC3D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;yBACpD;6BACI;4BACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;yBAClD;wBACD,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;qBAC5C;iBACF;;;gBAID,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;oBACrD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC;oBACnE,IAAI,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,aAAa,EAAE;wBACrD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;wBACpC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC;wBAC/C,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;4BACxD,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC;;4BAEzC,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;qBAC7C;yBACI;wBACH,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;wBACrC,IAAI,CAAC,kCAAkC,GAAG,KAAK,CAAC;qBACjD;oBAED,IAAI,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBACzC,IAAI,OAAO,GAAW,IAAI,CAAC,uBAAuB,CAAC;oBAEnD,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;oBAC7E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;iBAC5D;aACF;YACD,IAAI,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC;YAC5C,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC;YACpC,cAAc,CAAC,OAAO,GAAG,YAAY,CAAC;;;YAGtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;;YAE3D,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC;YACpC,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBAC/D,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SACH;QAID,iDAAU,GAAV;YACE,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;SACnD;QA6BD,sDAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,yDAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAGD,mDAAY,GAAZ,UAAa,IAAY;YACvB,OAAOD,iBAAS,CAAC,IAAI,CAAC,CAAA;SACvB;QAED,uDAAgB,GAAhB,UAAiB,IAAY;YAC3B,IAAM,UAAU,GAAW,GAAG,CAAC;YAC/B,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACxF,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;gBAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;oBACzF,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;iBACzG;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC9G,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBACnD;aACF;YACD,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACvF,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;gBAChD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;oBACxF,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;iBAEzG;gBACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC5G,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAClD;aACF;SAEF;QAED,uDAAgB,GAAhB,UAAiB,YAAY;YAC3B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;SACnD;QAED,iEAA0B,GAA1B;YACE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAKC,gBAAU,CAAC,QAAQ,GAAA,CAAC,CAAC;YACrG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAKA,gBAAU,CAAC,QAAQ,GAAA,CAAC,CAAC;YAEvG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;YAE1C,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;YAChD,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;YAEjD,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY;gBAC/B,KAAKiB,oBAAY,CAAC,0BAA0B;oBAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACnC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;qBACrC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,+BAA+B;oBAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAGD,qBAAa,CAAC,QAAQ,CAAC;oBAEhE,MAAM;gBACR,KAAKC,oBAAY,CAAC,gCAAgC;oBAChD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAGD,qBAAa,CAAC,QAAQ,CAAC;oBAEhE,MAAM;gBACR,KAAKC,oBAAY,CAAC,gEAAgE;oBAChF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAA;oBAEtF,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;yBAEpC;qBACF;oBACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;yBAErC;qBACF;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,0CAA0C;oBAC1D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAA;oBAEtF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;qBAEpC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,2CAA2C;oBAC3D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAA;oBAEtF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;qBAErC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,6CAA6C;oBAC7D,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAGD,qBAAa,CAAC,QAAQ,CAAC;oBAChE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;wBAC9B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;wBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAChB,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;yBAEpC;qBACF;oBACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;wBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;yBAErC;qBACF;oBACD,MAAM;gBACR;oBACE,MAAM;aACT;YAED,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACjE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnE,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;YAChD,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;SAElD;QAED,oDAAa,GAAb,UAAc,OAAgB;YAC5B,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAA;;YAGpC,IAAI,OAAO,EAAE;gBACX,IAAI,IAAI,CAAC,kCAAkC;oBACzC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;aACvC;;gBAEC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;SACxC;QAED,qDAAc,GAAd,UAAe,OAAgB;YAC7B,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAA;;YAGrC,IAAI,OAAO,EAAE;gBACX,IAAI,IAAI,CAAC,mCAAmC;oBAC1C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;aACxC;;gBAEC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;SACzC;;;IAzdM,mDAAsB,GAAG,IAAI,CAAC;;gBANtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,0BAA0B;oBACpC,++QAAmD;iBACpD;;;gBAd+EE,wBAAkB;gBAApCf,sBAAgB,uBAmBAC,WAAQ;gBAhB7E,cAAc;gBAEkCC,4BAAc;gBAA9Dc,kCAAoB;gBAAEX,sCAAwB;gBAC9C,cAAc;;;wBAmBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QCZP,2BAAoB,cAA8B,EAAsB,gBAAkC,EACjG,mBAAuC,EAAU,cAA8B,EAC9E,wBAAkD,EAAU,cAA8B;YAFpG,iBAIC;YAJmB,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YACjG,wBAAmB,GAAnB,mBAAmB,CAAoB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAC9E,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAK1F,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAGxC,cAAS,GAAW,CAAC,CAAC;YACtB,mBAAc,GAAW,CAAC,CAAC;YAC3B,oBAAe,GAAY,KAAK,CAAC;YACjC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;;YAE1B,sBAAiB,GAAW,CAAC,CAAC;YAC9B,sBAAiB,GAAY,KAAK,CAAC;YACnC,iCAA4B,GAAY,KAAK,CAAC;YAE9C,kBAAa,GAAW,CAAC,CAAC,CAAC;YAC3B,uBAAkB,GAAW,EAAE,CAAC;YAmEhC,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YA4FD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC3G,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACxG,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC7G,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC1G,CAAA;;YAED,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,mBAAmB,CAAC,CAAA;aACtD,CAAA;YAvMC,iBAAiB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAClE;QAqBD,oCAAQ,GAAR;YAAA,iBAyDC;YAxDC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;;gBAEhE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAE1E,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YAEpD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC;YAEjE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aAEF;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;aACzE;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBAExE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB;oBACrC,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC;gBAEjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;aAClF;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;aACpC;YAED,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBAChD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SAEH;QAGD,2CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACzD;QAMD,2CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,8CAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QACD,wCAAY,GAAZ,UAAa,IAAY;YACvB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SAC9C;QAED,4CAAgB,GAAhB;YACE,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACzF,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;YAClD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;gBAC1F,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aACzG;SACF;QAED,4CAAgB,GAAhB,UAAiB,YAAY;YAC3B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;SACnD;QAED,wCAAY,GAAZ;YAEE,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,IAAI,EAAE,EAAE;gBACxC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;aACpB;iBAEI;gBACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;gBACvE,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;oBAC3B,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;wBACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;wBAC3C,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,8CAA4C,IAAI,CAAC,OAAO,CAAC,YAAc,EAAE,CAAC,CAAC;wBAChI,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;wBACzC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;qBAClC;yBACI;wBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;qBAEtC;iBAEF;aACF;;;YAGD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;gBACrD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC/D,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE;oBAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;oBAEzC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;wBAClD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;;wBAEnC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;iBACvC;qBACI;oBACH,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC/B,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;iBAC3C;gBACD,IAAI,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzC,IAAI,OAAO,GAAW,IAAI,CAAC,iBAAiB,CAAC;gBAE7C,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;gBAC7E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;aACtD;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;SAEnD;QAED,mCAAO,GAAP,UAAQ,OAAgB;YACtB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;;YAG/B,IAAI,OAAO,EAAE;gBACX,IAAI,IAAI,CAAC,4BAA4B;oBACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACjC;;gBAEC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAClC;;;IArLM,wCAAsB,GAAG,IAAI,CAAC;;gBAPtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,66FAAwC;iBACzC;;;gBARQ,cAAc;gBAFuCb,sBAAgB,uBAevBC,WAAQ;gBAfiBc,wBAAkB;gBAC/Db,4BAAc;gBAAxCG,sCAAwB;gBAGxB,cAAc;;;wBAgBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QCDP,uCAAmB,mCAAuD,EAAsB,gBAAkC,EACxH,cAA8B,EAAU,cAA8B,EAAU,wBAAkD,EAClI,cAA8B;YAFxC,iBAKC;YALkB,wCAAmC,GAAnC,mCAAmC,CAAoB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YACxH,mBAAc,GAAd,cAAc,CAAgB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClI,mBAAc,GAAd,cAAc,CAAgB;YAM9B,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAMxC,oBAAe,GAAW,CAAC,CAAC;YAC5B,yBAAoB,GAAW,CAAC,CAAC;YACjC,qBAAgB,GAAW,CAAC,CAAC;YAC7B,0BAAqB,GAAW,CAAC,CAAC;YAClC,oBAAe,GAAW,EAAE,CAAC;YAG7B,0BAAqB,GAAG,EAAE,CAAC;YAC3B,+BAA0B,GAAG,EAAE,CAAC;YAChC,2BAAsB,GAAG,EAAE,CAAC;YAC5B,gCAA2B,GAAG,EAAE,CAAC;YACjC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAC1B,0BAAqB,GAAY,KAAK,CAAC;YACvC,2BAAsB,GAAY,KAAK,CAAC;YACxC,qBAAgB,GAAY,KAAK,CAAC;YAGlC,qBAAgB,GAAW,EAAE,CAAA;YAC7B,sBAAiB,GAAW,EAAE,CAAA;;YAG9B,kBAAa,GAAW,CAAC,CAAC,CAAC;YAC3B,6BAAwB,GAAW,CAAC,CAAC;YACrC,4BAAuB,GAAW,CAAC,CAAC;YACpC,6BAAwB,GAAY,KAAK,CAAC;YAC1C,4BAAuB,GAAY,KAAK,CAAC;YACzC,wCAAmC,GAAY,KAAK,CAAC;YACrD,uCAAkC,GAAY,KAAK,CAAC;YAGpD,8BAAyB,GAAW,EAAE,CAAC;YACvC,6BAAwB,GAAW,EAAE,CAAC;YAqOtC,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YAmLD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;gBACxH,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,yBAAyB,EAAE,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACvH,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;gBACrH,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,yBAAyB,EAAE,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACpH,CAAA;;YAID,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;gBAC1H,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,yBAAyB,EAAE,KAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAA;aACzH,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;gBACvH,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,yBAAyB,EAAE,KAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAA;aACtH,CAAA;;YAED,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,0BAA0B,CAAC,CAAA;gBAC5D,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,yBAAyB,CAAC,CAAA;aAC5D,CAAA;YA7dC,6BAA6B,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAC9E;QA2CD,+DAAuB,GAAvB;YACE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;YAC3G,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;SAGpF;QAEK,gDAAQ,GAAR;;;iCAmHL;;;;4BAlHC,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;4BACpD,KAAA,IAAI,CAAA;4BAAmB,qBAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAA;;4BAArE,GAAK,eAAe,GAAG,SAA8C,CAAC;;;;;4BAMtE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gCACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;4BACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;gCAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;4BAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB;gCACzC,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC;4BACzF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;gCACzB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC;4BAEjE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE;gCAChE,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gCACrJ,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;6BACxJ;iCACI;gCACH,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE;oCAC1E,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gCAEpG,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE;oCAC5E,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;6BACvG;4BAED,IAAI,CAAC,0BAA0B,GAAG,IAAIe,eAAS,CAAC,EAAE,CAAC,CAAC;4BACpD,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAId,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC1E,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,SAAS,EAAE,IAAIA,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC3E,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BACpF,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;4BACtF,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIc,eAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAClG,IAAI,CAAC,uBAAuB,EAAE,CAAA;4BAE9B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;gCACvB,KAAKvB,iBAAS,CAAC,KAAK;oCAClB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACC,gBAAU,CAAC,OAAO,CAAC;wCAClD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,0CAA0C,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;qCAE7G,CAAC,CAAC,CAAC;oCACJ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC;wCACjD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,0CAA0C,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;qCAE7G,CAAC,CAAC,CAAC;oCACJ,MAAM;gCAER,KAAKD,iBAAS,CAAC,MAAM;oCACnB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACC,gBAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;oCAC7E,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;oCAC5E,MAAM;6BACT;4BAID,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gCACxC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gCAC/C,KAAS,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oCACjD,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oCACtC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oCAC1D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iCAC1D;6BAEF;4BAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gCAC9B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC9E,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;6BAChF;4BACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gCAC9B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC/E,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gCAE9E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB;oCACrC,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC;gCAEjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;6BAClF;4BAED,IAAI,CAAC,0BAA0B,EAAE,CAAC;4BAElC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC;gCACjD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,0CAA0C,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;6BAE3G,CAAC,CAAC,CAAC;4BACJ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC;gCAClD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,0DAA0D,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;6BAEhJ,CAAC,CAAC,CAAC;4BAEJ,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;4BACzE,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;4BACnF,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;4BAC3E,IAAI,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;4BAGrF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gCAC3B,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC;gCAC1C,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC;6BAC1C;4BACD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;4BAClE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;4BAEpE,IAAI,CAAC,mCAAmC,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gCAChE,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gCAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;6BAC7B,CAAC,CAAA;4BAEF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gCAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gCACvE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;6BACzE;;;;aAEF;SAAA;QAGD,oDAAY,GAAZ;YACE,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,IAAI,EAAE,EAAE;gBAC/C,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;aAC3B;iBACI;gBACH,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,IAAI,SAAS,EAAE;oBACvG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;oBACrF,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE;wBAClC,IAAI,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;4BAClD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;4BACxH,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;4BACpE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;yBAC7D;6BACI;4BACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC;yBACpD;wBACD,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;qBAEtD;iBACF;;;gBAID,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;oBACrD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7E,IAAI,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,aAAa,EAAE;wBACtD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;wBACrC,IAAI,CAAC,mCAAmC,GAAG,IAAI,CAAC;wBAChD,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;4BACzD,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC;;4BAE1C,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;qBAC9C;yBACI;wBACH,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;wBACtC,IAAI,CAAC,mCAAmC,GAAG,KAAK,CAAC;qBAClD;oBACD,IAAI,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBACzC,IAAI,OAAO,GAAW,IAAI,CAAC,wBAAwB,CAAC;oBAEpD,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;oBAC7E,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;iBAC7D;aACF;YACD,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE,EAAE;gBAC9C,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;aAC1B;iBACI;gBACH,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,IAAI,SAAS,EAAE;oBACrG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;oBACnF,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE;wBACjC,IAAI,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;4BACjD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;4BACvH,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;4BACnE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;yBAC5D;6BACI;4BACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;yBAClD;wBACD,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;qBACpD;iBACF;;;gBAID,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;oBACrD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC3E,IAAI,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,aAAa,EAAE;wBACrD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;wBACpC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC;wBAC/C,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;4BACxD,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC;;4BAEzC,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;qBAC7C;yBACI;wBACH,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;wBACrC,IAAI,CAAC,kCAAkC,GAAG,KAAK,CAAC;qBACjD;oBACD,IAAI,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBACzC,IAAI,OAAO,GAAW,IAAI,CAAC,uBAAuB,CAAC;oBAEnD,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;oBAC7E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;iBAC5D;aACF;YACD,IAAI,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC;YAC5C,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC;YACpC,cAAc,CAAC,OAAO,GAAG,YAAY,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;;YAE3D,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC;SAErC;QAQD,uDAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,0DAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,oDAAY,GAAZ,UAAa,IAAY;YACvB,OAAOD,iBAAS,CAAC,IAAI,CAAC,CAAA;SACvB;QAED,wDAAgB,GAAhB,UAAiB,IAAY;YAC3B,IAAM,UAAU,GAAW,GAAG,CAAC;YAC/B,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;gBAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE;oBACjG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;iBACzG;gBACD,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC9H,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAC3D;aACF;YACD,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBACzD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE;oBAChG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;iBACzG;gBACD,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC5H,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAC1D;aACF;SAEF;QAED,wDAAgB,GAAhB,UAAiB,YAAY;YAC3B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;SACnD;QAGD,kEAA0B,GAA1B;YAEE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAKC,gBAAU,CAAC,QAAQ,GAAA,CAAC,CAAC;YACrG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAKA,gBAAU,CAAC,QAAQ,GAAA,CAAC,CAAC;YAEvG,IAAI,CAAC,yBAAyB,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,0BAA0B,CAAC,eAAe,EAAE,CAAC;YAElD,IAAI,CAAC,yBAAyB,CAAC,sBAAsB,EAAE,CAAC;YACxD,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,CAAC;YAEzD,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY;gBAC/B,KAAKiB,oBAAY,CAAC,0BAA0B;oBAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACnC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;qBACrC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,+BAA+B;oBAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAGD,qBAAa,CAAC,QAAQ,CAAC;oBAEhE,MAAM;gBACR,KAAKC,oBAAY,CAAC,gCAAgC;oBAChD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAGD,qBAAa,CAAC,QAAQ,CAAC;oBAEhE,MAAM;gBACR,KAAKC,oBAAY,CAAC,gEAAgE;oBAChF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAA;oBAEtF,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;yBAEpC;qBACF;oBACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;yBAErC;qBACF;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,0CAA0C;oBAC1D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAA;oBAEtF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;qBAEpC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,2CAA2C;oBAC3D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAA;oBAEtF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;qBAErC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,6CAA6C;oBAC7D,IAAI,CAAC,OAAO,CAAC,yBAAyB,GAAGD,qBAAa,CAAC,QAAQ,CAAC;oBAChE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;wBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAChB,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;yBAEpC;qBACF;oBACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;wBAChC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;yBAErC;qBACF;oBACD,MAAM;gBACR;oBACE,MAAM;aACT;YAED,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACzE,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3E,IAAI,CAAC,yBAAyB,CAAC,sBAAsB,EAAE,CAAC;YACxD,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,CAAC;SAC1D;QAGD,qDAAa,GAAb,UAAc,OAAgB;YAC5B,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAA;;YAGpC,IAAI,OAAO,EAAE;gBACX,IAAI,IAAI,CAAC,kCAAkC;oBACzC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;aACvC;;gBAEC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;SACxC;QAED,sDAAc,GAAd,UAAe,OAAgB;YAC7B,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAA;;YAGrC,IAAI,OAAO,EAAE;gBACX,IAAI,IAAI,CAAC,mCAAmC;oBAC1C,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;aACxC;;gBAEC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;SACzC;;;IAxcM,oDAAsB,GAAG,IAAI,CAAC;;gBANtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,2BAA2B;oBACrC,m3PAAoD;iBACrD;;;gBAf+EE,wBAAkB;gBAApCf,sBAAgB,uBAqBCC,WAAQ;gBAjB9E,cAAc;gBAEYC,4BAAc;gBAAxCG,sCAAwB;gBACxB,cAAc;;;wBAoBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;;QCbP,2BAAoB,cAA8B,EAAsB,gBAAkC,EAAS,mBAAuC,EAAS,cAA6B,EAAS,SAA+B,EAAS,wBAAiD;YAAlS,iBAEC;YAFmB,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAAS,wBAAmB,GAAnB,mBAAmB,CAAoB;YAAS,mBAAc,GAAd,cAAc,CAAe;YAAS,cAAS,GAAT,SAAS,CAAsB;YAAS,6BAAwB,GAAxB,wBAAwB,CAAyB;YAKxR,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAGxC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAkD1B,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YAyBD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC3G,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACxG,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC7G,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC1G,CAAA;;YAGD,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,mBAAmB,CAAC,CAAA;aACtD,CAAA;YA1GC,iBAAiB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAClE;QAWD,oCAAQ,GAAR;YAAA,iBAwCC;YAvCC,IAAG,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC9B,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAE,CAAC,GAAC,KAAK,GAAC,KAAK,CAAC;;gBAExD,IAAI,CAAC,OAAO,GAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAE,IAAI,GAAC,KAAK,GAAC,KAAK,CAAC;YAChE,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAGxF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aAEF;YAGD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7D,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;aACpC;YAED,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBAChD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SAGH;QAGD,2CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACzD;QAQD,2CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,8CAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,0CAAc,GAAd;YACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,aAAa,GAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAClD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACnG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aACxG;SACF;;;IAtFM,wCAAsB,GAAG,IAAI,CAAC;;gBARtCS,YAAS,SAAC;;oBAET,QAAQ,EAAE,eAAe;oBACzB,kzDAAwC;iBACzC;;;gBARQ,cAAc;gBAFuCb,sBAAgB,uBAgBvBC,WAAQ;gBAhBiBc,wBAAkB;gBAIzCb,4BAAc;gBAA9Dc,kCAAoB;gBAAEX,sCAAwB;;;wBAepDa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;;QCJP,+BAAoB,eAA6C,EAAU,cAA8B,EAAsB,gBAAkC,EAAS,uBAA2C,EAC5M,cAA8B,EAAU,wBAAkD,EACzF,cAA8B;YAFxC,iBAKC;YALmB,oBAAe,GAAf,eAAe,CAA8B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAAS,4BAAuB,GAAvB,uBAAuB,CAAoB;YAC5M,mBAAc,GAAd,cAAc,CAAgB;YAAU,6BAAwB,GAAxB,wBAAwB,CAA0B;YACzF,mBAAc,GAAd,cAAc,CAAgB;YAOxC,qBAAgB,GAAG,EAAE,CAAC;YAEtB,iBAAY,GAAU,EAAE,CAAA;YACd,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAC9B,YAAO,GAAG,IAAIA,eAAY,EAAE,CAAC;YAEvC,qBAAgB,GAAY,KAAK,CAAC;YAElC,mBAAc,GAAY,KAAK,CAAC;YAChC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAwE1B,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YAsED,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,uBAAuB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC/G,CAAA;;YAGD,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,uBAAuB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC5G,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,uBAAuB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aACjH,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,uBAAuB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC9G,CAAA;;YAED,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,uBAAuB,CAAC,CAAA;aAC1D,CAAA;;YAGD,qBAAgB,GAAG,UAAC,UAA8B;gBAChD,KAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;aACtC,CAAA;YAzLC,qBAAqB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;;SAEtE;QAgBD,wCAAQ,GAAR;YAAA,iBA6DC;YA5DC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;;gBAEhE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAC1E,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;YAC9C,IAAI,CAAC,gBAAgB,GAAG;gBACtB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;gBAC7C,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,YAAY;gBAC3B,eAAe,EAAE,cAAc;gBAC/B,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;gBAClD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACjC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;gBACvC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC3C,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC3C,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;gBACjD,sBAAsB,EAAE,IAAI;gBAC5B,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC3C,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBAC/C,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,KAAK;aAClB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAGtE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aAEF;YAID,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAEhD;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExF,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjE,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;aACxC;YAED,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBACpD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SACH;QAID,+CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACzD;QAOD,+CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,kDAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,oDAAoB,GAApB;YAAA,iBAQC;YAPC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;gBAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe;oBAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,KAAI,CAAC,OAAO,CAAC,aAAa,GAAA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;;oBAEhJ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAA,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAA,CAAC,CAAA;aACzK;;gBACC,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACrD;QAED,4CAAY,GAAZ;YACE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACnD,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACnG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aACzG;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;;SAElC;QACD,qCAAK,GAAL;;YAEE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;SACrB;QACD,2CAAW,GAAX,UAAY,KAAK;YACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC3D;QACD,0CAAU,GAAV,UAAW,KAAK;YACd,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;gBACvE,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,CAAC;gBAC7C,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;aAEtC;SAEF;QACD,6CAAa,GAAb,UAAc,KAAK;YACjB,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;gBACvE,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,CAAC;gBAC7C,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;aAEtC;SACF;QAED,+CAAe,GAAf;YACE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC1G,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,CAAC;gBAC7C,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC;aAEtC;SACF;;;IAlKM,4CAAsB,GAAG,IAAI,CAAC;;gBANtCS,YAAS,SAAC;;oBAET,QAAQ,EAAE,mBAAmB;oBAC7B,m/HAA4C;iBAC7C;;;gBATQ,4BAA4B;gBAH5B,cAAc;gBAD2Db,sBAAgB,uBAiBYC,WAAQ;gBAjBxDc,wBAAkB;gBAK7Cb,4BAAc;gBAAxCG,sCAAwB;gBACxB,cAAc;;;wBAiBpBa,QAAK;0BACLA,QAAK;2BAKLC,SAAM;0BACNA,SAAM;;;;;QCbP,wBAAoB,cAA8B,EAAsB,gBAAkC,EACjG,gBAAoC,EAAU,cAA8B,EAC3E,wBAAkD,EAAU,cAA8B;YAFpG,iBAIC;YAJmB,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YACjG,qBAAgB,GAAhB,gBAAgB,CAAoB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAC3E,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAK1F,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAExC,uBAAkB,GAAGgB,kCAAkB,CAAC;;YAExC,qBAAgB,GAAY,KAAK,CAAA;YACjC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAC1B,qBAAgB,GAAG,KAAK,CAAC;YAuDzB,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YA+BD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,gBAAgB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACxG,CAAA;;YAGD,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,gBAAgB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACrG,CAAA;;YAID,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,gBAAgB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC1G,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,gBAAgB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aACvG,CAAA;;YAGD,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,gBAAgB,CAAC,CAAA;aACnD,CAAA;YAzHC,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAC/D;QAaD,iCAAQ,GAAR;YAAA,iBA6CC;YA3CC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;;gBAEhE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAE1E,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIf,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEnD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aAEF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExF,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;aACjC;YAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACvC,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SAEH;QAED,wCAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACzD;QAQD,wCAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,2CAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,uCAAc,GAAd;YACE,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,mBAA6B,CAAC;YACvE,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACnG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aACzG;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACnC;QACD,2CAAkB,GAAlB,UAAmB,eAAwB;YACzC,IAAI,KAAK,GAAG,eAAyB,CAAC;YACtC,OAAO,KAAmB,CAAA;SAC3B;;;IAnGM,qCAAsB,GAAG,IAAI,CAAC;;gBAPtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,yzEAAqC;iBACtC;;;gBANQ,cAAc;gBALGb,sBAAgB,uBAiBaC,WAAQ;gBAjBKc,wBAAkB;gBACnDb,4BAAc;gBAAxCG,sCAAwB;gBAKxB,cAAc;;;wBAgBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QCRP,6BAAoB,IAAY,EAAU,cAA8B,EAAsB,gBAAkC,EACvH,qBAAyC,EAAU,cAA8B,EAChF,wBAAkD,EAAU,cAA8B;YAFpG,iBAIC;YAJmB,SAAI,GAAJ,IAAI,CAAQ;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YACvH,0BAAqB,GAArB,qBAAqB,CAAoB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAChF,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAK1F,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAExC,cAAS,GAAW,CAAC,CAAC;YACtB,mBAAc,GAAW,CAAC,CAAC;YAC3B,qBAAgB,GAAY,KAAK,CAAC;YAOlC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAkK1B,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YA4BD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC7G,CAAA;;YAGD,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC1G,CAAA;;YAID,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC/G,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC5G,CAAA;;YAGD,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,qBAAqB,CAAC,CAAA;aACxD,CAAA;YAtOC,mBAAmB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACpE;QAkBD,sCAAQ,GAAR;YAAA,iBA2IC;YA1IC,IAAG,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC9B,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAE,CAAC,GAAC,KAAK,GAAC,KAAK,CAAC;;gBAExD,IAAI,CAAC,OAAO,GAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAE,IAAI,GAAC,KAAK,GAAC,KAAK,CAAC;YAChE,IAAI,CAAC,YAAY,GAAG;gBAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;gBAClC,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAK,IAAI,CAAC,OAAO,CAAC,MAAM,QAAK;gBACnC,SAAS,EAAK,IAAI,CAAC,OAAO,CAAC,MAAM,QAAK;gBACtC,SAAS,EAAG,MAAM;gBAClB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,KAAK;gBAChB,aAAa,EAAE,IAAI;gBACnB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBACrC,yBAAyB,EAAE,EAAE;gBAC7B,eAAe,EAAE,EAAE;gBACnB,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE;oBACL,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC;oBAC/B,EAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAC;oBACnD,EAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAC;oBACnC,EAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAC;iBAChD;gBACD,aAAa,EAAE;oBACf;wBACE,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,OAAO;qBACf;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,WAAW;wBAClB,GAAG,EAAE,IAAI;qBACV;iBACF;gBACD,SAAS,EAAE,UAAU;gBACrB,qBAAqB,EAAE,KAAK;gBAC5B,QAAQ,EAAE,KAAK;gBACf,eAAe,EAAE,KAAK;gBACtB,oBAAoB,EAAE;oBACpB;wBACE,MAAM;wBACN,QAAQ;wBACR,aAAa;wBACb,aAAa;wBACb,sBAAsB;qBACvB;iBACF;aACJ,CAAC;YACF,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA2ClD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAExD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aAEF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAIxF,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;aACzE;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;aACzE;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;aACtC;YAED,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBAClD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SAEH;QAGD,gDAAkB,GAAlB;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtG;gBAED,IAAI,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjG,IAAI,GAAG,GAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAE,IAAI,GAAC,KAAK,GAAC,KAAK,CAAA;gBACnE,aAAa,CAAC,YAAY,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;aAEvC;SAGF;QAOD,6CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,gDAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QACD,4CAAc,GAAd;YACE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC3F,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;gBAC5F,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aACxG;;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,GAAC,aAAa,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SAClC;;;IA/MM,0CAAsB,GAAG,IAAI,CAAC;;gBAPtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,mtDAA0C;iBAC3C;;;gBAZqDe,SAAM;gBAEnD,cAAc;gBADuC5B,sBAAgB,uBAgBDC,WAAQ;gBAhBLc,wBAAkB;gBAI/Db,4BAAc;gBAAxCG,sCAAwB;gBACxB,cAAc;;;wBAgBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QCHP,yCAAmB,qCAAyD,EAAsB,gBAAkC,EAC1H,cAA8B,EAAU,cAA8B,EAAU,wBAAkD,EAClI,cAA8B;YAFxC,iBAKC;YALkB,0CAAqC,GAArC,qCAAqC,CAAoB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAC1H,mBAAc,GAAd,cAAc,CAAgB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClI,mBAAc,GAAd,cAAc,CAAgB;YAM9B,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAkBxC,oBAAe,GAAW,EAAE,CAAC;YAG7B,0BAAqB,GAAG,EAAE,CAAC;YAC3B,+BAA0B,GAAG,EAAE,CAAC;YAChC,2BAAsB,GAAG,EAAE,CAAC;YAC5B,gCAA2B,GAAG,EAAE,CAAC;YACjC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAE1B,qBAAgB,GAAW,EAAE,CAAA;YAC7B,sBAAiB,GAAW,EAAE,CAAA;YAE9B,iBAAY,GAAG,IAAI,CAAA;YACnB,gBAAW,GAAG,IAAI,CAAA;YAkSlB,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YAoHD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,4BAA4B,EAAE,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;gBAC1H,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,2BAA2B,EAAE,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACzH,CAAA;;YAGD,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,4BAA4B,EAAE,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;gBACvH,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,2BAA2B,EAAE,KAAI,CAAC,qBAAqB,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACtH,CAAA;;YAKD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,4BAA4B,EAAE,KAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;gBAC5H,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,2BAA2B,EAAE,KAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAA;aAC3H,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,4BAA4B,EAAE,KAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;gBACzH,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,2BAA2B,EAAE,KAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAA;aACxH,CAAA;;YAGD,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,4BAA4B,CAAC,CAAA;gBAC9D,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,2BAA2B,CAAC,CAAA;aAC9D,CAAA;YAzdC,+BAA+B,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAChF;QAqB4B,CAAC;QAiB9B,iEAAuB,GAAvB;YACE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YACjF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;SACpF;QAGK,kDAAQ,GAAR;;;iCAwNL;;;;4BAvNC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gCACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAEvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;gCAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;4BAE/D,IAAI,CAAC,mBAAmB,GAAG;gCACzB,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;gCAClC,UAAU,EAAE,IAAI;gCAChB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;gCACtC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;gCACzC,SAAS,EAAE,MAAM;gCACjB,KAAK,EAAE,MAAM;gCACb,QAAQ,EAAE,MAAM;gCAChB,SAAS,EAAE,KAAK;gCAChB,aAAa,EAAE,IAAI;gCACnB,WAAW,EAAE,IAAI;gCACjB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;gCAC5C,yBAAyB,EAAE,EAAE;gCAC7B,eAAe,EAAE,EAAE;gCACnB,eAAe,EAAE,EAAE;gCACnB,KAAK,EAAE;oCACL,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;oCACjC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;oCACrD,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;oCACrC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;iCAClD;gCACD,aAAa,EAAE;oCACb;wCACE,IAAI,EAAE,OAAO;wCACb,KAAK,EAAE,OAAO;qCACf;oCACD;wCACE,IAAI,EAAE,SAAS;wCACf,KAAK,EAAE,SAAS;qCACjB;oCACD;wCACE,IAAI,EAAE,WAAW;wCACjB,KAAK,EAAE,WAAW;wCAClB,GAAG,EAAE,IAAI;qCACV;iCACF;gCACD,SAAS,EAAE,UAAU;gCACrB,qBAAqB,EAAE,KAAK;gCAC5B,QAAQ,EAAE,KAAK;gCACf,eAAe,EAAE,KAAK;gCACtB,oBAAoB,EAAE,EAErB;6BACF,CAAC;4BAGF,IAAI,CAAC,kBAAkB,GAAG;gCACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;gCAClC,UAAU,EAAE,IAAI;gCAChB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;gCACtC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;gCACzC,SAAS,EAAE,MAAM;gCACjB,KAAK,EAAE,MAAM;gCACb,QAAQ,EAAE,MAAM;gCAChB,SAAS,EAAE,KAAK;gCAChB,aAAa,EAAE,IAAI;gCACnB,WAAW,EAAE,IAAI;gCACjB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;gCAC3C,yBAAyB,EAAE,EAAE;gCAC7B,eAAe,EAAE,EAAE;gCACnB,eAAe,EAAE,EAAE;gCACnB,KAAK,EAAE;oCACL,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;oCACjC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;oCACrD,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;oCACrC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE;iCAClD;gCACD,aAAa,EAAE;oCACb;wCACE,IAAI,EAAE,OAAO;wCACb,KAAK,EAAE,OAAO;qCACf;oCACD;wCACE,IAAI,EAAE,SAAS;wCACf,KAAK,EAAE,SAAS;qCACjB;oCACD;wCACE,IAAI,EAAE,WAAW;wCACjB,KAAK,EAAE,WAAW;wCAClB,GAAG,EAAE,IAAI;qCACV;iCACF;gCACD,SAAS,EAAE,UAAU;gCACrB,qBAAqB,EAAE,KAAK;gCAC5B,QAAQ,EAAE,KAAK;gCACf,eAAe,EAAE,KAAK;gCACtB,oBAAoB,EAAE,EAErB;6BACF,CAAC;4BAEF,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;4BAEpD,KAAA,IAAI,CAAA;4BAAmB,qBAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAA;;4BAArE,GAAK,eAAe,GAAG,SAA8C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAuCtE,IAAI,CAAC,2BAA2B,GAAG,IAAIe,eAAS,CAAC,EAAE,CAAC,CAAC;4BAAA,CAAC;4BACtD,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAId,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC3E,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,SAAS,EAAE,IAAIA,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC5E,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BACvF,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;4BACzF,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIc,eAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACnG,IAAI,CAAC,uBAAuB,EAAE,CAAC;4BAC/B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;gCACvB,KAAKvB,iBAAS,CAAC,KAAK;oCAClB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACC,gBAAU,CAAC,OAAO,CAAC;wCAClD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,0CAA0C,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;qCAC7G,CAAC,CAAC,CAAC;oCACJ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC;wCACjD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,0CAA0C,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;qCAC7G,CAAC,CAAC,CAAC;oCACJ,MAAM;gCACR,KAAKD,iBAAS,CAAC,MAAM;oCACnB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACC,gBAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;oCAC7E,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;oCAC5E,MAAM;6BACT;4BAED,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gCACxC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gCAC/C,KAAS,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oCACjD,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oCACtC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oCAC1D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iCAC1D;6BAEF;4BACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gCAC9B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC9E,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;6BAChF;4BAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gCAC9B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC/E,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;6BAE/E;4BACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE;gCAChE,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gCACrJ,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;6BACxJ;iCACI;gCACH,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE;oCAC1E,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gCAEpG,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE;oCAC5E,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;6BACvG;4BACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;4BAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC;gCACjD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,kCAAkC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;6BAEtH,CAAC,CAAC,CAAC;4BACJ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC;gCAClD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,wDAAwD,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;6BAE9I,CAAC,CAAC,CAAC;;;;;4BAOJ,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gCAC3B,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC;gCAC5C,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,CAAC;6BAC5C;4BACD,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;4BACpE,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;4BACtE,IAAI,CAAC,qCAAqC,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gCAClE,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gCAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;6BAC7B,CAAC,CAAA;;;;aACH;SAAA;QAED,4DAAkB,GAAlB;YACE,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAA;YAC1E,IAAI,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,yCAAyC,CAAC,CAAC;YAC/F,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACzD,IAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAClC;SACF;QACD,sDAAY,GAAZ,UAAa,IAAY;YAEvB,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;gBACzJ,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9D,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;oBACtC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE;wBACnG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;qBACzG;iBACF;gBACD,IAAI,oBAAoB,GAAI,IAAI,CAAC,4BAA4B,CAAC,KAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;gBAChG,IAAI,oBAAoB,GAAG,CAAC,EAAE;oBAC5B,IAAI,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;wBAClD,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;oBAC1H,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAA;oBACpE,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAA;iBAE7D;aAEF;YAED,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE/H,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;gBAEtJ,IAAI,IAAI,CAAC,WAAW,EAAE;oBACpB,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC5D,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;oBACrC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE;wBAClG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;qBACzG;iBACF;gBAED,IAAI,oBAAoB,GAAI,IAAI,CAAC,2BAA2B,CAAC,KAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;gBAC/F,IAAI,oBAAoB,GAAG,CAAC,EAAE;oBAC5B,IAAI,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;wBAClD,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;oBACzH,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAA;oBACnE,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAA;iBAE5D;aACF;YAED,IAAI,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAA;YAC3C,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YACzC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAA;YAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAClC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY;gBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;;YAE5D,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC;SACrC;QAMD,yDAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,4DAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAID,oEAA0B,GAA1B;YAEE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAKA,gBAAU,CAAC,QAAQ,GAAA,CAAC,CAAC;YACrG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAKA,gBAAU,CAAC,QAAQ,GAAA,CAAC,CAAC;YAEvG,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,CAAC;YACnD,IAAI,CAAC,4BAA4B,CAAC,eAAe,EAAE,CAAC;YAEpD,IAAI,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;YAE3D,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY;gBAC/B,KAAKiB,oBAAY,CAAC,0BAA0B;oBAC1C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;oBAClC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACnC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;qBACrC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,+BAA+B;oBAC/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,MAAM;gBACR,KAAKA,oBAAY,CAAC,gCAAgC;oBAChD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;oBAClC,MAAM;gBACR,KAAKA,oBAAY,CAAC,gEAAgE;oBAChF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;oBAElC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;yBAEpC;qBACF;oBACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;yBACrC;qBACF;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,0CAA0C;oBAC1D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;oBAClC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;qBACpC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,2CAA2C;oBAC3D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;oBAClC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;wBACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;wBACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;qBAErC;oBACD,MAAM;gBACR,KAAKiB,oBAAY,CAAC,6CAA6C;oBAC7D,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;wBACjC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;wBAEnC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAACjB,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;yBAEpC;qBACF;oBACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wBAChC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;wBAClC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;wBAElC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;4BACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;4BACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;yBAErC;qBACF;oBACD,MAAM;gBACR;oBACE,MAAM;aACT;YAED,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC3E,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC7E,IAAI,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,CAAC;YAC1D,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,EAAE,CAAC;SAE5D;;;IA/bM,sDAAsB,GAAG,IAAI,CAAC;;gBANtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,6BAA6B;oBACvC,22JAAsD;iBACvD;;;gBAd+EE,wBAAkB;gBAApCf,sBAAgB,uBAoBGC,WAAQ;gBAhBhF,cAAc;gBAIYC,4BAAc;gBAAxCG,sCAAwB;gBACxB,cAAc;;;wBAiBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QCuCP,gCACU,IAAY,EACZ,cAA8B,EAClB,gBAAkC,EAC/C,wBAA4C,EAC5C,cAA8B,EAC7B,wBAAkD,EAClD,cAA8B,EAC9B,YAAsB;YARhC,iBAeC;YAdS,SAAI,GAAJ,IAAI,CAAQ;YACZ,mBAAc,GAAd,cAAc,CAAgB;YAClB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAC/C,6BAAwB,GAAxB,wBAAwB,CAAoB;YAC5C,mBAAc,GAAd,cAAc,CAAgB;YAC7B,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,mBAAc,GAAd,cAAc,CAAgB;YAC9B,iBAAY,GAAZ,YAAY,CAAU;YApChC,UAAK,GAAW,EAAE,CAAC;YAKT,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAGxC,sBAAiB,GAAG,EAAE,CAAC;YAGvB,iBAAY,GAAW,EAAE,CAAC;YAC1B,sBAAiB,GAAa,EAAE,CAAC;YACjC,qBAAgB,GAAa,EAAE,CAAC;YAKhC,WAAM,GAAG,IAAI,CAAC;YACd,WAAM,GAAG,IAAI,CAAC;YACd,aAAQ,GAAG,EAAE,CAAC;YACd,YAAO,GAAG,EAAE,CAAC;YAEb,oBAAe,GAAY,KAAK,CAAC;YACjC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAC1B,gBAAW,GAAW,CAAC,CAAC;YAgKxB,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAC;;YAmLF,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAC1C,KAAI,CAAC,sBAAsB,EAC3B,KAAI,CAAC,eAAe,EACpB,KAAI,CAAC,OAAO,CACb,CAAC;aACH,CAAC;;YAGF,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CACvC,KAAI,CAAC,sBAAsB,EAC3B,KAAI,CAAC,eAAe,EACpB,KAAI,CAAC,OAAO,CACb,CAAC;aACH,CAAC;;YAGF,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CACxC,KAAI,CAAC,sBAAsB,EAC3B,KAAI,CAAC,eAAe,EACpB,gBAAgB,CACjB,CAAC;aACH,CAAC;;YAEF,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CACrC,KAAI,CAAC,sBAAsB,EAC3B,KAAI,CAAC,eAAe,EACpB,gBAAgB,CACjB,CAAC;aACH,CAAC;;YAEF,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,sBAAsB,CAAC,CAAC;aAC1D,CAAC;YA9WA,sBAAsB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACtE,IAAI,CAAC,QAAQ,GAAG,IAAIW,0BAAY,CAAC;gBAC/B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;SACrC;QAED,yCAAQ,GAAR;YAAA,iBA0HC;YAzHC,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe;gBAC/B,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;;;YAKrE,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;gBAClC,IAAI,CAAC,MAAM,GAAG;oBACZ,WAAW,EACT,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB;oBAClE,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,CAAC;oBACX,gBAAgB,EAAE,IAAI;oBACtB,KAAK,EAAE,IAAI;oBACX,gBAAgB,EAAE,KAAK;oBACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;oBACrC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;oBACvC,gBAAgB,EAAE,KAAK;oBACvB,QAAQ,EAAE,IAAI;iBACf,CAAC;aACH;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI,EAAE;gBAC/C,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI,EAAE;oBACzD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC1B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;iBACxB;gBAED,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjC,IAAI,CAAC,cAAc,GAAG,IAAIC,4BAAc,CAAC;oBACvC,IAAI,EAAE,OAAO,CAAC,QAAQ;oBACtB,IAAI,EAAE,OAAO,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI;oBACxC,IAAI,EAAE,OAAO,CAAC,QAAQ;iBACvB,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAqB,CAAC,CAAC,CAAC;aACxD;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe;gBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;YAEhE,IACE,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI;gBAC3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAC9C;gBACA,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAClD,KAAK,EAAE,EACP;oBACA,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;iBAC1E;gBACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAClE,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;iBACxD;gBACD,IAAI,CAAC,iBAAiB;oBACpB,IAAI,CAAC,iBAAiB;wBACtB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,CAAC;yBACpD,OAAK,IAAI,CAAC,gBAAgB,OAAI,CAAA,CAAC;aAClC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE;gBACpC,IAAI,CAAC,iBAAiB;oBACpB,IAAI,CAAC,iBAAiB;yBACtB,aAAW,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,SAChE,IAAI,CAAC,OAAO,CAAC,eACb,CAAA,CAAC;aACN;YACD,IACE,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI;gBAC3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAC9C;aACD;YACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIX,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAErE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI;gBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEjE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC5D,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtB,CAAC;YAEJ,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aACF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YAED,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChE,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;aACvC;YACD,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBACrD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC9B,CAAC,CAAC;SACJ;QAED,gDAAe,GAAf;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,OAAO,CAAC,YAAY,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EACrC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CACxC,CAAC;iBACH;aACF;SACF;QACD,kDAAiB,GAAjB,UAAkB,OAAoB;YACpC,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAC3D,kBAAkB,CACJ,CAAC;YACjB,KAAK,CAAC,KAAK,EAAE,CAAC;SACf;QAMD,gDAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;SACvC;QAED,mDAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;aAC/B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAClD,SAAS,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CACb,CAAC;SACH;QAED,6CAAY,GAAZ,UAAa,KAAK;YAAlB,iBAqFC;YApFC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,IAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;gBAC/D,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE;oBAC3B,IAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC;oBAChD,WAAW,CAAC,SAAS,CAAC;wBACpB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,GAAG;qBACpD,CAAC,CAAC;oBACH,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,OAAO;iBACR;gBACD,IACE,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI;oBAC3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;oBAC9C,EACE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;wBACvD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CACxD,EACD;oBACA,IAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC;oBAChD,WAAW,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBACnE,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,OAAO;iBACR;aACF;YACD,IAAI,UAAU,GAAG,EAAE,CAAC;oCACX,KAAK;gBACZ,IAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACjC,OAAK,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAM,WAAW,GAAG,OAAK,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;gBAC/D,IAAI,IAAI,EAAE;oBACR,IAAM,aAAW,GAAG,OAAK,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;oBAC/D,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,aAAW,EAAE;wBAC3B,IAAM,WAAW,GAAG,OAAK,sBAAsB,CAAC;wBAChD,WAAW,CAAC,SAAS,CAAC;4BACpB,eAAe,EAAE,OAAK,OAAO,CAAC,eAAe,GAAG,GAAG;yBACpD,CAAC,CAAC;wBACH,WAAW,CAAC,aAAa,EAAE,CAAC;wBAC5B,OAAK,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;;qBAE1B;oBACD,IAAI,QAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC9B,IAAI,UAAU,GAAG,IAAI,CAAC;oBACtB,QAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBACjC,QAAM,CAAC,MAAM,GAAG;;wBACd,IAAI,KAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;4BAClC,KAAI,CAAC,QAAQ,GAAG,QAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;4BACzC,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;yBACtB;6BAAM;4BACL,IAAI,YAAU,GAAY;gCACxB,QAAQ,EAAE,IAAI,CAAC,IAAI;gCACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;gCACnB,UAAU,EAAE,QAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCAClD,YAAY,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;gCACrC,iBAAiB,EAAE,IAAI,CAAC,IAAI;6BAC7B,CAAC;4BACF,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,YAAU,CAAC;4BAChC,UAAU,CAAC,IAAI,CAAC,YAAU,CAAC,CAAC;4BAC5B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAU,CAAC,CAAC;4BACvD,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;4BAChB,CAAA,KAAA,KAAI,CAAC,KAAK,EAAC,IAAI,oCAAI,KAAK,CAAC,UAAU,IAAE;yBACtC;wBACD,IAAI,aAAa,GAAG,KAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;wBACtD,IACE,KAAI,CAAC,OAAO,CAAC,aAAa;4BAC1B,KAAI,CAAC,OAAO,CAAC,SAAS;4BACtB,KAAI,CAAC,sBAAsB,CAAC,KAAK,EACjC;4BACA,KAAI,CAAC,cAAc,CAAC,iBAAiB,CACnC,aAAa,EACb,KAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,KAAI,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC;yBACH;;wBAED,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;wBACnC,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qBACnC,CAAC;iBACH;;;YArDH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE;sCAAnD,KAAK;;;aAsDb;SACF;QAED,uDAAsB,GAAtB,UAAuB,KAAK;YAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YACvD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;;YAEhB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAEhD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBACrD,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;gBAC5C,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;aACrC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;;YAE3D,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;SAC/D;QAED,0CAAS,GAAT;YAAA,iBAYC;YAXC,IAAI,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACpE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;gBACrC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;gBACvC,qBAAqB,EAAE,KAAK;gBAC5B,qBAAqB,EAAE,MAAM;aAC9B,CAAC,CAAC;YACH,kBAAkB,CAAC,MAAM,CAAC,UAAC,IAAI;gBAC7B,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACZ,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBACxB,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;QAED,4CAAW,GAAX,UAAY,IAAI;YAAhB,iBAuBC;YAtBC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,QAAQ,CAAC;YACb,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,GAAG;gBACd,IAAI,UAAU,GAAY;oBACxB,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI;oBAC7B,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI;oBAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClD,YAAY,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;oBACzC,iBAAiB,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI;iBACvC,CAAC;gBACF,QAAQ,CAAC,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAEpC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACvD,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;gBAChC,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACvB,CAAC;SACH;QAED,4CAAW,GAAX,UAAY,MAAc;YACxB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC5C;QACD,0CAAS,GAAT,UAAU,OAAe,EAAE,OAAe;YACxC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACpD;QACD,0CAAS,GAAT,UAAU,KAAa;YACrB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzC;QAED,0CAAS,GAAT,UAAU,IAAa;YACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B;;;IA/WM,6CAAsB,GAAG,IAAI,CAAC;;gBALtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,kzRAA2C;iBAC5C;;;gBA5BCe,SAAM;gBAYC,cAAc;gBAHrB5B,sBAAgB,uBAuDbC,WAAQ;gBAtDXc,wBAAkB;gBASlBb,4BAAc;gBADdG,sCAAwB;gBAGjB,cAAc;gBAEdwB,oBAAQ;;;4BASdL,YAAS,SAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;wBAIxCN,QAAK;0BACLA,QAAK;2BACLC,SAAM;iCAWNK,YAAS,SAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;;QCtDhD;SAYC;gCAAA;KAAA;;;QCuDC,uCACU,IAAY,EACZ,cAA8B,EAClB,gBAAkC,EAC/C,+BAAmD,EACnD,cAA8B,EAC7B,wBAAkD,EAClD,cAA8B;YAPxC,iBAgBC;YAfS,SAAI,GAAJ,IAAI,CAAQ;YACZ,mBAAc,GAAd,cAAc,CAAgB;YAClB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAC/C,oCAA+B,GAA/B,+BAA+B,CAAoB;YACnD,mBAAc,GAAd,cAAc,CAAgB;YAC7B,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,mBAAc,GAAd,cAAc,CAAgB;YApCxC,UAAK,GAAW,EAAE,CAAC;YACnB,gBAAW,GAAW,8BAA8B,CAAC;YAI3C,aAAQ,GAAG,IAAIb,eAAY,EAAE,CAAC;YAExC,sBAAiB,GAAG,EAAE,CAAC;YAGvB,iBAAY,GAAW,EAAE,CAAC;YAC1B,sBAAiB,GAAa,EAAE,CAAC;YACjC,qBAAgB,GAAa,EAAE,CAAC;YAIhC,qBAAgB,GAAY,KAAK,CAAC;YAIlC,WAAM,GAAG,IAAI,CAAC;YACd,WAAM,GAAG,IAAI,CAAC;YACd,aAAQ,GAAG,EAAE,CAAC;YACd,YAAO,GAAG,EAAE,CAAC;YAEb,oBAAe,GAAY,KAAK,CAAC;YACjC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAwJ1B,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAC;;YAuNF,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAC1C,KAAI,CAAC,6BAA6B,EAClC,KAAI,CAAC,eAAe,EACpB,KAAI,CAAC,OAAO,CACb,CAAC;aACH,CAAC;;YAEF,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CACvC,KAAI,CAAC,6BAA6B,EAClC,KAAI,CAAC,eAAe,EACpB,KAAI,CAAC,OAAO,CACb,CAAC;aACH,CAAC;;YAEF,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CACxC,KAAI,CAAC,6BAA6B,EAClC,KAAI,CAAC,eAAe,EACpB,gBAAgB,CACjB,CAAC;aACH,CAAC;;YAEF,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CACrC,KAAI,CAAC,6BAA6B,EAClC,KAAI,CAAC,eAAe,EACpB,gBAAgB,CACjB,CAAC;aACH,CAAC;;YAEF,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,6BAA6B,CAAC,CAAC;aACjE,CAAC;YAxYA,6BAA6B,CAAC,sBAAsB;gBAClD,IAAI,CAAC,gBAAgB,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAIW,0BAAY,CAAC;gBAC/B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;SAClD;QAED,gDAAQ,GAAR;YAAA,iBA+GC;YA9GC,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IACE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI;gBACpC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE;gBAElC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAElD,IAAI,CAAC,MAAM,GAAG;gBACZ,WAAW,EAAE,GAAG,GAAG,GAAG;gBACtB,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,CAAC;gBACX,gBAAgB,EAAE,IAAI;gBACtB,KAAK,EAAE,IAAI;gBACX,gBAAgB,EAAE,KAAK;gBACvB,gBAAgB,EAAE,KAAK;gBACvB,QAAQ,EAAE,IAAI;aACf,CAAC;YAEF,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI,EAAE;gBAChD,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC;aACtC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI;oBACvD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;gBAE5B,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjC,IAAI,CAAC,cAAc,GAAG,IAAIC,4BAAc,CAAC;oBACvC,IAAI,EAAE,OAAO,CAAC,QAAQ;iBACvB,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAqB,CAAC,CAAC,CAAC;aACxD;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC5D,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtB,CAAC;YAEJ,IACE,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI;gBAC5C,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAC/C;gBACA,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,EACnD,KAAK,EAAE,EACP;oBACA,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBACzD,IAAI,CAAC,YAAY;wBACf,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;iBACxD;gBACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAClE,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;iBACxD;gBACD,IAAI,CAAC,iBAAiB;oBACpB,IAAI,CAAC,iBAAiB;wBACtB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,CAAC;yBACpD,OAAK,IAAI,CAAC,gBAAgB,OAAI,CAAA,CAAC;aAClC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE;gBACpC,IAAI,CAAC,iBAAiB;oBACpB,IAAI,CAAC,iBAAiB;yBACtB,aAAW,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,SAChE,IAAI,CAAC,OAAO,CAAC,eACb,CAAA,CAAC;aACN;YACD,IACE,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI;gBAC5C,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAChD;aACA;YACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIX,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE5E,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aACF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YAED,IAAI,CAAC,6BAA6B,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACvE,IAAI,CAAC,6BAA6B,CAAC,kBAAkB,CACnD,IAAI,CAAC,oBAAoB,CAC1B,CAAC;YACF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,CAAC;aAC9C;YAED,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBAC5D,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC9B,CAAC,CAAC;SACJ;QAED,uDAAe,GAAf;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,OAAO,CAAC,YAAY,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EACrC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CACxC,CAAC;iBACH;aACF;SACF;QAED,yDAAiB,GAAjB,UAAkB,OAAoB;YACpC,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAC3D,kBAAkB,CACJ,CAAC;YACjB,KAAK,CAAC,KAAK,EAAE,CAAC;SACf;QAMD,uDAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;SACvC;QAED,0DAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;aAC/B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAClD,SAAS,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CACb,CAAC;SACH;QAED,oDAAY,GAAZ,UAAa,KAAK;YAAlB,iBAsEC;YArEC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,IAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;gBAC/D,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE;oBAC3B,IAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC;oBACvD,WAAW,CAAC,SAAS,CAAC;wBACpB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,GAAG;qBACpD,CAAC,CAAC;oBACH,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,OAAO;iBACR;gBACD,IACE,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI;oBAC5C,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC;oBAC/C,EACE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;wBACvD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CACxD,EACD;oBACA,IAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC;oBACvD,WAAW,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBACnE,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,OAAO;iBACR;aACF;YACD,IAAI,UAAU,GAAG,EAAE,CAAC;oCACX,KAAK;gBACZ,IAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACjC,OAAK,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAM,WAAW,GAAG,OAAK,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;gBAC/D,IAAI,IAAI,EAAE;oBACR,IAAM,aAAW,GAAG,OAAK,OAAO,CAAC,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;oBAC/D,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,aAAW,EAAE;wBAC3B,IAAM,WAAW,GAAG,OAAK,6BAA6B,CAAC;wBACvD,WAAW,CAAC,SAAS,CAAC;4BACpB,eAAe,EAAE,OAAK,OAAO,CAAC,eAAe,GAAG,GAAG;yBACpD,CAAC,CAAC;wBACH,WAAW,CAAC,aAAa,EAAE,CAAC;wBAC5B,OAAK,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;;qBAE1B;oBACD,IAAI,QAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC9B,IAAI,UAAU,GAAG,IAAI,CAAC;oBACtB,QAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBACjC,QAAM,CAAC,MAAM,GAAG;wBACd,KAAI,CAAC,QAAQ,GAAG,QAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACzC,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACrB,IAAI,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;wBAC5D,IACE,KAAI,CAAC,OAAO,CAAC,aAAa;4BAC1B,KAAI,CAAC,OAAO,CAAC,SAAS;4BACtB,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EACvC;4BACA,KAAI,CAAC,cAAc,CAAC,iBAAiB,CACnC,aAAa,EACb,KAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,KAAI,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC;yBACH;;wBAED,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;wBACnC,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qBACnC,CAAC;iBACH;;;YAtCH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE;sCAAnD,KAAK;;;aAuCb;SACF;QACD,8DAAsB,GAAtB,UAAuB,KAAK;YAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,QAAQ,GAAG,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBACrD,IAAI,CAAC,6BAA6B,CAAC,aAAa,EAAE,CAAC;gBACnD,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC;aAC5C;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;SAC9D;QACD,iDAAS,GAAT;YAAA,iBAwCC;YAvCC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACtD,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC1C,IAAI,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBAClD,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,qBAAqB,EAAE,KAAK;gBAC5B,qBAAqB,EAAE,MAAM;aAC9B,CAAC,CAAC;YACH,IAAI,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBAClD,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,qBAAqB,EAAE,KAAK;gBAC5B,qBAAqB,EAAE,MAAM;aAC9B,CAAC,CAAC;YACH,IAAI,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBACpD,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,qBAAqB,EAAE,KAAK;gBAC5B,qBAAqB,EAAE,MAAM;aAC9B,CAAC,CAAC;YACH,oBAAoB,CAAC,MAAM,CAAC,UAAC,IAAI;gBAC/B,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACZ,KAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;iBAC5D,CAAC,CAAC;aACJ,CAAC,CAAC;YACH,oBAAoB,CAAC,MAAM,CAAC,UAAC,IAAI;gBAC/B,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACZ,KAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;iBAC5D,CAAC,CAAC;aACJ,CAAC,CAAC;YACH,sBAAsB,CAAC,MAAM,CAAC,UAAC,IAAI;gBACjC,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACZ,KAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;iBAC9D,CAAC,CAAC;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvB;QACD,+DAAuB,GAAvB,UAAwB,IAAI,EAAE,IAAI;YAAlC,iBAsDC;YArDC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,QAAQ,CAAC;YACb,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,GAAG;gBACd,IAAI,UAAmB,CAAC;gBACxB,QAAQ,IAAI;oBACV,KAAK,sBAAsB;wBACzB,QAAQ,CAAC,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,IAAI,GAAG,eAAe,CAAC;wBACtD,UAAU,GAAG;4BACX,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI,GAAG,eAAe;4BAC/C,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI;4BAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAClD,YAAY,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;yBAC1C,CAAC;wBACF,KAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,UAAU,CAAC;wBACnD,KAAI,CAAC,iBAAiB,CAAC,aAAa;4BAClC,UAAU,CAAC,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC;wBACpD,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC1B,MAAM;oBACR,KAAK,sBAAsB;wBACzB,UAAU,GAAG;4BACX,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI,GAAG,cAAc;4BAC9C,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI;4BAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAClD,YAAY,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;yBAC1C,CAAC;wBACF,KAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,UAAU,CAAC;wBAClD,KAAI,CAAC,iBAAiB,CAAC,YAAY;4BACjC,UAAU,CAAC,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC;wBACpD,MAAM;oBAER,KAAK,wBAAwB;wBAC3B,UAAU,GAAG;4BACX,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU;4BAC1C,QAAQ,EAAE,KAAI,CAAC,SAAS,CAAC,IAAI;4BAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAClD,YAAY,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;yBAC1C,CAAC;wBACF,KAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,UAAU,CAAC;wBACpD,KAAI,CAAC,iBAAiB,CAAC,QAAQ;4BAC7B,UAAU,CAAC,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC;wBACpD,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAI,CAAC,iBAAiB,CAAC,CAAC;wBACnE,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;wBAE5D,MAAM;oBACR;wBACE,MAAM;iBACT;gBAED,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAI,CAAC,iBAAiB,CAAC;aAC7C,CAAC;SACH;QAED,mDAAW,GAAX,UAAY,MAAc;YACxB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC5C;QACD,iDAAS,GAAT,UAAU,OAAe,EAAE,OAAe;YACxC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACpD;QACD,iDAAS,GAAT,UAAU,KAAa;YACrB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzC;QAED,iDAAS,GAAT,UAAU,IAAa;YACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B;;;IA5YM,oDAAsB,GAAG,IAAI,CAAC;;gBALtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,2BAA2B;oBACrC,ivQAAoD;iBACrD;;;gBA5BCe,SAAM;gBAYC,cAAc;gBAHrB5B,sBAAgB,uBAwDbC,WAAQ;gBAvDXc,wBAAkB;gBAUlBb,4BAAc;gBADdG,sCAAwB;gBAGjB,cAAc;;;4BAUpBmB,YAAS,SAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;wBAIxCN,QAAK;0BACLA,QAAK;2BACLC,SAAM;iCAaNK,YAAS,SAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;;QC1DhD;YAEI,QAAG,GAAS,EAAE,CAAC;YACf,UAAK,GAAW,EAAE,CAAC;YACrB,UAAK,GAAW,EAAE,CAAC;SAEpB;8BAAA;KAAA;;;;QCgBC,sCAAoB,IAAgB,EAAU,YAAoC,EAAU,qBAA4C,EAC9H,cAA8B,EAAsB,gBAC1C,EAAS,8BAAkD,EAAU,cAA8B,EAC7G,wBAAkD,EAAU,cAA8B;YAHpG,iBAKC;YALmB,SAAI,GAAJ,IAAI,CAAY;YAAU,iBAAY,GAAZ,YAAY,CAAwB;YAAU,0BAAqB,GAArB,qBAAqB,CAAuB;YAC9H,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAC1D;YAAS,mCAA8B,GAA9B,8BAA8B,CAAoB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAC7G,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAK1F,aAAQ,GAAG,IAAIb,eAAY,EAAE,CAAC;YACxC,YAAO,GAAW,OAAO,CAAA;YAEzB,WAAM,GAAW,EAAE,CAAA;YACnB,QAAG,GAAW,EAAE,CAAA;YAEhB,QAAG,GAAW,MAAM,CAAC;YACrB,UAAK,GAAW,OAAO,CAAA;YACvB,8BAAyB,GAAW,EAAE,CAAC;YACvC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAI1B,aAAQ,GAAU,EAAE,CAAC;YACrB,kBAAa,GAAW,EAAE,CAAA;YAC1B,gBAAW,GAAW,iCAAiC,CAAC;YAiGxD,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAwID,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAClH,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC/G,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aACpH,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aACjH,CAAA;;YAED,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,0BAA0B,CAAC,CAAA;aAC7D,CAAA;YAnRC,4BAA4B,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAC7E;QAuBD,+CAAQ,GAAR;YAAA,iBAwFC;YAvFC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;;gBAEhE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAC1E,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YACpD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;;YAIxF,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aACF;YAGD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpE,IAAI,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC;aAC3C;YAGD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;aACjD;YAGD,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBAC3D,IAAI,KAAI,CAAC,0BAA0B,CAAC,KAAK,IAAI,KAAI,CAAC,MAAM,IAAI,KAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,KAAK,EAAE;oBACnG,KAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,yBAAyB,EAAE,KAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;oBACzG,KAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,CAAC;oBAChD,KAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;iBACzC;gBACD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;YAEF,IAAM,WAAW,GAAG;gBAClB,OAAO,EAAE,IAAI0B,kBAAW,CAAC;oBACvB,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;iBAC9C,CAAC;aACH,CAAC;YAKF,IAAI,CAAC,YAAY,GAAG,IAAIC,eAAU,CAAC,UAAC,QAA0B;gBAC5D,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;aAC5B,CAAC,CAAC,IAAI,CACLC,mBAAS,CAAC,UAAC,KAAa;gBACtB,IAAI,KAAK,EAAE;oBACT,IAAI,MAAM,GAAG,IAAIC,iBAAU,EAAE,CAAC;oBAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBACvD,IAAI,mBAAmB,GAAG,IAAIC,iCAAmB,EAAE,CAAA;oBACnD,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC1C,mBAAmB,CAAC,0BAA0B,GAAG,IAAI,CAAC;;oBAEtD,OAAO,KAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC;yBAC7F,IAAI,CACHC,aAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAmB,IAAI,EAAE,GAAA,CAAC,EACxCC,aAAG,CAAC,cAAM,OAAAC,SAAI,GAAA,EAAE,UAAA,GAAG;;wBAEjB,KAAI,CAAC,YAAY,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,sBAAsB,CAAC;qBAClE,CAAC,CACH,CAAC;iBACL;gBAED,OAAOC,OAAE,CAAC,EAAE,CAAC,CAAC;aACf,CAAC,CACH,CAAC;SACH;QAGD,sDAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACzD;QAKD,sDAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAGD,yDAAkB,GAAlB,UAAmB,SAAS;YAE1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,uDAAgB,GAAhB,UAAiB,YAAY;YAC3B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;SACnD;QAGD,kDAAW,GAAX,UAAY,IAAI;YAEd,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,EAAE;gBAC1C,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,EAAE;oBAC7B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC/C,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,CAAA;iBACzD;qBACI;oBACH,IAAI,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;oBAC9C,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBAC5D,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,CAAA;iBACzD;aACF;iBACI;gBACH,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;oBACvD,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;oBACzG,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,CAAC;oBAChD,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;oBACxC,OAAO;iBACR;qBACI;oBACH,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC/C,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,CAAA;oBACxD,IAAI,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;oBAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;wBACnG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;qBACzG;iBAEF;aACF;;YAGD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAA;;YAEzD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;SAC5D;QAEK,qDAAc,GAAd,UAAe,MAAc;;;iCAsBlC;;;;4BArBC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gCAC9D,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC;gCACpD,WAAW,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;gCACvI,WAAW,CAAC,aAAa,EAAE,CAAC;gCAC5B,sBAAO;6BACR;4BACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;4BACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;4BACxB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,MAAM;oCACvC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,KAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,EAAE;wCAC1G,KAAI,CAAC,QAAQ,GAAG;4CACd;gDACE,GAAG,EAAE,CAAC;gDACN,KAAK,EAAE,KAAI,CAAC,MAAM;6CACnB;yCACF,CAAA;qCACF;yCACI;wCACH,KAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;qCACvB;iCACF,CAAC,EAAA;;4BAZF,SAYE,CAAA;;;;aACH;SAAA;QAED,qDAAc,GAAd;YACE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,CAAA;SACzD;;;IAtNM,mDAAsB,GAAG,IAAI,CAAC;;gBARtCzB,YAAS,SAAC;;oBAET,QAAQ,EAAE,0BAA0B;oBACpC,wvGAAmD;iBACpD;;;gBARQ0B,iBAAU;gBANV,sBAAsB;gBAOIC,mCAAqB;gBAN/C,cAAc;gBAFuCxC,sBAAgB,uBAsBjCC,WAAQ;gBAtB2Bc,wBAAkB;gBAQnBb,4BAAc;gBAApFG,sCAAwB;gBACxB,cAAc;;;wBAkBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;;QCZP,4BAAoB,IAAgB,EAAU,cAA8B,EAAU,qBAA4C,EAAsB,gBAAkC,EAAS,oBAAwC,EACjO,cAA8B,EAAU,wBAAkD,EAC1F,cAA8B;YAFxC,iBAIC;YAJmB,SAAI,GAAJ,IAAI,CAAY;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,0BAAqB,GAArB,qBAAqB,CAAuB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAAS,yBAAoB,GAApB,oBAAoB,CAAoB;YACjO,mBAAc,GAAd,cAAc,CAAgB;YAAU,6BAAwB,GAAxB,wBAAwB,CAA0B;YAC1F,mBAAc,GAAd,cAAc,CAAgB;YAM9B,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;;YAIxC,eAAU,GAAU,EAAE,CAAA;YACtB,SAAI,GAAG,EAAE,CAAC;YACV,8BAAyB,GAAW,EAAE,CAAC;YAIvC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAE1B,yBAAoB,GAAY,KAAK,CAAC;YAyGtC,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YAwGD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACvG,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACpG,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aACzG,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aACtG,CAAA;;YAGD,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,eAAe,CAAC,CAAA;aAClD,CAAA;YA1PC,kBAAkB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACnE;QAoBM,oCAAiB,GAAxB,UAAyB,MAAW;;YAClC,IAAM,sBAAsB,GAAG,kBAAkB,CAAC,sBAAsB,CAAC;YACzE,IAAM,SAAS,GAAG,sBAAsB,CAAC,OAAoB,CAAC;YAC9D,KAAK,IAAM,GAAG,IAAI,MAAM,EAAE;gBACxB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;;wBAC9B,KAAuB,IAAA,oBAAA,SAAA,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA,gBAAA,4BAAE;4BAA/B,IAAM,QAAQ,WAAA;4BACjB,IAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAgB,CAAC;4BACtD,WAAW,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;4BACjD,WAAW,CAAC,aAAa,EAAE,CAAC;yBAC7B;;;;;;;;;iBACF;aACF;SACF;QACD,wCAAW,GAAX;YACE,IAAI,IAAI,CAAC,uBAAuB;gBAC9B,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;SAC9C;QACD,qCAAQ,GAAR;YAAA,iBA0EC;YAzEC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;;gBAEhE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAC1E,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YAEpD,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;YAChF,IAAI,CAAC,aAAa,GAAG,IAAIe,eAAS,CAAC,EAAE,CAAC,CAAC;YAAA,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,IAAId,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAE/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;gBAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;;;YAKnF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAElD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aAIF;YAED,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;aAChC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAC9D,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;iBAClC;gBACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;gBAC9B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACnD;YAED,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBACjD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAC;;YAEH,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,UAAA,CAAC;;gBAC1E,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBACvC,KAAI,CAAC,UAAU,GAAG,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,GAAA,EAAE,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,GAAA,CAAC,CAAC;gBAC1E,IAAI,KAAI,CAAC,IAAI,IAAI,IAAI,EAAE;oBACrB,KAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;oBAC7B,KAAI,CAAC,IAAI,GAAG,EAAE,CAAC;oBACf,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;iBAClC;aACF,CAAC,CAAC;SACJ;QACD,4CAAe,GAAf;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtG;aACF;YACD,IAAI,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9F,YAAY,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;SACjD;QAMD,4CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,+CAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,6CAAgB,GAAhB,UAAiB,YAAY;YAC3B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;SACnD;QAED,kDAAqB,GAArB,UAAsB,IAAS;;YAE7B,IAAI,CAAC,IAAI;gBACP,OAAOqC,UAAK,CAAC;YAEf,IAAI,GAAG,GAAM,IAAI,CAAC,OAAO,CAAC,SAAS,SAAI,IAAI,CAAC,OAAO,CAAC,cAAc,SAAI,kBAAkB,CAAC,IAAI,CAAC,SAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,SAAI,IAAI,CAAC,UAAY,CAAA;YAC1J,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY;gBAC3B,GAAG,GAAG,GAAG,IAAG,MAAI,IAAI,CAAC,OAAO,CAAC,YAAc,CAAA,CAAA;YAC7C,IAAI,mBAAmB,GAAG,IAAIP,iCAAmB,EAAE,CAAA;YACnD,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1C,mBAAmB,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACtD,IAAI,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;YACjF,OAAO,KAAY,CAAC;SACrB;QAED,mCAAM,GAAN,UAAO,KAAK,EAAE,GAAG;;;YAEf,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;gBACrB,OAAO;;YAET,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACpG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;oBACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;oBACrD,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;oBACpC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;wBAC3C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACpB,OAAO;qBACR;;wBAEC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;iBACnB;aACF;;iBAEI,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBAC7D,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACrE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC9E,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;iBACtC;qBACI,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,KAAK,EAAE;oBAC3E,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;oBACvC,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;iBAC/C;aACF;;iBAEI,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,MAAM,KAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAChH,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;gBAC9C,IAAI,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,KAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;oBAC3D,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;oBACjD,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;iBACtC;aACF;SACF;QAED,0CAAa,GAAb,UAAc,MAAM;;YAElB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACrC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,GAAA,CAAC,CAAC;gBAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;oBAClE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;oBACjD,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;oBACrC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;iBAC9B;aACF;YACD,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAClF,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;gBACtF,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC1G;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACnC;QAED,6CAAgB,GAAhB,UAAiB,KAAK;YACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QAyBD,4CAAe,GAAf,UAAgB,SAAS;YACvB,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;gBAC3H,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;gBACrD,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;oBAC3C,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC1B,OAAO;iBACR;;oBAEC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACnB;SACF;QACD,yCAAY,GAAZ;YACE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,GAAA,CAAC,CAAA;SAC1C;;;IAlRM,yCAAsB,GAAG,IAAI,CAAC;;gBANtCrB,YAAS,SAAC;;oBAET,QAAQ,EAAE,gBAAgB;oBAC1B,qsFAAyC;iBAC1C;;;gBAVQ0B,iBAAU;gBAFV,cAAc;gBAIYC,mCAAqB;gBALMxC,sBAAgB,uBAiByDC,WAAQ;gBAjB/Dc,wBAAkB;gBAKnBb,4BAAc;gBAApFG,sCAAwB;gBACxB,cAAc;;;wBAiBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;4BACNK,YAAS,SAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;;QC1BvC;YAGE,eAAU,GAAQ,CAAC,CAAA;YACnB,cAAS,GAAQ,EAAE,CAAA;YACnB,sBAAiB,GAAQ,CAAC,CAAA;YAC1B,oBAAe,GAAS,KAAK,CAAA;YAC7B,SAAI,GAAQ,CAAC,CAAA;YACb,SAAI,GAAQ,CAAC,CAAA;YACb,YAAO,GAAS,IAAI,CAAA;YACpB,oBAAe,GAAQ,CAAC,CAAA;SARzB;wBASJ;KAAA;;ACXWkB;IAAZ,WAAY,UAAU;QACpB,iDAAW,CAAA;QACX,2DAAgB,CAAA;QAChB,yEAAuB,CAAA;QACvB,uDAAc,CAAA;QACd,mDAAY,CAAA;QACZ,mDAAY,CAAA;QACZ,6CAAO,CAAA;IACT,CAAC,EARWA,kBAAU,KAAVA,kBAAU;;ICatB;;QAgCE,yBAAmB,cAA8B,EAAU,IAAgB,EAAU,MAAc,EAAU,eAA6C,EAAU,qBAA4C;YAAhN,iBACC;YADkB,mBAAc,GAAd,cAAc,CAAgB;YAAU,SAAI,GAAJ,IAAI,CAAY;YAAU,WAAM,GAAN,MAAM,CAAQ;YAAU,oBAAe,GAAf,eAAe,CAA8B;YAAU,0BAAqB,GAArB,qBAAqB,CAAuB;YAzBhN,UAAK,GAAG,EAAE,CAAC;YAEX,WAAM,GAAQ,EAAE,CAAC;YACjB,gBAAW,GAAQ,IAAI,CAAC;YACxB,aAAQ,GAAQ,CAAC,CAAC;YAClB,aAAQ,GAAQ,EAAE,CAAA;YAClB,UAAK,GAAQ,CAAC,CAAA;YAGd,gBAAW,GAAQ,CAAC,CAAA;YACpB,uBAAkB,GAAG,IAAI,CAAC;YAC1B,qBAAgB,GAAG,IAAI,CAAC;YACxB,uCAAkC,GAAG,IAAI,CAAA;YACzC,QAAG,GAAG,CAAC,CAAC;YACR,aAAQ,GAAG,GAAG,CAAC;YACf,mBAAc,GAAG,CAAC,CAAC;YACnB,qBAAgB,GAAG,CAAC,CAAC;YACrB,cAAS,GAAG,EAAE,CAAC;YAEf,gBAAW,GAAY,IAAI,CAAC;YAClB,UAAK,GAAsB,IAAI/B,eAAY,EAAO,CAAC;YAG7D,kBAAa,GAAG,IAAIgC,iBAAY,EAAE,CAAC;YAmLnC,uBAAkB,GAAG;gBACnB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,KAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aAC3B,CAAA;YAED,iBAAY,GAAG;;gBAEb,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC;aACpC,CAAA;SAxLA;QACD,qCAAW,GAAX;YACE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAA;SACjC;QAED,kCAAQ,GAAR;YAAA,iBA8BC;YA7BC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB;gBAChC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAEnC,IAAI,IAAI,CAAC,OAAO,CAAC,2BAA2B,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3G,IAAM,2BAA2B,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC;gBAC7E,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,UAAC,KAAK;oBAC9C,IAAI,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,IAAI,KAAK,GAAA,CAAC,CAAA;oBACrF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACrB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC;wBACrB,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;qBAC1C;iBACF,CAAC,CAAC,CAAA;aACN;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,uCAAuC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnI,IAAM,uCAAuC,GAAG,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC;gBACrG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,UAAC,KAAK;oBACrE,IAAI,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,IAAI,KAAK,GAAA,CAAC,CAAA;oBACjG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACrB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC;wBACrB,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;qBAC1C;iBACF,CAAC,CAAC,CAAA;aACJ;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC1C;QACD,yCAAe,GAAf;YAAA,iBAoDC;YAlDC,IAAI,IAAI,CAAC,OAAO,CAAC,0BAA0B,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzG,IAAM,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC;gBAC3E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,0BAA0B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,IAAM,yBAAyB,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBACpE,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBAC3E,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC;wBACrB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;qBAC1C,EAAE,KAAK,CAAC,CAAC;iBACX;aACF;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,6BAA6B,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/G,IAAM,6BAA6B,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC;gBACjF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,6BAA6B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzE,IAAM,4BAA4B,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;oBAC1E,IAAI,OAAO,GAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAE,CAAC,aAA4B,CAAC;oBAC/F,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAC,CAAC;wBACrC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,EAAE;4BACpB,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC;4BACrB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BACxB,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;yBAC1C;qBACF,EAAE,KAAK,CAAC,CAAC;iBACX;aACF;;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,IAAI,IAAI,EAAE;gBAC9C,IAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjF,IAAI,MAAM,IAAI,SAAS,EAAE;oBACvB,IAAI,OAAO,GAAG,MAAqB,CAAC;oBACpC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,CAAC;wBAClC,KAAI,CAAC,YAAY,EAAE,CAAC;qBACrB,EAAE,KAAK,CAAC,CAAC;iBACX;aACF;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,2BAA2B,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3G,IAAM,2BAA2B,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC;gBAC7E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,2BAA2B,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvE,IAAM,0BAA0B,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;oBACtE,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAC,CAAC;wBACjF,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,EAAE;4BACpB,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC;4BACrB,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BACxB,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;yBAC1C;qBACF,EAAE,KAAK,CAAC,CAAC;iBAEX;aACF;SAEF;QAED,0CAAgB,GAAhB,UAAiB,MAAM;YACrB,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC1C;SACF;QAED,sCAAY,GAAZ,UAAa,IAAI;YACf,IAAI,IAAI,IAAI,CAAC;gBACX,OAAO;YACT,IAAI,IAAI,GAAG,CAAC,EAAE;gBACZ,IAAI,IAAI,CAAC,WAAW,EAAE;oBACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBACzB,OAAO;iBACR;gBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;QACD,wCAAc,GAAd,UAAe,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC1C;QAKD,sCAAY,GAAZ;YACE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;YACjC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC1C;QAID,qCAAW,GAAX,UAAY,IAAI,EAAE,eAAuB;YAAzC,iBA4CC;YA5CiB,gCAAA,EAAA,uBAAuB;YACvC,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB;gBAClC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;YAChC,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB;gBAChC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;;gBAE/B,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;YAE7B,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACnC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,SAAS,CAAC,eAAe,GAAG,eAAe,CAAC;YAC5C,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;;YAGjC,IAAI,UAAU,GAAkB;gBAC9B,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,OAAO;aACjB,CAAC;YAEF,IAAI,cAAc,GAAG,IAAIT,iCAAmB,EAAE,CAAC;YAC/C,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YAC5D,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC;iBACtK,SAAS,CAAC,UAAC,YAAiB;gBAC3B,KAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAA;gBAChC,IAAI,YAAY,GAAGU,6BAAY,CAAC,KAAI,CAAC,OAAO,CAAC,cAAc,EAAE,KAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC5G,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9B,KAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC;gBAExC,IAAI,eAAe,EAAE;oBACnB,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBAChB,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAChE,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;oBAElC,KAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,QAAQ,CAAC,CAAC;iBAEzC;aACF,EAAE,UAAC,KAAwB;gBAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;oBACrB,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAA;aACjD,CAAC,CAAC;SACN;QAYD,mCAAS,GAAT,UAAU,SAAgB;YACxB,IAAI,aAAa,GAAQ,EAAE,CAAA;YAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACrD,IAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,GAAG,SAAA,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBACpB,IAAI,SAAS,GAAG,EAAE,CAAA;gBAClB,OAAO,CAAC,EAAE,EAAE;oBACV,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACd,IAAI,IAAI,GAAG,GAAG,CAAA;oBACd,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;iBACvE;gBACD,IAAI,WAAW,GAAG,SAAc,CAAA;gBAChC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;aAChC;YAED,OAAO,aAAa,CAAC;SACtB;QAED,iCAAO,GAAP,UAAQ,WAAmB,EAAE,WAAmB;YAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,EAAE;;gBAEjD,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,EAAE;oBACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;oBAE9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;gBAEjE,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,EAAE;oBACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;oBAE9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aAClE;iBACI;;gBAEH,IAAI,WAAW,GAAG,CAAC;oBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;oBAE/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;gBAEhE,IAAI,WAAW,GAAG,CAAC;oBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;oBAE/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aACjE;SACF;QAED,sCAAY,GAAZ;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE;gBAC9D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAChE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,IAAI,EAAE,EAAE;wBAC5G,IAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC;wBACpE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBACrD;iBACF;gBACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;SACF;QAED,yCAAe,GAAf;YACE,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE;gBAC9D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAChE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,IAAI,EAAE,EAAE;wBAC5G,IAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC;wBACpE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;wBAC9D,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE,EAAE;4BAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,IAAIF,kBAAU,CAAC,UAAU,EAAE;;;;;;;;gCAQnE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAAC;;6BAEzE;iCACI;gCACH,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,IAAIA,kBAAU,CAAC,mBAAmB;oCAC1E,YAAY,GAAG,YAAY,CAAC;gCAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,IAAIA,kBAAU,CAAC,QAAQ;oCAC/D,YAAY,GAAG,YAAY,CAAC;gCAE9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAAC;6BACzE;yBACF;6BACI;4BACH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;yBACjE;qBACF;yBACI;wBACH,IAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;wBACzE,IAAI,YAAY,GAAI,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAsB,CAAC,KAAK,CAAC;wBAC7F,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,IAAI;4BACnD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAAC;;4BAExE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;qBACnE;iBACF;aACF;YACD,OAAO,OAAO,CAAC;SAChB;;;;gBA/TF7B,YAAS,SAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,m3DAAsC;iBACvC;;;gBARoDX,4BAAc;gBAR1DqC,iBAAU;gBADVM,aAAM;gBAON,4BAA4B;gBAE5BL,mCAAqB;;;wBA+B3BrB,SAAM;0BACND,QAAK;wBACLA,QAAK;;;;QCzCR;YAyBc,eAAU,GAAG,IAAIP,eAAY,EAAE,CAAC;YACjC,gBAAW,GAAG,CAAC,CAAC;YAChB,aAAQ,GAAG,EAAE,CAAC;YACd,aAAQ,GAAG,EAAE,CAAC;YACd,qBAAgB,GAAG,KAAK,CAAC;YAGlC,UAAK,GAAQ,EAAE,CAAC;SAuFnB;QArFG,wCAAQ,GAAR;;YAEI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;SACJ;QAED,2CAAW,GAAX,UAAY,OAAsB;YAC9B,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW;gBACzB,OAAM;;YAEV,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE;gBAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;SACJ;QAED,uCAAO,GAAP,UAAQ,IAAY;;YAEhB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAGlF,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;;YAGnF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SAChD;QAED,wCAAQ,GAAR,UAAS,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ;YAChD,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE;gBAAE,WAAW,GAAG,CAAC,CAAC;aAAE;YAChD,IAAI,QAAQ,KAAK,KAAK,CAAC,EAAE;gBAAE,QAAQ,GAAG,EAAE,CAAC;aAAE;YAC3C,IAAI,QAAQ,KAAK,KAAK,CAAC,EAAE;gBAAE,QAAQ,GAAG,EAAE,CAAC;aAAE;;YAE3C,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;;YAElD,IAAI,WAAW,GAAG,CAAC,EAAE;gBACjB,WAAW,GAAG,CAAC,CAAC;aACnB;iBACI,IAAI,WAAW,GAAG,UAAU,EAAE;gBAC/B,WAAW,GAAG,UAAU,CAAC;aAC5B;YACD,IAAI,SAAS,EAAE,OAAO,CAAC;YACvB,IAAI,UAAU,IAAI,QAAQ,EAAE;;gBAExB,SAAS,GAAG,CAAC,CAAC;gBACd,OAAO,GAAG,UAAU,CAAC;aACxB;iBACI;;gBAED,IAAI,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;gBACzD,IAAI,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3D,IAAI,WAAW,IAAI,yBAAyB,EAAE;;oBAE1C,SAAS,GAAG,CAAC,CAAC;oBACd,OAAO,GAAG,QAAQ,CAAC;iBACtB;qBACI,IAAI,WAAW,GAAG,wBAAwB,IAAI,UAAU,EAAE;;oBAE3D,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC;oBACtC,OAAO,GAAG,UAAU,CAAC;iBACxB;qBACI;;oBAED,SAAS,GAAG,WAAW,GAAG,yBAAyB,CAAC;oBACpD,OAAO,GAAG,WAAW,GAAG,wBAAwB,CAAC;iBACpD;aACJ;;YAED,IAAI,UAAU,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,QAAQ,CAAC;YAC9C,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;;YAEnE,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;;YAE5G,OAAO;gBACH,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,WAAW;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK;aACf,CAAC;SACL;;;;gBArHJE,YAAS,SAAC;oBACP,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,4jCAkBb;iBACA;;;wBAGIK,QAAK;6BACLC,SAAM;8BACND,QAAK;2BACLA,QAAK;2BACLA,QAAK;mCACLA,QAAK;;;;;QCbR,8BAAoB,cAA8B,EAAsB,gBAAkC,EACjG,sBAA0C,EAAU,cAA8B,EACjF,wBAAkD,EAAU,cAA8B;YAFpG,iBAIC;YAJmB,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YACjG,2BAAsB,GAAtB,sBAAsB,CAAoB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YACjF,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAK1F,aAAQ,GAAG,IAAIP,eAAY,EAAE,CAAC;YAGxC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAiC1B,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YA+BD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC9G,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC3G,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAChH,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,sBAAsB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC7G,CAAA;;YAED,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,sBAAsB,CAAC,CAAA;aACzD,CAAA;YA9FC,oBAAoB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACrE;QASD,uCAAQ,GAAR;YAAA,iBA8BC;YA5BC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAErE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChE,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;aACvC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAGxF,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBACnD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;YAEF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAChE;SAEF;QAMD,8CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,iDAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,6CAAc,GAAd;YACE,IAAI,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;YACtD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;gBAC7F,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aACxG;;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,GAAE,aAAa,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SAClC;QAED,mDAAoB,GAApB,UAAqB,KAAK;YAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,IAAE,OAAA,IAAI,CAAC,KAAK,IAAE,KAAK,GAAA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;SAClE;;;IA7EM,2CAAsB,GAAG,IAAI,CAAC;;gBARtCS,YAAS,SAAC;;oBAET,QAAQ,EAAE,kBAAkB;oBAC5B,qhEAA2C;iBAC5C;;;gBAVQ,cAAc;gBADuCb,sBAAgB,uBAiBvBC,WAAQ;gBAjBiBc,wBAAkB;gBAG/Db,4BAAc;gBAAxCG,sCAAwB;gBACxB,cAAc;;;wBAkBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;ACzBG2B;IAAZ,WAAY,kBAAkB;QAC1B,iEAAW,CAAA;QACX,+DAAU,CAAA;IACZ,CAAC,EAHSA,0BAAkB,KAAlBA,0BAAkB;;;;QCkC5B,0BACU,cAA8B,EAClB,gBAAkC,EAC/C,eAAmC,EACnC,cAA8B,EAC7B,wBAAkD,EAClD,cAA8B;YANxC,iBASC;YARS,mBAAc,GAAd,cAAc,CAAgB;YAClB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAC/C,oBAAe,GAAf,eAAe,CAAoB;YACnC,mBAAc,GAAd,cAAc,CAAgB;YAC7B,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,mBAAc,GAAd,cAAc,CAAgB;YAM9B,aAAQ,GAAG,IAAInC,eAAY,EAAE,CAAC;YACjC,cAAS,GAAGR,iBAAS,CAAA;YAE5B,gBAAW,GAAW,EAAE,CAAC;YACzB,cAAS,GAAW,CAAC,CAAC;YACtB,mBAAc,GAAW,CAAC,CAAC;YAU3B,oBAAe,GAAY,KAAK,CAAC;YACjC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;;YAE1B,sBAAiB,GAAW,CAAC,CAAC;YAC9B,sBAAiB,GAAY,KAAK,CAAC;YACnC,iCAA4B,GAAY,KAAK,CAAC;YAE9C,kBAAa,GAAW,CAAC,CAAC,CAAC;YAC3B,uBAAkB,GAAW,EAAE,CAAC;YAkLhC,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAC;;YAoIF,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAC1C,KAAI,CAAC,kBAAkB,EACvB,KAAI,CAAC,eAAe,EACpB,KAAI,CAAC,OAAO,CACb,CAAC;aACH,CAAC;;YAEF,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CACvC,KAAI,CAAC,kBAAkB,EACvB,KAAI,CAAC,eAAe,EACpB,KAAI,CAAC,OAAO,CACb,CAAC;aACH,CAAC;;YAGF,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CACxC,KAAI,CAAC,kBAAkB,EACvB,KAAI,CAAC,eAAe,EACpB,gBAAgB,CACjB,CAAC;aACH,CAAC;;YAEF,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CACrC,KAAI,CAAC,kBAAkB,EACvB,KAAI,CAAC,eAAe,EACpB,gBAAgB,CACjB,CAAC;aACH,CAAC;;YAEF,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC;aACtD,CAAC;YAxXA,gBAAgB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACjE;QA8BD,mCAAQ,GAAR;YAAA,iBA0KC;YAzKC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAClD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aACjE;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;;gBAEhE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAE1E,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;gBACzB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;YAEhE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE;gBACtE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;aAC7C;YACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIS,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAErD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC5D,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtB,CAAC;YAEJ,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,KAAKD,iBAAS,CAAC,KAAK;oBAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CACvBC,gBAAU,CAAC,OAAO,CAAC;wBACjB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAClC,2JAA2J,EAC3J,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAChD;qBACF,CAAC,CACH,CAAC;oBACF,MAAM;gBAER,KAAKD,iBAAS,CAAC,GAAG;oBAChB,IAAM,OAAO,GAAG,+EAA+E,CAAC;oBAChG,IAAI,CAAC,eAAe,CAAC,IAAI,CACvBC,gBAAU,CAAC,OAAO,CAAC;wBACjB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAClC,OAAO,EACP,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAC5C;qBACF,CAAC,CACH,CAAC;oBACF,MAAM;gBACR,KAAKD,iBAAS,CAAC,GAAG;oBAChB,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;oBACxC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAE5C,MAAM;gBAER,KAAKA,iBAAS,CAAC,MAAM;oBACnB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;wBAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CACvBC,gBAAU,CAAC,OAAO,CAAC;4BACjB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE;gCAC/C,0BAA0B,EAAE,EAAE;6BAC/B,CAAC;yBACH,CAAC,CACH,CAAC;wBACF,IAAI,CAAC,eAAe,CAAC,IAAI,CACvBA,gBAAU,CAAC,OAAO,CAAC;4BACjB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAClC,2BAA2B,EAC3B,EAAE,2BAA2B,EAAE,EAAE,EAAE,CACpC;yBACF,CAAC,CACH,CAAC;qBACH;oBACD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE;wBACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CACvBA,gBAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAC9C,CAAC;wBACF,IAAI,CAAC,eAAe,CAAC,IAAI,CACvBA,gBAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAC5C,CAAC;qBACH;oBACD,MAAM;gBACR,KAAKD,iBAAS,CAAC,QAAQ;oBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE;wBACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CACvBC,gBAAU,CAAC,OAAO,CAAC;4BACjB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE;gCACzC,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;6BAC9D,CAAC;4BACF,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE;gCAC5C,kCAAkC,EAChC,IAAI,CAAC,kCAAkC;6BAC1C,CAAC;4BACF,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE;gCAC5C,gCAAgC,EAC9B,IAAI,CAAC,gCAAgC;6BACxC,CAAC;4BACF,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,wBAAwB,EAAE;gCAC7D,kCAAkC,EAChC,IAAI,CAAC,kCAAkC;6BAC1C,CAAC;4BACFA,gBAAU,CAAC,SAAS,CAAC,CAAC,CAAC;yBACxB,CAAC,CACH,CAAC;qBACH;oBACD,MAAM;aACT;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBACnC,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI0C,0BAAkB,CAAC,MAAM,EAAE;oBAChE,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB1C,gBAAU,CAAC,OAAO,CAAC;wBACjB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE;4BACnD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;yBACxC,CAAC;qBACH,CAAC,CACH,CAAC;iBACH;qBAAM,IACL,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI0C,0BAAkB,CAAC,OAAO,EAC7D;oBACA,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB1C,gBAAU,CAAC,OAAO,CAAC;wBACjB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAClC,wDAAwD,EACxD,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAC9C;qBACF,CAAC,CACH,CAAC;iBACH;aACF;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aACF;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;aACzE;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACA,gBAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBAExE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB;oBACrC,IAAI,CAAC,OAAO,CAAC,qBAAqB;wBAChC,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC;gBAE9C,IAAI,CAAC,aAAa;oBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;aAC/D;YACD,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5D,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;aACnC;YAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBAC5C,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;SACrD;QAED,0CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC1D;QAMD,0CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;SACvC;QAED,6CAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;aAC/B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,uCAAY,GAAZ,UAAa,IAAY;YACvB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC/C;QAED,2CAAgB,GAAhB;YACE,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACtD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAC9B,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAClD,IACE,IAAI,CAAC,OAAO,CAAC,aAAa;gBAC1B,IAAI,CAAC,OAAO,CAAC,SAAS;gBACtB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAC7B;gBACA,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACnC,aAAa,EACb,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,CACvB,CAAC;aACH;SACF;QAED,2CAAgB,GAAhB,UAAiB,YAAY;YAC3B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;SACpD;QAED,kDAAuB,GAAvB;YACE,IAAI,CAAC,kBAAkB;gBACrB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB;gBACnB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAC7D,IAAI,CAAC,kCAAkC;gBACrC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAClC,oCAAoC,CACrC,CAAC;YACJ,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACrE,6BAA6B,CAC9B,CAAC;YACF,IAAI,CAAC,gCAAgC;gBACnC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;YAC3E,IAAI,CAAC,kCAAkC;gBACrC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAClC,oCAAoC,CACrC,CAAC;YACJ,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACnE,2BAA2B,CAC5B,CAAC;YACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC1D,4CAA4C,CAC7C,CAAC;YACF,IAAI,CAAC,iBAAiB;gBACpB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;SAC7D;QAED,uCAAY,GAAZ;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAID,iBAAS,CAAC,MAAM;gBACvC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;oBAClC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtE,OAAO;iBACR;YAEH,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;aACpB;iBAAM;gBACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;gBACtE,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;oBAC3B,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;wBACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;wBAC3C,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;4BAChC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;yBACrD,CAAC,CAAC;wBACH,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;wBACxC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;qBACjC;yBAAM;wBACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;qBACtC;iBACF;;;gBAGD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE;oBACrD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC9D,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE;wBAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;wBAC9B,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;wBACzC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;4BAClD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;;4BAChC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;qBAC1C;yBAAM;wBACL,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;wBAC/B,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;qBAC3C;oBACD,IAAI,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBACzC,IAAI,OAAO,GAAW,IAAI,CAAC,iBAAiB,CAAC;oBAE7C,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CACjD,uBAAuB,CACxB,CAAC;oBACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;iBACtD;aACF;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACnD;QAED,kCAAO,GAAP,UAAQ,OAAgB;YACtB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;;YAG/B,IAAI,OAAO,EAAE;gBACX,IAAI,IAAI,CAAC,4BAA4B;;oBAEnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACjC;;gBACI,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SACrC;;;IA7VM,uCAAsB,GAAG,IAAI,CAAC;;gBALtCU,YAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,i9JAAuC;iBACxC;;;gBAZQ,cAAc;gBALrBb,sBAAgB,uBAuBbC,WAAQ;gBAtBXc,wBAAkB;gBAOlBb,4BAAc;gBADdG,sCAAwB;gBAGjB,cAAc;;;wBAqBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QC9CT;YAEI,SAAI,GAAS,IAAI,CAAC;SAKrB;iCAAA;KAAA;;;QCcC,kCAAoB,aAA4B,EACtC,MAAc,EAAU,cAA8B,EAAsB,gBAAkC,EAC/G,0BAA8C,EAAU,cAA8B,EAAU,SAA+B,EAC9H,wBAAkD,EAAU,cAA8B;YAHpG,iBAOC;YAPmB,kBAAa,GAAb,aAAa,CAAe;YACtC,WAAM,GAAN,MAAM,CAAQ;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAC/G,+BAA0B,GAA1B,0BAA0B,CAAoB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,cAAS,GAAT,SAAS,CAAsB;YAC9H,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAO1F,aAAQ,GAAG,IAAIR,eAAY,EAAE,CAAC;YAGxC,yBAAoB,GAAuB,IAAI,kBAAkB,EAAE,CAAC;YACpE,oBAAe,GAAW,EAAE,CAAC;YAC7B,2BAAsB,GAAG,IAAIA,eAAY,EAAE,CAAC;YAC5C,0BAAqB,GAAG,IAAIA,eAAY,EAAE,CAAC;YAC3C,uBAAkB,GAAG,IAAIA,eAAY,EAAE,CAAC;YAKxC,qBAAgB,GAAY,KAAK,CAAC;YAClC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAoO1B,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YA8DD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAClH,CAAA;;YAGD,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC/G,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aACpH,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,0BAA0B,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aACjH,CAAA;;YAGD,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,0BAA0B,CAAC,CAAA;aAC7D,CAAA;YA7UC,wBAAwB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACxE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,WAAW,IAAI,SAAS,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAA;SAE1G;QAmBD,2CAAQ,GAAR;YAAA,iBAsNC;YArNC,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YAEpD,IAAI,CAAC,oBAAoB,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,KAAK;gBAC1C,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;gBAClC,CAAC;gBACD,IAAI,KAAI,CAAC,eAAe,IAAI,IAAI;oBAC9B,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;gBACtD,IAAI,KAAI,CAAC,eAAe,IAAI,IAAI;oBAC9B,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;gBACtD,KAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAA;gBAClD,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAMoC,yBAAW,CAAC,iBAAiB,kBAAa,KAAI,CAAC,eAAiB,CAAC;gBAC9G,IAAI,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1E,IAAI,SAAS;oBACX,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,IAAI,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;gBAChE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACxB,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAEvB,IAAI,MAAM,GAAG,KAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,eAAe,EAAE,CAAC;gBAChE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAA;gBAIpB,KAAI,CAAC,iBAAiB,GAAG,IAAIC,sBAAiB,CAAC;;oBAE7C,MAAM,EAAKD,yBAAW,CAAC,iBAAiB,kBAAa,KAAI,CAAC,eAAiB;oBAC3E,SAAS,EAAE,CAAC,QAAQ,CAAC;iBACtB,EAAE,KAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBACpH,KAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;oBACjC,IAAI,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;wBAC1F,KAAK,EAAE,CAAC,SAAS,CAAC;qBAEnB,CAAC,CAAC;oBACH,YAAY,CAAC,WAAW,CAAC,eAAe;;8BAGtC;wBAEE,KAAI,CAAC,MAAM,CAAC,GAAG;;kCAGb;;;4BAGE,IAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;;4BAEtC,IAAM,aAAa,GAAG;gCACpB,IAAI,EAAE,KAAK,CAAC,EAAE;gCACd,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,GAAG,EAAE,KAAK,CAAC,GAAG;gCACd,OAAO,EAAE,KAAK,CAAC,QAAQ;gCACvB,cAAc,EAAE,KAAK,CAAC,iBAAiB;gCACvC,IAAI,EAAE,KAAK,CAAC,IAAI;gCAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gCACxB,QAAQ,EAAE,EAAE;gCACZ,KAAK,EAAE,EAAE;gCACT,OAAO,EAAE,EAAE;gCACX,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;6BAC7C,CAAC;4BAEF,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;gCAC7C,aAAa,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gCACnE,aAAa,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;6BACrE;4BACD,KAAK,CAAC,kBAAkB,CAAC,OAAO;;;;;;8BAI9B;;;;;;+BAAA,KAAK;gCACH,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE;oCAC7C,aAAa,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;iCAClD;gCACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;oCACrC,aAAa,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;iCAC/C;gCACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;oCAC3C,aAAa,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iCACxD;gCACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;oCAC3C,aAAa,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;iCAChD;gCACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;oCACxC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;oCACjD,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;iCACpD;gCACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,EAAE;oCAC3D,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;oCAC9C,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;iCACjD;gCACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;oCACvC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;oCAChD,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;iCACnD;gCACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,EAAE;oCAC3D,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;iCACpD;6BACF,EAAE,CAAC;4BAEN,KAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4BAC/C,KAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAA;4BACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;;gCAE9E,OAAO;6BACR;iCACI;;;6BAGJ;;4BAED,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACxC,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;4BAEhC,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gCAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;gCACvC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;6BACzC,CAAC,CAAC;yBACJ,EAAE,CAAC;qBACP,EAAE,CAAC;iBACP,CAAC,CAAC;aAEJ,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;gBAC9B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;YACtD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;gBAC9B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAA;YAClD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAMA,yBAAW,CAAC,iBAAiB,kBAAa,IAAI,CAAC,eAAiB,CAAC;YAC9G,IAAI,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;YAC5E,IAAI,WAAW;gBACb,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,IAAIC,sBAAiB,CAAC;gBAC7C,MAAM,EAAKD,yBAAW,CAAC,iBAAiB,kBAAa,IAAI,CAAC,eAAiB;gBAC3E,SAAS,EAAE,CAAC,QAAQ,CAAC;aACtB,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACpH,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAE9B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;gBAC7B,IAAI,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;oBAC1F,KAAK,EAAE,CAAC,SAAS,CAAC;iBAEnB,CAAC,CAAC;aAEJ,CAAC,CAAA;YACF,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAInC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExF,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpE,IAAI,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,CAAC;aAC3C;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC9B,IAAI,aAAa,GAAG;oBAElB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa;oBACrC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;oBACnC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;oBACvC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;oBAC7B,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;iBAC7C,CAAC;gBAEF,aAAa,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACjE,aAAa,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;gBACnE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC/C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAA;gBACvC,IAAI,CAAC,KAAK,GAAG;oBAEX,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa;oBACrC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;oBACpC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;oBAC1C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;iBAC9B,CAAC;gBACF,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAErC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;oBACrC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;iBACxC,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;gBAC1E,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC9D;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aAEF;YAGD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBACvD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SAGH;QACD,kDAAe,GAAf;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtG;aACF;YACD,IAAI,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAQ,CAAA;YACnE,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;SACpD;QAMD,kDAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,qDAAkB,GAAlB,UAAmB,SAAS;YAC1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAED,uDAAoB,GAApB,UAAqB,MAAM;YAGzB,IAAI,CAAC,oBAAoB,IAAI,IAAI,kBAAkB,EAAE,CAAC;YACtD,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;YAC1D,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;YACpD,IAAI,CAAC,oBAAoB,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC;SACtD;QACD,mDAAgB,GAAhB,UAAiB,QAAQ;YAEvB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACvD,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YACzD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;YAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE;gBACjG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aACzG;;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,GAAC,IAAI,CAAC,oBAAoB,CAAC;SAC9C;QAED,sDAAmB,GAAnB,UAAoB,MAAM;YACxB,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE;oBAC7B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAC,MAAM,CAAC;iBAC3B;gBACD,OAAO;aACR;YACD,IAAI,CAAC,oBAAoB,IAAI,IAAI,kBAAkB,EAAE,CAAC;YACtD,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC;YACvD,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACnD,IAAI,CAAC,oBAAoB,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC;YACrD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;YACjE,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;YACnE,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;YAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAA;;YAEzD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAC,IAAI,CAAC,oBAAoB,CAAC;SAC9C;;;IAzTM,+CAAsB,GAAG,IAAI,CAAC;;gBARtCS,YAAS,SAAC;oBACT,QAAQ,EAAE,sBAAsB;oBAChC,4oEAA+C;iBAChD;;;gBARQoC,kBAAa;gBANuBrB,SAAM;gBAE1C,cAAc;gBADuC5B,sBAAgB,uBAoBTC,WAAQ;gBApBGc,wBAAkB;gBAM5Bb,4BAAc;gBAA3Ec,kCAAoB;gBAAEX,sCAAwB;gBAC9C,cAAc;;;wBAoBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;mCAQNK,YAAS,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;ACtC5B0B;IAAZ,WAAY,YAAY;QACpB,iDAAS,CAAA;QACT,mDAAU,CAAA;QACV,iDAAS,CAAA;QACT,mDAAU,CAAA;IACZ,CAAC,EALSA,oBAAY,KAAZA,oBAAY;;;;QC4BtB,2BAAoB,YAAoC,EAAU,cAA8B,EAAsB,gBAAkC,EAAS,gBAAoC,EAAS,cAA6B,EAAS,SAA+B,EAAS,wBAAiD;YAA7U,iBAEC;YAFmB,iBAAY,GAAZ,YAAY,CAAwB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAAS,qBAAgB,GAAhB,gBAAgB,CAAoB;YAAS,mBAAc,GAAd,cAAc,CAAe;YAAS,cAAS,GAAT,SAAS,CAAsB;YAAS,6BAAwB,GAAxB,wBAAwB,CAAyB;YAU7U,oBAAe,GAAG,IAAI,CAAC;YAEvB,kBAAa,GAAoB,EAAE,CAAC;YACpC,oBAAe,GAAG,CAACC,iCAAa,EAAEC,kCAAc,EAAEC,qCAAiB,EAAEC,8BAAU,CAAC,CAAC;YACjF,qBAAgB,GAAG,IAAI,CAAC;YACxB,mBAAc,GAAsB,EAAE,CAAC;YACvC,gBAAW,GAAG,EAAE,CAAA;YAChB,kBAAa,GAAG,EAAE,CAAA;YAClB,YAAO,GAAG,EAAE,CAAC;YACb,oBAAe,GAAG,EAAE,CAAA;YAgHpB,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;YApIC,iBAAiB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAClE;QAkBK,oCAAQ,GAAR;;;iCAuGL;;;gCAtGS,qBAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAA;;4BAAtD,QAAQ,SAA8C;gCACpD,KAAK,IAAI;oCACP,IAAI,CAAC,OAAO,GAAG,CAACC,4BAAQ,CAAC,CAAA;oCACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;oCAC3B,MAAM;gCACR,KAAK,IAAI;oCACP,IAAI,CAAC,OAAO,GAAG,CAACC,8BAAU,CAAC,CAAA;oCAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;oCAC3B,MAAM;gCAER;oCACE,MAAM;6BACT;4BACD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,KAAsB;gCAC3D,QAAQ,KAAK,CAAC,IAAI;oCAChB,KAAK,IAAI;wCACP,KAAI,CAAC,OAAO,GAAG,CAACD,4BAAQ,CAAC,CAAA;wCACzB,KAAI,CAAC,eAAe,GAAG,IAAI,CAAA;wCAC3B,MAAM;oCACR,KAAK,IAAI;wCACP,KAAI,CAAC,OAAO,GAAG,CAACC,8BAAU,CAAC,CAAA;wCAC3B,KAAI,CAAC,eAAe,GAAG,IAAI,CAAA;wCAC3B,MAAM;oCAER;wCACE,MAAM;iCACT;6BAEF,CAAC,CAAC;4BACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAA;4BAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAA;4BAC1D,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW;gCAC9B,KAAKN,oBAAY,CAAC,KAAK;oCACrB,IAAI,CAAC,WAAW,GAAG,cAAc,CAAA;oCACjC,MAAM;gCACR,KAAKA,oBAAY,CAAC,MAAM;oCACtB,IAAI,CAAC,WAAW,GAAG,cAAc,CAAA;oCACjC,MAAM;gCACR,KAAKA,oBAAY,CAAC,KAAK;oCACrB,IAAI,CAAC,WAAW,GAAG,aAAa,CAAA;oCAChC,MAAM;gCACR;oCACE,MAAM;6BACT;4BACD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gCAC7E,KAAS,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oCAChE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oCAClD,QAAQ,OAAO;wCACb,KAAKA,oBAAY,CAAC,MAAM;4CACtB,IAAI,CAAC,aAAa,IAAI,WAAW,CAAA;4CACjC,MAAM;wCACR,KAAKA,oBAAY,CAAC,KAAK;4CACrB,IAAI,CAAC,aAAa,IAAI,cAAc,CAAA;4CACpC,MAAM;wCACR,KAAKA,oBAAY,CAAC,MAAM;4CACtB,IAAI,CAAC,aAAa,IAAI,eAAe,CAAA;4CACrC,MAAM;wCACR,KAAKA,oBAAY,CAAC,KAAK;4CACrB,IAAI,CAAC,aAAa,IAAI,eAAe,CAAA;4CACrC,MAAM;wCAGR;4CACE,MAAM;qCACT;iCACF;4BACH,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAItC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC9D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAGlE,IAAI,CAAC,eAAe,GAAG;gCACrB,OAAO,EAAE;oCACPuC,iCAAa;oCACbM,kCAAc;oCACdH,8BAAU;oCACVD,qCAAiB;iCAClB;gCACD,aAAa,EAAE;oCACb,IAAI,EAAE,iBAAiB;oCACvB,MAAM,EAAE,OAAO;oCACf,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;iCACtE;gCACD,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,MAAM,EAAE,IAAI,CAAC,eAAe;gCAC5B,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCAC7C,aAAa,EAAE,IAAI,CAAC,cAAc;gCAClC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gCACrC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB;gCAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;gCACpC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;;gCAExC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;gCACvC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;gCAC1C,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;6BAOjD,CAAC;;;;aAEH;SAAA;QAGD,2CAAe,GAAf;SAGC;QAMD,8CAAkB,GAAlB,UAAmB,UAAiB;SACnC;QAGD,8CAAkB,GAAlB,UAAmB,GAAG;YAEpB,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE;gBAC3C,IAAI,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACvD,gBAAgB,CAAC,GAAG,CAAC,CAAC;aACvB;SACF;QAED,gDAAoB,GAApB,UAAqB,GAAG;YACtB,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI,EAAE;gBAC7C,IAAI,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBAC3D,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC/B;SAEF;;;IA3JM,wCAAsB,GAAG,IAAI,CAAC;;gBARtCxC,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,gzCAAwC;;iBAEzC;;;gBAdQ,sBAAsB;gBACtB,cAAc;gBAFuCb,sBAAgB,uBAqBuBC,WAAQ;gBArB7Bc,wBAAkB;gBASzCb,4BAAc;gBAA9Dc,kCAAoB;gBAAEX,sCAAwB;;;wBAepDa,QAAK;0BACLA,QAAK;oCAELM,YAAS,SAAC,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;ACnC9BkC;IAAZ,WAAY,gBAAgB;QAC1B,uEAAY,CAAA;QACZ,2DAAM,CAAA;IACR,CAAC,EAHWA,wBAAgB,KAAhBA,wBAAgB;;;QCuB1B,uBAAoB,cAA8B,EAAU,cAA8B,EAAU,wBAAkD,EAAU,YAAsB,EAAU,cAA8B,EAAU,MAAc;YAAlO,mBAAc,GAAd,cAAc,CAAgB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,iBAAY,GAAZ,YAAY,CAAU;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAAU,WAAM,GAAN,MAAM,CAAQ;YAHtP,aAAQ,GAAY,IAAI,CAAC;YACf,aAAQ,GAAG,IAAI/C,eAAY,EAAE,CAAC;SAIvC;QAGD,gCAAQ,GAAR;YACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;SACrC;QACD,uCAAe,GAAf;YAAA,iBAKC;YAJC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,EAAE;gBAC/C,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAE1B,CAAC,CAAC;SACJ;QAED,8BAAM,GAAN;YAAA,iBAuCC;YAtCC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAA;YACzC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;gBAClC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAM;aACP;iBACI;gBAEH,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAW,CAAA;gBAC1D,IAAI,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAoB,CAAA;gBACrG,gBAAgB,CAAC,SAAS,CACxB,UAAC,MAAM;oBACL,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;;wBAErC,IAAI,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;wBAC1E,IAAI,KAAK,EAAE;4BACT,IAAI,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAQ,CAAA;4BACtE,WAAW,CAAC,KAAK,EAAE,CAAC;yBACrB;qBACF;oBACD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,0BAA0B;wBAC1C,KAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAA;oBAC5C,IAAI,KAAI,CAAC,OAAO,CAAC,gBAAgB;wBAC/B,KAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;oBACvC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,cAAc;wBAC9B,KAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;oBACpC,IAAI,KAAI,CAAC,OAAO,CAAC,eAAe,EAAE;wBAChC,IAAI,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,eAAe,CAAC;wBAC1C,KAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI+C,wBAAgB,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;qBACtH;iBACF,EAAE,UAAC,KAAK;oBACP,IAAI,KAAI,CAAC,OAAO,CAAC,cAAc;wBAC7B,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;;wBAElC,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;iBAC1B,CAAC,CAAA;aAEL;SAEF;QAEO,mCAAW,GAAX,UAAY,GAAsB;YACxC,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,KAAK,YAAY,UAAU,EAAE;gBACnC,YAAY,GAAG,wBAAsB,GAAG,CAAC,KAAK,CAAC,OAAS,CAAC;gBACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB;oBACxC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAA;aAC3C;iBACI;gBACH,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAIxB,iCAAmB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;aACxH;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC9B,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACrC;QAED,uCAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACnD;QACD,oCAAY,GAAZ,UAAa,MAAM;YACjB,IAAI,WAAW,GAAG,gEAAgE,CAAC;YACnF,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;aAC9E;YACD,OAAO,MAAM,CAAC;SACf;;;;gBA3FFrB,YAAS,SAAC;;oBAET,QAAQ,EAAE,WAAW;oBACrB,2PAAoC;iBACrC;;;gBAPQ,cAAc;gBALiCX,4BAAc;gBAA7DG,sCAAwB;gBADRwB,oBAAQ;gBAAxB8B,0BAAc;gBAOdd,aAAM;;;2BAWZ1B,SAAM;0BAKND,QAAK;;;AC1BI0C;IAAZ,WAAY,qBAAqB;QAC/B,qEAAM,CAAA;QACN,uEAAO,CAAA;QACP,uEAAO,CAAA;IACT,CAAC,EAJWA,6BAAqB,KAArBA,6BAAqB;;;QC0B/B,oCAAmB,cAA8B,EAAU,YAAsB,EAAU,MAAc;YAAtF,mBAAc,GAAd,cAAc,CAAgB;YAAU,iBAAY,GAAZ,YAAY,CAAU;YAAU,WAAM,GAAN,MAAM,CAAQ;YATzG,gBAAW,GAA0BA,6BAAqB,CAAC,MAAM,CAAC;YAClE,iBAAY,GAA0BA,6BAAqB,CAAC,OAAO,CAAC;YACpE,iBAAY,GAA0BA,6BAAqB,CAAC,OAAO,CAAC;SAO0C;QAE9G,6CAAQ,GAAR;SACC;;QAGD,8CAAS,GAAT;YAAA,iBA6CC;YA5CC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAA;;YAElC,IAAI,CAAC,aAAa,EAAE,CAAC;;YAErB,QAAQ,IAAI,CAAC,OAAO,CAAC,qBAAqB;gBACxC,KAAK,IAAI,CAAC,YAAY,EAAE;oBACtB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;oBACrB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;oBACzB,IAAI,CAAC,QAAQ,GAAG,6BAA6B,CAAA;oBAC7C,MAAM;iBACP;gBACD,KAAK,IAAI,CAAC,YAAY,EAAE;oBACtB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;oBACrB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;oBACzB,IAAI,CAAC,QAAQ,GAAG,+BAA+B,CAAA;oBAC/C,MAAM;iBAEP;gBACD,KAAK,IAAI,CAAC,WAAW,EAAE;oBACrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;oBACnB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;oBACzB,IAAI,CAAC,QAAQ,GAAG,6BAA6B,CAAA;oBAC7C,MAAM;iBAEP;aACF;YACDC,wBAAI,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBAC5E,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,kBAAkB,EAAE,IAAI,CAAC,QAAQ;gBACjC,iBAAiB,EAAE,SAAS;gBAC5B,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,aAAa,CAAC;gBACrE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;gBAChD,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;gBAC/C,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;gBAC7C,iBAAiB,EAAE,KAAK;aACzB,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;gBACb,IAAI,MAAM,CAAC,WAAW,EAAE;oBACtB,KAAI,CAAC,MAAM,EAAE,CAAA;iBACd;aACF,CAAC,CAAA;YACF,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAA;SAClC;QACO,kDAAa,GAAb;YACN,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;gBAClC,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAC/F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB;gBAChC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YAC1F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB;gBAChC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACjF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B;gBAC1C,IAAI,CAAC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;SACzG;;QAED,2CAAM,GAAN;YAAA,iBA2BC;YA1BC,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAElD,IAAI,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAoB,CAAA;YACrG,gBAAgB,CAAC,SAAS,CACxB,UAAC,MAAM;gBACL,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,mBAAmB;oBACnC,KAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;gBAEjC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE;oBAC5C,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,0BAA0B;wBAC1C,KAAI,CAAC,OAAO,CAAC,0BAA0B,GAAG,KAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;oBACxG,KAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAA;iBAClF;gBACD,IAAI,KAAI,CAAC,OAAO,CAAC,gBAAgB;oBAC/B,KAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;gBACvC,IAAI,KAAI,CAAC,OAAO,CAAC,eAAe,EAAE;oBAChC,IAAI,MAAM,GAAG,KAAI,CAAC,OAAO,CAAC,eAAe,CAAC;oBAC1C,KAAI,CAAC,OAAO,CAAC,gBAAgB,IAAIH,wBAAgB,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;iBACtH;gBACD,KAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;aACnC,EAAE,UAAC,KAAK;gBACP,IAAI,KAAI,CAAC,OAAO,CAAC,cAAc;oBAC7B,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;;oBAElC,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;aAC1B,CAAC,CAAA;SACL;QAEO,gDAAW,GAAX,UAAY,GAAsB;YACxC,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,KAAK,YAAY,UAAU,EAAE;gBACnC,YAAY,GAAG,wBAAsB,GAAG,CAAC,KAAK,CAAC,OAAS,CAAC;gBACzD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB;oBACxC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAA;aAC3C;iBAEI,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAA;aAC/C;iBACI,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;gBAC1B,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,IAAI,GAAG,qDAAqD,GAAG,+CAA+C,CAAC;gBAC1K,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB;oBACxC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;aACvD;iBACI;gBACH,YAAY,GAAG,2BAAyB,GAAG,CAAC,MAAM,4BAAuB,GAAG,CAAC,OAAS,CAAC;gBACvF,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB;oBACxC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAA;aAC3C;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACnC;;;;gBAlIF7C,YAAS,SAAC;oBACT,YAA+C;oBAC/C,QAAQ,EAAE,wBAAwB;iBACnC;;;gBAVQX,4BAAc;gBADd2B,oBAAQ;gBAHRgB,aAAM;;;0BAgBZ3B,QAAK;oCAILM,YAAS,SAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;;QCZjD,iCAAmB,QAA0B;YAA1B,aAAQ,GAAR,QAAQ,CAAkB;SAAK;;;;gBANnDsC,YAAS,SAAC;oBACT,QAAQ,EAAE,mBAAmB;iBAC9B;;;gBAJ0BC,cAAW;;;uBAMnC7C,QAAK;;;;QCiBN;YAPA,iBAAY,GAA4B,EAAE,CAAC;YAC3C,UAAK,GAAa,EAAE,CAAA;YACpB,kBAAa,GAAU,EAAE,CAAC;YAG1B,oBAAe,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAE5C;QAEjB,oCAAQ,GAAR;YAAA,iBAqDC;YApDC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,IAAI,CAAC,aAAa,GAAG,IAAIQ,eAAS,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAChD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;iBAC5B;aACF;;gBAEC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE;oBAClE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACxB;YAEH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,GAAG;;gBAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,KAAK,IAAM,GAAG,IAAI,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;oBAC7C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;wBAC1E,IAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAClC,IAAI,IAAI;4BACN,GAAC,WAAW,CAAC,CAAC,CAAC,cAAK,GAAC,WAAW,CAAC,CAAC,CAAC,IAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAE;+BAC1F,CAAA;wBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;wBACnB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;4BACrC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;qBACjC;iBACF;wCACQ,KAAK;oBACZ,IAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;oBAC7B,IAAI,SAAS,GAAG,EAAE,CAAA;oBAClB,IAAI,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,GAAG,CAAC,GAAA,CAAC,CAAA;oBACzD,KAAK,IAAI,OAAK,GAAG,CAAC,EAAE,OAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAK,EAAE,EAAE;wBAC5D,IAAM,eAAe,GAAG,gBAAgB,CAAC,OAAK,CAAC,CAAC;wBAChD,KAAK,IAAM,GAAG,IAAI,eAAe,EAAE;4BACjC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;gCAC9D,IAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gCACrC,KAAK,IAAM,KAAG,IAAI,OAAO,EAAE;oCACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAG,CAAC,EAAE;wCACtD,IAAM,KAAK,GAAG,OAAO,CAAC,KAAG,CAAC,CAAC;wCAC3B,SAAS,CAAC,KAAG,CAAC,GAAG,KAAK,CAAA;qCACvB;iCACF;6BACF;yBACF;qBACF;oBACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;;gBAlBxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;4BAA5C,KAAK;iBAmBb;gBACD,KAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;aACrC,CAAC,CAAA;SAEH;QAED,sCAAU,GAAV,UAAW,KAAK;;YAAhB,iBA0BC;YAzBC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU;gBAC/E,OAAO;YACT,IAAI,eAAe,GAAU,EAAE,CAAA;YAC/B,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,IAAI,GAAA,CAAC,CAAA;YACjF,KAAK,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;oBAC1E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACxD,IAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpC,IAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAClC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,KAAG,OAAO,GAAG,KAAO,EAAE;4BAC3D,IAAM,SAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BACjD,eAAe,CAAC,IAAI,WAAG,GAAC,GAAG,IAAG,SAAO,MAAG,CAAA;yBACzC;qBACF;iBACF;aACF;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC3D,IAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACvC,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;oBACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;wBACtD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;qBACtC;iBACF;aACF;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,IAAI,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAA,CAAC,CAAA;SAClE;QAGD,mCAAO,GAAP;YACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACpC;QAED,2CAAe,GAAf;YACE,IAAI,YAAY,GAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAW,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,UAAU,CAAC,GAAA,CAAC,CAAA;YACzF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;YAChC,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAA;YACjD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;SAE1C;QAED,2CAAe,GAAf,UAAgB,CAAS;YACvB,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;SAChC;;;;gBArHFb,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,s1CAAwC;iBACzC;;;;wBAEEK,QAAK;0BACLA,QAAK;kCACLA,QAAK;6BACL8C,eAAY,SAAC,uBAAuB;yBACpCxC,YAAS,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;ACf5ByC;IAAZ,WAAY,cAAc;QACxB,qDAAS,CAAA;QACT,qEAAiB,CAAA;QACjB,2DAAY,CAAA;IACd,CAAC,EAJWA,sBAAc,KAAdA,sBAAc,QAIzB;AACWC;IAAZ,WAAY,QAAQ;QAClB,yDAA6C,CAAA;QAC7C,0DAA8C,CAAA;QAC9C,2DAA+C,CAAA;QAC/C,yDAA6C,CAAA;QAC7C,2DAA+C,CAAA;QAC/C,kEAAsD,CAAA;QACtD,yDAA6C,CAAA;QAC7C,0DAA8C,CAAA;QAC9C,yDAA6C,CAAA;QAC7C,8DAAkD,CAAA;QAClD,4DAAgD,CAAA;QAChD,yDAA6C,CAAA;QAC7C,6DAAiD,CAAA;QACjD,yDAA6C,CAAA;QAC7C,6DAAiD,CAAA;QACjD,iEAAqD,CAAA;QACrD,kEAAsD,CAAA;QACtD,yDAA6C,CAAA;QAC7C,8DAAkD,CAAA;QAClD,+DAAmD,CAAA;QACnD,kEAAsD,CAAA;QACtD,4DAAgD,CAAA;QAChD,gEAAoD,CAAA;IACtD,CAAC,EAxBWA,gBAAQ,KAARA,gBAAQ;;;QCFpB;;YA2BE,eAAU,GAAY,KAAK,CAAA;;YAE3B,aAAQ,GAAkB,IAAI,CAAC;;YAI/B,qBAAgB,GAAuB,EAAE,CAAA;;YAMzC,eAAU,GAAY,KAAK,CAAC;SAC7B;iCAAA;KAAA;;;QCrCsC,qCAAkB;QAAzD;YAAA,6EAyBC;;YAbC,oBAAc,GAAW,CAAC,CAAA;;YAE1B,iBAAW,GAAY,IAAI,CAAA;;YAE3B,gBAAU,GAAe5D,kBAAU,CAAC,QAAQ,CAAA;;YAE5C,eAAS,GAAcC,iBAAS,CAAC,KAAK,CAAA;;YAEtC,gBAAU,GAAeC,kBAAU,CAAC,MAAM,CAAA;YAC1C,oBAAc,GAAmB,IAAI,CAAA;;YAErC,+BAAyB,GAAW,IAAI,CAAC;;SAE1C;gCAAA;KAzBD,CAAuC,kBAAkB;;ACN7C2D;IAAZ,WAAY,cAAc;QACtB,yDAAW,CAAA;QACX,uDAAU,CAAA;IACZ,CAAC,EAHSA,sBAAc,KAAdA,sBAAc;;;QCOW,mCAAkB;QAAvD;YAAA,6EA+BC;;YAxBC,4BAAsB,GAAY,KAAK,CAAC;;YAgBxC,oBAAc,GAAW,KAAK,CAAA;;YAE9B,sBAAgB,GAAW,OAAO,CAAA;YAClC,oBAAc,GAAmBA,sBAAc,CAAC,OAAO,CAAA;YACvD,kBAAY,GAAW,EAAE,CAAA;;SAI1B;8BAAA;KA/BD,CAAqC,kBAAkB;;;QCJhB,qCAAkB;QAAzD;YAAA,6EAiBC;;YAbC,oBAAc,GAAY,KAAK,CAAA;;YAE/B,gBAAU,GAAY,KAAK,CAAA;;SAW5B;gCAAA;KAjBD,CAAuC,kBAAkB;;;QCMlB,qCAAkB;QAAzD;YAAA,6EAyBC;;YAjBC,oBAAc,GAAiBA,sBAAc,CAAC,OAAO,CAAA;;YAErD,YAAM,GAAS,CAAC,CAAA;;SAejB;gCAAA;KAzBD,CAAuC,kBAAkB;;ACT7CC;IAAZ,WAAY,SAAS;QAEjB,0DAA2C,CAAA;QAC3C,8BAAe,CAAA;QACf,+BAAgB,CAAA;QAChB,gCAAiB,CAAA;QACjB,kCAAmB,CAAA;QACnB,sBAAO,CAAA;IACX,CAAC,EARWA,iBAAS,KAATA,iBAAS;;;QCImB,sCAAkB;QAA1D;YAAA,6EAoBC;;YAfC,gBAAU,GAAY,KAAK,CAAA;;YAE3B,mBAAa,GAAY,IAAI,CAAA;;YAU7B,4BAAsB,GAAgB,CAACA,iBAAS,CAAC,UAAU,CAAC,CAAA;;SAG7D;iCAAA;KApBD,CAAwC,kBAAkB;;;QCDd,0CAAkB;QAA9D;;SAIC;qCAAA;KAJD,CAA4C,kBAAkB;;;QCC5B,gCAAkB;QAApD;YAAA,6EAoBC;;YALC,wBAAkB,GAAc,EAAE,CAAA;;YAElC,mBAAa,GAAc,EAAE,CAAA;YAC7B,oBAAc,GAAmBD,sBAAc,CAAC,OAAO,CAAA;;SAExD;2BAAA;KApBD,CAAkC,kBAAkB;;;QCJpD;SAIC;0BAAA;KAAA;;;QCAoC,mCAAkB;QAAvD;;SAuBC;8BAAA;KAvBD,CAAqC,kBAAkB;;ACJ3CE;IAAZ,WAAY,YAAY;QACpB,+CAAQ,CAAA;QACR,iDAAS,CAAA;IACX,CAAC,EAHSA,oBAAY,KAAZA,oBAAY;;;QCOY,kCAAkB;QAAtD;YAAA,6EAmCC;;YAzBC,iBAAW,GAAgB,IAAI,WAAW,EAAE,CAAA;;YAE5C,kBAAY,GAAW,IAAI,CAAA;;YAQ3B,oBAAc,GAAmB,IAAI,CAAA;;YAErC,wBAAkB,GAAuB,IAAI,CAAA;;YAE7C,UAAI,GAAclE,iBAAS,CAAC,IAAI,CAAC;YAKjC,kBAAY,GAAiBkE,oBAAY,CAAC,IAAI,CAAA;YAC9C,cAAQ,GAAY,KAAK,CAAC;YAC1B,qBAAe,GAAU,EAAE,CAAC;;SAI7B;6BAAA;KAnCD,CAAoC,kBAAkB;;;QCJd,sCAAkB;QAA1D;YAAA,6EAQC;YAFC,oBAAc,GAAmBF,sBAAc,CAAC,OAAO,CAAA;;SAExD;iCAAA;KARD,CAAwC,kBAAkB;;;QCKtD,gCAAqB,wBAAkD;YAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;SACtE;QAED,uDAAsB,GAAtB,UAA0B,gBAAkC,EAAE,SAAc,EAAE,KAAgB,EAAE,OAAY,EAAE,IAAgB;YAAhB,qBAAA,EAAA,QAAgB;YAC5H,IAAI,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAI,SAAS,CAAC,CAAA;YACjF,IAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAI,OAAO,CAAQ,CAAC;YACzE,YAAY,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACpC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;YACxC,IAAI,IAAI,GAAG,CAAC,EAAE;gBACZ,IAAI,WAAW,GAAI,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;;gBAE9F,IAAI,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC;gBACpC,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC5C,OAAO,CAAC,SAAS,GAAG,YAAU,IAAM,CAAA;;gBAEpC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;gBAE1C,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;aAClC;SAGF;;;;gBAxBFrE,aAAU;;;gBALOwE,2BAAwB;;;;;QCiB1C,8BAAoB,cAA8B,EAAsB,gBAAkC,EACjG,sBAA0C,EAAS,eAAmC,EACtF,cAA8B,EAAU,wBAAkD,EACzF,cAA8B;YAHpB,mBAAc,GAAd,cAAc,CAAgB;YAAsB,qBAAgB,GAAhB,gBAAgB,CAAkB;YACjG,2BAAsB,GAAtB,sBAAsB,CAAoB;YAAS,oBAAe,GAAf,eAAe,CAAoB;YACtF,mBAAc,GAAd,cAAc,CAAgB;YAAU,6BAAwB,GAAxB,wBAAwB,CAA0B;YACzF,mBAAc,GAAd,cAAc,CAAgB;YAK9B,aAAQ,GAAG,IAAI3D,eAAY,EAAE,CAAC;YAExC,eAAU,GAAY,KAAK,CAAC;YAC5B,qBAAgB,GAAY,KAAK,CAAC;YAPhC,oBAAoB,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACrE;QASD,uCAAQ,GAAR;YACE,IAAG,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC9B,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAE,CAAC,GAAC,KAAK,GAAC,KAAK,CAAC;;gBAExD,IAAI,CAAC,OAAO,GAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAE,IAAI,GAAC,KAAK,GAAC,KAAK,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI,oBAAoB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAE/E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAErD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAG;gBACtD,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;aACvC;YACH,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACzF;QAGD,8CAAe,GAAf;YACE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtG;aAEF;SAEF;QAED,yCAAU,GAAV;YACE,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;SACnD;QAED,8CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,iDAAkB,GAAlB,UAAmB,SAAgB;YACjC,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAGD,gDAAiB,GAAjB;YACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACnC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAE,IAAI,CAAC,UAAU,CAAA;YACnC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACrD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;gBAC7F,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;aAC1G;SACF;;;IA1EM,2CAAsB,GAAG,IAAI,CAAC;;gBAPtCC,YAAS,SAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,mxCAA2C;iBAC5C;;;gBATQ,cAAc;gBADHb,sBAAgB,uBAgBmBC,WAAQ;gBAhBzBc,wBAAkB;gBAAlBA,wBAAkB;gBAGrBb,4BAAc;gBAAxCG,sCAAwB;gBACxB,cAAc;;;wBAkBpBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QCwBP,uCAAoB,sBAA8C,EAAS,eAAmC;YAA1F,2BAAsB,GAAtB,sBAAsB,CAAwB;YAAS,oBAAe,GAAf,eAAe,CAAoB;YAJrG,eAAU,GAAU,EAAE,CAAC;YAChC,cAAS,GAAQ,IAAI,CAAC;SAG6F;QAEnH,gDAAQ,GAAR;SAEC;QACD,uDAAe,GAAf;YAAA,iBAuWC;YAtWC,UAAU,CAAC;gBACT,IAAI,KAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;oBAC5B,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,UAAU,CAAC,KAAI,CAAC,UAAU,CAAC,CAAA;gBACnD,IAAI,KAAI,CAAC,SAAS,EAAE;oBAClB,KAAK,IAAM,GAAG,IAAI,KAAI,CAAC,SAAS,EAAE;wBAChC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE;4BAC9G,IAAM,OAAO,GAAG,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACpC,KAAI,CAAC,KAAK,GAAG,OAAO,CAAC;yBACtB;qBACF;iBACF;gBACD,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;gBACjB,QAAQ,KAAI,CAAC,aAAa,CAAC,WAAW;;oBAEpC,KAAK+C,gBAAQ,CAAC,IAAI;wBAChB,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;wBAChC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC3H,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC1D,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACpI,IAAI,CAAC,IAAI,GAAG/D,iBAAS,CAAC,IAAI,CAAC;wBAC3B,IAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC;wBAC/E,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;4BAC7C,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC9D,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;4BAC7C,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC9D,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACxB,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAmB,KAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBACnH,MAAM;oBAER,KAAK+D,gBAAQ,CAAC,IAAI;wBAChB,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;wBAChC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC3H,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC1D,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3D,IAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC;wBAC/E,IAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACpI,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;4BAC7C,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC9D,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;4BAC7C,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC9D,IAAI,CAAC,IAAI,GAAG/D,iBAAS,CAAC,IAAI,CAAC;wBAC3B,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACxB,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAmB,KAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBACnH,MAAM;oBAER,KAAK+D,gBAAQ,CAAC,KAAK;wBACjB,IAAI,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;wBACjC,KAAK,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC5H,KAAK,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC7D,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC3D,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAChE,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC5D,KAAK,CAAC,kBAAkB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC;wBAChF,KAAK,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACrI,KAAK,CAAC,IAAI,GAAG/D,iBAAS,CAAC,KAAK,CAAC;wBAC7B,KAAK,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACzB,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAmB,KAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;wBACpH,MAAM;oBAER,KAAK+D,gBAAQ,CAAC,MAAM;wBAClB,IAAI,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC7H,MAAM,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC9D,MAAM,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC5D,MAAM,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACjE,MAAM,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC7D,MAAM,CAAC,kBAAkB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC;wBACjF,MAAM,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACtI,MAAM,CAAC,IAAI,GAAG/D,iBAAS,CAAC,MAAM,CAAC;wBAC/B,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;wBACnC,IAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAC;4BAC/C,WAAW,CAAC,EAAE,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAA;4BACjE,WAAW,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAA;yBACtE;wBACD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;wBACjC,MAAM,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBAC1B,MAAM,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACjE,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAmB,KAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;wBACrH,MAAM;;oBAGR,KAAK+D,gBAAQ,CAAC,IAAI;wBAChB,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBACnC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC3H,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC1D,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACpI,IAAI,CAAC,UAAU,GAAG5D,kBAAU,CAAC,QAAQ,CAAC;wBACtC,IAAI,CAAC,UAAU,GAAGE,kBAAU,CAAC,MAAM,CAAA;wBACnC,IAAI,CAAC,SAAS,GAAGD,iBAAS,CAAC,KAAK,CAAA;wBAChC,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACxB,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAqB,KAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBACvH,MAAM;oBAER,KAAK2D,gBAAQ,CAAC,QAAQ;wBACpB,IAAI,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBACvC,QAAQ,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC/H,QAAQ,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAChE,QAAQ,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC9D,QAAQ,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACnE,QAAQ,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC/D,QAAQ,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACxI,QAAQ,CAAC,UAAU,GAAG5D,kBAAU,CAAC,IAAI,CAAC;wBACtC,QAAQ,CAAC,UAAU,GAAGE,kBAAU,CAAC,MAAM,CAAA;wBACvC,QAAQ,CAAC,SAAS,GAAGD,iBAAS,CAAC,KAAK,CAAA;wBACpC,QAAQ,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBAC5B,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAqB,KAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;wBAC3H,MAAM;oBAER,KAAK2D,gBAAQ,CAAC,IAAI;wBAChB,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBACnC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC3H,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC1D,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACpI,IAAI,CAAC,UAAU,GAAG5D,kBAAU,CAAC,KAAK,CAAC;wBACnC,IAAI,CAAC,UAAU,GAAGE,kBAAU,CAAC,MAAM,CAAA;wBACnC,IAAI,CAAC,SAAS,GAAGD,iBAAS,CAAC,KAAK,CAAA;wBAChC,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACxB,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAqB,KAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBACvH,MAAM;;oBAGR,KAAK2D,gBAAQ,CAAC,YAAY;wBACxB,IAAI,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;wBACzC,YAAY,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBACnI,YAAY,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACpE,YAAY,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAClE,YAAY,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACvE,YAAY,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBACnE,YAAY,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBAC5I,YAAY,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACtE,YAAY,CAAC,eAAe,GAAG,IAAI,CAAA;wBACnC,YAAY,CAAC,YAAY,GAAG,KAAK,CAAA;wBACjC,YAAY,CAAC,iBAAiB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5E,YAAY,CAAC,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC;wBACxC,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,KAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;wBACrI,MAAM;oBACR,KAAKA,gBAAQ,CAAC,aAAa;wBACzB,IAAI,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;wBAC1C,aAAa,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBACpI,aAAa,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACrE,aAAa,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBACnE,aAAa,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACxE,aAAa,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBACpE,aAAa,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBAC7I,aAAa,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACvE,aAAa,CAAC,eAAe,GAAG,KAAK,CAAA;wBACrC,aAAa,CAAC,YAAY,GAAG,KAAK,CAAA;wBAClC,aAAa,CAAC,iBAAiB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC7E,aAAa,CAAC,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC;wBACzC,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,KAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;wBACtI,MAAM;oBACR,KAAKA,gBAAQ,CAAC,IAAI;wBAChB,IAAI,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;wBACjC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC3H,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC1D,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACpI,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBAC9D,IAAI,CAAC,eAAe,GAAG,CAAC,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACpE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;wBACzB,IAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACpE,IAAI,CAAC,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC;wBAChC,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,KAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBAC7H,MAAM;oBACR,KAAKA,gBAAQ,CAAC,SAAS;wBACrB,IAAI,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;wBACtC,SAAS,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAChI,SAAS,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACjE,SAAS,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC/D,SAAS,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACpE,SAAS,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAChE,SAAS,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACzI,SAAS,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACnE,SAAS,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACnE,SAAS,CAAC,eAAe,GAAG,CAAC,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACzE,SAAS,CAAC,YAAY,GAAG,KAAK,CAAA;wBAC9B,SAAS,CAAC,iBAAiB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACzE,SAAS,CAAC,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC;wBACrC,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,KAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;wBAClI,MAAM;oBACR,KAAKA,gBAAQ,CAAC,aAAa;wBACzB,IAAI,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;wBAC1C,aAAa,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBACpI,aAAa,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACrE,aAAa,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBACnE,aAAa,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACxE,aAAa,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBACpE,aAAa,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBAC7I,aAAa,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACvE,aAAa,CAAC,eAAe,GAAG,CAAC,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBAC7E,aAAa,CAAC,YAAY,GAAG,KAAK,CAAA;wBAClC,aAAa,CAAC,iBAAiB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC7E,aAAa,CAAC,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC;wBACzC,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,KAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;wBACtI,MAAM;oBACR,KAAKA,gBAAQ,CAAC,OAAO;wBACnB,IAAI,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;wBACpC,OAAO,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC9H,OAAO,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC/D,OAAO,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC7D,OAAO,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAClE,OAAO,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC9D,OAAO,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACvI,OAAO,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACjE,OAAO,CAAC,eAAe,GAAG,CAAC,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;wBACvE,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;wBAC5B,OAAO,CAAC,iBAAiB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACvE,OAAO,CAAC,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC;wBACnC,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,KAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;wBAChI,MAAM;;oBAGR,KAAKA,gBAAQ,CAAC,IAAI;wBAChB,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBACnC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC3H,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC1D,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACpI,IAAI,CAAC,eAAe,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAA;wBACxE,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACxB,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAsB,KAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBACzH,MAAM;oBACR,KAAKA,gBAAQ,CAAC,SAAS;wBACrB,IAAI,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBACxC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC3H,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC1D,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACpI,SAAS,CAAC,sBAAsB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAA;wBACpF,SAAS,CAAC,YAAY,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAA;wBACvE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;wBAChC,SAAS,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBAC7B,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAsB,KAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;wBAC9H,MAAM;;oBAER,KAAKA,gBAAQ,CAAC,KAAK;wBACjB,IAAI,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;wBACrC,KAAK,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC5H,KAAK,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC7D,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC3D,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAChE,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC5D,KAAK,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACrI,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe;4BACnD,KAAK,CAAC,eAAe,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAA;wBAC3E,KAAK,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACzB,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAyB,KAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,KAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;wBAChI,MAAM;oBACR,KAAKA,gBAAQ,CAAC,UAAU;wBACtB,IAAI,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAC;wBAC1C,UAAU,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBACjI,UAAU,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAClE,UAAU,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAChE,UAAU,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACrE,UAAU,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBACjE,UAAU,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBAC1I,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe;4BACnD,UAAU,CAAC,eAAe,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAA;wBAChF,UAAU,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBAC9B,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAyB,KAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,KAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;wBACrI,MAAM;;oBAER,KAAKA,gBAAQ,CAAC,MAAM;wBAClB,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;wBAChC,MAAM,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC7H,MAAM,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC9D,MAAM,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC5D,MAAM,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACjE,MAAM,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC7D,MAAM,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACtI,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;wBAC1B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC9B,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBACjC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAA;wBAC/B,MAAM,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBAC1B,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAiB,KAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;wBACjH,MAAM;;oBAER,KAAKA,gBAAQ,CAAC,aAAa;wBACzB,IAAI,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;wBAC1C,aAAa,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBACpI,aAAa,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACrE,aAAa,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBACnE,aAAa,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACxE,aAAa,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBACpE,aAAa,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBAC7I,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;4BAC7C,aAAa,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACvE,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;4BAC7C,aAAa,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBACvE,aAAa,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;wBAC5D,aAAa,CAAC,cAAc,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,cAAc,CAAA;wBAC/E,aAAa,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACjC,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAoB,KAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;wBAC9H,MAAM;;oBAER,KAAKA,gBAAQ,CAAC,IAAI;wBAChB,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBACnC,IAAI,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC3H,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC5D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC1D,IAAI,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBAC/D,IAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC3D,IAAI,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACpI,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;4BAC7C,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC9D,IAAI,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;4BAC7C,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC9D,IAAI,CAAC,MAAM,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;wBACrD,IAAI,CAAC,cAAc,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,cAAc,CAAA;wBACtE,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBACxB,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAsB,KAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBACzH,MAAM;;oBAER,KAAKA,gBAAQ,CAAC,OAAO;wBACnB,IAAI,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;wBACvC,OAAO,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC9H,OAAO,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAC/D,OAAO,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC7D,OAAO,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC9D,OAAO,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBAC3B,OAAO,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACvI,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAuB,KAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;wBAC9H,MAAM;;oBAER,KAAKA,gBAAQ,CAAC,QAAQ;wBACpB,IAAI,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;wBAC5C,QAAQ,CAAC,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBAC/H,QAAQ,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;wBAChE,QAAQ,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;wBAC9D,QAAQ,CAAC,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;wBACnE,QAAQ,CAAC,QAAQ,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC/D,QAAQ,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;wBAC5B,QAAQ,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;wBACxI,KAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAA2B,KAAI,CAAC,IAAI,EAAE,wBAAwB,EAAE,KAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;wBACvI,MAAM;oBACR;wBACE,MAAM;iBACT;aACF,EAAE,CAAC,CAAC,CAAC;SACP;QACD,mDAAW,GAAX,UAAY,OAAsB;YAChC,IAAI,OAAO,CAAC,UAAU;gBACpB,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE;oBACpC,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;oBAC3I,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;oBAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;oBACjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;oBAC9B,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW;;wBAEpC,KAAKA,gBAAQ,CAAC,IAAI;4BAChB,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;4BAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAChI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACpI,IAAI,CAAC,IAAI,GAAG/D,iBAAS,CAAC,IAAI,CAAC;4BAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gCAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gCAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;4BACnB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAmB,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BACnH,MAAM;wBAER,KAAK+D,gBAAQ,CAAC,IAAI;4BAChB,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;4BAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAChI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACpI,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gCAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gCAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,IAAI,CAAC,IAAI,GAAG/D,iBAAS,CAAC,IAAI,CAAC;4BAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;4BACnB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAmB,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BACnH,MAAM;wBAER,KAAK+D,gBAAQ,CAAC,KAAK;4BACjB,IAAI,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;4BACjC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACjI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC7D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC3D,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAChE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC5D,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACrI,KAAK,CAAC,IAAI,GAAG/D,iBAAS,CAAC,KAAK,CAAC;4BAC7B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;4BACpB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAmB,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;4BACpH,MAAM;wBAER,KAAK+D,gBAAQ,CAAC,MAAM;4BAClB,IAAI,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;4BAClC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAClI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC5D,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACjE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC7D,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACtI,MAAM,CAAC,IAAI,GAAG/D,iBAAS,CAAC,MAAM,CAAC;4BAC/B,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;4BACnC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;4BACjC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;4BACrB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAmB,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;4BACrH,MAAM;;wBAGR,KAAK+D,gBAAQ,CAAC,IAAI;4BAChB,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;4BACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAChI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACpI,IAAI,CAAC,UAAU,GAAG5D,kBAAU,CAAC,QAAQ,CAAC;4BACtC,IAAI,CAAC,UAAU,GAAGE,kBAAU,CAAC,MAAM,CAAA;4BACnC,IAAI,CAAC,SAAS,GAAGD,iBAAS,CAAC,KAAK,CAAA;4BAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;4BACnB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAqB,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BACvH,MAAM;wBAER,KAAK2D,gBAAQ,CAAC,QAAQ;4BACpB,IAAI,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;4BACvC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACpI,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAChE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC9D,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACnE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC/D,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACxI,QAAQ,CAAC,UAAU,GAAG5D,kBAAU,CAAC,IAAI,CAAC;4BACtC,QAAQ,CAAC,UAAU,GAAGE,kBAAU,CAAC,MAAM,CAAA;4BACvC,QAAQ,CAAC,SAAS,GAAGD,iBAAS,CAAC,KAAK,CAAA;4BACpC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAqB,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;4BAC3H,MAAM;wBAER,KAAK2D,gBAAQ,CAAC,IAAI;4BAChB,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;4BACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAChI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACpI,IAAI,CAAC,UAAU,GAAG5D,kBAAU,CAAC,KAAK,CAAC;4BACnC,IAAI,CAAC,UAAU,GAAGE,kBAAU,CAAC,MAAM,CAAA;4BACnC,IAAI,CAAC,SAAS,GAAGD,iBAAS,CAAC,KAAK,CAAA;4BAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;4BACnB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAqB,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BACvH,MAAM;;wBAGR,KAAK2D,gBAAQ,CAAC,YAAY;4BACxB,IAAI,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;4BACzC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACxI,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACpE,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAClE,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACvE,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BACnE,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BAC5I,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACtE,YAAY,CAAC,eAAe,GAAG,IAAI,CAAA;4BACnC,YAAY,CAAC,YAAY,GAAG,KAAK,CAAA;4BACjC,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5E,YAAY,CAAC,aAAa,GAAG,KAAK,CAAC;4BACnC,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;4BACrI,MAAM;wBACR,KAAKA,gBAAQ,CAAC,aAAa;4BACzB,IAAI,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;4BAC1C,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACzI,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACrE,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BACnE,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACxE,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BACpE,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BAC7I,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACvE,aAAa,CAAC,eAAe,GAAG,KAAK,CAAA;4BACrC,aAAa,CAAC,YAAY,GAAG,KAAK,CAAA;4BAClC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC7E,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC;4BACpC,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;4BACtI,MAAM;wBACR,KAAKA,gBAAQ,CAAC,IAAI;4BAChB,IAAI,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;4BACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAChI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACpI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BAC9D,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACpE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;4BACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACpE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;4BAC3B,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BAC7H,MAAM;wBACR,KAAKA,gBAAQ,CAAC,SAAS;4BACrB,IAAI,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;4BACtC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACrI,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACjE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC/D,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACpE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAChE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACzI,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACnE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACnE,SAAS,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACzE,SAAS,CAAC,YAAY,GAAG,KAAK,CAAA;4BAC9B,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACzE,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC;4BAChC,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;4BAClI,MAAM;wBACR,KAAKA,gBAAQ,CAAC,aAAa;4BACzB,IAAI,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;4BAC1C,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACzI,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACrE,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BACnE,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACxE,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BACpE,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BAC7I,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACvE,aAAa,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BAC7E,aAAa,CAAC,YAAY,GAAG,KAAK,CAAA;4BAClC,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC7E,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC;4BACpC,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;4BACtI,MAAM;wBACR,KAAKA,gBAAQ,CAAC,OAAO;4BACnB,IAAI,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;4BACpC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACnI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC/D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC7D,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAClE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC9D,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACvI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACjE,OAAO,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAA;4BACvE,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;4BAC5B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACvE,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;4BAC9B,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAwB,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;4BAChI,MAAM;;wBAGR,KAAKA,gBAAQ,CAAC,IAAI;4BAChB,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;4BACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAChI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACpI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAA;4BACxE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;4BACnB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAsB,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BACzH,MAAM;wBACR,KAAKA,gBAAQ,CAAC,SAAS;4BACrB,IAAI,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;4BACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAChI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACpI,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAA;4BACpF,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAA;4BACvE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;4BAChC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;4BACxB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAsB,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;4BAC9H,MAAM;;wBAER,KAAKA,gBAAQ,CAAC,KAAK;4BACjB,IAAI,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;4BACrC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACjI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC7D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC3D,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAChE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC5D,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACrI,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe;gCACnD,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAA;4BAC3E,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;4BACpB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAyB,IAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;4BAChI,MAAM;wBACR,KAAKA,gBAAQ,CAAC,UAAU;4BACtB,IAAI,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAC;4BAC1C,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACtI,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAClE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAChE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACrE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BACjE,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BAC1I,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe;gCACnD,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,CAAA;4BAChF,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;4BACzB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAyB,IAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;4BACrI,MAAM;;wBAER,KAAKA,gBAAQ,CAAC,MAAM;4BAClB,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;4BAChC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAClI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC5D,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACjE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC7D,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACtI,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;4BAC1B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;4BAC9B,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;4BACjC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAA;4BAC/B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;4BACrB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAiB,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;4BACjH,MAAM;;wBAER,KAAKA,gBAAQ,CAAC,aAAa;4BACzB,IAAI,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;4BAC1C,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACzI,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACrE,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BACnE,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACxE,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BACpE,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BAC7I,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gCAC7C,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACvE,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gCAC7C,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BACvE,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;4BAC5D,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,cAAc,CAAA;4BAC/E,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAoB,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;4BAC9H,MAAM;;wBAER,KAAKA,gBAAQ,CAAC,IAAI;4BAChB,IAAI,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;4BACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BAChI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACpI,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gCAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS;gCAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;4BACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,cAAc,CAAA;4BACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;4BACnB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAsB,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BACzH,MAAM;;wBAER,KAAKA,gBAAQ,CAAC,OAAO;4BACnB,IAAI,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;4BACvC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACnI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAC/D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC7D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC9D,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACvI,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;4BACtB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAuB,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;4BAC9H,MAAM;;wBAER,KAAKA,gBAAQ,CAAC,QAAQ;4BACpB,IAAI,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;4BAC5C,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACpI,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAA;4BAChE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAA;4BAC9D,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC;4BACnE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC/D,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;4BACxI,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAA2B,IAAI,CAAC,IAAI,EAAE,wBAAwB,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;4BACvI,MAAM;wBACR;4BACE,MAAM;qBACT;iBAEF;SAEJ;;;;gBAvtBFrD,YAAS,SAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,mDAAsD;iBACvD;;;gBAhBQ,sBAAsB;gBApBXE,wBAAkB;;;uBAuCnCS,YAAS,SAAC,MAAM,EAAE,EAAE,IAAI,EAAE+C,mBAAgB,EAAE;wBAC5CrD,QAAK;6BACLA,QAAK;gCACLA,QAAK;gCACLA,QAAK;6BACLA,QAAK;;;;QClCN;SAAiB;QAEjB,6CAAQ,GAAR;SACC;;;;gBAZFL,YAAS,SAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,mQAAmD;iBACpD;;;;4BAEEK,QAAK;6BACLA,QAAK;4BACLA,QAAK;;;;QCQN,gCAAmB,cAA6B;YAA7B,mBAAc,GAAd,cAAc,CAAe;YAJhD,UAAK,GAAa,EAAE,CAAA;YAEpB,kBAAa,GAAQ,EAAE,CAAC;SAE6B;QAErD,yCAAQ,GAAR;YAAA,iBAqDC;YApDC,IAAI,CAAC,aAAa,GAAG,IAAIQ,eAAS,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAC,CAAC,EACtC;gBACE,IAAI,CAAC,aAAa,GAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACtE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACxB;aACF;;gBAGD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE;oBAClE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACxB;YACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,UAAC,GAAG;;gBAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,KAAK,IAAM,GAAG,IAAI,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;oBAC7C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;wBAC1E,IAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAClC,IAAI,IAAI;4BACN,GAAC,WAAW,CAAC,CAAC,CAAC,cAAK,GAAC,WAAW,CAAC,CAAC,CAAC,IAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAE;+BAC1F,CAAA;wBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;wBACnB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;4BACrC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;qBACjC;iBACF;wCACQ,KAAK;oBACZ,IAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;oBAC7B,IAAI,SAAS,GAAG,EAAE,CAAA;oBAClB,IAAI,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,GAAG,CAAC,GAAA,CAAC,CAAA;oBACzD,KAAK,IAAI,OAAK,GAAG,CAAC,EAAE,OAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAK,EAAE,EAAE;wBAC5D,IAAM,eAAe,GAAG,gBAAgB,CAAC,OAAK,CAAC,CAAC;wBAChD,KAAK,IAAM,GAAG,IAAI,eAAe,EAAE;4BACjC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;gCAC9D,IAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;gCACrC,KAAK,IAAM,KAAG,IAAI,OAAO,EAAE;oCACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAG,CAAC,EAAE;wCACtD,IAAM,KAAK,GAAG,OAAO,CAAC,KAAG,CAAC,CAAC;wCAC3B,SAAS,CAAC,KAAG,CAAC,GAAG,KAAK,CAAA;qCACvB;iCACF;6BACF;yBACF;qBACF;oBACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;;gBAlBxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;4BAA5C,KAAK;iBAmBb;gBACD,KAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;aACrC,CAAC,CAAA;SAEH;QAED,2CAAU,GAAV,UAAW,KAAK;;YAAhB,iBA2BC;YA1BC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU;gBAC/E,OAAO;YACT,IAAI,eAAe,GAAU,EAAE,CAAA;YAC/B,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,cAAc,CAAC,IAAI,GAAA,CAAC,CAAA;YACjF,KAAK,IAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;oBAC1E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACxD,IAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpC,IAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAClC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,KAAG,OAAO,GAAG,KAAO,EAAE;4BAC3D,IAAM,SAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BACjD,eAAe,CAAC,IAAI,WAAG,GAAC,GAAG,IAAG,SAAO,MAAG,CAAA;yBACzC;qBACF;iBACF;aACF;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC3D,IAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACvC,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;oBACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;wBACtD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;qBACtC;iBACF;aACF;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,IAAI,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAA,CAAC,CAAA;SAClE;QAED,wCAAO,GAAP;YACE,IAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;gBAEnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;SACtD;;;;gBAtGAb,YAAS,SAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,y5DAA8C;iBAC/C;;;gBANQX,4BAAc;;;wBAQpBgB,QAAK;0BACLA,QAAK;;;;QCZR;YAKI,cAAS,GAAO,EAAE,CAAC;SACtB;6BAAA;KAAA;;ICND;QAAA;SAWC;2BAAA;KAAA;;;QCIC,4BAAoB,cAA8B,EAAU,qBAA4C,EAC/F,oBAAwC,EAAS,cAA8B,EAC9E,wBAAkD,EAAU,cAA8B;YAFpG,iBAGC;YAHmB,mBAAc,GAAd,cAAc,CAAgB;YAAU,0BAAqB,GAArB,qBAAqB,CAAuB;YAC/F,yBAAoB,GAApB,oBAAoB,CAAoB;YAAS,mBAAc,GAAd,cAAc,CAAgB;YAC9E,6BAAwB,GAAxB,wBAAwB,CAA0B;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAI1F,aAAQ,GAAG,IAAIP,eAAY,EAAE,CAAC;YAGxC,oBAAe,GAAG,EAAE,CAAC;YACrB,yBAAoB,GAAG,EAAE,CAAC;YAE1B,mBAAc,GAAmB,IAAI,cAAc,EAAE,CAAC;YAkEtD,eAAU,GAAG;gBACX,KAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;aACnD,CAAA;;YAyBD,6BAAwB,GAAG;gBACzB,KAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAI,CAAC,oBAAoB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aAC5G,CAAA;;YAED,0BAAqB,GAAG;gBACtB,KAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAI,CAAC,oBAAoB,EAAE,KAAI,CAAC,eAAe,EAAE,KAAI,CAAC,OAAO,CAAC,CAAA;aACzG,CAAA;;YAGD,2BAAsB,GAAG,UAAC,gBAAgB;gBACxC,KAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAI,CAAC,oBAAoB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC9G,CAAA;;YAED,wBAAmB,GAAG,UAAC,gBAAgB;gBACrC,KAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAI,CAAC,oBAAoB,EAAE,KAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;aAC3G,CAAA;;YAED,YAAO,GAAG;gBACR,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAI,CAAC,oBAAoB,CAAC,CAAA;aACvD,CAAA;SAzHA;QAYD,qCAAQ,GAAR;YAAA,iBAsCC;YArCC,IAAG,IAAI,CAAC,OAAO,CAAC,cAAc;gBAC9B,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAE,CAAC,GAAC,KAAK,GAAC,KAAK,CAAC;;gBAExD,IAAI,CAAC,OAAO,GAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAE,IAAI,GAAC,KAAK,GAAC,KAAK,CAAC;YAChE,IAAI,CAAC,wBAAwB,CAAC,cAAc,GAAG,KAAK,CAAA;YAEnD,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAEvD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEnE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExF,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAACR,gBAAU,CAAC,QAAQ,CAAC,CAAC;aAChD;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;gBAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACvD,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;iBACpD;aAEF;YACD,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9D,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;aACrC;YAED,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAC,KAAK;gBACjD,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;gBAC7B,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B,CAAC,CAAA;SACH;QAED,sCAAS,GAAT;YAAA,iBAiBC;YAhBC,IAAI,KAAK,GAAiB,IAAI,YAAY,EAAE,CAAC;YAC7C,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;YACnE,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC;YACvE,KAAK,CAAC,gBAAgB,GAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACtD,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC3D,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvC,IAAI,mBAAmB,GAAG,IAAI8B,iCAAmB,EAAE,CAAA;YACnD,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1C,mBAAmB,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,SAAS,CAAC,UAAC,GAAG;gBAC5G,IAAI,KAAK,GAAG,GAAU,CAAA;gBACtB,KAAI,CAAC,cAAc,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBAClC,KAAI,CAAC,cAAc,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;gBACxD,KAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;gBAChD,KAAI,CAAC,KAAK,GAAG,yBAAyB,GAAG,KAAI,CAAC,cAAc,CAAC,SAAS,CAAC;aACxE,CAAC,CAAA;SACH;QAED,4CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACzD;QAMD,4CAAe,GAAf;YACE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAA;SACtC;QAED,+CAAkB,GAAlB,UAAmB,SAAS;YAE1B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3F;QAGD,yCAAY,GAAZ,UAAa,SAAS;YACpB,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SACrD;;;;gBA7GFrB,YAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,s+DAAyC;iBAC1C;;;gBAVQ,cAAc;gBACY2B,mCAAqB;gBAFwBzB,wBAAkB;gBAEnBb,4BAAc;gBAApFG,sCAAwB;gBACxB,cAAc;;;wBAepBa,QAAK;0BACLA,QAAK;2BACLC,SAAM;;;;QCJP,sCAAoB,MAAc,EAAQ,cAA8B;YAApD,WAAM,GAAN,MAAM,CAAQ;YAAQ,mBAAc,GAAd,cAAc,CAAgB;YAFjE,iBAAY,GAAG+C,gBAAQ,CAAC;SAI9B;QAED,gDAAS,GAAT,UAAU,GAAW;YACnB,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SAClD;QAED,+CAAQ,GAAR;YACE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC;SAC1D;;;;gBArBFrD,YAAS,SAAC;oBACT,QAAQ,EAAE,4BAA4B;oBACtC,mwOAAqD;iBACtD;;;gBAPQgC,aAAM;gBACN3C,4BAAc;;;wBASpBgB,QAAK;0BACLA,QAAK;;;;QCLN,0BAAmB,QAAkB;YAAlB,aAAQ,GAAR,QAAQ,CAAU;SAAK;QAC1C,oCAAS,GAAT,UAAU,KAAW;YACnB,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACvE,OAAO,WAAW,CAAC;SACpB;;;;gBATFsD,OAAI,SAAC;oBACJ,IAAI,EAAE,cAAc;iBACrB;;;gBALQ1D,eAAQ;;;;QCQf,sBAAmB,QAAkB;YAAlB,aAAQ,GAAR,QAAQ,CAAU;SAAG;QACxC,gCAAS,GAAT,UAAU,KAAW;YACnB,IAAI,WAAW,GAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC9D,OAAO,WAAW,CAAC;SACpB;;;;gBATF0D,OAAI,SAAC;oBACJ,IAAI,EAAE,UAAU;iBACjB;;;gBALQ1D,eAAQ;;;ACEL2D;IAAZ,WAAY,YAAY;QACpB,yDAAa,CAAA;QACb,+DAAgB,CAAA;QAChB,6DAAe,CAAA;IAEjB,CAAC,EALSA,oBAAY,KAAZA,oBAAY;;ICGxB,IAAM,IAAI,GAAG,eAAS,CAAC;;IAEvB,IAAM,mBAAmB,GAAG,+4LA0H3B,CAAC;IAEF,IAAM,gBAAgB,GAAG,qpBAiCxB,CAAC;IAEF,IAAM,mCAAmC,GAAQ;QAC/C,OAAO,EAAEC,uBAAiB;QAC1B,WAAW,EAAEC,aAAU,CAAC,cAAM,OAAA,mBAAmB,GAAA,CAAC;QAClD,KAAK,EAAE,IAAI;KACZ,CAAC;;QAOF;YAQE,aAAQ,GAAW,EAAE,CAAC;YACf,SAAI,GAAe,EAAE,CAAC;YACrB,sBAAiB,GAAe,IAAI,CAAC;YACrC,qBAAgB,GAAqB,IAAI,CAAC;YAC3C,qBAAgB,GAAGF,oBAAY,CAAC;YAE9B,0BAAqB,GAAY,KAAK,CAAC;YACvC,kBAAa,GAAY,IAAI,CAAC;YAC9B,eAAU,GAAY,IAAI,CAAC;YAC3B,aAAQ,GAAiBA,oBAAY,CAAC,YAAY,CAAC;YACnD,gBAAW,GAAW,EAAE,CAAC;YACzB,oBAAe,GAAY,IAAI,CAAC;YAChC,YAAO,GAAQ,IAAI,CAAC;YACpB,oBAAe,GAAQ,IAAI,CAAC;YACrC,iBAAY,GAAW,MAAM,CAAC;YACrB,2BAAsB,GAAW,CAAC,CAAC;YACnC,sBAAiB,GAAY,KAAK,CAAC;YACnC,4BAAuB,GAAW,CAAC,CAAC;YACnC,kBAAa,GAAmC,IAAI9D,eAAY,EAAE,CAAC;YACnE,qBAAgB,GAAuB,IAAIA,eAAY,EAAE,CAAC;YAC1D,qBAAgB,GAA0B,IAAIA,eAAY,EAAE,CAAC;YAC7D,gBAAW,GAAuB,IAAIA,eAAY,EAAE,CAAC;;;;;;;SAqHhE;QApHC,4CAAc,GAAd;YACE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,OAAO,EAAE,CAAC;aACX;YACD,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QAEO,yCAAW,GAAX,UAAY,IAAY,EAAE,GAAQ;YACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACtB,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;aAC9B;SACF;QAED,2CAAa,GAAb,UAAc,QAA0B;;YACtC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAC,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,EAAE;gBACrD,OAAO;aACR;YAED,IAAI,QAAQ,CAAC,KAAK,KAAK,EAAE,EAAE;gBACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aACjD;SACF;QAED,oCAAM,GAAN,UAAO,QAA0B;;YAC/B,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,GAAG;oBACL,GAAC,IAAI,CAAC,YAAY,IAAG,QAAQ,CAAC,KAAK;uBACpC,CAAC;gBACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;aAC5B;YACD,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;SACrB;QAEO,8CAAgB,GAAhB,UAAiB,GAAW;YAClC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;gBACnB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAC9B;SACF;QAED,uCAAS,GAAT,UAAU,WAAgB;YACxB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;gBACnC,OAAO;aACR;YACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,WAAW,KAAK,GAAG,GAAA,CAAC,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;SACzC;QAED,kDAAoB,GAApB;YACE,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;SAC7F;QAED,0CAAY,GAAZ,UAAa,GAAQ;YACnB,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;gBAC5D,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC,aAAa,CAAC;SAC3B;QAED,+CAAiB,GAAjB,UAAkB,CAAiB;;YACjC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC9B,IAAI,CAAC,gBAAgB;oBACnB,GAAC,IAAI,CAAC,YAAY,IAAG,CAAC,CAAC,KAAK;wBAC5B,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC/B;YACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;QAED,gDAAkB,GAAlB,UAAmB,CAAM;YACvB,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;gBAChD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aAC9B;SACF;QAED,wCAAU,GAAV,UAAW,KAAU;YACnB,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE;gBACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aACnB;SACF;QAED,8CAAgB,GAAhB,UAAiB,EAAO;YACtB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC5B;QAED,+CAAiB,GAAjB,UAAkB,EAAO;YACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC7B;QAED,+CAAiB,GAAjB,UAAkB,IAAY;YAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,QAAQ,GAAG,EAAE,CAAA;YACjB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACrB,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;gBAEjE,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACvC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;SAC/B;QAED,oCAAM,GAAN;YACE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;;;;gBA3IFE,YAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,QAAQ,EAAE,mBAAmB;oBAE7B,SAAS,EAAE,CAAC,mCAAmC,CAAC;6BADvC,gBAAgB;iBAE1B;;;0BAQEK,QAAK;wCACLA,QAAK;gCACLA,QAAK;6BACLA,QAAK;2BACLA,QAAK;8BACLA,QAAK;kCACLA,QAAK;0BACLA,QAAK;kCACLA,QAAK;yCAELA,QAAK;oCACLA,QAAK;0CACLA,QAAK;gCACLC,SAAM;mCACNA,SAAM;mCACNA,SAAM;8BACNA,SAAM;;;QCxHE,QAAqD;AAErDyD,iCAAsB;aA0Gc,cAAc,CAAC,QAAQ;IAtGtE;IACA;IACA;IACA;IACA;IACA;;QA+IE,4BAAoB,QAAkB,EAAU,SAA2B;YAAvD,aAAQ,GAAR,QAAQ,CAAU;YAAU,cAAS,GAAT,SAAS,CAAkB;YACzEA,mBAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;SAE7B;;;;gBAjJFC,WAAQ,SAAC;oBACR,YAAY,EAAE;wBACZ,kBAAkB;wBAClB,mBAAmB;wBACnB,4BAA4B;wBAC5B,gBAAgB;wBAChB,iBAAiB;wBACjB,6BAA6B;wBAC7B,iBAAiB;wBACjB,qBAAqB;wBACrB,cAAc;wBACd,oBAAoB;wBACpB,mBAAmB;wBACnB,+BAA+B;;wBAE/B,sBAAsB;wBACtB,6BAA6B;wBAC7B,iBAAiB;wBACjB,wBAAwB;wBACxB,4BAA4B;wBAC5B,kBAAkB;wBAClB,eAAe;wBACf,qBAAqB;wBACrB,oBAAoB;wBACpB,aAAa;wBACb,0BAA0B;wBAC1B,iBAAiB;wBACjB,6BAA6B;wBAC7B,uBAAuB;wBACvB,0BAA0B;wBAC1B,sBAAsB;wBACtB,gBAAgB;wBAChB,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,4BAA4B;qBAC7B;oBACD,OAAO,EAAE;wBACPC,mBAAY;wBACZC,sCAAoB;wBACpBC,uBAAc;wBACdC,+BAAkB;wBAClBC,+BAAkB;wBAClBC,kBAAa,CAAC,OAAO,CAAC;;4BAEpB,MAAM,EAAEpC,yBAAW,CAAC,iBAAiB;4BACrC,SAAS,EAAE,CAAC,QAAQ,CAAC;yBACtB,CAAC;wBACFqC,sDAA+B;wBAC/BC,0BAAkB;wBAClBC,uCAAsB;wBACtBC,kCAAkB;wBAClBC,qBAAS;wBACTC,6BAAiB;wBACjBC,8BAAgB;wBAChBC,8BAAa;wBACbC,qBAAa,CAAC,OAAO,EAAE;wBACvBC,iCAAmB;wBACnBC,gCAAoB;wBACpBC,qCAAqB;wBACrBC,oDAAwB;wBACxBC,iDAA2B,CAAC,OAAO,EAAE;wBACrCC,gCAAiB;wBACjBC,sCAAuB;wBACvBrB,mBAAY;wBACZsB,uBAAa,CAAC,OAAO,EAAE;wBACvBC,yBAAmB;wBACnBC,eAAU;wBACVC,mBAAY;wBACZC,sBAAY,CAAC,OAAO,EAAE;wBACtBC,uBAAgB;wBAChBC,mCAAoB,CAAC,OAAO,EAAE;wBAC9BC,qBAAa;wBACbC,iCAAmB,CAAC,UAAU,EAAE;wBAChCC,iBAAW;wBACXC,6BAAkB,CAAC,OAAO,EAAE;wBAC5BC,yBAAe,CAAC,OAAO,EAAE;wBACzBC,iCAAmB;wBACnBC,2CAAqB;wBACrBC,iCAAmB;wBACnBC,2BAAe,CAAC,OAAO,EAAE;wBACzBC,gCAAiB;qBAElB;oBACD,SAAS,EAAE;wBACT,sBAAsB;wBACtB,cAAc;wBACd,4BAA4B;wBAC5BC,uBAAgB;wBAChBtG,wBAAkB;wBAClBc,oBAAQ;wBACR8B,0BAAc;wBACd7C,eAAQ;wBACR,gBAAgB;wBAChB,YAAY;wBACZ,sBAAsB;wBACtB,EAAE,OAAO,EAAEwG,mCAAoB,EAAE,QAAQ,IAA2B,EAAE;qBAGvE;oBACD,OAAO,EAAE;wBACPC,mBAAgB;qBACjB;oBAED,OAAO,EAAE;wBACP,kBAAkB;wBAClB,mBAAmB;wBACnB,4BAA4B;wBAC5B,gBAAgB;wBAChB,iBAAiB;wBACjB,6BAA6B;wBAC7B,iBAAiB;wBACjB,qBAAqB;wBACrB,cAAc;wBACd,oBAAoB;wBACpB,mBAAmB;wBACnB,+BAA+B;wBAC/B,sBAAsB;wBACtB,6BAA6B;wBAC7B,iBAAiB;wBACjB,wBAAwB;wBACxB,4BAA4B;wBAC5B,kBAAkB;wBAClB,eAAe;wBACf,qBAAqB;wBACrB,oBAAoB;wBACpB,aAAa;wBACb,eAAe;wBACf,0BAA0B;wBAC1B,iBAAiB;wBACjB,6BAA6B;wBAC7B,uBAAuB;wBACvB,0BAA0B;wBAC1B,sBAAsB;wBACtB,gBAAgB;wBAChB,YAAY;wBACZ,kBAAkB;wBAClB,4BAA4B;qBAC7B;iBACF;;;gBAxOkBC,WAAQ;gBAuClBH,uBAAgB;;;;QC1CzB;SAIC;+BAAA;KAAA,IAAA;;QACD;SAWG;;QATQ,uBAAO,GAAd,UAAe,OAAwB;YACrC,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;YAExB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;YAE5C,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;YAEpF,OAAO,IAAI,CAAC;SACb;8BACF;KAAA;;;QCeD,0BAAY,QAAkB;YAA9B,iBAaC;YAfM,cAAS,GAAW,EAAE,CAAC;YACvB,cAAS,GAAW,EAAE,CAAC;YAyJ9B,wBAAmB,GAAG,UAAC,OAAY;gBACjC,KAAI,CAAC,cAAc,CAAC,oBAAoB,CACtC,KAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EACrB,IAAI,EACJ,IAAI,EACJ,KAAK,CACN,CAAC;aACH,CAAC;YAEF,yBAAoB,GAAG,UAAC,OAAY;gBAClC,KAAI,CAAC,cAAc,CAAC,oBAAoB,CACtC,KAAI,CAAC,CAAC,CAAC,eAAe,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,KAAK,CACN,CAAC;aACH,CAAC;YAEF,2BAAsB,GAAG,UAAC,OAAY;gBACpC,KAAI,CAAC,cAAc,CAAC,oBAAoB,CACtC,KAAI,CAAC,CAAC,CAAC,eAAe,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,KAAK,CACN,CAAC;aACH,CAAC;YAhLA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAACnH,4BAAc,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACnD,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAACuH,kCAAoB,CAAC,CAAC;YAC/D,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAACC,gCAAkB,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC7F,oBAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC8F,qBAAK,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAACC,yBAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC;SAC5D;QACD,0CAAe,GAAf,UAAgB,KAAyB;YACvC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;SAC5D;QAED,4BAAC,GAAD,UAAE,GAAW;YACX,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;SAClD;QACD,gDAAqB,GAArB,UAAsB,GAAW;YAC/B,OAAO,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;SAC7D;QACD,+CAAoB,GAApB;YACE,OAAO,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;SACxE;QACD,sCAAW,GAAX;YACE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACnC;QAED,uCAAY,GAAZ;YACE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACpC;QAED,oCAAS,GAAT,UAAU,KAAU,EAAE,IAAa;YACjC,IAAI,IAAI;gBACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE;oBAC5B,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;;gBACA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SAC7E;QAED,mCAAQ,GAAR,UAAS,OAAY,EAAE,QAAgB;;YAErC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;gBAC7B,IAAI,EAAE,mEAAmE;aAC1E,CAAC,CAAC;YACHC,iBAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACxB;QAED,sCAAW,GAAX,UAAY,OAAY,EAAE,QAAgB;YACxC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC5DA,iBAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACxB;QACD,uCAAY,GAAZ,UAAa,OAAY,EAAE,QAAgB;YACzC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,yEAAyE,EAAE,CAAC,CAAC;YACpHA,iBAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACxB;QAGO,uCAAY,GAAZ,UAAa,UAAU,EAAE,WAAW;YAC1C,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;YAChC,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC;YACxC,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;YACrD,IAAI,UAAU,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAExC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,EAAE,EAAE,UAAU,EAAE;gBAC/D,IAAI,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;gBACnC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;gBAEnD,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;gBACnC,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE;oBAC3D,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBACjD;gBACD,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;aAChD;YACD,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;SACpD;QAEO,6CAAkB,GAAlB,UAAmB,KAAyB;YAClD,OAAO,KAAK;kBACR,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAG,QAAM,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAG,CAAA;kBAC3D,KAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAG,CAAC;SACpC;QAED,iDAAsB,GAAtB,UAAuB,IAAe,EAAE,OAAqB;YAC3D,IAAI,KAAK,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,SAAS;oBAC9D,SAAS;gBACX,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC;oBACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,KAAK,IAAI,SAAS;0BACxD,EAAE;0BACF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;;aAEvD;YACD,OAAO,KAAK,CAAC;SACd;QAED,wCAAa,GAAb,UAAc,WAAmB,EAAE,IAAe;YAChD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SACjC;QAED,0CAAe,GAAf,UAAgB,GAAW;YACzB,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC3B,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;SACxE;QAED,0CAAe,GAAf,UAAgB,OAAwB,EAAE,cAAmB;YAC3D,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;SACnE;QAED,6CAAkB,GAAlB,UAAmB,OAAwB,EAAE,cAAmB;YAC9D,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;SACxE;QAED,wCAAa,GAAb,UACE,IAAe,EACf,eAAuB,EACvB,aAAqB,EACrB,oBAA4B;YAE5B,IAAI,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACvC,SAAS,CAAC,YAAY,GAAG,UAAC,OAAO;gBAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;gBACpD,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;gBAEhD,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,IAAI,QAAQ;oBAC1C,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBAEjC,OAAO,IAAI,CAAC;aACb,CAAC;YACF,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC;SAClB;QA6BD,+CAAoB,GAApB;YACE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;SACzD;QAED,oCAAS,GAAT;YACE,OAAO,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC;SACvD;QAED,4CAAiB,GAAjB,UAAkB,IAAY;YAC5B,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,IAAI,QAAQ,GACV,QAAQ,IAAI,IAAI,GAAG,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;YACzE,IAAI,WAAW,EAAE;gBACf,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,QAAgB,SAAA,CAAC;gBACrB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvB,IAAI,IAAI,CAAC,IAAI;wBACX,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;wBAEjE,QAAQ;4BACN,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACjE;qBAAM;oBACL,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACrC;gBACD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;aAC/B;YACD,OAAO,EAAE,CAAC;SACX;QAED,iDAAsB,GAAtB;YACE,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;SACvD;QAED,6CAAkB,GAAlB,UAAmB,GAAqB;YACtC,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACpB,IAAI,GAAG,CAAC,OAAO;oBAAE,OAAO,GAAG,CAAC,OAAO,CAAC;;oBAC/B,OAAO,GAAG,CAAC,MAAM,CAAC;aACxB;iBAAM;gBACL,IAAI,GAAG,CAAC,MAAM;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC;;oBAC7B,OAAO,GAAG,CAAC,OAAO,CAAC;aACzB;SACF;;;;gBA/OF/H,aAAU;;;gBAhBF0H,WAAQ;;;ICAjB;IACA;IACA;QAEa,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EACxC,EACA,MAAc,CAAC,WAAW,EAAE;IAG7B;;;;;;IAMA;;;QCPsC,oCAAkB;QAAxD;YAAA,6EAmBC;;YAjBC,WAAK,GAAmB,IAAI,cAAc,EAAE,CAAA;YAC5C,oBAAc,GAAmB,IAAI,CAAA;;YAErC,kBAAY,GAAW,IAAI,CAAA;YAC3B,cAAQ,GAAY,KAAK,CAAC;;YAE1B,eAAS,GAAW,6BAA6B,CAAC;;YAElD,4BAAsB,GAAW,EAAE,CAAA;;YAEnC,8BAAwB,GAAW,EAAE,CAAA;;YAMrC,cAAQ,GAAW,CAAC,CAAC;;SACtB;+BAAA;KAnBD,CAAsC,kBAAkB;;;QCHxD;;YAgCE,aAAQ,GAAkB,IAAI,CAAC;;YAI/B,UAAK,GAAqB,IAAI,gBAAgB,EAAE,CAAC;;YA6BjD,iBAAY,GAAiB,IAAI,CAAC;;YAElC,qBAAgB,GAAuB,EAAE,CAAC;;YAM1C,eAAU,GAAY,KAAK,CAAC;SAC7B;6CAAA;KAAA;;;QC3E+C,8CAA8B;QAA9E;YAAA,6EAYC;YARC,oBAAc,GAAiBnD,oBAAY,CAAC,IAAI,CAAA;YAChD,oBAAc,GAAiBA,oBAAY,CAAC,KAAK,CAAA;;YAEjD,+BAAyB,GAAkB,IAAI,CAAA;;YAI/C,kBAAY,GAAW,IAAI,CAAA;;SAC5B;yCAAA;KAZD,CAAgD,8BAA8B;;;QCJ9E;SAIC;wBAAA;KAAA;;;QCAgD,+CAA8B;QAA/E;YAAA,6EAUC;;YAHC,+BAAyB,GAAkB,IAAI,CAAC;;SAGjD;0CAAA;KAVD,CAAiD,8BAA8B;;;QCD1C,mCAAkB;QAAvD;YAAA,6EAKC;;YAHC,WAAK,GAAY,IAAI,CAAA;YACrB,oBAAc,GAAmBF,sBAAc,CAAC,OAAO,CAAA;;SAExD;8BAAA;KALD,CAAqC,kBAAkB;;;QCFvD;SAIC;+BAAA;KAAA;;;QCGkD,iDAA8B;QAAjF;YAAA,6EAgBC;;YAbC,YAAM,GAAS,GAAG,CAAA;;SAanB;4CAAA;KAhBD,CAAmD,8BAA8B;;;QCAlC,6CAAkB;QAAjE;YAAA,6EAqBC;YAjBC,mBAAa,GAAY,KAAK,CAAA;;YAI9B,6BAAuB,GAAgB,CAACC,iBAAS,CAAC,UAAU,CAAC,CAAA;;SAa9D;wCAAA;KArBD,CAA+C,kBAAkB;;;QCN7D;YAEQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;sBAGR;KAAA;;;QCPG;YAEQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;SACzB;wBAGR;KAAA;;;QCPG;YAEQ,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC;SACxC;gCAGR;KAAA;;;QCPG;YAEQ,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;YACvC,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAAC;SACtC;kCAGR;KAAA;;;QCLoC,mCAAkB;QAAvD;YAAA,6EAoBC;;YAlBC,iBAAW,GAAiBlB,oBAAY,CAAC,KAAK,CAAA;;YAI9C,mBAAa,GAAmB,CAACA,oBAAY,CAAC,MAAM,EAAEA,oBAAY,CAAC,KAAK,EAAEA,oBAAY,CAAC,KAAK,EAAEA,oBAAY,CAAC,MAAM,CAAC,CAAA;;YAOlH,qBAAe,GAAY,IAAI,CAAA;;YAE/B,iBAAW,GAAS,IAAI,IAAI,EAAE,CAAA;YAC9B,mBAAa,GAAY,KAAK,CAAA;YAC9B,qBAAe,GAAY,KAAK,CAAA;YAChC,kBAAY,GAAqB,KAAK,CAAC;;SAExC;8BAAA;KApBD,CAAqC,kBAAkB;;;QCJvD;SAQC;+BAAA;KAAA;;;QCFwC,uCAAkB;QAA3D;YAAA,6EAqCC;;YAlCC,qBAAe,GAAW,IAAI,CAAA;;YAE9B,WAAK,GAAQ,IAAI,CAAA;;YAQjB,iBAAW,GAAgB,IAAI,WAAW,EAAE,CAAA;;YAU5C,oBAAc,GAAmBiB,sBAAc,CAAC,OAAO,CAAA;;YAIvD,uBAAiB,GAAY,KAAK,CAAC;;;YAMnC,gBAAU,GAAW,OAAO,CAAA;YAE5B,mBAAa,GAAQ,IAAI,CAAA;YACzB,mBAAa,GAAY,KAAK,CAAA;;SAC/B;kCAAA;KArCD,CAAyC,kBAAkB;;;QCN3D;SAMC;2BAAA;KAAA;;;QCEqC,oCAAkB;QAAxD;YAAA,6EA0DC;;YAxCC,oBAAc,GAAmBA,sBAAc,CAAC,OAAO,CAAA;;YAIvD,2BAAqB,GAAY,KAAK,CAAA;;YAEtC,mBAAa,GAAY,IAAI,CAAA;;YAE7B,gBAAU,GAAY,IAAI,CAAA;;YAE1B,mBAAa,GAAW,EAAE,CAAA;;YAE1B,qBAAe,GAAW,CAAC,CAAA;;YAE3B,uBAAiB,GAAY,IAAI,CAAA;;YAEjC,2BAAqB,GAAW,EAAE,CAAA;;YAElC,yBAAmB,GAAW,IAAI,CAAA;;YAElC,wBAAkB,GAAW,MAAM,CAAA;;YAInC,oBAAc,GAAW,OAAO,CAAA;;YAEhC,4BAAsB,GAAW,eAAe,CAAA;;YAEhD,qBAAe,GAAW,EAAE,CAAA;YAC5B,mBAAa,GAAW,EAAE,CAAA;;YAE1B,uBAAiB,GAAY,KAAK,CAAC;YACnC,qBAAe,GAAW,IAAI,CAAC;YAI/B,kBAAY,GAAiBM,oBAAY,CAAC,YAAY,CAAA;YAEtD,qBAAe,GAAY,IAAI,CAAC;;SAEjC;+BAAA;KA1DD,CAAsC,kBAAkB;;;QCNxD;;;YAUI,kBAAa,GAAU,IAAI,CAAA;SAI9B;yBAAA;KAAA;;;QCbD;;YAEE,kBAAa,GAAW,EAAE,CAAA;YAC1B,oBAAe,GAAW,IAAI,CAAA;;;YAG9B,YAAO,GAAiB,EAAE,CAAA;;YAE1B,eAAU,GAAW,CAAC,CAAA;;;;YAItB,aAAQ,GAAW,EAAE,CAAA;;YAErB,gCAA2B,GAAa,EAAE,CAAA;;YAE1C,gCAA2B,GAAa,EAAE,CAAA;;YAE1C,4CAAuC,GAAa,EAAE,CAAA;;YAEtD,+BAA0B,GAAa,EAAE,CAAA;;YAEzC,kCAA6B,GAAa,EAAE,CAAA;;YAQ5C,uBAAkB,GAAY,KAAK,CAAA;;YAInC,uBAAkB,GAAY,IAAI,CAAA;;YAElC,uCAAkC,GAAY,IAAI,CAAA;;YAElD,qBAAgB,GAAY,IAAI,CAAA;;YAEhC,sBAAiB,GAAY,KAAK,CAAA;;YAElC,qBAAgB,GAAY,KAAK,CAAA;;YAIjC,iBAAY,GAAY,IAAI,CAAA;YAC5B,mBAAc,GAAmBN,sBAAc,CAAC,OAAO,CAAA;;YAGvD,0BAAqB,GAAW,IAAI,CAAC;YACrC,mBAAc,GAAY,KAAK,CAAC;YAChC,wBAAmB,GAAa,IAAI,CAAC;SACtC;4BAAA;KAAA;;;QCpDwC,sCAAkB;QAA3D;;SAMC;iCAAA;KAND,CAAyC,kBAAkB;;;QCF3D;SAGC;8BAAA;KAAA;;;QCAD;;YAGE,cAAS,GAAc,IAAI,CAAC;;YAG5B,oBAAe,GAAyB,IAAI,CAAA;;YAG5C,qBAAgB,GAAqBT,wBAAgB,CAAC,YAAY,CAAC;;YAGnE,qBAAgB,GAAa,IAAI,CAAC;;YAGlC,0BAAqB,GAAa,IAAI,CAAC;;YAGvC,mBAAc,GAAa,IAAI,CAAC;;YAGhC,qBAAgB,GAAa,IAAI,CAAC;;YAGlC,+BAA0B,GAAY,KAAK,CAAC;;YAG5C,6BAAwB,GAAY,KAAK,CAAC;;YAG1C,mBAAc,GAAY,KAAK,CAAC;;YAGhC,wBAAmB,GAAY,KAAK,CAAC;SACtC;0BAAA;KAAA;;;QClCD;;YAEE,uBAAkB,GAAW,IAAI,CAAC;;YAGlC,qBAAgB,GAAW,IAAI,CAAC;;YAGhC,qBAAgB,GAAW,IAAI,CAAC;;YAGhC,0BAAqB,GAA0BE,6BAAqB,CAAC,MAAM,CAAC;;YAG5E,0BAAqB,GAAa,IAAI,CAAC;;YAGvC,uBAAkB,GAAU,EAAE,CAAC;;YAG/B,oBAAe,GAAyB,IAAI,CAAA;;YAG5C,qBAAgB,GAAqBF,wBAAgB,CAAC,YAAY,CAAC;;YAGnE,mBAAc,GAAa,IAAI,CAAC;;YAGhC,qBAAgB,GAAa,IAAI,CAAC;;YAGlC,+BAA0B,GAAW,IAAI,CAAC;;YAG1C,+BAA0B,GAAY,KAAK,CAAC;;YAG5C,6BAAwB,GAAY,KAAK,CAAC;;YAG1C,wBAAmB,GAAY,KAAK,CAAC;;YAErC,qBAAgB,GAAY,IAAI,CAAC;;YAEjC,oBAAe,GAAY,IAAI,CAAC;SAEjC;uCAAA;KAAA;;;QCnDD;SAKC;4BAAA;KAAA;;;QCJD;YAKE,mBAAc,GAAW,EAAE,CAAC;YAI5B,kBAAa,GAAW,KAAK,CAAC;YAE9B,qBAAgB,GAAW,QAAQ,CAAC;YACpC,kBAAa,GAAU,EAAE,CAAC;YAC1B,sBAAiB,GAAoB,EAAE,CAAC;YACxC,qBAAgB,GAAY,KAAK,CAAC;YAClC,wBAAmB,GAAY,KAAK,CAAC;YACrC,eAAU,GAAY,KAAK,CAAC;SAC7B;8BAAA;KAAA;;;QClBD;YACI,oBAAe,GAAqB,EAAE,CAAC;YACvC,kBAAa,GAAY,IAAI,CAAC;YAC9B,iBAAY,GAAY,IAAI,CAAC;YAC7B,4BAAuB,GAAS,KAAK,CAAC;SACzC;4BAAA;KAAA;;;QCDC;YACE,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;SAC9C;gCAeF;KAAA,IAAA;;QAED;YAEE,oBAAe,GAAiB,EAAE,CAAC;SACpC;8BAAA;KAAA,IAAA;;QACD;YAEE,kBAAa,GAAS,KAAK,CAAC;YAC5B,aAAQ,GAAa,IAAI,CAAC;SAC3B;wBAAA;KAAA,IAAA;;QACD;YAEE,kBAAa,GAAW,MAAM,CAAC;YAC/B,aAAQ,GAAa,IAAI,CAAC;SAC3B;yBAAA;KAAA,IAAA;;QACD;YAEE,kBAAa,GAAW,QAAQ,CAAC;YACjC,aAAQ,GAAa,IAAI,CAAC;SAC3B;2BAAA;KAAA,IAAA;;QAOC;YAJA,kBAAa,GAAW,QAAQ,CAAC;YACjC,aAAQ,GAAa,IAAI,CAAC;YAC1B,4BAAuB,GAAY,IAAI,CAAC;YAGtC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;SAC/B;4BACF;KAAA,IAAA;;QACD;YAEE,kBAAa,GAAW,QAAQ,CAAC;YACjC,aAAQ,GAAa,IAAI,CAAC;SAC3B;2BAAA;KAAA,IAAA;;QACD;YAEE,mBAAc,GAAa,IAAI,CAAC;SAEjC;4BAAA;KAAA,IAAA;;QACD;YAEE,yBAAoB,GAAmB,IAAI,cAAc,EAAE,CAAC;SAC7D;2BAAA;KAAA,IAAA;;QACD;YAEE,wBAAmB,GAAyB,EAAE,CAAA;SAC/C;8BAAA;KAAA,IAAA;;QAEC,4BAAY,IAAY,EAAE,GAAW,EAAE,YAAsB,EAAC,UAAsB;YAAtB,2BAAA,EAAA,iBAAsB;YAQpF,aAAQ,GAAa,IAAI,CAAC;YAPxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;iCAKF;KAAA;;;QC1FD;YAGI,aAAQ,GAAa,IAAI,CAAC;SAC7B;gCAAA;KAAA;;;QCJG,oBAAY,KAAa,EAAE,MAAe,EAAE,KAAoB;YAApB,sBAAA,EAAA,YAAoB;YAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;yBAIF;KAAA;;ACTSoE;IAAZ,WAAY,YAAY;QACpB,yDAAY,CAAA;QACZ,uDAAY,CAAA;IAEhB,CAAC,EAJWA,oBAAY,KAAZA,oBAAY;;ACAXC;IAAb,WAAa,OAAO;QAChB,6BAAkB,CAAA;QAClB,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,+BAAoB,CAAA;QACpB,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,0BAAe,CAAA;QACf,mCAAwB,CAAA;QACxB,2BAAgB,CAAA;QAChB,yBAAc,CAAA;QACd,uBAAY,CAAA;QACZ,2BAAgB,CAAA;QAChB,yBAAc,CAAA;QACd,4BAAiB,CAAA;QACjB,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,4BAAiB,CAAA;QACjB,0BAAe,CAAA;QACf,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,uBAAY,CAAA;QACZ,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,yBAAc,CAAA;QACd,sCAA2B,CAAA;QAC3B,0BAAe,CAAA;QACf,wBAAa,CAAA;QACb,6CAAkC,CAAA;QAClC,sCAA2B,CAAA;QAC3B,wBAAa,CAAA;QACb,0BAAe,CAAA;QACf,6BAAkB,CAAA;QAClB,yBAAc,CAAA;QACd,0BAAe,CAAA;QACf,0BAAe,CAAA;QACf,wBAAa,CAAA;QACb,2BAAgB,CAAA;QAChB,sCAA2B,CAAA;QAC3B,+BAAoB,CAAA;QACpB,wCAA6B,CAAA;QAC7B,sBAAW,CAAA;QACX,uBAAY,CAAA;QACZ,uBAAY,CAAA;QACZ,iCAAsB,CAAA;QACtB,uBAAY,CAAA;QACZ,0BAAe,CAAA;QACf,yBAAc,CAAA;QACd,sDAA2C,CAAA;QAC3C,+CAAoC,CAAA;QACpC,6BAAkB,CAAA;QAClB,2BAAgB,CAAA;QAChB,kCAAkB,CAAA;QAClB,yBAAc,CAAA;QACd,sBAAW,CAAA;QACX,8BAAc,CAAA;QACd,wBAAa,CAAA;QACb,+BAAoB,CAAA;QACpB,yBAAc,CAAA;QACd,0BAAe,CAAA;QACf,0BAAe,CAAA;QACf,mCAAwB,CAAA;QACxB,yBAAc,CAAA;QACd,uBAAY,CAAA;QACZ,4BAAiB,CAAA;QACjB,kCAAuB,CAAA;QACvB,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,0BAAe,CAAA;QACf,iCAAsB,CAAA;QACtB,8BAAmB,CAAA;QACnB,sBAAW,CAAA;QACX,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,8BAAmB,CAAA;QACnB,iCAAsB,CAAA;QACtB,uBAAY,CAAA;QACZ,wBAAa,CAAA;QACb,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,uBAAY,CAAA;QACZ,2BAAgB,CAAA;QAChB,wBAAa,CAAA;QACb,2BAAgB,CAAA;QAChB,yBAAc,CAAA;QACd,4BAAiB,CAAA;QACjB,sBAAW,CAAA;QACX,2BAAgB,CAAA;QAChB,0BAAe,CAAA;QACf,wBAAa,CAAA;QACb,8BAAmB,CAAA;QACnB,wBAAa,CAAA;QACb,uBAAY,CAAA;QACZ,0BAAe,CAAA;QACf,0BAAe,CAAA;QACf,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,uBAAY,CAAA;QACZ,2BAAgB,CAAA;QAChB,sBAAW,CAAA;QACX,sBAAW,CAAA;QACX,yBAAc,CAAA;QACd,2BAAgB,CAAA;QAChB,wBAAa,CAAA;QACb,uBAAY,CAAA;QACZ,yBAAc,CAAA;QACd,uBAAY,CAAA;QACZ,wBAAa,CAAA;QACb,wBAAa,CAAA;QACb,4BAAiB,CAAA;QACjB,uBAAY,CAAA;QACZ,0BAAe,CAAA;QACf,wBAAa,CAAA;QACb,wBAAa,CAAA;QACb,4BAAiB,CAAA;QACjB,sBAAW,CAAA;QACX,wBAAa,CAAA;QACb,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,uBAAY,CAAA;QACZ,+BAAoB,CAAA;QACpB,2BAAgB,CAAA;QAChB,4BAAiB,CAAA;QACjB,uBAAY,CAAA;QACZ,2BAAgB,CAAA;QAChB,4BAAiB,CAAA;QACjB,wBAAa,CAAA;QACb,0BAAe,CAAA;QACf,0BAAe,CAAA;QACf,sBAAW,CAAA;QACX,uBAAY,CAAA;QACZ,iCAAsB,CAAA;QACtB,4BAAiB,CAAA;QACjB,4BAAiB,CAAA;QACjB,2BAAgB,CAAA;QAChB,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,4BAAiB,CAAA;QACjB,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,0BAAe,CAAA;QACf,4BAAiB,CAAA;QACjB,4BAAiB,CAAA;QACjB,yBAAc,CAAA;QACd,4BAAiB,CAAA;QACjB,yBAAc,CAAA;QACd,yBAAc,CAAA;QACd,uBAAY,CAAA;QACZ,uBAAY,CAAA;QACZ,6BAAkB,CAAA;QAClB,8BAAmB,CAAA;QACnB,4BAAiB,CAAA;QACjB,2BAAgB,CAAA;QAChB,uBAAY,CAAA;QACZ,yBAAc,CAAA;QACd,sBAAW,CAAA;QACX,+BAAoB,CAAA;QACpB,4BAAiB,CAAA;QACjB,wCAA6B,CAAA;QAC7B,wBAAa,CAAA;QACb,sBAAW,CAAA;QACX,0BAAe,CAAA;QACf,uBAAY,CAAA;QACZ,2BAAgB,CAAA;QAChB,wBAAa,CAAA;QACb,gCAAqB,CAAA;QACrB,0BAAe,CAAA;QACf,sBAAW,CAAA;QACX,6BAAkB,CAAA;QAClB,wBAAa,CAAA;QACb,0BAAe,CAAA;QACf,4BAAiB,CAAA;QACjB,uBAAY,CAAA;QACZ,8BAAc,CAAA;QACd,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,wBAAa,CAAA;QACb,sCAAsB,CAAA;QACtB,6BAAkB,CAAA;QAClB,oCAAyB,CAAA;QACzB,4BAAiB,CAAA;QACjB,6BAAkB,CAAA;QAClB,wCAA6B,CAAA;QAC7B,8CAAmC,CAAA;QACnC,uBAAY,CAAA;QACZ,2BAAgB,CAAA;QAChB,mDAAyB,CAAA;QACzB,6BAAkB,CAAA;QAClB,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,4BAAiB,CAAA;QACjB,6BAAkB,CAAA;QAClB,2BAAgB,CAAA;QAChB,6BAAkB,CAAA;QAClB,0BAAe,CAAA;QACf,0BAAe,CAAA;QACf,gCAAqB,CAAA;QACrB,yBAAc,CAAA;QACd,6BAAkB,CAAA;QAClB,4BAAiB,CAAA;QACjB,4BAAiB,CAAA;QACjB,uBAAY,CAAA;QACZ,0BAAe,CAAA;QACf,uBAAY,CAAA;QACZ,0BAAe,CAAA;QACf,qCAA0B,CAAA;QAC1B,2BAAgB,CAAA;QAChB,wBAAa,CAAA;QACb,6BAAkB,CAAA;QAClB,uBAAY,CAAA;QACZ,wBAAa,CAAA;QACb,4BAAiB,CAAA;QACjB,0BAAe,CAAA;QACf,0BAAe,CAAA;QACf,4BAAiB,CAAA;QACjB,sBAAW,CAAA;QACX,yBAAc,CAAA;QACd,uBAAY,CAAA;QACZ,mCAAwB,CAAA;QACxB,yBAAc,CAAA;QACd,wBAAa,CAAA;QACb,8BAAmB,CAAA;QACnB,uCAA4B,CAAA;QAC5B,wBAAa,CAAA;QACb,iCAAsB,CAAA;QACtB,wBAAa,CAAA;QACb,yBAAc,CAAA;QACd,oCAAyB,CAAA;QACzB,+BAAoB,CAAA;QACpB,8BAAmB,CAAA;QACnB,yBAAc,CAAA;QACd,4BAAiB,CAAA;QACjB,yBAAc,CAAA;QACd,6BAAkB,CAAA;QAClB,2BAAgB,CAAA;QAChB,yBAAc,CAAA;QACd,iCAAsB,CAAA;QACtB,+BAAoB,CAAA;QACpB,uBAAY,CAAA;QACZ,wBAAa,CAAA;QACb,0BAAe,CAAA;QACf,mCAAmB,CAAA;IACvB,CAAC,EApPYA,eAAO,KAAPA,eAAO;;ACARC;IAAZ,WAAY,QAAQ;QAEhB,iCAAqB,CAAA;QACrB,iCAAqB,CAAA;QACrB,2BAAe,CAAA;IAEnB,CAAC,EANWA,gBAAQ,KAARA,gBAAQ;;ACARC;IAAZ,WAAY,MAAM;QAEd,yBAAe,CAAA;QACf,6BAAmB,CAAA;QACnB,uBAAa,CAAA;QACb,yBAAa,CAAA;QACb,mBAAO,CAAA;IACX,CAAC,EAPWA,cAAM,KAANA,cAAM;;ACANC;IAAZ,WAAY,IAAI;QAEZ,6BAAqB,CAAA;QACrB,qBAAa,CAAA;QACb,qBAAa,CAAA;IACjB,CAAC,EALWA,YAAI,KAAJA,YAAI;;ACAJC;IAAZ,WAAY,IAAI;QAEZ,uBAAe,CAAA;QACf,iBAAS,CAAA;QACT,iBAAS,CAAA;QACT,+BAAqB,CAAA;QACrB,yBAAe,CAAA;IACnB,CAAC,EAPWA,YAAI,KAAJA,YAAI;;ACAJC;IAAZ,WAAY,KAAK;QAEb,sBAAa,CAAA;QACb,0BAAiB,CAAA;QACjB,gCAAuB,CAAA;QACvB,wBAAa,CAAA;IACjB,CAAC,EANWA,aAAK,KAALA,aAAK;;ACALC;IAAZ,WAAY,QAAQ;QAClB,mCAAuB,CAAA;QACvB,+GAAmG,CAAA;QACnG,gHAAoG,CAAA;QACpG,yDAA6C,CAAA;QAC7C,6BAAiB,CAAA;QACjB,8BAAkB,CAAA;QAClB,+BAAmB,CAAA;QACnB,mCAAuB,CAAA;QACvB,gDAAoC,CAAA;QACpC,mGAAuF,CAAA;QACvF,sCAA0B,CAAA;QAC1B,4BAAgB,CAAA;QAChB,mDAAuC,CAAA;QACvC,8BAAkB,CAAA;QAClB,qCAAyB,CAAA;QACzB,6IAAiI,CAAA;QACjI,iCAAqB,CAAA;QACrB,qBAAS,CAAA;IACX,CAAC,EAnBWA,gBAAQ,KAARA,gBAAQ;;ICApB;;;;ICAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}