@meshmakers/shared-ui 2.0.2304-14001 → 2.1.3-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -27
- package/esm2020/lib/confirmation-dialog/confirmation-dialog.module.mjs +40 -40
- package/esm2020/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs +69 -65
- package/esm2020/lib/confirmation-dialog/services/confirmation.service.mjs +68 -68
- package/esm2020/lib/confirmation-dialog/shared/confirmation.mjs +15 -15
- package/esm2020/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.mjs +276 -263
- package/esm2020/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.mjs +276 -264
- package/esm2020/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.mjs +300 -285
- package/esm2020/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.mjs +36 -35
- package/esm2020/lib/ia-shared-ui/ia-shared-ui.module.mjs +88 -88
- package/esm2020/lib/ia-shared-ui/message-details/message-details.component.mjs +24 -24
- package/esm2020/lib/progress-notifier/progress-notifier.module.mjs +44 -44
- package/esm2020/lib/progress-notifier/progress-window/progress-window.component.mjs +34 -33
- package/esm2020/lib/progress-notifier/services/progress-notifier.service.mjs +59 -58
- package/esm2020/lib/progress-notifier/shared/progressValue.mjs +7 -3
- package/esm2020/lib/shared/abstractDetailsComponent.mjs +38 -37
- package/esm2020/lib/shared/commonValidators.mjs +36 -29
- package/esm2020/meshmakers-shared-ui.mjs +4 -4
- package/esm2020/public-api.mjs +16 -16
- package/fesm2015/meshmakers-shared-ui.mjs +1280 -1212
- package/fesm2015/meshmakers-shared-ui.mjs.map +1 -1
- package/fesm2020/meshmakers-shared-ui.mjs +1257 -1202
- package/fesm2020/meshmakers-shared-ui.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/confirmation-dialog/confirmation-dialog.module.d.ts +13 -13
- package/lib/confirmation-dialog/confirmation-window/confirmation-window.component.d.ts +21 -21
- package/lib/confirmation-dialog/services/confirmation.service.d.ts +14 -14
- package/lib/confirmation-dialog/shared/confirmation.d.ts +20 -20
- package/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.d.ts +69 -69
- package/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.d.ts +70 -70
- package/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.d.ts +73 -73
- package/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.d.ts +15 -15
- package/lib/ia-shared-ui/ia-shared-ui.module.d.ts +22 -22
- package/lib/ia-shared-ui/message-details/message-details.component.d.ts +13 -13
- package/lib/progress-notifier/progress-notifier.module.d.ts +14 -14
- package/lib/progress-notifier/progress-window/progress-window.component.d.ts +23 -23
- package/lib/progress-notifier/services/progress-notifier.service.d.ts +17 -17
- package/lib/progress-notifier/shared/progressValue.d.ts +5 -4
- package/lib/shared/abstractDetailsComponent.d.ts +15 -15
- package/lib/shared/commonValidators.d.ts +11 -10
- package/package.json +8 -4
- package/public-api.d.ts +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meshmakers-shared-ui.mjs","sources":["../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/message-details/message-details.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/message-details/message-details.component.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-shared-ui.module.ts","../../../../projects/meshmakers/shared-ui/src/lib/progress-notifier/progress-window/progress-window.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/progress-notifier/progress-window/progress-window.component.html","../../../../projects/meshmakers/shared-ui/src/lib/progress-notifier/services/progress-notifier.service.ts","../../../../projects/meshmakers/shared-ui/src/lib/progress-notifier/progress-notifier.module.ts","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/shared/confirmation.ts","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/confirmation-window/confirmation-window.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/confirmation-window/confirmation-window.component.html","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/services/confirmation.service.ts","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/confirmation-dialog.module.ts","../../../../projects/meshmakers/shared-ui/src/lib/shared/commonValidators.ts","../../../../projects/meshmakers/shared-ui/src/lib/shared/abstractDetailsComponent.ts","../../../../projects/meshmakers/shared-ui/src/public-api.ts","../../../../projects/meshmakers/shared-ui/src/meshmakers-shared-ui.ts"],"sourcesContent":["import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from \"@angular/material/dialog\";\r\nimport {ErrorMessage} from \"@meshmakers/shared-services\";\r\n\r\n@Component({\r\n selector: 'app-message-details',\r\n templateUrl: './message-details.component.html',\r\n styleUrls: ['./message-details.component.css']\r\n})\r\nexport class MessageDetailsComponent implements OnInit {\r\n\r\n errorMessage: ErrorMessage;\r\n\r\n\r\n constructor(public dialogRef: MatDialogRef<MessageDetailsComponent>, @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.errorMessage = data.errorMessage;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","<mat-dialog-content>\r\n\r\n <h2>{{errorMessage.title}}</h2>\r\n <p>{{errorMessage.message}}</p>\r\n\r\n\r\n</mat-dialog-content>\r\n<mat-dialog-actions align=\"end\">\r\n <button color=\"primary\" mat-dialog-close mat-raised-button>OK</button>\r\n</mat-dialog-actions>\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {ErrorMessage, MessageService} from \"@meshmakers/shared-services\";\r\nimport {MatDialog} from \"@angular/material/dialog\";\r\nimport {MessageDetailsComponent} from \"../message-details/message-details.component\";\r\n\r\n@Component({\r\n selector: 'ia-notification-bar',\r\n templateUrl: './ia-notification-bar.component.html',\r\n styleUrls: ['./ia-notification-bar.component.css']\r\n})\r\nexport class IaNotificationBarComponent implements OnInit {\r\n\r\n public errorMessage: ErrorMessage;\r\n\r\n constructor(private messageService: MessageService, private dialog: MatDialog) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.messageService.getLatestErrorMessage().subscribe(value => {\r\n this.errorMessage = value;\r\n });\r\n }\r\n\r\n onHide() {\r\n this.errorMessage = null;\r\n }\r\n\r\n onShowDetails() {\r\n this.dialog.open(MessageDetailsComponent, {\r\n data: {\r\n errorMessage: this.errorMessage\r\n }\r\n });\r\n }\r\n}\r\n","<mat-toolbar [hidden]=\"!errorMessage\" color=\"warn\">\r\n <a (click)=\"onShowDetails()\"><span class=\"mat-small\"><u>{{ errorMessage?.title }}</u></span></a>\r\n\r\n <!-- This fills the remaining space of the current row -->\r\n <span class=\"notification-fill-remaining-space\"></span>\r\n\r\n <button (click)=\"onHide()\" color=\"warn\" mat-raised-button><i class=\"pi pi-angle-double-up\"></i></button>\r\n</mat-toolbar>\r\n","import {\r\n Component,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {MatFormFieldControl} from \"@angular/material/form-field\";\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ValidationErrors,\r\n Validator\r\n} from \"@angular/forms\";\r\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {debounceTime, filter, map, switchMap, tap} from \"rxjs/operators\";\r\nimport {MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent} from \"@angular/material/autocomplete\";\r\nimport {MatInput} from \"@angular/material/input\";\r\nimport {Subject} from \"rxjs\";\r\nimport {FocusMonitor} from \"@angular/cdk/a11y\";\r\nimport {AutoCompleteDataSource} from \"@meshmakers/shared-services\";\r\n\r\n@Component({\r\n selector: 'ia-autocomplete',\r\n templateUrl: './ia-autocomplete-input.html',\r\n styleUrls: ['./ia-autocomplete-input.css'],\r\n host: {\r\n '[id]': 'id',\r\n '[attr.aria-describedby]': 'describedBy'\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => IaAutocompleteInput),\r\n multi: true\r\n },\r\n {\r\n provide: MatFormFieldControl,\r\n useExisting: IaAutocompleteInput\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => IaAutocompleteInput),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class IaAutocompleteInput implements OnInit, OnDestroy, DoCheck, ControlValueAccessor, MatFormFieldControl<any>, Validator {\r\n\r\n\r\n private static nextId = 0;\r\n public readonly searchFormControl: FormControl;\r\n public isLoading: boolean;\r\n public filteredStrings: string[] = [];\r\n public ngControl: NgControl;\r\n public errorState: boolean;\r\n public focused: boolean;\r\n public readonly stateChanges = new Subject<void>();\r\n @HostBinding() public readonly id = `ia-autocomplete-${IaAutocompleteInput.nextId++}`;\r\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n private _selectedString: string;\r\n @ViewChild('input') private inputField: MatInput;\r\n @HostBinding('attr.aria-describedby') private describedBy = '';\r\n private activatedValue: any;\r\n\r\n constructor(public elRef: ElementRef, private injector: Injector, private fm: FocusMonitor) {\r\n\r\n this.searchFormControl = new FormControl();\r\n this.isLoading = false;\r\n this._disabled = false;\r\n this.focused = false;\r\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\r\n this.focused = !!origin;\r\n this.stateChanges.next();\r\n });\r\n }\r\n\r\n private _dataSource: AutoCompleteDataSource;\r\n\r\n public get dataSource() {\r\n return this._dataSource;\r\n }\r\n\r\n @Input()\r\n public set dataSource(value: AutoCompleteDataSource) {\r\n this._dataSource = value;\r\n }\r\n\r\n private _disabled = false;\r\n\r\n @Input()\r\n public get disabled() {\r\n return this._disabled;\r\n }\r\n\r\n public set disabled(dis) {\r\n this._disabled = coerceBooleanProperty(dis);\r\n this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();\r\n this.stateChanges.next();\r\n }\r\n\r\n private _placeholder: string;\r\n\r\n @Input()\r\n public get placeholder() {\r\n return this._placeholder;\r\n }\r\n\r\n public set placeholder(plh) {\r\n this._placeholder = plh;\r\n this.stateChanges.next();\r\n }\r\n\r\n private _required = false;\r\n\r\n @Input()\r\n public get required() {\r\n return this._required;\r\n }\r\n\r\n public set required(req) {\r\n this._required = coerceBooleanProperty(req);\r\n this.inputField.required = this._required;\r\n this.stateChanges.next();\r\n }\r\n\r\n private _prefix: string;\r\n\r\n @Input()\r\n public get prefix(): string {\r\n return this._prefix;\r\n }\r\n\r\n public set prefix(value: string) {\r\n if (value !== this._prefix) {\r\n this._prefix = value;\r\n }\r\n }\r\n\r\n public get value(): any {\r\n return this._selectedString;\r\n }\r\n\r\n public set value(value: any) {\r\n if (value !== this._selectedString) {\r\n this._selectedString = value;\r\n this.searchFormControl.setValue(value);\r\n this.valueChange.emit(value);\r\n this._propagateChange(this._selectedString);\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n public get empty() {\r\n let n = this.searchFormControl.value;\r\n return !!!n;\r\n }\r\n\r\n @HostBinding('class.floating')\r\n public get shouldLabelFloat() {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n ngOnInit() {\r\n this.ngControl = this.injector.get(NgControl, null);\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n // If prefix defined, usually this is used for a code scanner.\r\n // The goal is to select the entity in direct way.\r\n if (this._prefix) {\r\n this.searchFormControl\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n filter(value => typeof value === 'string'),\r\n filter(value => value.startsWith(this._prefix)),\r\n tap(() => this.value = null),\r\n tap(() => this.isLoading = true),\r\n map(value => this._dataSource.onPreprocessSearchString(value)),\r\n switchMap(value => this._dataSource.onFilter(value))\r\n )\r\n .subscribe(resultSet => {\r\n\r\n if (resultSet.list.length === 1) {\r\n this.value = resultSet[0];\r\n } else {\r\n this.filteredStrings = resultSet.list;\r\n this.searchFormControl.patchValue(resultSet.searchTerm, {emitEvent: false});\r\n }\r\n\r\n this.isLoading = false;\r\n\r\n });\r\n }\r\n\r\n // This is the search functionality when search by human.\r\n this.searchFormControl\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n tap(value => {\r\n this.filteredStrings = [];\r\n }\r\n ),\r\n filter(value => value != null && value.toString().length >= 1),\r\n tap(() => this.isLoading = true),\r\n map(value => this._dataSource.onPreprocessSearchString(value)),\r\n tap(value => this.value = value),\r\n switchMap(value => this._dataSource.onFilter(value))\r\n )\r\n .subscribe(resultSet => {\r\n this.filteredStrings = resultSet.list;\r\n this.searchFormControl.patchValue(resultSet.searchTerm, {emitEvent: false});\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this.fm.stopMonitoring(this.elRef.nativeElement);\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.ngControl) {\r\n this.errorState = this.ngControl.invalid && this.ngControl.touched;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n public clear() {\r\n this.filteredStrings = [];\r\n this.searchFormControl.reset(null);\r\n }\r\n\r\n public focus() {\r\n this.elRef.nativeElement.querySelector('input').focus();\r\n }\r\n\r\n public onOptionSelected(event: MatAutocompleteSelectedEvent) {\r\n this.value = event.option.value;\r\n this.filteredStrings = [];\r\n }\r\n\r\n public onOptionActivated(event: MatAutocompleteActivatedEvent) {\r\n this.activatedValue = event.option?.value;\r\n }\r\n\r\n public onAutoCompleteClosed() {\r\n\r\n if (this.activatedValue) {\r\n\r\n this.value = this.activatedValue;\r\n this.activatedValue = null;\r\n\r\n }\r\n }\r\n\r\n public reset() {\r\n this.value = null;\r\n }\r\n\r\n public onFocusOut() {\r\n\r\n if (this.filteredStrings.length === 1) {\r\n this.activatedValue = this.filteredStrings[0];\r\n this.value = this.filteredStrings[0];\r\n }\r\n }\r\n\r\n public onTouched() {\r\n\r\n this._onTouched();\r\n this.stateChanges.next();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this._propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj: any): void {\r\n this.clear();\r\n this.value = obj;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n public onContainerClick(event: MouseEvent): void {\r\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\r\n this.focus();\r\n }\r\n }\r\n\r\n public setDescribedByIds(ids: string[]): void {\r\n this.describedBy = ids.join(' ');\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const selection: any = control.value;\r\n if (typeof selection === 'string' && (<string>selection).length < 1) {\r\n return {incorrect: true};\r\n }\r\n return null;\r\n }\r\n\r\n private _propagateChange = (_: any) => {\r\n };\r\n\r\n private _onTouched = () => {\r\n };\r\n}\r\n","<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\r\n [placeholder]=\"placeholder\" matInput>\r\n<mat-autocomplete #auto=\"matAutocomplete\"\r\n (closed)=\"onAutoCompleteClosed()\" (optionActivated)=\"onOptionActivated($event)\"\r\n (optionSelected)=\"onOptionSelected($event)\">\r\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\r\n <mat-spinner diameter=\"50\"></mat-spinner>\r\n </mat-option>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <mat-option *ngFor=\"let str of filteredStrings\" [value]=\"str\">\r\n {{str}}\r\n </mat-option>\r\n </ng-container>\r\n</mat-autocomplete>\r\n","import {\r\n Component,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ValidationErrors,\r\n Validator\r\n} from \"@angular/forms\";\r\nimport {MatFormFieldControl} from \"@angular/material/form-field\";\r\nimport {MatInput} from \"@angular/material/input\";\r\nimport {EntitySelectDataSource} from \"@meshmakers/shared-services\";\r\nimport {Subject} from \"rxjs\";\r\nimport {FocusMonitor} from \"@angular/cdk/a11y\";\r\nimport {debounceTime, filter, switchMap, tap} from \"rxjs/operators\";\r\nimport {MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent} from \"@angular/material/autocomplete\";\r\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\n\r\n@Component({\r\n selector: 'ia-entity-select',\r\n templateUrl: './ia-entity-select-input.component.html',\r\n styleUrls: ['./ia-entity-select-input.component.css'],\r\n host: {\r\n '[id]': 'id',\r\n '[attr.aria-describedby]': 'describedBy'\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => IaEntitySelectInput),\r\n multi: true\r\n },\r\n {\r\n provide: MatFormFieldControl,\r\n useExisting: IaEntitySelectInput\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => IaEntitySelectInput),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class IaEntitySelectInput implements OnInit, OnDestroy, DoCheck, ControlValueAccessor, MatFormFieldControl<any>, Validator {\r\n\r\n private static nextId = 0;\r\n public readonly searchFormControl: FormControl;\r\n public isLoading: boolean;\r\n public filteredEntities: any[] = [];\r\n public ngControl: NgControl;\r\n public errorState: boolean;\r\n public focused: boolean;\r\n public readonly stateChanges = new Subject<void>();\r\n @HostBinding() public readonly id = `ia-entity-select-${IaEntitySelectInput.nextId++}`;\r\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n private _selectedEntity: any;\r\n @ViewChild('input') private inputField: MatInput;\r\n @HostBinding('attr.aria-describedby') private describedBy = '';\r\n private activatedValue: any;\r\n\r\n constructor(public elRef: ElementRef, private injector: Injector, private fm: FocusMonitor) {\r\n\r\n this.searchFormControl = new FormControl();\r\n this.isLoading = false;\r\n this._disabled = false;\r\n this.focused = false;\r\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\r\n this.focused = !!origin;\r\n this.stateChanges.next();\r\n });\r\n }\r\n\r\n private _dataSource: EntitySelectDataSource<any>;\r\n\r\n public get dataSource() {\r\n return this._dataSource;\r\n }\r\n\r\n @Input()\r\n public set dataSource(value: EntitySelectDataSource<any>) {\r\n this._dataSource = value;\r\n }\r\n\r\n private _disabled = false;\r\n\r\n @Input()\r\n public get disabled() {\r\n return this._disabled;\r\n }\r\n\r\n public set disabled(dis) {\r\n this._disabled = coerceBooleanProperty(dis);\r\n this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();\r\n this.stateChanges.next();\r\n }\r\n\r\n private _placeholder: string;\r\n\r\n @Input()\r\n public get placeholder() {\r\n return this._placeholder;\r\n }\r\n\r\n public set placeholder(plh) {\r\n this._placeholder = plh;\r\n this.stateChanges.next();\r\n }\r\n\r\n private _required = false;\r\n\r\n @Input()\r\n public get required() {\r\n return this._required;\r\n }\r\n\r\n public set required(req) {\r\n this._required = coerceBooleanProperty(req);\r\n this.inputField.required = this._required;\r\n this.stateChanges.next();\r\n }\r\n\r\n private _prefix: string;\r\n\r\n @Input()\r\n public get prefix(): string {\r\n return this._prefix;\r\n }\r\n\r\n public set prefix(value: string) {\r\n if (value !== this._prefix) {\r\n this._prefix = value;\r\n }\r\n }\r\n\r\n public get value(): any {\r\n return this._selectedEntity;\r\n }\r\n\r\n public set value(value: any) {\r\n if (value !== this._selectedEntity) {\r\n this.searchFormControl.setValue(value);\r\n this.setValue(value);\r\n }\r\n }\r\n\r\n public get empty() {\r\n let n = this.searchFormControl.value;\r\n return !!!n;\r\n }\r\n\r\n @HostBinding('class.floating')\r\n public get shouldLabelFloat() {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n ngOnInit() {\r\n this.ngControl = this.injector.get(NgControl, null);\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n // If prefix defined, usually this is used for a code scanner.\r\n // The goal is to select the entity in direct way.\r\n if (this._prefix) {\r\n this.searchFormControl\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n filter(value => typeof value === 'string'),\r\n filter(value => value.startsWith(this._prefix)),\r\n tap(() => this.value = null),\r\n tap(() => this.isLoading = true),\r\n switchMap(value => this._dataSource.onFilter(value.replace(this._prefix, \"\").trim()))\r\n )\r\n .subscribe(resultSet => {\r\n\r\n if (resultSet.list.length === 1) {\r\n this.value = resultSet.list[0];\r\n } else {\r\n this.filteredEntities = resultSet.list;\r\n }\r\n\r\n this.isLoading = false;\r\n\r\n });\r\n }\r\n\r\n // This is the search functionality when search by human.\r\n this.searchFormControl\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n tap(() => this.filteredEntities = []),\r\n filter(value => typeof value === 'string'),\r\n tap(() => this.setValue(null)),\r\n filter(value => value.toString().length >= 3),\r\n tap(() => this.isLoading = true),\r\n switchMap(value => this._dataSource.onFilter(value))\r\n )\r\n .subscribe(resultSet => {\r\n this.filteredEntities = resultSet.list;\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this.fm.stopMonitoring(this.elRef.nativeElement);\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.ngControl) {\r\n this.errorState = this.ngControl.invalid && this.ngControl.touched;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n public clear() {\r\n this.filteredEntities = [];\r\n this.searchFormControl.reset(null);\r\n }\r\n\r\n public focus() {\r\n this.elRef.nativeElement.querySelector('input').focus();\r\n }\r\n\r\n public onEntitySelected(event: MatAutocompleteSelectedEvent) {\r\n this.value = event.option.value;\r\n this.filteredEntities = [];\r\n }\r\n\r\n public onEntityActivated(event: MatAutocompleteActivatedEvent) {\r\n this.activatedValue = event.option?.value;\r\n }\r\n\r\n public onEntityClosed() {\r\n\r\n if (this.activatedValue) {\r\n\r\n this.value = this.activatedValue;\r\n this.activatedValue = null;\r\n\r\n }\r\n }\r\n\r\n public reset() {\r\n this.value = null;\r\n }\r\n\r\n public onFocusOut() {\r\n\r\n if (this.filteredEntities.length === 1) {\r\n this.activatedValue = this.filteredEntities[0];\r\n this.value = this.filteredEntities[0];\r\n }\r\n }\r\n\r\n public onTouched() {\r\n\r\n this._onTouched();\r\n this.stateChanges.next();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this._propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj: any): void {\r\n this.clear();\r\n this.value = obj;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n public onContainerClick(event: MouseEvent): void {\r\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\r\n this.focus();\r\n }\r\n }\r\n\r\n public setDescribedByIds(ids: string[]): void {\r\n this.describedBy = ids.join(' ');\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const selection: any = control.value;\r\n if (typeof selection === 'string') {\r\n return {incorrect: true};\r\n }\r\n return null;\r\n }\r\n\r\n private _propagateChange = (_: any) => {\r\n };\r\n\r\n private _onTouched = () => {\r\n };\r\n\r\n private setValue(value: any) {\r\n if (value !== this._selectedEntity) {\r\n this._selectedEntity = value;\r\n this.valueChange.emit(value);\r\n this._propagateChange(this._selectedEntity);\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n}\r\n","<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\r\n [placeholder]=\"placeholder\" matInput>\r\n<mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\r\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\r\n [displayWith]=\"dataSource.onDisplayEntity\">\r\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\r\n <mat-spinner diameter=\"50\"></mat-spinner>\r\n </mat-option>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <mat-option *ngFor=\"let entity of filteredEntities\" [value]=\"entity\">\r\n {{dataSource.onDisplayEntity(entity)}}\r\n </mat-option>\r\n </ng-container>\r\n</mat-autocomplete>\r\n","import {\r\n Component,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {EntitySelectDataSource} from \"@meshmakers/shared-services\";\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormControl, NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n NgControl,\r\n ValidationErrors,\r\n Validator\r\n} from \"@angular/forms\";\r\nimport {Subject} from \"rxjs\";\r\nimport {MatInput} from \"@angular/material/input\";\r\nimport {FocusMonitor} from \"@angular/cdk/a11y\";\r\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\r\nimport {debounceTime, filter, switchMap, tap} from \"rxjs/operators\";\r\nimport {MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent} from \"@angular/material/autocomplete\";\r\nimport {MatFormFieldControl} from \"@angular/material/form-field\";\r\nimport {COMMA, ENTER} from \"@angular/cdk/keycodes\";\r\n\r\n@Component({\r\n selector: 'ia-multiple-entity-select',\r\n templateUrl: './ia-multiple-entity-select-input.component.html',\r\n styleUrls: ['./ia-multiple-entity-select-input.component.css'],\r\n host: {\r\n '[id]': 'id',\r\n '[attr.aria-describedby]': 'describedBy'\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => IaMultipleEntitySelectInput),\r\n multi: true\r\n },\r\n {\r\n provide: MatFormFieldControl,\r\n useExisting: IaMultipleEntitySelectInput\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => IaMultipleEntitySelectInput),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class IaMultipleEntitySelectInput implements OnInit, OnDestroy, DoCheck, ControlValueAccessor, MatFormFieldControl<Array<any>>, Validator {\r\n\r\n private static nextId = 0;\r\n public readonly valuesFormControl: FormControl;\r\n public readonly searchFormControl: FormControl;\r\n public isLoading: boolean;\r\n public filteredEntities: any[] = [];\r\n public ngControl: NgControl;\r\n public errorState: boolean;\r\n public focused: boolean;\r\n public readonly stateChanges = new Subject<void>();\r\n @HostBinding() public readonly id = `ia-multiple-entity-select-${IaMultipleEntitySelectInput.nextId++}`;\r\n public valuesChange: EventEmitter<Array<any>> = new EventEmitter<Array<any>>();\r\n private _selectedEntities: Array<any>;\r\n @ViewChild('input') private inputField: MatInput;\r\n @HostBinding('attr.aria-describedby') private describedBy = '';\r\n private activatedValue: any;\r\n readonly separatorKeysCodes = [ENTER, COMMA] as const;\r\n\r\n constructor(public elRef: ElementRef, private injector: Injector, private fm: FocusMonitor) {\r\n\r\n this.valuesFormControl = new FormControl();\r\n this.searchFormControl = new FormControl();\r\n this.isLoading = false;\r\n this._disabled = false;\r\n this.focused = false;\r\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\r\n this.focused = !!origin;\r\n this.stateChanges.next();\r\n });\r\n }\r\n\r\n private _dataSource: EntitySelectDataSource<any>;\r\n\r\n public get dataSource() {\r\n return this._dataSource;\r\n }\r\n\r\n @Input()\r\n public set dataSource(value: EntitySelectDataSource<any>) {\r\n this._dataSource = value;\r\n }\r\n\r\n private _disabled = false;\r\n\r\n @Input()\r\n public get disabled() {\r\n return this._disabled;\r\n }\r\n\r\n public set disabled(dis) {\r\n this._disabled = coerceBooleanProperty(dis);\r\n this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();\r\n this.stateChanges.next();\r\n }\r\n\r\n private _placeholder: string;\r\n\r\n @Input()\r\n public get placeholder() {\r\n return this._placeholder;\r\n }\r\n\r\n public set placeholder(plh) {\r\n this._placeholder = plh;\r\n this.stateChanges.next();\r\n }\r\n\r\n private _required = false;\r\n\r\n @Input()\r\n public get required() {\r\n return this._required;\r\n }\r\n\r\n public set required(req) {\r\n this._required = coerceBooleanProperty(req);\r\n this.inputField.required = this._required;\r\n this.stateChanges.next();\r\n }\r\n\r\n private _prefix: string;\r\n\r\n @Input()\r\n public get prefix(): string {\r\n return this._prefix;\r\n }\r\n\r\n public set prefix(value: string) {\r\n if (value !== this._prefix) {\r\n this._prefix = value;\r\n }\r\n }\r\n\r\n public get value(): Array<any> {\r\n return this._selectedEntities;\r\n }\r\n\r\n public set value(value: Array<any>) {\r\n if (value !== this._selectedEntities) {\r\n this.valuesFormControl.setValue(value);\r\n this.setValue(value);\r\n }\r\n }\r\n\r\n public get empty() {\r\n let n = this.valuesFormControl.value;\r\n return !!!n;\r\n }\r\n\r\n @HostBinding('class.floating')\r\n public get shouldLabelFloat() {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n ngOnInit() {\r\n this.ngControl = this.injector.get(NgControl, null);\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n // If prefix defined, usually this is used for a code scanner.\r\n // The goal is to select the entity in direct way.\r\n if (this._prefix) {\r\n this.searchFormControl\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n filter(value => typeof value === 'string'),\r\n filter(value => value.startsWith(this._prefix)),\r\n tap(() => this.isLoading = true),\r\n switchMap(value => this._dataSource.onFilter(value.replace(this._prefix, \"\").trim()))\r\n )\r\n .subscribe(resultSet => {\r\n\r\n this.filteredEntities = resultSet.list;\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n // This is the search functionality when search by human.\r\n this.searchFormControl\r\n .valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n tap(() => this.filteredEntities = []),\r\n filter(value => typeof value === 'string'),\r\n filter(value => value.toString().length >= 3),\r\n tap(() => this.isLoading = true),\r\n switchMap(value => this._dataSource.onFilter(value))\r\n )\r\n .subscribe(resultSet => {\r\n\r\n const resultList = new Array<any>();\r\n resultSet.list.forEach(value1 => {\r\n if (!this.value.find(value2 =>\r\n this._dataSource.getIdEntity(value2) === this._dataSource.getIdEntity(value1)))\r\n {\r\n resultList.push(value1);\r\n }\r\n })\r\n\r\n this.filteredEntities = resultList;\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this.fm.stopMonitoring(this.elRef.nativeElement);\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.ngControl) {\r\n this.errorState = this.ngControl.invalid && this.ngControl.touched;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n public clear() {\r\n this.filteredEntities = [];\r\n this.searchFormControl.reset(null);\r\n }\r\n\r\n public focus() {\r\n this.elRef.nativeElement.querySelector('input').focus();\r\n }\r\n\r\n public onEntitySelected(event: MatAutocompleteSelectedEvent) {\r\n\r\n let list = this.value;\r\n if (!list) {\r\n list = new Array<any>();\r\n }\r\n list.push(event.option.value);\r\n this.value = list;\r\n\r\n this.filteredEntities = [];\r\n this.searchFormControl.setValue(null);\r\n this.valuesFormControl.updateValueAndValidity();\r\n }\r\n\r\n public onEntityActivated(event: MatAutocompleteActivatedEvent) {\r\n this.activatedValue = event.option?.value;\r\n }\r\n\r\n public onEntityClosed() {\r\n\r\n if (this.activatedValue) {\r\n\r\n this.value = this.activatedValue;\r\n this.activatedValue = null;\r\n\r\n }\r\n }\r\n\r\n public reset() {\r\n this.value = new Array<any>();\r\n }\r\n\r\n public onFocusOut() {\r\n\r\n // if (this.filteredEntities.length === 1) {\r\n // this.activatedValue = this.filteredEntities[0];\r\n // this.value = this.filteredEntities[0];\r\n // }\r\n }\r\n\r\n public onTouched() {\r\n\r\n this._onTouched();\r\n this.stateChanges.next();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this._propagateChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public writeValue(obj: any): void {\r\n this.clear();\r\n this.value = obj;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n public onContainerClick(event: MouseEvent): void {\r\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\r\n this.focus();\r\n }\r\n }\r\n\r\n public setDescribedByIds(ids: string[]): void {\r\n this.describedBy = ids.join(' ');\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const selection: any = control.value;\r\n if (typeof selection === 'string') {\r\n return {incorrect: true};\r\n }\r\n return null;\r\n }\r\n\r\n remove(value: any) {\r\n const list = this.value;\r\n const index = list.indexOf(value);\r\n if (index !== -1) {\r\n list.splice(index, 1);\r\n }\r\n this.valuesFormControl.updateValueAndValidity();\r\n }\r\n\r\n private _propagateChange = (_: Array<any>) => {\r\n };\r\n\r\n private _onTouched = () => {\r\n };\r\n\r\n private setValue(values: Array<any>) {\r\n if (values !== this._selectedEntities) {\r\n this._selectedEntities = values;\r\n this.valuesChange.emit(values);\r\n this._propagateChange(this._selectedEntities);\r\n this.stateChanges.next();\r\n }\r\n }\r\n}\r\n","<mat-chip-grid #list>\r\n <mat-chip-row *ngFor=\"let entity of valuesFormControl.value\"\r\n (removed)=\"remove(entity)\"\r\n [editable]=\"false\"\r\n [aria-description]=\"'press enter to edit ' + dataSource.onDisplayEntity(entity)\">\r\n {{dataSource.onDisplayEntity(entity)}}\r\n <button matChipRemove [attr.aria-label]=\"'remove ' + dataSource.onDisplayEntity(entity)\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n <input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"list\"\r\n matChipInputAddOnBlur=\"true\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [placeholder]=\"placeholder\" matInput>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\r\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\r\n [displayWith]=\"dataSource.onDisplayEntity\">\r\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\r\n <mat-spinner diameter=\"50\"></mat-spinner>\r\n </mat-option>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <mat-option *ngFor=\"let entity of filteredEntities\" [value]=\"entity\">\r\n {{dataSource.onDisplayEntity(entity)}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n</mat-chip-grid>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {IaNotificationBarComponent} from './ia-notification-bar/ia-notification-bar.component';\r\nimport {MatToolbarModule} from \"@angular/material/toolbar\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatSnackBarModule} from \"@angular/material/snack-bar\";\r\nimport {MatDialogModule} from \"@angular/material/dialog\";\r\nimport {MessageDetailsComponent} from \"./message-details/message-details.component\";\r\nimport {IaAutocompleteInput} from \"./ia-autocomplete-input/ia-autocomplete-input\";\r\nimport {MatAutocompleteModule} from \"@angular/material/autocomplete\";\r\nimport {MatInputModule} from \"@angular/material/input\";\r\nimport {MatProgressSpinnerModule} from \"@angular/material/progress-spinner\";\r\nimport {ReactiveFormsModule} from \"@angular/forms\";\r\nimport {IaEntitySelectInput} from './ia-entity-select-input/ia-entity-select-input.component';\r\nimport {\r\n IaMultipleEntitySelectInput\r\n} from './ia-multiple-entity-select-input/ia-multiple-entity-select-input.component';\r\nimport {MatChipsModule} from \"@angular/material/chips\";\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n IaNotificationBarComponent,\r\n MessageDetailsComponent,\r\n IaAutocompleteInput,\r\n IaEntitySelectInput,\r\n IaMultipleEntitySelectInput\r\n ],\r\n exports: [\r\n IaNotificationBarComponent,\r\n IaAutocompleteInput,\r\n IaEntitySelectInput,\r\n IaMultipleEntitySelectInput\r\n ],\r\n entryComponents: [\r\n MessageDetailsComponent,\r\n IaAutocompleteInput,\r\n IaEntitySelectInput,\r\n IaMultipleEntitySelectInput\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatSnackBarModule,\r\n MatDialogModule,\r\n MatAutocompleteModule,\r\n MatInputModule,\r\n MatProgressSpinnerModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n ReactiveFormsModule\r\n ]\r\n})\r\nexport class IaSharedUIModule {\r\n}\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA} from \"@angular/material/dialog\";\r\nimport {Observable} from \"rxjs\";\r\nimport {ProgressValue} from \"../shared/progressValue\";\r\n\r\nexport interface ProgressWindowData {\r\n title: string;\r\n isDeterminate: boolean;\r\n progress: Observable<ProgressValue>;\r\n isCancelOperationAvailable: boolean;\r\n cancelOperation: () => void;\r\n}\r\n\r\nexport interface ProgressWindowResult {\r\n}\r\n\r\n@Component({\r\n selector: 'lib-progress-window',\r\n templateUrl: './progress-window.component.html',\r\n styleUrls: ['./progress-window.component.css']\r\n})\r\nexport class ProgressWindowComponent implements OnInit {\r\n\r\n public statusText: string;\r\n public progressValue: number;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: ProgressWindowData) {\r\n\r\n this.statusText = null;\r\n\r\n data.progress.subscribe(value => {\r\n this.statusText = value.statusText;\r\n this.progressValue = value.progressValue;\r\n })\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onCancelClick() {\r\n\r\n this.data.cancelOperation();\r\n\r\n }\r\n}\r\n","<h1 mat-dialog-title>{{data.title}}</h1>\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\">\r\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\r\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\r\n <p>{{statusText}}</p>\r\n </div>\r\n</div>\r\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\r\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\r\n</div>\r\n","import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject} from \"rxjs\";\r\nimport {ProgressValue} from \"../shared/progressValue\";\r\nimport {MatDialog, MatDialogRef} from \"@angular/material/dialog\";\r\nimport {\r\n ProgressWindowComponent,\r\n ProgressWindowData,\r\n ProgressWindowResult\r\n} from \"../progress-window/progress-window.component\";\r\n\r\n@Injectable()\r\nexport class ProgressNotifierService {\r\n\r\n private readonly _currentProgressValue: BehaviorSubject<ProgressValue>;\r\n private currentDialogRef: MatDialogRef<ProgressWindowComponent, ProgressWindowResult>;\r\n\r\n constructor(private dialog: MatDialog) {\r\n this._currentProgressValue = new BehaviorSubject<ProgressValue>(null);\r\n this.isCanceled = false;\r\n }\r\n\r\n private _isCanceled: boolean;\r\n\r\n get isCanceled(): boolean {\r\n return this._isCanceled;\r\n }\r\n\r\n set isCanceled(value) {\r\n this._isCanceled = value;\r\n }\r\n\r\n start(title: string, isDeterminate: boolean, isCancelOperationAvailable: boolean) {\r\n\r\n this.isCanceled = false;\r\n this.reportProgressDeterminate(0, 100, \"Working...\");\r\n\r\n this.currentDialogRef = this.dialog.open<ProgressWindowComponent, ProgressWindowData, ProgressWindowResult>(ProgressWindowComponent, {\r\n width: '50vw',\r\n maxWidth: '50vw',\r\n data: <ProgressWindowData>{\r\n title: title,\r\n isDeterminate: isDeterminate,\r\n progress: this._currentProgressValue.asObservable(),\r\n isCancelOperationAvailable: isCancelOperationAvailable,\r\n cancelOperation: () => {\r\n this.reportProgressIndeterminate(\"Canceling operation...\");\r\n this.isCanceled = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n reportProgressDeterminate(progressCurrent: number, progressMax: number, statusText: string) {\r\n\r\n const progressPercentage = (progressMax / 100) * progressCurrent;\r\n\r\n this._currentProgressValue.next(<ProgressValue>{\r\n statusText: statusText,\r\n progressValue: progressPercentage\r\n });\r\n }\r\n\r\n reportProgressIndeterminate(statusText: string) {\r\n this._currentProgressValue.next(<ProgressValue>{\r\n statusText: statusText,\r\n progressValue: 0\r\n });\r\n }\r\n\r\n complete() {\r\n this.currentDialogRef.close();\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProgressWindowComponent} from './progress-window/progress-window.component';\r\nimport {MatDialogModule} from \"@angular/material/dialog\";\r\nimport {FlexLayoutModule} from \"@angular/flex-layout\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatProgressBarModule} from \"@angular/material/progress-bar\";\r\nimport {ProgressNotifierService} from \"./services/progress-notifier.service\";\r\n\r\n\r\n@NgModule({\r\n declarations: [ProgressWindowComponent],\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n MatProgressBarModule\r\n ]\r\n})\r\nexport class ProgressNotifierModule {\r\n static forRoot(): ModuleWithProviders<ProgressNotifierModule> {\r\n return {\r\n ngModule: ProgressNotifierModule,\r\n providers: [\r\n ProgressNotifierService\r\n ]\r\n }\r\n }\r\n}\r\n","export enum ButtonTypes {\r\n Ok,\r\n Cancel,\r\n Yes,\r\n No\r\n}\r\n\r\nexport enum DialogType {\r\n YesNo = 0,\r\n YesNoCancel = 1,\r\n OkCancel = 2,\r\n Ok = 3\r\n}\r\n\r\nexport interface ConfirmationWindowData {\r\n title: string;\r\n message: string;\r\n dialogType: DialogType;\r\n}\r\n\r\nexport interface ConfirmationWindowResult {\r\n result: ButtonTypes;\r\n}\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from \"@angular/material/dialog\";\r\nimport {ButtonTypes, ConfirmationWindowData, ConfirmationWindowResult, DialogType} from \"../shared/confirmation\";\r\n\r\n@Component({\r\n selector: 'lib-shared-ui-confirmation-window',\r\n templateUrl: './confirmation-window.component.html',\r\n styleUrls: ['./confirmation-window.component.css']\r\n})\r\nexport class ConfirmationWindowComponent implements OnInit {\r\n\r\n button1Text: string;\r\n button1Result: ButtonTypes;\r\n button2Text: string;\r\n button2Result: ButtonTypes;\r\n button3Text: string;\r\n button3Result: ButtonTypes;\r\n\r\n constructor(private dialogRef: MatDialogRef<ConfirmationWindowComponent>, @Inject(MAT_DIALOG_DATA) public data: ConfirmationWindowData) {\r\n\r\n if (data.dialogType === DialogType.OkCancel) {\r\n this.button1Text = \"OK\";\r\n this.button1Result = ButtonTypes.Ok;\r\n this.button2Text = \"Cancel\";\r\n this.button2Result = ButtonTypes.Cancel;\r\n\r\n } else if (data.dialogType === DialogType.YesNoCancel) {\r\n this.button1Text = \"Yes\";\r\n this.button1Result = ButtonTypes.Yes;\r\n this.button2Text = \"No\";\r\n this.button2Result = ButtonTypes.No;\r\n this.button3Text = \"Cancel\";\r\n this.button3Result = ButtonTypes.Cancel;\r\n } else if (data.dialogType === DialogType.Ok) {\r\n this.button1Text = \"OK\";\r\n this.button1Result = ButtonTypes.Ok;\r\n } else {\r\n this.button1Text = \"Yes\";\r\n this.button1Result = ButtonTypes.Yes;\r\n this.button2Text = \"No\";\r\n this.button2Result = ButtonTypes.No;\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n onButton1() {\r\n\r\n this.dialogRef.close(<ConfirmationWindowResult>{\r\n result: this.button1Result\r\n });\r\n }\r\n\r\n onButton2() {\r\n this.dialogRef.close(<ConfirmationWindowResult>{\r\n result: this.button2Result\r\n });\r\n }\r\n\r\n onButton3() {\r\n this.dialogRef.close(<ConfirmationWindowResult>{\r\n result: this.button3Result\r\n });\r\n }\r\n}\r\n","<h1 mat-dialog-title>{{data.title}}</h1>\r\n<div mat-dialog-content>{{data.message}}</div>\r\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\r\n <button (click)=\"onButton1()\" color=\"primary\" mat-button>{{button1Text}}</button>\r\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-button>{{button2Text}}</button>\r\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-button>{{button3Text}}</button>\r\n</div>\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable} from \"rxjs\";\r\nimport {MatDialog} from \"@angular/material/dialog\";\r\nimport {ConfirmationWindowComponent} from \"../confirmation-window/confirmation-window.component\";\r\nimport {map} from \"rxjs/operators\";\r\nimport {ButtonTypes, ConfirmationWindowData, ConfirmationWindowResult, DialogType} from \"../shared/confirmation\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfirmationService {\r\n\r\n constructor(private dialog: MatDialog) {\r\n }\r\n\r\n showYesNoConfirmationDialog(title: string, message: string): Observable<boolean> {\r\n\r\n const dialogRef = this.dialog.open<ConfirmationWindowComponent, ConfirmationWindowData, ConfirmationWindowResult>(ConfirmationWindowComponent, {\r\n width: '50vw',\r\n maxWidth: '50vw',\r\n data: <ConfirmationWindowData>{\r\n title: title,\r\n message: message,\r\n dialogType: DialogType.YesNo\r\n }\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Yes));\r\n }\r\n\r\n showYesNoCancelConfirmationDialog(title: string, message: string): Observable<ConfirmationWindowResult> {\r\n\r\n const dialogRef = this.dialog.open<ConfirmationWindowComponent, ConfirmationWindowData, ConfirmationWindowResult>(ConfirmationWindowComponent, {\r\n width: '50vw',\r\n maxWidth: '50vw',\r\n data: <ConfirmationWindowData>{\r\n title: title,\r\n message: message,\r\n dialogType: DialogType.YesNoCancel\r\n }\r\n });\r\n\r\n return dialogRef.afterClosed();\r\n }\r\n\r\n showOkCancelConfirmationDialog(title: string, message: string): Observable<boolean> {\r\n\r\n const dialogRef = this.dialog.open<ConfirmationWindowComponent, ConfirmationWindowData, ConfirmationWindowResult>(ConfirmationWindowComponent, {\r\n width: '50vw',\r\n maxWidth: '50vw',\r\n data: <ConfirmationWindowData>{\r\n title: title,\r\n message: message,\r\n dialogType: DialogType.OkCancel\r\n }\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Ok));\r\n }\r\n\r\n showOkDialog(title: string, message: string): Observable<boolean> {\r\n\r\n const dialogRef = this.dialog.open<ConfirmationWindowComponent, ConfirmationWindowData, ConfirmationWindowResult>(ConfirmationWindowComponent, {\r\n width: '50vw',\r\n maxWidth: '50vw',\r\n data: <ConfirmationWindowData>{\r\n title: title,\r\n message: message,\r\n dialogType: DialogType.Ok\r\n }\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Ok));\r\n }\r\n\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ConfirmationWindowComponent} from './confirmation-window/confirmation-window.component';\r\nimport {ConfirmationService} from \"./services/confirmation.service\";\r\nimport {MatDialogModule} from \"@angular/material/dialog\";\r\nimport {FlexLayoutModule} from \"@angular/flex-layout\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\n\r\n\r\n@NgModule({\r\n declarations: [ConfirmationWindowComponent],\r\n imports: [\r\n CommonModule,\r\n MatDialogModule,\r\n FlexLayoutModule,\r\n MatButtonModule,\r\n ]\r\n})\r\nexport class ConfirmationDialogModule {\r\n static forRoot(): ModuleWithProviders<ConfirmationDialogModule> {\r\n return {\r\n ngModule: ConfirmationDialogModule,\r\n providers: [\r\n ConfirmationService\r\n ]\r\n }\r\n }\r\n}\r\n","import {AbstractControl, ValidatorFn, Validators} from \"@angular/forms\";\r\n\r\nexport declare interface CompareValueFn<TValue> {\r\n (value: TValue): boolean;\r\n}\r\n\r\nfunction isEmptyInputValue(value: any): boolean {\r\n // we don't check for string here so it also works with arrays\r\n return value == null || value.length === 0;\r\n}\r\n\r\nexport class CommonValidators {\r\n public static phoneNumber(): ValidatorFn {\r\n return Validators.pattern('^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\\\s\\\\./0-9]*$');\r\n }\r\n\r\n public static httpUri(): ValidatorFn {\r\n return Validators.pattern(\"^(http:\\\\/\\\\/|https:\\\\/\\\\/)([a-zA-Z0-9-_]+\\\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+(\\\\.[a-zA-Z]{2,11}?)*(:[0-9]{2,5}){0,1}\\\\/{0,1}$\");\r\n }\r\n\r\n public static conditionalRequired<TCompareValue>(sourceControlName: string, sourceValueCompareExpression: CompareValueFn<TCompareValue>): ValidatorFn {\r\n\r\n return (control: AbstractControl) => {\r\n if (control.parent && sourceValueCompareExpression(control.parent.get(sourceControlName).value)) {\r\n return isEmptyInputValue(control.value) ? {'required': true} : null;\r\n }\r\n }\r\n }\r\n\r\n public static dependentControls(controlNames: string[]): ValidatorFn {\r\n return (control: AbstractControl) => {\r\n controlNames.forEach(controlName => {\r\n control.parent?.get(controlName).updateValueAndValidity();\r\n });\r\n return null;\r\n }\r\n }\r\n\r\n\r\n}\r\n","import {FormGroup} from \"@angular/forms\";\r\nimport {IsoDateTime} from \"@meshmakers/shared-services\";\r\n\r\nexport abstract class AbstractDetailsComponent<TEntity> {\r\n\r\n public loading: boolean;\r\n protected entity: TEntity;\r\n\r\n protected constructor() {\r\n this.loading = true;\r\n this.entity = null;\r\n }\r\n\r\n protected _ownerForm: FormGroup;\r\n\r\n public get ownerForm(): FormGroup {\r\n return this._ownerForm;\r\n }\r\n\r\n public get isLoaded(): boolean {\r\n return this.entity !== null;\r\n }\r\n\r\n public hasError = (controlName: string, errorName: string) => {\r\n return this.ownerForm.controls[controlName].hasError(errorName);\r\n };\r\n\r\n public hasFormError = (errorName: string) => {\r\n return this.ownerForm.hasError(errorName);\r\n };\r\n\r\n public updateDateTime(controlName: string) {\r\n this.ownerForm.get(controlName).setValue(IsoDateTime.utcToLocalDateTimeIso(IsoDateTime.currentUtcDateTimeIso()));\r\n }\r\n\r\n public copyInputMessage(inputElement) {\r\n inputElement.select();\r\n document.execCommand('copy');\r\n inputElement.setSelectionRange(0, 0);\r\n }\r\n\r\n protected onProgressStarting() {\r\n this.loading = true;\r\n this.ownerForm.disable();\r\n this.ownerForm.updateValueAndValidity();\r\n }\r\n\r\n protected onProgressCompleted() {\r\n this.ownerForm.enable();\r\n this.loading = false;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of shared-ui\r\n */\r\n\r\nexport * from './lib/ia-shared-ui/ia-shared-ui.module';\r\nexport * from './lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component';\r\nexport * from './lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input';\r\nexport * from './lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component';\r\nexport * from './lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component';\r\n\r\nexport * from './lib/progress-notifier/progress-notifier.module';\r\nexport * from './lib/progress-notifier/services/progress-notifier.service';\r\n\r\nexport * from './lib/confirmation-dialog/confirmation-dialog.module';\r\nexport * from './lib/confirmation-dialog/services/confirmation.service';\r\nexport * from './lib/confirmation-dialog/shared/confirmation';\r\n\r\nexport * from './lib/shared/commonValidators';\r\nexport * from './lib/shared/abstractDetailsComponent'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3","i4","i7","i9","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"meshmakers-shared-ui.mjs","sources":["../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/message-details/message-details.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/message-details/message-details.component.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.html","../../../../projects/meshmakers/shared-ui/src/lib/ia-shared-ui/ia-shared-ui.module.ts","../../../../projects/meshmakers/shared-ui/src/lib/progress-notifier/progress-window/progress-window.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/progress-notifier/progress-window/progress-window.component.html","../../../../projects/meshmakers/shared-ui/src/lib/progress-notifier/services/progress-notifier.service.ts","../../../../projects/meshmakers/shared-ui/src/lib/progress-notifier/progress-notifier.module.ts","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/shared/confirmation.ts","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/confirmation-window/confirmation-window.component.ts","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/confirmation-window/confirmation-window.component.html","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/services/confirmation.service.ts","../../../../projects/meshmakers/shared-ui/src/lib/confirmation-dialog/confirmation-dialog.module.ts","../../../../projects/meshmakers/shared-ui/src/lib/shared/commonValidators.ts","../../../../projects/meshmakers/shared-ui/src/lib/shared/abstractDetailsComponent.ts","../../../../projects/meshmakers/shared-ui/src/public-api.ts","../../../../projects/meshmakers/shared-ui/src/meshmakers-shared-ui.ts"],"sourcesContent":["import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from \"@angular/material/dialog\";\nimport {ErrorMessage} from \"@meshmakers/shared-services\";\n\n@Component({\n selector: 'app-message-details',\n templateUrl: './message-details.component.html',\n styleUrls: ['./message-details.component.css']\n})\nexport class MessageDetailsComponent implements OnInit {\n\n errorMessage: ErrorMessage;\n\n\n constructor(public dialogRef: MatDialogRef<MessageDetailsComponent>, @Inject(MAT_DIALOG_DATA) public data: any) {\n this.errorMessage = data.errorMessage;\n }\n\n ngOnInit() {\n }\n\n}\n","<mat-dialog-content>\n\n <h2>{{errorMessage.title}}</h2>\n <p>{{errorMessage.message}}</p>\n\n\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button color=\"primary\" mat-dialog-close mat-raised-button>OK</button>\n</mat-dialog-actions>\n","import {Component, OnInit} from '@angular/core';\nimport {ErrorMessage, MessageService} from \"@meshmakers/shared-services\";\nimport {MatDialog} from \"@angular/material/dialog\";\nimport {MessageDetailsComponent} from \"../message-details/message-details.component\";\n\n@Component({\n selector: 'ia-notification-bar',\n templateUrl: './ia-notification-bar.component.html',\n styleUrls: ['./ia-notification-bar.component.css']\n})\nexport class IaNotificationBarComponent implements OnInit {\n\n public errorMessage: ErrorMessage | null;\n\n constructor(private messageService: MessageService, private dialog: MatDialog) {\n this.errorMessage = null;\n }\n\n ngOnInit() {\n\n this.messageService.getLatestErrorMessage().subscribe(value => {\n this.errorMessage = value;\n });\n }\n\n onHide() {\n this.errorMessage = null;\n }\n\n onShowDetails() {\n this.dialog.open(MessageDetailsComponent, {\n data: {\n errorMessage: this.errorMessage\n }\n });\n }\n}\n","<mat-toolbar [hidden]=\"!errorMessage\" color=\"warn\">\n <a (click)=\"onShowDetails()\"><span class=\"mat-small\"><u>{{ errorMessage?.title }}</u></span></a>\n\n <!-- This fills the remaining space of the current row -->\n <span class=\"notification-fill-remaining-space\"></span>\n\n <button (click)=\"onHide()\" color=\"warn\" mat-raised-button><i class=\"pi pi-angle-double-up\"></i></button>\n</mat-toolbar>\n","import {\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport {MatFormFieldControl} from \"@angular/material/form-field\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidationErrors,\n Validator\n} from \"@angular/forms\";\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\nimport {debounceTime, filter, map, switchMap, tap} from \"rxjs/operators\";\nimport {MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent} from \"@angular/material/autocomplete\";\nimport {MatInput} from \"@angular/material/input\";\nimport {of, Subject} from \"rxjs\";\nimport {FocusMonitor} from \"@angular/cdk/a11y\";\nimport {AutoCompleteDataSource} from \"@meshmakers/shared-services\";\n\n@Component({\n selector: 'ia-autocomplete',\n templateUrl: './ia-autocomplete-input.html',\n styleUrls: ['./ia-autocomplete-input.css'],\n host: {\n '[id]': 'id',\n '[attr.aria-describedby]': 'describedBy'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IaAutocompleteInput),\n multi: true\n },\n {\n provide: MatFormFieldControl,\n useExisting: IaAutocompleteInput\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IaAutocompleteInput),\n multi: true\n }\n ]\n})\nexport class IaAutocompleteInput implements OnInit, OnDestroy, DoCheck, ControlValueAccessor, MatFormFieldControl<any>, Validator {\n\n\n private static nextId = 0;\n public readonly searchFormControl: FormControl;\n public isLoading: boolean;\n public filteredStrings: string[] = [];\n public ngControl: NgControl | null;\n public errorState: boolean;\n public focused: boolean;\n public readonly stateChanges = new Subject<void>();\n @HostBinding() public readonly id = `ia-autocomplete-${IaAutocompleteInput.nextId++}`;\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\n private _selectedString: string | null;\n @ViewChild('input') private inputField: MatInput | null;\n @HostBinding('attr.aria-describedby') private describedBy = '';\n private activatedValue: any;\n\n constructor(public elRef: ElementRef, private injector: Injector, private fm: FocusMonitor) {\n this.ngControl = null;\n this.errorState = false;\n this._selectedString = null;\n this.inputField = null;\n this._dataSource = null;\n this._placeholder = \"\";\n this._prefix = \"\";\n\n this.searchFormControl = new FormControl();\n this.isLoading = false;\n this._disabled = false;\n this.focused = false;\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n }\n\n private _dataSource: AutoCompleteDataSource | null;\n\n public get dataSource(): AutoCompleteDataSource | null {\n return this._dataSource;\n }\n\n @Input()\n public set dataSource(value: AutoCompleteDataSource | null) {\n this._dataSource = value;\n }\n\n private _disabled = false;\n\n @Input()\n public get disabled() {\n return this._disabled;\n }\n\n public set disabled(dis) {\n this._disabled = coerceBooleanProperty(dis);\n this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();\n this.stateChanges.next();\n }\n\n private _placeholder: string;\n\n @Input()\n public get placeholder(): string {\n return this._placeholder;\n }\n\n public set placeholder(plh: string) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n\n private _required = false;\n\n @Input()\n public get required() {\n return this._required;\n }\n\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n if (this.inputField) {\n this.inputField.required = this._required;\n }\n this.stateChanges.next();\n }\n\n private _prefix: string;\n\n @Input()\n public get prefix(): string {\n return this._prefix;\n }\n\n public set prefix(value: string) {\n if (value !== this._prefix) {\n this._prefix = value;\n }\n }\n\n public get value(): any {\n return this._selectedString;\n }\n\n public set value(value: any) {\n if (value !== this._selectedString) {\n this._selectedString = value;\n this.searchFormControl.setValue(value);\n this.valueChange.emit(value);\n this._propagateChange(this._selectedString);\n this.stateChanges.next();\n }\n }\n\n public get empty() {\n let n = this.searchFormControl.value;\n return !n;\n }\n\n @HostBinding('class.floating')\n public get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n ngOnInit() {\n this.ngControl = this.injector.get(NgControl, null);\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n // If prefix defined, usually this is used for a code scanner.\n // The goal is to select the entity in direct way.\n if (this._prefix) {\n this.searchFormControl\n .valueChanges\n .pipe(\n debounceTime(300),\n filter(value => typeof value === 'string'),\n filter(value => value.startsWith(this._prefix)),\n tap(() => this.value = null),\n tap(() => this.isLoading = true),\n map(value => this._dataSource?.onPreprocessSearchString(value) ?? \"\"),\n switchMap(value => this._dataSource?.onFilter(value) ?? of(null))\n )\n .subscribe(resultSet => {\n\n if (resultSet && resultSet.list) {\n if (resultSet.list.length === 1) {\n this.value = resultSet.list[0];\n } else {\n this.filteredStrings = resultSet.list;\n this.searchFormControl.patchValue(resultSet.searchTerm, {emitEvent: false});\n }\n }\n this.isLoading = false;\n\n });\n }\n\n // This is the search functionality when search by human.\n this.searchFormControl\n .valueChanges\n .pipe(\n debounceTime(300),\n tap(_ => {\n this.filteredStrings = [];\n }\n ),\n filter(value => value != null && value.toString().length >= 1),\n tap(() => this.isLoading = true),\n map(value => this._dataSource?.onPreprocessSearchString(value)),\n tap(value => this.value = value),\n switchMap(value => this._dataSource?.onFilter(value!) ?? of(null))\n )\n .subscribe(resultSet => {\n if (resultSet && resultSet.list) {\n this.filteredStrings = resultSet.list;\n this.searchFormControl.patchValue(resultSet.searchTerm, {emitEvent: false});\n }\n this.isLoading = false;\n }\n );\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) ?? false;\n this.stateChanges.next();\n }\n }\n\n public clear() {\n this.filteredStrings = [];\n this.searchFormControl.reset(null);\n }\n\n public focus() {\n this.elRef.nativeElement.querySelector('input').focus();\n }\n\n public onOptionSelected(event: MatAutocompleteSelectedEvent) {\n this.value = event.option.value;\n this.filteredStrings = [];\n }\n\n public onOptionActivated(event: MatAutocompleteActivatedEvent) {\n this.activatedValue = event.option?.value;\n }\n\n public onAutoCompleteClosed() {\n\n if (this.activatedValue) {\n\n this.value = this.activatedValue;\n this.activatedValue = null;\n\n }\n }\n\n public reset() {\n this.value = null;\n }\n\n public onFocusOut() {\n\n if (this.filteredStrings.length === 1) {\n this.activatedValue = this.filteredStrings[0];\n this.value = this.filteredStrings[0];\n }\n }\n\n public onTouched() {\n\n this._onTouched();\n this.stateChanges.next();\n }\n\n public registerOnChange(fn: any): void {\n this._propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public writeValue(obj: any): void {\n this.clear();\n this.value = obj;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onContainerClick(event: MouseEvent): void {\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\n this.focus();\n }\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(' ');\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const selection: any = control.value;\n if (typeof selection === 'string' && (<string>selection).length < 1) {\n return {incorrect: true};\n }\n return null;\n }\n\n private _propagateChange = (_: any) => {\n };\n\n private _onTouched = () => {\n };\n}\n","<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\"\n (closed)=\"onAutoCompleteClosed()\" (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let str of filteredStrings\" [value]=\"str\">\n {{str}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n","import {\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidationErrors,\n Validator\n} from \"@angular/forms\";\nimport {MatFormFieldControl} from \"@angular/material/form-field\";\nimport {MatInput} from \"@angular/material/input\";\nimport {EntitySelectDataSource} from \"@meshmakers/shared-services\";\nimport {of, Subject} from \"rxjs\";\nimport {FocusMonitor} from \"@angular/cdk/a11y\";\nimport {debounceTime, filter, switchMap, tap} from \"rxjs/operators\";\nimport {MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent} from \"@angular/material/autocomplete\";\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\n\n@Component({\n selector: 'ia-entity-select',\n templateUrl: './ia-entity-select-input.component.html',\n styleUrls: ['./ia-entity-select-input.component.css'],\n host: {\n '[id]': 'id',\n '[attr.aria-describedby]': 'describedBy'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IaEntitySelectInput),\n multi: true\n },\n {\n provide: MatFormFieldControl,\n useExisting: IaEntitySelectInput\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IaEntitySelectInput),\n multi: true\n }\n ]\n})\nexport class IaEntitySelectInput implements OnInit, OnDestroy, DoCheck, ControlValueAccessor, MatFormFieldControl<any>, Validator {\n\n private static nextId = 0;\n public readonly searchFormControl: FormControl;\n public isLoading: boolean;\n public filteredEntities: any[] = [];\n public ngControl: NgControl | null;\n public errorState: boolean;\n public focused: boolean;\n public readonly stateChanges = new Subject<void>();\n @HostBinding() public readonly id = `ia-entity-select-${IaEntitySelectInput.nextId++}`;\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\n private _selectedEntity: any;\n @ViewChild('input') private readonly inputField: MatInput | null;\n @HostBinding('attr.aria-describedby') private describedBy = '';\n private activatedValue: any;\n\n constructor(public elRef: ElementRef, private injector: Injector, private fm: FocusMonitor) {\n this.ngControl = null;\n this.errorState = false;\n this.inputField = null;\n this._dataSource = null;\n this._placeholder = \"\";\n this._prefix = \"\";\n\n this.searchFormControl = new FormControl();\n this.isLoading = false;\n this._disabled = false;\n this.focused = false;\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n }\n\n private _dataSource: EntitySelectDataSource<any> | null;\n\n public get dataSource(): EntitySelectDataSource<any> | null {\n return this._dataSource;\n }\n\n @Input()\n public set dataSource(value: EntitySelectDataSource<any> | null) {\n this._dataSource = value;\n }\n\n private _disabled = false;\n\n @Input()\n public get disabled() {\n return this._disabled;\n }\n\n public set disabled(dis) {\n this._disabled = coerceBooleanProperty(dis);\n this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();\n this.stateChanges.next();\n }\n\n private _placeholder: string;\n\n @Input()\n public get placeholder() {\n return this._placeholder;\n }\n\n public set placeholder(plh) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n\n private _required = false;\n\n @Input()\n public get required() {\n return this._required;\n }\n\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n if (this.inputField) {\n this.inputField.required = this._required;\n }\n this.stateChanges.next();\n }\n\n private _prefix: string;\n\n @Input()\n public get prefix(): string {\n return this._prefix;\n }\n\n public set prefix(value: string) {\n if (value !== this._prefix) {\n this._prefix = value;\n }\n }\n\n public get value(): any {\n return this._selectedEntity;\n }\n\n public set value(value: any) {\n if (value !== this._selectedEntity) {\n this.searchFormControl.setValue(value);\n this.setValue(value);\n }\n }\n\n public get empty() {\n let n = this.searchFormControl.value;\n return !n;\n }\n\n @HostBinding('class.floating')\n public get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n ngOnInit() {\n this.ngControl = this.injector.get(NgControl, null);\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n // If prefix defined, usually this is used for a code scanner.\n // The goal is to select the entity in direct way.\n if (this._prefix) {\n this.searchFormControl\n .valueChanges\n .pipe(\n debounceTime(300),\n filter(value => typeof value === 'string'),\n filter(value => value.startsWith(this._prefix)),\n tap(() => this.value = null),\n tap(() => this.isLoading = true),\n switchMap(value => this._dataSource?.onFilter(value.replace(this._prefix, \"\").trim()) ?? of(null))\n )\n .subscribe(resultSet => {\n if (resultSet && resultSet.list) {\n if (resultSet.list.length === 1) {\n this.value = resultSet.list[0];\n } else {\n this.filteredEntities = resultSet.list;\n }\n }\n this.isLoading = false;\n });\n }\n\n // This is the search functionality when search by human.\n this.searchFormControl\n .valueChanges\n .pipe(\n debounceTime(300),\n tap(() => this.filteredEntities = []),\n filter(value => typeof value === 'string'),\n tap(() => this.setValue(null)),\n filter(value => value.toString().length >= 3),\n tap(() => this.isLoading = true),\n switchMap(value => this._dataSource?.onFilter(value) ?? of(null))\n )\n .subscribe(resultSet => {\n if (resultSet && resultSet.list) {\n this.filteredEntities = resultSet.list;\n }\n this.isLoading = false;\n }\n );\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) ?? false;\n this.stateChanges.next();\n }\n }\n\n public clear() {\n this.filteredEntities = [];\n this.searchFormControl.reset(null);\n }\n\n public focus() {\n this.elRef.nativeElement.querySelector('input').focus();\n }\n\n public onEntitySelected(event: MatAutocompleteSelectedEvent) {\n this.value = event.option.value;\n this.filteredEntities = [];\n }\n\n public onEntityActivated(event: MatAutocompleteActivatedEvent) {\n this.activatedValue = event.option?.value;\n }\n\n public onEntityClosed() {\n\n if (this.activatedValue) {\n\n this.value = this.activatedValue;\n this.activatedValue = null;\n\n }\n }\n\n public reset() {\n this.value = null;\n }\n\n public onFocusOut() {\n\n if (this.filteredEntities.length === 1) {\n this.activatedValue = this.filteredEntities[0];\n this.value = this.filteredEntities[0];\n }\n }\n\n public onTouched() {\n\n this._onTouched();\n this.stateChanges.next();\n }\n\n public registerOnChange(fn: any): void {\n this._propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public writeValue(obj: any): void {\n this.clear();\n this.value = obj;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onContainerClick(event: MouseEvent): void {\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\n this.focus();\n }\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(' ');\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const selection: any = control.value;\n if (typeof selection === 'string') {\n return {incorrect: true};\n }\n return null;\n }\n\n private _propagateChange = (_: any) => {\n };\n\n private _onTouched = () => {\n };\n\n private setValue(value: any) {\n if (value !== this._selectedEntity) {\n this._selectedEntity = value;\n this.valueChange.emit(value);\n this._propagateChange(this._selectedEntity);\n this.stateChanges.next();\n }\n }\n\n}\n","<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\n [displayWith]=\"dataSource?.onDisplayEntity ?? null\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let entity of filteredEntities\" [value]=\"entity\">\n {{dataSource?.onDisplayEntity(entity) ?? null}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n","import {\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport {EntitySelectDataSource} from \"@meshmakers/shared-services\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl, NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidationErrors,\n Validator\n} from \"@angular/forms\";\nimport {of, Subject} from \"rxjs\";\nimport {MatInput} from \"@angular/material/input\";\nimport {FocusMonitor} from \"@angular/cdk/a11y\";\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\nimport {debounceTime, filter, switchMap, tap} from \"rxjs/operators\";\nimport {MatAutocompleteActivatedEvent, MatAutocompleteSelectedEvent} from \"@angular/material/autocomplete\";\nimport {MatFormFieldControl} from \"@angular/material/form-field\";\nimport {COMMA, ENTER} from \"@angular/cdk/keycodes\";\n\n@Component({\n selector: 'ia-multiple-entity-select',\n templateUrl: './ia-multiple-entity-select-input.component.html',\n styleUrls: ['./ia-multiple-entity-select-input.component.css'],\n host: {\n '[id]': 'id',\n '[attr.aria-describedby]': 'describedBy'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IaMultipleEntitySelectInput),\n multi: true\n },\n {\n provide: MatFormFieldControl,\n useExisting: IaMultipleEntitySelectInput\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IaMultipleEntitySelectInput),\n multi: true\n }\n ]\n})\nexport class IaMultipleEntitySelectInput implements OnInit, OnDestroy, DoCheck, ControlValueAccessor, MatFormFieldControl<Array<any>>, Validator {\n\n private static nextId = 0;\n public readonly valuesFormControl: FormControl;\n public readonly searchFormControl: FormControl;\n public isLoading: boolean;\n public filteredEntities: any[] = [];\n public ngControl: NgControl | null;\n public errorState: boolean;\n public focused: boolean;\n public readonly stateChanges = new Subject<void>();\n @HostBinding() public readonly id = `ia-multiple-entity-select-${IaMultipleEntitySelectInput.nextId++}`;\n public valuesChange: EventEmitter<Array<any>> = new EventEmitter<Array<any>>();\n private _selectedEntities: Array<any> | null;\n @ViewChild('input') private readonly inputField: MatInput | null;\n @HostBinding('attr.aria-describedby') private describedBy = '';\n private activatedValue: any;\n readonly separatorKeysCodes = [ENTER, COMMA] as const;\n\n constructor(public elRef: ElementRef, private injector: Injector, private fm: FocusMonitor) {\n this.ngControl = null;\n this.errorState = false;\n this.inputField = null;\n this._dataSource = null;\n this._placeholder = \"\";\n this._prefix = \"\";\n this._selectedEntities = null;\n\n this.valuesFormControl = new FormControl();\n this.searchFormControl = new FormControl();\n this.isLoading = false;\n this._disabled = false;\n this.focused = false;\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n }\n\n private _dataSource: EntitySelectDataSource<any> | null;\n\n public get dataSource(): EntitySelectDataSource<any> | null {\n return this._dataSource;\n }\n\n @Input()\n public set dataSource(value: EntitySelectDataSource<any> | null) {\n this._dataSource = value;\n }\n\n private _disabled = false;\n\n @Input()\n public get disabled() {\n return this._disabled;\n }\n\n public set disabled(dis) {\n this._disabled = coerceBooleanProperty(dis);\n this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();\n this.stateChanges.next();\n }\n\n private _placeholder: string;\n\n @Input()\n public get placeholder() {\n return this._placeholder;\n }\n\n public set placeholder(plh) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n\n private _required = false;\n\n @Input()\n public get required() {\n return this._required;\n }\n\n public set required(req) {\n this._required = coerceBooleanProperty(req);\n if (this.inputField) {\n this.inputField.required = this._required;\n }\n this.stateChanges.next();\n }\n\n private _prefix: string;\n\n @Input()\n public get prefix(): string {\n return this._prefix;\n }\n\n public set prefix(value: string) {\n if (value !== this._prefix) {\n this._prefix = value;\n }\n }\n\n public get value(): Array<any> | null {\n return this._selectedEntities;\n }\n\n public set value(value: Array<any> | null) {\n if (value !== this._selectedEntities) {\n this.valuesFormControl.setValue(value);\n this.setValue(value);\n }\n }\n\n public get empty() {\n let n = this.valuesFormControl.value;\n return !n;\n }\n\n @HostBinding('class.floating')\n public get shouldLabelFloat() {\n return this.focused || !this.empty;\n }\n\n ngOnInit() {\n this.ngControl = this.injector.get(NgControl, null);\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n\n // If prefix defined, usually this is used for a code scanner.\n // The goal is to select the entity in direct way.\n if (this._prefix) {\n this.searchFormControl\n .valueChanges\n .pipe(\n debounceTime(300),\n filter(value => typeof value === 'string'),\n filter(value => value.startsWith(this._prefix)),\n tap(() => this.isLoading = true),\n switchMap(value => this._dataSource?.onFilter(value.replace(this._prefix, \"\").trim()) ?? of(null))\n )\n .subscribe(resultSet => {\n\n if (resultSet && resultSet.list) {\n this.filteredEntities = resultSet.list;\n }\n this.isLoading = false;\n });\n }\n\n // This is the search functionality when search by human.\n this.searchFormControl\n .valueChanges\n .pipe(\n debounceTime(300),\n tap(() => this.filteredEntities = []),\n filter(value => typeof value === 'string'),\n filter(value => value.toString().length >= 3),\n tap(() => this.isLoading = true),\n switchMap(value => this._dataSource?.onFilter(value) ?? of(null))\n )\n .subscribe(resultSet => {\n\n const resultList = new Array<any>();\n\n if (resultSet && resultSet.list) {\n\n resultSet.list.forEach(value1 => {\n if (!this.value?.find(value2 =>\n this._dataSource?.getIdEntity(value2) === this._dataSource?.getIdEntity(value1))) {\n resultList.push(value1);\n }\n })\n }\n\n this.filteredEntities = resultList;\n this.isLoading = false;\n }\n );\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = (this.ngControl.invalid && this.ngControl.touched) ?? false;\n this.stateChanges.next();\n }\n }\n\n public clear() {\n this.filteredEntities = [];\n this.searchFormControl.reset(null);\n }\n\n public focus() {\n this.elRef.nativeElement.querySelector('input').focus();\n }\n\n public onEntitySelected(event: MatAutocompleteSelectedEvent) {\n\n let list = this.value;\n if (!list) {\n list = new Array<any>();\n }\n list.push(event.option.value);\n this.value = list;\n\n this.filteredEntities = [];\n this.searchFormControl.setValue(null);\n this.valuesFormControl.updateValueAndValidity();\n }\n\n public onEntityActivated(event: MatAutocompleteActivatedEvent) {\n this.activatedValue = event.option?.value;\n }\n\n public onEntityClosed() {\n\n if (this.activatedValue) {\n\n this.value = this.activatedValue;\n this.activatedValue = null;\n\n }\n }\n\n public reset() {\n this.value = new Array<any>();\n }\n\n public onFocusOut() {\n\n // if (this.filteredEntities.length === 1) {\n // this.activatedValue = this.filteredEntities[0];\n // this.value = this.filteredEntities[0];\n // }\n }\n\n public onTouched() {\n\n this._onTouched();\n this.stateChanges.next();\n }\n\n public registerOnChange(fn: any): void {\n this._propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public writeValue(obj: any): void {\n this.clear();\n this.value = obj;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onContainerClick(event: MouseEvent): void {\n if ((event.target as Element).tagName.toLowerCase() != 'input') {\n this.focus();\n }\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(' ');\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const selection: any = control.value;\n if (typeof selection === 'string') {\n return {incorrect: true};\n }\n return null;\n }\n\n remove(value: any) {\n const list = this.value;\n if (list) {\n const index = list.indexOf(value);\n if (index !== -1) {\n list.splice(index, 1);\n }\n this.valuesFormControl.updateValueAndValidity();\n }\n }\n\n private _propagateChange = (_: Array<any>) => {\n };\n\n private _onTouched = () => {\n };\n\n private setValue(values: Array<any> | null) {\n if (values !== this._selectedEntities) {\n this._selectedEntities = values;\n this.valuesChange.emit(values ?? []);\n this._propagateChange(this._selectedEntities ?? []);\n this.stateChanges.next();\n }\n }\n}\n","<mat-chip-grid #list>\n <mat-chip-row *ngFor=\"let entity of valuesFormControl.value\"\n (removed)=\"remove(entity)\"\n [editable]=\"false\"\n [aria-description]=\"'press enter to edit ' + dataSource?.onDisplayEntity(entity) ?? null\">\n {{dataSource?.onDisplayEntity(entity) ?? null}}\n <button matChipRemove [attr.aria-label]=\"'remove ' + dataSource?.onDisplayEntity(entity) ?? null\">\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n <input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"list\"\n matChipInputAddOnBlur=\"true\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [placeholder]=\"placeholder\" matInput>\n <mat-autocomplete #auto=\"matAutocomplete\" (closed)=\"onEntityClosed()\"\n (optionActivated)=\"onEntityActivated($event)\" (optionSelected)=\"onEntitySelected($event)\"\n [displayWith]=\"dataSource?.onDisplayEntity ?? null\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let entity of filteredEntities\" [value]=\"entity\">\n {{dataSource?.onDisplayEntity(entity) ?? null}}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n</mat-chip-grid>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {IaNotificationBarComponent} from './ia-notification-bar/ia-notification-bar.component';\nimport {MatToolbarModule} from \"@angular/material/toolbar\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatSnackBarModule} from \"@angular/material/snack-bar\";\nimport {MatDialogModule} from \"@angular/material/dialog\";\nimport {MessageDetailsComponent} from \"./message-details/message-details.component\";\nimport {IaAutocompleteInput} from \"./ia-autocomplete-input/ia-autocomplete-input\";\nimport {MatAutocompleteModule} from \"@angular/material/autocomplete\";\nimport {MatInputModule} from \"@angular/material/input\";\nimport {MatProgressSpinnerModule} from \"@angular/material/progress-spinner\";\nimport {ReactiveFormsModule} from \"@angular/forms\";\nimport {IaEntitySelectInput} from './ia-entity-select-input/ia-entity-select-input.component';\nimport {\n IaMultipleEntitySelectInput\n} from './ia-multiple-entity-select-input/ia-multiple-entity-select-input.component';\nimport {MatChipsModule} from \"@angular/material/chips\";\nimport {MatIconModule} from \"@angular/material/icon\";\n\n\n@NgModule({\n declarations: [\n IaNotificationBarComponent,\n MessageDetailsComponent,\n IaAutocompleteInput,\n IaEntitySelectInput,\n IaMultipleEntitySelectInput\n ],\n exports: [\n IaNotificationBarComponent,\n IaAutocompleteInput,\n IaEntitySelectInput,\n IaMultipleEntitySelectInput\n ],\n entryComponents: [\n MessageDetailsComponent,\n IaAutocompleteInput,\n IaEntitySelectInput,\n IaMultipleEntitySelectInput\n ],\n imports: [\n CommonModule,\n MatToolbarModule,\n MatButtonModule,\n MatSnackBarModule,\n MatDialogModule,\n MatAutocompleteModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatChipsModule,\n MatIconModule,\n ReactiveFormsModule\n ]\n})\nexport class IaSharedUIModule {\n}\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA} from \"@angular/material/dialog\";\nimport {Observable} from \"rxjs\";\nimport {ProgressValue} from \"../shared/progressValue\";\n\nexport interface ProgressWindowData {\n title: string;\n isDeterminate: boolean;\n progress: Observable<ProgressValue>;\n isCancelOperationAvailable: boolean;\n cancelOperation: () => void;\n}\n\nexport interface ProgressWindowResult {\n}\n\n@Component({\n selector: 'lib-progress-window',\n templateUrl: './progress-window.component.html',\n styleUrls: ['./progress-window.component.css']\n})\nexport class ProgressWindowComponent implements OnInit {\n\n public statusText: string | null;\n public progressValue: number;\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: ProgressWindowData) {\n\n this.statusText = null;\n this.progressValue = 0;\n\n data.progress.subscribe(value => {\n this.statusText = value.statusText;\n this.progressValue = value.progressValue;\n })\n\n }\n\n ngOnInit(): void {\n }\n\n onCancelClick() {\n\n this.data.cancelOperation();\n\n }\n}\n","<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>\n <div fxLayout=\"column\">\n <mat-progress-bar *ngIf=\"data.isDeterminate\" [value]=\"progressValue\" mode=\"determinate\"></mat-progress-bar>\n <mat-progress-bar *ngIf=\"!data.isDeterminate\" mode=\"indeterminate\"></mat-progress-bar>\n <p>{{statusText}}</p>\n </div>\n</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onCancelClick()\" *ngIf=\"data.isCancelOperationAvailable\" mat-button>Cancel</button>\n</div>\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from \"rxjs\";\nimport {ProgressValue} from \"../shared/progressValue\";\nimport {MatDialog, MatDialogRef} from \"@angular/material/dialog\";\nimport {\n ProgressWindowComponent,\n ProgressWindowData,\n ProgressWindowResult\n} from \"../progress-window/progress-window.component\";\n\n@Injectable()\nexport class ProgressNotifierService {\n\n private readonly _currentProgressValue: BehaviorSubject<ProgressValue | null>;\n private currentDialogRef: MatDialogRef<ProgressWindowComponent, ProgressWindowResult> | null;\n\n constructor(private dialog: MatDialog) {\n this._currentProgressValue = new BehaviorSubject<ProgressValue | null>(null);\n this.currentDialogRef = null;\n this._isCanceled = false;\n }\n\n private _isCanceled: boolean;\n\n get isCanceled(): boolean {\n return this._isCanceled;\n }\n\n set isCanceled(value) {\n this._isCanceled = value;\n }\n\n start(title: string, isDeterminate: boolean, isCancelOperationAvailable: boolean) {\n\n this.isCanceled = false;\n this.reportProgressDeterminate(0, 100, \"Working...\");\n\n this.currentDialogRef = this.dialog.open<ProgressWindowComponent, ProgressWindowData, ProgressWindowResult>(ProgressWindowComponent, {\n width: '50vw',\n maxWidth: '50vw',\n data: <ProgressWindowData>{\n title: title,\n isDeterminate: isDeterminate,\n progress: this._currentProgressValue.asObservable(),\n isCancelOperationAvailable: isCancelOperationAvailable,\n cancelOperation: () => {\n this.reportProgressIndeterminate(\"Canceling operation...\");\n this.isCanceled = true;\n }\n }\n });\n }\n\n reportProgressDeterminate(progressCurrent: number, progressMax: number, statusText: string) {\n\n const progressPercentage = (progressMax / 100) * progressCurrent;\n\n this._currentProgressValue.next(<ProgressValue>{\n statusText: statusText,\n progressValue: progressPercentage\n });\n }\n\n reportProgressIndeterminate(statusText: string) {\n this._currentProgressValue.next(<ProgressValue>{\n statusText: statusText,\n progressValue: 0\n });\n }\n\n complete() {\n this.currentDialogRef?.close();\n }\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ProgressWindowComponent} from './progress-window/progress-window.component';\nimport {MatDialogModule} from \"@angular/material/dialog\";\nimport {FlexLayoutModule} from \"@angular/flex-layout\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatProgressBarModule} from \"@angular/material/progress-bar\";\nimport {ProgressNotifierService} from \"./services/progress-notifier.service\";\n\n\n@NgModule({\n declarations: [ProgressWindowComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n FlexLayoutModule,\n MatButtonModule,\n MatProgressBarModule\n ]\n})\nexport class ProgressNotifierModule {\n static forRoot(): ModuleWithProviders<ProgressNotifierModule> {\n return {\n ngModule: ProgressNotifierModule,\n providers: [\n ProgressNotifierService\n ]\n }\n }\n}\n","export enum ButtonTypes {\n Ok,\n Cancel,\n Yes,\n No\n}\n\nexport enum DialogType {\n YesNo = 0,\n YesNoCancel = 1,\n OkCancel = 2,\n Ok = 3\n}\n\nexport interface ConfirmationWindowData {\n title: string;\n message: string;\n dialogType: DialogType;\n}\n\nexport interface ConfirmationWindowResult {\n result: ButtonTypes;\n}\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_DIALOG_DATA, MatDialogRef} from \"@angular/material/dialog\";\nimport {ButtonTypes, ConfirmationWindowData, ConfirmationWindowResult, DialogType} from \"../shared/confirmation\";\n\n@Component({\n selector: 'lib-shared-ui-confirmation-window',\n templateUrl: './confirmation-window.component.html',\n styleUrls: ['./confirmation-window.component.css']\n})\nexport class ConfirmationWindowComponent implements OnInit {\n\n button1Text: string;\n button1Result: ButtonTypes;\n button2Text: string | null;\n button2Result: ButtonTypes | null;\n button3Text: string | null;\n button3Result: ButtonTypes | null;\n\n constructor(private dialogRef: MatDialogRef<ConfirmationWindowComponent>, @Inject(MAT_DIALOG_DATA) public data: ConfirmationWindowData) {\n\n this.button2Text = null;\n this.button2Result = null;\n this.button3Text = null;\n this.button3Result = null;\n\n if (data.dialogType === DialogType.OkCancel) {\n this.button1Text = \"OK\";\n this.button1Result = ButtonTypes.Ok;\n this.button2Text = \"Cancel\";\n this.button2Result = ButtonTypes.Cancel;\n\n } else if (data.dialogType === DialogType.YesNoCancel) {\n this.button1Text = \"Yes\";\n this.button1Result = ButtonTypes.Yes;\n this.button2Text = \"No\";\n this.button2Result = ButtonTypes.No;\n this.button3Text = \"Cancel\";\n this.button3Result = ButtonTypes.Cancel;\n } else if (data.dialogType === DialogType.Ok) {\n this.button1Text = \"OK\";\n this.button1Result = ButtonTypes.Ok;\n } else {\n this.button1Text = \"Yes\";\n this.button1Result = ButtonTypes.Yes;\n this.button2Text = \"No\";\n this.button2Result = ButtonTypes.No;\n }\n\n }\n\n ngOnInit(): void {\n\n }\n\n onButton1() {\n\n this.dialogRef.close(<ConfirmationWindowResult>{\n result: this.button1Result\n });\n }\n\n onButton2() {\n this.dialogRef.close(<ConfirmationWindowResult>{\n result: this.button2Result\n });\n }\n\n onButton3() {\n this.dialogRef.close(<ConfirmationWindowResult>{\n result: this.button3Result\n });\n }\n}\n","<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>{{data.message}}</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onButton1()\" color=\"primary\" mat-button>{{button1Text}}</button>\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-button>{{button2Text}}</button>\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-button>{{button3Text}}</button>\n</div>\n","import {Injectable} from '@angular/core';\nimport {Observable} from \"rxjs\";\nimport {MatDialog} from \"@angular/material/dialog\";\nimport {ConfirmationWindowComponent} from \"../confirmation-window/confirmation-window.component\";\nimport {map} from \"rxjs/operators\";\nimport {ButtonTypes, ConfirmationWindowData, ConfirmationWindowResult, DialogType} from \"../shared/confirmation\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmationService {\n\n constructor(private dialog: MatDialog) {\n }\n\n showYesNoConfirmationDialog(title: string, message: string): Observable<boolean> {\n\n const dialogRef = this.dialog.open<ConfirmationWindowComponent, ConfirmationWindowData, ConfirmationWindowResult>(ConfirmationWindowComponent, {\n width: '50vw',\n maxWidth: '50vw',\n data: <ConfirmationWindowData>{\n title: title,\n message: message,\n dialogType: DialogType.YesNo\n }\n });\n\n return dialogRef.afterClosed().pipe(map(value => value?.result == ButtonTypes.Yes));\n }\n\n showYesNoCancelConfirmationDialog(title: string, message: string): Observable<ConfirmationWindowResult | undefined> {\n\n const dialogRef = this.dialog.open<ConfirmationWindowComponent, ConfirmationWindowData, ConfirmationWindowResult>(ConfirmationWindowComponent, {\n width: '50vw',\n maxWidth: '50vw',\n data: <ConfirmationWindowData>{\n title: title,\n message: message,\n dialogType: DialogType.YesNoCancel\n }\n });\n\n return dialogRef.afterClosed();\n }\n\n showOkCancelConfirmationDialog(title: string, message: string): Observable<boolean> {\n\n const dialogRef = this.dialog.open<ConfirmationWindowComponent, ConfirmationWindowData, ConfirmationWindowResult>(ConfirmationWindowComponent, {\n width: '50vw',\n maxWidth: '50vw',\n data: <ConfirmationWindowData>{\n title: title,\n message: message,\n dialogType: DialogType.OkCancel\n }\n });\n\n return dialogRef.afterClosed().pipe(map(value => value?.result == ButtonTypes.Ok));\n }\n\n showOkDialog(title: string, message: string): Observable<boolean> {\n\n const dialogRef = this.dialog.open<ConfirmationWindowComponent, ConfirmationWindowData, ConfirmationWindowResult>(ConfirmationWindowComponent, {\n width: '50vw',\n maxWidth: '50vw',\n data: <ConfirmationWindowData>{\n title: title,\n message: message,\n dialogType: DialogType.Ok\n }\n });\n\n return dialogRef.afterClosed().pipe(map(value => value?.result == ButtonTypes.Ok));\n }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ConfirmationWindowComponent} from './confirmation-window/confirmation-window.component';\nimport {ConfirmationService} from \"./services/confirmation.service\";\nimport {MatDialogModule} from \"@angular/material/dialog\";\nimport {FlexLayoutModule} from \"@angular/flex-layout\";\nimport {MatButtonModule} from \"@angular/material/button\";\n\n\n@NgModule({\n declarations: [ConfirmationWindowComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n FlexLayoutModule,\n MatButtonModule,\n ]\n})\nexport class ConfirmationDialogModule {\n static forRoot(): ModuleWithProviders<ConfirmationDialogModule> {\n return {\n ngModule: ConfirmationDialogModule,\n providers: [\n ConfirmationService\n ]\n }\n }\n}\n","import {AbstractControl, ValidatorFn, Validators} from \"@angular/forms\";\n\nexport declare interface CompareValueFn<TValue> {\n (value: TValue): boolean;\n}\n\nfunction isEmptyInputValue(value: any): boolean {\n // we don't check for string here so it also works with arrays\n return value == null || value.length === 0;\n}\n\nexport class CommonValidators {\n public static phoneNumber(): ValidatorFn {\n return Validators.pattern('^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\\\s\\\\./0-9]*$');\n }\n\n public static httpUri(): ValidatorFn {\n return Validators.pattern(\"^(http:\\\\/\\\\/|https:\\\\/\\\\/)([a-zA-Z0-9-_]+\\\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+(\\\\.[a-zA-Z]{2,11}?)*(:[0-9]{2,5}){0,1}\\\\/{0,1}$\");\n }\n\n public static ensureSameValue(sourceControlName: string): ValidatorFn {\n\n return (control: AbstractControl) => {\n const value = control.value;\n return value === control.parent?.get(sourceControlName)?.value ? null : {notSame: true}\n }\n }\n\n public static conditionalRequired<TCompareValue>(sourceControlName: string, sourceValueCompareExpression: CompareValueFn<TCompareValue>): ValidatorFn {\n\n return (control: AbstractControl) => {\n if (control.parent && sourceValueCompareExpression(control.parent.get(sourceControlName)?.value)) {\n return isEmptyInputValue(control.value) ? {'required': true} : null;\n }\n return null;\n }\n }\n\n public static dependentControls(controlNames: string[]): ValidatorFn {\n return (control: AbstractControl) => {\n controlNames.forEach(controlName => {\n control.parent?.get(controlName)?.updateValueAndValidity();\n });\n return null;\n }\n }\n\n\n}\n","import {FormGroup} from \"@angular/forms\";\nimport {IsoDateTime} from \"@meshmakers/shared-services\";\n\nexport abstract class AbstractDetailsComponent<TEntity> {\n\n public loading: boolean;\n protected entity: TEntity | null;\n\n protected constructor(formGroup: FormGroup) {\n this.loading = true;\n this.entity = null;\n this._ownerForm = formGroup;\n }\n\n private _ownerForm: FormGroup;\n\n public get ownerForm(): FormGroup {\n return this._ownerForm;\n }\n\n public get isLoaded(): boolean {\n return this.entity !== null;\n }\n\n public hasError = (controlName: string, errorName: string) => {\n return this.ownerForm?.controls[controlName].hasError(errorName);\n };\n\n public hasFormError = (errorName: string) => {\n return this.ownerForm?.hasError(errorName);\n };\n\n public updateDateTime(controlName: string) {\n this.ownerForm?.get(controlName)?.setValue(IsoDateTime.utcToLocalDateTimeIso(IsoDateTime.currentUtcDateTimeIso()));\n }\n\n public copyInputMessage(inputElement : any) {\n inputElement.select();\n document.execCommand('copy');\n inputElement.setSelectionRange(0, 0);\n }\n\n protected onProgressStarting() {\n this.loading = true;\n this.ownerForm?.disable();\n this.ownerForm?.updateValueAndValidity();\n }\n\n protected onProgressCompleted() {\n this.ownerForm?.enable();\n this.loading = false;\n }\n}\n","/*\n * Public API Surface of shared-ui\n */\n\nexport * from './lib/ia-shared-ui/ia-shared-ui.module';\nexport * from './lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component';\nexport * from './lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input';\nexport * from './lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component';\nexport * from './lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component';\n\nexport * from './lib/progress-notifier/progress-notifier.module';\nexport * from './lib/progress-notifier/services/progress-notifier.service';\n\nexport * from './lib/confirmation-dialog/confirmation-dialog.module';\nexport * from './lib/confirmation-dialog/services/confirmation.service';\nexport * from './lib/confirmation-dialog/shared/confirmation';\n\nexport * from './lib/shared/commonValidators';\nexport * from './lib/shared/abstractDetailsComponent'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3","i4","i7","i9","i5"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASa,uBAAuB,CAAA;IAKlC,WAAmB,CAAA,SAAgD,EAAkC,IAAS,EAAA;QAA3F,IAAS,CAAA,SAAA,GAAT,SAAS,CAAuC;QAAkC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;AAC5G,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;KACvC;IAED,QAAQ,GAAA;KACP;;AAVU,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,8CAK2C,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AALjF,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,2DCTpC,kQAUA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,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,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDDa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,kQAAA,EAAA,CAAA;;0BASuC,MAAM;2BAAC,eAAe,CAAA;;;MEJjF,0BAA0B,CAAA;IAIrC,WAAoB,CAAA,cAA8B,EAAU,MAAiB,EAAA;QAAzD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;AAC3E,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;IAED,QAAQ,GAAA;QAEN,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,KAAK,IAAG;AAC5D,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACxC,YAAA,IAAI,EAAE;gBACJ,YAAY,EAAE,IAAI,CAAC,YAAY;AAChC,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;;uHAzBU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,2DCVvC,oaAQA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,oaAAA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,CAAA;;;MEmDpB,mBAAmB,CAAA;AAkB9B,IAAA,WAAA,CAAmB,KAAiB,EAAU,QAAkB,EAAU,EAAgB,EAAA;QAAvE,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAAU,IAAE,CAAA,EAAA,GAAF,EAAE,CAAc;QAZnF,IAAe,CAAA,eAAA,GAAa,EAAE,CAAC;AAItB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpB,QAAA,IAAA,CAAA,EAAE,GAAG,CAAmB,gBAAA,EAAA,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;AAC/E,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;QAGlB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QAiCvD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAyBlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AA6MlB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAM,KAAI;AACtC,SAAC,CAAC;QAEM,IAAU,CAAA,UAAA,GAAG,MAAK;AAC1B,SAAC,CAAC;AAvQA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAElB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACvD,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;AAID,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAED,IACW,UAAU,CAAC,KAAoC,EAAA;AACxD,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAID,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAW,QAAQ,CAAC,GAAG,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;AACpF,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAED,IAAW,WAAW,CAAC,GAAW,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAW,QAAQ,CAAC,GAAG,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAED,IAAW,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,SAAA;KACF;AAED,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;IAED,IAAW,KAAK,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACF;AAED,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QACrC,OAAO,CAAC,CAAC,CAAC;KACX;AAED,IAAA,IACW,gBAAgB,GAAA;QACzB,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KACpC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;;;QAID,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,iBAAiB;iBACnB,YAAY;iBACZ,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAC1C,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAC5B,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAChC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EACrE,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAClE;iBACA,SAAS,CAAC,SAAS,IAAG;AAErB,gBAAA,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;AAC/B,oBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC/B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC;AACtC,wBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;AAC7E,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAEzB,aAAC,CAAC,CAAC;AACN,SAAA;;AAGD,QAAA,IAAI,CAAC,iBAAiB;aACnB,YAAY;aACZ,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,CAAC,IAAG;AACJ,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC5B,SAAC,CACF,EACD,MAAM,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAC9D,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAChC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAC/D,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAChC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CACnE;aACA,SAAS,CAAC,SAAS,IAAG;AACnB,YAAA,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;AAC/B,gBAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC;AACtC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;AAC7E,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CACF,CAAC;KACL;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KAClD;IAED,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC;AAC9E,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACF;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACpC;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;KACzD;AAEM,IAAA,gBAAgB,CAAC,KAAmC,EAAA;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;AAEM,IAAA,iBAAiB,CAAC,KAAoC,EAAA;QAC3D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;KAC3C;IAEM,oBAAoB,GAAA;QAEzB,IAAI,IAAI,CAAC,cAAc,EAAE;AAEvB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAE5B,SAAA;KACF;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;IAEM,UAAU,GAAA;AAEf,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACtC,SAAA;KACF;IAEM,SAAS,GAAA;QAEd,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAEM,IAAA,UAAU,CAAC,GAAQ,EAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;KAClB;AAEM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QACvC,IAAK,KAAK,CAAC,MAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE;YAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;AAEM,IAAA,iBAAiB,CAAC,GAAa,EAAA;QACpC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClC;AAED,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAC/B,QAAA,MAAM,SAAS,GAAQ,OAAO,CAAC,KAAK,CAAC;QACrC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAa,SAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACnE,YAAA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;AAjRc,mBAAM,CAAA,MAAA,GAAG,CAAC,CAAC;gHAHf,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAjBnB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,WAAW,EAAE,mBAAmB;AACjC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvDH,6rBAcA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD2Ca,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAzB/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGrB,IAAA,EAAA;AACJ,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,yBAAyB,EAAE,aAAa;qBACzC,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAqB,mBAAA;AACjC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,6rBAAA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,CAAA;qJAa8B,EAAE,EAAA,CAAA;sBAAhC,WAAW;gBAGgB,UAAU,EAAA,CAAA;sBAArC,SAAS;uBAAC,OAAO,CAAA;gBAC4B,WAAW,EAAA,CAAA;sBAAxD,WAAW;uBAAC,uBAAuB,CAAA;gBA6BzB,UAAU,EAAA,CAAA;sBADpB,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAcK,WAAW,EAAA,CAAA;sBADrB,KAAK;gBAaK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAgBK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBA+BK,gBAAgB,EAAA,CAAA;sBAD1B,WAAW;uBAAC,gBAAgB,CAAA;;;MExHlB,mBAAmB,CAAA;AAiB9B,IAAA,WAAA,CAAmB,KAAiB,EAAU,QAAkB,EAAU,EAAgB,EAAA;QAAvE,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAAU,IAAE,CAAA,EAAA,GAAF,EAAE,CAAc;QAZnF,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;AAIpB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpB,QAAA,IAAA,CAAA,EAAE,GAAG,CAAoB,iBAAA,EAAA,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;AAChF,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;QAGlB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QAgCvD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAyBlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAkMlB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAM,KAAI;AACtC,SAAC,CAAC;QAEM,IAAU,CAAA,UAAA,GAAG,MAAK;AAC1B,SAAC,CAAC;AA3PA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAElB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACvD,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;AAID,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAED,IACW,UAAU,CAAC,KAAyC,EAAA;AAC7D,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAID,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAW,QAAQ,CAAC,GAAG,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;AACpF,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAED,IAAW,WAAW,CAAC,GAAG,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAW,QAAQ,CAAC,GAAG,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAED,IAAW,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,SAAA;KACF;AAED,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;IAED,IAAW,KAAK,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;KACF;AAED,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QACrC,OAAO,CAAC,CAAC,CAAC;KACX;AAED,IAAA,IACW,gBAAgB,GAAA;QACzB,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KACpC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;;;QAID,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,iBAAiB;iBACnB,YAAY;AACZ,iBAAA,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAC1C,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAC5B,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAChC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CACnG;iBACA,SAAS,CAAC,SAAS,IAAG;AACrB,gBAAA,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;AAC/B,oBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC/B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC;AACxC,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,aAAC,CAAC,CAAC;AACN,SAAA;;AAGD,QAAA,IAAI,CAAC,iBAAiB;aACnB,YAAY;AACZ,aAAA,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EACrC,MAAM,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAC1C,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC9B,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAC7C,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAChC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAClE;aACA,SAAS,CAAC,SAAS,IAAG;AACnB,YAAA,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;AAC/B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC;AACxC,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CACF,CAAC;KACL;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KAClD;IAED,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC;AAC9E,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACF;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACpC;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;KACzD;AAEM,IAAA,gBAAgB,CAAC,KAAmC,EAAA;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;AAEM,IAAA,iBAAiB,CAAC,KAAoC,EAAA;QAC3D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;KAC3C;IAEM,cAAc,GAAA;QAEnB,IAAI,IAAI,CAAC,cAAc,EAAE;AAEvB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAE5B,SAAA;KACF;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;IAEM,UAAU,GAAA;AAEf,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACvC,SAAA;KACF;IAEM,SAAS,GAAA;QAEd,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAEM,IAAA,UAAU,CAAC,GAAQ,EAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;KAClB;AAEM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QACvC,IAAK,KAAK,CAAC,MAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE;YAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;AAEM,IAAA,iBAAiB,CAAC,GAAa,EAAA;QACpC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClC;AAED,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAC/B,QAAA,MAAM,SAAS,GAAQ,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,YAAA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAQO,IAAA,QAAQ,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACF;;AApRc,mBAAM,CAAA,MAAA,GAAG,CAAC,CAAC;gHAFf,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAjBnB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,WAAW,EAAE,mBAAmB;AACjC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvDH,4xBAcA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD2Ca,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAzB/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGtB,IAAA,EAAA;AACJ,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,yBAAyB,EAAE,aAAa;qBACzC,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAqB,mBAAA;AACjC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,4xBAAA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,CAAA;qJAY8B,EAAE,EAAA,CAAA;sBAAhC,WAAW;gBAGyB,UAAU,EAAA,CAAA;sBAA9C,SAAS;uBAAC,OAAO,CAAA;gBAC4B,WAAW,EAAA,CAAA;sBAAxD,WAAW;uBAAC,uBAAuB,CAAA;gBA4BzB,UAAU,EAAA,CAAA;sBADpB,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAcK,WAAW,EAAA,CAAA;sBADrB,KAAK;gBAaK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAgBK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBA4BK,gBAAgB,EAAA,CAAA;sBAD1B,WAAW;uBAAC,gBAAgB,CAAA;;;MEnHlB,2BAA2B,CAAA;AAmBtC,IAAA,WAAA,CAAmB,KAAiB,EAAU,QAAkB,EAAU,EAAgB,EAAA;QAAvE,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAAU,IAAE,CAAA,EAAA,GAAF,EAAE,CAAc;QAbnF,IAAgB,CAAA,gBAAA,GAAU,EAAE,CAAC;AAIpB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpB,QAAA,IAAA,CAAA,EAAE,GAAG,CAA6B,0BAAA,EAAA,2BAA2B,CAAC,MAAM,EAAE,EAAE,CAAC;AACjG,QAAA,IAAA,CAAA,YAAY,GAA6B,IAAI,YAAY,EAAc,CAAC;QAGjC,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAEtD,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;QAiC9C,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAyBlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AA4NlB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAa,KAAI;AAC7C,SAAC,CAAC;QAEM,IAAU,CAAA,UAAA,GAAG,MAAK;AAC1B,SAAC,CAAC;AAvRA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAE9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACvD,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;AAID,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAED,IACW,UAAU,CAAC,KAAyC,EAAA;AAC7D,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAID,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAW,QAAQ,CAAC,GAAG,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;AACpF,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAED,IAAW,WAAW,CAAC,GAAG,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,IAAW,QAAQ,CAAC,GAAG,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAID,IAAA,IACW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAED,IAAW,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,SAAA;KACF;AAED,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;IAED,IAAW,KAAK,CAAC,KAAwB,EAAA;AACvC,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;KACF;AAED,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;QACrC,OAAO,CAAC,CAAC,CAAC;KACX;AAED,IAAA,IACW,gBAAgB,GAAA;QACzB,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KACpC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;;;QAID,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,iBAAiB;iBACnB,YAAY;AACZ,iBAAA,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAC1C,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAChC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CACnG;iBACA,SAAS,CAAC,SAAS,IAAG;AAErB,gBAAA,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;AAC/B,oBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC;AACxC,iBAAA;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,aAAC,CAAC,CAAC;AACN,SAAA;;AAGD,QAAA,IAAI,CAAC,iBAAiB;aACnB,YAAY;AACZ,aAAA,IAAI,CACH,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EACrC,MAAM,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAC1C,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAC7C,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAChC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAClE;aACA,SAAS,CAAC,SAAS,IAAG;AAEnB,YAAA,MAAM,UAAU,GAAG,IAAI,KAAK,EAAO,CAAC;AAEpC,YAAA,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;AAE/B,gBAAA,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAG;AAC9B,oBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,IAC1B,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE;AAClF,wBAAA,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzB,qBAAA;AACH,iBAAC,CAAC,CAAA;AACH,aAAA;AAED,YAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;AACnC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CACF,CAAC;KACL;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;KAClD;IAED,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,CAAC;AAC9E,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACF;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACpC;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;KACzD;AAEM,IAAA,gBAAgB,CAAC,KAAmC,EAAA;AAEzD,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,GAAG,IAAI,KAAK,EAAO,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAElB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;KACjD;AAEM,IAAA,iBAAiB,CAAC,KAAoC,EAAA;QAC3D,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;KAC3C;IAEM,cAAc,GAAA;QAEnB,IAAI,IAAI,CAAC,cAAc,EAAE;AAEvB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAE5B,SAAA;KACF;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAO,CAAC;KAC/B;IAEM,UAAU,GAAA;;;;;KAMhB;IAEM,SAAS,GAAA;QAEd,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAEM,IAAA,UAAU,CAAC,GAAQ,EAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;KAClB;AAEM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,KAAiB,EAAA;QACvC,IAAK,KAAK,CAAC,MAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE;YAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;AAEM,IAAA,iBAAiB,CAAC,GAAa,EAAA;QACpC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClC;AAED,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAC/B,QAAA,MAAM,SAAS,GAAQ,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,YAAA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,MAAM,CAAC,KAAU,EAAA;AACf,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,IAAI,EAAE;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClC,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvB,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;AACjD,SAAA;KACF;AAQO,IAAA,QAAQ,CAAC,MAAyB,EAAA;AACxC,QAAA,IAAI,MAAM,KAAK,IAAI,CAAC,iBAAiB,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACF;;AAlTc,2BAAM,CAAA,MAAA,GAAG,CAAC,CAAC;wHAFf,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAjB3B,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,WAAW,EAAE,2BAA2B;AACzC,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvDH,k+CA6BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,wEAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD4Ba,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAzBvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAG/B,IAAA,EAAA;AACJ,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,yBAAyB,EAAE,aAAa;qBACzC,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,iCAAiC,CAAC;AAC1D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAA6B,2BAAA;AACzC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,iCAAiC,CAAC;AAC1D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,k+CAAA,EAAA,CAAA;qJAa8B,EAAE,EAAA,CAAA;sBAAhC,WAAW;gBAGyB,UAAU,EAAA,CAAA;sBAA9C,SAAS;uBAAC,OAAO,CAAA;gBAC4B,WAAW,EAAA,CAAA;sBAAxD,WAAW;uBAAC,uBAAuB,CAAA;gBA+BzB,UAAU,EAAA,CAAA;sBADpB,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAcK,WAAW,EAAA,CAAA;sBADrB,KAAK;gBAaK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAgBK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBA4BK,gBAAgB,EAAA,CAAA;sBAD1B,WAAW;uBAAC,gBAAgB,CAAA;;;MEzHlB,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAhCzB,0BAA0B;QAC1B,uBAAuB;QACvB,mBAAmB;QACnB,mBAAmB;AACnB,QAAA,2BAA2B,aAe3B,YAAY;QACZ,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,eAAe;QACf,qBAAqB;QACrB,cAAc;QACd,wBAAwB;QACxB,cAAc;QACd,aAAa;AACb,QAAA,mBAAmB,aAtBnB,0BAA0B;QAC1B,mBAAmB;QACnB,mBAAmB;QACnB,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAsBlB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAbzB,YAAY;QACZ,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,eAAe;QACf,qBAAqB;QACrB,cAAc;QACd,wBAAwB;QACxB,cAAc;QACd,aAAa;QACb,mBAAmB,CAAA,EAAA,CAAA,CAAA;2FAGV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAlC5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,0BAA0B;wBAC1B,uBAAuB;wBACvB,mBAAmB;wBACnB,mBAAmB;wBACnB,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,mBAAmB;wBACnB,mBAAmB;wBACnB,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,eAAe,EAAE;wBACf,uBAAuB;wBACvB,mBAAmB;wBACnB,mBAAmB;wBACnB,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,iBAAiB;wBACjB,eAAe;wBACf,qBAAqB;wBACrB,cAAc;wBACd,wBAAwB;wBACxB,cAAc;wBACd,aAAa;wBACb,mBAAmB;AACpB,qBAAA;AACF,iBAAA,CAAA;;;MCjCY,uBAAuB,CAAA;AAKlC,IAAA,WAAA,CAA4C,IAAwB,EAAA;QAAxB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAoB;AAElE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAEvB,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAG;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACnC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;AAC3C,SAAC,CAAC,CAAA;KAEH;IAED,QAAQ,GAAA;KACP;IAED,aAAa,GAAA;AAEX,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;KAE7B;;AAxBU,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAKd,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AALxB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,2DCrBpC,2gBAWA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,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,EAAAD,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDUa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,2gBAAA,EAAA,CAAA;;0BASlB,MAAM;2BAAC,eAAe,CAAA;;;MEfxB,uBAAuB,CAAA;AAKlC,IAAA,WAAA,CAAoB,MAAiB,EAAA;QAAjB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACnC,IAAI,CAAC,qBAAqB,GAAG,IAAI,eAAe,CAAuB,IAAI,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAID,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAED,IAAI,UAAU,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAED,IAAA,KAAK,CAAC,KAAa,EAAE,aAAsB,EAAE,0BAAmC,EAAA;AAE9E,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAErD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAoE,uBAAuB,EAAE;AACnI,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,IAAI,EAAsB;AACxB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE;AACnD,gBAAA,0BAA0B,EAAE,0BAA0B;gBACtD,eAAe,EAAE,MAAK;AACpB,oBAAA,IAAI,CAAC,2BAA2B,CAAC,wBAAwB,CAAC,CAAC;AAC3D,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;AACF,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,yBAAyB,CAAC,eAAuB,EAAE,WAAmB,EAAE,UAAkB,EAAA;QAExF,MAAM,kBAAkB,GAAG,CAAC,WAAW,GAAG,GAAG,IAAI,eAAe,CAAC;AAEjE,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAgB;AAC7C,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,aAAa,EAAE,kBAAkB;AAClC,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,2BAA2B,CAAC,UAAkB,EAAA;AAC5C,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAgB;AAC7C,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,aAAa,EAAE,CAAC;AACjB,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC;KAChC;;oHA7DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;wHAAvB,uBAAuB,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;MCUE,sBAAsB,CAAA;AACjC,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;gBACT,uBAAuB;AACxB,aAAA;SACF,CAAA;KACF;;mHARU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;oHAAtB,sBAAsB,EAAA,YAAA,EAAA,CATlB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAEpC,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAGX,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAP/B,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAGX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,gBAAgB;wBAChB,eAAe;wBACf,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;ICnBW,YAKX;AALD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,WAAA,CAAA,WAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,WAAA,CAAA,WAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACJ,CAAC,EALW,WAAW,KAAX,WAAW,GAKtB,EAAA,CAAA,CAAA,CAAA;IAEW,WAKX;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;AACR,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA;;MCHY,2BAA2B,CAAA;IAStC,WAAoB,CAAA,SAAoD,EAAkC,IAA4B,EAAA;QAAlH,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2C;QAAkC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAwB;AAEpI,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAE1B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,EAAE;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;AAEzC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW,EAAE;AACrD,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC;AACrC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;AACzC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,EAAE;AAC5C,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC;AACrC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;AACrC,SAAA;KAEF;IAED,QAAQ,GAAA;KAEP;IAED,SAAS,GAAA;AAEP,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAA2B;YAC7C,MAAM,EAAE,IAAI,CAAC,aAAa;AAC3B,SAAA,CAAC,CAAC;KACJ;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAA2B;YAC7C,MAAM,EAAE,IAAI,CAAC,aAAa;AAC3B,SAAA,CAAC,CAAC;KACJ;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAA2B;YAC7C,MAAM,EAAE,IAAI,CAAC,aAAa;AAC3B,SAAA,CAAC,CAAC;KACJ;;AA9DU,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,8CAS4C,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AATtF,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,yECTxC,uaAOA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,mCAAmC,EAAA,QAAA,EAAA,uaAAA,EAAA,CAAA;;0BAa8B,MAAM;2BAAC,eAAe,CAAA;;;MERtF,mBAAmB,CAAA;AAE9B,IAAA,WAAA,CAAoB,MAAiB,EAAA;QAAjB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;KACpC;IAED,2BAA2B,CAAC,KAAa,EAAE,OAAe,EAAA;QAExD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAgF,2BAA2B,EAAE;AAC7I,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,IAAI,EAA0B;AAC5B,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU,CAAC,KAAK;AAC7B,aAAA;AACF,SAAA,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;KACrF;IAED,iCAAiC,CAAC,KAAa,EAAE,OAAe,EAAA;QAE9D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAgF,2BAA2B,EAAE;AAC7I,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,IAAI,EAA0B;AAC5B,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU,CAAC,WAAW;AACnC,aAAA;AACF,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;KAChC;IAED,8BAA8B,CAAC,KAAa,EAAE,OAAe,EAAA;QAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAgF,2BAA2B,EAAE;AAC7I,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,IAAI,EAA0B;AAC5B,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU,CAAC,QAAQ;AAChC,aAAA;AACF,SAAA,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;KACpF;IAED,YAAY,CAAC,KAAa,EAAE,OAAe,EAAA;QAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAgF,2BAA2B,EAAE;AAC7I,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,IAAI,EAA0B;AAC5B,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU,CAAC,EAAE;AAC1B,aAAA;AACF,SAAA,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;KACpF;;gHA/DU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCSY,wBAAwB,CAAA;AACnC,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,wBAAwB;AAClC,YAAA,SAAS,EAAE;gBACT,mBAAmB;AACpB,aAAA;SACF,CAAA;KACF;;qHARU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;sHAAxB,wBAAwB,EAAA,YAAA,EAAA,CARpB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAExC,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,eAAe,CAAA,EAAA,CAAA,CAAA;AAGN,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YANjC,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,eAAe,CAAA,EAAA,CAAA,CAAA;2FAGN,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;AAC3C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,gBAAgB;wBAChB,eAAe;AAChB,qBAAA;AACF,iBAAA,CAAA;;;ACXD,SAAS,iBAAiB,CAAC,KAAU,EAAA;;IAEnC,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7C,CAAC;MAEY,gBAAgB,CAAA;AACpB,IAAA,OAAO,WAAW,GAAA;AACvB,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;KAC7E;AAEM,IAAA,OAAO,OAAO,GAAA;AACnB,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,0HAA0H,CAAC,CAAC;KACvJ;IAEM,OAAO,eAAe,CAAC,iBAAyB,EAAA;QAErD,OAAO,CAAC,OAAwB,KAAI;AAClC,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,OAAO,KAAK,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,EAAC,OAAO,EAAE,IAAI,EAAC,CAAA;AACzF,SAAC,CAAA;KACF;AAEM,IAAA,OAAO,mBAAmB,CAAgB,iBAAyB,EAAE,4BAA2D,EAAA;QAErI,OAAO,CAAC,OAAwB,KAAI;AAClC,YAAA,IAAI,OAAO,CAAC,MAAM,IAAI,4BAA4B,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,EAAE;AAChG,gBAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAC,UAAU,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC;AACrE,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAA;KACF;IAEM,OAAO,iBAAiB,CAAC,YAAsB,EAAA;QACpD,OAAO,CAAC,OAAwB,KAAI;AAClC,YAAA,YAAY,CAAC,OAAO,CAAC,WAAW,IAAG;gBACjC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;AAC7D,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAA;KACF;AAGF;;MC7CqB,wBAAwB,CAAA;AAK5C,IAAA,WAAA,CAAsB,SAAoB,EAAA;AAgBnC,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,WAAmB,EAAE,SAAiB,KAAI;AAC3D,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACnE,SAAC,CAAC;AAEK,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,SAAiB,KAAI;YAC1C,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7C,SAAC,CAAC;AArBA,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC7B;AAID,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;KAC7B;AAUM,IAAA,cAAc,CAAC,WAAmB,EAAA;QACvC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;KACpH;AAEM,IAAA,gBAAgB,CAAC,YAAkB,EAAA;QACxC,YAAY,CAAC,MAAM,EAAE,CAAC;AACtB,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAA,YAAY,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACtC;IAES,kBAAkB,GAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAC;KAC1C;IAES,mBAAmB,GAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;AACF;;ACpDD;;AAEG;;ACFH;;AAEG;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
/// <amd-module name="@meshmakers/shared-ui" />
|
|
5
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="@meshmakers/shared-ui" />
|
|
5
|
+
export * from './public-api';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./confirmation-window/confirmation-window.component";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
import * as i3 from "@angular/material/dialog";
|
|
6
|
-
import * as i4 from "@angular/flex-layout";
|
|
7
|
-
import * as i5 from "@angular/material/button";
|
|
8
|
-
export declare class ConfirmationDialogModule {
|
|
9
|
-
static forRoot(): ModuleWithProviders<ConfirmationDialogModule>;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationDialogModule, never>;
|
|
11
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ConfirmationDialogModule, [typeof i1.ConfirmationWindowComponent], [typeof i2.CommonModule, typeof i3.MatDialogModule, typeof i4.FlexLayoutModule, typeof i5.MatButtonModule], never>;
|
|
12
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<ConfirmationDialogModule>;
|
|
13
|
-
}
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./confirmation-window/confirmation-window.component";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/dialog";
|
|
6
|
+
import * as i4 from "@angular/flex-layout";
|
|
7
|
+
import * as i5 from "@angular/material/button";
|
|
8
|
+
export declare class ConfirmationDialogModule {
|
|
9
|
+
static forRoot(): ModuleWithProviders<ConfirmationDialogModule>;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationDialogModule, never>;
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ConfirmationDialogModule, [typeof i1.ConfirmationWindowComponent], [typeof i2.CommonModule, typeof i3.MatDialogModule, typeof i4.FlexLayoutModule, typeof i5.MatButtonModule], never>;
|
|
12
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ConfirmationDialogModule>;
|
|
13
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { MatDialogRef } from "@angular/material/dialog";
|
|
3
|
-
import { ButtonTypes, ConfirmationWindowData } from "../shared/confirmation";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class ConfirmationWindowComponent implements OnInit {
|
|
6
|
-
private dialogRef;
|
|
7
|
-
data: ConfirmationWindowData;
|
|
8
|
-
button1Text: string;
|
|
9
|
-
button1Result: ButtonTypes;
|
|
10
|
-
button2Text: string;
|
|
11
|
-
button2Result: ButtonTypes;
|
|
12
|
-
button3Text: string;
|
|
13
|
-
button3Result: ButtonTypes;
|
|
14
|
-
constructor(dialogRef: MatDialogRef<ConfirmationWindowComponent>, data: ConfirmationWindowData);
|
|
15
|
-
ngOnInit(): void;
|
|
16
|
-
onButton1(): void;
|
|
17
|
-
onButton2(): void;
|
|
18
|
-
onButton3(): void;
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationWindowComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmationWindowComponent, "lib-shared-ui-confirmation-window", never, {}, {}, never, never, false, never>;
|
|
21
|
-
}
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { MatDialogRef } from "@angular/material/dialog";
|
|
3
|
+
import { ButtonTypes, ConfirmationWindowData } from "../shared/confirmation";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class ConfirmationWindowComponent implements OnInit {
|
|
6
|
+
private dialogRef;
|
|
7
|
+
data: ConfirmationWindowData;
|
|
8
|
+
button1Text: string;
|
|
9
|
+
button1Result: ButtonTypes;
|
|
10
|
+
button2Text: string | null;
|
|
11
|
+
button2Result: ButtonTypes | null;
|
|
12
|
+
button3Text: string | null;
|
|
13
|
+
button3Result: ButtonTypes | null;
|
|
14
|
+
constructor(dialogRef: MatDialogRef<ConfirmationWindowComponent>, data: ConfirmationWindowData);
|
|
15
|
+
ngOnInit(): void;
|
|
16
|
+
onButton1(): void;
|
|
17
|
+
onButton2(): void;
|
|
18
|
+
onButton3(): void;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationWindowComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmationWindowComponent, "lib-shared-ui-confirmation-window", never, {}, {}, never, never, false, never>;
|
|
21
|
+
}
|