angular-base-lib 19.0.3 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +280 -280
  2. package/fesm2022/angular-base-lib.mjs +99 -23
  3. package/fesm2022/angular-base-lib.mjs.map +1 -1
  4. package/index.d.ts +274 -1
  5. package/package.json +5 -6
  6. package/lib/auth/base-auth.service.d.ts +0 -24
  7. package/lib/auth/guards/index.d.ts +0 -2
  8. package/lib/auth/guards/logged-in.guard.d.ts +0 -2
  9. package/lib/auth/guards/logged-out.guard.d.ts +0 -2
  10. package/lib/auth/index.d.ts +0 -3
  11. package/lib/auth/models/base-auth-state.d.ts +0 -5
  12. package/lib/auth/models/index.d.ts +0 -5
  13. package/lib/auth/models/logged-in-auth-state.d.ts +0 -7
  14. package/lib/auth/models/login-state.type.d.ts +0 -1
  15. package/lib/auth/models/not-logged-in-auth-state.d.ts +0 -6
  16. package/lib/auth/models/pending-auth-state.d.ts +0 -6
  17. package/lib/base/base-control-value-accessor.d.ts +0 -18
  18. package/lib/base/index.d.ts +0 -2
  19. package/lib/base/signal-base-control-value-accessor.d.ts +0 -20
  20. package/lib/dao/converted-http-base-dao.d.ts +0 -16
  21. package/lib/dao/converted-promise-http-base-dao.d.ts +0 -15
  22. package/lib/dao/converter.d.ts +0 -4
  23. package/lib/dao/dao-id.d.ts +0 -1
  24. package/lib/dao/http-base-dao-options.d.ts +0 -6
  25. package/lib/dao/http-base-dao.d.ts +0 -12
  26. package/lib/dao/index.d.ts +0 -8
  27. package/lib/dao/interfaces/identifiable.d.ts +0 -4
  28. package/lib/dao/interfaces/index.d.ts +0 -1
  29. package/lib/dao/internal/internal-http-base-dao.d.ts +0 -16
  30. package/lib/dao/promise-http-base-dao.d.ts +0 -11
  31. package/lib/forms/form-util.d.ts +0 -6
  32. package/lib/forms/index.d.ts +0 -1
  33. package/lib/index.d.ts +0 -8
  34. package/lib/model-component/action/index.d.ts +0 -2
  35. package/lib/model-component/action/model-action.d.ts +0 -5
  36. package/lib/model-component/action/model-action.type.d.ts +0 -1
  37. package/lib/model-component/base-model-detail.component.d.ts +0 -17
  38. package/lib/model-component/base-model-edit.component.d.ts +0 -5
  39. package/lib/model-component/base-model-list.component.d.ts +0 -14
  40. package/lib/model-component/base-model.component.d.ts +0 -10
  41. package/lib/model-component/base.component.d.ts +0 -6
  42. package/lib/model-component/index.d.ts +0 -5
  43. package/lib/navigation/back-button.directive.d.ts +0 -7
  44. package/lib/navigation/index.d.ts +0 -2
  45. package/lib/navigation/navigation.service.d.ts +0 -11
  46. package/lib/types/index.d.ts +0 -1
  47. package/lib/types/value-change-callback.type.d.ts +0 -1
  48. package/lib/util/index.d.ts +0 -3
  49. package/lib/util/is-nil.d.ts +0 -1
  50. package/lib/util/prepare-optional-string.d.ts +0 -1
  51. package/lib/util/remove-nil-values-recursively.d.ts +0 -1
@@ -1,8 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Injectable, Directive, HostListener, output, Input, model, signal } from '@angular/core';
2
+ import { inject, Injectable, HostListener, Directive, output, Input, model, signal, Renderer2, ElementRef, input } from '@angular/core';
3
3
  import { Router, NavigationEnd } from '@angular/router';
4
4
  import { Location } from '@angular/common';
5
- import { MatTableDataSource } from '@angular/material/table';
6
5
  import { FormGroup } from '@angular/forms';
7
6
  import { BehaviorSubject, filter, firstValueFrom, map as map$1 } from 'rxjs';
8
7
  import { map } from 'rxjs/operators';
@@ -31,10 +30,10 @@ class NavigationService {
31
30
  this.router.navigate([fallbackRoute]);
32
31
  }
33
32
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: NavigationService, providedIn: 'root' }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: NavigationService, providedIn: 'root' }); }
36
35
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: NavigationService, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: NavigationService, decorators: [{
38
37
  type: Injectable,
39
38
  args: [{ providedIn: 'root' }]
40
39
  }], ctorParameters: () => [] });
