@jooler/inputs 0.0.56 → 0.0.58
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.
- package/esm2022/lib/general-input-renderer/general-input-renderer-change-event.interface.mjs +2 -0
- package/esm2022/lib/general-input-renderer/general-input-renderer.component.mjs +36 -23
- package/esm2022/lib/inputs.module.mjs +5 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/inputs.mjs +61 -44
- package/fesm2022/inputs.mjs.map +1 -1
- package/lib/general-input-renderer/general-input-renderer-change-event.interface.d.ts +6 -0
- package/lib/general-input-renderer/general-input-renderer.component.d.ts +9 -4
- package/lib/inputs.module.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/fesm2022/inputs.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.mjs","sources":["../../../projects/inputs/src/lib/ag-grid-select-mixin.ts","../../../projects/inputs/src/lib/custom-theme.ts","../../../projects/inputs/src/lib/enum-helper.model.ts","../../../projects/inputs/src/lib/enum-helper-functions.ts","../../../projects/inputs/src/lib/choose-enum/choose-enum.component.ts","../../../projects/inputs/src/lib/choose-enum/choose-enum.component.html","../../../projects/inputs/src/lib/choose-enum-renderer/choose-enum-renderer.component.ts","../../../projects/inputs/src/lib/choose-enum-renderer/choose-enum-renderer.component.html","../../../projects/inputs/src/lib/choose-general-item-renderer/choose-general-item-renderer-validation-type.enum.ts","../../../projects/inputs/src/lib/models/choose-item-full-object-control-config.enum.ts","../../../projects/inputs/src/lib/primary-colors.ts","../../../projects/inputs/src/lib/choose-general-item/choose-object-template-type.enum.ts","../../../projects/inputs/src/lib/dictionary-to-params-converter.ts","../../../projects/inputs/src/lib/choose-general-item/choose-general-item.service.ts","../../../projects/inputs/src/lib/dropdown-actions/dropdown-action-type.model.ts","../../../projects/inputs/src/lib/dropdown-actions/dropdown-actions.component.ts","../../../projects/inputs/src/lib/dropdown-actions/dropdown-actions.component.html","../../../projects/inputs/src/lib/choose-general-item/choose-general-item.component.ts","../../../projects/inputs/src/lib/choose-general-item/choose-general-item.component.html","../../../projects/inputs/src/lib/show-table-errors/show-table-errors.component.ts","../../../projects/inputs/src/lib/show-table-errors/show-table-errors.component.html","../../../projects/inputs/src/lib/tooltip-msg-error/tooltip-message-type.enum.ts","../../../projects/inputs/src/lib/tooltip-msg-error/tooltip-msg-error.component.ts","../../../projects/inputs/src/lib/tooltip-msg-error/tooltip-msg-error.component.html","../../../projects/inputs/src/lib/add-asterisk.directive.ts","../../../projects/inputs/src/lib/services/validation-message.service.ts","../../../projects/inputs/src/lib/formcontrol-validation-msg-for-ng-select.directive.ts","../../../projects/inputs/src/lib/choose-general-item-renderer/choose-general-item-renderer.component.ts","../../../projects/inputs/src/lib/choose-general-item-renderer/choose-general-item-renderer.component.html","../../../projects/inputs/src/lib/models/line-type.model.ts","../../../projects/inputs/src/lib/models/line-type-model-helper.ts","../../../projects/inputs/src/lib/choose-line-type/choose-line-type.component.ts","../../../projects/inputs/src/lib/choose-line-type/choose-line-type.component.html","../../../projects/inputs/src/lib/choose-yes-or-no/choose-yes-or-no.component.ts","../../../projects/inputs/src/lib/choose-yes-or-no/choose-yes-or-no.component.html","../../../projects/inputs/src/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.ts","../../../projects/inputs/src/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.html","../../../projects/inputs/src/lib/editable-savable-input/dynamicPipeMapping.ts","../../../projects/inputs/src/lib/editable-savable-input/dynamicPipe.ts","../../../projects/inputs/src/lib/editable-savable-input/editable-savable-input.component.ts","../../../projects/inputs/src/lib/editable-savable-input/editable-savable-input.component.html","../../../projects/inputs/src/lib/formcontrol-validation-msg.directive.ts","../../../projects/inputs/src/lib/general-input-renderer/custom-decimal-point-two-digits.directive.ts","../../../projects/inputs/src/lib/general-input-renderer/general-input-renderer.component.ts","../../../projects/inputs/src/lib/general-input-renderer/general-input-renderer.component.html","../../../projects/inputs/src/lib/inputs.module.ts","../../../projects/inputs/src/lib/models/label-and-field.model.ts","../../../projects/inputs/src/public-api.ts","../../../projects/inputs/src/inputs.ts"],"sourcesContent":["import { FormArray, FormControl, FormGroup } from '@angular/forms';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { RowNode } from 'ag-grid-community';\r\n\r\nexport class AgGridSelectMixin implements ICellRendererAngularComp {\r\n params: any;\r\n key: string;\r\n value;\r\n rowId: number;\r\n isEdit: boolean;\r\n index: number;\r\n arrayKey: string = 'entries';\r\n rowLevelFG: FormGroup;\r\n width: number;\r\n selectedItemId: number;\r\n\r\n agInit(params): void {\r\n this.initializeRenderer(params);\r\n }\r\n\r\n initializeRenderer(params) {\r\n this.params = params;\r\n this.width = params.width;\r\n this.key = params.context.createKey(params.columnApi, params.column);\r\n this.value = params.value;\r\n this.rowId = params.node.id;\r\n this.index = params.node.rowIndex;\r\n if (params.context.arrayKey) {\r\n this.arrayKey = params.context.arrayKey;\r\n }\r\n this.setRowLevelFG();\r\n }\r\n\r\n setRowLevelFG() {\r\n this.index = this.params.node.rowIndex;\r\n let tableFG: FormGroup = this.params.context.formGroup;\r\n let fa: FormArray = tableFG.get(this.arrayKey) as FormArray;\r\n let rowLevelFG = fa.at(this.index) as FormGroup;\r\n this.rowLevelFG = rowLevelFG;\r\n }\r\n\r\n getFormControl() {\r\n let fc: FormControl = this.rowLevelFG.get(this.key) as FormControl;\r\n return fc;\r\n }\r\n\r\n updateValue(params, value: number | null) {\r\n this.setRowLevelFG();\r\n this.getFormControl().setValue(value);\r\n let rowNode: RowNode = params.node;\r\n rowNode.setDataValue(this.key, value);\r\n }\r\n\r\n // $event here is an object.\r\n onSelection($event: any) {\r\n this.selectedItemId = $event?.id;\r\n this.updateValue(this.params, $event?.id);\r\n if (this.params.onSelection instanceof Function) {\r\n const params = {\r\n object: $event,\r\n rowData: this.params.node.data,\r\n value: $event.id,\r\n rowNode: this.params.node,\r\n };\r\n this.params.onSelection(params);\r\n }\r\n }\r\n\r\n onEnumSelected($event: number) {\r\n this.updateValue(this.params, $event);\r\n if (this.params.onSelection instanceof Function) {\r\n const params = {\r\n rowData: this.params.node.data,\r\n value: $event,\r\n rowNode: this.params.node,\r\n };\r\n this.params.onSelection(params);\r\n }\r\n }\r\n\r\n refresh(param): boolean {\r\n return false;\r\n }\r\n}\r\n","export class CustomTheme {\r\n static $joolerBlue = [\r\n '#e3ecfa',\r\n '#b9cff2',\r\n '#8aafea',\r\n '#5b8ee1',\r\n '#3876da',\r\n '#155ed4',\r\n '#1256cf',\r\n '#0f4cc9',\r\n '#0c42c3',\r\n '#0631b9',\r\n '#e3e8ff',\r\n '#b0bfff',\r\n '#7d95ff',\r\n '#6481ff',\r\n ];\r\n static $joolerTeal = [\r\n '#b8dfd8',\r\n '#89cabf',\r\n '#59b5a5',\r\n '#36a591',\r\n '#12957e',\r\n '#108d76',\r\n '#0d826b',\r\n '#0a7861',\r\n '#05674e',\r\n '#97ffe1',\r\n '#64ffd2',\r\n '#31ffc3',\r\n '#18ffbc',\r\n ];\r\n static $joolerRed = [\r\n '#f5e0e1',\r\n '#e5b3b3',\r\n '#d48081',\r\n '#c24d4e',\r\n '#b52628',\r\n '#a80002',\r\n '#a00002',\r\n '#970001',\r\n '#8d0001',\r\n '#7d0001',\r\n '#ffaaaa',\r\n '#ff7777',\r\n '#ff4444',\r\n '#ff2a2a',\r\n ];\r\n static $joolerPink = [\r\n '#fdeaf3',\r\n '#fbcbe1',\r\n '#f8a8ce',\r\n '#f585ba',\r\n '#f26aab',\r\n '#f0509c',\r\n '#ee4994',\r\n '#ec408a',\r\n '#e93780',\r\n '#e5276e',\r\n '#ffffff',\r\n '#ffeef4',\r\n '#ffbbd3',\r\n '#ffa1c2',\r\n ];\r\n static $joolerPurple = [\r\n '#fcf6fd',\r\n '#f7e8f9',\r\n '#f1d8f5',\r\n '#ebc8f1',\r\n '#e7bdee',\r\n '#e3b1eb',\r\n '#e0aae9',\r\n '#dca1e5',\r\n '#d898e2',\r\n '#d088dd',\r\n '#ffffff',\r\n '#ffffff',\r\n '#ffffff',\r\n '#fcecff',\r\n ];\r\n static $joolerCombo = [\r\n '#b9cff2',\r\n '#b8dfd8',\r\n '#ffaaaa',\r\n '#fbcbe1',\r\n '#f1d8f5',\r\n '#8aafea',\r\n '#97ffe1',\r\n '#ff7777',\r\n '#f585ba',\r\n '#e7bdee',\r\n '#6481ff',\r\n '#18ffbc',\r\n '#ff4444',\r\n '#ffa1c2',\r\n '#e0aae9',\r\n '#1256cf',\r\n '#108d76',\r\n '#df0000',\r\n '#ec408a',\r\n '#d088dd',\r\n ];\r\n}\r\n","export class EnumOption {\r\n value: number;\r\n label: string;\r\n color: string;\r\n description?: string;\r\n disabled?: boolean;\r\n\r\n constructor(value: number, label: string, color: string, disabled: boolean = false) {\r\n this.value = value;\r\n this.label = label;\r\n this.color = color;\r\n this.disabled = disabled;\r\n }\r\n}\r\n","\r\nimport { CustomTheme } from './custom-theme';\r\nimport { EnumOption } from './enum-helper.model';\r\n\r\nexport class EnumHelperBaseClass {\r\n static getEnumOptionsFromEnumClass(\r\n enumClass: any,\r\n customColors?: string[],\r\n isAllCaps: boolean = false,\r\n isIntegerChoice: boolean = true\r\n ) {\r\n const enumOptions: EnumOption[] = [];\r\n\r\n // Get string keys only (filter out numeric reverse mappings)\r\n const enumKeys = Object.keys(enumClass).filter(k => isNaN(Number(k)));\r\n\r\n // Prepare display labels\r\n const stringValues = EnumHelperBaseClass.getStringValuesForEnumClass(enumClass, isAllCaps);\r\n\r\n // Prepare colors\r\n const colors = EnumHelperBaseClass.getColorsForEnumClass(enumClass, stringValues, customColors);\r\n\r\n enumKeys.forEach((key, idx) => {\r\n let value;\r\n if (isIntegerChoice) {\r\n value = enumClass[key]; // numeric value\r\n } else {\r\n value = key; // string value\r\n }\r\n\r\n const label = stringValues[idx];\r\n const color = colors[idx];\r\n\r\n enumOptions.push(new EnumOption(value, label, color));\r\n });\r\n\r\n return enumOptions;\r\n }\r\n\r\n static getColorsForEnumClass(\r\n enumClass: any,\r\n stringValues: string[],\r\n customColors?: string[]\r\n ): string[] {\r\n let colors: string[] = CustomTheme.$joolerCombo;\r\n\r\n if (customColors && customColors.length > 0) {\r\n colors = customColors;\r\n }\r\n // in case the array of colors is smaller than the stringValues array, we repeat the the colors so that they are enough\r\n if (stringValues.length > colors.length) {\r\n for (let label of stringValues) {\r\n colors.push(colors[stringValues.indexOf(label) % colors.length]);\r\n }\r\n }\r\n return colors;\r\n }\r\n\r\n static getStringValuesForEnumClass(enumClass: any, isAllCaps?: boolean): string[] {\r\n let stringValues: string[] = [];\r\n\r\n for (let item in enumClass) {\r\n if (isNaN(Number(item))) {\r\n let joinedString: string;\r\n stringValues.push(item);\r\n let splitStr = item.toLowerCase().split('_');\r\n if (!isAllCaps) {\r\n for (let i = 0; i < splitStr.length; i++) {\r\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);\r\n }\r\n } else {\r\n for (let i = 0; i < splitStr.length; i++) {\r\n splitStr[i] = splitStr[i].toUpperCase();\r\n }\r\n }\r\n joinedString = splitStr.join(' ');\r\n stringValues.splice(stringValues.indexOf(item), 1, joinedString);\r\n\r\n }\r\n }\r\n return stringValues;\r\n }\r\n\r\n static getLabelAndColorFromEnumValue(\r\n enumClass: any,\r\n enumValue: number,\r\n customColors?: string[]\r\n ): EnumOption {\r\n let enumOptions: EnumOption[] = EnumHelperBaseClass.getEnumOptionsFromEnumClass(\r\n enumClass,\r\n customColors\r\n );\r\n let enumOption: EnumOption;\r\n for (let item of enumOptions) {\r\n if (enumValue == item.value) {\r\n enumOption = enumOptions[enumOptions.indexOf(item)];\r\n }\r\n }\r\n return enumOption;\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { EnumOption } from '../enum-helper.model';\r\nimport { EnumHelperBaseClass } from '../enum-helper-functions';\r\n\r\n@Component({\r\n selector: 'choose-enum',\r\n templateUrl: './choose-enum.component.html',\r\n styleUrls: ['./choose-enum.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ChooseEnumComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ChooseEnumComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n items: EnumOption[];\r\n @Input() appendTo: string = 'body';\r\n @Input() allowAllCapsValues: boolean = false;\r\n @Input() clearable: boolean = true;\r\n @Input() customColors: string[];\r\n @Input() enumChoices: any;\r\n @Input() getValuesArrayFromEnum: Function = EnumHelperBaseClass.getEnumOptionsFromEnumClass;\r\n @Input() valuesToDisable: number[] = [];\r\n @Input() valuesToHide: number[] = [];\r\n @Input() isChip: boolean = true;\r\n @Input() isDropdownDisabled: boolean = false;\r\n @Input() isMultiple: boolean;\r\n @Input() label: string = 'label';\r\n @Input() labelTextAlign: string = 'left';\r\n @Input() labelTextFontWeight: string;\r\n @Input() labelTextFontSize: string;\r\n @Input() paddingTop: number;\r\n @Input() placeholder: string;\r\n @Input() percentWidth: boolean = false;\r\n @Input() selectedItem: any;\r\n @Input() width: number;\r\n @Input() isReadOnly: boolean = false;\r\n @Input() virtualScroll: boolean = false;\r\n @Output() change = new EventEmitter();\r\n @Output() close = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.getValuesArrayFromEnum != null) {\r\n this.items = this.getValuesArrayFromEnum(\r\n this.enumChoices,\r\n this.customColors,\r\n this.allowAllCapsValues\r\n );\r\n }\r\n if (this.valuesToDisable.length > 0) {\r\n this.disabledItems();\r\n }\r\n if (this.valuesToHide.length > 0) {\r\n this.hideItems();\r\n }\r\n this.sortAndReorderItems();\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.getValuesArrayFromEnum != null) {\r\n this.items = this.getValuesArrayFromEnum(\r\n this.enumChoices,\r\n this.customColors,\r\n this.allowAllCapsValues\r\n );\r\n }\r\n if (this.valuesToDisable.length > 0) {\r\n this.disabledItems();\r\n }\r\n if (this.valuesToHide.length > 0) {\r\n this.hideItems();\r\n }\r\n this.sortAndReorderItems();\r\n }\r\n\r\n disabledItems() {\r\n for (let value of this.valuesToDisable) {\r\n let index: number = this.items.findIndex(enumOption => enumOption.value == value);\r\n if (index >= 0) {\r\n this.items[index].disabled = true;\r\n } else {\r\n throw Error(\r\n 'Index was not found for an enum element in the valuesToDisable array provided.'\r\n );\r\n }\r\n }\r\n }\r\n\r\n hideItems() {\r\n for (let value of this.valuesToHide) {\r\n let index: number = this.items.findIndex(enumOption => enumOption.value == value);\r\n if (index >= 0) {\r\n this.items.splice(index, 1);\r\n } else {\r\n throw Error('Index was not found for an enum element in the valuesToHide array provided.');\r\n }\r\n }\r\n }\r\n\r\n sortAndReorderItems(): void {\r\n const nonDisabledItems = this.items.filter(item => !item.disabled);\r\n const disabledItems = this.items.filter(item => item.disabled);\r\n nonDisabledItems.sort((a, b) => a.label.localeCompare(b.label));\r\n this.items = [...nonDisabledItems, ...disabledItems];\r\n }\r\n\r\n writeValue(type: number) {\r\n if (type != undefined) {\r\n this.selectedItem = type;\r\n } else if (type == null) {\r\n this.selectedItem = type;\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n this.close.emit();\r\n }\r\n\r\n onSelectedItemChanged() {\r\n this.propogateTouch();\r\n this.propagateChange(this.selectedItem);\r\n this.change.emit(this.selectedItem);\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.isDropdownDisabled = isDisabled;\r\n }\r\n\r\n clear() {\r\n this.selectedItem = null;\r\n this.propogateTouch();\r\n }\r\n\r\n setStyles() {\r\n let style = {\r\n paddingTop: this.paddingTop + 'rem',\r\n };\r\n if (this.width) {\r\n style['width'] = this.width + 'rem';\r\n }\r\n return style;\r\n }\r\n\r\n setLabelStyle() {\r\n let style = {\r\n textAlign: this.labelTextAlign,\r\n fontWeight: this.labelTextFontWeight,\r\n fontSize: this.labelTextFontSize + 'rem',\r\n padding: '0.4rem',\r\n };\r\n return style;\r\n }\r\n}\r\n","<div>\r\n <ng-select [ngStyle]=\"setStyles()\" (blur)=\"updateBlur()\" bindLabel=\"label\" bindValue=\"value\" [items]=\"items\"\r\n [virtualScroll]=\"virtualScroll\" [placeholder]=\"placeholder\" (change)=\"onSelectedItemChanged()\"\r\n [(ngModel)]=\"selectedItem\" [multiple]=\"isMultiple\" [disabled]=\"isDropdownDisabled\" [readonly]=\"isReadOnly\"\r\n [clearable]=\"clearable\" (clear)=\"clear()\" [appendTo]=\"appendTo\" dropdownPosition=\"bottom\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-container *ngIf=\"isChip\">\r\n <ng-container [ngTemplateOutlet]=\"chip\"\r\n [ngTemplateOutletContext]=\"{ item: item, showCross: clearable, clear: clear }\">\r\n </ng-container>\r\n </ng-container>\r\n <div [ngStyle]=\"setLabelStyle()\" *ngIf=\"!isChip\">{{ item.label }}</div>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" let-clear=\"clear\">\r\n <div [ngClass]=\"{ disabled: item.disabled }\">\r\n <div *ngIf=\"isChip\" class=\"chip\">\r\n <ng-container [ngTemplateOutlet]=\"chip\"\r\n [ngTemplateOutletContext]=\"{ item: item, showCross: false, clear: clear }\">\r\n </ng-container>\r\n </div>\r\n <div [ngStyle]=\"setLabelStyle()\" *ngIf=\"!isChip\">{{ item.label }}</div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n</div>\r\n\r\n<ng-template #chip let-showCross=\"showCross\" let-item=\"item\" let-clear=\"clear\">\r\n <ng-chip [enumClass]=\"enumChoices\" [withCross]=\"showCross\" [enumValue]=\"item.value\" [customColors]=\"customColors\"\r\n [item]=\"item\" [clear]=\"clear\">\r\n </ng-chip>\r\n</ng-template>","import { Component } from '@angular/core';\r\nimport { AgGridSelectMixin } from '../ag-grid-select-mixin';\r\n\r\n@Component({\r\n selector: 'choose-enum-renderer',\r\n templateUrl: './choose-enum-renderer.component.html',\r\n styleUrls: [\r\n './choose-enum-renderer.component.scss',\r\n ],\r\n})\r\nexport class ChooseEnumRendererComponent extends AgGridSelectMixin {\r\n valuesToDisable: number[] = [];\r\n valuesToHide: number[] = [];\r\n isChip: boolean = true;\r\n clearable: boolean = true;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n agInit(params: any): void {\r\n super.agInit(params);\r\n if (params.valuesToDisable != null) {\r\n this.valuesToDisable = params.valuesToDisable;\r\n }\r\n if (params.valuesToHide != null) {\r\n this.valuesToHide = params.valuesToHide;\r\n }\r\n if (params.isChip != null) {\r\n this.isChip = params.isChip;\r\n }\r\n if (params.clearable != null) {\r\n this.clearable = params.clearable;\r\n }\r\n }\r\n\r\n get showError() {\r\n if (this.rowLevelFG.get(this.key).errors && this.rowLevelFG.get(this.key).touched) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","<div class=\"all\" [ngClass]=\"{ single: !showError, double: showError }\" *ngIf=\"rowLevelFG\" [formGroup]=\"rowLevelFG\">\r\n <choose-enum [clearable]=\"clearable\" [formControlName]=\"key\" [appendTo]=\"'body'\" [label]=\"params.label\"\r\n [labelTextAlign]=\"params.labelTextAlign\" [labelTextFontWeight]=\"params.labelTextFontWeight\"\r\n [labelTextFontSize]=\"params.labelTextFontSize\" [selectedItem]=\"params.value\" [valuesToHide]=\"valuesToHide\"\r\n [valuesToDisable]=\"valuesToDisable\" [isDropdownDisabled]=\"params.isDropdownDisabled\"\r\n [enumChoices]=\"params.enumChoices\" [placeholder]=\"params.placeholder\" [width]=\"params.width\" [isChip]=\"isChip\"\r\n [paddingTop]=\"params.paddingTop\" [customColors]=\"params.customColors\" (change)=\"onEnumSelected($event)\">\r\n </choose-enum>\r\n</div>","export enum ChooseItemRendererValidationType {\r\n NONE = 0,\r\n ROW_LEVEL_UNIQUE = 1,\r\n}\r\n","export enum ChooseItemFullObjectControlConfig {\r\n OBJECT = 1,\r\n ID = 2,\r\n}\r\n","export class PrimaryColors {\r\n static $primaryBlueColor = '#155ED4';\r\n static $primaryPinkColor = '#F0509C';\r\n static $primaryTealColor = '#12957E';\r\n static $primaryCarbonColor = '#32353B';\r\n static $primaryGrayColor = '#676767';\r\n static $primaryPurpleColor = '#E3B1EB';\r\n static $primaryRedColor = '#A80002';\r\n static $primaryLightRedColor = '#FFDBDB';\r\n static $primaryLightGrayBlueColor = '#f7f8f9';\r\n static $primaryLightGrayColor = '#f0f0f0';\r\n static $primaryLightBlueColor = '#b9cff2';\r\n static $primaryYellowColor = '#F2CD5C';\r\n static $primaryOrangeColor = '#F2921D';\r\n static $primaryLimeGreenColor = '#AFFF00';\r\n static $primaryNavyBlueColor = '#000080';\r\n static $primaryOrangeRedColor = '#FF4500';\r\n static $primaryDarkPurpleColor = '#7600BC';\r\n}","export enum ChooseObjectTemplateType {\r\n DEFAULT = 0,\r\n BASIC = 1,\r\n CONTENT_PROJECTION = 2,\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nexport class DictionaryToHttpParamsConverter {\r\n static dictionaryToHttpParamsConverter(form_dictionary) {\r\n let queryParams = new HttpParams();\r\n for (let key in form_dictionary) {\r\n if (\r\n form_dictionary[key] !== null &&\r\n form_dictionary[key] !== '' &&\r\n form_dictionary[key] !== undefined &&\r\n form_dictionary[key]?.length !== 0 \r\n )\r\n queryParams = queryParams.append(key, form_dictionary[key]);\r\n }\r\n return queryParams;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DictionaryToHttpParamsConverter } from '../dictionary-to-params-converter';\r\n// import { environment } from '../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChooseGeneralItemService {\r\n // baseUrl: string = environment.apiURL;\r\n\r\n constructor(private http: HttpClient, @Inject('env') private env) { }//we have an issue with this line of code...can we meet to resolve it!\r\n\r\n getHeaders() {\r\n const token = localStorage.getItem(\"token\");\r\n const httpHeaders = new HttpHeaders(\r\n {\r\n 'Content-Type': \"application/json\",\r\n 'Authorization': 'Token ' + token\r\n });\r\n return { headers: httpHeaders };\r\n }\r\n\r\n getHeadersAndParams(dictionary) {\r\n let httpHeaders;\r\n const token = localStorage.getItem('token');\r\n if (token) {\r\n httpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset-utf-8',\r\n Authorization: 'Token ' + token,\r\n });\r\n } else {\r\n httpHeaders = new HttpHeaders();\r\n }\r\n const params = DictionaryToHttpParamsConverter.dictionaryToHttpParamsConverter(dictionary);\r\n return { headers: httpHeaders, params: params };\r\n }\r\n\r\n\r\n getAuthenticationHeadersWithQueryParams(params) {\r\n const token = localStorage.getItem(\"token\");\r\n const httpHeaders = new HttpHeaders(\r\n {\r\n 'Content-Type': \"application/json\",\r\n 'Authorization': 'Token ' + token\r\n }\r\n );\r\n return { headers: httpHeaders, params: params };\r\n }\r\n\r\n getData(apiPath: string, filterParams?: any): Observable<any> {\r\n if (filterParams) {\r\n return this.http.get(`${this.env.apiURL}${apiPath}`, this.getHeadersAndParams(filterParams));\r\n }\r\n else {\r\n return this.http.get(`${this.env.apiURL}${apiPath}`, this.getHeaders());\r\n }\r\n }\r\n}\r\n","export enum DropdownActionType {\r\n ADD = 0,\r\n MENU = 1\r\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LabelAndRoute } from './label-and-route.model';\r\nimport { DropdownActionType } from './dropdown-action-type.model';\r\n\r\n@Component({\r\n selector: 'dropdown-actions',\r\n templateUrl: './dropdown-actions.component.html',\r\n styleUrls: ['./dropdown-actions.component.scss']\r\n})\r\nexport class DropdownActionsComponent implements OnInit {\r\n dropdownActionTypes = DropdownActionType;\r\n @Input() canRoute: boolean = true;\r\n @Input() disabled: boolean;\r\n @Input() labelsAndRoutes: LabelAndRoute[] = [];\r\n @Input() route: string;\r\n @Input() dropdownActionType: DropdownActionType = this.dropdownActionTypes.ADD;\r\n @Output() addClicked = new EventEmitter();\r\n\r\n constructor(private _Router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.validateActions();\r\n }\r\n\r\n validateActions() {\r\n if (this.dropdownActionType == this.dropdownActionTypes.ADD) {\r\n if (this.canRoute) {\r\n if (this.route == \"\" || this.route == undefined || this.route == null) {\r\n throw Error(\"Route needs to be provided.\");\r\n }\r\n }\r\n else {\r\n if (this.route) {\r\n throw Error(\"Route shouldn't be provided since canRoute is false\");\r\n }\r\n }\r\n }\r\n else if (this.dropdownActionType == this.dropdownActionTypes.MENU) {\r\n if (!this.labelsAndRoutes.length) {\r\n throw Error(\"A list of labels & Routes need to be provided for the actions menu.\");\r\n }\r\n }\r\n else {\r\n throw Error(\"Dropdown Action Type is not recognized.\")\r\n }\r\n }\r\n\r\n onClickAdd($event) {\r\n $event.preventDefault();\r\n if (this.canRoute && this.route) {\r\n this._Router.navigate([this.route]);\r\n }\r\n this.addClicked.emit();\r\n }\r\n\r\n onClickLabel(route, $event) {\r\n $event.preventDefault();\r\n this._Router.navigate([route]);\r\n }\r\n}\r\n","<div [ngSwitch]=\"dropdownActionType\">\r\n <a *ngSwitchCase=\"dropdownActionTypes.ADD\" [href]=\"route\"\r\n [ngClass]=\"{'action-enabled':!disabled, 'disabled': disabled}\"\r\n (click)=\"onClickAdd($event)\">\r\n <fa-icon icon=\"plus\"></fa-icon>\r\n </a>\r\n <fa-icon *ngSwitchCase=\"dropdownActionTypes.MENU\"\r\n [ngClass]=\"{'action-enabled':!disabled, 'disabled': disabled}\"\r\n class=\"menu\" [matMenuTriggerFor]=\"menu\"\r\n icon=\"ellipsis-vertical\"></fa-icon>\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let labelAndRoute of labelsAndRoutes\" mat-menu-item>\r\n <a [href]=\"labelAndRoute.route\"\r\n (click)=\"onClickLabel(labelAndRoute.route, $event)\">{{labelAndRoute.label}}</a>\r\n </button>\r\n </mat-menu>\r\n</div>","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator,\r\n} from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ChipInputType } from '@jooler/shared-general-components';\r\nimport { filter, Subject, Subscription, switchMap, tap } from 'rxjs';\r\nimport { ChooseItemFullObjectControlConfig } from '../models/choose-item-full-object-control-config.enum';\r\nimport { LabelAndField } from '../models/label-and-field.model';\r\nimport { PrimaryColors } from '../primary-colors';\r\nimport { ChooseGeneralItemService } from './choose-general-item.service';\r\nimport { ChooseObjectBasicTemplate } from './choose-object-basic-template.model';\r\nimport { ChooseObjectTemplateType } from './choose-object-template-type.enum';\r\n\r\n@Component({\r\n selector: 'choose-general-item',\r\n templateUrl: './choose-general-item.component.html',\r\n styleUrls: ['./choose-general-item.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ChooseGeneralItemComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: ChooseGeneralItemComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ChooseGeneralItemComponent\r\n implements OnInit, OnChanges, Validator, ControlValueAccessor {\r\n primaryRed: string = PrimaryColors.$primaryRedColor;\r\n isLoading: boolean = false;\r\n @Input() items: any[];\r\n @Input() label: string = 'label';\r\n @Input() appendTo: string = 'body';\r\n @Input() placeholder: string;\r\n @Input() apiPath: string;\r\n @Input() isMultiple: boolean = false;\r\n @Input() hideSelectedItem: boolean;\r\n @Input() objects: LabelAndField[];\r\n @Input() showLabel: boolean = false;\r\n @Input() separator: string;\r\n @Input() width: number;\r\n @Input() isChip: Boolean = false;\r\n @Input() isTypeDate: boolean;\r\n @Input() chipColor: string = 'black';\r\n @Input() chipTextColor: string = 'white';\r\n @Input() chipWidth: number = 11;\r\n @Input() selectedItemId: number | number[];\r\n @Input() disabled: boolean;\r\n @Input() readOnly: boolean;\r\n @Input() useFullObject: boolean = false;\r\n @Input() showAdd: boolean = false;\r\n @Input() dialogComponentClass: any;\r\n @Input() showDialogDefaultButtons: boolean = false;\r\n @Input() dialogComponentInputs: any = {\r\n isDialog: true,\r\n };\r\n @Input() bindValueKey: string | null = 'id'; // or null for full object\r\n @Input() addRoute: string;\r\n @Input() canActionsRoute: boolean;\r\n @Input() dialogTitle: string;\r\n @Input() clearable: boolean = true;\r\n @Input() filterParams: any;\r\n @Input() templateType: ChooseObjectTemplateType = ChooseObjectTemplateType.DEFAULT;\r\n @Input() basicTemplateData: ChooseObjectBasicTemplate;\r\n @Input() contentProjectionLabelKey: string;\r\n @Input() fullObjectControlConfig: ChooseItemFullObjectControlConfig =\r\n ChooseItemFullObjectControlConfig.ID;\r\n @Output() change = new EventEmitter();\r\n @Output() blur = new EventEmitter();\r\n @ContentChild('customOption') customOptionTemplate: TemplateRef<any>;\r\n\r\n ChooseObjectTemplateType = ChooseObjectTemplateType;\r\n chipInputTypes = ChipInputType;\r\n private fetchTrigger$ = new Subject<any>();\r\n private fetchSub?: Subscription;\r\n\r\n constructor(\r\n private _ChooseGeneralItemService: ChooseGeneralItemService,\r\n private dialog: MatDialog,\r\n private _cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.templateType == ChooseObjectTemplateType.BASIC) {\r\n this.setupBasicTemplate();\r\n }\r\n\r\n this.fetchTrigger$\r\n .pipe(\r\n tap(() => (this.isLoading = true)),\r\n switchMap(({ apiPath, filterParams }) =>\r\n this._ChooseGeneralItemService.getData(apiPath, filterParams)\r\n )\r\n )\r\n .subscribe(data => {\r\n this.items = data;\r\n this.isLoading = false;\r\n console.log(\"response: items from '\", this.apiPath, \"' found: \", this.items);\r\n });\r\n }\r\n\r\n private triggerFetch() {\r\n this.isLoading = true;\r\n this.fetchTrigger$.next({\r\n apiPath: this.apiPath,\r\n filterParams: this.filterParams,\r\n });\r\n }\r\n\r\n setupBasicTemplate() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // console.log('changes: ', changes);\r\n this.validateInputs(changes);\r\n if (this.showAdd) {\r\n this.validateAddConfiguration();\r\n }\r\n\r\n // 1️⃣ Manually assign input updates immediately\r\n if (changes['filterParams']) {\r\n this.filterParams = changes['filterParams'].currentValue;\r\n }\r\n\r\n // CASE A — apiPath changed and items not provided\r\n if (changes['apiPath'] && !changes['items']) {\r\n const newApiPath = changes['apiPath'].currentValue;\r\n\r\n // If apiPath becomes undefined → tear down subscription\r\n if (!newApiPath) {\r\n this.cleanupFetchSubscription();\r\n return; // Do NOT subscribe and do NOT fetch\r\n }\r\n\r\n // apiPath is now defined → create subscription if missing\r\n if (!this.fetchSub) {\r\n this.setupFetchSubscription();\r\n }\r\n\r\n // And trigger the fetch if items not provided\r\n if (!this.items && this.fetchSub) {\r\n // console.log('FETTCCHNNG 3');\r\n this.triggerFetch();\r\n }\r\n }\r\n\r\n // CASE B — Parent passed items → use them and never fetch\r\n if (changes['items']) {\r\n if (changes['items'].currentValue && changes['items'].currentValue.length > 0) {\r\n this.isLoading = false;\r\n this.items = changes['items'].currentValue;\r\n return;\r\n }\r\n }\r\n\r\n // FROM HERE → items is not provided → backend fetch required\r\n // CASE C — initial load (items missing)\r\n if (changes['items'] && !changes['items'].currentValue && this.fetchSub) {\r\n // console.log('FETTCCHNNG 1');\r\n this.triggerFetch();\r\n }\r\n\r\n // CASE D — filterParams changed and items not provided\r\n if (changes['filterParams'] && this.fetchSub) {\r\n // console.log('FETTCCHNNG 2');\r\n\r\n this.triggerFetch();\r\n }\r\n }\r\n\r\n\r\n private setupFetchSubscription() {\r\n this.fetchSub = this.fetchTrigger$\r\n .pipe(\r\n filter(trigger => trigger !== null),\r\n tap(() => (this.isLoading = true)),\r\n switchMap(({ apiPath, filterParams }) =>\r\n this._ChooseGeneralItemService.getData(apiPath, filterParams)\r\n )\r\n )\r\n .subscribe(data => {\r\n this.items = data;\r\n this.isLoading = false;\r\n // console.log('fetched items from ', this.apiPath, data);\r\n });\r\n }\r\n\r\n\r\n validateAddConfiguration() {\r\n if (\r\n (this.addRoute == '' || this.addRoute == null || this.addRoute == undefined) &&\r\n (this.dialogComponentClass == null || this.dialogComponentClass == undefined)\r\n ) {\r\n throw Error(\r\n 'Showing the add button requires either a route for the add button to route to, or a component class for a dialog to open up with that component.'\r\n );\r\n }\r\n }\r\n\r\n writeValue(item: any) {\r\n if (item != undefined || item != null) {\r\n if (!this.useFullObject) {\r\n this.selectedItemId = item;\r\n } else {\r\n if (Array.isArray(item)) {\r\n this.selectedItemId = item.map(item => item.id);\r\n } else {\r\n this.selectedItemId = item.id;\r\n }\r\n }\r\n } else {\r\n this.selectedItemId = null;\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n private onValidationChange: any = () => { };\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n this.blur.emit();\r\n }\r\n\r\n onSelectedItemChanged($event) {\r\n let valueToPropagate: any;\r\n if (this.fullObjectControlConfig == ChooseItemFullObjectControlConfig.ID) {\r\n valueToPropagate = this.selectedItemId;\r\n } else if (this.fullObjectControlConfig == ChooseItemFullObjectControlConfig.OBJECT) {\r\n valueToPropagate = $event;\r\n } else {\r\n throw Error('ChooseItemFullObjectControlConfig is not recognized.');\r\n }\r\n this.propagateChange(valueToPropagate);\r\n this.change.emit($event);\r\n this.onValidationChange();\r\n }\r\n\r\n validateInputs(changes: SimpleChanges) {\r\n if (\r\n changes.apiPath &&\r\n changes.apiPath.currentValue &&\r\n changes.items &&\r\n changes.items.currentValue\r\n ) {\r\n throw Error('Both an API path and an items list was provided.');\r\n }\r\n }\r\n\r\n getData() {\r\n if (this.apiPath) {\r\n this._ChooseGeneralItemService.getData(this.apiPath, this.filterParams).subscribe({\r\n next: (response: any[]) => {\r\n this.items = response;\r\n this.isLoading = false;\r\n this._cdr.markForCheck();\r\n console.log(\"response: items from '\", this.apiPath, \"' found: \", this.items);\r\n },\r\n error: error => console.error('error', error),\r\n });\r\n }\r\n }\r\n\r\n setWidth() {\r\n let style = {};\r\n if (this.width) {\r\n style = {\r\n width: this.width + 'rem',\r\n };\r\n } else {\r\n style = {\r\n width: '100%',\r\n };\r\n }\r\n return style;\r\n }\r\n\r\n onClickAddNew() {\r\n console.log('DYNAMIC DIALOG NOT IMPLEMENTED IN LIBRARY YET');\r\n\r\n // Add dynamic dialog later\r\n // let dialogRef = this.dialog.open(DynamicDialogComponent, {\r\n // panelClass: 'custom-dialog-padding',\r\n // width: '90%',\r\n // minWidth: '90%',\r\n // maxHeight: '90vh',\r\n // data: {\r\n // component: this.dialogComponentClass,\r\n // showDefaultButtons: this.showDialogDefaultButtons,\r\n // title: this.dialogTitle,\r\n // inputs: this.dialogComponentInputs,\r\n // },\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe((data: any) => {\r\n // if (data) {\r\n // console.log('New item Added: ', data);\r\n // this.items.push(data);\r\n // this.items = [...this.items];\r\n // }\r\n // });\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n private cleanupFetchSubscription() {\r\n if (this.fetchSub) {\r\n this.fetchSub.unsubscribe();\r\n this.fetchSub = undefined;\r\n }\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return null;\r\n if (control) {\r\n const errors = control.errors;\r\n if (errors) {\r\n console.log('errorssss: ', errors);\r\n return errors;\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"select\">\r\n <ng-select [readonly]=\"readOnly\" [loading]=\"isLoading\" [hideSelected]=\"hideSelectedItem\"\r\n [closeOnSelect]=\"!isMultiple\" [ngStyle]=\"setWidth()\" class=\"component\" [disabled]=\"disabled\"\r\n [appendTo]=\"appendTo\" dropdownPosition=\"bottom\" (blur)=\"updateBlur()\" [bindLabel]=\"label\"\r\n [bindValue]=\"bindValueKey\" [compareWith]=\"\" [items]=\"items\" [placeholder]=\"placeholder\"\r\n (change)=\"onSelectedItemChanged($event)\" [(ngModel)]=\"selectedItemId\" [clearable]=\"clearable\"\r\n [multiple]=\"isMultiple\">\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.DEFAULT\">\r\n <ng-template *ngIf=\"isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\"> </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"objects; else nonObjectLabelTemplate\">\r\n <span class=\"template\" *ngFor=\"let object of objects; let isLast = last\">\r\n <span class=\"template-item\">\r\n {{ showLabel ? object.label + ': ' : ''\r\n }}{{\r\n isTypeDate ? (item[object.field] | date: 'mediumDate') : item[object.field]\r\n }}</span>\r\n </span>\r\n </ng-container>\r\n <ng-template #nonObjectLabelTemplate>{{ item }} </ng-template>\r\n </ng-template>\r\n\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"objects; else nonObjectOptionTemplate\">\r\n <span *ngFor=\"let object of objects; let isLast = last\">\r\n {{ showLabel ? object.label + ': ' : ''\r\n }}{{ isTypeDate ? (item[object.field] | date: 'mediumDate') : item[object.field] }}\r\n </span>\r\n </ng-container>\r\n <ng-template #nonObjectOptionTemplate>{{ item }} </ng-template>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"isChip && !isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-chip (mousedown)=\"$event.stopPropagation()\" [clear]=\"clear\" [withCross]=\"isMultiple\"\r\n [inputType]=\"chipInputTypes.CUSTOM\"\r\n [backgroundColor]=\"item.disabled == true ? primaryRed : chipColor\" [label]=\"item[objects[0].field]\"\r\n [item]=\"item\">\r\n </ng-chip>\r\n </ng-template>\r\n <ng-template *ngIf=\"isChip && !isLoading\" ng-option-tmp let-clear=\"clear\" let-item=\"item\">\r\n <ng-chip (mousedown)=\"$event.stopPropagation()\" [withCross]=\"false\" [inputType]=\"chipInputTypes.CUSTOM\"\r\n [backgroundColor]=\"item.disabled == true ? primaryRed : chipColor\" [label]=\"item[objects[0].field]\">\r\n </ng-chip>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.BASIC\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item[basicTemplateData.label] }}\r\n </ng-template>\r\n <ng-template ng-option-tmp let-clear=\"clear\" let-item=\"item\">\r\n <mat-card class=\"basic-template-card\" [ngClass]=\"{\r\n 'with-image': basicTemplateData.hasImage,\r\n 'without-image': !basicTemplateData.hasImage,\r\n }\">\r\n <div class=\"image-cont\" *ngIf=\"basicTemplateData.hasImage\">\r\n <img class=\"main-image\" [src]=\"item[basicTemplateData.image]\"\r\n onerror=\"this.src='../../../assets/images/defaultImage.jpg';\" />\r\n </div>\r\n\r\n <div class=\"info\">\r\n <div class=\"title\">\r\n {{ item[basicTemplateData.title] }}\r\n </div>\r\n <div class=\"subtitle-style\" *ngIf=\"basicTemplateData.hasSubtitleOne\">\r\n <span>{{ item[basicTemplateData.subtitleOne] }}</span>\r\n <ng-container *ngIf=\"basicTemplateData.hasSubtitleTwo\">\r\n <span class=\"col-divider\"> | </span>\r\n <span>{{ item[basicTemplateData.subtitleTwo] }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"description\" *ngIf=\"basicTemplateData.hasDescription\">\r\n {{ item[basicTemplateData.description] }}\r\n </div>\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.CONTENT_PROJECTION\">\r\n <ng-template *ngIf=\"isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\"> </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <span class=\"template\">\r\n <span class=\"template-item\"> {{ item[contentProjectionLabelKey] }} </span>\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container [ngTemplateOutlet]=\"customOptionTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n <dropdown-actions *ngIf=\"showAdd\" [canRoute]=\"canActionsRoute\" [route]=\"addRoute\"\r\n (addClicked)=\"onClickAddNew()\"></dropdown-actions>\r\n</div>\r\n ","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'show-table-errors',\r\n templateUrl: './show-table-errors.component.html',\r\n styleUrls: ['./show-table-errors.component.scss']\r\n})\r\nexport class ShowTableErrorsComponent implements OnInit {\r\n @Input() message: any;\r\n showDetails: boolean;\r\n ngOnInit() {\r\n }\r\n\r\n onMouseEnter() {\r\n this.showDetails = true;\r\n }\r\n\r\n onMouseLeave() {\r\n this.showDetails = false;\r\n }\r\n\r\n}\r\n","<div (mouseenter)=\"onMouseEnter()\"(mouseleave)=\"onMouseLeave()\" class=\"icon\">\r\n <fa-icon class=\"icon\" icon=\"info-circle\" ></fa-icon>\r\n <span *ngIf=\"message\" class=\"message\"\r\n [ngClass]=\"{'no-details' : !showDetails , 'details': showDetails}\">{{message}}</span>\r\n</div>","export enum ToolTipMessageType {\r\n ERROR = 0,\r\n WARNING = 1,\r\n HELP = 2,\r\n DEFAULT = 3,\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { PrimaryColors } from '../primary-colors';\r\nimport { ToolTipMessageType } from './tooltip-message-type.enum';\r\n\r\n@Component({\r\n selector: 'tooltip-msg-error',\r\n templateUrl: './tooltip-msg-error.component.html',\r\n styleUrls: ['./tooltip-msg-error.component.scss'],\r\n})\r\nexport class TooltipMsgError implements OnInit, OnChanges, OnDestroy {\r\n @Input() width: string;\r\n @Input() control: AbstractControl | null = null;\r\n @Input() messageType: ToolTipMessageType = ToolTipMessageType.ERROR;\r\n @Input() message: any;\r\n iconElId: string;\r\n messageElId: string;\r\n isLeft: boolean = true;\r\n showDetails: boolean;\r\n tooltipIcon: HTMLElement;\r\n tooltipMessage: HTMLElement;\r\n iconStyle: any;\r\n isDictionary: boolean;\r\n\r\n @HostListener('document:scroll ')\r\n onScrollY() {\r\n this.onMouseLeave();\r\n }\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private _El: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.iconElId = this.generateRandomString();\r\n this.messageElId = this.generateRandomString();\r\n this.setIconStyle();\r\n this.checkErrorType();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.checkErrorType();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (document.getElementById(this.messageElId)) {\r\n document.getElementById(this.messageElId).remove();\r\n }\r\n }\r\n\r\n checkErrorType() {\r\n if (this.message) {\r\n if (this.message.constructor == Object) {\r\n this.isDictionary = true;\r\n } else if (typeof this.message === 'string') {\r\n this.isDictionary = false;\r\n } else {\r\n this.isDictionary = false;\r\n }\r\n }\r\n }\r\n\r\n getThemedMessageStyle() {\r\n let backgroundColor: string;\r\n let fontBorderColor: string;\r\n\r\n switch (this.messageType) {\r\n case ToolTipMessageType.ERROR:\r\n backgroundColor = '#fde5f0';\r\n fontBorderColor = PrimaryColors.$primaryPinkColor;\r\n break;\r\n case ToolTipMessageType.WARNING:\r\n backgroundColor = '#fdefdd';\r\n fontBorderColor = PrimaryColors.$primaryOrangeColor;\r\n\r\n break;\r\n case ToolTipMessageType.HELP:\r\n backgroundColor = '#d1f9f2';\r\n fontBorderColor = PrimaryColors.$primaryTealColor;\r\n break;\r\n default:\r\n backgroundColor = PrimaryColors.$primaryLightGrayColor;\r\n fontBorderColor = PrimaryColors.$primaryGrayColor;\r\n break;\r\n }\r\n let style = {\r\n 'background-color': backgroundColor,\r\n 'font-weight': 'bold',\r\n color: fontBorderColor,\r\n border: '0.2rem solid ' + fontBorderColor,\r\n 'border-left': '0.5rem solid ' + fontBorderColor,\r\n };\r\n\r\n return style;\r\n }\r\n\r\n setMessageStyle() {\r\n let style = {};\r\n\r\n if (this.width) {\r\n style['width'] = this.width;\r\n }\r\n }\r\n\r\n get messageStyle() {\r\n let commonMessageStyle = {};\r\n\r\n if (this.width) {\r\n commonMessageStyle['width'] = this.width;\r\n }\r\n return {\r\n ...commonMessageStyle,\r\n ...(this.showDetails ? this.getThemedMessageStyle() : {}),\r\n };\r\n }\r\n\r\n setIconStyle() {\r\n let backgroundColor: string;\r\n switch (this.messageType) {\r\n case ToolTipMessageType.ERROR:\r\n backgroundColor = PrimaryColors.$primaryPinkColor;\r\n break;\r\n case ToolTipMessageType.WARNING:\r\n backgroundColor = PrimaryColors.$primaryOrangeColor;\r\n break;\r\n case ToolTipMessageType.HELP:\r\n backgroundColor = PrimaryColors.$primaryTealColor;\r\n break;\r\n default:\r\n backgroundColor = PrimaryColors.$primaryGrayColor;\r\n break;\r\n }\r\n let style = {\r\n color: backgroundColor,\r\n };\r\n\r\n this.iconStyle = style;\r\n }\r\n\r\n onMouseEnter() {\r\n this.showDetails = true;\r\n // CDR is needed to let the DOM know the box error has a width\r\n this.cdr.detectChanges();\r\n this.tooltipMessage = document.getElementById(this.messageElId);\r\n if (this.message) {\r\n this.getDirection(this.tooltipMessage);\r\n document.body.appendChild(this.tooltipMessage);\r\n let messageElement = document.getElementById(this.messageElId);\r\n let icon = document.getElementById(this.iconElId);\r\n let rect = icon.getBoundingClientRect();\r\n\r\n let top = rect.top;\r\n let left = rect.left;\r\n let right = rect.right;\r\n let appendedLeft: number;\r\n let appendedRight: number;\r\n let appendedTop = top - messageElement.offsetHeight;\r\n this.tooltipMessage.style.top = appendedTop + 'px';\r\n this.tooltipMessage.style.zIndex = '1000';\r\n\r\n if (this.isLeft) {\r\n appendedLeft = left + icon.offsetWidth - 5;\r\n this.tooltipMessage.style.left = appendedLeft + 'px';\r\n } else {\r\n appendedRight = window.innerWidth - right + 5;\r\n this.tooltipMessage.style.right = appendedRight + 'px';\r\n }\r\n }\r\n }\r\n\r\n onMouseLeave() {\r\n this.showDetails = false;\r\n }\r\n\r\n getDirection(element) {\r\n // Calculating the width difference between screen width minus the poistion of the icon from left to right (getBoundingClientRect().right)\r\n let difference = window.innerWidth - element.getBoundingClientRect().right;\r\n // hard coded + 12 is for the padding that has been added to router-outlet\r\n // The if statment here check if there is enough space for the box error to show from left to right , if not enough space, the box error will pop up from right to left\r\n if (difference <= element.offsetWidth + 12) {\r\n this.isLeft = false;\r\n } else {\r\n this.isLeft = true;\r\n }\r\n }\r\n\r\n generateRandomString() {\r\n let charsAndNumbs = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';\r\n let text = '';\r\n for (let i = 0; i < 8; i++) {\r\n text += charsAndNumbs.charAt(Math.floor(Math.random() * charsAndNumbs.length));\r\n }\r\n return text;\r\n }\r\n\r\n // Helper to decide how to display the value\r\n formatValue(value: any): string {\r\n if (!value) return '';\r\n\r\n // 1. If it's an array (like your jurisdiction error)\r\n if (Array.isArray(value)) {\r\n // Map through the array and extract 'message' if it exists, otherwise stringify\r\n return value\r\n .map(item => {\r\n return typeof item === 'object' && item.message ? item.message : JSON.stringify(item);\r\n })\r\n .join(', ');\r\n }\r\n\r\n // 2. If it's a single object (but not an array)\r\n if (typeof value === 'object') {\r\n return value.message || JSON.stringify(value);\r\n }\r\n\r\n // 3. It's a string or number\r\n return value;\r\n }\r\n}\r\n","<div\r\n *ngIf=\"message && !control\"\r\n class=\"container\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\">\r\n <fa-icon [id]=\"iconElId\" [ngStyle]=\"iconStyle\" icon=\"circle-exclamation\" class=\"icon\"></fa-icon>\r\n <div\r\n *ngIf=\"!isDictionary\"\r\n [ngStyle]=\"messageStyle\"\r\n [id]=\"messageElId\"\r\n class=\"message\"\r\n [ngClass]=\"{ 'no-details': !showDetails, details: showDetails }\">\r\n {{ message }}\r\n </div>\r\n\r\n <div\r\n *ngIf=\"isDictionary\"\r\n [ngStyle]=\"messageStyle\"\r\n [id]=\"messageElId\"\r\n class=\"message\"\r\n [ngClass]=\"{ 'no-details': !showDetails, details: showDetails }\">\r\n <div class=\"dict-cont\" *ngFor=\"let entry of message | keyvalue\">\r\n <strong>{{ entry.key }}: </strong>\r\n <span>{{ formatValue(entry.value) }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"control?.touched && control.errors\"\r\n class=\"container\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\">\r\n <fa-icon [ngStyle]=\"iconStyle\" [id]=\"iconElId\" icon=\"circle-exclamation\" class=\"icon\"></fa-icon>\r\n <div\r\n [ngStyle]=\"messageStyle\"\r\n [id]=\"messageElId\"\r\n class=\"message\"\r\n [ngClass]=\"{ 'no-details': !showDetails, details: showDetails }\">\r\n <div class=\"dict-cont\" *ngFor=\"let entry of message | keyvalue\">\r\n <strong>{{ entry.key }}: </strong>\r\n <span>{{ formatValue(entry.value) }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Directive, ElementRef, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'\r\nimport { PrimaryColors } from './primary-colors';\r\n\r\n@Directive({\r\n selector: '[addAsterisk]'\r\n})\r\nexport class AddAsteriskDirective implements OnInit, OnChanges {\r\n @Input('show') show: boolean = true;\r\n\r\n constructor(\r\n private elem: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.toggleAsterisk();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.toggleAsterisk();\r\n }\r\n\r\n toggleAsterisk() {\r\n const existingAsterisk = this.elem.nativeElement.querySelector('.custom-asterisk');\r\n\r\n if (this.show) {\r\n if (!existingAsterisk) {\r\n const customAsterisk = `<span class=\"custom-asterisk\" style=\"color:${PrimaryColors.$primaryRedColor};\"> *</span> `\r\n this.elem.nativeElement.insertAdjacentHTML('beforeend', customAsterisk);\r\n }\r\n }\r\n else {\r\n if (existingAsterisk) {\r\n existingAsterisk.remove();\r\n }\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidationMessageService {\r\n}\r\n\r\n\r\nexport class MinLengthValidationError {\r\n requirement: number;\r\n\r\n constructor(requirement: number) {\r\n\r\n this.requirement = requirement;\r\n }\r\n\r\n buildMessage() {\r\n return \"Must be a minimum length of \" + this.requirement + \" letters!\";\r\n }\r\n}\r\n\r\nexport class InvalidIntegerNumberValidatorEerror {\r\n buildMessage() {\r\n return \"Must only contain numbers, no decimals or words allowed\";\r\n }\r\n}\r\n\r\nexport class PositiveIntegerNumberValidatorError {\r\n buildMessage() {\r\n return \"Must be a positive integer\";\r\n }\r\n}\r\n\r\n\r\nexport class MaxLengthValidationError {\r\n requirement: number;\r\n\r\n constructor(requirement: number) {\r\n this.requirement = requirement;\r\n }\r\n\r\n buildMessage() {\r\n return \"Must be a maximum length of \" + this.requirement + \" letters!\";\r\n }\r\n}\r\n\r\nexport class MaxValidationError{\r\n requirement: number;\r\n\r\n constructor(requirement: number) {\r\n this.requirement = requirement;\r\n }\r\n\r\n buildMessage() {\r\n return \"The largest acceptable input is \" + this.requirement;\r\n }\r\n}\r\nexport class MinValidationError{\r\n requirement: number;\r\n\r\n constructor(requirement: number) {\r\n this.requirement = requirement;\r\n }\r\n\r\n buildMessage() {\r\n return \"The smallest acceptable input is \" + this.requirement ;\r\n }\r\n}\r\n\r\nexport class PatternValidatorError {\r\n requirement: any;\r\n\r\n constructor(requirement: string) {\r\n this.requirement = requirement\r\n }\r\n\r\n buildMessage() {\r\n if (this.requirement == '^[a-zA-Z ]*$') {\r\n return \"This field must only contain words \";\r\n }\r\n else if (this.requirement == '/[0-9]-[0-9]+$/') {\r\n return \"This field must only contain numbers and a - \" + \"<br>\" + \"Example: 71-716971\";\r\n }\r\n else if (this.requirement = 'forDate') {\r\n return \"Date needs to be DD/MM/YYYY\";\r\n }\r\n }\r\n}\r\n\r\nexport class RequiredValidatorError {\r\n buildMessage() {\r\n return \"This Field Is Required\";\r\n }\r\n}\r\n\r\nexport class EmailValidatorError {\r\n\r\n buildMessage() {\r\n return \"Make Sure It Is An Email Format\" + \"<br>\" + \"example@jooler.io\";\r\n }\r\n}\r\n\r\nexport class ValidationError {\r\n static getRelevantError(validationType: string, validationValue: any) {\r\n let validationMessage;\r\n validationMessage = this.MessageDictionary(validationValue, validationType);\r\n return validationMessage;\r\n }\r\n\r\n\r\n static MessageDictionary(value, validationType) {\r\n let ValidationMessageForInput = {\r\n 'minlength': new MinLengthValidationError(value).buildMessage(),\r\n 'maxlength': new MaxLengthValidationError(value).buildMessage(),\r\n 'max': new MaxValidationError(value).buildMessage(),\r\n 'min': new MinValidationError(value).buildMessage(),\r\n 'pattern': new PatternValidatorError(value).buildMessage(),\r\n 'required': new RequiredValidatorError().buildMessage(),\r\n 'email': new EmailValidatorError().buildMessage(),\r\n 'invalidIntegerNumber': new InvalidIntegerNumberValidatorEerror().buildMessage(),\r\n 'invalidPositiveInteger': new PositiveIntegerNumberValidatorError().buildMessage(),\r\n }\r\n return ValidationMessageForInput[validationType];\r\n }\r\n\r\n static validationMessageForDate = {\r\n 'required': new RequiredValidatorError().buildMessage(),\r\n 'pattern': new PatternValidatorError('forDate').buildMessage(),\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { NgControl, NgModel, ValidationErrors } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { PrimaryColors } from './primary-colors';\r\nimport { ValidationError } from './services/validation-message.service';\r\n\r\n@Directive({\r\n selector: '[appFormControlValidationMsgForNgSelect]',\r\n providers: [NgModel],\r\n})\r\nexport class FormControlValidationMsgDirectiveForNgSelect implements OnInit {\r\n errorMessage: any;\r\n showDot: boolean;\r\n errorDivId: string | number;\r\n @Input('afterEnd') afterEnd: boolean = true;\r\n @Input('showBoxError') showBoxError: boolean = true;\r\n validationError = ValidationError;\r\n statusChangeSubscription: Subscription;\r\n\r\n constructor(\r\n private elRef: ElementRef,\r\n private control: NgControl\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.errorDivId) {\r\n this.errorDivId = this.control.name;\r\n }\r\n this.statusChangeSubscription = this.control.statusChanges.subscribe(status => {\r\n if (status == 'INVALID' && this.control.touched) {\r\n this.showNgSelectError();\r\n } else {\r\n this.removeError();\r\n }\r\n });\r\n this.control.valueChanges.subscribe({\r\n next: () => {\r\n if (this.control.errors && this.control.touched) {\r\n this.showNgSelectError();\r\n } else {\r\n this.removeError();\r\n }\r\n },\r\n });\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusout() {\r\n if (this.control.errors && this.control.touched) {\r\n this.showNgSelectError();\r\n } else {\r\n this.removeError();\r\n }\r\n }\r\n\r\n private removeError(): void {\r\n this.errorMessage = '';\r\n const errorElement = document.getElementById(this.errorDivId as string);\r\n if (errorElement) errorElement.remove();\r\n }\r\n\r\n private showNgSelectError() {\r\n this.removeError();\r\n const valErrors: ValidationErrors = this.control.errors;\r\n\r\n if (this.control.errors.length > 1) {\r\n this.showDot = true;\r\n } else {\r\n this.showDot = false;\r\n }\r\n if (valErrors) {\r\n const keys = Object.keys(valErrors);\r\n for (let i = 0; i < keys.length; i++) {\r\n switch (keys[i]) {\r\n case 'required': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\\u25CF ' + message : message}`;\r\n this.control.control.setErrors(\r\n { required: true, message: message },\r\n { emitEvent: false }\r\n );\r\n break;\r\n }\r\n case 'validatePhoneNumber': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\\u25CF ' + message : message}`;\r\n this.control.control.setErrors(\r\n { validatePhoneNumber: true, message: message },\r\n { emitEvent: false }\r\n );\r\n break;\r\n }\r\n case 'customMessage': {\r\n console.log('valErrors', valErrors);\r\n let message = valErrors.message;\r\n this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\\u25CF ' + message : message}`;\r\n }\r\n }\r\n }\r\n if (this.showBoxError) {\r\n const errDiv =\r\n `<div style=\"color:${PrimaryColors.$primaryRedColor}; width: ${this.afterEnd ? this.elRef.nativeElement.offsetWidth + 'px' : '100%'}; min-width: 100%; background-color: ${PrimaryColors.$primaryLightRedColor}; padding: .5rem; border-radius: .5rem; border: .1rem solid ${PrimaryColors.$primaryRedColor} ;border-left: .75rem solid ${PrimaryColors.$primaryRedColor}; margin-top:.5rem; font-size: 1.2rem; \" id=\"` +\r\n this.errorDivId +\r\n '\">' +\r\n `<h3 style= \" font-size: 1.3rem; margin-bottom:.5rem; margin:0; color: ${PrimaryColors.$primaryRedColor}; font-weight: 700; line-height: 1.6rem;\">` +\r\n 'Please Complete all details' +\r\n '</h3>' +\r\n this.errorMessage +\r\n '</div>';\r\n if (!this.afterEnd)\r\n this.elRef.nativeElement.parentElement.insertAdjacentHTML('afterend', errDiv);\r\n else {\r\n this.elRef.nativeElement.insertAdjacentHTML('afterend', errDiv);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { RowNode } from 'ag-grid-community';\r\nimport { ChooseObjectBasicTemplate } from '../choose-general-item/choose-object-basic-template.model';\r\nimport { ChooseObjectTemplateType } from '../choose-general-item/choose-object-template-type.enum';\r\nimport { ChooseGeneralItemRendererChangeEvent } from './choose-general-item-renderer-change-event.interface';\r\nimport { ChooseItemRendererValidationType } from './choose-general-item-renderer-validation-type.enum';\r\n\r\n@Component({\r\n selector: 'choose-general-item-renderer',\r\n templateUrl: './choose-general-item-renderer.component.html',\r\n styleUrls: ['./choose-general-item-renderer.component.scss']\r\n})\r\nexport class ChooseGeneralItemRendererComponent implements ICellRendererAngularComp {\r\n arrayKey: string = 'entries';\r\n formGroup: FormGroup;\r\n items: any[];\r\n key: string;\r\n params: any;\r\n validationType: ChooseItemRendererValidationType = ChooseItemRendererValidationType.NONE;\r\n validationTypes = ChooseItemRendererValidationType;\r\n clearable: boolean = true;\r\n templateType: ChooseObjectTemplateType = ChooseObjectTemplateType.DEFAULT;\r\n basicTemplateData: ChooseObjectBasicTemplate;\r\n valueToBind: string | null = 'id'; // or null for full object\r\n showDropdown: boolean = true;\r\n\r\n constructor() { }\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n if (params.context.arrayKey) {\r\n this.arrayKey = params.context.arrayKey;\r\n }\r\n this.setupRenderer(params);\r\n this.formGroup = params.context.formGroup.get(this.arrayKey).at(params.node.rowIndex);\r\n this.key = params.context.createKey(params.columnApi, params.column);\r\n }\r\n\r\n onCellDataChanged($event: any) {\r\n let object: any = $event;\r\n this.formGroup.get(this.key);\r\n let rowNode: RowNode = this.params.node;\r\n let valueToBind: any;\r\n\r\n if (this.valueToBind === null) {\r\n // Case 1: Bind the entire object\r\n valueToBind = object;\r\n } else if (this.valueToBind && object) {\r\n // Case 2: Bind a specific property using dynamic access\r\n valueToBind = object[this.valueToBind];\r\n } else {\r\n // Case 3: Handle null/cleared selection\r\n valueToBind = null;\r\n }\r\n\r\n rowNode.setDataValue(this.key, valueToBind);\r\n\r\n if (this.params.onCellValueChanged instanceof Function) {\r\n const params: ChooseGeneralItemRendererChangeEvent = {\r\n value: object?.[this.valueToBind],\r\n object: object,\r\n rowNode: rowNode,\r\n colId: this.params.column.colId,\r\n lineFormGroup: this.params.context.formGroup.get(this.arrayKey).at(rowNode.rowIndex),\r\n };\r\n this.params.onCellValueChanged(params);\r\n }\r\n if (this.validationType == ChooseItemRendererValidationType.ROW_LEVEL_UNIQUE) {\r\n this.setRowLevelUniqueItems(this.params);\r\n }\r\n }\r\n\r\n setupRenderer(params) {\r\n if (params.showDropdown === true || params.showDropdown === false) {\r\n this.showDropdown = params.showDropdown;\r\n }\r\n if (params.bindValueKey != undefined) {\r\n this.valueToBind = params.bindValueKey;\r\n }\r\n if (params.clearable != null && params.clearable != undefined) {\r\n this.clearable = params.clearable;\r\n }\r\n if (params.templateType) {\r\n this.templateType = params.templateType;\r\n }\r\n if (params.basicTemplateData) {\r\n this.basicTemplateData = params.basicTemplateData;\r\n }\r\n if (params.chooseItemValidationType != null && params.chooseItemValidationType != undefined) {\r\n this.validationType = params.chooseItemValidationType;\r\n }\r\n\r\n if (this.validationType == ChooseItemRendererValidationType.ROW_LEVEL_UNIQUE) {\r\n this.setRowLevelUniqueItems(params);\r\n } else if (this.validationType == ChooseItemRendererValidationType.NONE) {\r\n this.setAllItems(params);\r\n } else {\r\n throw Error('ChooseGeneralItemRendererValidationType is not recognized.');\r\n }\r\n }\r\n\r\n setAllItems(params) {\r\n if (params.items) {\r\n this.items = params.items;\r\n }\r\n }\r\n\r\n setRowLevelUniqueItems(params) {\r\n let items: any[];\r\n if (params.items) {\r\n items = params.items;\r\n if (params.value && !items.includes(item => item?.[this.valueToBind] !== params.value)) {\r\n let appendedItems = [...items];\r\n appendedItems.push(params.allItems.find(item => item?.[this.valueToBind] === params.value));\r\n items = appendedItems;\r\n }\r\n this.items = items;\r\n }\r\n }\r\n\r\n refresh(params: any): boolean {\r\n this.formGroup = this.params.context.formGroup.get(this.arrayKey).at(params.node.rowIndex);\r\n this.setupRenderer(params);\r\n return true;\r\n }\r\n\r\n get showError() {\r\n if (this.formGroup.get(this.key).errors && this.formGroup.get(this.key).touched) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","<div class=\"all\" [ngClass]=\"{ single: !showError, double: showError }\"\r\n *ngIf=\"formGroup && showDropdown\" [formGroup]=\"formGroup\">\r\n <choose-general-item [bindValueKey]=\"valueToBind\" [clearable]=\"clearable\"\r\n [items]=\"items\" appFormControlValidationMsgForNgSelect [formControlName]=\"key\"\r\n [label]=\"params.label\" [appendTo]=\"'body'\" [placeholder]=\"params.placeholder\"\r\n [isMultiple]=\"params.isMultiple\" [objects]=\"params.objects\"\r\n [showLabel]=\"params.showLabel\" [separator]=\"params.separator\"\r\n [width]=\"params.width\" [isChip]=\"params.isChip\" [isTypeDate]=\"params.isTypeDate\"\r\n [chipColor]=\"params.chipColor\" [chipTextColor]=\"params.chipTextColor\"\r\n [basicTemplateData]=\"basicTemplateData\" [templateType]=\"templateType\"\r\n [chipWidth]=\"params.chipWidth\" (change)=\"onCellDataChanged($event)\"\r\n [showBoxError]=\"false\">\r\n </choose-general-item>\r\n <tooltip-msg-error [control]=\"formGroup.get(this.key)\" *ngIf=\"showError\"\r\n [message]=\"formGroup.get(key).errors.message\"></tooltip-msg-error>\r\n</div>\r\n<div class=\"center\" *ngIf=\"!showDropdown\">-</div>","export enum LineType {\r\n INCLUDE = 0,\r\n DO_NOT_INCLUDE = 1,\r\n}","import { EnumOption } from \"@jooler/shared-general-components\";\r\nimport { LineType } from \"./line-type.model\";\r\n\r\nexport class LineTypeModelHelper {\r\n\r\n static label: string;\r\n static color: string;\r\n static description: string;\r\n static value: any;\r\n\r\n static getItems() {\r\n let items: EnumOption[] = [];\r\n let values = Object.values(LineType);\r\n let types = values.filter(value =>\r\n typeof value === 'number') as number[];\r\n for (let value of types) {\r\n this.setStringValueAndColor(value);\r\n items.push({ value: value, label: this.label, color: this.color, description: this.description })\r\n }\r\n return items\r\n }\r\n\r\n static setStringValueAndColor(type: LineType) {\r\n switch (type) {\r\n case LineType.INCLUDE:\r\n return this.label = \"Include\", this.color = \"gold\";\r\n break;\r\n case LineType.DO_NOT_INCLUDE:\r\n return this.label = \"Do Not Include\", this.color = \"platinum\";\r\n break;\r\n default:\r\n return this.label = \"Undefined\", this.color = \"Gray\"\r\n }\r\n }\r\n\r\n getValue(label: string) {\r\n let value;\r\n switch (label) {\r\n case \"Include\":\r\n return value = 0;\r\n break;\r\n case \"Do Not Include\":\r\n return value = 1;\r\n break;\r\n default:\r\n return null\r\n }\r\n }\r\n static getLabelAndColorForValue(value: number) {\r\n for (let item of this.getItems()) {\r\n if (item.value == value) {\r\n this.value = item;\r\n return this.value\r\n }\r\n }\r\n }\r\n}","import { Component, forwardRef, OnInit } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { LineTypeModelHelper } from '../models/line-type-model-helper';\r\n\r\n@Component({\r\n selector: 'choose-line-type',\r\n templateUrl: './choose-line-type.component.html',\r\n styleUrls: ['./choose-line-type.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ChooseLineTypeComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ChooseLineTypeComponent implements OnInit {\r\n items = LineTypeModelHelper;\r\n selectedItem: any;\r\n types: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.types = this.items.getItems();\r\n }\r\n\r\n writeValue(type: any) {\r\n if (type != undefined || type != null) {\r\n this.selectedItem = type;\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n }\r\n\r\n onSelectedItemChanged() {\r\n this.propagateChange(this.selectedItem);\r\n }\r\n}\r\n","<div class=\"select\">\r\n <ng-select class=\"type\" appendTo=\"body\" (blur)=\"updateBlur()\" bindLabel=\"label\" bindValue=\"label\" [items]=\"types\"\r\n [placeholder]=\"'Choose A Component'\" (change)=\"onSelectedItemChanged()\" [(ngModel)]=\"selectedItem\">\r\n <ng-template class=\"template\" ng-option-tmp ng-label-tmp let-item=\"item\" let-index=\"index\">\r\n {{item.label}}\r\n </ng-template>\r\n </ng-select>\r\n</div>","import { Component, OnInit, Output, EventEmitter, Input, forwardRef } from '@angular/core';\r\nimport { YesOrNo } from '../models/yes-or-no.model';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'choose-yes-or-no',\r\n templateUrl: './choose-yes-or-no.component.html',\r\n styleUrls: ['./choose-yes-or-no.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ChooseYesOrNoComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class ChooseYesOrNoComponent implements OnInit {\r\n\r\n @Output() change = new EventEmitter();\r\n items: YesOrNo[] = [{ value: true, label: \"Yes\", color: \"green\" }, { value: false, label: \"No\", color: \"red\" }];\r\n @Input() width: number = 200;\r\n @Input() selectedItemValue: boolean;\r\n @Input() placeholder: string = \"Choose either Yes or No\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n writeValue(item: boolean) {\r\n if (item != undefined || item != null) {\r\n this.selectedItemValue = item;\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n }\r\n\r\n onSelectedItemChanged() {\r\n this.propagateChange(this.selectedItemValue);\r\n this.change.emit(this.selectedItemValue);\r\n }\r\n\r\n setWidth() {\r\n let style = {\r\n width: this.width + \"px\"\r\n }\r\n return style\r\n }\r\n}\r\n","<div class=\"select\">\r\n <ng-select [ngStyle]=\"setWidth()\" class=\"component\" appendTo=\"body\" (blur)=\"updateBlur()\" [placeholder]=\"placeholder\" bindLabel=\"label\"\r\n bindValue=\"value\" [items]=\"items\" [placeholder]=\"placeholder\" (change)=\"onSelectedItemChanged()\"\r\n [(ngModel)]=\"selectedItemValue\" >\r\n <ng-template class=\"template\" ng-option-tmp ng-label-tmp let-item=\"item\" let-index=\"index\"\r\n let-search=\"searchTerm\">\r\n <span [style.color]=\"item.color\">\r\n {{item.label}}\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'choose-yes-or-no-renderer',\r\n templateUrl: './choose-yes-or-no-renderer.component.html',\r\n styleUrls: ['./choose-yes-or-no-renderer.component.scss'],\r\n \r\n})\r\nexport class ChooseYesOrNoRendererComponent implements ICellRendererAngularComp {\r\n params: any;\r\n formControlValue;\r\n key;\r\n booleanValue: boolean;\r\n columnName: string;\r\n rowId: number;\r\n\r\n constructor() { }\r\n\r\n \r\n agInit(params: any) {\r\n this.params = params;\r\n this.booleanValue = params.value; \r\n this.key = params.context.createKey(params.columnApi, params.column);\r\n this.rowId = params.node.id;\r\n }\r\n\r\n onCellDataChanged($event) {\r\n let value: any = $event;\r\n this.formControlValue = this.params.context.formGroup.get(\"entries\").at(this.rowId);\r\n this.formControlValue.get(this.key).setValue(value);\r\n }\r\n\r\n refresh(params: any): boolean {\r\n return false;\r\n }\r\n\r\n}\r\n","<choose-yes-or-no [selectedItemValue]=\"booleanValue\" [width]=\"params.width\" (change) =\"onCellDataChanged($event)\" [placeholder]=\"params.placeholder\" ></choose-yes-or-no>","import { CurrencyPipe } from '@angular/common';\r\n\r\nexport const PIPEMAPPINGS = [\r\n { value: '$', pipe: new CurrencyPipe('en-US') }\r\n];","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { PIPEMAPPINGS } from './dynamicPipeMapping';\r\n\r\n@Pipe({ name: 'dynamicPipe' })\r\nexport class DynamicPipe implements PipeTransform {\r\n transform(value, args: any): any {\r\n for (let val of PIPEMAPPINGS) {\r\n if (val.value === args) {\r\n return val.pipe.transform(value);\r\n }\r\n }\r\n return '';\r\n }\r\n}","import { Component, OnInit, Input, forwardRef, EventEmitter, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { DynamicPipe } from './dynamicPipe';\r\n@Component({\r\n selector: 'editable-savable-input',\r\n templateUrl: './editable-savable-input.component.html',\r\n styleUrls: ['./editable-savable-input.component.css'],\r\n providers: [DynamicPipe,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => EditableSavableInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class EditableSavableInputComponent implements OnInit, ControlValueAccessor {\r\n @Output() saveWasClicked = new EventEmitter();\r\n @Input() defaultvalue: string;\r\n @Input() inputType: string;\r\n @Input() newLabel: string;\r\n @Input() headerLabel: string;\r\n @Input() showUnit: boolean = false;\r\n @Input() unit: string;\r\n @Input() unitType: string;\r\n @Input() isEditable: boolean = true;\r\n @Input() showHeader: boolean = true;\r\n @Input() value: string = \"\";\r\n isAddClickedOn: boolean = false;\r\n isUpdated: boolean = false;\r\n showEdit: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n if (this.value == \"\") {\r\n this.isUpdated = false;\r\n }\r\n else {\r\n this.isUpdated = true;\r\n }\r\n }\r\n\r\n onClickAdd() {\r\n this.isAddClickedOn = true;\r\n }\r\n\r\n onClickCancel() {\r\n this.isAddClickedOn = false;\r\n }\r\n\r\n onClickSave(input) {\r\n this.isAddClickedOn = false;\r\n let value = input.value;\r\n if (value.trim().length == 0) {\r\n this.isUpdated = false;\r\n }\r\n else {\r\n this.isUpdated = true;\r\n }\r\n this.value = value;\r\n this.saveWasClicked.emit(value);\r\n this.propagateChange(this.value);\r\n }\r\n\r\n onClickEdit() {\r\n this.isAddClickedOn = true;\r\n }\r\n\r\n onMouseEnter() {\r\n this.showEdit = true;\r\n }\r\n\r\n onMouseLeave() {\r\n this.showEdit = false;\r\n }\r\n\r\n writeValue(value: string) {\r\n if (value) {\r\n this.value = value;\r\n this.isUpdated = true;\r\n }\r\n }\r\n\r\n // registers 'fn' that will be fired wheb changes are made\r\n // this is how we emit the changes back to the form\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n // the method set in registerOnChange to emit changes back to the form\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n\r\n onChange($event) {\r\n //this.propagateChange(this.value);\r\n }\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n }\r\n}\r\n","<div *ngIf=\"showHeader\" class=\"header\">\r\n {{headerLabel}}\r\n</div>\r\n<div class=\"container\" [ngClass]=\"{'closed':!isAddClickedOn, 'open': isAddClickedOn}\">\r\n <div class=\"content\">\r\n <div class=\"default-content\" *ngIf=\"!isAddClickedOn && !isUpdated && isEditable\">\r\n <div class=\"add\" (click)=\"onClickAdd()\">\r\n {{defaultvalue}} </div>\r\n </div>\r\n <div class=\"edit-content\" *ngIf=\"isAddClickedOn\">\r\n <label class=\"input-label\" for=\"input\">{{newLabel}}</label>\r\n <div class=\"input \" [ngClass]=\"{'input-with-appended-unit': showUnit}\">\r\n <span *ngIf=\"showUnit\">{{unit}}</span>\r\n <input (change)=\"onChange($event)\" (blur)=\"updateBlur()\" [ngModel]=\"value\" [value]=\"value\" id=\"input\" #input\r\n class=\"form-control\" [ngClass]=\"{'input-box': showUnit}\" [type]=\"inputType\">\r\n </div>\r\n <div class=\"edit-actions\">\r\n <button type=\"button\" class=\"btn cancel\" (click)=\"onClickCancel()\" mat-raised-button>Cancel</button>\r\n <button type=\"button\" class=\"save\" (click)=\"onClickSave(input)\" mat-raised-button color=\"primary\">Save</button>\r\n </div>\r\n </div>\r\n <div class=\"updated-content closed\" *ngIf=\"!isAddClickedOn && isUpdated\" (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"edit-icon-container\" *ngIf=\"showEdit && isEditable\" (click)=\"onClickEdit()\">\r\n <i class=\"fas fa-pencil-alt\"></i>\r\n </div>\r\n <div class=\"updated\">\r\n <span class=\"updated-label\">\r\n <label for=\"input\">{{newLabel}}</label>\r\n </span>\r\n <span *ngIf=\"!showUnit\">{{value}}</span>\r\n <span *ngIf=\"showUnit\" class=\"updated-value\">\r\n {{value | dynamicPipe: unitType}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Directive, Input, HostListener, ElementRef, OnInit, OnDestroy, EventEmitter, Output } from '@angular/core';\r\nimport { NgControl, NgModel, ValidationErrors } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { ValidationError } from './services/validation-message.service';\r\n\r\n@Directive({\r\n selector: '[appFormControlValidationMsgForInputs]',\r\n providers: [NgModel],\r\n})\r\nexport class FormControlValidationMsgDirectiveForInput implements OnInit, OnDestroy {\r\n errorMessage: any;\r\n errorNgSelectMessage: any;\r\n @Input('showBoxError') showBoxError: boolean=true;\r\n @Input('errorDivId') errorDivId: any;\r\n @Input('beforeBegin') beforeBegin: boolean = false;\r\n @Input('afterEnd') afterEnd: boolean = false;\r\n validationError = ValidationError;\r\n statusChangeSubscription: Subscription;\r\n\r\n constructor(\r\n private elRef: ElementRef,\r\n private control: NgControl,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.statusChangeSubscription = this.control.statusChanges.subscribe(\r\n (status) => {\r\n if (status == 'INVALID') {\r\n this.showError();\r\n\r\n } else {\r\n this.removeError();\r\n }\r\n }\r\n )\r\n this.control.valueChanges.subscribe({\r\n next: (response) => {\r\n if (this.control.errors) {\r\n this.showError();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.statusChangeSubscription.unsubscribe();\r\n }\r\n\r\n @HostListener('blur', [\"$event\"])\r\n handleBlurEvent(event) {\r\n if (this.control.errors) {\r\n this.showError();\r\n }\r\n else {\r\n this.removeError();\r\n }\r\n }\r\n\r\n\r\n private showError() {\r\n this.removeError();\r\n const valErrors: ValidationErrors = this.control.errors;\r\n const keys = Object.keys(valErrors);\r\n for (let i = 0; i < keys.length; i++) {\r\n switch (keys[i]) {\r\n case 'minlength': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.minlength.requiredLength);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n \r\n break;\r\n }\r\n case 'required': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n this.control.control.setErrors({ 'required': true, 'message': message },{ emitEvent:false})\r\n break;\r\n }\r\n case 'maxlength': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.maxlength.requiredLength);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n this.control.control.setErrors({ 'maxlength': { 'requiredLength': valErrors.maxlength.requiredLength }, 'message': message}, { emitEvent: false })\r\n break;\r\n }\r\n case 'max': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.max.max\r\n );\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n this.control.control.setErrors({ 'message': message, 'max': { 'max': valErrors.max.max } }, { emitEvent: false })\r\n break;\r\n }\r\n case 'min': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.min.min\r\n );\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n break;\r\n }\r\n\r\n case 'pattern': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.pattern.requiredPattern);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n break;\r\n }\r\n case 'email': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n break;\r\n }\r\n case 'invalidIntegerNumber': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n break;\r\n }\r\n case 'invalidPositiveInteger': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n this.control.control.setErrors({ 'invalidPositiveInteger': true, 'message': message }, { emitEvent: false })\r\n break;\r\n }\r\n\r\n }\r\n }\r\n if (this.showBoxError){\r\n const errDiv = '<div style=\"color:#C34243; width=100%; background-color: #FFDBDB; padding: 1rem; border-radius: .5rem; border: .1rem solid #A80002 ;border-left: .75rem solid #A80002; margin-top:.5rem; font-size: 1.2rem; \" id=\"' + this.errorDivId + '\">' + '<h3 style= \" font-size: 1.3rem; margin-bottom:.5rem; margin:0; color: #A80002; font-weight: 700; line-height: 1.6rem;\">' + 'Please Complete all details' + '</h3>' + this.errorMessage + '</div>';\r\n if (!this.beforeBegin && !this.afterEnd)\r\n this.elRef.nativeElement.parentElement.parentElement.parentElement.parentElement.insertAdjacentHTML('afterend', errDiv);\r\n else if (this.beforeBegin)\r\n this.elRef.nativeElement.insertAdjacentHTML('beforebegin', errDiv);\r\n else if (this.afterEnd)\r\n this.elRef.nativeElement.insertAdjacentHTML('afterend', errDiv);\r\n else\r\n throw Error(\"Adjustment not specified \");\r\n }\r\n }\r\n private removeError(): void {\r\n this.errorMessage = \"\";\r\n const errorElement = document.getElementById(this.errorDivId);\r\n if (errorElement) {\r\n errorElement.remove();\r\n }\r\n }\r\n}","import { DecimalPipe } from '@angular/common';\r\nimport { Directive, HostListener, OnInit } from '@angular/core';\r\nimport { NgControl, NgModel } from '@angular/forms';\r\n\r\n\r\n@Directive({\r\n selector: '[customDecimalPointTwoDigits]',\r\n providers: [NgModel, DecimalPipe],\r\n})\r\nexport class CustomDecimalPointTwoDigitsDirective implements OnInit {\r\n valueSubscription: any;\r\n constructor(\r\n private control: NgControl,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.control.value) {\r\n this.control.valueAccessor.writeValue(this.transformToCommasAndPoint(this.control.value));\r\n }\r\n this.valueSubscription = this.control.control.valueChanges.subscribe(\r\n value => {\r\n if (value.length > 0) {\r\n let removeCommas = this.control.value.replace(/,/g, '');\r\n this.control.control.setValue(removeCommas, { emitEvent: false, emitModelToViewChange: false });\r\n }\r\n else {\r\n this.control.control.setValue(null, { emitEvent: false, emitModelToViewChange: false });\r\n }\r\n }\r\n );\r\n }\r\n\r\n @HostListener(\"input\", [\"$event\"]) onEvent($event) {\r\n if (this.control.value) {\r\n const item = $event.target;\r\n item.value = this.transformToCommasAndPoint(this.control.value);\r\n let removeCommas = this.control.value.replace(/,/g, '');\r\n this.control.control.setValue(removeCommas, { emitEvent: false, emitModelToViewChange: false });\r\n }\r\n }\r\n\r\n transformToCommasAndPoint(value) {\r\n if (value.indexOf(\".\") == -1) {\r\n value = value.toString().replace(/\\D/g, \"\")\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return value\r\n } else {\r\n let val = value.split(\".\");\r\n let valueBeforeDecimal = val[0];\r\n let valueAfterDecimal = val[1];\r\n valueBeforeDecimal = valueBeforeDecimal.toString().replace(/\\D/g, \"\")\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n let newValue = `${valueBeforeDecimal}.${valueAfterDecimal}`;\r\n return newValue;\r\n }\r\n }\r\n}","import { DecimalPipe } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'general-input-renderer-test',\r\n templateUrl: './general-input-renderer.component.html',\r\n styleUrls: ['./general-input-renderer.component.scss']\r\n})\r\nexport class GeneralInputRendererComponent implements ICellRendererAngularComp {\r\n params: any;\r\n key;\r\n value;\r\n formGroup: any;\r\n formControlName;\r\n\r\n constructor() { }\r\n\r\n agInit(params: any) {\r\n this.params = params;\r\n this.formGroup = this.params.context.formGroup.get('entries').at(params.node.rowIndex) as FormGroup;\r\n this.key = params.context.createKey(params.columnApi, params.column);\r\n if (params.isTypeNumber) {\r\n if (params.value) {\r\n this.value = new DecimalPipe(\"en-US\").transform(\r\n +params.value,\r\n \"1.0-0\"\r\n );\r\n }\r\n }\r\n else {\r\n this.value = params.value;\r\n }\r\n }\r\n\r\n onCellDataChanged($event) {\r\n let value = $event.target.value;\r\n let newAndOldValue = {\r\n newValue: value,\r\n oldValue: this.params?.value\r\n }\r\n if (this.params.allowUpdateRowData) {\r\n this.params.onChange(newAndOldValue);\r\n }\r\n }\r\n\r\n refresh(params: any): boolean {\r\n this.formGroup = this.params.context.formGroup.get('entries').at(params.node.rowIndex);\r\n return true;\r\n }\r\n}","<div *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\r\n <div *ngIf=\"params.isTypeText\">\r\n <input [placeholder]=\"params.fieldLabel\"appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n [errorDivId]=\"'text'\" \r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key) && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeNumber\">\r\n <input customDecimalPointTwoDigits appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n [errorDivId]=\"'number'\" [placeholder]=\"params.fieldLabel\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeIntegerNumber\">\r\n <input appFormControlValidationMsgForInputs [showBoxError]=\"false\"type=\"number\"\r\n [errorDivId]=\"'integer'\" [placeholder]=\"params.fieldLabel\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeTextArea\">\r\n <textarea class=\"text-area\" (change)=\"onCellDataChanged($event)\"\r\n [placeholder]=\"params.fieldLabel\" class=\"main-height\"\r\n [formControlName]=\"key\"></textarea>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { AppMaterialModule } from '@jooler/app-material';\r\nimport { SharedGeneralComponentsModule } from '@jooler/shared-general-components';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { AddAsteriskDirective } from './add-asterisk.directive';\r\nimport { ChooseEnumRendererComponent } from './choose-enum-renderer/choose-enum-renderer.component';\r\nimport { ChooseEnumComponent } from './choose-enum/choose-enum.component';\r\nimport { ChooseGeneralItemRendererComponent } from './choose-general-item-renderer/choose-general-item-renderer.component';\r\nimport { ChooseGeneralItemComponent } from './choose-general-item/choose-general-item.component';\r\nimport { ChooseGeneralItemService } from './choose-general-item/choose-general-item.service';\r\nimport { ChooseLineTypeComponent } from './choose-line-type/choose-line-type.component';\r\nimport { ChooseYesOrNoRendererComponent } from './choose-yes-or-no-renderer/choose-yes-or-no-renderer.component';\r\nimport { ChooseYesOrNoComponent } from './choose-yes-or-no/choose-yes-or-no.component';\r\nimport { DropdownActionsComponent } from './dropdown-actions/dropdown-actions.component';\r\nimport { DynamicPipe } from './editable-savable-input/dynamicPipe';\r\nimport { EditableSavableInputComponent } from './editable-savable-input/editable-savable-input.component';\r\nimport { FormControlValidationMsgDirectiveForNgSelect } from './formcontrol-validation-msg-for-ng-select.directive';\r\nimport { FormControlValidationMsgDirectiveForInput } from './formcontrol-validation-msg.directive';\r\nimport { CustomDecimalPointTwoDigitsDirective } from './general-input-renderer/custom-decimal-point-two-digits.directive';\r\nimport { GeneralInputRendererComponent } from './general-input-renderer/general-input-renderer.component';\r\nimport { ShowTableErrorsComponent } from './show-table-errors/show-table-errors.component';\r\nimport { TooltipMsgError } from './tooltip-msg-error/tooltip-msg-error.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ChooseEnumComponent,\r\n ChooseEnumRendererComponent,\r\n ChooseGeneralItemComponent,\r\n GeneralInputRendererComponent,\r\n ChooseLineTypeComponent,\r\n ChooseYesOrNoComponent,\r\n ChooseYesOrNoRendererComponent,\r\n EditableSavableInputComponent,\r\n DynamicPipe,\r\n ChooseGeneralItemRendererComponent,\r\n CustomDecimalPointTwoDigitsDirective,\r\n ShowTableErrorsComponent,\r\n FormControlValidationMsgDirectiveForInput,\r\n DropdownActionsComponent,\r\n AddAsteriskDirective,\r\n FormControlValidationMsgDirectiveForNgSelect,\r\n TooltipMsgError\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AppMaterialModule,\r\n SharedGeneralComponentsModule,\r\n FontAwesomeModule,\r\n ],\r\n exports: [\r\n ChooseEnumComponent,\r\n ChooseEnumRendererComponent,\r\n ChooseGeneralItemComponent,\r\n GeneralInputRendererComponent,\r\n ChooseLineTypeComponent,\r\n ChooseYesOrNoComponent,\r\n ChooseYesOrNoRendererComponent,\r\n EditableSavableInputComponent,\r\n DropdownActionsComponent,\r\n DynamicPipe,\r\n AddAsteriskDirective\r\n ]\r\n})\r\nexport class InputsModule {\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<InputsModule> {\r\n\r\n return {\r\n ngModule: InputsModule,\r\n providers: [\r\n ChooseGeneralItemService,\r\n {\r\n provide: 'env',\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}","export class LabelAndField {\r\n label: string;\r\n field: string;\r\n}","/*\r\n * Public API Surface of inputs\r\n */\r\n\r\nexport * from './lib/choose-enum-renderer/choose-enum-renderer.component';\r\nexport * from './lib/choose-enum/choose-enum.component';\r\nexport * from './lib/choose-general-item-renderer/choose-general-item-renderer-change-event.interface';\r\nexport * from './lib/choose-general-item-renderer/choose-general-item-renderer-validation-type.enum';\r\nexport * from './lib/choose-general-item/choose-general-item.component';\r\nexport * from './lib/show-table-errors/show-table-errors.component';\r\nexport * from './lib/tooltip-msg-error/tooltip-message-type.enum';\r\nexport * from './lib/tooltip-msg-error/tooltip-msg-error.component';\r\n\r\nexport * from './lib/add-asterisk.directive';\r\nexport * from './lib/choose-general-item-renderer/choose-general-item-renderer.component';\r\nexport * from './lib/choose-general-item/choose-general-item.service';\r\nexport * from './lib/choose-line-type/choose-line-type.component';\r\nexport * from './lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component';\r\nexport * from './lib/choose-yes-or-no/choose-yes-or-no.component';\r\nexport * from './lib/dropdown-actions/dropdown-action-type.model';\r\nexport * from './lib/dropdown-actions/dropdown-actions.component';\r\nexport * from './lib/dropdown-actions/label-and-route.model';\r\nexport * from './lib/editable-savable-input/dynamicPipe';\r\nexport * from './lib/editable-savable-input/editable-savable-input.component';\r\nexport * from './lib/formcontrol-validation-msg.directive';\r\nexport * from './lib/general-input-renderer/general-input-renderer.component';\r\nexport * from './lib/inputs.module';\r\nexport * from './lib/models/label-and-field.model';\r\nexport * from './lib/primary-colors';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i2","i3.ChooseEnumComponent","i1","i4","i1.ChooseGeneralItemService","i5","i7","i8.DropdownActionsComponent","i3.ChooseGeneralItemComponent","i4.FormControlValidationMsgDirectiveForNgSelect","i5.TooltipMsgError","i1.ChooseYesOrNoComponent","i4.DynamicPipe","i3.CustomDecimalPointTwoDigitsDirective","i4.ShowTableErrorsComponent","i5.FormControlValidationMsgDirectiveForInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inputs.mjs","sources":["../../../projects/inputs/src/lib/ag-grid-select-mixin.ts","../../../projects/inputs/src/lib/custom-theme.ts","../../../projects/inputs/src/lib/enum-helper.model.ts","../../../projects/inputs/src/lib/enum-helper-functions.ts","../../../projects/inputs/src/lib/choose-enum/choose-enum.component.ts","../../../projects/inputs/src/lib/choose-enum/choose-enum.component.html","../../../projects/inputs/src/lib/choose-enum-renderer/choose-enum-renderer.component.ts","../../../projects/inputs/src/lib/choose-enum-renderer/choose-enum-renderer.component.html","../../../projects/inputs/src/lib/choose-general-item-renderer/choose-general-item-renderer-validation-type.enum.ts","../../../projects/inputs/src/lib/models/choose-item-full-object-control-config.enum.ts","../../../projects/inputs/src/lib/primary-colors.ts","../../../projects/inputs/src/lib/choose-general-item/choose-object-template-type.enum.ts","../../../projects/inputs/src/lib/dictionary-to-params-converter.ts","../../../projects/inputs/src/lib/choose-general-item/choose-general-item.service.ts","../../../projects/inputs/src/lib/dropdown-actions/dropdown-action-type.model.ts","../../../projects/inputs/src/lib/dropdown-actions/dropdown-actions.component.ts","../../../projects/inputs/src/lib/dropdown-actions/dropdown-actions.component.html","../../../projects/inputs/src/lib/choose-general-item/choose-general-item.component.ts","../../../projects/inputs/src/lib/choose-general-item/choose-general-item.component.html","../../../projects/inputs/src/lib/show-table-errors/show-table-errors.component.ts","../../../projects/inputs/src/lib/show-table-errors/show-table-errors.component.html","../../../projects/inputs/src/lib/tooltip-msg-error/tooltip-message-type.enum.ts","../../../projects/inputs/src/lib/tooltip-msg-error/tooltip-msg-error.component.ts","../../../projects/inputs/src/lib/tooltip-msg-error/tooltip-msg-error.component.html","../../../projects/inputs/src/lib/add-asterisk.directive.ts","../../../projects/inputs/src/lib/services/validation-message.service.ts","../../../projects/inputs/src/lib/formcontrol-validation-msg-for-ng-select.directive.ts","../../../projects/inputs/src/lib/choose-general-item-renderer/choose-general-item-renderer.component.ts","../../../projects/inputs/src/lib/choose-general-item-renderer/choose-general-item-renderer.component.html","../../../projects/inputs/src/lib/models/line-type.model.ts","../../../projects/inputs/src/lib/models/line-type-model-helper.ts","../../../projects/inputs/src/lib/choose-line-type/choose-line-type.component.ts","../../../projects/inputs/src/lib/choose-line-type/choose-line-type.component.html","../../../projects/inputs/src/lib/choose-yes-or-no/choose-yes-or-no.component.ts","../../../projects/inputs/src/lib/choose-yes-or-no/choose-yes-or-no.component.html","../../../projects/inputs/src/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.ts","../../../projects/inputs/src/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.html","../../../projects/inputs/src/lib/editable-savable-input/dynamicPipeMapping.ts","../../../projects/inputs/src/lib/editable-savable-input/dynamicPipe.ts","../../../projects/inputs/src/lib/editable-savable-input/editable-savable-input.component.ts","../../../projects/inputs/src/lib/editable-savable-input/editable-savable-input.component.html","../../../projects/inputs/src/lib/formcontrol-validation-msg.directive.ts","../../../projects/inputs/src/lib/general-input-renderer/general-input-renderer.component.ts","../../../projects/inputs/src/lib/general-input-renderer/general-input-renderer.component.html","../../../projects/inputs/src/lib/general-input-renderer/custom-decimal-point-two-digits.directive.ts","../../../projects/inputs/src/lib/inputs.module.ts","../../../projects/inputs/src/lib/models/label-and-field.model.ts","../../../projects/inputs/src/public-api.ts","../../../projects/inputs/src/inputs.ts"],"sourcesContent":["import { FormArray, FormControl, FormGroup } from '@angular/forms';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { RowNode } from 'ag-grid-community';\r\n\r\nexport class AgGridSelectMixin implements ICellRendererAngularComp {\r\n params: any;\r\n key: string;\r\n value;\r\n rowId: number;\r\n isEdit: boolean;\r\n index: number;\r\n arrayKey: string = 'entries';\r\n rowLevelFG: FormGroup;\r\n width: number;\r\n selectedItemId: number;\r\n\r\n agInit(params): void {\r\n this.initializeRenderer(params);\r\n }\r\n\r\n initializeRenderer(params) {\r\n this.params = params;\r\n this.width = params.width;\r\n this.key = params.context.createKey(params.columnApi, params.column);\r\n this.value = params.value;\r\n this.rowId = params.node.id;\r\n this.index = params.node.rowIndex;\r\n if (params.context.arrayKey) {\r\n this.arrayKey = params.context.arrayKey;\r\n }\r\n this.setRowLevelFG();\r\n }\r\n\r\n setRowLevelFG() {\r\n this.index = this.params.node.rowIndex;\r\n let tableFG: FormGroup = this.params.context.formGroup;\r\n let fa: FormArray = tableFG.get(this.arrayKey) as FormArray;\r\n let rowLevelFG = fa.at(this.index) as FormGroup;\r\n this.rowLevelFG = rowLevelFG;\r\n }\r\n\r\n getFormControl() {\r\n let fc: FormControl = this.rowLevelFG.get(this.key) as FormControl;\r\n return fc;\r\n }\r\n\r\n updateValue(params, value: number | null) {\r\n this.setRowLevelFG();\r\n this.getFormControl().setValue(value);\r\n let rowNode: RowNode = params.node;\r\n rowNode.setDataValue(this.key, value);\r\n }\r\n\r\n // $event here is an object.\r\n onSelection($event: any) {\r\n this.selectedItemId = $event?.id;\r\n this.updateValue(this.params, $event?.id);\r\n if (this.params.onSelection instanceof Function) {\r\n const params = {\r\n object: $event,\r\n rowData: this.params.node.data,\r\n value: $event.id,\r\n rowNode: this.params.node,\r\n };\r\n this.params.onSelection(params);\r\n }\r\n }\r\n\r\n onEnumSelected($event: number) {\r\n this.updateValue(this.params, $event);\r\n if (this.params.onSelection instanceof Function) {\r\n const params = {\r\n rowData: this.params.node.data,\r\n value: $event,\r\n rowNode: this.params.node,\r\n };\r\n this.params.onSelection(params);\r\n }\r\n }\r\n\r\n refresh(param): boolean {\r\n return false;\r\n }\r\n}\r\n","export class CustomTheme {\r\n static $joolerBlue = [\r\n '#e3ecfa',\r\n '#b9cff2',\r\n '#8aafea',\r\n '#5b8ee1',\r\n '#3876da',\r\n '#155ed4',\r\n '#1256cf',\r\n '#0f4cc9',\r\n '#0c42c3',\r\n '#0631b9',\r\n '#e3e8ff',\r\n '#b0bfff',\r\n '#7d95ff',\r\n '#6481ff',\r\n ];\r\n static $joolerTeal = [\r\n '#b8dfd8',\r\n '#89cabf',\r\n '#59b5a5',\r\n '#36a591',\r\n '#12957e',\r\n '#108d76',\r\n '#0d826b',\r\n '#0a7861',\r\n '#05674e',\r\n '#97ffe1',\r\n '#64ffd2',\r\n '#31ffc3',\r\n '#18ffbc',\r\n ];\r\n static $joolerRed = [\r\n '#f5e0e1',\r\n '#e5b3b3',\r\n '#d48081',\r\n '#c24d4e',\r\n '#b52628',\r\n '#a80002',\r\n '#a00002',\r\n '#970001',\r\n '#8d0001',\r\n '#7d0001',\r\n '#ffaaaa',\r\n '#ff7777',\r\n '#ff4444',\r\n '#ff2a2a',\r\n ];\r\n static $joolerPink = [\r\n '#fdeaf3',\r\n '#fbcbe1',\r\n '#f8a8ce',\r\n '#f585ba',\r\n '#f26aab',\r\n '#f0509c',\r\n '#ee4994',\r\n '#ec408a',\r\n '#e93780',\r\n '#e5276e',\r\n '#ffffff',\r\n '#ffeef4',\r\n '#ffbbd3',\r\n '#ffa1c2',\r\n ];\r\n static $joolerPurple = [\r\n '#fcf6fd',\r\n '#f7e8f9',\r\n '#f1d8f5',\r\n '#ebc8f1',\r\n '#e7bdee',\r\n '#e3b1eb',\r\n '#e0aae9',\r\n '#dca1e5',\r\n '#d898e2',\r\n '#d088dd',\r\n '#ffffff',\r\n '#ffffff',\r\n '#ffffff',\r\n '#fcecff',\r\n ];\r\n static $joolerCombo = [\r\n '#b9cff2',\r\n '#b8dfd8',\r\n '#ffaaaa',\r\n '#fbcbe1',\r\n '#f1d8f5',\r\n '#8aafea',\r\n '#97ffe1',\r\n '#ff7777',\r\n '#f585ba',\r\n '#e7bdee',\r\n '#6481ff',\r\n '#18ffbc',\r\n '#ff4444',\r\n '#ffa1c2',\r\n '#e0aae9',\r\n '#1256cf',\r\n '#108d76',\r\n '#df0000',\r\n '#ec408a',\r\n '#d088dd',\r\n ];\r\n}\r\n","export class EnumOption {\r\n value: number;\r\n label: string;\r\n color: string;\r\n description?: string;\r\n disabled?: boolean;\r\n\r\n constructor(value: number, label: string, color: string, disabled: boolean = false) {\r\n this.value = value;\r\n this.label = label;\r\n this.color = color;\r\n this.disabled = disabled;\r\n }\r\n}\r\n","\r\nimport { CustomTheme } from './custom-theme';\r\nimport { EnumOption } from './enum-helper.model';\r\n\r\nexport class EnumHelperBaseClass {\r\n static getEnumOptionsFromEnumClass(\r\n enumClass: any,\r\n customColors?: string[],\r\n isAllCaps: boolean = false,\r\n isIntegerChoice: boolean = true\r\n ) {\r\n const enumOptions: EnumOption[] = [];\r\n\r\n // Get string keys only (filter out numeric reverse mappings)\r\n const enumKeys = Object.keys(enumClass).filter(k => isNaN(Number(k)));\r\n\r\n // Prepare display labels\r\n const stringValues = EnumHelperBaseClass.getStringValuesForEnumClass(enumClass, isAllCaps);\r\n\r\n // Prepare colors\r\n const colors = EnumHelperBaseClass.getColorsForEnumClass(enumClass, stringValues, customColors);\r\n\r\n enumKeys.forEach((key, idx) => {\r\n let value;\r\n if (isIntegerChoice) {\r\n value = enumClass[key]; // numeric value\r\n } else {\r\n value = key; // string value\r\n }\r\n\r\n const label = stringValues[idx];\r\n const color = colors[idx];\r\n\r\n enumOptions.push(new EnumOption(value, label, color));\r\n });\r\n\r\n return enumOptions;\r\n }\r\n\r\n static getColorsForEnumClass(\r\n enumClass: any,\r\n stringValues: string[],\r\n customColors?: string[]\r\n ): string[] {\r\n let colors: string[] = CustomTheme.$joolerCombo;\r\n\r\n if (customColors && customColors.length > 0) {\r\n colors = customColors;\r\n }\r\n // in case the array of colors is smaller than the stringValues array, we repeat the the colors so that they are enough\r\n if (stringValues.length > colors.length) {\r\n for (let label of stringValues) {\r\n colors.push(colors[stringValues.indexOf(label) % colors.length]);\r\n }\r\n }\r\n return colors;\r\n }\r\n\r\n static getStringValuesForEnumClass(enumClass: any, isAllCaps?: boolean): string[] {\r\n let stringValues: string[] = [];\r\n\r\n for (let item in enumClass) {\r\n if (isNaN(Number(item))) {\r\n let joinedString: string;\r\n stringValues.push(item);\r\n let splitStr = item.toLowerCase().split('_');\r\n if (!isAllCaps) {\r\n for (let i = 0; i < splitStr.length; i++) {\r\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);\r\n }\r\n } else {\r\n for (let i = 0; i < splitStr.length; i++) {\r\n splitStr[i] = splitStr[i].toUpperCase();\r\n }\r\n }\r\n joinedString = splitStr.join(' ');\r\n stringValues.splice(stringValues.indexOf(item), 1, joinedString);\r\n\r\n }\r\n }\r\n return stringValues;\r\n }\r\n\r\n static getLabelAndColorFromEnumValue(\r\n enumClass: any,\r\n enumValue: number,\r\n customColors?: string[]\r\n ): EnumOption {\r\n let enumOptions: EnumOption[] = EnumHelperBaseClass.getEnumOptionsFromEnumClass(\r\n enumClass,\r\n customColors\r\n );\r\n let enumOption: EnumOption;\r\n for (let item of enumOptions) {\r\n if (enumValue == item.value) {\r\n enumOption = enumOptions[enumOptions.indexOf(item)];\r\n }\r\n }\r\n return enumOption;\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { EnumOption } from '../enum-helper.model';\r\nimport { EnumHelperBaseClass } from '../enum-helper-functions';\r\n\r\n@Component({\r\n selector: 'choose-enum',\r\n templateUrl: './choose-enum.component.html',\r\n styleUrls: ['./choose-enum.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ChooseEnumComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ChooseEnumComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n items: EnumOption[];\r\n @Input() appendTo: string = 'body';\r\n @Input() allowAllCapsValues: boolean = false;\r\n @Input() clearable: boolean = true;\r\n @Input() customColors: string[];\r\n @Input() enumChoices: any;\r\n @Input() getValuesArrayFromEnum: Function = EnumHelperBaseClass.getEnumOptionsFromEnumClass;\r\n @Input() valuesToDisable: number[] = [];\r\n @Input() valuesToHide: number[] = [];\r\n @Input() isChip: boolean = true;\r\n @Input() isDropdownDisabled: boolean = false;\r\n @Input() isMultiple: boolean;\r\n @Input() label: string = 'label';\r\n @Input() labelTextAlign: string = 'left';\r\n @Input() labelTextFontWeight: string;\r\n @Input() labelTextFontSize: string;\r\n @Input() paddingTop: number;\r\n @Input() placeholder: string;\r\n @Input() percentWidth: boolean = false;\r\n @Input() selectedItem: any;\r\n @Input() width: number;\r\n @Input() isReadOnly: boolean = false;\r\n @Input() virtualScroll: boolean = false;\r\n @Output() change = new EventEmitter();\r\n @Output() close = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.getValuesArrayFromEnum != null) {\r\n this.items = this.getValuesArrayFromEnum(\r\n this.enumChoices,\r\n this.customColors,\r\n this.allowAllCapsValues\r\n );\r\n }\r\n if (this.valuesToDisable.length > 0) {\r\n this.disabledItems();\r\n }\r\n if (this.valuesToHide.length > 0) {\r\n this.hideItems();\r\n }\r\n this.sortAndReorderItems();\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.getValuesArrayFromEnum != null) {\r\n this.items = this.getValuesArrayFromEnum(\r\n this.enumChoices,\r\n this.customColors,\r\n this.allowAllCapsValues\r\n );\r\n }\r\n if (this.valuesToDisable.length > 0) {\r\n this.disabledItems();\r\n }\r\n if (this.valuesToHide.length > 0) {\r\n this.hideItems();\r\n }\r\n this.sortAndReorderItems();\r\n }\r\n\r\n disabledItems() {\r\n for (let value of this.valuesToDisable) {\r\n let index: number = this.items.findIndex(enumOption => enumOption.value == value);\r\n if (index >= 0) {\r\n this.items[index].disabled = true;\r\n } else {\r\n throw Error(\r\n 'Index was not found for an enum element in the valuesToDisable array provided.'\r\n );\r\n }\r\n }\r\n }\r\n\r\n hideItems() {\r\n for (let value of this.valuesToHide) {\r\n let index: number = this.items.findIndex(enumOption => enumOption.value == value);\r\n if (index >= 0) {\r\n this.items.splice(index, 1);\r\n } else {\r\n throw Error('Index was not found for an enum element in the valuesToHide array provided.');\r\n }\r\n }\r\n }\r\n\r\n sortAndReorderItems(): void {\r\n const nonDisabledItems = this.items.filter(item => !item.disabled);\r\n const disabledItems = this.items.filter(item => item.disabled);\r\n nonDisabledItems.sort((a, b) => a.label.localeCompare(b.label));\r\n this.items = [...nonDisabledItems, ...disabledItems];\r\n }\r\n\r\n writeValue(type: number) {\r\n if (type != undefined) {\r\n this.selectedItem = type;\r\n } else if (type == null) {\r\n this.selectedItem = type;\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n this.close.emit();\r\n }\r\n\r\n onSelectedItemChanged() {\r\n this.propogateTouch();\r\n this.propagateChange(this.selectedItem);\r\n this.change.emit(this.selectedItem);\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.isDropdownDisabled = isDisabled;\r\n }\r\n\r\n clear() {\r\n this.selectedItem = null;\r\n this.propogateTouch();\r\n }\r\n\r\n setStyles() {\r\n let style = {\r\n paddingTop: this.paddingTop + 'rem',\r\n };\r\n if (this.width) {\r\n style['width'] = this.width + 'rem';\r\n }\r\n return style;\r\n }\r\n\r\n setLabelStyle() {\r\n let style = {\r\n textAlign: this.labelTextAlign,\r\n fontWeight: this.labelTextFontWeight,\r\n fontSize: this.labelTextFontSize + 'rem',\r\n padding: '0.4rem',\r\n };\r\n return style;\r\n }\r\n}\r\n","<div>\r\n <ng-select [ngStyle]=\"setStyles()\" (blur)=\"updateBlur()\" bindLabel=\"label\" bindValue=\"value\" [items]=\"items\"\r\n [virtualScroll]=\"virtualScroll\" [placeholder]=\"placeholder\" (change)=\"onSelectedItemChanged()\"\r\n [(ngModel)]=\"selectedItem\" [multiple]=\"isMultiple\" [disabled]=\"isDropdownDisabled\" [readonly]=\"isReadOnly\"\r\n [clearable]=\"clearable\" (clear)=\"clear()\" [appendTo]=\"appendTo\" dropdownPosition=\"bottom\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-container *ngIf=\"isChip\">\r\n <ng-container [ngTemplateOutlet]=\"chip\"\r\n [ngTemplateOutletContext]=\"{ item: item, showCross: clearable, clear: clear }\">\r\n </ng-container>\r\n </ng-container>\r\n <div [ngStyle]=\"setLabelStyle()\" *ngIf=\"!isChip\">{{ item.label }}</div>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\" let-clear=\"clear\">\r\n <div [ngClass]=\"{ disabled: item.disabled }\">\r\n <div *ngIf=\"isChip\" class=\"chip\">\r\n <ng-container [ngTemplateOutlet]=\"chip\"\r\n [ngTemplateOutletContext]=\"{ item: item, showCross: false, clear: clear }\">\r\n </ng-container>\r\n </div>\r\n <div [ngStyle]=\"setLabelStyle()\" *ngIf=\"!isChip\">{{ item.label }}</div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n</div>\r\n\r\n<ng-template #chip let-showCross=\"showCross\" let-item=\"item\" let-clear=\"clear\">\r\n <ng-chip [enumClass]=\"enumChoices\" [withCross]=\"showCross\" [enumValue]=\"item.value\" [customColors]=\"customColors\"\r\n [item]=\"item\" [clear]=\"clear\">\r\n </ng-chip>\r\n</ng-template>","import { Component } from '@angular/core';\r\nimport { AgGridSelectMixin } from '../ag-grid-select-mixin';\r\n\r\n@Component({\r\n selector: 'choose-enum-renderer',\r\n templateUrl: './choose-enum-renderer.component.html',\r\n styleUrls: [\r\n './choose-enum-renderer.component.scss',\r\n ],\r\n})\r\nexport class ChooseEnumRendererComponent extends AgGridSelectMixin {\r\n valuesToDisable: number[] = [];\r\n valuesToHide: number[] = [];\r\n isChip: boolean = true;\r\n clearable: boolean = true;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n agInit(params: any): void {\r\n super.agInit(params);\r\n if (params.valuesToDisable != null) {\r\n this.valuesToDisable = params.valuesToDisable;\r\n }\r\n if (params.valuesToHide != null) {\r\n this.valuesToHide = params.valuesToHide;\r\n }\r\n if (params.isChip != null) {\r\n this.isChip = params.isChip;\r\n }\r\n if (params.clearable != null) {\r\n this.clearable = params.clearable;\r\n }\r\n }\r\n\r\n get showError() {\r\n if (this.rowLevelFG.get(this.key).errors && this.rowLevelFG.get(this.key).touched) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","<div class=\"all\" [ngClass]=\"{ single: !showError, double: showError }\" *ngIf=\"rowLevelFG\" [formGroup]=\"rowLevelFG\">\r\n <choose-enum [clearable]=\"clearable\" [formControlName]=\"key\" [appendTo]=\"'body'\" [label]=\"params.label\"\r\n [labelTextAlign]=\"params.labelTextAlign\" [labelTextFontWeight]=\"params.labelTextFontWeight\"\r\n [labelTextFontSize]=\"params.labelTextFontSize\" [selectedItem]=\"params.value\" [valuesToHide]=\"valuesToHide\"\r\n [valuesToDisable]=\"valuesToDisable\" [isDropdownDisabled]=\"params.isDropdownDisabled\"\r\n [enumChoices]=\"params.enumChoices\" [placeholder]=\"params.placeholder\" [width]=\"params.width\" [isChip]=\"isChip\"\r\n [paddingTop]=\"params.paddingTop\" [customColors]=\"params.customColors\" (change)=\"onEnumSelected($event)\">\r\n </choose-enum>\r\n</div>","export enum ChooseItemRendererValidationType {\r\n NONE = 0,\r\n ROW_LEVEL_UNIQUE = 1,\r\n}\r\n","export enum ChooseItemFullObjectControlConfig {\r\n OBJECT = 1,\r\n ID = 2,\r\n}\r\n","export class PrimaryColors {\r\n static $primaryBlueColor = '#155ED4';\r\n static $primaryPinkColor = '#F0509C';\r\n static $primaryTealColor = '#12957E';\r\n static $primaryCarbonColor = '#32353B';\r\n static $primaryGrayColor = '#676767';\r\n static $primaryPurpleColor = '#E3B1EB';\r\n static $primaryRedColor = '#A80002';\r\n static $primaryLightRedColor = '#FFDBDB';\r\n static $primaryLightGrayBlueColor = '#f7f8f9';\r\n static $primaryLightGrayColor = '#f0f0f0';\r\n static $primaryLightBlueColor = '#b9cff2';\r\n static $primaryYellowColor = '#F2CD5C';\r\n static $primaryOrangeColor = '#F2921D';\r\n static $primaryLimeGreenColor = '#AFFF00';\r\n static $primaryNavyBlueColor = '#000080';\r\n static $primaryOrangeRedColor = '#FF4500';\r\n static $primaryDarkPurpleColor = '#7600BC';\r\n}","export enum ChooseObjectTemplateType {\r\n DEFAULT = 0,\r\n BASIC = 1,\r\n CONTENT_PROJECTION = 2,\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nexport class DictionaryToHttpParamsConverter {\r\n static dictionaryToHttpParamsConverter(form_dictionary) {\r\n let queryParams = new HttpParams();\r\n for (let key in form_dictionary) {\r\n if (\r\n form_dictionary[key] !== null &&\r\n form_dictionary[key] !== '' &&\r\n form_dictionary[key] !== undefined &&\r\n form_dictionary[key]?.length !== 0 \r\n )\r\n queryParams = queryParams.append(key, form_dictionary[key]);\r\n }\r\n return queryParams;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DictionaryToHttpParamsConverter } from '../dictionary-to-params-converter';\r\n// import { environment } from '../../environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChooseGeneralItemService {\r\n // baseUrl: string = environment.apiURL;\r\n\r\n constructor(private http: HttpClient, @Inject('env') private env) { }//we have an issue with this line of code...can we meet to resolve it!\r\n\r\n getHeaders() {\r\n const token = localStorage.getItem(\"token\");\r\n const httpHeaders = new HttpHeaders(\r\n {\r\n 'Content-Type': \"application/json\",\r\n 'Authorization': 'Token ' + token\r\n });\r\n return { headers: httpHeaders };\r\n }\r\n\r\n getHeadersAndParams(dictionary) {\r\n let httpHeaders;\r\n const token = localStorage.getItem('token');\r\n if (token) {\r\n httpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset-utf-8',\r\n Authorization: 'Token ' + token,\r\n });\r\n } else {\r\n httpHeaders = new HttpHeaders();\r\n }\r\n const params = DictionaryToHttpParamsConverter.dictionaryToHttpParamsConverter(dictionary);\r\n return { headers: httpHeaders, params: params };\r\n }\r\n\r\n\r\n getAuthenticationHeadersWithQueryParams(params) {\r\n const token = localStorage.getItem(\"token\");\r\n const httpHeaders = new HttpHeaders(\r\n {\r\n 'Content-Type': \"application/json\",\r\n 'Authorization': 'Token ' + token\r\n }\r\n );\r\n return { headers: httpHeaders, params: params };\r\n }\r\n\r\n getData(apiPath: string, filterParams?: any): Observable<any> {\r\n if (filterParams) {\r\n return this.http.get(`${this.env.apiURL}${apiPath}`, this.getHeadersAndParams(filterParams));\r\n }\r\n else {\r\n return this.http.get(`${this.env.apiURL}${apiPath}`, this.getHeaders());\r\n }\r\n }\r\n}\r\n","export enum DropdownActionType {\r\n ADD = 0,\r\n MENU = 1\r\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LabelAndRoute } from './label-and-route.model';\r\nimport { DropdownActionType } from './dropdown-action-type.model';\r\n\r\n@Component({\r\n selector: 'dropdown-actions',\r\n templateUrl: './dropdown-actions.component.html',\r\n styleUrls: ['./dropdown-actions.component.scss']\r\n})\r\nexport class DropdownActionsComponent implements OnInit {\r\n dropdownActionTypes = DropdownActionType;\r\n @Input() canRoute: boolean = true;\r\n @Input() disabled: boolean;\r\n @Input() labelsAndRoutes: LabelAndRoute[] = [];\r\n @Input() route: string;\r\n @Input() dropdownActionType: DropdownActionType = this.dropdownActionTypes.ADD;\r\n @Output() addClicked = new EventEmitter();\r\n\r\n constructor(private _Router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.validateActions();\r\n }\r\n\r\n validateActions() {\r\n if (this.dropdownActionType == this.dropdownActionTypes.ADD) {\r\n if (this.canRoute) {\r\n if (this.route == \"\" || this.route == undefined || this.route == null) {\r\n throw Error(\"Route needs to be provided.\");\r\n }\r\n }\r\n else {\r\n if (this.route) {\r\n throw Error(\"Route shouldn't be provided since canRoute is false\");\r\n }\r\n }\r\n }\r\n else if (this.dropdownActionType == this.dropdownActionTypes.MENU) {\r\n if (!this.labelsAndRoutes.length) {\r\n throw Error(\"A list of labels & Routes need to be provided for the actions menu.\");\r\n }\r\n }\r\n else {\r\n throw Error(\"Dropdown Action Type is not recognized.\")\r\n }\r\n }\r\n\r\n onClickAdd($event) {\r\n $event.preventDefault();\r\n if (this.canRoute && this.route) {\r\n this._Router.navigate([this.route]);\r\n }\r\n this.addClicked.emit();\r\n }\r\n\r\n onClickLabel(route, $event) {\r\n $event.preventDefault();\r\n this._Router.navigate([route]);\r\n }\r\n}\r\n","<div [ngSwitch]=\"dropdownActionType\">\r\n <a *ngSwitchCase=\"dropdownActionTypes.ADD\" [href]=\"route\"\r\n [ngClass]=\"{'action-enabled':!disabled, 'disabled': disabled}\"\r\n (click)=\"onClickAdd($event)\">\r\n <fa-icon icon=\"plus\"></fa-icon>\r\n </a>\r\n <fa-icon *ngSwitchCase=\"dropdownActionTypes.MENU\"\r\n [ngClass]=\"{'action-enabled':!disabled, 'disabled': disabled}\"\r\n class=\"menu\" [matMenuTriggerFor]=\"menu\"\r\n icon=\"ellipsis-vertical\"></fa-icon>\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let labelAndRoute of labelsAndRoutes\" mat-menu-item>\r\n <a [href]=\"labelAndRoute.route\"\r\n (click)=\"onClickLabel(labelAndRoute.route, $event)\">{{labelAndRoute.label}}</a>\r\n </button>\r\n </mat-menu>\r\n</div>","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator,\r\n} from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ChipInputType } from '@jooler/shared-general-components';\r\nimport { filter, Subject, Subscription, switchMap, tap } from 'rxjs';\r\nimport { ChooseItemFullObjectControlConfig } from '../models/choose-item-full-object-control-config.enum';\r\nimport { LabelAndField } from '../models/label-and-field.model';\r\nimport { PrimaryColors } from '../primary-colors';\r\nimport { ChooseGeneralItemService } from './choose-general-item.service';\r\nimport { ChooseObjectBasicTemplate } from './choose-object-basic-template.model';\r\nimport { ChooseObjectTemplateType } from './choose-object-template-type.enum';\r\n\r\n@Component({\r\n selector: 'choose-general-item',\r\n templateUrl: './choose-general-item.component.html',\r\n styleUrls: ['./choose-general-item.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ChooseGeneralItemComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: ChooseGeneralItemComponent,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ChooseGeneralItemComponent\r\n implements OnInit, OnChanges, Validator, ControlValueAccessor {\r\n primaryRed: string = PrimaryColors.$primaryRedColor;\r\n isLoading: boolean = false;\r\n @Input() items: any[];\r\n @Input() label: string = 'label';\r\n @Input() appendTo: string = 'body';\r\n @Input() placeholder: string;\r\n @Input() apiPath: string;\r\n @Input() isMultiple: boolean = false;\r\n @Input() hideSelectedItem: boolean;\r\n @Input() objects: LabelAndField[];\r\n @Input() showLabel: boolean = false;\r\n @Input() separator: string;\r\n @Input() width: number;\r\n @Input() isChip: Boolean = false;\r\n @Input() isTypeDate: boolean;\r\n @Input() chipColor: string = 'black';\r\n @Input() chipTextColor: string = 'white';\r\n @Input() chipWidth: number = 11;\r\n @Input() selectedItemId: number | number[];\r\n @Input() disabled: boolean;\r\n @Input() readOnly: boolean;\r\n @Input() useFullObject: boolean = false;\r\n @Input() showAdd: boolean = false;\r\n @Input() dialogComponentClass: any;\r\n @Input() showDialogDefaultButtons: boolean = false;\r\n @Input() dialogComponentInputs: any = {\r\n isDialog: true,\r\n };\r\n @Input() bindValueKey: string | null = 'id'; // or null for full object\r\n @Input() addRoute: string;\r\n @Input() canActionsRoute: boolean;\r\n @Input() dialogTitle: string;\r\n @Input() clearable: boolean = true;\r\n @Input() filterParams: any;\r\n @Input() templateType: ChooseObjectTemplateType = ChooseObjectTemplateType.DEFAULT;\r\n @Input() basicTemplateData: ChooseObjectBasicTemplate;\r\n @Input() contentProjectionLabelKey: string;\r\n @Input() fullObjectControlConfig: ChooseItemFullObjectControlConfig =\r\n ChooseItemFullObjectControlConfig.ID;\r\n @Output() change = new EventEmitter();\r\n @Output() blur = new EventEmitter();\r\n @ContentChild('customOption') customOptionTemplate: TemplateRef<any>;\r\n\r\n ChooseObjectTemplateType = ChooseObjectTemplateType;\r\n chipInputTypes = ChipInputType;\r\n private fetchTrigger$ = new Subject<any>();\r\n private fetchSub?: Subscription;\r\n\r\n constructor(\r\n private _ChooseGeneralItemService: ChooseGeneralItemService,\r\n private dialog: MatDialog,\r\n private _cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.templateType == ChooseObjectTemplateType.BASIC) {\r\n this.setupBasicTemplate();\r\n }\r\n\r\n this.fetchTrigger$\r\n .pipe(\r\n tap(() => (this.isLoading = true)),\r\n switchMap(({ apiPath, filterParams }) =>\r\n this._ChooseGeneralItemService.getData(apiPath, filterParams)\r\n )\r\n )\r\n .subscribe(data => {\r\n this.items = data;\r\n this.isLoading = false;\r\n console.log(\"response: items from '\", this.apiPath, \"' found: \", this.items);\r\n });\r\n }\r\n\r\n private triggerFetch() {\r\n this.isLoading = true;\r\n this.fetchTrigger$.next({\r\n apiPath: this.apiPath,\r\n filterParams: this.filterParams,\r\n });\r\n }\r\n\r\n setupBasicTemplate() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // console.log('changes: ', changes);\r\n this.validateInputs(changes);\r\n if (this.showAdd) {\r\n this.validateAddConfiguration();\r\n }\r\n\r\n // 1️⃣ Manually assign input updates immediately\r\n if (changes['filterParams']) {\r\n this.filterParams = changes['filterParams'].currentValue;\r\n }\r\n\r\n // CASE A — apiPath changed and items not provided\r\n if (changes['apiPath'] && !changes['items']) {\r\n const newApiPath = changes['apiPath'].currentValue;\r\n\r\n // If apiPath becomes undefined → tear down subscription\r\n if (!newApiPath) {\r\n this.cleanupFetchSubscription();\r\n return; // Do NOT subscribe and do NOT fetch\r\n }\r\n\r\n // apiPath is now defined → create subscription if missing\r\n if (!this.fetchSub) {\r\n this.setupFetchSubscription();\r\n }\r\n\r\n // And trigger the fetch if items not provided\r\n if (!this.items && this.fetchSub) {\r\n // console.log('FETTCCHNNG 3');\r\n this.triggerFetch();\r\n }\r\n }\r\n\r\n // CASE B — Parent passed items → use them and never fetch\r\n if (changes['items']) {\r\n if (changes['items'].currentValue && changes['items'].currentValue.length > 0) {\r\n this.isLoading = false;\r\n this.items = changes['items'].currentValue;\r\n return;\r\n }\r\n }\r\n\r\n // FROM HERE → items is not provided → backend fetch required\r\n // CASE C — initial load (items missing)\r\n if (changes['items'] && !changes['items'].currentValue && this.fetchSub) {\r\n // console.log('FETTCCHNNG 1');\r\n this.triggerFetch();\r\n }\r\n\r\n // CASE D — filterParams changed and items not provided\r\n if (changes['filterParams'] && this.fetchSub) {\r\n // console.log('FETTCCHNNG 2');\r\n\r\n this.triggerFetch();\r\n }\r\n }\r\n\r\n\r\n private setupFetchSubscription() {\r\n this.fetchSub = this.fetchTrigger$\r\n .pipe(\r\n filter(trigger => trigger !== null),\r\n tap(() => (this.isLoading = true)),\r\n switchMap(({ apiPath, filterParams }) =>\r\n this._ChooseGeneralItemService.getData(apiPath, filterParams)\r\n )\r\n )\r\n .subscribe(data => {\r\n this.items = data;\r\n this.isLoading = false;\r\n // console.log('fetched items from ', this.apiPath, data);\r\n });\r\n }\r\n\r\n\r\n validateAddConfiguration() {\r\n if (\r\n (this.addRoute == '' || this.addRoute == null || this.addRoute == undefined) &&\r\n (this.dialogComponentClass == null || this.dialogComponentClass == undefined)\r\n ) {\r\n throw Error(\r\n 'Showing the add button requires either a route for the add button to route to, or a component class for a dialog to open up with that component.'\r\n );\r\n }\r\n }\r\n\r\n writeValue(item: any) {\r\n if (item != undefined || item != null) {\r\n if (!this.useFullObject) {\r\n this.selectedItemId = item;\r\n } else {\r\n if (Array.isArray(item)) {\r\n this.selectedItemId = item.map(item => item.id);\r\n } else {\r\n this.selectedItemId = item.id;\r\n }\r\n }\r\n } else {\r\n this.selectedItemId = null;\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n private onValidationChange: any = () => { };\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n this.blur.emit();\r\n }\r\n\r\n onSelectedItemChanged($event) {\r\n let valueToPropagate: any;\r\n if (this.fullObjectControlConfig == ChooseItemFullObjectControlConfig.ID) {\r\n valueToPropagate = this.selectedItemId;\r\n } else if (this.fullObjectControlConfig == ChooseItemFullObjectControlConfig.OBJECT) {\r\n valueToPropagate = $event;\r\n } else {\r\n throw Error('ChooseItemFullObjectControlConfig is not recognized.');\r\n }\r\n this.propagateChange(valueToPropagate);\r\n this.change.emit($event);\r\n this.onValidationChange();\r\n }\r\n\r\n validateInputs(changes: SimpleChanges) {\r\n if (\r\n changes.apiPath &&\r\n changes.apiPath.currentValue &&\r\n changes.items &&\r\n changes.items.currentValue\r\n ) {\r\n throw Error('Both an API path and an items list was provided.');\r\n }\r\n }\r\n\r\n getData() {\r\n if (this.apiPath) {\r\n this._ChooseGeneralItemService.getData(this.apiPath, this.filterParams).subscribe({\r\n next: (response: any[]) => {\r\n this.items = response;\r\n this.isLoading = false;\r\n this._cdr.markForCheck();\r\n console.log(\"response: items from '\", this.apiPath, \"' found: \", this.items);\r\n },\r\n error: error => console.error('error', error),\r\n });\r\n }\r\n }\r\n\r\n setWidth() {\r\n let style = {};\r\n if (this.width) {\r\n style = {\r\n width: this.width + 'rem',\r\n };\r\n } else {\r\n style = {\r\n width: '100%',\r\n };\r\n }\r\n return style;\r\n }\r\n\r\n onClickAddNew() {\r\n console.log('DYNAMIC DIALOG NOT IMPLEMENTED IN LIBRARY YET');\r\n\r\n // Add dynamic dialog later\r\n // let dialogRef = this.dialog.open(DynamicDialogComponent, {\r\n // panelClass: 'custom-dialog-padding',\r\n // width: '90%',\r\n // minWidth: '90%',\r\n // maxHeight: '90vh',\r\n // data: {\r\n // component: this.dialogComponentClass,\r\n // showDefaultButtons: this.showDialogDefaultButtons,\r\n // title: this.dialogTitle,\r\n // inputs: this.dialogComponentInputs,\r\n // },\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe((data: any) => {\r\n // if (data) {\r\n // console.log('New item Added: ', data);\r\n // this.items.push(data);\r\n // this.items = [...this.items];\r\n // }\r\n // });\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidationChange = fn;\r\n }\r\n\r\n private cleanupFetchSubscription() {\r\n if (this.fetchSub) {\r\n this.fetchSub.unsubscribe();\r\n this.fetchSub = undefined;\r\n }\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return null;\r\n if (control) {\r\n const errors = control.errors;\r\n if (errors) {\r\n console.log('errorssss: ', errors);\r\n return errors;\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"select\">\r\n <ng-select [readonly]=\"readOnly\" [loading]=\"isLoading\" [hideSelected]=\"hideSelectedItem\"\r\n [closeOnSelect]=\"!isMultiple\" [ngStyle]=\"setWidth()\" class=\"component\" [disabled]=\"disabled\"\r\n [appendTo]=\"appendTo\" dropdownPosition=\"bottom\" (blur)=\"updateBlur()\" [bindLabel]=\"label\"\r\n [bindValue]=\"bindValueKey\" [compareWith]=\"\" [items]=\"items\" [placeholder]=\"placeholder\"\r\n (change)=\"onSelectedItemChanged($event)\" [(ngModel)]=\"selectedItemId\" [clearable]=\"clearable\"\r\n [multiple]=\"isMultiple\">\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.DEFAULT\">\r\n <ng-template *ngIf=\"isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\"> </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"objects; else nonObjectLabelTemplate\">\r\n <span class=\"template\" *ngFor=\"let object of objects; let isLast = last\">\r\n <span class=\"template-item\">\r\n {{ showLabel ? object.label + ': ' : ''\r\n }}{{\r\n isTypeDate ? (item[object.field] | date: 'mediumDate') : item[object.field]\r\n }}</span>\r\n </span>\r\n </ng-container>\r\n <ng-template #nonObjectLabelTemplate>{{ item }} </ng-template>\r\n </ng-template>\r\n\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container *ngIf=\"objects; else nonObjectOptionTemplate\">\r\n <span *ngFor=\"let object of objects; let isLast = last\">\r\n {{ showLabel ? object.label + ': ' : ''\r\n }}{{ isTypeDate ? (item[object.field] | date: 'mediumDate') : item[object.field] }}\r\n </span>\r\n </ng-container>\r\n <ng-template #nonObjectOptionTemplate>{{ item }} </ng-template>\r\n </ng-template>\r\n\r\n <ng-template *ngIf=\"isChip && !isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n <ng-chip (mousedown)=\"$event.stopPropagation()\" [clear]=\"clear\" [withCross]=\"isMultiple\"\r\n [inputType]=\"chipInputTypes.CUSTOM\"\r\n [backgroundColor]=\"item.disabled == true ? primaryRed : chipColor\" [label]=\"item[objects[0].field]\"\r\n [item]=\"item\">\r\n </ng-chip>\r\n </ng-template>\r\n <ng-template *ngIf=\"isChip && !isLoading\" ng-option-tmp let-clear=\"clear\" let-item=\"item\">\r\n <ng-chip (mousedown)=\"$event.stopPropagation()\" [withCross]=\"false\" [inputType]=\"chipInputTypes.CUSTOM\"\r\n [backgroundColor]=\"item.disabled == true ? primaryRed : chipColor\" [label]=\"item[objects[0].field]\">\r\n </ng-chip>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.BASIC\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item[basicTemplateData.label] }}\r\n </ng-template>\r\n <ng-template ng-option-tmp let-clear=\"clear\" let-item=\"item\">\r\n <mat-card class=\"basic-template-card\" [ngClass]=\"{\r\n 'with-image': basicTemplateData.hasImage,\r\n 'without-image': !basicTemplateData.hasImage,\r\n }\">\r\n <div class=\"image-cont\" *ngIf=\"basicTemplateData.hasImage\">\r\n <img class=\"main-image\" [src]=\"item[basicTemplateData.image]\"\r\n onerror=\"this.src='../../../assets/images/defaultImage.jpg';\" />\r\n </div>\r\n\r\n <div class=\"info\">\r\n <div class=\"title\">\r\n {{ item[basicTemplateData.title] }}\r\n </div>\r\n <div class=\"subtitle-style\" *ngIf=\"basicTemplateData.hasSubtitleOne\">\r\n <span>{{ item[basicTemplateData.subtitleOne] }}</span>\r\n <ng-container *ngIf=\"basicTemplateData.hasSubtitleTwo\">\r\n <span class=\"col-divider\"> | </span>\r\n <span>{{ item[basicTemplateData.subtitleTwo] }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"description\" *ngIf=\"basicTemplateData.hasDescription\">\r\n {{ item[basicTemplateData.description] }}\r\n </div>\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"templateType == ChooseObjectTemplateType.CONTENT_PROJECTION\">\r\n <ng-template *ngIf=\"isLoading\" ng-label-tmp let-item=\"item\" let-clear=\"clear\"> </ng-template>\r\n\r\n <ng-template ng-label-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <span class=\"template\">\r\n <span class=\"template-item\"> {{ item[contentProjectionLabelKey] }} </span>\r\n </span>\r\n </ng-template>\r\n\r\n <!-- Option Template -->\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <ng-container [ngTemplateOutlet]=\"customOptionTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n <dropdown-actions *ngIf=\"showAdd\" [canRoute]=\"canActionsRoute\" [route]=\"addRoute\"\r\n (addClicked)=\"onClickAddNew()\"></dropdown-actions>\r\n</div>\r\n ","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'show-table-errors',\r\n templateUrl: './show-table-errors.component.html',\r\n styleUrls: ['./show-table-errors.component.scss']\r\n})\r\nexport class ShowTableErrorsComponent implements OnInit {\r\n @Input() message: any;\r\n showDetails: boolean;\r\n ngOnInit() {\r\n }\r\n\r\n onMouseEnter() {\r\n this.showDetails = true;\r\n }\r\n\r\n onMouseLeave() {\r\n this.showDetails = false;\r\n }\r\n\r\n}\r\n","<div (mouseenter)=\"onMouseEnter()\"(mouseleave)=\"onMouseLeave()\" class=\"icon\">\r\n <fa-icon class=\"icon\" icon=\"info-circle\" ></fa-icon>\r\n <span *ngIf=\"message\" class=\"message\"\r\n [ngClass]=\"{'no-details' : !showDetails , 'details': showDetails}\">{{message}}</span>\r\n</div>","export enum ToolTipMessageType {\r\n ERROR = 0,\r\n WARNING = 1,\r\n HELP = 2,\r\n DEFAULT = 3,\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { PrimaryColors } from '../primary-colors';\r\nimport { ToolTipMessageType } from './tooltip-message-type.enum';\r\n\r\n@Component({\r\n selector: 'tooltip-msg-error',\r\n templateUrl: './tooltip-msg-error.component.html',\r\n styleUrls: ['./tooltip-msg-error.component.scss'],\r\n})\r\nexport class TooltipMsgError implements OnInit, OnChanges, OnDestroy {\r\n @Input() width: string;\r\n @Input() control: AbstractControl | null = null;\r\n @Input() messageType: ToolTipMessageType = ToolTipMessageType.ERROR;\r\n @Input() message: any;\r\n iconElId: string;\r\n messageElId: string;\r\n isLeft: boolean = true;\r\n showDetails: boolean;\r\n tooltipIcon: HTMLElement;\r\n tooltipMessage: HTMLElement;\r\n iconStyle: any;\r\n isDictionary: boolean;\r\n\r\n @HostListener('document:scroll ')\r\n onScrollY() {\r\n this.onMouseLeave();\r\n }\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private _El: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.iconElId = this.generateRandomString();\r\n this.messageElId = this.generateRandomString();\r\n this.setIconStyle();\r\n this.checkErrorType();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.checkErrorType();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (document.getElementById(this.messageElId)) {\r\n document.getElementById(this.messageElId).remove();\r\n }\r\n }\r\n\r\n checkErrorType() {\r\n if (this.message) {\r\n if (this.message.constructor == Object) {\r\n this.isDictionary = true;\r\n } else if (typeof this.message === 'string') {\r\n this.isDictionary = false;\r\n } else {\r\n this.isDictionary = false;\r\n }\r\n }\r\n }\r\n\r\n getThemedMessageStyle() {\r\n let backgroundColor: string;\r\n let fontBorderColor: string;\r\n\r\n switch (this.messageType) {\r\n case ToolTipMessageType.ERROR:\r\n backgroundColor = '#fde5f0';\r\n fontBorderColor = PrimaryColors.$primaryPinkColor;\r\n break;\r\n case ToolTipMessageType.WARNING:\r\n backgroundColor = '#fdefdd';\r\n fontBorderColor = PrimaryColors.$primaryOrangeColor;\r\n\r\n break;\r\n case ToolTipMessageType.HELP:\r\n backgroundColor = '#d1f9f2';\r\n fontBorderColor = PrimaryColors.$primaryTealColor;\r\n break;\r\n default:\r\n backgroundColor = PrimaryColors.$primaryLightGrayColor;\r\n fontBorderColor = PrimaryColors.$primaryGrayColor;\r\n break;\r\n }\r\n let style = {\r\n 'background-color': backgroundColor,\r\n 'font-weight': 'bold',\r\n color: fontBorderColor,\r\n border: '0.2rem solid ' + fontBorderColor,\r\n 'border-left': '0.5rem solid ' + fontBorderColor,\r\n };\r\n\r\n return style;\r\n }\r\n\r\n setMessageStyle() {\r\n let style = {};\r\n\r\n if (this.width) {\r\n style['width'] = this.width;\r\n }\r\n }\r\n\r\n get messageStyle() {\r\n let commonMessageStyle = {};\r\n\r\n if (this.width) {\r\n commonMessageStyle['width'] = this.width;\r\n }\r\n return {\r\n ...commonMessageStyle,\r\n ...(this.showDetails ? this.getThemedMessageStyle() : {}),\r\n };\r\n }\r\n\r\n setIconStyle() {\r\n let backgroundColor: string;\r\n switch (this.messageType) {\r\n case ToolTipMessageType.ERROR:\r\n backgroundColor = PrimaryColors.$primaryPinkColor;\r\n break;\r\n case ToolTipMessageType.WARNING:\r\n backgroundColor = PrimaryColors.$primaryOrangeColor;\r\n break;\r\n case ToolTipMessageType.HELP:\r\n backgroundColor = PrimaryColors.$primaryTealColor;\r\n break;\r\n default:\r\n backgroundColor = PrimaryColors.$primaryGrayColor;\r\n break;\r\n }\r\n let style = {\r\n color: backgroundColor,\r\n };\r\n\r\n this.iconStyle = style;\r\n }\r\n\r\n onMouseEnter() {\r\n this.showDetails = true;\r\n // CDR is needed to let the DOM know the box error has a width\r\n this.cdr.detectChanges();\r\n this.tooltipMessage = document.getElementById(this.messageElId);\r\n if (this.message) {\r\n this.getDirection(this.tooltipMessage);\r\n document.body.appendChild(this.tooltipMessage);\r\n let messageElement = document.getElementById(this.messageElId);\r\n let icon = document.getElementById(this.iconElId);\r\n let rect = icon.getBoundingClientRect();\r\n\r\n let top = rect.top;\r\n let left = rect.left;\r\n let right = rect.right;\r\n let appendedLeft: number;\r\n let appendedRight: number;\r\n let appendedTop = top - messageElement.offsetHeight;\r\n this.tooltipMessage.style.top = appendedTop + 'px';\r\n this.tooltipMessage.style.zIndex = '1000';\r\n\r\n if (this.isLeft) {\r\n appendedLeft = left + icon.offsetWidth - 5;\r\n this.tooltipMessage.style.left = appendedLeft + 'px';\r\n } else {\r\n appendedRight = window.innerWidth - right + 5;\r\n this.tooltipMessage.style.right = appendedRight + 'px';\r\n }\r\n }\r\n }\r\n\r\n onMouseLeave() {\r\n this.showDetails = false;\r\n }\r\n\r\n getDirection(element) {\r\n // Calculating the width difference between screen width minus the poistion of the icon from left to right (getBoundingClientRect().right)\r\n let difference = window.innerWidth - element.getBoundingClientRect().right;\r\n // hard coded + 12 is for the padding that has been added to router-outlet\r\n // The if statment here check if there is enough space for the box error to show from left to right , if not enough space, the box error will pop up from right to left\r\n if (difference <= element.offsetWidth + 12) {\r\n this.isLeft = false;\r\n } else {\r\n this.isLeft = true;\r\n }\r\n }\r\n\r\n generateRandomString() {\r\n let charsAndNumbs = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';\r\n let text = '';\r\n for (let i = 0; i < 8; i++) {\r\n text += charsAndNumbs.charAt(Math.floor(Math.random() * charsAndNumbs.length));\r\n }\r\n return text;\r\n }\r\n\r\n // Helper to decide how to display the value\r\n formatValue(value: any): string {\r\n if (!value) return '';\r\n\r\n // 1. If it's an array (like your jurisdiction error)\r\n if (Array.isArray(value)) {\r\n // Map through the array and extract 'message' if it exists, otherwise stringify\r\n return value\r\n .map(item => {\r\n return typeof item === 'object' && item.message ? item.message : JSON.stringify(item);\r\n })\r\n .join(', ');\r\n }\r\n\r\n // 2. If it's a single object (but not an array)\r\n if (typeof value === 'object') {\r\n return value.message || JSON.stringify(value);\r\n }\r\n\r\n // 3. It's a string or number\r\n return value;\r\n }\r\n}\r\n","<div\r\n *ngIf=\"message && !control\"\r\n class=\"container\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\">\r\n <fa-icon [id]=\"iconElId\" [ngStyle]=\"iconStyle\" icon=\"circle-exclamation\" class=\"icon\"></fa-icon>\r\n <div\r\n *ngIf=\"!isDictionary\"\r\n [ngStyle]=\"messageStyle\"\r\n [id]=\"messageElId\"\r\n class=\"message\"\r\n [ngClass]=\"{ 'no-details': !showDetails, details: showDetails }\">\r\n {{ message }}\r\n </div>\r\n\r\n <div\r\n *ngIf=\"isDictionary\"\r\n [ngStyle]=\"messageStyle\"\r\n [id]=\"messageElId\"\r\n class=\"message\"\r\n [ngClass]=\"{ 'no-details': !showDetails, details: showDetails }\">\r\n <div class=\"dict-cont\" *ngFor=\"let entry of message | keyvalue\">\r\n <strong>{{ entry.key }}: </strong>\r\n <span>{{ formatValue(entry.value) }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"control?.touched && control.errors\"\r\n class=\"container\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\">\r\n <fa-icon [ngStyle]=\"iconStyle\" [id]=\"iconElId\" icon=\"circle-exclamation\" class=\"icon\"></fa-icon>\r\n <div\r\n [ngStyle]=\"messageStyle\"\r\n [id]=\"messageElId\"\r\n class=\"message\"\r\n [ngClass]=\"{ 'no-details': !showDetails, details: showDetails }\">\r\n <div class=\"dict-cont\" *ngFor=\"let entry of message | keyvalue\">\r\n <strong>{{ entry.key }}: </strong>\r\n <span>{{ formatValue(entry.value) }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Directive, ElementRef, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'\r\nimport { PrimaryColors } from './primary-colors';\r\n\r\n@Directive({\r\n selector: '[addAsterisk]'\r\n})\r\nexport class AddAsteriskDirective implements OnInit, OnChanges {\r\n @Input('show') show: boolean = true;\r\n\r\n constructor(\r\n private elem: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.toggleAsterisk();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.toggleAsterisk();\r\n }\r\n\r\n toggleAsterisk() {\r\n const existingAsterisk = this.elem.nativeElement.querySelector('.custom-asterisk');\r\n\r\n if (this.show) {\r\n if (!existingAsterisk) {\r\n const customAsterisk = `<span class=\"custom-asterisk\" style=\"color:${PrimaryColors.$primaryRedColor};\"> *</span> `\r\n this.elem.nativeElement.insertAdjacentHTML('beforeend', customAsterisk);\r\n }\r\n }\r\n else {\r\n if (existingAsterisk) {\r\n existingAsterisk.remove();\r\n }\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidationMessageService {\r\n}\r\n\r\n\r\nexport class MinLengthValidationError {\r\n requirement: number;\r\n\r\n constructor(requirement: number) {\r\n\r\n this.requirement = requirement;\r\n }\r\n\r\n buildMessage() {\r\n return \"Must be a minimum length of \" + this.requirement + \" letters!\";\r\n }\r\n}\r\n\r\nexport class InvalidIntegerNumberValidatorEerror {\r\n buildMessage() {\r\n return \"Must only contain numbers, no decimals or words allowed\";\r\n }\r\n}\r\n\r\nexport class PositiveIntegerNumberValidatorError {\r\n buildMessage() {\r\n return \"Must be a positive integer\";\r\n }\r\n}\r\n\r\n\r\nexport class MaxLengthValidationError {\r\n requirement: number;\r\n\r\n constructor(requirement: number) {\r\n this.requirement = requirement;\r\n }\r\n\r\n buildMessage() {\r\n return \"Must be a maximum length of \" + this.requirement + \" letters!\";\r\n }\r\n}\r\n\r\nexport class MaxValidationError{\r\n requirement: number;\r\n\r\n constructor(requirement: number) {\r\n this.requirement = requirement;\r\n }\r\n\r\n buildMessage() {\r\n return \"The largest acceptable input is \" + this.requirement;\r\n }\r\n}\r\nexport class MinValidationError{\r\n requirement: number;\r\n\r\n constructor(requirement: number) {\r\n this.requirement = requirement;\r\n }\r\n\r\n buildMessage() {\r\n return \"The smallest acceptable input is \" + this.requirement ;\r\n }\r\n}\r\n\r\nexport class PatternValidatorError {\r\n requirement: any;\r\n\r\n constructor(requirement: string) {\r\n this.requirement = requirement\r\n }\r\n\r\n buildMessage() {\r\n if (this.requirement == '^[a-zA-Z ]*$') {\r\n return \"This field must only contain words \";\r\n }\r\n else if (this.requirement == '/[0-9]-[0-9]+$/') {\r\n return \"This field must only contain numbers and a - \" + \"<br>\" + \"Example: 71-716971\";\r\n }\r\n else if (this.requirement = 'forDate') {\r\n return \"Date needs to be DD/MM/YYYY\";\r\n }\r\n }\r\n}\r\n\r\nexport class RequiredValidatorError {\r\n buildMessage() {\r\n return \"This Field Is Required\";\r\n }\r\n}\r\n\r\nexport class EmailValidatorError {\r\n\r\n buildMessage() {\r\n return \"Make Sure It Is An Email Format\" + \"<br>\" + \"example@jooler.io\";\r\n }\r\n}\r\n\r\nexport class ValidationError {\r\n static getRelevantError(validationType: string, validationValue: any) {\r\n let validationMessage;\r\n validationMessage = this.MessageDictionary(validationValue, validationType);\r\n return validationMessage;\r\n }\r\n\r\n\r\n static MessageDictionary(value, validationType) {\r\n let ValidationMessageForInput = {\r\n 'minlength': new MinLengthValidationError(value).buildMessage(),\r\n 'maxlength': new MaxLengthValidationError(value).buildMessage(),\r\n 'max': new MaxValidationError(value).buildMessage(),\r\n 'min': new MinValidationError(value).buildMessage(),\r\n 'pattern': new PatternValidatorError(value).buildMessage(),\r\n 'required': new RequiredValidatorError().buildMessage(),\r\n 'email': new EmailValidatorError().buildMessage(),\r\n 'invalidIntegerNumber': new InvalidIntegerNumberValidatorEerror().buildMessage(),\r\n 'invalidPositiveInteger': new PositiveIntegerNumberValidatorError().buildMessage(),\r\n }\r\n return ValidationMessageForInput[validationType];\r\n }\r\n\r\n static validationMessageForDate = {\r\n 'required': new RequiredValidatorError().buildMessage(),\r\n 'pattern': new PatternValidatorError('forDate').buildMessage(),\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { NgControl, NgModel, ValidationErrors } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { PrimaryColors } from './primary-colors';\r\nimport { ValidationError } from './services/validation-message.service';\r\n\r\n@Directive({\r\n selector: '[appFormControlValidationMsgForNgSelect]',\r\n providers: [NgModel],\r\n})\r\nexport class FormControlValidationMsgDirectiveForNgSelect implements OnInit {\r\n errorMessage: any;\r\n showDot: boolean;\r\n errorDivId: string | number;\r\n @Input('afterEnd') afterEnd: boolean = true;\r\n @Input('showBoxError') showBoxError: boolean = true;\r\n validationError = ValidationError;\r\n statusChangeSubscription: Subscription;\r\n\r\n constructor(\r\n private elRef: ElementRef,\r\n private control: NgControl\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.errorDivId) {\r\n this.errorDivId = this.control.name;\r\n }\r\n this.statusChangeSubscription = this.control.statusChanges.subscribe(status => {\r\n if (status == 'INVALID' && this.control.touched) {\r\n this.showNgSelectError();\r\n } else {\r\n this.removeError();\r\n }\r\n });\r\n this.control.valueChanges.subscribe({\r\n next: () => {\r\n if (this.control.errors && this.control.touched) {\r\n this.showNgSelectError();\r\n } else {\r\n this.removeError();\r\n }\r\n },\r\n });\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusout() {\r\n if (this.control.errors && this.control.touched) {\r\n this.showNgSelectError();\r\n } else {\r\n this.removeError();\r\n }\r\n }\r\n\r\n private removeError(): void {\r\n this.errorMessage = '';\r\n const errorElement = document.getElementById(this.errorDivId as string);\r\n if (errorElement) errorElement.remove();\r\n }\r\n\r\n private showNgSelectError() {\r\n this.removeError();\r\n const valErrors: ValidationErrors = this.control.errors;\r\n\r\n if (this.control.errors.length > 1) {\r\n this.showDot = true;\r\n } else {\r\n this.showDot = false;\r\n }\r\n if (valErrors) {\r\n const keys = Object.keys(valErrors);\r\n for (let i = 0; i < keys.length; i++) {\r\n switch (keys[i]) {\r\n case 'required': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\\u25CF ' + message : message}`;\r\n this.control.control.setErrors(\r\n { required: true, message: message },\r\n { emitEvent: false }\r\n );\r\n break;\r\n }\r\n case 'validatePhoneNumber': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\\u25CF ' + message : message}`;\r\n this.control.control.setErrors(\r\n { validatePhoneNumber: true, message: message },\r\n { emitEvent: false }\r\n );\r\n break;\r\n }\r\n case 'customMessage': {\r\n console.log('valErrors', valErrors);\r\n let message = valErrors.message;\r\n this.errorMessage += ` ${this.errorMessage ? '<br>' : ''}${this.showDot ? '\\u25CF ' + message : message}`;\r\n }\r\n }\r\n }\r\n if (this.showBoxError) {\r\n const errDiv =\r\n `<div style=\"color:${PrimaryColors.$primaryRedColor}; width: ${this.afterEnd ? this.elRef.nativeElement.offsetWidth + 'px' : '100%'}; min-width: 100%; background-color: ${PrimaryColors.$primaryLightRedColor}; padding: .5rem; border-radius: .5rem; border: .1rem solid ${PrimaryColors.$primaryRedColor} ;border-left: .75rem solid ${PrimaryColors.$primaryRedColor}; margin-top:.5rem; font-size: 1.2rem; \" id=\"` +\r\n this.errorDivId +\r\n '\">' +\r\n `<h3 style= \" font-size: 1.3rem; margin-bottom:.5rem; margin:0; color: ${PrimaryColors.$primaryRedColor}; font-weight: 700; line-height: 1.6rem;\">` +\r\n 'Please Complete all details' +\r\n '</h3>' +\r\n this.errorMessage +\r\n '</div>';\r\n if (!this.afterEnd)\r\n this.elRef.nativeElement.parentElement.insertAdjacentHTML('afterend', errDiv);\r\n else {\r\n this.elRef.nativeElement.insertAdjacentHTML('afterend', errDiv);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { RowNode } from 'ag-grid-community';\r\nimport { ChooseObjectBasicTemplate } from '../choose-general-item/choose-object-basic-template.model';\r\nimport { ChooseObjectTemplateType } from '../choose-general-item/choose-object-template-type.enum';\r\nimport { ChooseGeneralItemRendererChangeEvent } from './choose-general-item-renderer-change-event.interface';\r\nimport { ChooseItemRendererValidationType } from './choose-general-item-renderer-validation-type.enum';\r\n\r\n@Component({\r\n selector: 'choose-general-item-renderer',\r\n templateUrl: './choose-general-item-renderer.component.html',\r\n styleUrls: ['./choose-general-item-renderer.component.scss']\r\n})\r\nexport class ChooseGeneralItemRendererComponent implements ICellRendererAngularComp {\r\n arrayKey: string = 'entries';\r\n formGroup: FormGroup;\r\n items: any[];\r\n key: string;\r\n params: any;\r\n validationType: ChooseItemRendererValidationType = ChooseItemRendererValidationType.NONE;\r\n validationTypes = ChooseItemRendererValidationType;\r\n clearable: boolean = true;\r\n templateType: ChooseObjectTemplateType = ChooseObjectTemplateType.DEFAULT;\r\n basicTemplateData: ChooseObjectBasicTemplate;\r\n valueToBind: string | null = 'id'; // or null for full object\r\n showDropdown: boolean = true;\r\n\r\n constructor() { }\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n if (params.context.arrayKey) {\r\n this.arrayKey = params.context.arrayKey;\r\n }\r\n this.setupRenderer(params);\r\n this.formGroup = params.context.formGroup.get(this.arrayKey).at(params.node.rowIndex);\r\n this.key = params.context.createKey(params.columnApi, params.column);\r\n }\r\n\r\n onCellDataChanged($event: any) {\r\n let object: any = $event;\r\n this.formGroup.get(this.key);\r\n let rowNode: RowNode = this.params.node;\r\n let valueToBind: any;\r\n\r\n if (this.valueToBind === null) {\r\n // Case 1: Bind the entire object\r\n valueToBind = object;\r\n } else if (this.valueToBind && object) {\r\n // Case 2: Bind a specific property using dynamic access\r\n valueToBind = object[this.valueToBind];\r\n } else {\r\n // Case 3: Handle null/cleared selection\r\n valueToBind = null;\r\n }\r\n\r\n rowNode.setDataValue(this.key, valueToBind);\r\n\r\n if (this.params.onCellValueChanged instanceof Function) {\r\n const params: ChooseGeneralItemRendererChangeEvent = {\r\n value: object?.[this.valueToBind],\r\n object: object,\r\n rowNode: rowNode,\r\n colId: this.params.column.colId,\r\n lineFormGroup: this.params.context.formGroup.get(this.arrayKey).at(rowNode.rowIndex),\r\n };\r\n this.params.onCellValueChanged(params);\r\n }\r\n if (this.validationType == ChooseItemRendererValidationType.ROW_LEVEL_UNIQUE) {\r\n this.setRowLevelUniqueItems(this.params);\r\n }\r\n }\r\n\r\n setupRenderer(params) {\r\n if (params.showDropdown === true || params.showDropdown === false) {\r\n this.showDropdown = params.showDropdown;\r\n }\r\n if (params.bindValueKey != undefined) {\r\n this.valueToBind = params.bindValueKey;\r\n }\r\n if (params.clearable != null && params.clearable != undefined) {\r\n this.clearable = params.clearable;\r\n }\r\n if (params.templateType) {\r\n this.templateType = params.templateType;\r\n }\r\n if (params.basicTemplateData) {\r\n this.basicTemplateData = params.basicTemplateData;\r\n }\r\n if (params.chooseItemValidationType != null && params.chooseItemValidationType != undefined) {\r\n this.validationType = params.chooseItemValidationType;\r\n }\r\n\r\n if (this.validationType == ChooseItemRendererValidationType.ROW_LEVEL_UNIQUE) {\r\n this.setRowLevelUniqueItems(params);\r\n } else if (this.validationType == ChooseItemRendererValidationType.NONE) {\r\n this.setAllItems(params);\r\n } else {\r\n throw Error('ChooseGeneralItemRendererValidationType is not recognized.');\r\n }\r\n }\r\n\r\n setAllItems(params) {\r\n if (params.items) {\r\n this.items = params.items;\r\n }\r\n }\r\n\r\n setRowLevelUniqueItems(params) {\r\n let items: any[];\r\n if (params.items) {\r\n items = params.items;\r\n if (params.value && !items.includes(item => item?.[this.valueToBind] !== params.value)) {\r\n let appendedItems = [...items];\r\n appendedItems.push(params.allItems.find(item => item?.[this.valueToBind] === params.value));\r\n items = appendedItems;\r\n }\r\n this.items = items;\r\n }\r\n }\r\n\r\n refresh(params: any): boolean {\r\n this.formGroup = this.params.context.formGroup.get(this.arrayKey).at(params.node.rowIndex);\r\n this.setupRenderer(params);\r\n return true;\r\n }\r\n\r\n get showError() {\r\n if (this.formGroup.get(this.key).errors && this.formGroup.get(this.key).touched) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","<div class=\"all\" [ngClass]=\"{ single: !showError, double: showError }\"\r\n *ngIf=\"formGroup && showDropdown\" [formGroup]=\"formGroup\">\r\n <choose-general-item [bindValueKey]=\"valueToBind\" [clearable]=\"clearable\"\r\n [items]=\"items\" appFormControlValidationMsgForNgSelect [formControlName]=\"key\"\r\n [label]=\"params.label\" [appendTo]=\"'body'\" [placeholder]=\"params.placeholder\"\r\n [isMultiple]=\"params.isMultiple\" [objects]=\"params.objects\"\r\n [showLabel]=\"params.showLabel\" [separator]=\"params.separator\"\r\n [width]=\"params.width\" [isChip]=\"params.isChip\" [isTypeDate]=\"params.isTypeDate\"\r\n [chipColor]=\"params.chipColor\" [chipTextColor]=\"params.chipTextColor\"\r\n [basicTemplateData]=\"basicTemplateData\" [templateType]=\"templateType\"\r\n [chipWidth]=\"params.chipWidth\" (change)=\"onCellDataChanged($event)\"\r\n [showBoxError]=\"false\">\r\n </choose-general-item>\r\n <tooltip-msg-error [control]=\"formGroup.get(this.key)\" *ngIf=\"showError\"\r\n [message]=\"formGroup.get(key).errors.message\"></tooltip-msg-error>\r\n</div>\r\n<div class=\"center\" *ngIf=\"!showDropdown\">-</div>","export enum LineType {\r\n INCLUDE = 0,\r\n DO_NOT_INCLUDE = 1,\r\n}","import { EnumOption } from \"@jooler/shared-general-components\";\r\nimport { LineType } from \"./line-type.model\";\r\n\r\nexport class LineTypeModelHelper {\r\n\r\n static label: string;\r\n static color: string;\r\n static description: string;\r\n static value: any;\r\n\r\n static getItems() {\r\n let items: EnumOption[] = [];\r\n let values = Object.values(LineType);\r\n let types = values.filter(value =>\r\n typeof value === 'number') as number[];\r\n for (let value of types) {\r\n this.setStringValueAndColor(value);\r\n items.push({ value: value, label: this.label, color: this.color, description: this.description })\r\n }\r\n return items\r\n }\r\n\r\n static setStringValueAndColor(type: LineType) {\r\n switch (type) {\r\n case LineType.INCLUDE:\r\n return this.label = \"Include\", this.color = \"gold\";\r\n break;\r\n case LineType.DO_NOT_INCLUDE:\r\n return this.label = \"Do Not Include\", this.color = \"platinum\";\r\n break;\r\n default:\r\n return this.label = \"Undefined\", this.color = \"Gray\"\r\n }\r\n }\r\n\r\n getValue(label: string) {\r\n let value;\r\n switch (label) {\r\n case \"Include\":\r\n return value = 0;\r\n break;\r\n case \"Do Not Include\":\r\n return value = 1;\r\n break;\r\n default:\r\n return null\r\n }\r\n }\r\n static getLabelAndColorForValue(value: number) {\r\n for (let item of this.getItems()) {\r\n if (item.value == value) {\r\n this.value = item;\r\n return this.value\r\n }\r\n }\r\n }\r\n}","import { Component, forwardRef, OnInit } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { LineTypeModelHelper } from '../models/line-type-model-helper';\r\n\r\n@Component({\r\n selector: 'choose-line-type',\r\n templateUrl: './choose-line-type.component.html',\r\n styleUrls: ['./choose-line-type.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ChooseLineTypeComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ChooseLineTypeComponent implements OnInit {\r\n items = LineTypeModelHelper;\r\n selectedItem: any;\r\n types: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.types = this.items.getItems();\r\n }\r\n\r\n writeValue(type: any) {\r\n if (type != undefined || type != null) {\r\n this.selectedItem = type;\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n }\r\n\r\n onSelectedItemChanged() {\r\n this.propagateChange(this.selectedItem);\r\n }\r\n}\r\n","<div class=\"select\">\r\n <ng-select class=\"type\" appendTo=\"body\" (blur)=\"updateBlur()\" bindLabel=\"label\" bindValue=\"label\" [items]=\"types\"\r\n [placeholder]=\"'Choose A Component'\" (change)=\"onSelectedItemChanged()\" [(ngModel)]=\"selectedItem\">\r\n <ng-template class=\"template\" ng-option-tmp ng-label-tmp let-item=\"item\" let-index=\"index\">\r\n {{item.label}}\r\n </ng-template>\r\n </ng-select>\r\n</div>","import { Component, OnInit, Output, EventEmitter, Input, forwardRef } from '@angular/core';\r\nimport { YesOrNo } from '../models/yes-or-no.model';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'choose-yes-or-no',\r\n templateUrl: './choose-yes-or-no.component.html',\r\n styleUrls: ['./choose-yes-or-no.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ChooseYesOrNoComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class ChooseYesOrNoComponent implements OnInit {\r\n\r\n @Output() change = new EventEmitter();\r\n items: YesOrNo[] = [{ value: true, label: \"Yes\", color: \"green\" }, { value: false, label: \"No\", color: \"red\" }];\r\n @Input() width: number = 200;\r\n @Input() selectedItemValue: boolean;\r\n @Input() placeholder: string = \"Choose either Yes or No\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n writeValue(item: boolean) {\r\n if (item != undefined || item != null) {\r\n this.selectedItemValue = item;\r\n }\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n }\r\n\r\n onSelectedItemChanged() {\r\n this.propagateChange(this.selectedItemValue);\r\n this.change.emit(this.selectedItemValue);\r\n }\r\n\r\n setWidth() {\r\n let style = {\r\n width: this.width + \"px\"\r\n }\r\n return style\r\n }\r\n}\r\n","<div class=\"select\">\r\n <ng-select [ngStyle]=\"setWidth()\" class=\"component\" appendTo=\"body\" (blur)=\"updateBlur()\" [placeholder]=\"placeholder\" bindLabel=\"label\"\r\n bindValue=\"value\" [items]=\"items\" [placeholder]=\"placeholder\" (change)=\"onSelectedItemChanged()\"\r\n [(ngModel)]=\"selectedItemValue\" >\r\n <ng-template class=\"template\" ng-option-tmp ng-label-tmp let-item=\"item\" let-index=\"index\"\r\n let-search=\"searchTerm\">\r\n <span [style.color]=\"item.color\">\r\n {{item.label}}\r\n </span>\r\n </ng-template>\r\n </ng-select>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\n\r\n@Component({\r\n selector: 'choose-yes-or-no-renderer',\r\n templateUrl: './choose-yes-or-no-renderer.component.html',\r\n styleUrls: ['./choose-yes-or-no-renderer.component.scss'],\r\n \r\n})\r\nexport class ChooseYesOrNoRendererComponent implements ICellRendererAngularComp {\r\n params: any;\r\n formControlValue;\r\n key;\r\n booleanValue: boolean;\r\n columnName: string;\r\n rowId: number;\r\n\r\n constructor() { }\r\n\r\n \r\n agInit(params: any) {\r\n this.params = params;\r\n this.booleanValue = params.value; \r\n this.key = params.context.createKey(params.columnApi, params.column);\r\n this.rowId = params.node.id;\r\n }\r\n\r\n onCellDataChanged($event) {\r\n let value: any = $event;\r\n this.formControlValue = this.params.context.formGroup.get(\"entries\").at(this.rowId);\r\n this.formControlValue.get(this.key).setValue(value);\r\n }\r\n\r\n refresh(params: any): boolean {\r\n return false;\r\n }\r\n\r\n}\r\n","<choose-yes-or-no [selectedItemValue]=\"booleanValue\" [width]=\"params.width\" (change) =\"onCellDataChanged($event)\" [placeholder]=\"params.placeholder\" ></choose-yes-or-no>","import { CurrencyPipe } from '@angular/common';\r\n\r\nexport const PIPEMAPPINGS = [\r\n { value: '$', pipe: new CurrencyPipe('en-US') }\r\n];","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { PIPEMAPPINGS } from './dynamicPipeMapping';\r\n\r\n@Pipe({ name: 'dynamicPipe' })\r\nexport class DynamicPipe implements PipeTransform {\r\n transform(value, args: any): any {\r\n for (let val of PIPEMAPPINGS) {\r\n if (val.value === args) {\r\n return val.pipe.transform(value);\r\n }\r\n }\r\n return '';\r\n }\r\n}","import { Component, OnInit, Input, forwardRef, EventEmitter, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { DynamicPipe } from './dynamicPipe';\r\n@Component({\r\n selector: 'editable-savable-input',\r\n templateUrl: './editable-savable-input.component.html',\r\n styleUrls: ['./editable-savable-input.component.css'],\r\n providers: [DynamicPipe,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => EditableSavableInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class EditableSavableInputComponent implements OnInit, ControlValueAccessor {\r\n @Output() saveWasClicked = new EventEmitter();\r\n @Input() defaultvalue: string;\r\n @Input() inputType: string;\r\n @Input() newLabel: string;\r\n @Input() headerLabel: string;\r\n @Input() showUnit: boolean = false;\r\n @Input() unit: string;\r\n @Input() unitType: string;\r\n @Input() isEditable: boolean = true;\r\n @Input() showHeader: boolean = true;\r\n @Input() value: string = \"\";\r\n isAddClickedOn: boolean = false;\r\n isUpdated: boolean = false;\r\n showEdit: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n if (this.value == \"\") {\r\n this.isUpdated = false;\r\n }\r\n else {\r\n this.isUpdated = true;\r\n }\r\n }\r\n\r\n onClickAdd() {\r\n this.isAddClickedOn = true;\r\n }\r\n\r\n onClickCancel() {\r\n this.isAddClickedOn = false;\r\n }\r\n\r\n onClickSave(input) {\r\n this.isAddClickedOn = false;\r\n let value = input.value;\r\n if (value.trim().length == 0) {\r\n this.isUpdated = false;\r\n }\r\n else {\r\n this.isUpdated = true;\r\n }\r\n this.value = value;\r\n this.saveWasClicked.emit(value);\r\n this.propagateChange(this.value);\r\n }\r\n\r\n onClickEdit() {\r\n this.isAddClickedOn = true;\r\n }\r\n\r\n onMouseEnter() {\r\n this.showEdit = true;\r\n }\r\n\r\n onMouseLeave() {\r\n this.showEdit = false;\r\n }\r\n\r\n writeValue(value: string) {\r\n if (value) {\r\n this.value = value;\r\n this.isUpdated = true;\r\n }\r\n }\r\n\r\n // registers 'fn' that will be fired wheb changes are made\r\n // this is how we emit the changes back to the form\r\n public registerOnChange(fn: any) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this.propogateTouch = fn;\r\n }\r\n // the method set in registerOnChange to emit changes back to the form\r\n private propagateChange = (_: any) => { };\r\n private propogateTouch = () => { };\r\n\r\n onChange($event) {\r\n //this.propagateChange(this.value);\r\n }\r\n\r\n updateBlur() {\r\n this.propogateTouch();\r\n }\r\n}\r\n","<div *ngIf=\"showHeader\" class=\"header\">\r\n {{headerLabel}}\r\n</div>\r\n<div class=\"container\" [ngClass]=\"{'closed':!isAddClickedOn, 'open': isAddClickedOn}\">\r\n <div class=\"content\">\r\n <div class=\"default-content\" *ngIf=\"!isAddClickedOn && !isUpdated && isEditable\">\r\n <div class=\"add\" (click)=\"onClickAdd()\">\r\n {{defaultvalue}} </div>\r\n </div>\r\n <div class=\"edit-content\" *ngIf=\"isAddClickedOn\">\r\n <label class=\"input-label\" for=\"input\">{{newLabel}}</label>\r\n <div class=\"input \" [ngClass]=\"{'input-with-appended-unit': showUnit}\">\r\n <span *ngIf=\"showUnit\">{{unit}}</span>\r\n <input (change)=\"onChange($event)\" (blur)=\"updateBlur()\" [ngModel]=\"value\" [value]=\"value\" id=\"input\" #input\r\n class=\"form-control\" [ngClass]=\"{'input-box': showUnit}\" [type]=\"inputType\">\r\n </div>\r\n <div class=\"edit-actions\">\r\n <button type=\"button\" class=\"btn cancel\" (click)=\"onClickCancel()\" mat-raised-button>Cancel</button>\r\n <button type=\"button\" class=\"save\" (click)=\"onClickSave(input)\" mat-raised-button color=\"primary\">Save</button>\r\n </div>\r\n </div>\r\n <div class=\"updated-content closed\" *ngIf=\"!isAddClickedOn && isUpdated\" (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"edit-icon-container\" *ngIf=\"showEdit && isEditable\" (click)=\"onClickEdit()\">\r\n <i class=\"fas fa-pencil-alt\"></i>\r\n </div>\r\n <div class=\"updated\">\r\n <span class=\"updated-label\">\r\n <label for=\"input\">{{newLabel}}</label>\r\n </span>\r\n <span *ngIf=\"!showUnit\">{{value}}</span>\r\n <span *ngIf=\"showUnit\" class=\"updated-value\">\r\n {{value | dynamicPipe: unitType}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Directive, Input, HostListener, ElementRef, OnInit, OnDestroy, EventEmitter, Output } from '@angular/core';\r\nimport { NgControl, NgModel, ValidationErrors } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { ValidationError } from './services/validation-message.service';\r\n\r\n@Directive({\r\n selector: '[appFormControlValidationMsgForInputs]',\r\n providers: [NgModel],\r\n})\r\nexport class FormControlValidationMsgDirectiveForInput implements OnInit, OnDestroy {\r\n errorMessage: any;\r\n errorNgSelectMessage: any;\r\n @Input('showBoxError') showBoxError: boolean=true;\r\n @Input('errorDivId') errorDivId: any;\r\n @Input('beforeBegin') beforeBegin: boolean = false;\r\n @Input('afterEnd') afterEnd: boolean = false;\r\n validationError = ValidationError;\r\n statusChangeSubscription: Subscription;\r\n\r\n constructor(\r\n private elRef: ElementRef,\r\n private control: NgControl,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.statusChangeSubscription = this.control.statusChanges.subscribe(\r\n (status) => {\r\n if (status == 'INVALID') {\r\n this.showError();\r\n\r\n } else {\r\n this.removeError();\r\n }\r\n }\r\n )\r\n this.control.valueChanges.subscribe({\r\n next: (response) => {\r\n if (this.control.errors) {\r\n this.showError();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.statusChangeSubscription.unsubscribe();\r\n }\r\n\r\n @HostListener('blur', [\"$event\"])\r\n handleBlurEvent(event) {\r\n if (this.control.errors) {\r\n this.showError();\r\n }\r\n else {\r\n this.removeError();\r\n }\r\n }\r\n\r\n\r\n private showError() {\r\n this.removeError();\r\n const valErrors: ValidationErrors = this.control.errors;\r\n const keys = Object.keys(valErrors);\r\n for (let i = 0; i < keys.length; i++) {\r\n switch (keys[i]) {\r\n case 'minlength': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.minlength.requiredLength);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n \r\n break;\r\n }\r\n case 'required': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n this.control.control.setErrors({ 'required': true, 'message': message },{ emitEvent:false})\r\n break;\r\n }\r\n case 'maxlength': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.maxlength.requiredLength);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n this.control.control.setErrors({ 'maxlength': { 'requiredLength': valErrors.maxlength.requiredLength }, 'message': message}, { emitEvent: false })\r\n break;\r\n }\r\n case 'max': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.max.max\r\n );\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n this.control.control.setErrors({ 'message': message, 'max': { 'max': valErrors.max.max } }, { emitEvent: false })\r\n break;\r\n }\r\n case 'min': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.min.min\r\n );\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n break;\r\n }\r\n\r\n case 'pattern': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors.pattern.requiredPattern);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n break;\r\n }\r\n case 'email': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n break;\r\n }\r\n case 'invalidIntegerNumber': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n break;\r\n }\r\n case 'invalidPositiveInteger': {\r\n let message = this.validationError.getRelevantError(keys[i], valErrors);\r\n this.errorMessage += ` ${this.errorMessage ? \"<br>\" : \"\"}${\"\\u25CF \" + message}`;\r\n this.control.control.setErrors({ 'invalidPositiveInteger': true, 'message': message }, { emitEvent: false })\r\n break;\r\n }\r\n\r\n }\r\n }\r\n if (this.showBoxError){\r\n const errDiv = '<div style=\"color:#C34243; width=100%; background-color: #FFDBDB; padding: 1rem; border-radius: .5rem; border: .1rem solid #A80002 ;border-left: .75rem solid #A80002; margin-top:.5rem; font-size: 1.2rem; \" id=\"' + this.errorDivId + '\">' + '<h3 style= \" font-size: 1.3rem; margin-bottom:.5rem; margin:0; color: #A80002; font-weight: 700; line-height: 1.6rem;\">' + 'Please Complete all details' + '</h3>' + this.errorMessage + '</div>';\r\n if (!this.beforeBegin && !this.afterEnd)\r\n this.elRef.nativeElement.parentElement.parentElement.parentElement.parentElement.insertAdjacentHTML('afterend', errDiv);\r\n else if (this.beforeBegin)\r\n this.elRef.nativeElement.insertAdjacentHTML('beforebegin', errDiv);\r\n else if (this.afterEnd)\r\n this.elRef.nativeElement.insertAdjacentHTML('afterend', errDiv);\r\n else\r\n throw Error(\"Adjustment not specified \");\r\n }\r\n }\r\n private removeError(): void {\r\n this.errorMessage = \"\";\r\n const errorElement = document.getElementById(this.errorDivId);\r\n if (errorElement) {\r\n errorElement.remove();\r\n }\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { RowNode } from 'ag-grid-community';\r\nimport { Subscription } from 'rxjs';\r\nimport { GeneralInputRendererChangeEvent } from './general-input-renderer-change-event.interface';\r\n\r\n@Component({\r\n selector: 'general-input-renderer-test',\r\n templateUrl: './general-input-renderer.component.html',\r\n styleUrls: ['./general-input-renderer.component.scss']\r\n})\r\nexport class GeneralInputRendererComponent implements ICellRendererAngularComp {\r\n arrayKey: string = 'entries';\r\n formGroup: FormGroup;\r\n key: string;\r\n params: any;\r\n isEdit: boolean = true;\r\n uniquenessApiPath: string;\r\n uniquenessSubscriber: Subscription;\r\n readonly: boolean = false;\r\n\r\n\r\n constructor() { }\r\n\r\n agInit(params: any) {\r\n this.params = params;\r\n if (params.context.arrayKey) {\r\n this.arrayKey = params.context.arrayKey;\r\n }\r\n\r\n this.formGroup = this.params.context.formGroup\r\n .get(this.arrayKey)\r\n .at(params.node.rowIndex) as FormGroup;\r\n\r\n this.key = params.context.createKey(params.columnApi, params.column);\r\n\r\n if (params.context.isEdit != undefined && params.context.isEdit != null) {\r\n this.isEdit = params.context.isEdit;\r\n }\r\n if (params.readonly != undefined && params.readonly != null) {\r\n this.readonly = params.readonly;\r\n }\r\n if (this.params.uniquenessApiPath != undefined && this.params.uniquenessApiPath != null) {\r\n this.uniquenessApiPath = this.params.uniquenessApiPath;\r\n }\r\n }\r\n\r\n onCellDataChanged($event) {\r\n let value = $event.target.value;\r\n let changeEvent: GeneralInputRendererChangeEvent = {\r\n newValue: value,\r\n oldValue: this.params?.value,\r\n rowNode: this.params.node,\r\n };\r\n let rowNode: RowNode = this.params.node;\r\n rowNode.setDataValue(this.key, value);\r\n if (this.params.onChange instanceof Function) {\r\n this.params.onChange(changeEvent);\r\n }\r\n }\r\n\r\n\r\n refresh(params: any): boolean {\r\n this.formGroup = params.context.formGroup.get(this.arrayKey).at(params.node.rowIndex);\r\n if (params.context.isEdit != undefined && params.context.isEdit != null) {\r\n this.isEdit = params.context.isEdit;\r\n }\r\n return true;\r\n }\r\n}","<ng-container *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\r\n <div [ngClass]=\"{ 'ag-description': params.isTypeTextArea }\" *ngIf=\"!isEdit\">\r\n <span>{{ formGroup.get(key).value }}</span>\r\n </div>\r\n\r\n <ng-container *ngIf=\"params.isTypeTextArea\">\r\n <div *ngIf=\"isEdit\" class=\"input-wrapper\">\r\n <textarea [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\"\r\n [style.width.px]=\"params.column.getActualWidth() - 20\"\r\n [style.height.px]=\" params.node.rowHeight - 20\"\r\n (change)=\"onCellDataChanged($event)\" [placeholder]=\"params.placeholder\"\r\n [formControlName]=\"key\"></textarea>\r\n <tooltip-msg-error [control]=\"formGroup.get(this.key)\" *ngIf=\"\r\n formGroup.get(this.key).errors && formGroup.get(this.key).touched\r\n \"></tooltip-msg-error>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngIf=\"params.isTypeText && isEdit\" class=\"cont\">\r\n <input [readonly]=\"readonly\" [placeholder]=\"params.placeholder\"\r\n appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\" style=\"margin-left: -2.2rem\">{{ params.symbol\r\n }}</span>\r\n <tooltip-msg-error\r\n *ngIf=\"formGroup.get(key).errors && formGroup.get(key) && formGroup.get(key).touched\"\r\n [message]=\"formGroup.get(key).errors.message\"></tooltip-msg-error>\r\n </div>\r\n\r\n <div *ngIf=\"params.isTypeNumber && isEdit\" class=\"input-wrapper\">\r\n <div class=\"input-symbol-group\">\r\n <input [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\" [placeholder]=\"params.placeholder\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\"\r\n type=\"number\" />\r\n <span class=\"symbol\" *ngIf=\"params.showSymbol\">{{ params.symbol }}</span>\r\n </div>\r\n\r\n <tooltip-msg-error\r\n *ngIf=\"formGroup.get(key)?.errors && formGroup.get(key)?.touched\"\r\n [message]=\"formGroup.get(key)?.errors.message\"></tooltip-msg-error>\r\n </div>\r\n <div *ngIf=\"params.isTypeIntegerNumber && isEdit\" class=\"cont\">\r\n <input [readonly]=\"readonly\" appFormControlValidationMsgForInputs\r\n [showBoxError]=\"false\" [placeholder]=\"params.placeholder\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" type=\"number\" />\r\n <span class=\"symbol\" *ngIf=\"params.showSymbol\" style=\"margin-left: -2.2rem\">{{\r\n params.symbol\r\n }}</span>\r\n <tooltip-msg-error *ngIf=\"formGroup.get(key).errors && formGroup.get(key).touched\"\r\n [message]=\"formGroup.get(key).errors.message\"></tooltip-msg-error>\r\n </div>\r\n</ng-container>","import { DecimalPipe } from '@angular/common';\r\nimport { Directive, HostListener, OnInit } from '@angular/core';\r\nimport { NgControl, NgModel } from '@angular/forms';\r\n\r\n\r\n@Directive({\r\n selector: '[customDecimalPointTwoDigits]',\r\n providers: [NgModel, DecimalPipe],\r\n})\r\nexport class CustomDecimalPointTwoDigitsDirective implements OnInit {\r\n valueSubscription: any;\r\n constructor(\r\n private control: NgControl,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.control.value) {\r\n this.control.valueAccessor.writeValue(this.transformToCommasAndPoint(this.control.value));\r\n }\r\n this.valueSubscription = this.control.control.valueChanges.subscribe(\r\n value => {\r\n if (value.length > 0) {\r\n let removeCommas = this.control.value.replace(/,/g, '');\r\n this.control.control.setValue(removeCommas, { emitEvent: false, emitModelToViewChange: false });\r\n }\r\n else {\r\n this.control.control.setValue(null, { emitEvent: false, emitModelToViewChange: false });\r\n }\r\n }\r\n );\r\n }\r\n\r\n @HostListener(\"input\", [\"$event\"]) onEvent($event) {\r\n if (this.control.value) {\r\n const item = $event.target;\r\n item.value = this.transformToCommasAndPoint(this.control.value);\r\n let removeCommas = this.control.value.replace(/,/g, '');\r\n this.control.control.setValue(removeCommas, { emitEvent: false, emitModelToViewChange: false });\r\n }\r\n }\r\n\r\n transformToCommasAndPoint(value) {\r\n if (value.indexOf(\".\") == -1) {\r\n value = value.toString().replace(/\\D/g, \"\")\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return value\r\n } else {\r\n let val = value.split(\".\");\r\n let valueBeforeDecimal = val[0];\r\n let valueAfterDecimal = val[1];\r\n valueBeforeDecimal = valueBeforeDecimal.toString().replace(/\\D/g, \"\")\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n let newValue = `${valueBeforeDecimal}.${valueAfterDecimal}`;\r\n return newValue;\r\n }\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { AppMaterialModule } from '@jooler/app-material';\r\nimport { SharedGeneralComponentsModule } from '@jooler/shared-general-components';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { AddAsteriskDirective } from './add-asterisk.directive';\r\nimport { ChooseEnumRendererComponent } from './choose-enum-renderer/choose-enum-renderer.component';\r\nimport { ChooseEnumComponent } from './choose-enum/choose-enum.component';\r\nimport { ChooseGeneralItemRendererComponent } from './choose-general-item-renderer/choose-general-item-renderer.component';\r\nimport { ChooseGeneralItemComponent } from './choose-general-item/choose-general-item.component';\r\nimport { ChooseGeneralItemService } from './choose-general-item/choose-general-item.service';\r\nimport { ChooseLineTypeComponent } from './choose-line-type/choose-line-type.component';\r\nimport { ChooseYesOrNoRendererComponent } from './choose-yes-or-no-renderer/choose-yes-or-no-renderer.component';\r\nimport { ChooseYesOrNoComponent } from './choose-yes-or-no/choose-yes-or-no.component';\r\nimport { DropdownActionsComponent } from './dropdown-actions/dropdown-actions.component';\r\nimport { DynamicPipe } from './editable-savable-input/dynamicPipe';\r\nimport { EditableSavableInputComponent } from './editable-savable-input/editable-savable-input.component';\r\nimport { FormControlValidationMsgDirectiveForNgSelect } from './formcontrol-validation-msg-for-ng-select.directive';\r\nimport { FormControlValidationMsgDirectiveForInput } from './formcontrol-validation-msg.directive';\r\nimport { CustomDecimalPointTwoDigitsDirective } from './general-input-renderer/custom-decimal-point-two-digits.directive';\r\nimport { GeneralInputRendererComponent } from './general-input-renderer/general-input-renderer.component';\r\nimport { ShowTableErrorsComponent } from './show-table-errors/show-table-errors.component';\r\nimport { TooltipMsgError } from './tooltip-msg-error/tooltip-msg-error.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ChooseEnumComponent,\r\n ChooseEnumRendererComponent,\r\n ChooseGeneralItemComponent,\r\n GeneralInputRendererComponent,\r\n ChooseLineTypeComponent,\r\n ChooseYesOrNoComponent,\r\n ChooseYesOrNoRendererComponent,\r\n EditableSavableInputComponent,\r\n DynamicPipe,\r\n ChooseGeneralItemRendererComponent,\r\n CustomDecimalPointTwoDigitsDirective,\r\n ShowTableErrorsComponent,\r\n FormControlValidationMsgDirectiveForInput,\r\n DropdownActionsComponent,\r\n AddAsteriskDirective,\r\n FormControlValidationMsgDirectiveForNgSelect,\r\n TooltipMsgError\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AppMaterialModule,\r\n SharedGeneralComponentsModule,\r\n FontAwesomeModule,\r\n ],\r\n exports: [\r\n ChooseEnumComponent,\r\n ChooseEnumRendererComponent,\r\n ChooseGeneralItemComponent,\r\n GeneralInputRendererComponent,\r\n ChooseLineTypeComponent,\r\n ChooseYesOrNoComponent,\r\n ChooseYesOrNoRendererComponent,\r\n EditableSavableInputComponent,\r\n DropdownActionsComponent,\r\n DynamicPipe,\r\n AddAsteriskDirective,\r\n TooltipMsgError\r\n ]\r\n})\r\nexport class InputsModule {\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<InputsModule> {\r\n\r\n return {\r\n ngModule: InputsModule,\r\n providers: [\r\n ChooseGeneralItemService,\r\n {\r\n provide: 'env',\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n }\r\n}","export class LabelAndField {\r\n label: string;\r\n field: string;\r\n}","/*\r\n * Public API Surface of inputs\r\n */\r\n\r\nexport * from './lib/choose-enum-renderer/choose-enum-renderer.component';\r\nexport * from './lib/choose-enum/choose-enum.component';\r\nexport * from './lib/choose-general-item-renderer/choose-general-item-renderer-change-event.interface';\r\nexport * from './lib/choose-general-item-renderer/choose-general-item-renderer-validation-type.enum';\r\nexport * from './lib/choose-general-item/choose-general-item.component';\r\nexport * from './lib/general-input-renderer/general-input-renderer-change-event.interface';\r\nexport * from './lib/show-table-errors/show-table-errors.component';\r\nexport * from './lib/tooltip-msg-error/tooltip-message-type.enum';\r\nexport * from './lib/tooltip-msg-error/tooltip-msg-error.component';\r\n\r\nexport * from './lib/add-asterisk.directive';\r\nexport * from './lib/choose-general-item-renderer/choose-general-item-renderer.component';\r\nexport * from './lib/choose-general-item/choose-general-item.service';\r\nexport * from './lib/choose-line-type/choose-line-type.component';\r\nexport * from './lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component';\r\nexport * from './lib/choose-yes-or-no/choose-yes-or-no.component';\r\nexport * from './lib/dropdown-actions/dropdown-action-type.model';\r\nexport * from './lib/dropdown-actions/dropdown-actions.component';\r\nexport * from './lib/dropdown-actions/label-and-route.model';\r\nexport * from './lib/editable-savable-input/dynamicPipe';\r\nexport * from './lib/editable-savable-input/editable-savable-input.component';\r\nexport * from './lib/formcontrol-validation-msg.directive';\r\nexport * from './lib/general-input-renderer/general-input-renderer.component';\r\nexport * from './lib/inputs.module';\r\nexport * from './lib/models/label-and-field.model';\r\nexport * from './lib/primary-colors';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i2","i3.ChooseEnumComponent","i1","i4","i1.ChooseGeneralItemService","i5","i7","i8.DropdownActionsComponent","i3.ChooseGeneralItemComponent","i4.FormControlValidationMsgDirectiveForNgSelect","i5.TooltipMsgError","i1.ChooseYesOrNoComponent","i4.DynamicPipe","i3.FormControlValidationMsgDirectiveForInput","i4.TooltipMsgError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAIa,iBAAiB,CAAA;AAC5B,IAAA,MAAM,CAAM;AACZ,IAAA,GAAG,CAAS;AACZ,IAAA,KAAK,CAAC;AACN,IAAA,KAAK,CAAS;AACd,IAAA,MAAM,CAAU;AAChB,IAAA,KAAK,CAAS;IACd,QAAQ,GAAW,SAAS,CAAC;AAC7B,IAAA,UAAU,CAAY;AACtB,IAAA,KAAK,CAAS;AACd,IAAA,cAAc,CAAS;AAEvB,IAAA,MAAM,CAAC,MAAM,EAAA;AACX,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;KACjC;AAED,IAAA,kBAAkB,CAAC,MAAM,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzC,SAAA;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,aAAa,GAAA;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvC,IAAI,OAAO,GAAc,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QACvD,IAAI,EAAE,GAAc,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAc,CAAC;QAC5D,IAAI,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAc,CAAC;AAChD,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,EAAE,GAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAgB,CAAC;AACnE,QAAA,OAAO,EAAE,CAAC;KACX;IAED,WAAW,CAAC,MAAM,EAAE,KAAoB,EAAA;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,IAAI,OAAO,GAAY,MAAM,CAAC,IAAI,CAAC;QACnC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACvC;;AAGD,IAAA,WAAW,CAAC,MAAW,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,YAAY,QAAQ,EAAE;AAC/C,YAAA,MAAM,MAAM,GAAG;AACb,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;gBAC9B,KAAK,EAAE,MAAM,CAAC,EAAE;AAChB,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC1B,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,SAAA;KACF;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,YAAY,QAAQ,EAAE;AAC/C,YAAA,MAAM,MAAM,GAAG;AACb,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AAC9B,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC1B,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,SAAA;KACF;AAED,IAAA,OAAO,CAAC,KAAK,EAAA;AACX,QAAA,OAAO,KAAK,CAAC;KACd;AACF;;MCnFY,WAAW,CAAA;IACtB,OAAO,WAAW,GAAG;QACnB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV,CAAC;IACF,OAAO,WAAW,GAAG;QACnB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV,CAAC;IACF,OAAO,UAAU,GAAG;QAClB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV,CAAC;IACF,OAAO,WAAW,GAAG;QACnB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV,CAAC;IACF,OAAO,aAAa,GAAG;QACrB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV,CAAC;IACF,OAAO,YAAY,GAAG;QACpB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV,CAAC;;;MCrGS,UAAU,CAAA;AACrB,IAAA,KAAK,CAAS;AACd,IAAA,KAAK,CAAS;AACd,IAAA,KAAK,CAAS;AACd,IAAA,WAAW,CAAU;AACrB,IAAA,QAAQ,CAAW;AAEnB,IAAA,WAAA,CAAY,KAAa,EAAE,KAAa,EAAE,KAAa,EAAE,WAAoB,KAAK,EAAA;AAChF,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AACF;;MCTY,mBAAmB,CAAA;IAC9B,OAAO,2BAA2B,CAChC,SAAc,EACd,YAAuB,EACvB,SAAqB,GAAA,KAAK,EAC1B,eAAA,GAA2B,IAAI,EAAA;QAE/B,MAAM,WAAW,GAAiB,EAAE,CAAC;;QAGrC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;QAGtE,MAAM,YAAY,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAG3F,QAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAEhG,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC5B,YAAA,IAAI,KAAK,CAAC;AACV,YAAA,IAAI,eAAe,EAAE;AACnB,gBAAA,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,GAAG,GAAG,CAAC;AACb,aAAA;AAED,YAAA,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAChC,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAE1B,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,WAAW,CAAC;KACpB;AAED,IAAA,OAAO,qBAAqB,CAC1B,SAAc,EACd,YAAsB,EACtB,YAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAa,WAAW,CAAC,YAAY,CAAC;AAEhD,QAAA,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,MAAM,GAAG,YAAY,CAAC;AACvB,SAAA;;AAED,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;AACvC,YAAA,KAAK,IAAI,KAAK,IAAI,YAAY,EAAE;AAC9B,gBAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClE,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,OAAO,2BAA2B,CAAC,SAAc,EAAE,SAAmB,EAAA;QACpE,IAAI,YAAY,GAAa,EAAE,CAAC;AAE9B,QAAA,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;AAC1B,YAAA,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;AACvB,gBAAA,IAAI,YAAoB,CAAC;AACzB,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7C,IAAI,CAAC,SAAS,EAAE;AACd,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACxC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9E,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACxC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACzC,qBAAA;AACF,iBAAA;AACD,gBAAA,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,gBAAA,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;AAEpE,aAAA;AACF,SAAA;AACD,QAAA,OAAO,YAAY,CAAC;KACrB;AAED,IAAA,OAAO,6BAA6B,CAClC,SAAc,EACd,SAAiB,EACjB,YAAuB,EAAA;QAEvB,IAAI,WAAW,GAAiB,mBAAmB,CAAC,2BAA2B,CAC7E,SAAS,EACT,YAAY,CACb,CAAC;AACF,QAAA,IAAI,UAAsB,CAAC;AAC3B,QAAA,KAAK,IAAI,IAAI,IAAI,WAAW,EAAE;AAC5B,YAAA,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC3B,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,aAAA;AACF,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;AACF;;MC3EY,mBAAmB,CAAA;AAC9B,IAAA,KAAK,CAAe;IACX,QAAQ,GAAW,MAAM,CAAC;IAC1B,kBAAkB,GAAY,KAAK,CAAC;IACpC,SAAS,GAAY,IAAI,CAAC;AAC1B,IAAA,YAAY,CAAW;AACvB,IAAA,WAAW,CAAM;AACjB,IAAA,sBAAsB,GAAa,mBAAmB,CAAC,2BAA2B,CAAC;IACnF,eAAe,GAAa,EAAE,CAAC;IAC/B,YAAY,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAY,IAAI,CAAC;IACvB,kBAAkB,GAAY,KAAK,CAAC;AACpC,IAAA,UAAU,CAAU;IACpB,KAAK,GAAW,OAAO,CAAC;IACxB,cAAc,GAAW,MAAM,CAAC;AAChC,IAAA,mBAAmB,CAAS;AAC5B,IAAA,iBAAiB,CAAS;AAC1B,IAAA,UAAU,CAAS;AACnB,IAAA,WAAW,CAAS;IACpB,YAAY,GAAY,KAAK,CAAC;AAC9B,IAAA,YAAY,CAAM;AAClB,IAAA,KAAK,CAAS;IACd,UAAU,GAAY,KAAK,CAAC;IAC5B,aAAa,GAAY,KAAK,CAAC;AAC9B,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAC5B,IAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AAErC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;AACvC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CACtC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAkB,CACxB,CAAC;AACH,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE;AACvC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CACtC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAkB,CACxB,CAAC;AACH,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,aAAa,GAAA;AACX,QAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE;AACtC,YAAA,IAAI,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;YAClF,IAAI,KAAK,IAAI,CAAC,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AACnC,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,KAAK,CACT,gFAAgF,CACjF,CAAC;AACH,aAAA;AACF,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE;AACnC,YAAA,IAAI,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;YAClF,IAAI,KAAK,IAAI,CAAC,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7B,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,KAAK,CAAC,6EAA6E,CAAC,CAAC;AAC5F,aAAA;AACF,SAAA;KACF;IAED,mBAAmB,GAAA;AACjB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnE,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAC;KACtD;AAED,IAAA,UAAU,CAAC,IAAY,EAAA;QACrB,IAAI,IAAI,IAAI,SAAS,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;aAAM,IAAI,IAAI,IAAI,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;AAEO,IAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAClC,IAAA,cAAc,GAAG,MAAK,GAAI,CAAC;IAEnC,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACrC;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;KACtC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,SAAS,GAAA;AACP,QAAA,IAAI,KAAK,GAAG;AACV,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,KAAK;SACpC,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,aAAa,GAAA;AACX,QAAA,IAAI,KAAK,GAAG;YACV,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,UAAU,EAAE,IAAI,CAAC,mBAAmB;AACpC,YAAA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,GAAG,KAAK;AACxC,YAAA,OAAO,EAAE,QAAQ;SAClB,CAAC;AACF,QAAA,OAAO,KAAK,CAAC;KACd;wGAvJU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EARnB,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBH,4tDA8Bc,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDLD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAZ/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGZ,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,4tDAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,CAAA;0EAIQ,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;;;AExCH,MAAO,2BAA4B,SAAQ,iBAAiB,CAAA;IAChE,eAAe,GAAa,EAAE,CAAC;IAC/B,YAAY,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAY,IAAI,CAAC;IACvB,SAAS,GAAY,IAAI,CAAC;AAE1B,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;AAED,IAAA,MAAM,CAAC,MAAW,EAAA;AAChB,QAAA,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrB,QAAA,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,EAAE;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC/C,SAAA;AACD,QAAA,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,SAAA;AACD,QAAA,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC,SAAA;KACF;AAED,IAAA,IAAI,SAAS,GAAA;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;AACjF,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;wGAhCU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,mFCVxC,21BAQM,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,OAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDEO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,21BAAA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,CAAA;;;IEJtB,iCAGX;AAHD,CAAA,UAAY,gCAAgC,EAAA;AAC1C,IAAA,gCAAA,CAAA,gCAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,gCAAA,CAAA,gCAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAoB,CAAA;AACtB,CAAC,EAHW,gCAAgC,KAAhC,gCAAgC,GAG3C,EAAA,CAAA,CAAA;;ACHD,IAAY,iCAGX,CAAA;AAHD,CAAA,UAAY,iCAAiC,EAAA;AAC3C,IAAA,iCAAA,CAAA,iCAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,iCAAA,CAAA,iCAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;AACR,CAAC,EAHW,iCAAiC,KAAjC,iCAAiC,GAG5C,EAAA,CAAA,CAAA;;MCHY,aAAa,CAAA;AACtB,IAAA,OAAO,iBAAiB,GAAG,SAAS,CAAC;AACrC,IAAA,OAAO,iBAAiB,GAAG,SAAS,CAAC;AACrC,IAAA,OAAO,iBAAiB,GAAG,SAAS,CAAC;AACrC,IAAA,OAAO,mBAAmB,GAAG,SAAS,CAAC;AACvC,IAAA,OAAO,iBAAiB,GAAG,SAAS,CAAC;AACrC,IAAA,OAAO,mBAAmB,GAAG,SAAS,CAAC;AACvC,IAAA,OAAO,gBAAgB,GAAG,SAAS,CAAC;AACpC,IAAA,OAAO,qBAAqB,GAAG,SAAS,CAAC;AACzC,IAAA,OAAO,0BAA0B,GAAG,SAAS,CAAC;AAC9C,IAAA,OAAO,sBAAsB,GAAG,SAAS,CAAC;AAC1C,IAAA,OAAO,sBAAsB,GAAG,SAAS,CAAC;AAC1C,IAAA,OAAO,mBAAmB,GAAG,SAAS,CAAC;AACvC,IAAA,OAAO,mBAAmB,GAAG,SAAS,CAAC;AACvC,IAAA,OAAO,sBAAsB,GAAG,SAAS,CAAC;AAC1C,IAAA,OAAO,qBAAqB,GAAG,SAAS,CAAC;AACzC,IAAA,OAAO,sBAAsB,GAAG,SAAS,CAAC;AAC1C,IAAA,OAAO,uBAAuB,GAAG,SAAS,CAAC;;;ACjB/C,IAAY,wBAIX,CAAA;AAJD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,wBAAA,CAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,wBAAA,CAAA,wBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB,CAAA;AACxB,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,GAInC,EAAA,CAAA,CAAA;;MCFY,+BAA+B,CAAA;IAC1C,OAAO,+BAA+B,CAAC,eAAe,EAAA;AACpD,QAAA,IAAI,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC;AACnC,QAAA,KAAK,IAAI,GAAG,IAAI,eAAe,EAAE;AAC/B,YAAA,IACE,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI;AAC7B,gBAAA,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE;AAC3B,gBAAA,eAAe,CAAC,GAAG,CAAC,KAAK,SAAS;AAClC,gBAAA,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC;AAElC,gBAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AACF;;ACZD;MAKa,wBAAwB,CAAA;AAGf,IAAA,IAAA,CAAA;AAAyC,IAAA,GAAA,CAAA;;IAA7D,WAAoB,CAAA,IAAgB,EAAyB,GAAG,EAAA;QAA5C,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAyB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAA;AAAI,KAAC;IAErE,UAAU,GAAA;QACR,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5C,QAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC;AACE,YAAA,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,QAAQ,GAAG,KAAK;AAClC,SAAA,CAAC,CAAC;AACL,QAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;KACjC;AAED,IAAA,mBAAmB,CAAC,UAAU,EAAA;AAC5B,QAAA,IAAI,WAAW,CAAC;QAChB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5C,QAAA,IAAI,KAAK,EAAE;YACT,WAAW,GAAG,IAAI,WAAW,CAAC;AAC5B,gBAAA,cAAc,EAAE,iCAAiC;gBACjD,aAAa,EAAE,QAAQ,GAAG,KAAK;AAChC,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACjC,SAAA;QACD,MAAM,MAAM,GAAG,+BAA+B,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAC3F,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KACjD;AAGD,IAAA,uCAAuC,CAAC,MAAM,EAAA;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5C,QAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC;AACE,YAAA,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,QAAQ,GAAG,KAAK;AAClC,SAAA,CACF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KACjD;IAED,OAAO,CAAC,OAAe,EAAE,YAAkB,EAAA;AACzC,QAAA,IAAI,YAAY,EAAE;YAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAG,EAAA,OAAO,CAAE,CAAA,EAAE,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9F,SAAA;AACI,aAAA;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA,EAAG,OAAO,CAAE,CAAA,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACzE,SAAA;KACF;AAjDU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,8CAGW,KAAK,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHxC,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAIwC,MAAM;2BAAC,KAAK,CAAA;;;ICZzC,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACP,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA;;MCOY,wBAAwB,CAAA;AASf,IAAA,OAAA,CAAA;IARpB,mBAAmB,GAAG,kBAAkB,CAAC;IAChC,QAAQ,GAAY,IAAI,CAAC;AACzB,IAAA,QAAQ,CAAU;IAClB,eAAe,GAAoB,EAAE,CAAC;AACtC,IAAA,KAAK,CAAS;AACd,IAAA,kBAAkB,GAAuB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;AACrE,IAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAE1C,IAAA,WAAA,CAAoB,OAAe,EAAA;QAAf,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;KAAK;IAExC,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE;YAC3D,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;AACrE,oBAAA,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC5C,iBAAA;AACF,aAAA;AACI,iBAAA;gBACH,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,oBAAA,MAAM,KAAK,CAAC,qDAAqD,CAAC,CAAC;AACpE,iBAAA;AACF,aAAA;AACF,SAAA;aACI,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;AACjE,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AAChC,gBAAA,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACpF,aAAA;AACF,SAAA;AACI,aAAA;AACH,YAAA,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAA;AACvD,SAAA;KACF;AAED,IAAA,UAAU,CAAC,MAAM,EAAA;QACf,MAAM,CAAC,cAAc,EAAE,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAED,YAAY,CAAC,KAAK,EAAE,MAAM,EAAA;QACxB,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;KAChC;wGAjDU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,qPCVrC,20BAgBM,EAAA,MAAA,EAAA,CAAA,uMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDNO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,20BAAA,EAAA,MAAA,EAAA,CAAA,uMAAA,CAAA,EAAA,CAAA;+FAMnB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;ME+BI,0BAA0B,CAAA;AAmD3B,IAAA,yBAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,IAAA,CAAA;AAnDV,IAAA,UAAU,GAAW,aAAa,CAAC,gBAAgB,CAAC;IACpD,SAAS,GAAY,KAAK,CAAC;AAClB,IAAA,KAAK,CAAQ;IACb,KAAK,GAAW,OAAO,CAAC;IACxB,QAAQ,GAAW,MAAM,CAAC;AAC1B,IAAA,WAAW,CAAS;AACpB,IAAA,OAAO,CAAS;IAChB,UAAU,GAAY,KAAK,CAAC;AAC5B,IAAA,gBAAgB,CAAU;AAC1B,IAAA,OAAO,CAAkB;IACzB,SAAS,GAAY,KAAK,CAAC;AAC3B,IAAA,SAAS,CAAS;AAClB,IAAA,KAAK,CAAS;IACd,MAAM,GAAY,KAAK,CAAC;AACxB,IAAA,UAAU,CAAU;IACpB,SAAS,GAAW,OAAO,CAAC;IAC5B,aAAa,GAAW,OAAO,CAAC;IAChC,SAAS,GAAW,EAAE,CAAC;AACvB,IAAA,cAAc,CAAoB;AAClC,IAAA,QAAQ,CAAU;AAClB,IAAA,QAAQ,CAAU;IAClB,aAAa,GAAY,KAAK,CAAC;IAC/B,OAAO,GAAY,KAAK,CAAC;AACzB,IAAA,oBAAoB,CAAM;IAC1B,wBAAwB,GAAY,KAAK,CAAC;AAC1C,IAAA,qBAAqB,GAAQ;AACpC,QAAA,QAAQ,EAAE,IAAI;KACf,CAAC;AACO,IAAA,YAAY,GAAkB,IAAI,CAAC;AACnC,IAAA,QAAQ,CAAS;AACjB,IAAA,eAAe,CAAU;AACzB,IAAA,WAAW,CAAS;IACpB,SAAS,GAAY,IAAI,CAAC;AAC1B,IAAA,YAAY,CAAM;AAClB,IAAA,YAAY,GAA6B,wBAAwB,CAAC,OAAO,CAAC;AAC1E,IAAA,iBAAiB,CAA4B;AAC7C,IAAA,yBAAyB,CAAS;AAClC,IAAA,uBAAuB,GAC9B,iCAAiC,CAAC,EAAE,CAAC;AAC7B,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAC5B,IAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AACN,IAAA,oBAAoB,CAAmB;IAErE,wBAAwB,GAAG,wBAAwB,CAAC;IACpD,cAAc,GAAG,aAAa,CAAC;AACvB,IAAA,aAAa,GAAG,IAAI,OAAO,EAAO,CAAC;AACnC,IAAA,QAAQ,CAAgB;AAEhC,IAAA,WAAA,CACU,yBAAmD,EACnD,MAAiB,EACjB,IAAuB,EAAA;QAFvB,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA0B;QACnD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;KAC5B;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,wBAAwB,CAAC,KAAK,EAAE;YACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;AAED,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,IAAI,CACH,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,EAClC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAClC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAC9D,CACF;aACA,SAAS,CAAC,IAAI,IAAG;AAChB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/E,SAAC,CAAC,CAAC;KACN;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;AAChC,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,kBAAkB,MAAM;AAExB,IAAA,WAAW,CAAC,OAAsB,EAAA;;AAEhC,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAA;;AAGD,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC;AAC1D,SAAA;;QAGD,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC;;YAGnD,IAAI,CAAC,UAAU,EAAE;gBACf,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,gBAAA,OAAO;AACR,aAAA;;AAGD,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC/B,aAAA;;YAGD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;;gBAEhC,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,aAAA;AACF,SAAA;;AAGD,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;AACpB,YAAA,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7E,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;gBAC3C,OAAO;AACR,aAAA;AACF,SAAA;;;AAID,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;;YAEvE,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;;QAGD,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;;YAG5C,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;KACF;IAGO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa;aAC/B,IAAI,CACH,MAAM,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,EACnC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,EAClC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAClC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAC9D,CACF;aACA,SAAS,CAAC,IAAI,IAAG;AAChB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;;AAEzB,SAAC,CAAC,CAAC;KACN;IAGD,wBAAwB,GAAA;AACtB,QAAA,IACE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS;AAC3E,aAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,oBAAoB,IAAI,SAAS,CAAC,EAC7E;AACA,YAAA,MAAM,KAAK,CACT,kJAAkJ,CACnJ,CAAC;AACH,SAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;AAC/B,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;AAEO,IAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAClC,IAAA,cAAc,GAAG,MAAK,GAAI,CAAC;AAC3B,IAAA,kBAAkB,GAAQ,MAAK,GAAI,CAAC;IAE5C,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAClB;AAED,IAAA,qBAAqB,CAAC,MAAM,EAAA;AAC1B,QAAA,IAAI,gBAAqB,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,uBAAuB,IAAI,iCAAiC,CAAC,EAAE,EAAE;AACxE,YAAA,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC;AACxC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,uBAAuB,IAAI,iCAAiC,CAAC,MAAM,EAAE;YACnF,gBAAgB,GAAG,MAAM,CAAC;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC;AACrE,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAED,IAAA,cAAc,CAAC,OAAsB,EAAA;QACnC,IACE,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,OAAO,CAAC,YAAY;AAC5B,YAAA,OAAO,CAAC,KAAK;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,YAAY,EAC1B;AACA,YAAA,MAAM,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACjE,SAAA;KACF;IAED,OAAO,GAAA;QACL,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;AAChF,gBAAA,IAAI,EAAE,CAAC,QAAe,KAAI;AACxB,oBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACtB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AACzB,oBAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC9E;AACD,gBAAA,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;AAC9C,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAED,QAAQ,GAAA;QACN,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,KAAK,GAAG;AACN,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;aAC1B,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,GAAG;AACN,gBAAA,KAAK,EAAE,MAAM;aACd,CAAC;AACH,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,aAAa,GAAA;AACX,QAAA,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;KAuB9D;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,yBAAyB,CAAE,EAAc,EAAA;AACvC,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;KAC9B;IAEO,wBAAwB,GAAA;QAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC;AACZ,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9B,YAAA,IAAI,MAAM,EAAE;AACV,gBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACnC,gBAAA,OAAO,MAAM,CAAC;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;KACF;wGAtTU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAb1B,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC;AACzD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,0BAA0B;AACvC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9CH,0kMAmGE,EAAA,MAAA,EAAA,CAAA,gwBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDnDW,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAjBtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGpB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,gCAAgC,CAAC;AACzD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAA4B,0BAAA;AACvC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,0kMAAA,EAAA,MAAA,EAAA,CAAA,gwBAAA,CAAA,EAAA,CAAA;sKAMQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAEI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACuB,oBAAoB,EAAA,CAAA;sBAAjD,YAAY;uBAAC,cAAc,CAAA;;;MEpFjB,wBAAwB,CAAA;AAC1B,IAAA,OAAO,CAAM;AACtB,IAAA,WAAW,CAAU;IACrB,QAAQ,GAAA;KACP;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;wGAZU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,yFCPrC,gTAIM,EAAA,MAAA,EAAA,CAAA,qRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDGO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,gTAAA,EAAA,MAAA,EAAA,CAAA,qRAAA,CAAA,EAAA,CAAA;8BAKpB,OAAO,EAAA,CAAA;sBAAf,KAAK;;;IERI,mBAKX;AALD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACb,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,GAK7B,EAAA,CAAA,CAAA;;MCeY,eAAe,CAAA;AAoBhB,IAAA,GAAA,CAAA;AACA,IAAA,GAAA,CAAA;AApBD,IAAA,KAAK,CAAS;IACd,OAAO,GAA2B,IAAI,CAAC;AACvC,IAAA,WAAW,GAAuB,kBAAkB,CAAC,KAAK,CAAC;AAC3D,IAAA,OAAO,CAAM;AACtB,IAAA,QAAQ,CAAS;AACjB,IAAA,WAAW,CAAS;IACpB,MAAM,GAAY,IAAI,CAAC;AACvB,IAAA,WAAW,CAAU;AACrB,IAAA,WAAW,CAAc;AACzB,IAAA,cAAc,CAAc;AAC5B,IAAA,SAAS,CAAM;AACf,IAAA,YAAY,CAAU;IAGtB,SAAS,GAAA;QACP,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,WACU,CAAA,GAAsB,EACtB,GAAe,EAAA;QADf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;KACpB;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,WAAW,GAAA;QACT,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC7C,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;AACpD,SAAA;KACF;IAED,cAAc,GAAA;QACZ,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,EAAE;AACtC,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,aAAA;AAAM,iBAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC3C,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,aAAA;AACF,SAAA;KACF;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,eAAuB,CAAC;AAC5B,QAAA,IAAI,eAAuB,CAAC;QAE5B,QAAQ,IAAI,CAAC,WAAW;YACtB,KAAK,kBAAkB,CAAC,KAAK;gBAC3B,eAAe,GAAG,SAAS,CAAC;AAC5B,gBAAA,eAAe,GAAG,aAAa,CAAC,iBAAiB,CAAC;gBAClD,MAAM;YACR,KAAK,kBAAkB,CAAC,OAAO;gBAC7B,eAAe,GAAG,SAAS,CAAC;AAC5B,gBAAA,eAAe,GAAG,aAAa,CAAC,mBAAmB,CAAC;gBAEpD,MAAM;YACR,KAAK,kBAAkB,CAAC,IAAI;gBAC1B,eAAe,GAAG,SAAS,CAAC;AAC5B,gBAAA,eAAe,GAAG,aAAa,CAAC,iBAAiB,CAAC;gBAClD,MAAM;AACR,YAAA;AACE,gBAAA,eAAe,GAAG,aAAa,CAAC,sBAAsB,CAAC;AACvD,gBAAA,eAAe,GAAG,aAAa,CAAC,iBAAiB,CAAC;gBAClD,MAAM;AACT,SAAA;AACD,QAAA,IAAI,KAAK,GAAG;AACV,YAAA,kBAAkB,EAAE,eAAe;AACnC,YAAA,aAAa,EAAE,MAAM;AACrB,YAAA,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,eAAe,GAAG,eAAe;YACzC,aAAa,EAAE,eAAe,GAAG,eAAe;SACjD,CAAC;AAEF,QAAA,OAAO,KAAK,CAAC;KACd;IAED,eAAe,GAAA;QACb,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,SAAA;KACF;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC1C,SAAA;QACD,OAAO;AACL,YAAA,GAAG,kBAAkB;AACrB,YAAA,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC;SAC1D,CAAC;KACH;IAED,YAAY,GAAA;AACV,QAAA,IAAI,eAAuB,CAAC;QAC5B,QAAQ,IAAI,CAAC,WAAW;YACtB,KAAK,kBAAkB,CAAC,KAAK;AAC3B,gBAAA,eAAe,GAAG,aAAa,CAAC,iBAAiB,CAAC;gBAClD,MAAM;YACR,KAAK,kBAAkB,CAAC,OAAO;AAC7B,gBAAA,eAAe,GAAG,aAAa,CAAC,mBAAmB,CAAC;gBACpD,MAAM;YACR,KAAK,kBAAkB,CAAC,IAAI;AAC1B,gBAAA,eAAe,GAAG,aAAa,CAAC,iBAAiB,CAAC;gBAClD,MAAM;AACR,YAAA;AACE,gBAAA,eAAe,GAAG,aAAa,CAAC,iBAAiB,CAAC;gBAClD,MAAM;AACT,SAAA;AACD,QAAA,IAAI,KAAK,GAAG;AACV,YAAA,KAAK,EAAE,eAAe;SACvB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;;AAExB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClD,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAExC,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACrB,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB,YAAA,IAAI,YAAoB,CAAC;AACzB,YAAA,IAAI,aAAqB,CAAC;AAC1B,YAAA,IAAI,WAAW,GAAG,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,GAAG,IAAI,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAE1C,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBAC3C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC;AACtD,aAAA;AAAM,iBAAA;gBACL,aAAa,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC;AACxD,aAAA;AACF,SAAA;KACF;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAED,IAAA,YAAY,CAAC,OAAO,EAAA;;AAElB,QAAA,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;;;AAG3E,QAAA,IAAI,UAAU,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACpB,SAAA;KACF;IAED,oBAAoB,GAAA;QAClB,IAAI,aAAa,GAAG,sCAAsC,CAAC;QAC3D,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,YAAA,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;AAGD,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE,CAAC;;AAGtB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;;AAExB,YAAA,OAAO,KAAK;iBACT,GAAG,CAAC,IAAI,IAAG;gBACV,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxF,aAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,SAAA;;AAGD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/C,SAAA;;AAGD,QAAA,OAAO,KAAK,CAAC;KACd;wGA/MU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,0OCpB5B,uhDA6CA,EAAA,MAAA,EAAA,CAAA,kfAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDzBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,uhDAAA,EAAA,MAAA,EAAA,CAAA,kfAAA,CAAA,EAAA,CAAA;iIAKpB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAWN,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,kBAAkB,CAAA;;;ME5BrB,oBAAoB,CAAA;AAIjB,IAAA,IAAA,CAAA;IAHG,IAAI,GAAY,IAAI,CAAC;AAEpC,IAAA,WAAA,CACY,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KAC3B;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAED,cAAc,GAAA;AACV,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAEnF,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,gBAAgB,EAAE;AACnB,gBAAA,MAAM,cAAc,GAAG,CAAA,2CAAA,EAA8C,aAAa,CAAC,gBAAgB,eAAe,CAAA;gBAClH,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAC3E,aAAA;AACJ,SAAA;AACI,aAAA;AACD,YAAA,IAAI,gBAAgB,EAAE;gBAClB,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAC7B,aAAA;AACJ,SAAA;KACJ;wGA7BQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAApB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA,CAAA;iGAEkB,IAAI,EAAA,CAAA;sBAAlB,KAAK;uBAAC,MAAM,CAAA;;;MCFJ,wBAAwB,CAAA;wGAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;MAKY,wBAAwB,CAAA;AACnC,IAAA,WAAW,CAAS;AAEpB,IAAA,WAAA,CAAY,WAAmB,EAAA;AAE7B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;IAED,YAAY,GAAA;AACV,QAAA,OAAO,8BAA8B,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KACxE;AACF,CAAA;MAEY,mCAAmC,CAAA;IAC9C,YAAY,GAAA;AACV,QAAA,OAAO,yDAAyD,CAAC;KAClE;AACF,CAAA;MAEY,mCAAmC,CAAA;IAC9C,YAAY,GAAA;AACV,QAAA,OAAO,4BAA4B,CAAC;KACrC;AACF,CAAA;MAGY,wBAAwB,CAAA;AACnC,IAAA,WAAW,CAAS;AAEpB,IAAA,WAAA,CAAY,WAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;IAED,YAAY,GAAA;AACV,QAAA,OAAO,8BAA8B,GAAG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KACxE;AACF,CAAA;MAEY,kBAAkB,CAAA;AAC7B,IAAA,WAAW,CAAS;AAEpB,IAAA,WAAA,CAAY,WAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;IAED,YAAY,GAAA;AACV,QAAA,OAAO,kCAAkC,GAAG,IAAI,CAAC,WAAW,CAAC;KAC9D;AACF,CAAA;MACY,kBAAkB,CAAA;AAC7B,IAAA,WAAW,CAAS;AAEpB,IAAA,WAAA,CAAY,WAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;IAED,YAAY,GAAA;AACV,QAAA,OAAO,mCAAmC,GAAG,IAAI,CAAC,WAAW,CAAE;KAChE;AACF,CAAA;MAEY,qBAAqB,CAAA;AAChC,IAAA,WAAW,CAAM;AAEjB,IAAA,WAAA,CAAY,WAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;KAC/B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,cAAc,EAAE;AACtC,YAAA,OAAO,qCAAqC,CAAC;AAC9C,SAAA;AACI,aAAA,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAiB,EAAE;AAC9C,YAAA,OAAO,+CAA+C,GAAG,MAAM,GAAG,oBAAoB,CAAC;AACxF,SAAA;AACI,aAAA,IAAI,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE;AACrC,YAAA,OAAO,6BAA6B,CAAC;AACtC,SAAA;KACF;AACF,CAAA;MAEY,sBAAsB,CAAA;IACjC,YAAY,GAAA;AACV,QAAA,OAAO,wBAAwB,CAAC;KACjC;AACF,CAAA;MAEY,mBAAmB,CAAA;IAE9B,YAAY,GAAA;AACV,QAAA,OAAO,iCAAiC,GAAG,MAAM,GAAG,mBAAmB,CAAC;KACzE;AACF,CAAA;MAEY,eAAe,CAAA;AAC1B,IAAA,OAAO,gBAAgB,CAAC,cAAsB,EAAE,eAAoB,EAAA;AAClE,QAAA,IAAI,iBAAiB,CAAC;QACtB,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAC5E,QAAA,OAAO,iBAAiB,CAAC;KAC1B;AAGD,IAAA,OAAO,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAA;AAC5C,QAAA,IAAI,yBAAyB,GAAG;YAC9B,WAAW,EAAE,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE;YAC/D,WAAW,EAAE,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE;YAC/D,KAAK,EAAE,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE;YACnD,KAAK,EAAE,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE;YACnD,SAAS,EAAE,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE;AAC1D,YAAA,UAAU,EAAE,IAAI,sBAAsB,EAAE,CAAC,YAAY,EAAE;AACvD,YAAA,OAAO,EAAE,IAAI,mBAAmB,EAAE,CAAC,YAAY,EAAE;AACjD,YAAA,sBAAsB,EAAE,IAAI,mCAAmC,EAAE,CAAC,YAAY,EAAE;AAChF,YAAA,wBAAwB,EAAE,IAAI,mCAAmC,EAAE,CAAC,YAAY,EAAE;SACnF,CAAA;AACD,QAAA,OAAO,yBAAyB,CAAC,cAAc,CAAC,CAAC;KAClD;IAED,OAAO,wBAAwB,GAAG;AAChC,QAAA,UAAU,EAAE,IAAI,sBAAsB,EAAE,CAAC,YAAY,EAAE;QACvD,SAAS,EAAE,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE;KAC/D,CAAA;;;MCvHU,4CAA4C,CAAA;AAU7C,IAAA,KAAA,CAAA;AACA,IAAA,OAAA,CAAA;AAVV,IAAA,YAAY,CAAM;AAClB,IAAA,OAAO,CAAU;AACjB,IAAA,UAAU,CAAkB;IACT,QAAQ,GAAY,IAAI,CAAC;IACrB,YAAY,GAAY,IAAI,CAAC;IACpD,eAAe,GAAG,eAAe,CAAC;AAClC,IAAA,wBAAwB,CAAe;IAEvC,WACU,CAAA,KAAiB,EACjB,OAAkB,EAAA;QADlB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAW;KACvB;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAG;YAC5E,IAAI,MAAM,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;YAClC,IAAI,EAAE,MAAK;gBACT,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;oBAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,iBAAA;AAAM,qBAAA;oBACL,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACJ;IAGD,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAoB,CAAC,CAAC;AACxE,QAAA,IAAI,YAAY;YAAE,YAAY,CAAC,MAAM,EAAE,CAAC;KACzC;IAEO,iBAAiB,GAAA;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAqB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAExD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,SAAS,EAAE;YACb,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,gBAAA,QAAQ,IAAI,CAAC,CAAC,CAAC;oBACb,KAAK,UAAU,EAAE;AACf,wBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACxE,wBAAA,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,CAAC;wBAC1G,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAC5B,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EACpC,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;wBACF,MAAM;AACP,qBAAA;oBACD,KAAK,qBAAqB,EAAE;AAC1B,wBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACxE,wBAAA,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,CAAC;wBAC1G,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAC5B,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAC/C,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;wBACF,MAAM;AACP,qBAAA;oBACD,KAAK,eAAe,EAAE;AACpB,wBAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACpC,wBAAA,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;AAChC,wBAAA,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,CAAC;AAC3G,qBAAA;AACF,iBAAA;AACF,aAAA;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,MAAM,MAAM,GACV,CAAA,kBAAA,EAAqB,aAAa,CAAC,gBAAgB,CAAY,SAAA,EAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,GAAG,MAAM,wCAAwC,aAAa,CAAC,qBAAqB,CAAA,4DAAA,EAA+D,aAAa,CAAC,gBAAgB,+BAA+B,aAAa,CAAC,gBAAgB,CAAiD,+CAAA,CAAA;AACzZ,oBAAA,IAAI,CAAC,UAAU;oBACf,IAAI;oBACJ,CAA8E,2EAAA,EAAA,aAAa,CAAC,gBAAgB,CAA4C,0CAAA,CAAA;oBACxJ,6BAA6B;oBAC7B,OAAO;AACP,oBAAA,IAAI,CAAC,YAAY;AACjB,oBAAA,QAAQ,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,QAAQ;AAChB,oBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC3E,qBAAA;oBACH,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACjE,iBAAA;AACF,aAAA;AACF,SAAA;KACF;wGA1GU,4CAA4C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAA5C,4CAA4C,EAAA,QAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAF5C,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAET,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBAJxD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0CAA0C;oBACpD,SAAS,EAAE,CAAC,OAAO,CAAC;AACrB,iBAAA,CAAA;2HAKoB,QAAQ,EAAA,CAAA;sBAA1B,KAAK;uBAAC,UAAU,CAAA;gBACM,YAAY,EAAA,CAAA;sBAAlC,KAAK;uBAAC,cAAc,CAAA;gBAgCrB,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,UAAU,CAAA;;;MChCb,kCAAkC,CAAA;IAC7C,QAAQ,GAAW,SAAS,CAAC;AAC7B,IAAA,SAAS,CAAY;AACrB,IAAA,KAAK,CAAQ;AACb,IAAA,GAAG,CAAS;AACZ,IAAA,MAAM,CAAM;AACZ,IAAA,cAAc,GAAqC,gCAAgC,CAAC,IAAI,CAAC;IACzF,eAAe,GAAG,gCAAgC,CAAC;IACnD,SAAS,GAAY,IAAI,CAAC;AAC1B,IAAA,YAAY,GAA6B,wBAAwB,CAAC,OAAO,CAAC;AAC1E,IAAA,iBAAiB,CAA4B;AAC7C,IAAA,WAAW,GAAkB,IAAI,CAAC;IAClC,YAAY,GAAY,IAAI,CAAC;AAE7B,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,MAAM,CAAC,MAAW,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtF,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;KACtE;AAED,IAAA,iBAAiB,CAAC,MAAW,EAAA;QAC3B,IAAI,MAAM,GAAQ,MAAM,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,OAAO,GAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,QAAA,IAAI,WAAgB,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;;YAE7B,WAAW,GAAG,MAAM,CAAC;AACtB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;;AAErC,YAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;;YAEL,WAAW,GAAG,IAAI,CAAC;AACpB,SAAA;QAED,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,YAAY,QAAQ,EAAE;AACtD,YAAA,MAAM,MAAM,GAAyC;AACnD,gBAAA,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AACjC,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;gBAC/B,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;aACrF,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,gCAAgC,CAAC,gBAAgB,EAAE;AAC5E,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,SAAA;KACF;AAED,IAAA,aAAa,CAAC,MAAM,EAAA;QAClB,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,EAAE;AACjE,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,MAAM,CAAC,YAAY,IAAI,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,SAAA;QACD,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE;AAC7D,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACnC,SAAA;QACD,IAAI,MAAM,CAAC,YAAY,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACzC,SAAA;QACD,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC5B,YAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACnD,SAAA;QACD,IAAI,MAAM,CAAC,wBAAwB,IAAI,IAAI,IAAI,MAAM,CAAC,wBAAwB,IAAI,SAAS,EAAE;AAC3F,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACvD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,gCAAgC,CAAC,gBAAgB,EAAE;AAC5E,YAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,IAAI,gCAAgC,CAAC,IAAI,EAAE;AACvE,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC3E,SAAA;KACF;AAED,IAAA,WAAW,CAAC,MAAM,EAAA;QAChB,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,sBAAsB,CAAC,MAAM,EAAA;AAC3B,QAAA,IAAI,KAAY,CAAC;QACjB,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,YAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;AACtF,gBAAA,IAAI,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC/B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5F,KAAK,GAAG,aAAa,CAAC;AACvB,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,SAAA;KACF;AAED,IAAA,OAAO,CAAC,MAAW,EAAA;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3F,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,SAAS,GAAA;QACX,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;AAC/E,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;wGAxHU,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kCAAkC,oECd/C,qsCAgBiD,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4CAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDFpC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAL9C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,qsCAAA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,CAAA;;;AEV1C,IAAY,QAGX,CAAA;AAHD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,QAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,QAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;AACtB,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA;;MCAY,mBAAmB,CAAA;IAE5B,OAAO,KAAK,CAAS;IACrB,OAAO,KAAK,CAAS;IACrB,OAAO,WAAW,CAAS;IAC3B,OAAO,KAAK,CAAM;AAElB,IAAA,OAAO,QAAQ,GAAA;QACX,IAAI,KAAK,GAAiB,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,QAAA,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAC3B,OAAO,KAAK,KAAK,QAAQ,CAAa,CAAC;AAC3C,QAAA,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;AACrB,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;AACpG,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAED,OAAO,sBAAsB,CAAC,IAAc,EAAA;AACxC,QAAA,QAAQ,IAAI;YACR,KAAK,QAAQ,CAAC,OAAO;gBACjB,OAAO,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACnD,MAAM;YACV,KAAK,QAAQ,CAAC,cAAc;gBACxB,OAAO,IAAI,CAAC,KAAK,GAAG,gBAAgB,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;gBAC9D,MAAM;AACV,YAAA;gBACI,OAAO,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;AAC3D,SAAA;KACJ;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,KAAK,CAAC;AACV,QAAA,QAAQ,KAAK;AACT,YAAA,KAAK,SAAS;gBACV,OAAO,KAAK,GAAG,CAAC,CAAC;gBACjB,MAAM;AACV,YAAA,KAAK,gBAAgB;gBACjB,OAAO,KAAK,GAAG,CAAC,CAAC;gBACjB,MAAM;AACV,YAAA;AACI,gBAAA,OAAO,IAAI,CAAA;AAClB,SAAA;KACJ;IACD,OAAO,wBAAwB,CAAC,KAAa,EAAA;AACzC,QAAA,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE;AACrB,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,OAAO,IAAI,CAAC,KAAK,CAAA;AACpB,aAAA;AACJ,SAAA;KACJ;AACJ;;MCxCY,uBAAuB,CAAA;IAClC,KAAK,GAAG,mBAAmB,CAAC;AAC5B,IAAA,YAAY,CAAM;AAClB,IAAA,KAAK,CAAM;AAEX,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KACpC;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;AAEO,IAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAClC,IAAA,cAAc,GAAG,MAAK,GAAI,CAAC;IAEnC,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACzC;wGAlCU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EARvB,QAAA,EAAA,kBAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdH,qdAOM,EAAA,MAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDSO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGjB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,6BAA6B,CAAC;AACtD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,qdAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,CAAA;;;MECU,sBAAsB,CAAA;AAEvB,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AACtC,IAAA,KAAK,GAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvG,KAAK,GAAW,GAAG,CAAC;AACpB,IAAA,iBAAiB,CAAU;IAC3B,WAAW,GAAW,yBAAyB,CAAC;AAEzD,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,UAAU,CAAC,IAAa,EAAA;AACtB,QAAA,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC/B,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;AAEO,IAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAClC,IAAA,cAAc,GAAG,MAAK,GAAI,CAAC;IAEnC,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC1C;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,KAAK,GAAG;AACV,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;SACzB,CAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;wGA5CU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAPtB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AAAC,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbN,spBAYA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDGa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAXlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGjB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AAAC,qBAAA,EAAA,QAAA,EAAA,spBAAA,EAAA,CAAA;0EAIM,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAEE,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MEZK,8BAA8B,CAAA;AACzC,IAAA,MAAM,CAAM;AACZ,IAAA,gBAAgB,CAAC;AACjB,IAAA,GAAG,CAAC;AACJ,IAAA,YAAY,CAAU;AACtB,IAAA,UAAU,CAAS;AACnB,IAAA,KAAK,CAAS;AAEd,IAAA,WAAA,GAAA,GAAiB;AAGjB,IAAA,MAAM,CAAC,MAAW,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;KAC7B;AAED,IAAA,iBAAiB,CAAC,MAAM,EAAA;QACtB,IAAI,KAAK,GAAQ,MAAM,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACrD;AAED,IAAA,OAAO,CAAC,MAAW,EAAA;AACjB,QAAA,OAAO,KAAK,CAAC;KACd;wGA1BU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,iECT3C,sLAA4K,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDS/J,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,sLAAA,EAAA,CAAA;;;AEFhC,MAAM,YAAY,GAAG;IACxB,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;CAClD;;MCAY,WAAW,CAAA;IACpB,SAAS,CAAC,KAAK,EAAE,IAAS,EAAA;AACtB,QAAA,KAAK,IAAI,GAAG,IAAI,YAAY,EAAE;AAC1B,YAAA,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE;gBACpB,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACpC,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACb;wGARQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;sGAAX,WAAW,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,IAAI;mBAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;;;MCYhB,6BAA6B,CAAA;AAC9B,IAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACrC,IAAA,YAAY,CAAS;AACrB,IAAA,SAAS,CAAS;AAClB,IAAA,QAAQ,CAAS;AACjB,IAAA,WAAW,CAAS;IACpB,QAAQ,GAAY,KAAK,CAAC;AAC1B,IAAA,IAAI,CAAS;AACb,IAAA,QAAQ,CAAS;IACjB,UAAU,GAAY,IAAI,CAAC;IAC3B,UAAU,GAAY,IAAI,CAAC;IAC3B,KAAK,GAAW,EAAE,CAAC;IAC5B,cAAc,GAAY,KAAK,CAAC;IAChC,SAAS,GAAY,KAAK,CAAC;IAC3B,QAAQ,GAAY,KAAK,CAAC;AAE1B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,SAAA;AACI,aAAA;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,SAAA;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC7B;AAED,IAAA,WAAW,CAAC,KAAK,EAAA;AACf,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,SAAA;AACI,aAAA;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,SAAA;KACF;;;AAIM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;KAC1B;;AAEO,IAAA,eAAe,GAAG,CAAC,CAAM,KAAI,GAAI,CAAC;AAClC,IAAA,cAAc,GAAG,MAAK,GAAI,CAAC;AAEnC,IAAA,QAAQ,CAAC,MAAM,EAAA;;KAEd;IAED,UAAU,GAAA;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;wGA3FU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAA7B,6BAA6B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAR7B,CAAC,WAAW;AACrB,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B,CAAC;AAC5D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbH,44DAqCM,EAAA,MAAA,EAAA,CAAA,osCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAa,WAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDtBO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAZzC,SAAS;+BACE,wBAAwB,EAAA,SAAA,EAGvB,CAAC,WAAW;AACrB,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,mCAAmC,CAAC;AAC5D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,44DAAA,EAAA,MAAA,EAAA,CAAA,osCAAA,CAAA,EAAA,CAAA;0EAGS,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACE,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEjBK,yCAAyC,CAAA;AAW1C,IAAA,KAAA,CAAA;AACA,IAAA,OAAA,CAAA;AAXT,IAAA,YAAY,CAAM;AACnB,IAAA,oBAAoB,CAAM;IACH,YAAY,GAAU,IAAI,CAAC;AAC7B,IAAA,UAAU,CAAM;IACf,WAAW,GAAY,KAAK,CAAC;IAChC,QAAQ,GAAY,KAAK,CAAC;IAC7C,eAAe,GAAG,eAAe,CAAC;AAClC,IAAA,wBAAwB,CAAe;IAEvC,WACU,CAAA,KAAiB,EACjB,OAAkB,EAAA;QADlB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAW;KACvB;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAClE,CAAC,MAAM,KAAI;YACT,IAAI,MAAM,IAAI,SAAS,EAAE;gBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;AAElB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,aAAA;AACH,SAAC,CACF,CAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;AAClC,YAAA,IAAI,EAAE,CAAC,QAAQ,KAAI;AACjB,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,iBAAA;aACF;AACF,SAAA,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;KAC7C;AAGD,IAAA,eAAe,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;AACI,aAAA;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;IAGO,SAAS,GAAA;QACf,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,MAAM,SAAS,GAAqB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,QAAQ,IAAI,CAAC,CAAC,CAAC;gBACb,KAAK,WAAW,EAAE;AAChB,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACjG,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;oBAEjF,MAAM;AACP,iBAAA;gBACD,KAAK,UAAU,EAAE;AACf,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;oBACjF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAC,EAAE,SAAS,EAAC,KAAK,EAAC,CAAC,CAAA;oBAC3F,MAAM;AACP,iBAAA;gBACD,KAAK,WAAW,EAAE;AAChB,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACjG,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;AACjF,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,OAAO,EAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;oBAClJ,MAAM;AACP,iBAAA;gBACD,KAAK,KAAK,EAAE;AACV,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAC7E,CAAC;oBACF,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;AACjF,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;oBACjH,MAAM;AACP,iBAAA;gBACD,KAAK,KAAK,EAAE;AACV,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAC7E,CAAC;oBACF,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;oBACjF,MAAM;AACP,iBAAA;gBAED,KAAK,SAAS,EAAE;AACd,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAChG,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;oBACjF,MAAM;AACP,iBAAA;gBACD,KAAK,OAAO,EAAE;AACZ,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;oBACjF,MAAM;AACP,iBAAA;gBACD,KAAK,sBAAsB,EAAE;AAC3B,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;oBACjF,MAAM;AACP,iBAAA;gBACD,KAAK,wBAAwB,EAAE;AAC7B,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,YAAY,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,EAAE,CAAA,EAAG,SAAS,GAAG,OAAO,EAAE,CAAC;oBACjF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC5G,MAAM;AACP,iBAAA;AAEF,aAAA;AACF,SAAA;QACD,IAAI,IAAI,CAAC,YAAY,EAAC;YACtB,MAAM,MAAM,GAAG,sNAAsN,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,6HAA6H,GAAG,6BAA6B,GAAG,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YACxc,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ;AACrC,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;iBACrH,IAAI,IAAI,CAAC,WAAW;gBACvB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;iBAChE,IAAI,IAAI,CAAC,QAAQ;gBACpB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;;AAEhE,gBAAA,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC5C,SAAA;KACA;IACO,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9D,QAAA,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,MAAM,EAAE,CAAC;AACvB,SAAA;KACF;wGAlIU,yCAAyC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAV,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAzC,yCAAyC,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAFzC,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAET,yCAAyC,EAAA,UAAA,EAAA,CAAA;kBAJrD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wCAAwC;oBAClD,SAAS,EAAE,CAAC,OAAO,CAAC;AACrB,iBAAA,CAAA;2HAIwB,YAAY,EAAA,CAAA;sBAAlC,KAAK;uBAAC,cAAc,CAAA;gBACA,UAAU,EAAA,CAAA;sBAA9B,KAAK;uBAAC,YAAY,CAAA;gBACG,WAAW,EAAA,CAAA;sBAAhC,KAAK;uBAAC,aAAa,CAAA;gBACD,QAAQ,EAAA,CAAA;sBAA1B,KAAK;uBAAC,UAAU,CAAA;gBAkCjB,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCpCrB,6BAA6B,CAAA;IACxC,QAAQ,GAAW,SAAS,CAAC;AAC7B,IAAA,SAAS,CAAY;AACrB,IAAA,GAAG,CAAS;AACZ,IAAA,MAAM,CAAM;IACZ,MAAM,GAAY,IAAI,CAAC;AACvB,IAAA,iBAAiB,CAAS;AAC1B,IAAA,oBAAoB,CAAe;IACnC,QAAQ,GAAY,KAAK,CAAC;AAG1B,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,MAAM,CAAC,MAAW,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AACzC,SAAA;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS;AAC3C,aAAA,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClB,aAAA,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAc,CAAC;AAEzC,QAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAErE,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,SAAA;QACD,IAAI,MAAM,CAAC,QAAQ,IAAI,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC3D,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,EAAE;YACvF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;AACxD,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,MAAM,EAAA;AACtB,QAAA,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,WAAW,GAAoC;AACjD,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK;AAC5B,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SAC1B,CAAC;AACF,QAAA,IAAI,OAAO,GAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACxC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,YAAY,QAAQ,EAAE;AAC5C,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnC,SAAA;KACF;AAGD,IAAA,OAAO,CAAC,MAAW,EAAA;QACjB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtF,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;wGAzDU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,mECZ1C,khGAqDe,EAAA,MAAA,EAAA,CAAA,8VAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,yCAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDzCF,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,khGAAA,EAAA,MAAA,EAAA,CAAA,8VAAA,CAAA,EAAA,CAAA;;;MEC5B,oCAAoC,CAAA;AAGrC,IAAA,OAAA,CAAA;AAFV,IAAA,iBAAiB,CAAM;AACvB,IAAA,WAAA,CACU,OAAkB,EAAA;QAAlB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAW;KACvB;IAEL,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3F,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAClE,KAAK,IAAG;AACN,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,gBAAA,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACxD,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;AACjG,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;AACzF,aAAA;AACH,SAAC,CACF,CAAC;KACH;AAEkC,IAAA,OAAO,CAAC,MAAM,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACtB,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAC3B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChE,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;AACjG,SAAA;KACF;AAED,IAAA,yBAAyB,CAAC,KAAK,EAAA;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;YAC5B,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACxC,iBAAA,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACzC,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;AAAM,aAAA;YACL,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAA,IAAI,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAChC,YAAA,IAAI,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/B,kBAAkB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClE,iBAAA,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,QAAQ,GAAG,CAAA,EAAG,kBAAkB,CAAI,CAAA,EAAA,iBAAiB,EAAE,CAAC;AAC5D,YAAA,OAAO,QAAQ,CAAC;AACjB,SAAA;KACF;wGA9CU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oCAAoC,EAFpC,QAAA,EAAA,+BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,OAAO,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEtB,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;AAClC,iBAAA,CAAA;kGAwBoC,OAAO,EAAA,CAAA;sBAAzC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCuCtB,YAAY,CAAA;IAEhB,OAAO,OAAO,CAAC,WAAgB,EAAA;QAEpC,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;gBACT,wBAAwB;AACxB,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;wGAdU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBA1CrB,mBAAmB;YACnB,2BAA2B;YAC3B,0BAA0B;YAC1B,6BAA6B;YAC7B,uBAAuB;YACvB,sBAAsB;YACtB,8BAA8B;YAC9B,6BAA6B;YAC7B,WAAW;YACX,kCAAkC;YAClC,oCAAoC;YACpC,wBAAwB;YACxB,yCAAyC;YACzC,wBAAwB;YACxB,oBAAoB;YACpB,4CAA4C;AAC5C,YAAA,eAAe,aAGf,YAAY;YACZ,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,iBAAiB;YACjB,6BAA6B;AAC7B,YAAA,iBAAiB,aAGjB,mBAAmB;YACnB,2BAA2B;YAC3B,0BAA0B;YAC1B,6BAA6B;YAC7B,uBAAuB;YACvB,sBAAsB;YACtB,8BAA8B;YAC9B,6BAA6B;YAC7B,wBAAwB;YACxB,WAAW;YACX,oBAAoB;YACpB,eAAe,CAAA,EAAA,CAAA,CAAA;AAGN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAvBrB,YAAY;YACZ,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,iBAAiB;YACjB,6BAA6B;YAC7B,iBAAiB,CAAA,EAAA,CAAA,CAAA;;4FAiBR,YAAY,EAAA,UAAA,EAAA,CAAA;kBA5CxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,2BAA2B;wBAC3B,0BAA0B;wBAC1B,6BAA6B;wBAC7B,uBAAuB;wBACvB,sBAAsB;wBACtB,8BAA8B;wBAC9B,6BAA6B;wBAC7B,WAAW;wBACX,kCAAkC;wBAClC,oCAAoC;wBACpC,wBAAwB;wBACxB,yCAAyC;wBACzC,wBAAwB;wBACxB,oBAAoB;wBACpB,4CAA4C;wBAC5C,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,WAAW;wBACX,mBAAmB;wBACnB,iBAAiB;wBACjB,6BAA6B;wBAC7B,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,2BAA2B;wBAC3B,0BAA0B;wBAC1B,6BAA6B;wBAC7B,uBAAuB;wBACvB,sBAAsB;wBACtB,8BAA8B;wBAC9B,6BAA6B;wBAC7B,wBAAwB;wBACxB,WAAW;wBACX,oBAAoB;wBACpB,eAAe;AAChB,qBAAA;AACF,iBAAA,CAAA;;;MCtEY,aAAa,CAAA;AACtB,IAAA,KAAK,CAAS;AACd,IAAA,KAAK,CAAS;AACjB;;ACHD;;AAEG;;ACFH;;AAEG;;;;"}
|