@@ -124,7 +123,6 @@ class BaseModelEditComponent extends BaseModelComponent {
124
123
  class BaseModelListComponent extends BaseModelComponent {
125
124
  constructor(baseRoute) {
126
125
  super(baseRoute);
127
- this.dataSource = new MatTableDataSource([]);
128
126
  this.backRoute = '/';
129
127
  }
130
128
  handleModelAction(modelAction) {
@@ -149,12 +147,6 @@ class BaseModelListComponent extends BaseModelComponent {
149
147
  createModel() {
150
148
  this.router.navigate([`${this.baseRoute}/add`]);
151
149
  }
152
- async deleteModel(model) {
153
- const [deleted, newList] = await this.handleModelDelete(model);
154
- if (deleted && newList) {
155
- this.dataSource.data = newList;
156
- }
157
- }
158
150
  }
159
151
 
160
152
  class BackButtonDirective {
@@ -164,13 +156,13 @@ class BackButtonDirective {
164
156
  onClick() {
165
157
  this.navigation.back();
166
158
  }
167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: BackButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
168
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.7", type: BackButtonDirective, isStandalone: true, selector: "[ngLibBackButton]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BackButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
160
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BackButtonDirective, isStandalone: true, selector: "[ngBackButton]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
169
161
  }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: BackButtonDirective, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BackButtonDirective, decorators: [{
171
163
  type: Directive,
172
164
  args: [{
173
- selector: '[ngLibBackButton]',
165
+ selector: '[ngBackButton]',
174
166
  standalone: true
175
167
  }]
176
168
  }], propDecorators: { onClick: [{
@@ -550,10 +542,10 @@ class BaseControlValueAccessor {
550
542
  setDisabledState(isDisabled) {
551
543
  this.disabled = isDisabled;
552
544
  }
553
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: BaseControlValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
554
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.7", type: BaseControlValueAccessor, isStandalone: true, inputs: { value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0 }); }
545
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BaseControlValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
546
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BaseControlValueAccessor, isStandalone: true, inputs: { value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0 }); }
555
547
  }
556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: BaseControlValueAccessor, decorators: [{
548
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BaseControlValueAccessor, decorators: [{
557
549
  type: Directive
558
550
  }], propDecorators: { value: [{
559
551
  type: Input
@@ -593,16 +585,100 @@ class SignalBaseControlValueAccessor {
593
585
  setDisabledState(disabled) {
594
586
  this.disabled.set(disabled);
595
587
  }
596
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: SignalBaseControlValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
597
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.7", type: SignalBaseControlValueAccessor, isStandalone: true, inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, ngImport: i0 }); }
588
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: SignalBaseControlValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
589
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: SignalBaseControlValueAccessor, isStandalone: true, inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, ngImport: i0 }); }
598
590
  }
599
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: SignalBaseControlValueAccessor, decorators: [{
591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: SignalBaseControlValueAccessor, decorators: [{
600
592
  type: Directive
601
593
  }] });
602
594
 
595
+ class NgAspectRatioDirective {
596
+ constructor() {
597
+ this.renderer = inject(Renderer2);
598
+ this.hostElem = inject(ElementRef);
599
+ this.ngAspectRatio = input.required();
600
+ this.sizingMode = input('match-parent');
601
+ this.containerWidthChanged = output();
602
+ this.containerHeightChanged = output();
603
+ this.targetRatio = this.ngAspectRatio;
604
+ this.observer = new ResizeObserver(() => {
605
+ this.calculateAndSetAspect();
606
+ });
607
+ }
608
+ ngAfterViewInit() {
609
+ this.observer.observe(this.hostElem.nativeElement.parentElement);
610
+ }
611
+ ngOnDestroy() {
612
+ this.observer.disconnect();
613
+ }
614
+ calculateAndSetAspect() {
615
+ this.renderer.removeStyle(this.hostElem.nativeElement, 'width');
616
+ this.renderer.removeStyle(this.hostElem.nativeElement, 'height');
617
+ let targetWidth;
618
+ let targetHeight;
619
+ if (this.sizingMode() === 'match-parent') {
620
+ const hostWidth = this.hostElem.nativeElement.parentElement.offsetWidth;
621
+ const hostHeight = this.hostElem.nativeElement.parentElement.offsetHeight;
622
+ const hostAspectRatio = hostWidth / hostHeight;
623
+ if (hostAspectRatio >= this.targetRatio()) {
624
+ // use full height as base
625
+ targetHeight = hostHeight;
626
+ targetWidth = targetHeight * this.targetRatio();
627
+ }
628
+ else {
629
+ // use full width as base
630
+ targetWidth = hostWidth;
631
+ targetHeight = targetWidth * (1 / this.targetRatio());
632
+ }
633
+ }
634
+ else {
635
+ // Add +1 to the dimensions because decimals get rounded
636
+ const contentWidth = this.hostElem.nativeElement.offsetWidth + 1;
637
+ const contentHeight = this.hostElem.nativeElement.offsetHeight + 1;
638
+ const currentRatio = contentWidth / contentHeight;
639
+ if (currentRatio >= this.targetRatio()) {
640
+ targetWidth = contentWidth;
641
+ targetHeight = targetWidth * (1 / this.targetRatio());
642
+ }
643
+ else {
644
+ targetHeight = contentHeight;
645
+ targetWidth = targetHeight * this.targetRatio();
646
+ }
647
+ }
648
+ // Set calculated dimensions
649
+ this.setAcInnerWidth(targetWidth);
650
+ this.setAcInnerHeight(targetHeight);
651
+ }
652
+ setAcInnerWidth(width) {
653
+ this.containerWidthChanged.emit(width);
654
+ this.renderer.setStyle(this.hostElem.nativeElement, 'width', `${width}px`);
655
+ }
656
+ setAcInnerHeight(height) {
657
+ this.containerHeightChanged.emit(height);
658
+ this.renderer.setStyle(this.hostElem.nativeElement, 'height', `${height}px`);
659
+ }
660
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: NgAspectRatioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
661
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: NgAspectRatioDirective, isStandalone: true, selector: "[ngAspectRatio]", inputs: { ngAspectRatio: { classPropertyName: "ngAspectRatio", publicName: "ngAspectRatio", isSignal: true, isRequired: true, transformFunction: null }, sizingMode: { classPropertyName: "sizingMode", publicName: "sizingMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { containerWidthChanged: "containerWidthChanged", containerHeightChanged: "containerHeightChanged" }, ngImport: i0 }); }
662
+ }
663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: NgAspectRatioDirective, decorators: [{
664
+ type: Directive,
665
+ args: [{
666
+ selector: '[ngAspectRatio]'
667
+ }]
668
+ }], ctorParameters: () => [] });
669
+
670
+ const alignmentFlexMapping = new Map([
671
+ ['center', 'center'],
672
+ ['left', 'flex-start'],
673
+ ['right', 'flex-end'],
674
+ ['right', 'flex-end'],
675
+ ['top', 'flex-start'],
676
+ ['bottom', 'flex-end'],
677
+ ]);
678
+
603
679
  /**
604
680
  * Generated bundle index. Do not edit.
605
681
  */
606
682
 
607
- export { BackButtonDirective, BaseAuthService, BaseComponent, BaseControlValueAccessor, BaseModelComponent, BaseModelDetailComponent, BaseModelEditComponent, BaseModelListComponent, ConvertedHttpBaseDao, ConvertedPromiseHttpBaseDao, Converter, DEFAULT_OPTIONS, FormUtil, HttpBaseDao, LoggedInAuthState, NavigationService, NotLoggedInAuthState, PendingAuthState, PromiseHttpBaseDao, SignalBaseControlValueAccessor, isNil, loggedInGuardFn, loggedOutGuardFn, prepareOptionalString, removeNullValuesRecursively };
683
+ export { BackButtonDirective, BaseAuthService, BaseComponent, BaseControlValueAccessor, BaseModelComponent, BaseModelDetailComponent, BaseModelEditComponent, BaseModelListComponent, ConvertedHttpBaseDao, ConvertedPromiseHttpBaseDao, Converter, DEFAULT_OPTIONS, FormUtil, HttpBaseDao, LoggedInAuthState, NavigationService, NgAspectRatioDirective, NotLoggedInAuthState, PendingAuthState, PromiseHttpBaseDao, SignalBaseControlValueAccessor, alignmentFlexMapping, isNil, loggedInGuardFn, loggedOutGuardFn, prepareOptionalString, removeNullValuesRecursively };
608
684
  //# sourceMappingURL=angular-base-lib.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"angular-base-lib.mjs","sources":["../../../../libs/angular-base/src/lib/navigation/navigation.service.ts","../../../../libs/angular-base/src/lib/model-component/base-model-detail.component.ts","../../../../libs/angular-base/src/lib/model-component/base.component.ts","../../../../libs/angular-base/src/lib/model-component/base-model.component.ts","../../../../libs/angular-base/src/lib/model-component/base-model-edit.component.ts","../../../../libs/angular-base/src/lib/model-component/base-model-list.component.ts","../../../../libs/angular-base/src/lib/navigation/back-button.directive.ts","../../../../libs/angular-base/src/lib/util/is-nil.ts","../../../../libs/angular-base/src/lib/util/remove-nil-values-recursively.ts","../../../../libs/angular-base/src/lib/forms/form-util.ts","../../../../libs/angular-base/src/lib/util/prepare-optional-string.ts","../../../../libs/angular-base/src/lib/auth/models/pending-auth-state.ts","../../../../libs/angular-base/src/lib/auth/models/logged-in-auth-state.ts","../../../../libs/angular-base/src/lib/auth/models/not-logged-in-auth-state.ts","../../../../libs/angular-base/src/lib/auth/base-auth.service.ts","../../../../libs/angular-base/src/lib/auth/guards/logged-in.guard.ts","../../../../libs/angular-base/src/lib/auth/guards/logged-out.guard.ts","../../../../libs/angular-base/src/lib/dao/http-base-dao-options.ts","../../../../libs/angular-base/src/lib/dao/internal/internal-http-base-dao.ts","../../../../libs/angular-base/src/lib/dao/http-base-dao.ts","../../../../libs/angular-base/src/lib/dao/promise-http-base-dao.ts","../../../../libs/angular-base/src/lib/dao/converted-http-base-dao.ts","../../../../libs/angular-base/src/lib/dao/converted-promise-http-base-dao.ts","../../../../libs/angular-base/src/lib/dao/converter.ts","../../../../libs/angular-base/src/lib/base/base-control-value-accessor.ts","../../../../libs/angular-base/src/lib/base/signal-base-control-value-accessor.ts","../../../../libs/angular-base/src/angular-base-lib.ts"],"sourcesContent":["import { NavigationEnd, Router } from '@angular/router';\nimport { inject, Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private history: string[] = [];\n private readonly router = inject(Router);\n private readonly location = inject(Location);\n\n constructor() {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n\n reset(): void {\n this.history = [];\n }\n\n back(fallbackRoute = '/'): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigate([fallbackRoute]);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NavigationService } from '../navigation/navigation.service';\nimport { ModelAction } from './action';\nimport { Identifiable } from 'angular-base-dao';\n\nexport abstract class BaseModelDetailComponent<TM extends Identifiable> {\n model: TM | null = null;\n\n protected readonly router = inject(Router);\n protected readonly navigationService = inject(NavigationService);\n\n protected constructor(protected baseRoute: string) {}\n\n handleModelAction(modelAction: ModelAction<TM>): void {\n switch (modelAction.action) {\n case 'show':\n this.showList();\n break;\n\n case 'edit':\n this.editModel();\n break;\n\n case 'delete':\n this.deleteModel();\n break;\n }\n }\n\n showList(): void {\n this.router.navigate([this.baseRoute]);\n }\n\n async editModel(): Promise<void> {\n if (!this.model) {\n return;\n }\n\n await this.router.navigate([`${this.baseRoute}/edit`, this.model.id]);\n }\n\n async deleteModel(): Promise<void> {\n const model = this.model;\n\n if (!model) {\n return;\n }\n\n if (await this.handleDeleteModel(model)) {\n await this.router.navigate([`${this.baseRoute}`]);\n }\n }\n\n goBack(): void {\n this.navigationService.back(this.baseRoute);\n }\n\n abstract handleDeleteModel(model: TM): Promise<boolean>;\n}\n","/**\n * Component used for all pages that can directly navigate back to the home page if no other route was found\n */\nimport { inject } from '@angular/core';\nimport { NavigationService } from '../navigation/navigation.service';\n\nexport abstract class BaseComponent {\n backRoute = '/';\n\n protected readonly navigationService = inject(NavigationService);\n\n goBack(): void {\n this.navigationService.back(this.backRoute);\n }\n}\n","import { Router } from '@angular/router';\nimport { BaseComponent } from './base.component';\nimport { inject } from '@angular/core';\nimport { ModelAction } from './action';\n\nexport abstract class BaseModelComponent<TM> extends BaseComponent {\n protected readonly router = inject(Router);\n\n protected constructor(protected baseRoute: string) {\n super();\n this.backRoute = this.baseRoute;\n }\n\n showList(): void {\n this.router.navigate([this.baseRoute]);\n }\n\n handleModelAction(modelAction: ModelAction<TM>): void {\n switch (modelAction.action) {\n case 'back_to-list':\n this.showList();\n break;\n }\n }\n}\n","import { BaseModelComponent } from './base-model.component';\nimport { Identifiable } from 'angular-base-dao';\n\nexport abstract class BaseModelEditComponent<TM extends Identifiable> extends BaseModelComponent<TM> {\n model: TM | null = null;\n}\n","import { BaseModelComponent } from './base-model.component';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { ModelAction } from './action';\nimport { DaoId, Identifiable } from 'angular-base-dao';\n\nexport abstract class BaseModelListComponent<TM extends Identifiable> extends BaseModelComponent<TM> {\n readonly dataSource = new MatTableDataSource<TM>([]);\n\n protected constructor(baseRoute: string) {\n super(baseRoute);\n\n this.backRoute = '/';\n }\n\n override handleModelAction(modelAction: ModelAction<TM>): void {\n switch (modelAction.action) {\n case 'show':\n this.showDetail(modelAction.model.id);\n break;\n\n case 'edit':\n this.editModel(modelAction.model.id);\n break;\n\n case 'delete':\n this.deleteModel(modelAction.model);\n break;\n }\n }\n\n showDetail(id: DaoId): void {\n this.router.navigate([this.baseRoute, id]);\n }\n\n editModel(id: DaoId): void {\n this.router.navigate([`${this.baseRoute}/edit`, id]);\n }\n\n createModel(): void {\n this.router.navigate([`${this.baseRoute}/add`]);\n }\n\n async deleteModel(model: TM): Promise<void> {\n const [deleted, newList] = await this.handleModelDelete(model);\n if (deleted && newList) {\n this.dataSource.data = newList;\n }\n }\n\n abstract handleModelDelete(model: TM): Promise<[boolean, TM[]]>;\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { NavigationService } from './navigation.service';\n\n@Directive({\n selector: '[ngLibBackButton]',\n standalone: true\n})\nexport class BackButtonDirective {\n private readonly navigation = inject(NavigationService);\n\n @HostListener('click')\n onClick(): void {\n this.navigation.back();\n }\n}\n","export const isNil = (obj: unknown): boolean => obj === null || obj === undefined;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isNil } from './is-nil';\n\nexport const removeNullValuesRecursively = (object: any): any => {\n if (Array.isArray(object)) {\n const newObject = [];\n\n for (const obj of object) {\n newObject.push(removeNullValuesRecursively(obj));\n }\n\n return newObject;\n } else if (typeof object === 'object') {\n const newObject: any = {};\n\n for (const key in object) {\n if (isNil(object[key])) {\n continue;\n }\n\n if (typeof object[key] === 'object') {\n const objectToSet = removeNullValuesRecursively(object[key]);\n if (Object.keys(objectToSet)?.length) {\n newObject[key] = objectToSet;\n }\n } else {\n newObject[key] = object[key];\n }\n }\n\n return newObject;\n } else {\n return object;\n }\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { removeNullValuesRecursively } from '../util/remove-nil-values-recursively';\n\nexport class FormUtil {\n static markAllControlsAsTouched(formGroup: FormGroup, recursive = true): void {\n Object.values(formGroup.controls).forEach((control: AbstractControl) => {\n if (recursive && control instanceof FormGroup) {\n FormUtil.markAllControlsAsTouched(control);\n } else {\n control.patchValue(control.value);\n control.markAllAsTouched();\n }\n });\n }\n\n static getUpdatedFormData(objectToAdd: any, oldData: any, newData: any): any {\n for (const newKey in newData) {\n const [, changed] = FormUtil.getDifferenceRecursively(oldData[newKey], newData[newKey]);\n if (changed && newData[newKey]) {\n objectToAdd[newKey] = removeNullValuesRecursively(newData[newKey]);\n }\n }\n return objectToAdd;\n }\n\n static getDifferenceRecursively(oldData: any, newData: any): [any, boolean] {\n let changed = false;\n let object: any = {};\n\n if (typeof newData !== typeof oldData) {\n changed = true;\n object = newData;\n } else if (newData && typeof newData === 'object') {\n const allKeys = new Set([...Object.keys(newData), ...Object.keys(oldData)]);\n for (const newKey of allKeys) {\n if (!newData[newKey] && !oldData[newKey]) {\n continue;\n }\n\n // Check recursively\n const [innerDiff, innerChanged] = FormUtil.getDifferenceRecursively(oldData[newKey], newData[newKey]);\n if (innerChanged) {\n changed = true;\n object[newKey] = innerDiff;\n }\n }\n } else if (newData !== oldData) {\n changed = true;\n object = newData;\n }\n\n return [object, changed];\n }\n}\n","export const prepareOptionalString = (value: string | null | undefined): string | undefined => {\n if (value === null || value === '') {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n return value;\n};\n","import { BaseAuthState } from './base-auth-state';\nimport { LoginState } from './login-state.type';\n\nexport class PendingAuthState implements BaseAuthState<unknown> {\n readonly loginState: LoginState = 'pending';\n readonly user = null;\n}\n","import { BaseAuthState } from './base-auth-state';\nimport { LoginState } from './login-state.type';\n\nexport class LoggedInAuthState<T> implements BaseAuthState<T> {\n readonly loginState: LoginState = 'logged-in';\n readonly user: T;\n\n constructor(user: T) {\n this.user = user;\n }\n}\n","import { BaseAuthState } from './base-auth-state';\nimport { LoginState } from './login-state.type';\n\nexport class NotLoggedInAuthState implements BaseAuthState<unknown> {\n readonly loginState: LoginState = 'logged-out';\n readonly user = null;\n}\n","import { BehaviorSubject, filter, Observable } from 'rxjs';\nimport { BaseAuthState, LoggedInAuthState, LoginState, NotLoggedInAuthState, PendingAuthState } from './models';\nimport { map } from 'rxjs/operators';\n\nexport abstract class BaseAuthService<T> {\n private readonly authStateSubject = new BehaviorSubject<BaseAuthState<T>>(new PendingAuthState());\n private readonly _authState$: Observable<BaseAuthState<T>>;\n private readonly _loginState$: Observable<LoginState>;\n private readonly _readyLoginState$: Observable<LoginState>;\n private readonly _readyAuthState$: Observable<BaseAuthState<T>>;\n private readonly _user$: Observable<T | null>;\n private readonly _readyUser$: Observable<T | null>;\n private readonly _isLoggedIn$: Observable<boolean>;\n private readonly defaultLoginRoute = '/auth/login';\n\n get authState$(): Observable<BaseAuthState<T>> {\n return this._authState$;\n }\n\n get loginState$(): Observable<LoginState> {\n return this._loginState$;\n }\n\n get readyLoginState$(): Observable<LoginState> {\n return this._readyLoginState$;\n }\n\n get readyAuthState$(): Observable<BaseAuthState<T>> {\n return this._readyAuthState$;\n }\n\n get user$(): Observable<T | null> {\n return this._user$;\n }\n\n get readyUser$(): Observable<T | null> {\n return this._readyUser$;\n }\n\n get isLoggedIn$(): Observable<boolean> {\n return this._isLoggedIn$;\n }\n\n get loginRoute(): string {\n return this.defaultLoginRoute;\n }\n\n protected constructor() {\n this._authState$ = this.authStateSubject.asObservable();\n this._user$ = this._authState$.pipe(map((elem) => elem.user));\n this._loginState$ = this._authState$.pipe(map((elem) => elem.loginState));\n this._isLoggedIn$ = this._loginState$.pipe(map((state) => state === 'logged-in'));\n\n this._readyAuthState$ = this._authState$.pipe(filter((elem) => elem.loginState !== 'pending'));\n this._readyLoginState$ = this._readyAuthState$.pipe(map((elem) => elem.loginState));\n this._readyUser$ = this._readyAuthState$.pipe(map((elem) => elem.user));\n }\n\n protected userLoggedIn(user: T): void {\n this.authStateSubject.next(new LoggedInAuthState<T>(user));\n }\n\n protected userLoggedOut(): void {\n this.authStateSubject.next(new NotLoggedInAuthState());\n }\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { BaseAuthService } from '../base-auth.service';\nexport const loggedInGuardFn: CanActivateFn = (): Observable<boolean | UrlTree> => {\n const router = inject(Router);\n return inject(BaseAuthService).readyAuthState$.pipe(\n map((state) => {\n if (state.loginState === 'logged-in') {\n return true;\n }\n\n return router.createUrlTree(['/auth/login']);\n }),\n );\n};\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { BaseAuthService } from '../base-auth.service';\n\nexport const loggedOutGuardFn: CanActivateFn = (): Observable<boolean | UrlTree> => {\n const router = inject(Router);\n return inject(BaseAuthService).readyLoginState$.pipe(\n map((state) => {\n if (state !== 'logged-in') {\n return true;\n }\n\n return router.createUrlTree(['/']);\n }),\n );\n};\n","import { HttpHeaders } from '@angular/common/http';\n\nexport interface HttpBaseDaoOptions {\n withCredentials?: boolean;\n headers?: HttpHeaders;\n}\n\nexport const DEFAULT_OPTIONS: HttpBaseDaoOptions = {\n withCredentials: true,\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { inject } from '@angular/core';\nimport { DEFAULT_OPTIONS, HttpBaseDaoOptions } from '../http-base-dao-options';\nimport { DaoId } from '../dao-id';\n\nexport abstract class InternalHttpBaseDao<TI> {\n protected readonly http = inject(HttpClient);\n protected readonly options: HttpBaseDaoOptions;\n protected readonly routeUrl: string;\n\n protected constructor(routeUrl: string, options: HttpBaseDaoOptions = {}) {\n this.routeUrl = routeUrl;\n this.options = {\n ...DEFAULT_OPTIONS,\n ...options\n };\n }\n\n protected listInternal(customOptions: HttpBaseDaoOptions = {}): Observable<TI[]> {\n return this.http.get<TI[]>(this.routeUrl, this.mergeCustomOptions(customOptions));\n }\n\n protected createInternal(data: object, customOptions: HttpBaseDaoOptions = {}): Observable<TI> {\n if (!data) {\n throw new Error('Entry must exist to be created');\n }\n\n return this.http.post<TI>(this.routeUrl, data, this.mergeCustomOptions(customOptions));\n }\n\n protected updateInternal(id: DaoId, data: object, customOptions: HttpBaseDaoOptions = {}): Observable<TI> {\n if (!id) {\n throw new Error('Entry must exist to be updated');\n }\n\n return this.http.put<TI>(this.routeUrl + '/' + id, data, this.mergeCustomOptions(customOptions));\n }\n\n protected deleteInternal(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Observable<TI> {\n if (!id) {\n throw new Error('Entry must exist to be deleted');\n }\n return this.http.delete<TI>(this.routeUrl + '/' + id, this.mergeCustomOptions(customOptions));\n }\n\n protected readInternal(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Observable<TI> {\n return this.http.get<TI>(this.routeUrl + '/' + id, this.mergeCustomOptions(customOptions));\n }\n\n private mergeCustomOptions(customOptions: HttpBaseDaoOptions): HttpBaseDaoOptions {\n return {\n ...this.options,\n ...customOptions\n };\n }\n}\n","import { Observable } from 'rxjs';\nimport { HttpBaseDaoOptions } from './http-base-dao-options';\nimport { DaoId } from './dao-id';\nimport { InternalHttpBaseDao } from './internal/internal-http-base-dao';\n\nexport abstract class HttpBaseDao<TI> extends InternalHttpBaseDao<TI> {\n protected constructor(routeUrl: string, options: HttpBaseDaoOptions = {}) {\n super(routeUrl, options);\n }\n\n list(customOptions: HttpBaseDaoOptions = {}): Observable<TI[]> {\n return this.listInternal(customOptions);\n }\n\n create(entry: Partial<TI>, customOptions: HttpBaseDaoOptions = {}): Observable<TI> {\n return this.createInternal(entry, customOptions);\n }\n\n update(id: DaoId, entry: Partial<TI>, customOptions: HttpBaseDaoOptions = {}): Observable<TI> {\n return this.updateInternal(id, entry, customOptions);\n }\n\n delete(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Observable<TI> {\n return this.deleteInternal(id, customOptions);\n }\n\n read(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Observable<TI> {\n return this.readInternal(id, customOptions);\n }\n}\n","import { firstValueFrom } from 'rxjs';\nimport { HttpBaseDaoOptions } from './http-base-dao-options';\nimport { DaoId } from './dao-id';\nimport { InternalHttpBaseDao } from './internal/internal-http-base-dao';\n\nexport abstract class PromiseHttpBaseDao<TI> extends InternalHttpBaseDao<TI> {\n protected constructor(routeUrl: string, options: HttpBaseDaoOptions = {}) {\n super(routeUrl, options);\n }\n\n list(customOptions: HttpBaseDaoOptions = {}): Promise<TI[]> {\n return firstValueFrom(this.listInternal(customOptions));\n }\n\n create(data: object, customOptions: HttpBaseDaoOptions = {}): Promise<TI> {\n return firstValueFrom(this.createInternal(data, customOptions));\n }\n\n update(id: DaoId, data: object, customOptions: HttpBaseDaoOptions = {}): Promise<TI> {\n return firstValueFrom(this.updateInternal(id, data, customOptions));\n }\n\n delete(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Promise<TI> {\n return firstValueFrom(this.deleteInternal(id, customOptions));\n }\n\n read(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Promise<TI> {\n return firstValueFrom(this.readInternal(id, customOptions));\n }\n}\n","import { map, Observable } from 'rxjs';\nimport { HttpBaseDaoOptions } from './http-base-dao-options';\nimport { DaoId } from './dao-id';\nimport { InternalHttpBaseDao } from './internal/internal-http-base-dao';\nimport { Converter } from './converter';\n\nexport abstract class ConvertedHttpBaseDao<TI, TM> extends InternalHttpBaseDao<TI> {\n protected readonly converter: Converter<TI, TM>;\n protected constructor(routeUrl: string, converter: Converter<TI, TM>, options: HttpBaseDaoOptions = {}) {\n super(routeUrl, options);\n this.converter = converter;\n }\n\n list(customOptions: HttpBaseDaoOptions = {}): Observable<TM[]> {\n return this.listInternal(customOptions).pipe((result) => this.mapServerInterfaceListToModelList(result));\n }\n\n create(entry: TM, customOptions: HttpBaseDaoOptions = {}): Observable<TM> {\n const createData = this.converter.toJson(entry);\n return this.createInternal(createData, customOptions).pipe((result) => this.mapServerInterfaceToModel(result));\n }\n\n update(id: DaoId, entry: Partial<TM>, customOptions: HttpBaseDaoOptions = {}): Observable<TM> {\n const updateData = this.converter.toJson(entry);\n return this.updateInternal(id, updateData, customOptions).pipe((result) => this.mapServerInterfaceToModel(result));\n }\n\n delete(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Observable<TM> {\n return this.deleteInternal(id, customOptions).pipe((result) => this.mapServerInterfaceToModel(result));\n }\n\n read(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Observable<TM> {\n return this.readInternal(id, customOptions).pipe((result) => this.mapServerInterfaceToModel(result));\n }\n\n private mapServerInterfaceListToModelList(source$: Observable<TI[]>): Observable<TM[]> {\n return source$.pipe(\n map((list) => {\n if (!list?.length) {\n return [];\n }\n\n return list.map((elem) => this.converter.fromJson(elem));\n })\n );\n }\n\n private mapServerInterfaceToModel(source$: Observable<TI>): Observable<TM> {\n return source$.pipe(map((element) => this.converter.fromJson(element)));\n }\n}\n","import { firstValueFrom, map, Observable } from 'rxjs';\nimport { HttpBaseDaoOptions } from './http-base-dao-options';\nimport { DaoId } from './dao-id';\nimport { InternalHttpBaseDao } from './internal/internal-http-base-dao';\nimport { Converter } from './converter';\n\nexport abstract class ConvertedPromiseHttpBaseDao<TI, TM> extends InternalHttpBaseDao<TI> {\n protected readonly converter: Converter<TI, TM>;\n protected constructor(routeUrl: string, converter: Converter<TI, TM>, options: HttpBaseDaoOptions = {}) {\n super(routeUrl, options);\n this.converter = converter;\n }\n\n list(customOptions: HttpBaseDaoOptions = {}): Promise<TM[]> {\n return firstValueFrom(this.listInternal(customOptions).pipe(this.mapServerInterfaceListToModelList.bind(this)));\n }\n\n create(entry: TM, customOptions: HttpBaseDaoOptions = {}): Promise<TM> {\n const createData = this.converter.toJson(entry);\n return firstValueFrom(\n this.createInternal(createData, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)),\n );\n }\n\n update(id: DaoId, entry: Partial<TM>, customOptions: HttpBaseDaoOptions = {}): Promise<TM> {\n const updateData = this.converter.toJson(entry);\n return firstValueFrom(\n this.updateInternal(id, updateData, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)),\n );\n }\n\n delete(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Promise<TM> {\n return firstValueFrom(this.deleteInternal(id, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));\n }\n\n read(id: DaoId, customOptions: HttpBaseDaoOptions = {}): Promise<TM> {\n return firstValueFrom(this.readInternal(id, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));\n }\n\n private mapServerInterfaceListToModelList(source$: Observable<TI[]>): Observable<TM[]> {\n return source$.pipe(\n map((list) => {\n if (!list?.length) {\n return [];\n }\n\n return list.map((elem) => this.converter.fromJson(elem));\n }),\n );\n }\n\n private mapServerInterfaceToModel(source$: Observable<TI>): Observable<TM> {\n return source$.pipe(map((element) => this.converter.fromJson(element)));\n }\n}\n","export abstract class Converter<TI, TM> {\n abstract fromJson(response: TI): TM;\n abstract toJson(model: Partial<TM>): Partial<TI>;\n}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Directive, Input, output } from '@angular/core';\nimport { ValueChangeCallback } from '../types/value-change-callback.type';\n\n@Directive()\nexport abstract class BaseControlValueAccessor<T = string> implements ControlValueAccessor {\n valueChanged = output<T>();\n\n onChange: ValueChangeCallback<T> | null = null;\n onTouched: VoidFunction | null = null;\n\n disabled = false;\n protected _value!: T;\n\n get value(): T {\n return this._value;\n }\n\n @Input() set value(value: T) {\n if (this.disabled) {\n return;\n }\n\n if (this._value === value) {\n return;\n }\n\n this._value = value;\n this.onTouched?.();\n this.onChange?.(this._value);\n this.valueChanged.emit(this._value);\n }\n\n writeValue(value: T): void {\n this.value = value;\n }\n\n registerOnChange(onChange: ValueChangeCallback<T>): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: VoidFunction): void {\n this.onTouched = onTouched;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Directive, model, signal } from '@angular/core';\nimport { ValueChangeCallback } from '../types/value-change-callback.type';\n\n@Directive()\nexport abstract class SignalBaseControlValueAccessor<T = string> implements ControlValueAccessor {\n private onChange: ValueChangeCallback<T> | null = null;\n private onTouched: VoidFunction | null = null;\n\n value = model<T>();\n\n readonly disabled = signal(false);\n\n /**\n * Function that will be called by the input to update the value of the form-control and the model\n * @param value The new input value passed by $event in the template\n */\n valueChanged(value: T): void {\n if (this.disabled()) {\n return;\n }\n\n if (value === this.value()) {\n return;\n }\n\n this.onTouched?.();\n this.onChange?.(value);\n this.value.set(value);\n }\n\n writeValue(value: T): void {\n this.value.set(value);\n }\n\n registerOnChange(onChange: ValueChangeCallback<T>): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(onTouched: VoidFunction): void {\n this.onTouched = onTouched;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled.set(disabled);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":"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"}
1
+ {"version":3,"file":"angular-base-lib.mjs","sources":["../tmp-esm2022/lib/navigation/navigation.service.js","../tmp-esm2022/lib/model-component/base-model-detail.component.js","../tmp-esm2022/lib/model-component/base.component.js","../tmp-esm2022/lib/model-component/base-model.component.js","../tmp-esm2022/lib/model-component/base-model-edit.component.js","../tmp-esm2022/lib/model-component/base-model-list.component.js","../tmp-esm2022/lib/navigation/back-button.directive.js","../tmp-esm2022/lib/util/is-nil.js","../tmp-esm2022/lib/util/remove-nil-values-recursively.js","../tmp-esm2022/lib/forms/form-util.js","../tmp-esm2022/lib/util/prepare-optional-string.js","../tmp-esm2022/lib/auth/models/pending-auth-state.js","../tmp-esm2022/lib/auth/models/logged-in-auth-state.js","../tmp-esm2022/lib/auth/models/not-logged-in-auth-state.js","../tmp-esm2022/lib/auth/base-auth.service.js","../tmp-esm2022/lib/auth/guards/logged-in.guard.js","../tmp-esm2022/lib/auth/guards/logged-out.guard.js","../tmp-esm2022/lib/dao/http-base-dao-options.js","../tmp-esm2022/lib/dao/internal/internal-http-base-dao.js","../tmp-esm2022/lib/dao/http-base-dao.js","../tmp-esm2022/lib/dao/promise-http-base-dao.js","../tmp-esm2022/lib/dao/converted-http-base-dao.js","../tmp-esm2022/lib/dao/converted-promise-http-base-dao.js","../tmp-esm2022/lib/dao/converter.js","../tmp-esm2022/lib/base/base-control-value-accessor.js","../tmp-esm2022/lib/base/signal-base-control-value-accessor.js","../tmp-esm2022/lib/aspect-container/ng-aspect-ratio.directive.js","../tmp-esm2022/lib/aspect-container/alignment-flex-mapping.js","../tmp-esm2022/angular-base-lib.js"],"sourcesContent":["import { NavigationEnd, Router } from '@angular/router';\nimport { inject, Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class NavigationService {\n constructor() {\n this.history = [];\n this.router = inject(Router);\n this.location = inject(Location);\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n reset() {\n this.history = [];\n }\n back(fallbackRoute = '/') {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n }\n else {\n this.router.navigate([fallbackRoute]);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: NavigationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: NavigationService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QjtRQUpRLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDZCxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFHM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQzs4R0F4QlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNOzsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgaGlzdG9yeTogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICB0aGlzLmhpc3RvcnkucHVzaChldmVudC51cmxBZnRlclJlZGlyZWN0cyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpc3RvcnkgPSBbXTtcclxuICB9XHJcblxyXG4gIGJhY2soZmFsbGJhY2tSb3V0ZSA9ICcvJyk6IHZvaWQge1xyXG4gICAgdGhpcy5oaXN0b3J5LnBvcCgpO1xyXG4gICAgaWYgKHRoaXMuaGlzdG9yeS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2ZhbGxiYWNrUm91dGVdKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NavigationService } from '../navigation/navigation.service';\nexport class BaseModelDetailComponent {\n constructor(baseRoute) {\n this.baseRoute = baseRoute;\n this.model = null;\n this.router = inject(Router);\n this.navigationService = inject(NavigationService);\n }\n handleModelAction(modelAction) {\n switch (modelAction.action) {\n case 'show':\n this.showList();\n break;\n case 'edit':\n this.editModel();\n break;\n case 'delete':\n this.deleteModel();\n break;\n }\n }\n showList() {\n this.router.navigate([this.baseRoute]);\n }\n async editModel() {\n if (!this.model) {\n return;\n }\n await this.router.navigate([`${this.baseRoute}/edit`, this.model.id]);\n }\n async deleteModel() {\n const model = this.model;\n if (!model) {\n return;\n }\n if (await this.handleDeleteModel(model)) {\n await this.router.navigate([`${this.baseRoute}`]);\n }\n }\n goBack() {\n this.navigationService.back(this.baseRoute);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2RlbC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9tb2RlbC1jb21wb25lbnQvYmFzZS1tb2RlbC1kZXRhaWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSXJFLE1BQU0sT0FBZ0Isd0JBQXdCO0lBTTVDLFlBQWdDLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFMakQsVUFBSyxHQUFjLElBQUksQ0FBQztRQUVMLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFYixDQUFDO0lBRXJELGlCQUFpQixDQUFDLFdBQTRCO1FBQzVDLFFBQVEsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hCLE1BQU07WUFFUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixNQUFNO1lBRVIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kZWxBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XHJcbmltcG9ydCB7IElkZW50aWZpYWJsZSB9IGZyb20gJ2FuZ3VsYXItYmFzZS1kYW8nO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VNb2RlbERldGFpbENvbXBvbmVudDxUTSBleHRlbmRzIElkZW50aWZpYWJsZT4ge1xyXG4gIG1vZGVsOiBUTSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdmlnYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBiYXNlUm91dGU6IHN0cmluZykge31cclxuXHJcbiAgaGFuZGxlTW9kZWxBY3Rpb24obW9kZWxBY3Rpb246IE1vZGVsQWN0aW9uPFRNPik6IHZvaWQge1xyXG4gICAgc3dpdGNoIChtb2RlbEFjdGlvbi5hY3Rpb24pIHtcclxuICAgICAgY2FzZSAnc2hvdyc6XHJcbiAgICAgICAgdGhpcy5zaG93TGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnZWRpdCc6XHJcbiAgICAgICAgdGhpcy5lZGl0TW9kZWwoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XHJcbiAgICAgICAgdGhpcy5kZWxldGVNb2RlbCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvd0xpc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5iYXNlUm91dGVdKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGVkaXRNb2RlbCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5tb2RlbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Ake3RoaXMuYmFzZVJvdXRlfS9lZGl0YCwgdGhpcy5tb2RlbC5pZF0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZGVsZXRlTW9kZWwoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWw7XHJcblxyXG4gICAgaWYgKCFtb2RlbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGF3YWl0IHRoaXMuaGFuZGxlRGVsZXRlTW9kZWwobW9kZWwpKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHt0aGlzLmJhc2VSb3V0ZX1gXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb0JhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmJhY2sodGhpcy5iYXNlUm91dGUpO1xyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3QgaGFuZGxlRGVsZXRlTW9kZWwobW9kZWw6IFRNKTogUHJvbWlzZTxib29sZWFuPjtcclxufVxyXG4iXX0=","/**\n * Component used for all pages that can directly navigate back to the home page if no other route was found\n */\nimport { inject } from '@angular/core';\nimport { NavigationService } from '../navigation/navigation.service';\nexport class BaseComponent {\n constructor() {\n this.backRoute = '/';\n this.navigationService = inject(NavigationService);\n }\n goBack() {\n this.navigationService.back(this.backRoute);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL21vZGVsLWNvbXBvbmVudC9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFckUsTUFBTSxPQUFnQixhQUFhO0lBQW5DO1FBQ0UsY0FBUyxHQUFHLEdBQUcsQ0FBQztRQUVHLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBS25FLENBQUM7SUFIQyxNQUFNO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENvbXBvbmVudCB1c2VkIGZvciBhbGwgcGFnZXMgdGhhdCBjYW4gZGlyZWN0bHkgbmF2aWdhdGUgYmFjayB0byB0aGUgaG9tZSBwYWdlIGlmIG5vIG90aGVyIHJvdXRlIHdhcyBmb3VuZFxyXG4gKi9cclxuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnQge1xyXG4gIGJhY2tSb3V0ZSA9ICcvJztcclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdmlnYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcclxuXHJcbiAgZ29CYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5iYWNrKHRoaXMuYmFja1JvdXRlKTtcclxuICB9XHJcbn1cclxuIl19","import { Router } from '@angular/router';\nimport { BaseComponent } from './base.component';\nimport { inject } from '@angular/core';\nexport class BaseModelComponent extends BaseComponent {\n constructor(baseRoute) {\n super();\n this.baseRoute = baseRoute;\n this.router = inject(Router);\n this.backRoute = this.baseRoute;\n }\n showList() {\n this.router.navigate([this.baseRoute]);\n }\n handleModelAction(modelAction) {\n switch (modelAction.action) {\n case 'back_to-list':\n this.showList();\n break;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2RlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL21vZGVsLWNvbXBvbmVudC9iYXNlLW1vZGVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkMsTUFBTSxPQUFnQixrQkFBdUIsU0FBUSxhQUFhO0lBR2hFLFlBQWdDLFNBQWlCO1FBQy9DLEtBQUssRUFBRSxDQUFDO1FBRHNCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFGOUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUl6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUE0QjtRQUM1QyxRQUFRLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixLQUFLLGNBQWM7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb2RlbEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTW9kZWxDb21wb25lbnQ8VE0+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIGJhc2VSb3V0ZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5iYWNrUm91dGUgPSB0aGlzLmJhc2VSb3V0ZTtcclxuICB9XHJcblxyXG4gIHNob3dMaXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuYmFzZVJvdXRlXSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb2RlbEFjdGlvbihtb2RlbEFjdGlvbjogTW9kZWxBY3Rpb248VE0+KTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKG1vZGVsQWN0aW9uLmFjdGlvbikge1xyXG4gICAgICBjYXNlICdiYWNrX3RvLWxpc3QnOlxyXG4gICAgICAgIHRoaXMuc2hvd0xpc3QoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19","import { BaseModelComponent } from './base-model.component';\nexport class BaseModelEditComponent extends BaseModelComponent {\n constructor() {\n super(...arguments);\n this.model = null;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2RlbC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvbW9kZWwtY29tcG9uZW50L2Jhc2UtbW9kZWwtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHNUQsTUFBTSxPQUFnQixzQkFBZ0QsU0FBUSxrQkFBc0I7SUFBcEc7O1FBQ0UsVUFBSyxHQUFjLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWxDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtbW9kZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWRlbnRpZmlhYmxlIH0gZnJvbSAnYW5ndWxhci1iYXNlLWRhbyc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1vZGVsRWRpdENvbXBvbmVudDxUTSBleHRlbmRzIElkZW50aWZpYWJsZT4gZXh0ZW5kcyBCYXNlTW9kZWxDb21wb25lbnQ8VE0+IHtcclxuICBtb2RlbDogVE0gfCBudWxsID0gbnVsbDtcclxufVxyXG4iXX0=","import { BaseModelComponent } from './base-model.component';\nexport class BaseModelListComponent extends BaseModelComponent {\n constructor(baseRoute) {\n super(baseRoute);\n this.backRoute = '/';\n }\n handleModelAction(modelAction) {\n switch (modelAction.action) {\n case 'show':\n this.showDetail(modelAction.model.id);\n break;\n case 'edit':\n this.editModel(modelAction.model.id);\n break;\n case 'delete':\n this.deleteModel(modelAction.model);\n break;\n }\n }\n showDetail(id) {\n this.router.navigate([this.baseRoute, id]);\n }\n editModel(id) {\n this.router.navigate([`${this.baseRoute}/edit`, id]);\n }\n createModel() {\n this.router.navigate([`${this.baseRoute}/add`]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2RlbC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvbW9kZWwtY29tcG9uZW50L2Jhc2UtbW9kZWwtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJNUQsTUFBTSxPQUFnQixzQkFBZ0QsU0FBUSxrQkFBc0I7SUFDbEcsWUFBc0IsU0FBaUI7UUFDckMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFFUSxpQkFBaUIsQ0FBQyxXQUE0QjtRQUNyRCxRQUFRLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO1lBRVIsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckMsTUFBTTtZQUVSLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFTO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VNb2RlbENvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1tb2RlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2RlbEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcclxuaW1wb3J0IHsgRGFvSWQsIElkZW50aWZpYWJsZSB9IGZyb20gJ2FuZ3VsYXItYmFzZS1kYW8nO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VNb2RlbExpc3RDb21wb25lbnQ8VE0gZXh0ZW5kcyBJZGVudGlmaWFibGU+IGV4dGVuZHMgQmFzZU1vZGVsQ29tcG9uZW50PFRNPiB7XHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJhc2VSb3V0ZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihiYXNlUm91dGUpO1xyXG5cclxuICAgIHRoaXMuYmFja1JvdXRlID0gJy8nO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaGFuZGxlTW9kZWxBY3Rpb24obW9kZWxBY3Rpb246IE1vZGVsQWN0aW9uPFRNPik6IHZvaWQge1xyXG4gICAgc3dpdGNoIChtb2RlbEFjdGlvbi5hY3Rpb24pIHtcclxuICAgICAgY2FzZSAnc2hvdyc6XHJcbiAgICAgICAgdGhpcy5zaG93RGV0YWlsKG1vZGVsQWN0aW9uLm1vZGVsLmlkKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ2VkaXQnOlxyXG4gICAgICAgIHRoaXMuZWRpdE1vZGVsKG1vZGVsQWN0aW9uLm1vZGVsLmlkKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XHJcbiAgICAgICAgdGhpcy5kZWxldGVNb2RlbChtb2RlbEFjdGlvbi5tb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93RGV0YWlsKGlkOiBEYW9JZCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuYmFzZVJvdXRlLCBpZF0pO1xyXG4gIH1cclxuXHJcbiAgZWRpdE1vZGVsKGlkOiBEYW9JZCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Ake3RoaXMuYmFzZVJvdXRlfS9lZGl0YCwgaWRdKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU1vZGVsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Ake3RoaXMuYmFzZVJvdXRlfS9hZGRgXSk7XHJcbiAgfVxyXG5cclxuICBhYnN0cmFjdCBkZWxldGVNb2RlbChtb2RlbDogVE0pOiBQcm9taXNlPGJvb2xlYW4+O1xyXG59XHJcbiJdfQ==","import { Directive, HostListener, inject } from '@angular/core';\nimport { NavigationService } from './navigation.service';\nimport * as i0 from \"@angular/core\";\nexport class BackButtonDirective {\n constructor() {\n this.navigation = inject(NavigationService);\n }\n onClick() {\n this.navigation.back();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BackButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: BackButtonDirective, isStandalone: true, selector: \"[ngBackButton]\", host: { listeners: { \"click\": \"onClick()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BackButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngBackButton]',\n standalone: true\n }]\n }], propDecorators: { onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9uYXZpZ2F0aW9uL2JhY2stYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBTXpELE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBTXpEO0lBSEMsT0FBTztRQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzs4R0FOVSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBS0MsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbmdCYWNrQnV0dG9uXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFja0J1dHRvbkRpcmVjdGl2ZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBuYXZpZ2F0aW9uID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRpb24uYmFjaygpO1xyXG4gIH1cclxufVxyXG4iXX0=","export const isNil = (obj) => obj === null || obj === undefined;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbmlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi91dGlsL2lzLW5pbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFZLEVBQVcsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpc05pbCA9IChvYmo6IHVua25vd24pOiBib29sZWFuID0+IG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHVuZGVmaW5lZDtcclxuIl19","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isNil } from './is-nil';\nexport const removeNullValuesRecursively = (object) => {\n if (Array.isArray(object)) {\n const newObject = [];\n for (const obj of object) {\n newObject.push(removeNullValuesRecursively(obj));\n }\n return newObject;\n }\n else if (typeof object === 'object') {\n const newObject = {};\n for (const key in object) {\n if (isNil(object[key])) {\n continue;\n }\n if (typeof object[key] === 'object') {\n const objectToSet = removeNullValuesRecursively(object[key]);\n if (Object.keys(objectToSet)?.length) {\n newObject[key] = objectToSet;\n }\n }\n else {\n newObject[key] = object[key];\n }\n }\n return newObject;\n }\n else {\n return object;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLW5pbC12YWx1ZXMtcmVjdXJzaXZlbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL3V0aWwvcmVtb3ZlLW5pbC12YWx1ZXMtcmVjdXJzaXZlbHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxNQUFXLEVBQU8sRUFBRTtJQUM5RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFckIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN6QixTQUFTLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7U0FBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFRLEVBQUUsQ0FBQztRQUUxQixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxXQUFXLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzdELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDckMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4vaXMtbmlsJztcclxuXHJcbmV4cG9ydCBjb25zdCByZW1vdmVOdWxsVmFsdWVzUmVjdXJzaXZlbHkgPSAob2JqZWN0OiBhbnkpOiBhbnkgPT4ge1xyXG4gIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcclxuICAgIGNvbnN0IG5ld09iamVjdCA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3Qgb2JqIG9mIG9iamVjdCkge1xyXG4gICAgICBuZXdPYmplY3QucHVzaChyZW1vdmVOdWxsVmFsdWVzUmVjdXJzaXZlbHkob2JqKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ld09iamVjdDtcclxuICB9IGVsc2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnKSB7XHJcbiAgICBjb25zdCBuZXdPYmplY3Q6IGFueSA9IHt9O1xyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iamVjdCkge1xyXG4gICAgICBpZiAoaXNOaWwob2JqZWN0W2tleV0pKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0eXBlb2Ygb2JqZWN0W2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqZWN0VG9TZXQgPSByZW1vdmVOdWxsVmFsdWVzUmVjdXJzaXZlbHkob2JqZWN0W2tleV0pO1xyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmplY3RUb1NldCk/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgbmV3T2JqZWN0W2tleV0gPSBvYmplY3RUb1NldDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3T2JqZWN0W2tleV0gPSBvYmplY3Rba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXdPYmplY3Q7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBvYmplY3Q7XHJcbiAgfVxyXG59O1xyXG4iXX0=","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { FormGroup } from '@angular/forms';\nimport { removeNullValuesRecursively } from '../util/remove-nil-values-recursively';\nexport class FormUtil {\n static markAllControlsAsTouched(formGroup, recursive = true) {\n Object.values(formGroup.controls).forEach((control) => {\n if (recursive && control instanceof FormGroup) {\n FormUtil.markAllControlsAsTouched(control);\n }\n else {\n control.patchValue(control.value);\n control.markAllAsTouched();\n }\n });\n }\n static getUpdatedFormData(objectToAdd, oldData, newData) {\n for (const newKey in newData) {\n const [, changed] = FormUtil.getDifferenceRecursively(oldData[newKey], newData[newKey]);\n if (changed && newData[newKey]) {\n objectToAdd[newKey] = removeNullValuesRecursively(newData[newKey]);\n }\n }\n return objectToAdd;\n }\n static getDifferenceRecursively(oldData, newData) {\n let changed = false;\n let object = {};\n if (typeof newData !== typeof oldData) {\n changed = true;\n object = newData;\n }\n else if (newData && typeof newData === 'object') {\n const allKeys = new Set([...Object.keys(newData), ...Object.keys(oldData)]);\n for (const newKey of allKeys) {\n if (!newData[newKey] && !oldData[newKey]) {\n continue;\n }\n // Check recursively\n const [innerDiff, innerChanged] = FormUtil.getDifferenceRecursively(oldData[newKey], newData[newKey]);\n if (innerChanged) {\n changed = true;\n object[newKey] = innerDiff;\n }\n }\n }\n else if (newData !== oldData) {\n changed = true;\n object = newData;\n }\n return [object, changed];\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9mb3Jtcy9mb3JtLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFcEYsTUFBTSxPQUFPLFFBQVE7SUFDbkIsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFNBQW9CLEVBQUUsU0FBUyxHQUFHLElBQUk7UUFDcEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ3JFLElBQUksU0FBUyxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUUsQ0FBQztnQkFDOUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFnQixFQUFFLE9BQVksRUFBRSxPQUFZO1FBQ3BFLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN4RixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUN4RCxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBRXJCLElBQUksT0FBTyxPQUFPLEtBQUssT0FBTyxPQUFPLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUNuQixDQUFDO2FBQU0sSUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3pDLFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCxvQkFBb0I7Z0JBQ3BCLE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEcsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDakIsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDZixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUNuQixDQUFDO1FBRUQsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyByZW1vdmVOdWxsVmFsdWVzUmVjdXJzaXZlbHkgfSBmcm9tICcuLi91dGlsL3JlbW92ZS1uaWwtdmFsdWVzLXJlY3Vyc2l2ZWx5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtVXRpbCB7XHJcbiAgc3RhdGljIG1hcmtBbGxDb250cm9sc0FzVG91Y2hlZChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgcmVjdXJzaXZlID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgT2JqZWN0LnZhbHVlcyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICBpZiAocmVjdXJzaXZlICYmIGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgICBGb3JtVXRpbC5tYXJrQWxsQ29udHJvbHNBc1RvdWNoZWQoY29udHJvbCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udHJvbC5wYXRjaFZhbHVlKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAgIGNvbnRyb2wubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRVcGRhdGVkRm9ybURhdGEob2JqZWN0VG9BZGQ6IGFueSwgb2xkRGF0YTogYW55LCBuZXdEYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgZm9yIChjb25zdCBuZXdLZXkgaW4gbmV3RGF0YSkge1xyXG4gICAgICBjb25zdCBbLCBjaGFuZ2VkXSA9IEZvcm1VdGlsLmdldERpZmZlcmVuY2VSZWN1cnNpdmVseShvbGREYXRhW25ld0tleV0sIG5ld0RhdGFbbmV3S2V5XSk7XHJcbiAgICAgIGlmIChjaGFuZ2VkICYmIG5ld0RhdGFbbmV3S2V5XSkge1xyXG4gICAgICAgIG9iamVjdFRvQWRkW25ld0tleV0gPSByZW1vdmVOdWxsVmFsdWVzUmVjdXJzaXZlbHkobmV3RGF0YVtuZXdLZXldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9iamVjdFRvQWRkO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldERpZmZlcmVuY2VSZWN1cnNpdmVseShvbGREYXRhOiBhbnksIG5ld0RhdGE6IGFueSk6IFthbnksIGJvb2xlYW5dIHtcclxuICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XHJcbiAgICBsZXQgb2JqZWN0OiBhbnkgPSB7fTtcclxuXHJcbiAgICBpZiAodHlwZW9mIG5ld0RhdGEgIT09IHR5cGVvZiBvbGREYXRhKSB7XHJcbiAgICAgIGNoYW5nZWQgPSB0cnVlO1xyXG4gICAgICBvYmplY3QgPSBuZXdEYXRhO1xyXG4gICAgfSBlbHNlIGlmIChuZXdEYXRhICYmIHR5cGVvZiBuZXdEYXRhID09PSAnb2JqZWN0Jykge1xyXG4gICAgICBjb25zdCBhbGxLZXlzID0gbmV3IFNldChbLi4uT2JqZWN0LmtleXMobmV3RGF0YSksIC4uLk9iamVjdC5rZXlzKG9sZERhdGEpXSk7XHJcbiAgICAgIGZvciAoY29uc3QgbmV3S2V5IG9mIGFsbEtleXMpIHtcclxuICAgICAgICBpZiAoIW5ld0RhdGFbbmV3S2V5XSAmJiAhb2xkRGF0YVtuZXdLZXldKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENoZWNrIHJlY3Vyc2l2ZWx5XHJcbiAgICAgICAgY29uc3QgW2lubmVyRGlmZiwgaW5uZXJDaGFuZ2VkXSA9IEZvcm1VdGlsLmdldERpZmZlcmVuY2VSZWN1cnNpdmVseShvbGREYXRhW25ld0tleV0sIG5ld0RhdGFbbmV3S2V5XSk7XHJcbiAgICAgICAgaWYgKGlubmVyQ2hhbmdlZCkge1xyXG4gICAgICAgICAgY2hhbmdlZCA9IHRydWU7XHJcbiAgICAgICAgICBvYmplY3RbbmV3S2V5XSA9IGlubmVyRGlmZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobmV3RGF0YSAhPT0gb2xkRGF0YSkge1xyXG4gICAgICBjaGFuZ2VkID0gdHJ1ZTtcclxuICAgICAgb2JqZWN0ID0gbmV3RGF0YTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gW29iamVjdCwgY2hhbmdlZF07XHJcbiAgfVxyXG59XHJcbiJdfQ==","export const prepareOptionalString = (value) => {\n if (value === null || value === '') {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n return value;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1vcHRpb25hbC1zdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL3V0aWwvcHJlcGFyZS1vcHRpb25hbC1zdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFnQyxFQUFzQixFQUFFO0lBQzVGLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbkMsd0NBQXdDO1FBQ3hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBwcmVwYXJlT3B0aW9uYWxTdHJpbmcgPSAodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZmluZWRcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdmFsdWU7XHJcbn07XHJcbiJdfQ==","export class PendingAuthState {\n constructor() {\n this.loginState = 'pending';\n this.user = null;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1hdXRoLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9hdXRoL21vZGVscy9wZW5kaW5nLWF1dGgtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNXLGVBQVUsR0FBZSxTQUFTLENBQUM7UUFDbkMsU0FBSSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQXV0aFN0YXRlIH0gZnJvbSAnLi9iYXNlLWF1dGgtc3RhdGUnO1xyXG5pbXBvcnQgeyBMb2dpblN0YXRlIH0gZnJvbSAnLi9sb2dpbi1zdGF0ZS50eXBlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQZW5kaW5nQXV0aFN0YXRlIGltcGxlbWVudHMgQmFzZUF1dGhTdGF0ZTx1bmtub3duPiB7XHJcbiAgcmVhZG9ubHkgbG9naW5TdGF0ZTogTG9naW5TdGF0ZSA9ICdwZW5kaW5nJztcclxuICByZWFkb25seSB1c2VyID0gbnVsbDtcclxufVxyXG4iXX0=","export class LoggedInAuthState {\n constructor(user) {\n this.loginState = 'logged-in';\n this.user = user;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLWluLWF1dGgtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2F1dGgvbW9kZWxzL2xvZ2dlZC1pbi1hdXRoLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBWSxJQUFPO1FBSFYsZUFBVSxHQUFlLFdBQVcsQ0FBQztRQUk1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQXV0aFN0YXRlIH0gZnJvbSAnLi9iYXNlLWF1dGgtc3RhdGUnO1xyXG5pbXBvcnQgeyBMb2dpblN0YXRlIH0gZnJvbSAnLi9sb2dpbi1zdGF0ZS50eXBlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBMb2dnZWRJbkF1dGhTdGF0ZTxUPiBpbXBsZW1lbnRzIEJhc2VBdXRoU3RhdGU8VD4ge1xyXG4gIHJlYWRvbmx5IGxvZ2luU3RhdGU6IExvZ2luU3RhdGUgPSAnbG9nZ2VkLWluJztcclxuICByZWFkb25seSB1c2VyOiBUO1xyXG5cclxuICBjb25zdHJ1Y3Rvcih1c2VyOiBUKSB7XHJcbiAgICB0aGlzLnVzZXIgPSB1c2VyO1xyXG4gIH1cclxufVxyXG4iXX0=","export class NotLoggedInAuthState {\n constructor() {\n this.loginState = 'logged-out';\n this.user = null;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LWxvZ2dlZC1pbi1hdXRoLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9hdXRoL21vZGVscy9ub3QtbG9nZ2VkLWluLWF1dGgtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLG9CQUFvQjtJQUFqQztRQUNXLGVBQVUsR0FBZSxZQUFZLENBQUM7UUFDdEMsU0FBSSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQXV0aFN0YXRlIH0gZnJvbSAnLi9iYXNlLWF1dGgtc3RhdGUnO1xyXG5pbXBvcnQgeyBMb2dpblN0YXRlIH0gZnJvbSAnLi9sb2dpbi1zdGF0ZS50eXBlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RMb2dnZWRJbkF1dGhTdGF0ZSBpbXBsZW1lbnRzIEJhc2VBdXRoU3RhdGU8dW5rbm93bj4ge1xyXG4gIHJlYWRvbmx5IGxvZ2luU3RhdGU6IExvZ2luU3RhdGUgPSAnbG9nZ2VkLW91dCc7XHJcbiAgcmVhZG9ubHkgdXNlciA9IG51bGw7XHJcbn1cclxuIl19","import { BehaviorSubject, filter } from 'rxjs';\nimport { LoggedInAuthState, NotLoggedInAuthState, PendingAuthState } from './models';\nimport { map } from 'rxjs/operators';\nexport class BaseAuthService {\n get authState$() {\n return this._authState$;\n }\n get loginState$() {\n return this._loginState$;\n }\n get readyLoginState$() {\n return this._readyLoginState$;\n }\n get readyAuthState$() {\n return this._readyAuthState$;\n }\n get user$() {\n return this._user$;\n }\n get readyUser$() {\n return this._readyUser$;\n }\n get isLoggedIn$() {\n return this._isLoggedIn$;\n }\n get loginRoute() {\n return this.defaultLoginRoute;\n }\n constructor() {\n this.authStateSubject = new BehaviorSubject(new PendingAuthState());\n this.defaultLoginRoute = '/auth/login';\n this._authState$ = this.authStateSubject.asObservable();\n this._user$ = this._authState$.pipe(map((elem) => elem.user));\n this._loginState$ = this._authState$.pipe(map((elem) => elem.loginState));\n this._isLoggedIn$ = this._loginState$.pipe(map((state) => state === 'logged-in'));\n this._readyAuthState$ = this._authState$.pipe(filter((elem) => elem.loginState !== 'pending'));\n this._readyLoginState$ = this._readyAuthState$.pipe(map((elem) => elem.loginState));\n this._readyUser$ = this._readyAuthState$.pipe(map((elem) => elem.user));\n }\n userLoggedIn(user) {\n this.authStateSubject.next(new LoggedInAuthState(user));\n }\n userLoggedOut() {\n this.authStateSubject.next(new NotLoggedInAuthState());\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2F1dGgvYmFzZS1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFpQixpQkFBaUIsRUFBYyxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsTUFBTSxPQUFnQixlQUFlO0lBV25DLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7UUExQ2lCLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFtQixJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQVFqRixzQkFBaUIsR0FBRyxhQUFhLENBQUM7UUFtQ2pELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFUyxZQUFZLENBQUMsSUFBTztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRVMsYUFBYTtRQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VBdXRoU3RhdGUsIExvZ2dlZEluQXV0aFN0YXRlLCBMb2dpblN0YXRlLCBOb3RMb2dnZWRJbkF1dGhTdGF0ZSwgUGVuZGluZ0F1dGhTdGF0ZSB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VBdXRoU2VydmljZTxUPiB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNlQXV0aFN0YXRlPFQ+PihuZXcgUGVuZGluZ0F1dGhTdGF0ZSgpKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoU3RhdGUkOiBPYnNlcnZhYmxlPEJhc2VBdXRoU3RhdGU8VD4+O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZ2luU3RhdGUkOiBPYnNlcnZhYmxlPExvZ2luU3RhdGU+O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlYWR5TG9naW5TdGF0ZSQ6IE9ic2VydmFibGU8TG9naW5TdGF0ZT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVhZHlBdXRoU3RhdGUkOiBPYnNlcnZhYmxlPEJhc2VBdXRoU3RhdGU8VD4+O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3VzZXIkOiBPYnNlcnZhYmxlPFQgfCBudWxsPjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZWFkeVVzZXIkOiBPYnNlcnZhYmxlPFQgfCBudWxsPjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRMb2dpblJvdXRlID0gJy9hdXRoL2xvZ2luJztcclxuXHJcbiAgZ2V0IGF1dGhTdGF0ZSQoKTogT2JzZXJ2YWJsZTxCYXNlQXV0aFN0YXRlPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXV0aFN0YXRlJDtcclxuICB9XHJcblxyXG4gIGdldCBsb2dpblN0YXRlJCgpOiBPYnNlcnZhYmxlPExvZ2luU3RhdGU+IHtcclxuICAgIHJldHVybiB0aGlzLl9sb2dpblN0YXRlJDtcclxuICB9XHJcblxyXG4gIGdldCByZWFkeUxvZ2luU3RhdGUkKCk6IE9ic2VydmFibGU8TG9naW5TdGF0ZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5TG9naW5TdGF0ZSQ7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVhZHlBdXRoU3RhdGUkKCk6IE9ic2VydmFibGU8QmFzZUF1dGhTdGF0ZTxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5QXV0aFN0YXRlJDtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyJCgpOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdXNlciQ7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVhZHlVc2VyJCgpOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVhZHlVc2VyJDtcclxuICB9XHJcblxyXG4gIGdldCBpc0xvZ2dlZEluJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLl9pc0xvZ2dlZEluJDtcclxuICB9XHJcblxyXG4gIGdldCBsb2dpblJvdXRlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0TG9naW5Sb3V0ZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2F1dGhTdGF0ZSQgPSB0aGlzLmF1dGhTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLl91c2VyJCA9IHRoaXMuX2F1dGhTdGF0ZSQucGlwZShtYXAoKGVsZW0pID0+IGVsZW0udXNlcikpO1xyXG4gICAgdGhpcy5fbG9naW5TdGF0ZSQgPSB0aGlzLl9hdXRoU3RhdGUkLnBpcGUobWFwKChlbGVtKSA9PiBlbGVtLmxvZ2luU3RhdGUpKTtcclxuICAgIHRoaXMuX2lzTG9nZ2VkSW4kID0gdGhpcy5fbG9naW5TdGF0ZSQucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZSA9PT0gJ2xvZ2dlZC1pbicpKTtcclxuXHJcbiAgICB0aGlzLl9yZWFkeUF1dGhTdGF0ZSQgPSB0aGlzLl9hdXRoU3RhdGUkLnBpcGUoZmlsdGVyKChlbGVtKSA9PiBlbGVtLmxvZ2luU3RhdGUgIT09ICdwZW5kaW5nJykpO1xyXG4gICAgdGhpcy5fcmVhZHlMb2dpblN0YXRlJCA9IHRoaXMuX3JlYWR5QXV0aFN0YXRlJC5waXBlKG1hcCgoZWxlbSkgPT4gZWxlbS5sb2dpblN0YXRlKSk7XHJcbiAgICB0aGlzLl9yZWFkeVVzZXIkID0gdGhpcy5fcmVhZHlBdXRoU3RhdGUkLnBpcGUobWFwKChlbGVtKSA9PiBlbGVtLnVzZXIpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB1c2VyTG9nZ2VkSW4odXNlcjogVCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU3RhdGVTdWJqZWN0Lm5leHQobmV3IExvZ2dlZEluQXV0aFN0YXRlPFQ+KHVzZXIpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB1c2VyTG9nZ2VkT3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU3RhdGVTdWJqZWN0Lm5leHQobmV3IE5vdExvZ2dlZEluQXV0aFN0YXRlKCkpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { map } from 'rxjs/operators';\nimport { BaseAuthService } from '../base-auth.service';\nexport const loggedInGuardFn = () => {\n const router = inject(Router);\n return inject(BaseAuthService).readyAuthState$.pipe(map((state) => {\n if (state.loginState === 'logged-in') {\n return true;\n }\n return router.createUrlTree(['/auth/login']);\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLWluLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9hdXRoL2d1YXJkcy9sb2dnZWQtaW4uZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQWlCLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFrQixHQUFrQyxFQUFFO0lBQ2hGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUNqRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNaLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2FuQWN0aXZhdGVGbiwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VBdXRoU2VydmljZSB9IGZyb20gJy4uL2Jhc2UtYXV0aC5zZXJ2aWNlJztcclxuZXhwb3J0IGNvbnN0IGxvZ2dlZEluR3VhcmRGbjogQ2FuQWN0aXZhdGVGbiA9ICgpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiA9PiB7XHJcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgcmV0dXJuIGluamVjdChCYXNlQXV0aFNlcnZpY2UpLnJlYWR5QXV0aFN0YXRlJC5waXBlKFxyXG4gICAgbWFwKChzdGF0ZSkgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubG9naW5TdGF0ZSA9PT0gJ2xvZ2dlZC1pbicpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHJvdXRlci5jcmVhdGVVcmxUcmVlKFsnL2F1dGgvbG9naW4nXSk7XHJcbiAgICB9KSxcclxuICApO1xyXG59O1xyXG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { map } from 'rxjs/operators';\nimport { BaseAuthService } from '../base-auth.service';\nexport const loggedOutGuardFn = () => {\n const router = inject(Router);\n return inject(BaseAuthService).readyLoginState$.pipe(map((state) => {\n if (state !== 'logged-in') {\n return true;\n }\n return router.createUrlTree(['/']);\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLW91dC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvYXV0aC9ndWFyZHMvbG9nZ2VkLW91dC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBaUIsTUFBTSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFFakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBa0IsR0FBa0MsRUFBRTtJQUNqRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNaLElBQUksS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUZuLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmFzZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1hdXRoLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGxvZ2dlZE91dEd1YXJkRm46IENhbkFjdGl2YXRlRm4gPSAoKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gPT4ge1xyXG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIHJldHVybiBpbmplY3QoQmFzZUF1dGhTZXJ2aWNlKS5yZWFkeUxvZ2luU3RhdGUkLnBpcGUoXHJcbiAgICBtYXAoKHN0YXRlKSA9PiB7XHJcbiAgICAgIGlmIChzdGF0ZSAhPT0gJ2xvZ2dlZC1pbicpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLyddKTtcclxuICAgIH0pLFxyXG4gICk7XHJcbn07XHJcbiJdfQ==","export const DEFAULT_OPTIONS = {\n withCredentials: true,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1iYXNlLWRhby1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9kYW8vaHR0cC1iYXNlLWRhby1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBdUI7SUFDakQsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIdHRwQmFzZURhb09wdGlvbnMge1xyXG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9PUFRJT05TOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7XHJcbiAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxyXG59O1xyXG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { DEFAULT_OPTIONS } from '../http-base-dao-options';\nexport class InternalHttpBaseDao {\n constructor(routeUrl, options = {}) {\n this.http = inject(HttpClient);\n this.routeUrl = routeUrl;\n this.options = {\n ...DEFAULT_OPTIONS,\n ...options\n };\n }\n listInternal(customOptions = {}) {\n return this.http.get(this.routeUrl, this.mergeCustomOptions(customOptions));\n }\n createInternal(data, customOptions = {}) {\n if (!data) {\n throw new Error('Entry must exist to be created');\n }\n return this.http.post(this.routeUrl, data, this.mergeCustomOptions(customOptions));\n }\n updateInternal(id, data, customOptions = {}) {\n if (!id) {\n throw new Error('Entry must exist to be updated');\n }\n return this.http.put(this.routeUrl + '/' + id, data, this.mergeCustomOptions(customOptions));\n }\n deleteInternal(id, customOptions = {}) {\n if (!id) {\n throw new Error('Entry must exist to be deleted');\n }\n return this.http.delete(this.routeUrl + '/' + id, this.mergeCustomOptions(customOptions));\n }\n readInternal(id, customOptions = {}) {\n return this.http.get(this.routeUrl + '/' + id, this.mergeCustomOptions(customOptions));\n }\n mergeCustomOptions(customOptions) {\n return {\n ...this.options,\n ...customOptions\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtaHR0cC1iYXNlLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvZGFvL2ludGVybmFsL2ludGVybmFsLWh0dHAtYmFzZS1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBc0IsTUFBTSwwQkFBMEIsQ0FBQztBQUcvRSxNQUFNLE9BQWdCLG1CQUFtQjtJQUt2QyxZQUFzQixRQUFnQixFQUFFLFVBQThCLEVBQUU7UUFKckQsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUszQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsR0FBRyxlQUFlO1lBQ2xCLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDO0lBRVMsWUFBWSxDQUFDLGdCQUFvQyxFQUFFO1FBQzNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRVMsY0FBYyxDQUFDLElBQVksRUFBRSxnQkFBb0MsRUFBRTtRQUMzRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVTLGNBQWMsQ0FBQyxFQUFTLEVBQUUsSUFBWSxFQUFFLGdCQUFvQyxFQUFFO1FBQ3RGLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFUyxjQUFjLENBQUMsRUFBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3hFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBSyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVTLFlBQVksQ0FBQyxFQUFTLEVBQUUsZ0JBQW9DLEVBQUU7UUFDdEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVPLGtCQUFrQixDQUFDLGFBQWlDO1FBQzFELE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsR0FBRyxhQUFhO1NBQ2pCLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBERUZBVUxUX09QVElPTlMsIEh0dHBCYXNlRGFvT3B0aW9ucyB9IGZyb20gJy4uL2h0dHAtYmFzZS1kYW8tb3B0aW9ucyc7XHJcbmltcG9ydCB7IERhb0lkIH0gZnJvbSAnLi4vZGFvLWlkJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbnRlcm5hbEh0dHBCYXNlRGFvPFRJPiB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucztcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVVcmw6IHN0cmluZztcclxuXHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHJvdXRlVXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KSB7XHJcbiAgICB0aGlzLnJvdXRlVXJsID0gcm91dGVVcmw7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB7XHJcbiAgICAgIC4uLkRFRkFVTFRfT1BUSU9OUyxcclxuICAgICAgLi4ub3B0aW9uc1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBsaXN0SW50ZXJuYWwoY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPFRJW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRJW10+KHRoaXMucm91dGVVcmwsIHRoaXMubWVyZ2VDdXN0b21PcHRpb25zKGN1c3RvbU9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVJbnRlcm5hbChkYXRhOiBvYmplY3QsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUST4ge1xyXG4gICAgaWYgKCFkYXRhKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignRW50cnkgbXVzdCBleGlzdCB0byBiZSBjcmVhdGVkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFRJPih0aGlzLnJvdXRlVXJsLCBkYXRhLCB0aGlzLm1lcmdlQ3VzdG9tT3B0aW9ucyhjdXN0b21PcHRpb25zKSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdXBkYXRlSW50ZXJuYWwoaWQ6IERhb0lkLCBkYXRhOiBvYmplY3QsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUST4ge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VudHJ5IG11c3QgZXhpc3QgdG8gYmUgdXBkYXRlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFRJPih0aGlzLnJvdXRlVXJsICsgJy8nICsgaWQsIGRhdGEsIHRoaXMubWVyZ2VDdXN0b21PcHRpb25zKGN1c3RvbU9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBkZWxldGVJbnRlcm5hbChpZDogRGFvSWQsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUST4ge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VudHJ5IG11c3QgZXhpc3QgdG8gYmUgZGVsZXRlZCcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8VEk+KHRoaXMucm91dGVVcmwgKyAnLycgKyBpZCwgdGhpcy5tZXJnZUN1c3RvbU9wdGlvbnMoY3VzdG9tT3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRJbnRlcm5hbChpZDogRGFvSWQsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUST4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VEk+KHRoaXMucm91dGVVcmwgKyAnLycgKyBpZCwgdGhpcy5tZXJnZUN1c3RvbU9wdGlvbnMoY3VzdG9tT3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtZXJnZUN1c3RvbU9wdGlvbnMoY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zKTogSHR0cEJhc2VEYW9PcHRpb25zIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcclxuICAgICAgLi4uY3VzdG9tT3B0aW9uc1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19","import { InternalHttpBaseDao } from './internal/internal-http-base-dao';\nexport class HttpBaseDao extends InternalHttpBaseDao {\n constructor(routeUrl, options = {}) {\n super(routeUrl, options);\n }\n list(customOptions = {}) {\n return this.listInternal(customOptions);\n }\n create(entry, customOptions = {}) {\n return this.createInternal(entry, customOptions);\n }\n update(id, entry, customOptions = {}) {\n return this.updateInternal(id, entry, customOptions);\n }\n delete(id, customOptions = {}) {\n return this.deleteInternal(id, customOptions);\n }\n read(id, customOptions = {}) {\n return this.readInternal(id, customOptions);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1iYXNlLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvZGFvL2h0dHAtYmFzZS1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEUsTUFBTSxPQUFnQixXQUFnQixTQUFRLG1CQUF1QjtJQUNuRSxZQUFzQixRQUFnQixFQUFFLFVBQThCLEVBQUU7UUFDdEUsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxDQUFDLGdCQUFvQyxFQUFFO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWtCLEVBQUUsZ0JBQW9DLEVBQUU7UUFDL0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVMsRUFBRSxLQUFrQixFQUFFLGdCQUFvQyxFQUFFO1FBQzFFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3RELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFTLEVBQUUsZ0JBQW9DLEVBQUU7UUFDcEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBCYXNlRGFvT3B0aW9ucyB9IGZyb20gJy4vaHR0cC1iYXNlLWRhby1vcHRpb25zJztcclxuaW1wb3J0IHsgRGFvSWQgfSBmcm9tICcuL2Rhby1pZCc7XHJcbmltcG9ydCB7IEludGVybmFsSHR0cEJhc2VEYW8gfSBmcm9tICcuL2ludGVybmFsL2ludGVybmFsLWh0dHAtYmFzZS1kYW8nO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEh0dHBCYXNlRGFvPFRJPiBleHRlbmRzIEludGVybmFsSHR0cEJhc2VEYW88VEk+IHtcclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Iocm91dGVVcmw6IHN0cmluZywgb3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pIHtcclxuICAgIHN1cGVyKHJvdXRlVXJsLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGxpc3QoY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPFRJW10+IHtcclxuICAgIHJldHVybiB0aGlzLmxpc3RJbnRlcm5hbChjdXN0b21PcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZShlbnRyeTogUGFydGlhbDxUST4sIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUST4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlSW50ZXJuYWwoZW50cnksIGN1c3RvbU9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGlkOiBEYW9JZCwgZW50cnk6IFBhcnRpYWw8VEk+LCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VEk+IHtcclxuICAgIHJldHVybiB0aGlzLnVwZGF0ZUludGVybmFsKGlkLCBlbnRyeSwgY3VzdG9tT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBkZWxldGUoaWQ6IERhb0lkLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VEk+IHtcclxuICAgIHJldHVybiB0aGlzLmRlbGV0ZUludGVybmFsKGlkLCBjdXN0b21PcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHJlYWQoaWQ6IERhb0lkLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VEk+IHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRJbnRlcm5hbChpZCwgY3VzdG9tT3B0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { firstValueFrom } from 'rxjs';\nimport { InternalHttpBaseDao } from './internal/internal-http-base-dao';\nexport class PromiseHttpBaseDao extends InternalHttpBaseDao {\n constructor(routeUrl, options = {}) {\n super(routeUrl, options);\n }\n list(customOptions = {}) {\n return firstValueFrom(this.listInternal(customOptions));\n }\n create(data, customOptions = {}) {\n return firstValueFrom(this.createInternal(data, customOptions));\n }\n update(id, data, customOptions = {}) {\n return firstValueFrom(this.updateInternal(id, data, customOptions));\n }\n delete(id, customOptions = {}) {\n return firstValueFrom(this.deleteInternal(id, customOptions));\n }\n read(id, customOptions = {}) {\n return firstValueFrom(this.readInternal(id, customOptions));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS1odHRwLWJhc2UtZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9kYW8vcHJvbWlzZS1odHRwLWJhc2UtZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEUsTUFBTSxPQUFnQixrQkFBdUIsU0FBUSxtQkFBdUI7SUFDMUUsWUFBc0IsUUFBZ0IsRUFBRSxVQUE4QixFQUFFO1FBQ3RFLEtBQUssQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksQ0FBQyxnQkFBb0MsRUFBRTtRQUN6QyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZLEVBQUUsZ0JBQW9DLEVBQUU7UUFDekQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVMsRUFBRSxJQUFZLEVBQUUsZ0JBQW9DLEVBQUU7UUFDcEUsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFTLEVBQUUsZ0JBQW9DLEVBQUU7UUFDdEQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxDQUFDLEVBQVMsRUFBRSxnQkFBb0MsRUFBRTtRQUNwRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBCYXNlRGFvT3B0aW9ucyB9IGZyb20gJy4vaHR0cC1iYXNlLWRhby1vcHRpb25zJztcclxuaW1wb3J0IHsgRGFvSWQgfSBmcm9tICcuL2Rhby1pZCc7XHJcbmltcG9ydCB7IEludGVybmFsSHR0cEJhc2VEYW8gfSBmcm9tICcuL2ludGVybmFsL2ludGVybmFsLWh0dHAtYmFzZS1kYW8nO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFByb21pc2VIdHRwQmFzZURhbzxUST4gZXh0ZW5kcyBJbnRlcm5hbEh0dHBCYXNlRGFvPFRJPiB7XHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHJvdXRlVXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KSB7XHJcbiAgICBzdXBlcihyb3V0ZVVybCwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBsaXN0KGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxUSVtdPiB7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5saXN0SW50ZXJuYWwoY3VzdG9tT3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGRhdGE6IG9iamVjdCwgY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBQcm9taXNlPFRJPiB7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5jcmVhdGVJbnRlcm5hbChkYXRhLCBjdXN0b21PcHRpb25zKSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoaWQ6IERhb0lkLCBkYXRhOiBvYmplY3QsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxUST4ge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMudXBkYXRlSW50ZXJuYWwoaWQsIGRhdGEsIGN1c3RvbU9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShpZDogRGFvSWQsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxUST4ge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuZGVsZXRlSW50ZXJuYWwoaWQsIGN1c3RvbU9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIHJlYWQoaWQ6IERhb0lkLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IFByb21pc2U8VEk+IHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlYWRJbnRlcm5hbChpZCwgY3VzdG9tT3B0aW9ucykpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { map } from 'rxjs';\nimport { InternalHttpBaseDao } from './internal/internal-http-base-dao';\nexport class ConvertedHttpBaseDao extends InternalHttpBaseDao {\n constructor(routeUrl, converter, options = {}) {\n super(routeUrl, options);\n this.converter = converter;\n }\n list(customOptions = {}) {\n return this.listInternal(customOptions).pipe((result) => this.mapServerInterfaceListToModelList(result));\n }\n create(entry, customOptions = {}) {\n const createData = this.converter.toJson(entry);\n return this.createInternal(createData, customOptions).pipe((result) => this.mapServerInterfaceToModel(result));\n }\n update(id, entry, customOptions = {}) {\n const updateData = this.converter.toJson(entry);\n return this.updateInternal(id, updateData, customOptions).pipe((result) => this.mapServerInterfaceToModel(result));\n }\n delete(id, customOptions = {}) {\n return this.deleteInternal(id, customOptions).pipe((result) => this.mapServerInterfaceToModel(result));\n }\n read(id, customOptions = {}) {\n return this.readInternal(id, customOptions).pipe((result) => this.mapServerInterfaceToModel(result));\n }\n mapServerInterfaceListToModelList(source$) {\n return source$.pipe(map((list) => {\n if (!list?.length) {\n return [];\n }\n return list.map((elem) => this.converter.fromJson(elem));\n }));\n }\n mapServerInterfaceToModel(source$) {\n return source$.pipe(map((element) => this.converter.fromJson(element)));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVkLWh0dHAtYmFzZS1kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2Rhby9jb252ZXJ0ZWQtaHR0cC1iYXNlLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR3hFLE1BQU0sT0FBZ0Isb0JBQTZCLFNBQVEsbUJBQXVCO0lBRWhGLFlBQXNCLFFBQWdCLEVBQUUsU0FBNEIsRUFBRSxVQUE4QixFQUFFO1FBQ3BHLEtBQUssQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksQ0FBQyxnQkFBb0MsRUFBRTtRQUN6QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVMsRUFBRSxnQkFBb0MsRUFBRTtRQUN0RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFTLEVBQUUsS0FBa0IsRUFBRSxnQkFBb0MsRUFBRTtRQUMxRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3RELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsSUFBSSxDQUFDLEVBQVMsRUFBRSxnQkFBb0MsRUFBRTtRQUNwRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVPLGlDQUFpQyxDQUFDLE9BQXlCO1FBQ2pFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxPQUF1QjtRQUN2RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBCYXNlRGFvT3B0aW9ucyB9IGZyb20gJy4vaHR0cC1iYXNlLWRhby1vcHRpb25zJztcclxuaW1wb3J0IHsgRGFvSWQgfSBmcm9tICcuL2Rhby1pZCc7XHJcbmltcG9ydCB7IEludGVybmFsSHR0cEJhc2VEYW8gfSBmcm9tICcuL2ludGVybmFsL2ludGVybmFsLWh0dHAtYmFzZS1kYW8nO1xyXG5pbXBvcnQgeyBDb252ZXJ0ZXIgfSBmcm9tICcuL2NvbnZlcnRlcic7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29udmVydGVkSHR0cEJhc2VEYW88VEksIFRNPiBleHRlbmRzIEludGVybmFsSHR0cEJhc2VEYW88VEk+IHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udmVydGVyOiBDb252ZXJ0ZXI8VEksIFRNPjtcclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Iocm91dGVVcmw6IHN0cmluZywgY29udmVydGVyOiBDb252ZXJ0ZXI8VEksIFRNPiwgb3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pIHtcclxuICAgIHN1cGVyKHJvdXRlVXJsLCBvcHRpb25zKTtcclxuICAgIHRoaXMuY29udmVydGVyID0gY29udmVydGVyO1xyXG4gIH1cclxuXHJcbiAgbGlzdChjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VE1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubGlzdEludGVybmFsKGN1c3RvbU9wdGlvbnMpLnBpcGUoKHJlc3VsdCkgPT4gdGhpcy5tYXBTZXJ2ZXJJbnRlcmZhY2VMaXN0VG9Nb2RlbExpc3QocmVzdWx0KSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoZW50cnk6IFRNLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VE0+IHtcclxuICAgIGNvbnN0IGNyZWF0ZURhdGEgPSB0aGlzLmNvbnZlcnRlci50b0pzb24oZW50cnkpO1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlSW50ZXJuYWwoY3JlYXRlRGF0YSwgY3VzdG9tT3B0aW9ucykucGlwZSgocmVzdWx0KSA9PiB0aGlzLm1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwocmVzdWx0KSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoaWQ6IERhb0lkLCBlbnRyeTogUGFydGlhbDxUTT4sIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUTT4ge1xyXG4gICAgY29uc3QgdXBkYXRlRGF0YSA9IHRoaXMuY29udmVydGVyLnRvSnNvbihlbnRyeSk7XHJcbiAgICByZXR1cm4gdGhpcy51cGRhdGVJbnRlcm5hbChpZCwgdXBkYXRlRGF0YSwgY3VzdG9tT3B0aW9ucykucGlwZSgocmVzdWx0KSA9PiB0aGlzLm1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwocmVzdWx0KSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGUoaWQ6IERhb0lkLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VE0+IHtcclxuICAgIHJldHVybiB0aGlzLmRlbGV0ZUludGVybmFsKGlkLCBjdXN0b21PcHRpb25zKS5waXBlKChyZXN1bHQpID0+IHRoaXMubWFwU2VydmVySW50ZXJmYWNlVG9Nb2RlbChyZXN1bHQpKTtcclxuICB9XHJcblxyXG4gIHJlYWQoaWQ6IERhb0lkLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VE0+IHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRJbnRlcm5hbChpZCwgY3VzdG9tT3B0aW9ucykucGlwZSgocmVzdWx0KSA9PiB0aGlzLm1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwocmVzdWx0KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcFNlcnZlckludGVyZmFjZUxpc3RUb01vZGVsTGlzdChzb3VyY2UkOiBPYnNlcnZhYmxlPFRJW10+KTogT2JzZXJ2YWJsZTxUTVtdPiB7XHJcbiAgICByZXR1cm4gc291cmNlJC5waXBlKFxyXG4gICAgICBtYXAoKGxpc3QpID0+IHtcclxuICAgICAgICBpZiAoIWxpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGxpc3QubWFwKChlbGVtKSA9PiB0aGlzLmNvbnZlcnRlci5mcm9tSnNvbihlbGVtKSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYXBTZXJ2ZXJJbnRlcmZhY2VUb01vZGVsKHNvdXJjZSQ6IE9ic2VydmFibGU8VEk+KTogT2JzZXJ2YWJsZTxUTT4ge1xyXG4gICAgcmV0dXJuIHNvdXJjZSQucGlwZShtYXAoKGVsZW1lbnQpID0+IHRoaXMuY29udmVydGVyLmZyb21Kc29uKGVsZW1lbnQpKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { firstValueFrom, map } from 'rxjs';\nimport { InternalHttpBaseDao } from './internal/internal-http-base-dao';\nexport class ConvertedPromiseHttpBaseDao extends InternalHttpBaseDao {\n constructor(routeUrl, converter, options = {}) {\n super(routeUrl, options);\n this.converter = converter;\n }\n list(customOptions = {}) {\n return firstValueFrom(this.listInternal(customOptions).pipe(this.mapServerInterfaceListToModelList.bind(this)));\n }\n create(entry, customOptions = {}) {\n const createData = this.converter.toJson(entry);\n return firstValueFrom(this.createInternal(createData, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));\n }\n update(id, entry, customOptions = {}) {\n const updateData = this.converter.toJson(entry);\n return firstValueFrom(this.updateInternal(id, updateData, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));\n }\n delete(id, customOptions = {}) {\n return firstValueFrom(this.deleteInternal(id, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));\n }\n read(id, customOptions = {}) {\n return firstValueFrom(this.readInternal(id, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));\n }\n mapServerInterfaceListToModelList(source$) {\n return source$.pipe(map((list) => {\n if (!list?.length) {\n return [];\n }\n return list.map((elem) => this.converter.fromJson(elem));\n }));\n }\n mapServerInterfaceToModel(source$) {\n return source$.pipe(map((element) => this.converter.fromJson(element)));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVkLXByb21pc2UtaHR0cC1iYXNlLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvZGFvL2NvbnZlcnRlZC1wcm9taXNlLWh0dHAtYmFzZS1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHeEUsTUFBTSxPQUFnQiwyQkFBb0MsU0FBUSxtQkFBdUI7SUFFdkYsWUFBc0IsUUFBZ0IsRUFBRSxTQUE0QixFQUFFLFVBQThCLEVBQUU7UUFDcEcsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxDQUFDLGdCQUFvQyxFQUFFO1FBQ3pDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE9BQU8sY0FBYyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMvRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFTLEVBQUUsS0FBa0IsRUFBRSxnQkFBb0MsRUFBRTtRQUMxRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25HLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVMsRUFBRSxnQkFBb0MsRUFBRTtRQUN0RCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFTLEVBQUUsZ0JBQW9DLEVBQUU7UUFDcEQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFTyxpQ0FBaUMsQ0FBQyxPQUF5QjtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8seUJBQXlCLENBQUMsT0FBdUI7UUFDdkQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cEJhc2VEYW9PcHRpb25zIH0gZnJvbSAnLi9odHRwLWJhc2UtZGFvLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBEYW9JZCB9IGZyb20gJy4vZGFvLWlkJztcclxuaW1wb3J0IHsgSW50ZXJuYWxIdHRwQmFzZURhbyB9IGZyb20gJy4vaW50ZXJuYWwvaW50ZXJuYWwtaHR0cC1iYXNlLWRhbyc7XHJcbmltcG9ydCB7IENvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVyJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb252ZXJ0ZWRQcm9taXNlSHR0cEJhc2VEYW88VEksIFRNPiBleHRlbmRzIEludGVybmFsSHR0cEJhc2VEYW88VEk+IHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udmVydGVyOiBDb252ZXJ0ZXI8VEksIFRNPjtcclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Iocm91dGVVcmw6IHN0cmluZywgY29udmVydGVyOiBDb252ZXJ0ZXI8VEksIFRNPiwgb3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pIHtcclxuICAgIHN1cGVyKHJvdXRlVXJsLCBvcHRpb25zKTtcclxuICAgIHRoaXMuY29udmVydGVyID0gY29udmVydGVyO1xyXG4gIH1cclxuXHJcbiAgbGlzdChjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IFByb21pc2U8VE1bXT4ge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMubGlzdEludGVybmFsKGN1c3RvbU9wdGlvbnMpLnBpcGUodGhpcy5tYXBTZXJ2ZXJJbnRlcmZhY2VMaXN0VG9Nb2RlbExpc3QuYmluZCh0aGlzKSkpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGVudHJ5OiBUTSwgY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBQcm9taXNlPFRNPiB7XHJcbiAgICBjb25zdCBjcmVhdGVEYXRhID0gdGhpcy5jb252ZXJ0ZXIudG9Kc29uKGVudHJ5KTtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgdGhpcy5jcmVhdGVJbnRlcm5hbChjcmVhdGVEYXRhLCBjdXN0b21PcHRpb25zKS5waXBlKHRoaXMubWFwU2VydmVySW50ZXJmYWNlVG9Nb2RlbC5iaW5kKHRoaXMpKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoaWQ6IERhb0lkLCBlbnRyeTogUGFydGlhbDxUTT4sIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxUTT4ge1xyXG4gICAgY29uc3QgdXBkYXRlRGF0YSA9IHRoaXMuY29udmVydGVyLnRvSnNvbihlbnRyeSk7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgIHRoaXMudXBkYXRlSW50ZXJuYWwoaWQsIHVwZGF0ZURhdGEsIGN1c3RvbU9wdGlvbnMpLnBpcGUodGhpcy5tYXBTZXJ2ZXJJbnRlcmZhY2VUb01vZGVsLmJpbmQodGhpcykpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShpZDogRGFvSWQsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxUTT4ge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuZGVsZXRlSW50ZXJuYWwoaWQsIGN1c3RvbU9wdGlvbnMpLnBpcGUodGhpcy5tYXBTZXJ2ZXJJbnRlcmZhY2VUb01vZGVsLmJpbmQodGhpcykpKTtcclxuICB9XHJcblxyXG4gIHJlYWQoaWQ6IERhb0lkLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IFByb21pc2U8VE0+IHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlYWRJbnRlcm5hbChpZCwgY3VzdG9tT3B0aW9ucykucGlwZSh0aGlzLm1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwuYmluZCh0aGlzKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYXBTZXJ2ZXJJbnRlcmZhY2VMaXN0VG9Nb2RlbExpc3Qoc291cmNlJDogT2JzZXJ2YWJsZTxUSVtdPik6IE9ic2VydmFibGU8VE1bXT4ge1xyXG4gICAgcmV0dXJuIHNvdXJjZSQucGlwZShcclxuICAgICAgbWFwKChsaXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKCFsaXN0Py5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsaXN0Lm1hcCgoZWxlbSkgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUpzb24oZWxlbSkpO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwoc291cmNlJDogT2JzZXJ2YWJsZTxUST4pOiBPYnNlcnZhYmxlPFRNPiB7XHJcbiAgICByZXR1cm4gc291cmNlJC5waXBlKG1hcCgoZWxlbWVudCkgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUpzb24oZWxlbWVudCkpKTtcclxuICB9XHJcbn1cclxuIl19","export class Converter {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9kYW8vY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsU0FBUztDQUc5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb252ZXJ0ZXI8VEksIFRNPiB7XHJcbiAgYWJzdHJhY3QgZnJvbUpzb24ocmVzcG9uc2U6IFRJKTogVE07XHJcbiAgYWJzdHJhY3QgdG9Kc29uKG1vZGVsOiBQYXJ0aWFsPFRNPik6IFBhcnRpYWw8VEk+O1xyXG59XHJcbiJdfQ==","import { Directive, Input, output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class BaseControlValueAccessor {\n constructor() {\n this.valueChanged = output();\n this.onChange = null;\n this.onTouched = null;\n this.disabled = false;\n }\n get value() {\n return this._value;\n }\n set value(value) {\n if (this.disabled) {\n return;\n }\n if (this._value === value) {\n return;\n }\n this._value = value;\n this.onTouched?.();\n this.onChange?.(this._value);\n this.valueChanged.emit(this._value);\n }\n writeValue(value) {\n this.value = value;\n }\n registerOnChange(onChange) {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched) {\n this.onTouched = onTouched;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BaseControlValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: BaseControlValueAccessor, isStandalone: true, inputs: { value: \"value\" }, outputs: { valueChanged: \"valueChanged\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BaseControlValueAccessor, decorators: [{\n type: Directive\n }], propDecorators: { value: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9iYXNlL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXpELE1BQU0sT0FBZ0Isd0JBQXdCO0lBRDlDO1FBRUUsaUJBQVksR0FBRyxNQUFNLEVBQUssQ0FBQztRQUUzQixhQUFRLEdBQWtDLElBQUksQ0FBQztRQUMvQyxjQUFTLEdBQXdCLElBQUksQ0FBQztRQUV0QyxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBcUNsQjtJQWxDQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQVE7UUFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVE7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWdDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUF1QjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQzs4R0ExQ21CLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUQ3QyxTQUFTOzhCQWNLLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZhbHVlQ2hhbmdlQ2FsbGJhY2sgfSBmcm9tICcuLi90eXBlcy92YWx1ZS1jaGFuZ2UtY2FsbGJhY2sudHlwZSc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb250cm9sVmFsdWVBY2Nlc3NvcjxUID0gc3RyaW5nPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICB2YWx1ZUNoYW5nZWQgPSBvdXRwdXQ8VD4oKTtcclxuXHJcbiAgb25DaGFuZ2U6IFZhbHVlQ2hhbmdlQ2FsbGJhY2s8VD4gfCBudWxsID0gbnVsbDtcclxuICBvblRvdWNoZWQ6IFZvaWRGdW5jdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBfdmFsdWUhOiBUO1xyXG5cclxuICBnZXQgdmFsdWUoKTogVCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IFQpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fdmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5vblRvdWNoZWQ/LigpO1xyXG4gICAgdGhpcy5vbkNoYW5nZT8uKHRoaXMuX3ZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodGhpcy5fdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogVmFsdWVDaGFuZ2VDYWxsYmFjazxUPik6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBWb2lkRnVuY3Rpb24pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbn1cclxuIl19","import { Directive, model, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SignalBaseControlValueAccessor {\n constructor() {\n this.onChange = null;\n this.onTouched = null;\n this.value = model();\n this.disabled = signal(false);\n }\n /**\n * Function that will be called by the input to update the value of the form-control and the model\n * @param value The new input value passed by $event in the template\n */\n valueChanged(value) {\n if (this.disabled()) {\n return;\n }\n if (value === this.value()) {\n return;\n }\n this.onTouched?.();\n this.onChange?.(value);\n this.value.set(value);\n }\n writeValue(value) {\n this.value.set(value);\n }\n registerOnChange(onChange) {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched) {\n this.onTouched = onTouched;\n }\n setDisabledState(disabled) {\n this.disabled.set(disabled);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SignalBaseControlValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: SignalBaseControlValueAccessor, isStandalone: true, inputs: { value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: \"valueChange\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SignalBaseControlValueAccessor, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLWJhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvYmFzZS9zaWduYWwtYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJekQsTUFBTSxPQUFnQiw4QkFBOEI7SUFEcEQ7UUFFWSxhQUFRLEdBQWtDLElBQUksQ0FBQztRQUM5QyxjQUFTLEdBQXdCLElBQUksQ0FBQztRQUVqRCxVQUFLLEdBQUcsS0FBSyxFQUFLLENBQUM7UUFFVixhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBbUNuQztJQWpDQzs7O09BR0c7SUFDSCxZQUFZLENBQUMsS0FBUTtRQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFRO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFnQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBdUI7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWlCO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7OEdBeENtQiw4QkFBOEI7a0dBQTlCLDhCQUE4Qjs7MkZBQTlCLDhCQUE4QjtrQkFEbkQsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIG1vZGVsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsdWVDaGFuZ2VDYWxsYmFjayB9IGZyb20gJy4uL3R5cGVzL3ZhbHVlLWNoYW5nZS1jYWxsYmFjay50eXBlJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2lnbmFsQmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yPFQgPSBzdHJpbmc+IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIHByb3RlY3RlZCBvbkNoYW5nZTogVmFsdWVDaGFuZ2VDYWxsYmFjazxUPiB8IG51bGwgPSBudWxsO1xyXG4gIHByb3RlY3RlZCAgb25Ub3VjaGVkOiBWb2lkRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgdmFsdWUgPSBtb2RlbDxUPigpO1xyXG5cclxuICByZWFkb25seSBkaXNhYmxlZCA9IHNpZ25hbChmYWxzZSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGlucHV0IHRvIHVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIGZvcm0tY29udHJvbCBhbmQgdGhlIG1vZGVsXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBuZXcgaW5wdXQgdmFsdWUgcGFzc2VkIGJ5ICRldmVudCBpbiB0aGUgdGVtcGxhdGVcclxuICAgKi9cclxuICB2YWx1ZUNoYW5nZWQodmFsdWU6IFQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy52YWx1ZSgpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9uVG91Y2hlZD8uKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlPy4odmFsdWUpO1xyXG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogVmFsdWVDaGFuZ2VDYWxsYmFjazxUPik6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBWb2lkRnVuY3Rpb24pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZC5zZXQoZGlzYWJsZWQpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { ElementRef, Renderer2, Directive, input, inject, output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class NgAspectRatioDirective {\n constructor() {\n this.renderer = inject(Renderer2);\n this.hostElem = inject(ElementRef);\n this.ngAspectRatio = input.required();\n this.sizingMode = input('match-parent');\n this.containerWidthChanged = output();\n this.containerHeightChanged = output();\n this.targetRatio = this.ngAspectRatio;\n this.observer = new ResizeObserver(() => {\n this.calculateAndSetAspect();\n });\n }\n ngAfterViewInit() {\n this.observer.observe(this.hostElem.nativeElement.parentElement);\n }\n ngOnDestroy() {\n this.observer.disconnect();\n }\n calculateAndSetAspect() {\n this.renderer.removeStyle(this.hostElem.nativeElement, 'width');\n this.renderer.removeStyle(this.hostElem.nativeElement, 'height');\n let targetWidth;\n let targetHeight;\n if (this.sizingMode() === 'match-parent') {\n const hostWidth = this.hostElem.nativeElement.parentElement.offsetWidth;\n const hostHeight = this.hostElem.nativeElement.parentElement.offsetHeight;\n const hostAspectRatio = hostWidth / hostHeight;\n if (hostAspectRatio >= this.targetRatio()) {\n // use full height as base\n targetHeight = hostHeight;\n targetWidth = targetHeight * this.targetRatio();\n }\n else {\n // use full width as base\n targetWidth = hostWidth;\n targetHeight = targetWidth * (1 / this.targetRatio());\n }\n }\n else {\n // Add +1 to the dimensions because decimals get rounded\n const contentWidth = this.hostElem.nativeElement.offsetWidth + 1;\n const contentHeight = this.hostElem.nativeElement.offsetHeight + 1;\n const currentRatio = contentWidth / contentHeight;\n if (currentRatio >= this.targetRatio()) {\n targetWidth = contentWidth;\n targetHeight = targetWidth * (1 / this.targetRatio());\n }\n else {\n targetHeight = contentHeight;\n targetWidth = targetHeight * this.targetRatio();\n }\n }\n // Set calculated dimensions\n this.setAcInnerWidth(targetWidth);\n this.setAcInnerHeight(targetHeight);\n }\n setAcInnerWidth(width) {\n this.containerWidthChanged.emit(width);\n this.renderer.setStyle(this.hostElem.nativeElement, 'width', `${width}px`);\n }\n setAcInnerHeight(height) {\n this.containerHeightChanged.emit(height);\n this.renderer.setStyle(this.hostElem.nativeElement, 'height', `${height}px`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: NgAspectRatioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: NgAspectRatioDirective, isStandalone: true, selector: \"[ngAspectRatio]\", inputs: { ngAspectRatio: { classPropertyName: \"ngAspectRatio\", publicName: \"ngAspectRatio\", isSignal: true, isRequired: true, transformFunction: null }, sizingMode: { classPropertyName: \"sizingMode\", publicName: \"sizingMode\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { containerWidthChanged: \"containerWidthChanged\", containerHeightChanged: \"containerHeightChanged\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: NgAspectRatioDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngAspectRatio]'\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXNwZWN0LXJhdGlvLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvYXNwZWN0LWNvbnRhaW5lci9uZy1hc3BlY3QtcmF0aW8uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlCLFNBQVMsRUFBYSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWxILE1BQU0sT0FBTyxzQkFBc0I7SUFhakM7UUFaaUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixhQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRy9DLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ3pDLGVBQVUsR0FBRyxLQUFLLENBQWEsY0FBYyxDQUFDLENBQUM7UUFFL0MsMEJBQXFCLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFDekMsMkJBQXNCLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFFekIsZ0JBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBR2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFdB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dGVyVmlld0luaXQsIFJlbmRlcmVyMiwgT25EZXN0cm95LCBEaXJlY3RpdmUsIGlucHV0LCBpbmplY3QsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaXppbmdNb2RlIH0gZnJvbSAnLi9zaXppbmctbW9kZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tuZ0FzcGVjdFJhdGlvXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nQXNwZWN0UmF0aW9EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGhvc3RFbGVtID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuICBuZ0FzcGVjdFJhdGlvID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xyXG4gIHNpemluZ01vZGUgPSBpbnB1dDxTaXppbmdNb2RlPignbWF0Y2gtcGFyZW50Jyk7XHJcblxyXG4gIGNvbnRhaW5lcldpZHRoQ2hhbmdlZCA9IG91dHB1dDxudW1iZXI+KCk7XHJcbiAgY29udGFpbmVySGVpZ2h0Q2hhbmdlZCA9IG91dHB1dDxudW1iZXI+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0UmF0aW8gPSB0aGlzLm5nQXNwZWN0UmF0aW87XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlQW5kU2V0QXNwZWN0KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3RFbGVtLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGN1bGF0ZUFuZFNldEFzcGVjdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0RWxlbS5uYXRpdmVFbGVtZW50LCAnd2lkdGgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0RWxlbS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0Jyk7XHJcblxyXG4gICAgbGV0IHRhcmdldFdpZHRoOiBudW1iZXI7XHJcbiAgICBsZXQgdGFyZ2V0SGVpZ2h0OiBudW1iZXI7XHJcblxyXG4gICAgaWYgKHRoaXMuc2l6aW5nTW9kZSgpID09PSAnbWF0Y2gtcGFyZW50Jykge1xyXG4gICAgICBjb25zdCBob3N0V2lkdGggPSB0aGlzLmhvc3RFbGVtLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgY29uc3QgaG9zdEhlaWdodCA9IHRoaXMuaG9zdEVsZW0ubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgY29uc3QgaG9zdEFzcGVjdFJhdGlvID0gaG9zdFdpZHRoIC8gaG9zdEhlaWdodDtcclxuXHJcbiAgICAgIGlmIChob3N0QXNwZWN0UmF0aW8gPj0gdGhpcy50YXJnZXRSYXRpbygpKSB7XHJcbiAgICAgICAgLy8gdXNlIGZ1bGwgaGVpZ2h0IGFzIGJhc2VcclxuICAgICAgICB0YXJnZXRIZWlnaHQgPSBob3N0SGVpZ2h0O1xyXG4gICAgICAgIHRhcmdldFdpZHRoID0gdGFyZ2V0SGVpZ2h0ICogdGhpcy50YXJnZXRSYXRpbygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHVzZSBmdWxsIHdpZHRoIGFzIGJhc2VcclxuICAgICAgICB0YXJnZXRXaWR0aCA9IGhvc3RXaWR0aDtcclxuICAgICAgICB0YXJnZXRIZWlnaHQgPSB0YXJnZXRXaWR0aCAqICgxIC8gdGhpcy50YXJnZXRSYXRpbygpKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gQWRkICsxIHRvIHRoZSBkaW1lbnNpb25zIGJlY2F1c2UgZGVjaW1hbHMgZ2V0IHJvdW5kZWRcclxuICAgICAgY29uc3QgY29udGVudFdpZHRoID0gdGhpcy5ob3N0RWxlbS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgMTtcclxuICAgICAgY29uc3QgY29udGVudEhlaWdodCA9IHRoaXMuaG9zdEVsZW0ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAxO1xyXG5cclxuICAgICAgY29uc3QgY3VycmVudFJhdGlvID0gY29udGVudFdpZHRoIC8gY29udGVudEhlaWdodDtcclxuICAgICAgaWYgKGN1cnJlbnRSYXRpbyA+PSB0aGlzLnRhcmdldFJhdGlvKCkpIHtcclxuICAgICAgICB0YXJnZXRXaWR0aCA9IGNvbnRlbnRXaWR0aDtcclxuICAgICAgICB0YXJnZXRIZWlnaHQgPSB0YXJnZXRXaWR0aCAqICgxIC8gdGhpcy50YXJnZXRSYXRpbygpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0YXJnZXRIZWlnaHQgPSBjb250ZW50SGVpZ2h0O1xyXG4gICAgICAgIHRhcmdldFdpZHRoID0gdGFyZ2V0SGVpZ2h0ICogdGhpcy50YXJnZXRSYXRpbygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBTZXQgY2FsY3VsYXRlZCBkaW1lbnNpb25zXHJcbiAgICB0aGlzLnNldEFjSW5uZXJXaWR0aCh0YXJnZXRXaWR0aCk7XHJcbiAgICB0aGlzLnNldEFjSW5uZXJIZWlnaHQodGFyZ2V0SGVpZ2h0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QWNJbm5lcldpZHRoKHdpZHRoOiBudW1iZXIpIHtcclxuICAgIHRoaXMuY29udGFpbmVyV2lkdGhDaGFuZ2VkLmVtaXQod2lkdGgpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3dpZHRofXB4YCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEFjSW5uZXJIZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY29udGFpbmVySGVpZ2h0Q2hhbmdlZC5lbWl0KGhlaWdodCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW0ubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gIH1cclxufVxyXG4iXX0=","export const alignmentFlexMapping = new Map([\n ['center', 'center'],\n ['left', 'flex-start'],\n ['right', 'flex-end'],\n ['right', 'flex-end'],\n ['top', 'flex-start'],\n ['bottom', 'flex-end'],\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpZ25tZW50LWZsZXgtbWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvYXNwZWN0LWNvbnRhaW5lci9hbGlnbm1lbnQtZmxleC1tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBRyxDQUF5RDtJQUNsRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDcEIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO0lBQ3RCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUNyQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFDckIsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO0lBQ3JCLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQztDQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIb3Jpem9udGFsQWxpZ25tZW50IH0gZnJvbSAnLi9ob3Jpem9udGFsLWFsaWdubWVudCc7XHJcbmltcG9ydCB7IFZlcnRpY2FsQWxpZ25tZW50IH0gZnJvbSAnLi92ZXJ0aWNhbC1hbGlnbm1lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgRmxleEFsaWdubWVudCA9ICdjZW50ZXInIHwgJ2ZsZXgtc3RhcnQnIHwgJ2ZsZXgtZW5kJztcclxuXHJcbmV4cG9ydCBjb25zdCBhbGlnbm1lbnRGbGV4TWFwcGluZyA9IG5ldyBNYXA8SG9yaXpvbnRhbEFsaWdubWVudCB8IFZlcnRpY2FsQWxpZ25tZW50LCBGbGV4QWxpZ25tZW50PihbXHJcbiAgWydjZW50ZXInLCAnY2VudGVyJ10sXHJcbiAgWydsZWZ0JywgJ2ZsZXgtc3RhcnQnXSxcclxuICBbJ3JpZ2h0JywgJ2ZsZXgtZW5kJ10sXHJcbiAgWydyaWdodCcsICdmbGV4LWVuZCddLFxyXG4gIFsndG9wJywgJ2ZsZXgtc3RhcnQnXSxcclxuICBbJ2JvdHRvbScsICdmbGV4LWVuZCddLFxyXG5dKTtcclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1iYXNlLWxpYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9hbmd1bGFyLWJhc2UtbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["map"],"mappings":";;;;;;;;;AAIO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;AAChD,YAAY,IAAI,KAAK,YAAY,aAAa,EAAE;AAChD,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAC1D;AACA,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB;AACA,IAAI,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE;AAC9B,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAChC;AACA,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;AACjD;AACA;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACpL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC9BhC,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1D;AACA,IAAI,iBAAiB,CAAC,WAAW,EAAE;AACnC,QAAQ,QAAQ,WAAW,CAAC,MAAM;AAClC,YAAY,KAAK,MAAM;AACvB,gBAAgB,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB;AAChB,YAAY,KAAK,MAAM;AACvB,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,gBAAgB;AAChB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAClC,gBAAgB;AAChB;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C;AACA,IAAI,MAAM,SAAS,GAAG;AACtB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACzB,YAAY;AACZ;AACA,QAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7E;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AAChC,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY;AACZ;AACA,QAAQ,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;AACjD,YAAY,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7D;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD;AACA;;AC5CA;AACA;AACA;AAGO,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,GAAG;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1D;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACnD;AACA;;ACVO,MAAM,kBAAkB,SAAS,aAAa,CAAC;AACtD,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACvC;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C;AACA,IAAI,iBAAiB,CAAC,WAAW,EAAE;AACnC,QAAQ,QAAQ,WAAW,CAAC,MAAM;AAClC,YAAY,KAAK,cAAc;AAC/B,gBAAgB,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB;AAChB;AACA;AACA;;ACnBO,MAAM,sBAAsB,SAAS,kBAAkB,CAAC;AAC/D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB;AACA;;ACLO,MAAM,sBAAsB,SAAS,kBAAkB,CAAC;AAC/D,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,KAAK,CAAC,SAAS,CAAC;AACxB,QAAQ,IAAI,CAAC,SAAS,GAAG,GAAG;AAC5B;AACA,IAAI,iBAAiB,CAAC,WAAW,EAAE;AACnC,QAAQ,QAAQ,WAAW,CAAC,MAAM;AAClC,YAAY,KAAK,MAAM;AACvB,gBAAgB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AACrD,gBAAgB;AAChB,YAAY,KAAK,MAAM;AACvB,gBAAgB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AACpD,gBAAgB;AAChB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;AACnD,gBAAgB;AAChB;AACA;AACA,IAAI,UAAU,CAAC,EAAE,EAAE;AACnB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAClD;AACA,IAAI,SAAS,CAAC,EAAE,EAAE;AAClB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD;AACA;;ACzBO,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACnD;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AAC9B;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACtO;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,gBAAgB;AAC9C,oBAAoB,UAAU,EAAE;AAChC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC;AACxC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACtBP,MAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK;;ACAtD;AAEY,MAAC,2BAA2B,GAAG,CAAC,MAAM,KAAK;AACvD,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC/B,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAClC,YAAY,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;AAC5D;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACzC,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAClC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACpC,gBAAgB;AAChB;AACA,YAAY,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;AACjD,gBAAgB,MAAM,WAAW,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5E,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE;AACtD,oBAAoB,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW;AAChD;AACA;AACA,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5C;AACA;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,SAAS;AACT,QAAQ,OAAO,MAAM;AACrB;AACA;;AC/BA;AAGO,MAAM,QAAQ,CAAC;AACtB,IAAI,OAAO,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE;AACjE,QAAQ,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC/D,YAAY,IAAI,SAAS,IAAI,OAAO,YAAY,SAAS,EAAE;AAC3D,gBAAgB,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAC;AAC1D;AACA,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACjD,gBAAgB,OAAO,CAAC,gBAAgB,EAAE;AAC1C;AACA,SAAS,CAAC;AACV;AACA,IAAI,OAAO,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;AAC7D,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,YAAY,MAAM,GAAG,OAAO,CAAC,GAAG,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACnG,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC5C,gBAAgB,WAAW,CAAC,MAAM,CAAC,GAAG,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClF;AACA;AACA,QAAQ,OAAO,WAAW;AAC1B;AACA,IAAI,OAAO,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE;AACtD,QAAQ,IAAI,OAAO,GAAG,KAAK;AAC3B,QAAQ,IAAI,MAAM,GAAG,EAAE;AACvB,QAAQ,IAAI,OAAO,OAAO,KAAK,OAAO,OAAO,EAAE;AAC/C,YAAY,OAAO,GAAG,IAAI;AAC1B,YAAY,MAAM,GAAG,OAAO;AAC5B;AACA,aAAa,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzD,YAAY,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACvF,YAAY,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1C,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC1D,oBAAoB;AACpB;AACA;AACA,gBAAgB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACrH,gBAAgB,IAAI,YAAY,EAAE;AAClC,oBAAoB,OAAO,GAAG,IAAI;AAClC,oBAAoB,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS;AAC9C;AACA;AACA;AACA,aAAa,IAAI,OAAO,KAAK,OAAO,EAAE;AACtC,YAAY,OAAO,GAAG,IAAI;AAC1B,YAAY,MAAM,GAAG,OAAO;AAC5B;AACA,QAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;AAChC;AACA;;ACnDY,MAAC,qBAAqB,GAAG,CAAC,KAAK,KAAK;AAChD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACxC;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,KAAK;AAChB;;ACNO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS;AACnC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA;;ACLO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,CAAC,UAAU,GAAG,WAAW;AACrC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA;;ACLO,MAAM,oBAAoB,CAAC;AAClC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,YAAY;AACtC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA;;ACFO,MAAM,eAAe,CAAC;AAC7B,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY;AAChC;AACA,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,OAAO,IAAI,CAAC,iBAAiB;AACrC;AACA,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,gBAAgB;AACpC;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY;AAChC;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,iBAAiB;AACrC;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAC,IAAI,gBAAgB,EAAE,CAAC;AAC3E,QAAQ,IAAI,CAAC,iBAAiB,GAAG,aAAa;AAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AAC/D,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,WAAW,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;AACtG,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/E;AACA,IAAI,YAAY,CAAC,IAAI,EAAE;AACvB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC/D;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC;AAC9D;AACA;;ACzCY,MAAC,eAAe,GAAG,MAAM;AACrC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC,IAAI,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AACvE,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW,EAAE;AAC9C,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,CAAC;AACpD,KAAK,CAAC,CAAC;AACP;;ACRY,MAAC,gBAAgB,GAAG,MAAM;AACtC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC,IAAI,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AACxE,QAAQ,IAAI,KAAK,KAAK,WAAW,EAAE;AACnC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,KAAK,CAAC,CAAC;AACP;;ACZY,MAAC,eAAe,GAAG;AAC/B,IAAI,eAAe,EAAE,IAAI;AACzB;;ACCO,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE;AACxC,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACtC,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,OAAO,GAAG;AACvB,YAAY,GAAG,eAAe;AAC9B,YAAY,GAAG;AACf,SAAS;AACT;AACA,IAAI,YAAY,CAAC,aAAa,GAAG,EAAE,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;AACnF;AACA,IAAI,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,EAAE,EAAE;AAC7C,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AAC7D;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC1F;AACA,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,EAAE,EAAE;AACjD,QAAQ,IAAI,CAAC,EAAE,EAAE;AACjB,YAAY,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AAC7D;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;AACpG;AACA,IAAI,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AAC3C,QAAQ,IAAI,CAAC,EAAE,EAAE;AACjB,YAAY,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AAC7D;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;AACjG;AACA,IAAI,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC9F;AACA,IAAI,kBAAkB,CAAC,aAAa,EAAE;AACtC,QAAQ,OAAO;AACf,YAAY,GAAG,IAAI,CAAC,OAAO;AAC3B,YAAY,GAAG;AACf,SAAS;AACT;AACA;;ACzCO,MAAM,WAAW,SAAS,mBAAmB,CAAC;AACrD,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE;AACxC,QAAQ,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;AAChC;AACA,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;AAC/C;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC;AACxD;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE;AAC1C,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC;AAC5D;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC;AACrD;AACA,IAAI,IAAI,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,CAAC;AACnD;AACA;;AClBO,MAAM,kBAAkB,SAAS,mBAAmB,CAAC;AAC5D,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE;AACxC,QAAQ,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;AAChC;AACA,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE;AAC7B,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AAC/D;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,EAAE,EAAE;AACrC,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACvE;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,EAAE,EAAE;AACzC,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AAC3E;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACnC,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;AACrE;AACA,IAAI,IAAI,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACjC,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;AACnE;AACA;;ACnBO,MAAM,oBAAoB,SAAS,mBAAmB,CAAC;AAC9D,IAAI,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE;AACnD,QAAQ,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;AAChC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;AACA,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC;AAChH;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE;AACtC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACvD,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACtH;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE;AAC1C,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACvD,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC1H;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC9G;AACA,IAAI,IAAI,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC5G;AACA,IAAI,iCAAiC,CAAC,OAAO,EAAE;AAC/C,QAAQ,OAAO,OAAO,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,IAAI,KAAK;AAC1C,YAAY,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;AAC/B,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpE,SAAS,CAAC,CAAC;AACX;AACA,IAAI,yBAAyB,CAAC,OAAO,EAAE;AACvC,QAAQ,OAAO,OAAO,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/E;AACA;;ACjCO,MAAM,2BAA2B,SAAS,mBAAmB,CAAC;AACrE,IAAI,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE;AACnD,QAAQ,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;AAChC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;AACA,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,EAAE;AAC7B,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvH;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE;AACtC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACvD,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7H;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE;AAC1C,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACvD,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjI;AACA,IAAI,MAAM,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACnC,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrH;AACA,IAAI,IAAI,CAAC,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE;AACjC,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnH;AACA,IAAI,iCAAiC,CAAC,OAAO,EAAE;AAC/C,QAAQ,OAAO,OAAO,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,IAAI,KAAK;AAC1C,YAAY,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;AAC/B,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpE,SAAS,CAAC,CAAC;AACX;AACA,IAAI,yBAAyB,CAAC,OAAO,EAAE;AACvC,QAAQ,OAAO,OAAO,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/E;AACA;;ACnCO,MAAM,SAAS,CAAC;AACvB;;ACCO,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,EAAE;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B;AACA,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AACrB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY;AACZ;AACA,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AACnC,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,SAAS,IAAI;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;AACA,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC;AACA,IAAI,iBAAiB,CAAC,SAAS,EAAE;AACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;AACA,IAAI,gBAAgB,CAAC,UAAU,EAAE;AACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,UAAU;AAClC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACvO;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC;AACtC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;ACzCZ,MAAM,8BAA8B,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC7B,YAAY;AACZ;AACA,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,EAAE;AACpC,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,SAAS,IAAI;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B;AACA,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC;AACA,IAAI,iBAAiB,CAAC,SAAS,EAAE;AACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;AACA,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAChM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7U;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACvCN,MAAM,sBAAsB,CAAC;AACpC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1C,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE;AAC7C,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;AAC/C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,MAAM,EAAE;AAC7C,QAAQ,IAAI,CAAC,sBAAsB,GAAG,MAAM,EAAE;AAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa;AAC7C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM;AACjD,YAAY,IAAI,CAAC,qBAAqB,EAAE;AACxC,SAAS,CAAC;AACV;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;AACxE;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAClC;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;AACvE,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;AACxE,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI,YAAY;AACxB,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,cAAc,EAAE;AAClD,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW;AACnF,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY;AACrF,YAAY,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU;AAC1D,YAAY,IAAI,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACvD;AACA,gBAAgB,YAAY,GAAG,UAAU;AACzC,gBAAgB,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/D;AACA,iBAAiB;AACjB;AACA,gBAAgB,WAAW,GAAG,SAAS;AACvC,gBAAgB,YAAY,GAAG,WAAW,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACrE;AACA;AACA,aAAa;AACb;AACA,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC;AAC5E,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC;AAC9E,YAAY,MAAM,YAAY,GAAG,YAAY,GAAG,aAAa;AAC7D,YAAY,IAAI,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpD,gBAAgB,WAAW,GAAG,YAAY;AAC1C,gBAAgB,YAAY,GAAG,WAAW,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACrE;AACA,iBAAiB;AACjB,gBAAgB,YAAY,GAAG,aAAa;AAC5C,gBAAgB,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/D;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;AACzC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;AAC3C;AACA,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9C,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAClF;AACA,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;AAChD,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACpF;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACxL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5kB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE;AAC9B,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC3E3B,MAAC,oBAAoB,GAAG,IAAI,GAAG,CAAC;AAC5C,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACxB,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AAC1B,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;AACzB,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;AACzB,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;AACzB,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC1B,CAAC;;ACPD;AACA;AACA;;;;"}